From ab15dc84467603b19636ea7220dba9d349650a06 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 5 Apr 2022 23:50:37 +0200 Subject: [PATCH 1/4] Type strong base classes --- dist/grapes.min.js | 4 +- dist/grapes.min.js.map | 2 +- package.json | 4 +- src/abstract/Collection.ts | 6 + src/abstract/Model.ts | 24 + src/abstract/Module.ts | 57 + src/abstract/ModuleConfig.ts | 30 + src/abstract/View.ts | 19 + src/abstract/index.ts | 4 + src/abstract/moduleLegacy.js | 161 + src/block_manager/index.js | 2 +- src/css_composer/index.js | 2 +- src/device_manager/index.js | 2 +- src/dom_components/index.js | 2 +- src/storage_manager/index.js | 4 +- yarn.lock | 23583 ++++++++++++++++++--------------- 16 files changed, 13260 insertions(+), 10646 deletions(-) create mode 100644 src/abstract/Collection.ts create mode 100644 src/abstract/Model.ts create mode 100644 src/abstract/Module.ts create mode 100644 src/abstract/ModuleConfig.ts create mode 100644 src/abstract/View.ts create mode 100644 src/abstract/index.ts create mode 100644 src/abstract/moduleLegacy.js diff --git a/dist/grapes.min.js b/dist/grapes.min.js index fff2d1b07..1a2f6096c 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,3 +1,3 @@ -/*! grapesjs - 0.18.4 */ -!function(t,e){'object'==typeof exports&&'object'==typeof module?module.exports=e():'function'==typeof define&&define.amd?define([],e):'object'==typeof exports?exports.grapesjs=e():t.grapesjs=e()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(function(){return(()=>{var t={7757:(t,e,n)=>{t.exports=n(5666)},3410:(t,e,n)=>{var r,i,o;i=[n(9050),n(2316)],r=function(t,e){var n=Array.prototype.slice;function r(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return n.call(t,e)}function o(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,(function(t){return t in e})))}var s=function(){var e=!1,n=-1;function r(){n++,e=!0,t.defer((function(){e=!1}))}return function(){return e||r(),n}}();function a(){this.registeredObjects=[],this.cidIndexes=[]}function l(e,n,r,i){for(var o,s=0,a=n.length;st.maximumStackLength&&(t.shift(),t.pointer--)}}}a.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,(function(t){return this.registeredObjects[t]}),this).concat(this.registeredObjects)}};var d={add:{undo:function(t,e,n,r){t.remove(n,r)},redo:function(t,e,n,r){r.index&&(r.at=r.index),t.add(n,r)},on:function(e,n,r){return{object:n,before:void 0,after:e,options:t.clone(r)}}},remove:{undo:function(t,e,n,r){"index"in r&&(r.at=r.index),t.add(e,r)},redo:function(t,e,n,r){t.remove(e,r)},on:function(e,n,r){return{object:n,before:e,after:void 0,options:t.clone(r)}}},change:{undo:function(e,n,r,i){t.isEmpty(n)?t.each(t.keys(r),e.unset,e):(e.set(n),i&&i.unsetData&&i.unsetData.before&&i.unsetData.before.length&&t.each(i.unsetData.before,e.unset,e))},redo:function(e,n,r,i){t.isEmpty(r)?t.each(t.keys(n),e.unset,e):(e.set(r),i&&i.unsetData&&i.unsetData.after&&i.unsetData.after.length&&t.each(i.unsetData.after,e.unset,e))},on:function(e,n){var r=e.changedAttributes(),i=t.keys(r),o=t.pick(e.previousAttributes(),i),s=t.keys(o),a=(n||(n={})).unsetData={after:[],before:[]};return i.length!=s.length&&(i.length>s.length?t.each(i,(function(t){t in o||a.before.push(t)}),this):t.each(s,(function(t){t in r||a.after.push(t)}))),{object:e,before:o,after:r,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};function p(){}function g(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?g(e,t,r,i):g(e,n,t,r)}));switch(e){case 0:o(r,"undo","redo","on")&&t.all(t.pick(r,"undo","redo","on"),t.isFunction)&&(i[n]=r);break;case 1:i[n]&&t.isObject(r)&&(i[n]=t.extend({},i[n],r));break;case 2:delete i[n]}return this}p.prototype=d;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){c("undo",this.attributes)},redo:function(t){c("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new a,this.undoTypes=new p,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",(function(t,e){this.stack.setMaxLength(e)}),this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?r(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){f(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){l("on",arguments,this._addToStack,this)},unregister:function(){l("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){u("undo",this,this.stack,t)},undoAll:function(){u("undo",this,this.stack,!1,!0)},redo:function(t){u("redo",this,this.stack,t)},redoAll:function(){u("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer{var r,i,o;o='object'==typeof self&&self.self===self&&self||'object'==typeof n.g&&n.g.global===n.g&&n.g,r=[n(9050),n(2579),e],i=function(t,e,n){o.Backbone=function(t,e,n,r){var i=t.Backbone,o=Array.prototype.slice;e.VERSION='1.3.3',e.$=r,e.noConflict=function(){return t.Backbone=i,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,r){switch(t){case 1:return function(){return n[e](this[r])};case 2:return function(t){return n[e](this[r],t)};case 3:return function(t,i){return n[e](this[r],l(t,this),i)};case 4:return function(t,i,o){return n[e](this[r],l(t,this),i,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[r]),n[e].apply(n,t)}}},a=function(t,e,r){n.each(e,(function(e,i){n[i]&&(t.prototype[i]=s(e,i,r))}))},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,f=function(t,e,r,i,o){var s,a=0;if(r&&'object'==typeof r){void 0!==i&&'context'in o&&void 0===o.context&&(o.context=i);for(s=n.keys(r);athis.length&&(i=this.length),i<0&&(i+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},f=e.add,d=e.merge,p=e.remove,g=!1,v=this.comparator&&null==i&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=('/'+this.root+'/').replace(R,'/'),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||'/';return this.location.replace(e+'#'+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement('iframe'),this.iframe.src='javascript:0',this.iframe.style.display='none',this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash='#'+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent('on'+t,e)};if(this._usePushState?o('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe?o('hashchange',this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent('on'+t,e)};this._usePushState?t('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe&&t('hashchange',this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,(function(e){if(e.route.test(t))return e.callback(t),!0})))},navigate:function(t,e){if(!A.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||'');var n=this.root;''!==t&&'?'!==t.charAt(0)||(n=n.slice(0,-1)||'/');var r=n+t;if(t=this.decodeFragment(t.replace(N,'')),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?'replaceState':'pushState']({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;e.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var r=t.href.replace(/(javascript:|#).*$/,'');t.replace(r+'#'+e)}else t.hash='#'+e}}),e.history=new A;var Z=function(t,e){var r,i=this;return r=t&&n.has(t,'constructor')?t.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,e),r.prototype=n.create(i.prototype,t),r.prototype.constructor=r,r.__super__=i.prototype,r};b.extend=w.extend=T.extend=k.extend=A.extend=Z;var I=function(){throw new Error('A "url" property or function must be specified')},F=function(t,e){var n=e.error;e.error=function(r){n&&n.call(e.context,t,r,e),t.trigger('error',t,r,e)}};return e}(o,n,t,e)}.apply(e,r),void 0===i||(t.exports=i)},9210:(t,e,n)=>{!function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,r){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!r.lexical||")"!=r.lexical.type)&&/^[;{}]$/.test(e)&&!/^;/.test(n)}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,r,i){var o=!1;return"html"==this.configuration&&(o=!!i.context&&e.test(i.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&i.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+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"),s=t.copyState(i,r.getTokenAt(e).state),a=r.getOption("tabSize"),l="",c=0,u=0===e.ch;function h(){l+="\n",u=!0,++c}for(var f=0;f2),v=/Android/.test(t),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(t),y=g||/Mac/.test(e),b=/\bCrOS\b/.test(t),w=/win/i.test(e),x=h&&t.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,l=!0);var O=y&&(c||h&&(null==x||x<12.11)),C=n||s&&a>=9;function k(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var S,P=function(t,e){var n=t.className,r=k(e).exec(n);if(r){var i=n.slice(r.index+r[0].length);t.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function _(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function T(t,e){return _(t).appendChild(e)}function E(t,e,n,r){var i=document.createElement(t);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof e)i.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}g?R=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:s&&(R=function(t){try{t.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=N(this.onTimeout,this)};function V(t,e){for(var n=0;n=e)return r+Math.min(s,e-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=e)return r}}var q=[""];function G(t){for(;q.length<=t;)q.push(K(q)+" ");return q[t]}function K(t){return t[t.length-1]}function Y(t,e){for(var n=[],r=0;r"€"&&(t.toUpperCase()!=t.toLowerCase()||tt.test(t))}function nt(t,e){return e?!!(e.source.indexOf("\\w")>-1&&et(t))||e.test(t):et(t)}function rt(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}var it=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ot(t){return t.charCodeAt(0)>=768&&it.test(t)}function st(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var i=(e+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+r}}function lt(t,e,n,r){if(!t)return r(e,n,"ltr",0);for(var i=!1,o=0;oe||e==n&&s.to==e)&&(r(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),i=!0)}i||r(e,n,"ltr")}var ct=null;function ut(t,e,n){var r;ct=null;for(var i=0;ie)return i;o.to==e&&(o.from!=o.to&&"before"==n?r=i:ct=i),o.from==e&&(o.from!=o.to&&"before"!=n?r=i:ct=i)}return null!=r?r:ct}var ht=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",e="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?t.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?e.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,s=/[Lb1n]/,a=/[1n]/;function l(t,e,n){this.level=t,this.from=e,this.to=n}return function(t,e){var c="ltr"==e?"L":"R";if(0==t.length||"ltr"==e&&!r.test(t))return!1;for(var u=t.length,h=[],f=0;f-1&&(r[e]=i.slice(0,o).concat(i.slice(o+1)))}}}function mt(t,e){var n=gt(t,e);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function xt(t){t.prototype.on=function(t,e){pt(this,t,e)},t.prototype.off=function(t,e){vt(this,t,e)}}function Ot(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Ct(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function kt(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function St(t){Ot(t),Ct(t)}function Pt(t){return t.target||t.srcElement}function _t(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),y&&t.ctrlKey&&1==e&&(e=3),e}var Tt,Et,jt=function(){if(s&&a<9)return!1;var t=E('div');return"draggable"in t||"dragDrop"in t}();function Dt(t){if(null==Tt){var e=E("span","​");T(t,E("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Tt=e.offsetWidth<=1&&e.offsetHeight>2&&!(s&&a<8))}var n=Tt?E("span","​"):E("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Mt(t){if(null!=Et)return Et;var e=T(t,document.createTextNode("AخA")),n=S(e,0,1).getBoundingClientRect(),r=S(e,1,2).getBoundingClientRect();return _(t),!(!n||n.left==n.right)&&(Et=r.right-n.right<3)}var At,Lt=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,n=[],r=t.length;e<=r;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),s=o.indexOf("\r");-1!=s?(n.push(o.slice(0,s)),e+=s+1):(n.push(o),e=i+1)}return n}:function(t){return t.split(/\r\n?|\n/)},Rt=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(t){return!1}}:function(t){var e;try{e=t.ownerDocument.selection.createRange()}catch(t){}return!(!e||e.parentElement()!=t)&&0!=e.compareEndPoints("StartToEnd",e)},Nt="oncopy"in(At=E("div"))||(At.setAttribute("oncopy","return;"),"function"==typeof At.oncopy),Zt=null;function It(t){if(null!=Zt)return Zt;var e=T(t,E("span","x")),n=e.getBoundingClientRect(),r=S(e,0,1).getBoundingClientRect();return Zt=Math.abs(n.left-r.left)>1}var Ft={},Vt={};function Ht(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),Ft[t]=e}function Bt(t,e){Vt[t]=e}function zt(t){if("string"==typeof t&&Vt.hasOwnProperty(t))t=Vt[t];else if(t&&"string"==typeof t.name&&Vt.hasOwnProperty(t.name)){var e=Vt[t.name];"string"==typeof e&&(e={name:e}),(t=Q(e,t)).name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return zt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return zt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Ut(t,e){e=zt(e);var n=Ft[e.name];if(!n)return Ut(t,"text/plain");var r=n(t,e);if(Wt.hasOwnProperty(e.name)){var i=Wt[e.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=e.name,e.helperType&&(r.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)r[s]=e.modeProps[s];return r}var Wt={};function $t(t,e){Z(e,Wt.hasOwnProperty(t)?Wt[t]:Wt[t]={})}function qt(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var r in e){var i=e[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Gt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}var Yt=function(t,e,n){this.pos=this.start=0,this.string=t,this.tabSize=e||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Jt(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(e=t.first&&en?oe(n,Jt(t,n).text.length):de(e,Jt(t,e.line).text.length)}function de(t,e){var n=t.ch;return null==n||n>e?oe(t.line,e):n<0?oe(t.line,0):t}function pe(t,e){for(var n=[],r=0;r=this.string.length},Yt.prototype.sol=function(){return this.pos==this.lineStart},Yt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Yt.prototype.next=function(){if(this.pose},Yt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Yt.prototype.skipToEnd=function(){this.pos=this.string.length},Yt.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},Yt.prototype.backUp=function(t){this.pos-=t},Yt.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==e&&(this.pos+=r[0].length),r)}var i=function(t){return n?t.toLowerCase():t};if(i(this.string.substr(this.pos,t.length))==i(t))return!1!==e&&(this.pos+=t.length),!0},Yt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Yt.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},Yt.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},Yt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ge=function(t,e){this.state=t,this.lookAhead=e},ve=function(t,e,n,r){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function me(t,e,n,r){var i=[t.state.modeGen],o={};Pe(t,e.text,t.doc.mode,n,(function(t,e){return i.push(t,e)}),o,r);for(var s=n.state,a=function(r){n.baseTokens=i;var a=t.state.overlays[r],l=1,c=0;n.state=!0,Pe(t,e.text,a.mode,n,(function(t,e){for(var n=l;ct&&i.splice(l,1,t,i[l+1],r),l+=2,c=Math.min(t,r)}if(e)if(a.opaque)i.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&qt(t.doc.mode,r.state),o=me(t,e,r);i&&(r.state=i),e.stateAfter=r.save(!i),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function be(t,e,n){var r=t.doc,i=t.display;if(!r.mode.startState)return new ve(r,!0,e);var o=_e(t,e,n),s=o>r.first&&Jt(r,o-1).stateAfter,a=s?ve.fromSaved(r,s,o):new ve(r,Kt(r.mode),o);return r.iter(o,e,(function(n){we(t,n.text,a);var r=a.line;n.stateAfter=r==e-1||r%5==0||r>=i.viewFrom&&re.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}ve.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ve.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var e=this.baseTokens[this.baseTokenPos+1];return{type:e&&e.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ve.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ve.fromSaved=function(t,e,n){return e instanceof ge?new ve(t,qt(t.mode,e.state),n,e.lookAhead):new ve(t,qt(t.mode,e),n)},ve.prototype.save=function(t){var e=!1!==t?qt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ge(e,this.maxLookAhead):e};var Ce=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n};function ke(t,e,n,r){var i,o,s=t.doc,a=s.mode,l=Jt(s,(e=fe(s,e)).line),c=be(t,e.line,n),u=new Yt(l.text,t.options.tabSize,c);for(r&&(o=[]);(r||u.post.options.maxHighlightLength?(a=!1,s&&we(t,e,r,h.pos),h.pos=e.length,l=null):l=Se(Oe(n,h,r.state,f),o),f){var d=f[0].name;d&&(l="m-"+(l?d+" "+l:d))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=Jt(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ge?c.lookAhead:0)<=o.modeFrontier))return a;var u=I(l.text,null,t.options.tabSize);(null==i||r>u)&&(i=a-1,r=u)}return i}function Te(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;r--){var i=Jt(t,r).stateAfter;if(i&&(!(i instanceof ge)||r+i.lookAhead=e:o.to>e);(r||(r=[])).push(new Ae(s,o.from,a?null:o.to))}}return r}function Ie(t,e,n){var r;if(t)for(var i=0;i=e:o.to>e)||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var a=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var b=0;b0)){var u=[l,1],h=se(c.from,a.from),f=se(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function Be(t){var e=t.markedSpans;if(e){for(var n=0;ne)&&(!n||$e(n,o.marker)<0)&&(n=o.marker)}return n}function Je(t,e,n,r,i){var o=Jt(t,e),s=je&&o.markedSpans;if(s)for(var a=0;a=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?se(c.to,n)>=0:se(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?se(c.from,r)<=0:se(c.from,r)<0)))return!0}}}function Xe(t){for(var e;e=Ge(t);)t=e.find(-1,!0).line;return t}function Qe(t){for(var e;e=Ke(t);)t=e.find(1,!0).line;return t}function tn(t){for(var e,n;e=Ke(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function en(t,e){var n=Jt(t,e),r=Xe(n);return n==r?e:ee(r)}function nn(t,e){if(e>t.lastLine())return e;var n,r=Jt(t,e);if(!rn(t,r))return e;for(;n=Ke(r);)r=n.find(1,!0).line;return ee(r)+1}function rn(t,e){var n=je&&e.markedSpans;if(n)for(var r=void 0,i=0;ie.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)}))}var cn=function(t,e,n){this.text=t,ze(this,e),this.height=n?n(this):1};function un(t,e,n,r){t.text=e,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),null!=t.order&&(t.order=null),Be(t),ze(t,n);var i=r?r(t):1;i!=t.height&&te(t,i)}function hn(t){t.parent=null,Be(t)}cn.prototype.lineNo=function(){return ee(this)},xt(cn);var fn={},dn={};function pn(t,e){if(!t||/^\s*$/.test(t))return null;var n=e.addModeClass?dn:fn;return n[t]||(n[t]=t.replace(/\S+/g,"cm-$&"))}function gn(t,e){var n=j("span",null,null,l?"padding-right: .1px":null),r={pre:j("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};e.measure={};for(var i=0;i<=(e.rest?e.rest.length:0);i++){var o=i?e.rest[i-1]:e.line,s=void 0;r.pos=0,r.addToken=mn,Mt(t.display.measure)&&(s=ft(o,t.doc.direction))&&(r.addToken=bn(r.addToken,s)),r.map=[],xn(o,r,ye(t,o,e!=t.display.externalMeasured&&ee(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=L(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=L(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Dt(t.display.measure))),0==i?(e.measure.map=r.map,e.measure.cache={}):((e.measure.maps||(e.measure.maps=[])).push(r.map),(e.measure.caches||(e.measure.caches=[])).push({}))}if(l){var a=r.content.lastChild;(/\bcm-tab\b/.test(a.className)||a.querySelector&&a.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return mt(t,"renderLine",t,e.line,r.pre),r.pre.className&&(r.textClass=L(r.pre.className,r.textClass||"")),r}function vn(t){var e=E("span","•","cm-invalidchar");return e.title="\\u"+t.charCodeAt(0).toString(16),e.setAttribute("aria-label",e.title),e}function mn(t,e,n,r,i,o,l){if(e){var c,u=t.splitSpaces?yn(e,t.trailingSpace):e,h=t.cm.state.specialChars,f=!1;if(h.test(e)){c=document.createDocumentFragment();for(var d=0;;){h.lastIndex=d;var p=h.exec(e),g=p?p.index-d:e.length-d;if(g){var v=document.createTextNode(u.slice(d,d+g));s&&a<9?c.appendChild(E("span",[v])):c.appendChild(v),t.map.push(t.pos,t.pos+g,v),t.col+=g,t.pos+=g}if(!p)break;d+=g+1;var m=void 0;if("\t"==p[0]){var y=t.cm.options.tabSize,b=y-t.col%y;(m=c.appendChild(E("span",G(b),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),t.col+=b}else"\r"==p[0]||"\n"==p[0]?((m=c.appendChild(E("span","\r"==p[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",p[0]),t.col+=1):((m=t.cm.options.specialCharPlaceholder(p[0])).setAttribute("cm-text",p[0]),s&&a<9?c.appendChild(E("span",[m])):c.appendChild(m),t.col+=1);t.map.push(t.pos,t.pos+1,m),t.pos++}}else t.col+=e.length,c=document.createTextNode(u),t.map.push(t.pos,t.pos+e.length,c),s&&a<9&&(f=!0),t.pos+=e.length;if(t.trailingSpace=32==u.charCodeAt(e.length-1),n||r||i||f||o||l){var w=n||"";r&&(w+=r),i&&(w+=i);var x=E("span",[c],w,o);if(l)for(var O in l)l.hasOwnProperty(O)&&"style"!=O&&"class"!=O&&x.setAttribute(O,l[O]);return t.content.appendChild(x)}t.content.appendChild(c)}}function yn(t,e){if(t.length>1&&!/ /.test(t))return t;for(var n=e,r="",i=0;ic&&h.from<=c);f++);if(h.to>=u)return t(n,r,i,o,s,a,l);t(n,r.slice(0,h.to-c),i,o,null,a,l),o=null,r=r.slice(h.to-c),c=h.to}}}function wn(t,e,n,r){var i=!r&&n.widgetNode;i&&t.map.push(t.pos,t.pos+e,i),!r&&t.cm.display.input.needsContentAttribute&&(i||(i=t.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(t.cm.display.input.setUneditable(i),t.content.appendChild(i)),t.pos+=e,t.trailingSpace=!1}function xn(t,e,n){var r=t.markedSpans,i=t.text,o=0;if(r)for(var s,a,l,c,u,h,f,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=a="",f=null,h=null,m=1/0;for(var y=[],b=void 0,w=0;wp||O.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,c=""),O.className&&(l+=" "+O.className),O.css&&(a=(a?a+";":"")+O.css),O.startStyle&&x.from==p&&(u+=" "+O.startStyle),O.endStyle&&x.to==m&&(b||(b=[])).push(O.endStyle,x.to),O.title&&((f||(f={})).title=O.title),O.attributes)for(var C in O.attributes)(f||(f={}))[C]=O.attributes[C];O.collapsed&&(!h||$e(h.marker,O)<0)&&(h=x)}else x.from>p&&m>x.from&&(m=x.from)}if(b)for(var k=0;k=d)break;for(var P=Math.min(d,m);;){if(v){var _=p+v.length;if(!h){var T=_>P?v.slice(0,P-p):v;e.addToken(e,T,s?s+l:l,u,p+T.length==m?c:"",a,f)}if(_>=P){v=v.slice(P-p),p=P;break}p=_,u=""}v=i.slice(o,o=n[g++]),s=pn(n[g++],e.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Xn(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var r=0;rn)return{map:t.measure.maps[i],cache:t.measure.caches[i],before:!0}}function Qn(t,e){var n=ee(e=Xe(e)),r=t.display.externalMeasured=new On(t.doc,e,n);r.lineN=n;var i=r.built=gn(t,r);return r.text=i.pre,T(t.display.lineMeasure,i.pre),r}function tr(t,e,n,r){return rr(t,nr(t,e),n,r)}function er(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(i=(o=l-a)-1,e>=l&&(s="right")),null!=i){if(r=t[c+2],a==l&&n==(r.insertLeft?"left":"right")&&(s=n),"left"==n&&0==i)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)r=t[2+(c-=3)],s="left";if("right"==n&&i==l-a)for(;c=0&&(n=t[i]).left==n.right;i--);return n}function lr(t,e,n,r){var i,o=sr(e.map,n,r),l=o.node,c=o.start,u=o.end,h=o.collapse;if(3==l.nodeType){for(var f=0;f<4;f++){for(;c&&ot(e.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u0&&(h=r="right"),i=t.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==r?d.length-1:0]:l.getBoundingClientRect()}if(s&&a<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+jr(t.display),top:p.top,bottom:p.bottom}:or}for(var g=i.top-e.rect.top,v=i.bottom-e.rect.top,m=(g+v)/2,y=e.view.measure.heights,b=0;b=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!a)return s("before"==c?l-1:l,"before"==c);function u(t,e,n){return s(n?t-1:t,1==a[e].level!=n)}var h=ut(a,l,c),f=ct,d=u(l,h,"before"==c);return null!=f&&(d.other=u(l,f,"before"!=c)),d}function wr(t,e){var n=0;e=fe(t.doc,e),t.options.lineWrapping||(n=jr(t.display)*e.ch);var r=Jt(t.doc,e.line),i=sn(r)+Wn(t.display);return{left:n,right:n,top:i,bottom:i+r.height}}function xr(t,e,n,r,i){var o=oe(t,e,n);return o.xRel=i,r&&(o.outside=r),o}function Or(t,e,n){var r=t.doc;if((n+=t.display.viewOffset)<0)return xr(r.first,0,null,-1,-1);var i=ne(r,n),o=r.first+r.size-1;if(i>o)return xr(r.first+r.size-1,Jt(r,o).text.length,null,1,1);e<0&&(e=0);for(var s=Jt(r,i);;){var a=Pr(t,s,i,e,n),l=Ye(s,a.ch+(a.xRel>0||a.outside>0?1:0));if(!l)return a;var c=l.find(1);if(c.line==i)return c;s=Jt(r,i=c.line)}}function Cr(t,e,n,r){r-=gr(e);var i=e.text.length,o=at((function(e){return rr(t,n,e-1).bottom<=r}),i,0);return{begin:o,end:i=at((function(e){return rr(t,n,e).top>r}),o,i)}}function kr(t,e,n,r){return n||(n=nr(t,e)),Cr(t,e,n,vr(t,e,rr(t,n,r),"line").top)}function Sr(t,e,n,r){return!(t.bottom<=n)&&(t.top>n||(r?t.left:t.right)>e)}function Pr(t,e,n,r,i){i-=sn(e);var o=nr(t,e),s=gr(e),a=0,l=e.text.length,c=!0,u=ft(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?Tr:_r)(t,e,n,o,u,r,i);a=(c=1!=h.level)?h.from:h.to-1,l=c?h.to:h.from-1}var f,d,p=null,g=null,v=at((function(e){var n=rr(t,o,e);return n.top+=s,n.bottom+=s,!!Sr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=e,g=n),!0)}),a,l),m=!1;if(g){var y=r-g.left=w.bottom?1:0}return xr(n,v=st(e.text,v,1),d,m,r-f)}function _r(t,e,n,r,i,o,s){var a=at((function(a){var l=i[a],c=1!=l.level;return Sr(br(t,oe(n,c?l.to:l.from,c?"before":"after"),"line",e,r),o,s,!0)}),0,i.length-1),l=i[a];if(a>0){var c=1!=l.level,u=br(t,oe(n,c?l.from:l.to,c?"after":"before"),"line",e,r);Sr(u,o,s,!0)&&u.top>s&&(l=i[a-1])}return l}function Tr(t,e,n,r,i,o,s){var a=Cr(t,e,r,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,f=0;f=c||d.to<=l)){var p=rr(t,r,1!=d.level?Math.min(c,d.to)-1:Math.max(l,d.from)).right,g=pg)&&(u=d,h=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Er(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==ir){ir=E("pre",null,"CodeMirror-line-like");for(var e=0;e<49;++e)ir.appendChild(document.createTextNode("x")),ir.appendChild(E("br"));ir.appendChild(document.createTextNode("x"))}T(t.measure,ir);var n=ir.offsetHeight/50;return n>3&&(t.cachedTextHeight=n),_(t.measure),n||1}function jr(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=E("span","xxxxxxxxxx"),n=E("pre",[e],"CodeMirror-line-like");T(t.measure,n);var r=e.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(t.cachedCharWidth=i),i||10}function Dr(t){for(var e=t.display,n={},r={},i=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s){var a=t.display.gutterSpecs[s].className;n[a]=o.offsetLeft+o.clientLeft+i,r[a]=o.clientWidth}return{fixedPos:Mr(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:e.wrapper.clientWidth}}function Mr(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function Ar(t){var e=Er(t.display),n=t.options.lineWrapping,r=n&&Math.max(5,t.display.scroller.clientWidth/jr(t.display)-3);return function(i){if(rn(t.doc,i))return 0;var o=0;if(i.widgets)for(var s=0;s0&&(l=Jt(t.doc,c.line).text).length==c.ch){var u=I(l,l.length,t.options.tabSize)-l.length;c=oe(c.line,Math.max(0,Math.round((o-qn(t.display).left)/jr(t.display))-u))}return c}function Nr(t,e){if(e>=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,r=0;re)&&(i.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=i.viewTo)je&&en(t.doc,e)i.viewFrom?Fr(t):(i.viewFrom+=r,i.viewTo+=r);else if(e<=i.viewFrom&&n>=i.viewTo)Fr(t);else if(e<=i.viewFrom){var o=Vr(t,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Fr(t)}else if(n>=i.viewTo){var s=Vr(t,e,e,-1);s?(i.view=i.view.slice(0,s.index),i.viewTo=s.lineN):Fr(t)}else{var a=Vr(t,e,e,-1),l=Vr(t,n,n+r,1);a&&l?(i.view=i.view.slice(0,a.index).concat(Cn(t,a.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Fr(t)}var c=i.externalMeasured;c&&(n=i.lineN&&e=r.viewTo)){var o=r.view[Nr(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==V(s,n)&&s.push(n)}}}function Fr(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Vr(t,e,n,r){var i,o=Nr(t,e),s=t.display.view;if(!je||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;i=a+s[o].size-e,o++}else i=a-e;e+=i,n+=i}for(;en(t.doc,n)!=n;){if(o==(r<0?0:s.length-1))return null;n+=r*s[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Hr(t,e,n){var r=t.display;0==r.view.length||e>=r.viewTo||n<=r.viewFrom?(r.view=Cn(t,e,n),r.viewFrom=e):(r.viewFrom>e?r.view=Cn(t,e,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Nr(t,n)))),r.viewTo=n}function Br(t){for(var e=t.display.view,n=0,r=0;r=t.display.viewTo||a.to().line0&&(i.style.width=o.right-o.left+"px")}if(r.other){var s=n.appendChild(E("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));s.style.display="",s.style.left=r.other.left+"px",s.style.top=r.other.top+"px",s.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function $r(t,e){return t.top-e.top||t.left-e.left}function qr(t,e,n){var r=t.display,i=t.doc,o=document.createDocumentFragment(),s=qn(t.display),a=s.left,l=Math.max(r.sizerWidth,Kn(t)-r.sizer.offsetLeft)-s.right,c="ltr"==i.direction;function u(t,e,n,r){e<0&&(e=0),e=Math.round(e),r=Math.round(r),o.appendChild(E("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px;\n top: "+e+"px; width: "+(null==n?l-t:n)+"px;\n height: "+(r-e)+"px"))}function h(e,n,r){var o,s,h=Jt(i,e),f=h.text.length;function d(n,r){return yr(t,oe(e,n),"div",h,r)}function p(e,n,r){var i=kr(t,h,null,e),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1),o)[o]}var g=ft(h,i.direction);return lt(g,n||0,null==r?f:r,(function(t,e,i,h){var v="ltr"==i,m=d(t,v?"left":"right"),y=d(e-1,v?"right":"left"),b=null==n&&0==t,w=null==r&&e==f,x=0==h,O=!g||h==g.length-1;if(y.top-m.top<=3){var C=(c?w:b)&&O,k=(c?b:w)&&x?a:(v?m:y).left,S=C?l:(v?y:m).right;u(k,m.top,S-k,m.bottom)}else{var P,_,T,E;v?(P=c&&b&&x?a:m.left,_=c?l:p(t,i,"before"),T=c?a:p(e,i,"after"),E=c&&w&&O?l:y.right):(P=c?p(t,i,"before"):a,_=!c&&b&&x?l:m.right,T=!c&&w&&O?a:y.left,E=c?p(e,i,"after"):l),u(P,m.top,_-P,m.bottom),m.bottom0?e.blinker=setInterval((function(){t.hasFocus()||Xr(t),e.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Kr(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||Jr(t))}function Yr(t){t.state.delayingBlurEvent=!0,setTimeout((function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&Xr(t))}),100)}function Jr(t,e){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(mt(t,"focus",t,e),t.state.focused=!0,A(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),l&&setTimeout((function(){return t.display.input.reset(!0)}),20)),t.display.input.receivedFocus()),Gr(t))}function Xr(t,e){t.state.delayingBlurEvent||(t.state.focused&&(mt(t,"blur",t,e),t.state.focused=!1,P(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout((function(){t.state.focused||(t.display.shift=!1)}),150))}function Qr(t){for(var e=t.display,n=e.lineDiv.offsetTop,r=Math.max(0,e.scroller.getBoundingClientRect().top),i=e.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(it.display.sizerWidth){var m=Math.ceil(f/jr(t.display));m>t.display.maxLineLength&&(t.display.maxLineLength=m,t.display.maxLine=c.line,t.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(e.scroller.scrollTop+=o)}function ti(t){if(t.widgets)for(var e=0;e=s&&(o=ne(e,sn(Jt(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function ni(t,e){if(!yt(t,"scrollCursorIntoView")){var n=t.display,r=n.sizer.getBoundingClientRect(),i=null;if(e.top+r.top<0?i=!0:e.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=E("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Wn(t.display))+"px;\n height: "+(e.bottom-e.top+Gn(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(o),o.scrollIntoView(i),t.display.lineSpace.removeChild(o)}}}function ri(t,e,n,r){var i;null==r&&(r=0),t.options.lineWrapping||e!=n||(n="before"==e.sticky?oe(e.line,e.ch+1,"before"):e,e=e.ch?oe(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e);for(var o=0;o<5;o++){var s=!1,a=br(t,e),l=n&&n!=e?br(t,n):a,c=oi(t,i={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-r,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+r}),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(fi(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(pi(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return i}function ii(t,e){var n=oi(t,e);null!=n.scrollTop&&fi(t,n.scrollTop),null!=n.scrollLeft&&pi(t,n.scrollLeft)}function oi(t,e){var n=t.display,r=Er(t.display);e.top<0&&(e.top=0);var i=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Yn(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+$n(n),l=e.topa-r;if(e.topi+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=i&&(s.scrollTop=u)}var h=t.options.fixedGutter?0:n.gutters.offsetWidth,f=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft-h,d=Kn(t)-n.gutters.offsetWidth,p=e.right-e.left>d;return p&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+f-3&&(s.scrollLeft=e.right+(p?0:10)-d),s}function si(t,e){null!=e&&(ui(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function ai(t){ui(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function li(t,e,n){null==e&&null==n||ui(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function ci(t,e){ui(t),t.curOp.scrollToPos=e}function ui(t){var e=t.curOp.scrollToPos;e&&(t.curOp.scrollToPos=null,hi(t,wr(t,e.from),wr(t,e.to),e.margin))}function hi(t,e,n,r){var i=oi(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-r,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+r});li(t,i.scrollLeft,i.scrollTop)}function fi(t,e){Math.abs(t.doc.scrollTop-e)<2||(n||zi(t,{top:e}),di(t,e,!0),n&&zi(t),Ri(t,100))}function di(t,e,n){e=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e)),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function pi(t,e,n,r){e=Math.max(0,Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!r||(t.doc.scrollLeft=e,qi(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function gi(t){var e=t.display,n=e.gutters.offsetWidth,r=Math.round(t.doc.height+$n(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Gn(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}var vi=function(t,e,n){this.cm=n;var r=this.vert=E("div",[E("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=E("div",[E("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,t(r),t(i),pt(r,"scroll",(function(){r.clientHeight&&e(r.scrollTop,"vertical")})),pt(i,"scroll",(function(){i.clientWidth&&e(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,s&&a<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vi.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,r=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?r+"px":"0";var i=t.viewHeight-(e?r:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:e?r:0}},vi.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vi.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vi.prototype.zeroWidthHack=function(){var t=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},vi.prototype.enableZeroWidthBar=function(t,e,n){function r(){var i=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,r)}t.style.pointerEvents="auto",e.set(1e3,r)},vi.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var mi=function(){};function yi(t,e){e||(e=gi(t));var n=t.display.barWidth,r=t.display.barHeight;bi(t,e);for(var i=0;i<4&&n!=t.display.barWidth||r!=t.display.barHeight;i++)n!=t.display.barWidth&&t.options.lineWrapping&&Qr(t),bi(t,gi(t)),n=t.display.barWidth,r=t.display.barHeight}function bi(t,e){var n=t.display,r=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}mi.prototype.update=function(){return{bottom:0,right:0}},mi.prototype.setScrollLeft=function(){},mi.prototype.setScrollTop=function(){},mi.prototype.clear=function(){};var wi={native:vi,null:mi};function xi(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&P(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new wi[t.options.scrollbarStyle]((function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pt(e,"mousedown",(function(){t.state.focused&&setTimeout((function(){return t.display.input.focus()}),0)})),e.setAttribute("cm-not-content","true")}),(function(e,n){"horizontal"==n?pi(t,e):fi(t,e)}),t),t.display.scrollbars.addClass&&A(t.display.wrapper,t.display.scrollbars.addClass)}var Oi=0;function Ci(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Oi,markArrays:null},Sn(t.curOp)}function ki(t){var e=t.curOp;e&&_n(e,(function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Zi(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function _i(t){t.updatedDisplay=t.mustUpdate&&Hi(t.cm,t.update)}function Ti(t){var e=t.cm,n=e.display;t.updatedDisplay&&Qr(e),t.barMeasure=gi(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=tr(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Gn(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Kn(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function Ei(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var n=+new Date+t.options.workTime,r=be(t,e.highlightFrontier),i=[];e.iter(r.line,Math.min(e.first+e.size,t.display.viewTo+500),(function(o){if(r.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?qt(e.mode,r.state):null,l=me(t,o,r,!0);a&&(r.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!h&&fn)return Ri(t,t.options.workDelay),!0})),e.highlightFrontier=r.line,e.modeFrontier=Math.max(e.modeFrontier,r.line),i.length&&Di(t,(function(){for(var e=0;e=n.viewFrom&&e.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Br(t))return!1;Gi(t)&&(Fr(t),e.dims=Dr(t));var i=r.first+r.size,o=Math.max(e.visible.from-t.options.viewportMargin,r.first),s=Math.min(i,e.visible.to+t.options.viewportMargin);n.viewFroms&&n.viewTo-s<20&&(s=Math.min(i,n.viewTo)),je&&(o=en(t.doc,o),s=nn(t.doc,s));var a=o!=n.viewFrom||s!=n.viewTo||n.lastWrapHeight!=e.wrapperHeight||n.lastWrapWidth!=e.wrapperWidth;Hr(t,o,s),n.viewOffset=sn(Jt(t.doc,n.viewFrom)),t.display.mover.style.top=n.viewOffset+"px";var l=Br(t);if(!a&&0==l&&!e.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Fi(t);return l>4&&(n.lineDiv.style.display="none"),Ui(t,n.updateLineNumbers,e.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Vi(c),_(n.cursorDiv),_(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,a&&(n.lastWrapHeight=e.wrapperHeight,n.lastWrapWidth=e.wrapperWidth,Ri(t,400)),n.updateLineNumbers=null,!0}function Bi(t,e){for(var n=e.viewport,r=!0;;r=!1){if(r&&t.options.lineWrapping&&e.oldDisplayWidth!=Kn(t))r&&(e.visible=ei(t.display,t.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$n(t.display)-Yn(t),n.top)}),e.visible=ei(t.display,t.doc,n),e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)break;if(!Hi(t,e))break;Qr(t);var i=gi(t);zr(t),yi(t,i),$i(t,i),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function zi(t,e){var n=new Zi(t,e);if(Hi(t,n)){Qr(t),Bi(t,n);var r=gi(t);zr(t),yi(t,r),$i(t,r),n.finish()}}function Ui(t,e,n){var r=t.display,i=t.options.lineNumbers,o=r.lineDiv,s=o.firstChild;function a(e){var n=e.nextSibling;return l&&y&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var c=r.view,u=r.viewFrom,h=0;h-1&&(d=!1),Dn(t,f,u,n)),d&&(_(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(ie(t.options,u)))),s=f.node.nextSibling}else{var p=Fn(t,f,u,n);o.insertBefore(p,s)}u+=f.size}for(;s;)s=a(s)}function Wi(t){var e=t.gutters.offsetWidth;t.sizer.style.marginLeft=e+"px",En(t,"gutterChanged",t)}function $i(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Gn(t)+"px"}function qi(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=Mr(e)-e.scroller.scrollLeft+t.doc.scrollLeft,i=e.gutters.offsetWidth,o=r+"px",s=0;sa.clientWidth,u=a.scrollHeight>a.clientHeight;if(i&&c||o&&u){if(o&&y&&l)t:for(var f=e.target,d=s.view;f!=a;f=f.parentNode)for(var p=0;p=0&&se(t,r.to())<=0)return n}return-1};var oo=function(t,e){this.anchor=t,this.head=e};function so(t,e,n){var r=t&&t.options.selectionsMayTouch,i=e[n];e.sort((function(t,e){return se(t.from(),e.from())})),n=V(e,i);for(var o=1;o0:l>=0){var c=ue(a.from(),s.from()),u=ce(a.to(),s.to()),h=a.empty()?s.from()==s.head:a.from()==a.head;o<=n&&--n,e.splice(--o,2,new oo(h?u:c,h?c:u))}}return new io(e,n)}function ao(t,e){return new io([new oo(t,e||t)],0)}function lo(t){return t.text?oe(t.from.line+t.text.length-1,K(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function co(t,e){if(se(t,e.from)<0)return t;if(se(t,e.to)<=0)return lo(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,r=t.ch;return t.line==e.to.line&&(r+=lo(e).ch-e.to.ch),oe(n,r)}function uo(t,e){for(var n=[],r=0;r1&&t.remove(a.line+1,p-1),t.insert(a.line+1,m)}En(t,"change",t,e)}function yo(t,e,n){function r(t,i,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),K(t.done)):void 0}function Po(t,e,n,r){var i=t.history;i.undone.length=0;var o,s,a=+new Date;if((i.lastOp==r||i.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&i.lastModTime>a-(t.cm?t.cm.options.historyEventDelay:500)||"*"==e.origin.charAt(0)))&&(o=So(i,i.lastOp==r)))s=K(o.changes),0==se(e.from,e.to)&&0==se(e.from,s.to)?s.to=lo(e):o.changes.push(Co(t,e));else{var l=K(i.done);for(l&&l.ranges||Eo(t.sel,i.done),o={changes:[Co(t,e)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=e.origin,s||mt(t,"historyAdded")}function _o(t,e,n,r){var i=e.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function To(t,e,n,r){var i=t.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||_o(t,o,K(i.done),e))?i.done[i.done.length-1]=e:Eo(e,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&ko(i.undone)}function Eo(t,e){var n=K(e);n&&n.ranges&&n.equals(t)||e.push(t)}function jo(t,e,n,r){var i=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,r),(function(n){n.markedSpans&&((i||(i=e["spans_"+t.id]={}))[o]=n.markedSpans),++o}))}function Do(t){if(!t)return null;for(var e,n=0;n-1&&(K(a)[h]=c[h],delete c[h])}}}return r}function Ro(t,e,n,r){if(r){var i=t.anchor;if(n){var o=se(e,i)<0;o!=se(n,i)<0?(i=e,e=n):o!=se(e,n)<0&&(e=n)}return new oo(i,e)}return new oo(n||e,e)}function No(t,e,n,r,i){null==i&&(i=t.cm&&(t.cm.display.shift||t.extend)),Bo(t,new io([Ro(t.sel.primary(),e,n,i)],0),r)}function Zo(t,e,n){for(var r=[],i=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(i&&(mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var h=l.find(r<0?1:-1),f=void 0;if((r<0?u:c)&&(h=Ko(t,h,-r,h&&h.line==e.line?o:null)),h&&h.line==e.line&&(f=se(h,n))&&(r<0?f<0:f>0))return qo(t,h,e,r,i)}var d=l.find(r<0?-1:1);return(r<0?c:u)&&(d=Ko(t,d,r,d.line==e.line?o:null)),d?qo(t,d,e,r,i):null}}return e}function Go(t,e,n,r,i){var o=r||1,s=qo(t,e,n,o,i)||!i&&qo(t,e,n,o,!0)||qo(t,e,n,-o,i)||!i&&qo(t,e,n,-o,!0);return s||(t.cantEdit=!0,oe(t.first,0))}function Ko(t,e,n,r){return n<0&&0==e.ch?e.line>t.first?fe(t,oe(e.line-1)):null:n>0&&e.ch==(r||Jt(t,e.line)).text.length?e.line=0;--i)Qo(t,{from:r[i].from,to:r[i].to,text:i?[""]:e.text,origin:e.origin});else Qo(t,e)}}function Qo(t,e){if(1!=e.text.length||""!=e.text[0]||0!=se(e.from,e.to)){var n=uo(t,e);Po(t,e,n,t.cm?t.cm.curOp.id:NaN),ns(t,e,n,Fe(t,e));var r=[];yo(t,(function(t,n){n||-1!=V(r,t.history)||(as(t.history,e),r.push(t.history)),ns(t,e,null,Fe(t,e))}))}}function ts(t,e,n){var r=t.cm&&t.cm.state.suppressEdits;if(!r||n){for(var i,o=t.history,s=t.sel,a="undo"==e?o.done:o.undone,l="undo"==e?o.undone:o.done,c=0;c=0;--d){var p=f(d);if(p)return p.v}}}}function es(t,e){if(0!=e&&(t.first+=e,t.sel=new io(Y(t.sel.ranges,(function(t){return new oo(oe(t.anchor.line+e,t.anchor.ch),oe(t.head.line+e,t.head.ch))})),t.sel.primIndex),t.cm)){Zr(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,r=n.viewFrom;rt.lastLine())){if(e.from.lineo&&(e={from:e.from,to:oe(o,Jt(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=Xt(t,e.from,e.to),n||(n=uo(t,e)),t.cm?rs(t.cm,e,r):mo(t,e,r),zo(t,n,z),t.cantEdit&&Go(t,oe(t.firstLine(),0))&&(t.cantEdit=!1)}}function rs(t,e,n){var r=t.doc,i=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=ee(Xe(Jt(r,o.line))),r.iter(l,s.line+1,(function(t){if(t==i.maxLine)return a=!0,!0}))),r.sel.contains(e.from,e.to)>-1&&bt(t),mo(r,e,n,Ar(t)),t.options.lineWrapping||(r.iter(l,o.line+e.text.length,(function(t){var e=an(t);e>i.maxLineLength&&(i.maxLine=t,i.maxLineLength=e,i.maxLineChanged=!0,a=!1)})),a&&(t.curOp.updateMaxLine=!0)),Te(r,o.line),Ri(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?Zr(t):o.line!=s.line||1!=e.text.length||vo(t.doc,e)?Zr(t,o.line,s.line+1,c):Ir(t,o.line,"text");var u=wt(t,"changes"),h=wt(t,"change");if(h||u){var f={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&En(t,"change",t,f),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(f)}t.display.selForContextMenu=null}function is(t,e,n,r,i){var o;r||(r=n),se(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof e&&(e=t.splitLines(e)),Xo(t,{from:n,to:r,text:e,origin:i})}function os(t,e,n,r){n1||!(this.children[0]instanceof cs))){var a=[];this.collapse(a),this.children=[new cs(a)],this.children[0].parent=this}},collapse:function(t){for(var e=0;e50){for(var s=i.lines.length%25+25,a=s;a10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var r=0;r0||0==s&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=j("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Je(t,e.line,e,n,o)||e.line!=n.line&&Je(t,n.line,e,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Me()}o.addToHistory&&Po(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var a,l=e.line,c=t.cm;if(t.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Xe(r)==c.display.maxLine&&(a=!0),o.collapsed&&l!=e.line&&te(r,0),Ne(r,new Ae(o,l==e.line?e.ch:null,l==n.line?n.ch:null),t.cm&&t.cm.curOp),++l})),o.collapsed&&t.iter(e.line,n.line+1,(function(e){rn(t,e)&&te(e,0)})),o.clearOnEnter&&pt(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(De(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++ps,o.atomic=!0),c){if(a&&(c.curOp.updateMaxLine=!0),o.collapsed)Zr(c,e.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=e.line;u<=n.line;u++)Ir(c,u,"text");o.atomic&&Wo(c.doc),En(c,"markerAdded",c,o)}return o}gs.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&Ci(t),wt(this,"clear")){var n=this.find();n&&En(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Zr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Wo(t.doc)),t&&En(t,"markerCleared",t,this,r,i),e&&ki(t),this.parent&&this.parent.clear()}},gs.prototype.find=function(t,e){var n,r;null==t&&"bookmark"==this.type&&(t=1);for(var i=0;i=0;l--)Xo(this,r[l]);a?Ho(this,a):this.cm&&ai(this.cm)})),undo:Li((function(){ts(this,"undo")})),redo:Li((function(){ts(this,"redo")})),undoSelection:Li((function(){ts(this,"undo",!0)})),redoSelection:Li((function(){ts(this,"redo",!0)})),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,r=0;r=t.ch)&&e.push(i.marker.parent||i.marker)}return e},findMarks:function(t,e,n){t=fe(this,t),e=fe(this,e);var r=[],i=t.line;return this.iter(t.line,e.line+1,(function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&i!=t.line||null!=l.from&&i==e.line&&l.from>=e.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var t=[];return this.iter((function(e){var n=e.markedSpans;if(n)for(var r=0;rt)return e=t,!0;t-=o,++n})),fe(this,oe(n,e))},indexFromPos:function(t){var e=(t=fe(this,t)).ch;if(t.linee&&(e=t.from),null!=t.to&&t.to-1)return e.state.draggingText(t),void setTimeout((function(){return e.display.input.focus()}),20);try{var h=t.dataTransfer.getData("Text");if(h){var f;if(e.state.draggingText&&!e.state.draggingText.copy&&(f=e.listSelections()),zo(e.doc,ao(n,n)),f)for(var d=0;d=0;e--)is(t.doc,"",r[e].from,r[e].to,"+delete");ai(t)}))}function qs(t,e,n){var r=st(t.text,e+n,n);return r<0||r>t.text.length?null:r}function Gs(t,e,n){var r=qs(t,e.ch,n);return null==r?null:new oe(e.line,r,n<0?"after":"before")}function Ks(t,e,n,r,i){if(t){"rtl"==e.doc.direction&&(i=-i);var o=ft(n,e.doc.direction);if(o){var s,a=i<0?K(o):o[0],l=i<0==(1==a.level)?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var c=nr(e,n);s=i<0?n.text.length-1:0;var u=rr(e,c,s).top;s=at((function(t){return rr(e,c,t).top==u}),i<0==(1==a.level)?a.from:a.to-1,s),"before"==l&&(s=qs(n,s,1))}else s=i<0?a.to:a.from;return new oe(r,s,l)}}return new oe(r,i<0?n.text.length:0,i<0?"before":"after")}function Ys(t,e,n,r){var i=ft(e,t.doc.direction);if(!i)return Gs(e,n,r);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ut(i,n.ch,n.sticky),s=i[o];if("ltr"==t.doc.direction&&s.level%2==0&&(r>0?s.to>n.ch:s.from=s.from&&f>=u.begin)){var d=h?"before":"after";return new oe(n.line,f,d)}}var p=function(t,e,r){for(var o=function(t,e){return e?new oe(n.line,l(t,1),"before"):new oe(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?r.begin:l(r.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==v||r>0&&v==e.text.length||!(g=p(r>0?0:i.length-1,r,c(v)))?null:g}Is.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Is.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Is.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Is.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Is.default=y?Is.macDefault:Is.pcDefault;var Js={selectAll:Yo,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),z)},killLine:function(t){return $s(t,(function(e){if(e.empty()){var n=Jt(t.doc,e.head.line).text.length;return e.head.ch==n&&e.head.line0)i=new oe(i.line,i.ch+1),t.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),oe(i.line,i.ch-2),i,"+transpose");else if(i.line>t.doc.first){var s=Jt(t.doc,i.line-1).text;s&&(i=new oe(i.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),oe(i.line-1,s.length-1),i,"+transpose"))}n.push(new oo(i,i))}t.setSelections(n)}))},newlineAndIndent:function(t){return Di(t,(function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var r=0;r-1&&(se((i=a.ranges[i]).from(),e)<0||e.xRel>0)&&(se(i.to(),e)>0||e.xRel<0)?Oa(t,r,e,o):ka(t,r,e,o)}function Oa(t,e,n,r){var i=t.display,o=!1,c=Mi(t,(function(e){l&&(i.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:Yr(t)),vt(i.wrapper.ownerDocument,"mouseup",c),vt(i.wrapper.ownerDocument,"mousemove",u),vt(i.scroller,"dragstart",h),vt(i.scroller,"drop",c),o||(Ot(e),r.addNew||No(t.doc,n,null,null,r.extend),l&&!f||s&&9==a?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},h=function(){return o=!0};l&&(i.scroller.draggable=!0),t.state.draggingText=c,c.copy=!r.moveOnDrag,pt(i.wrapper.ownerDocument,"mouseup",c),pt(i.wrapper.ownerDocument,"mousemove",u),pt(i.scroller,"dragstart",h),pt(i.scroller,"drop",c),t.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Ca(t,e,n){if("char"==n)return new oo(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new oo(oe(e.line,0),fe(t.doc,oe(e.line+1,0)));var r=n(t,e);return new oo(r.from,r.to)}function ka(t,e,n,r){s&&Yr(t);var i=t.display,o=t.doc;Ot(e);var a,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),a=l>-1?u[l]:new oo(n,n)):(a=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(a=new oo(n,n)),n=Rr(t,e,!0,!0),l=-1;else{var h=Ca(t,n,r.unit);a=r.extend?Ro(a,h.anchor,h.head,r.extend):h}r.addNew?-1==l?(l=u.length,Bo(o,so(t,u.concat([a]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Bo(o,so(t,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Io(o,l,a,U):(l=0,Bo(o,new io([a],0),U),c=o.sel);var f=n;function d(e){if(0!=se(f,e))if(f=e,"rectangle"==r.unit){for(var i=[],s=t.options.tabSize,u=I(Jt(o,n.line).text,n.ch,s),h=I(Jt(o,e.line).text,e.ch,s),d=Math.min(u,h),p=Math.max(u,h),g=Math.min(n.line,e.line),v=Math.min(t.lastLine(),Math.max(n.line,e.line));g<=v;g++){var m=Jt(o,g).text,y=$(m,d,s);d==p?i.push(new oo(oe(g,y),oe(g,y))):m.length>y&&i.push(new oo(oe(g,y),oe(g,$(m,p,s))))}i.length||i.push(new oo(n,n)),Bo(o,so(t,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var b,w=a,x=Ca(t,e,r.unit),O=w.anchor;se(x.anchor,O)>0?(b=x.head,O=ue(w.from(),x.anchor)):(b=x.anchor,O=ce(w.to(),x.head));var C=c.ranges.slice(0);C[l]=Sa(t,new oo(fe(o,O),b)),Bo(o,so(t,C,l),U)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(e){var n=++g,s=Rr(t,e,!0,"rectangle"==r.unit);if(s)if(0!=se(s,f)){t.curOp.focus=M(),d(s);var a=ei(i,o);(s.line>=a.to||s.linep.bottom?20:0;l&&setTimeout(Mi(t,(function(){g==n&&(i.scroller.scrollTop+=l,v(e))})),50)}}function m(e){t.state.selectingText=!1,g=1/0,e&&(Ot(e),i.input.focus()),vt(i.wrapper.ownerDocument,"mousemove",y),vt(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=Mi(t,(function(t){0!==t.buttons&&_t(t)?v(t):m(t)})),b=Mi(t,m);t.state.selectingText=b,pt(i.wrapper.ownerDocument,"mousemove",y),pt(i.wrapper.ownerDocument,"mouseup",b)}function Sa(t,e){var n=e.anchor,r=e.head,i=Jt(t.doc,n.line);if(0==se(n,r)&&n.sticky==r.sticky)return e;var o=ft(i);if(!o)return e;var s=ut(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l,c=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==c||c==o.length)return e;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=ut(o,r.ch,r.sticky),h=u-s||(r.ch-n.ch)*(1==a.level?-1:1);l=u==c-1||u==c?h<0:h>0}var f=o[c+(l?-1:0)],d=l==(1==f.level),p=d?f.from:f.to,g=d?"after":"before";return n.ch==p&&n.sticky==g?e:new oo(new oe(n.line,p,g),r)}function Pa(t,e,n,r){var i,o;if(e.touches)i=e.touches[0].clientX,o=e.touches[0].clientY;else try{i=e.clientX,o=e.clientY}catch(t){return!1}if(i>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;r&&Ot(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!wt(t,n))return kt(e);o-=a.top-s.viewOffset;for(var l=0;l=i)return mt(t,n,t,ne(t.doc,o),t.display.gutterSpecs[l].className,e),kt(e)}}function _a(t,e){return Pa(t,e,"gutterClick",!0)}function Ta(t,e){Un(t.display,e)||Ea(t,e)||yt(t,e,"contextmenu")||C||t.display.input.onContextMenu(e)}function Ea(t,e){return!!wt(t,"gutterContextMenu")&&Pa(t,e,"gutterContextMenu",!1)}function ja(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),fr(t)}va.prototype.compare=function(t,e,n){return this.time+ga>t&&0==se(e,this.pos)&&n==this.button};var Da={toString:function(){return"CodeMirror.Init"}},Ma={},Aa={};function La(t){var e=t.optionHandlers;function n(n,r,i,o){t.defaults[n]=r,i&&(e[n]=o?function(t,e,n){n!=Da&&i(t,e,n)}:i)}t.defineOption=n,t.Init=Da,n("value","",(function(t,e){return t.setValue(e)}),!0),n("mode",null,(function(t,e){t.doc.modeOption=e,po(t)}),!0),n("indentUnit",2,po,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(t){go(t),fr(t),Zr(t)}),!0),n("lineSeparator",null,(function(t,e){if(t.doc.lineSep=e,e){var n=[],r=t.doc.first;t.doc.iter((function(t){for(var i=0;;){var o=t.text.indexOf(e,i);if(-1==o)break;i=o+e.length,n.push(oe(r,o))}r++}));for(var i=n.length-1;i>=0;i--)is(t.doc,e,n[i],oe(n[i].line,n[i].ch+e.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Da&&t.refresh()})),n("specialCharPlaceholder",vn,(function(t){return t.refresh()}),!0),n("electricChars",!0),n("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(t,e){return t.getInputField().spellcheck=e}),!0),n("autocorrect",!1,(function(t,e){return t.getInputField().autocorrect=e}),!0),n("autocapitalize",!1,(function(t,e){return t.getInputField().autocapitalize=e}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(t){ja(t),Ji(t)}),!0),n("keyMap","default",(function(t,e,n){var r=Ws(e),i=n!=Da&&Ws(n);i&&i.detach&&i.detach(t,r),r.attach&&r.attach(t,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Na,!0),n("gutters",[],(function(t,e){t.display.gutterSpecs=Ki(e,t.options.lineNumbers),Ji(t)}),!0),n("fixedGutter",!0,(function(t,e){t.display.gutters.style.left=e?Mr(t.display)+"px":"0",t.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(t){return yi(t)}),!0),n("scrollbarStyle","native",(function(t){xi(t),yi(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(t,e){t.display.gutterSpecs=Ki(t.options.gutters,e),Ji(t)}),!0),n("firstLineNumber",1,Ji,!0),n("lineNumberFormatter",(function(t){return t}),Ji,!0),n("showCursorWhenSelecting",!1,zr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(t,e){"nocursor"==e&&(Xr(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)})),n("screenReaderLabel",null,(function(t,e){e=''===e?null:e,t.display.input.screenReaderLabelChanged(e)})),n("disableInput",!1,(function(t,e){e||t.display.input.reset()}),!0),n("dragDrop",!0,Ra),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zr,!0),n("singleCursorHeightPerLine",!0,zr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,go,!0),n("addModeClass",!1,go,!0),n("pollInterval",100),n("undoDepth",200,(function(t,e){return t.doc.history.undoDepth=e})),n("historyEventDelay",1250),n("viewportMargin",10,(function(t){return t.refresh()}),!0),n("maxHighlightLength",1e4,go,!0),n("moveInputWithCursor",!0,(function(t,e){e||t.display.input.resetPosition()})),n("tabindex",null,(function(t,e){return t.display.input.getField().tabIndex=e||""})),n("autofocus",null),n("direction","ltr",(function(t,e){return t.doc.setDirection(e)}),!0),n("phrases",null)}function Ra(t,e,n){if(!e!=!(n&&n!=Da)){var r=t.display.dragFunctions,i=e?pt:vt;i(t.display.scroller,"dragstart",r.start),i(t.display.scroller,"dragenter",r.enter),i(t.display.scroller,"dragover",r.over),i(t.display.scroller,"dragleave",r.leave),i(t.display.scroller,"drop",r.drop)}}function Na(t){t.options.lineWrapping?(A(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(P(t.display.wrapper,"CodeMirror-wrap"),ln(t)),Lr(t),Zr(t),fr(t),setTimeout((function(){return yi(t)}),100)}function Za(t,e){var n=this;if(!(this instanceof Za))return new Za(t,e);this.options=e=e?Z(e):{},Z(Ma,e,!1);var r=e.value;"string"==typeof r?r=new Cs(r,e.mode,null,e.lineSeparator,e.direction):e.mode&&(r.modeOption=e.mode),this.doc=r;var i=new Za.inputStyles[e.inputStyle](this),o=this.display=new Xi(t,r,i,e);for(var c in o.wrapper.CodeMirror=this,ja(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),xi(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},e.autofocus&&!m&&o.input.focus(),s&&a<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Ia(this),Ds(),Ci(this),this.curOp.forceUpdate=!0,bo(this,r),e.autofocus&&!m||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Jr(n)}),20):Xr(this),Aa)Aa.hasOwnProperty(c)&&Aa[c](this,e[c],Da);Gi(this),e.finishInit&&e.finishInit(this);for(var u=0;u400}pt(e.scroller,"touchstart",(function(i){if(!yt(t,i)&&!o(i)&&!_a(t,i)){e.input.ensurePolled(),clearTimeout(n);var s=+new Date;e.activeTouch={start:s,moved:!1,prev:s-r.end<=300?r:null},1==i.touches.length&&(e.activeTouch.left=i.touches[0].pageX,e.activeTouch.top=i.touches[0].pageY)}})),pt(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),pt(e.scroller,"touchend",(function(n){var r=e.activeTouch;if(r&&!Un(e,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,s=t.coordsChar(e.activeTouch,"page");o=!r.prev||l(r,r.prev)?new oo(s,s):!r.prev.prev||l(r,r.prev.prev)?t.findWordAt(s):new oo(oe(s.line,0),fe(t.doc,oe(s.line+1,0))),t.setSelection(o.anchor,o.head),t.focus(),Ot(n)}i()})),pt(e.scroller,"touchcancel",i),pt(e.scroller,"scroll",(function(){e.scroller.clientHeight&&(fi(t,e.scroller.scrollTop),pi(t,e.scroller.scrollLeft,!0),mt(t,"scroll",t))})),pt(e.scroller,"mousewheel",(function(e){return ro(t,e)})),pt(e.scroller,"DOMMouseScroll",(function(e){return ro(t,e)})),pt(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(e){yt(t,e)||St(e)},over:function(e){yt(t,e)||(_s(t,e),St(e))},start:function(e){return Ps(t,e)},drop:Mi(t,Ss),leave:function(e){yt(t,e)||Ts(t)}};var c=e.input.getField();pt(c,"keyup",(function(e){return ha.call(t,e)})),pt(c,"keydown",Mi(t,ca)),pt(c,"keypress",Mi(t,fa)),pt(c,"focus",(function(e){return Jr(t,e)})),pt(c,"blur",(function(e){return Xr(t,e)}))}Za.defaults=Ma,Za.optionHandlers=Aa;var Fa=[];function Va(t,e,n,r){var i,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=be(t,e).state:n="prev");var s=t.options.tabSize,a=Jt(o,e),l=I(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(r||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(i,a.text.slice(u.length),a.text))==B||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?I(Jt(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var h="",f=0;if(t.options.indentWithTabs)for(var d=Math.floor(c/s);d;--d)f+=s,h+="\t";if(fs,l=Lt(e),c=null;if(a&&r.ranges.length>1)if(Ha&&Ha.text.join("\n")==e){if(r.ranges.length%Ha.text.length==0){c=[];for(var u=0;u=0;f--){var d=r.ranges[f],p=d.from(),g=d.to();d.empty()&&(n&&n>0?p=oe(p.line,p.ch-n):t.state.overwrite&&!a?g=oe(g.line,Math.min(Jt(o,g.line).text.length,g.ch+K(l).length)):a&&Ha&&Ha.lineWise&&Ha.text.join("\n")==l.join("\n")&&(p=g=oe(p.line,0)));var v={from:p,to:g,text:c?c[f%c.length]:l,origin:i||(a?"paste":t.state.cutIncoming>s?"cut":"+input")};Xo(t.doc,v),En(t,"inputRead",t,v)}e&&!a&&Wa(t,e),ai(t),t.curOp.updateInput<2&&(t.curOp.updateInput=h),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Ua(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||Di(e,(function(){return za(e,n,0,null,"paste")})),!0}function Wa(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=t.getModeAt(i.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Va(t,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Jt(t.doc,i.head.line).text.slice(0,i.head.ch))&&(s=Va(t,i.head.line,"smart"));s&&En(t,"electricInput",t,i.head.line)}}}function $a(t){for(var e=[],n=[],r=0;rn&&(Va(this,i.head.line,t,!0),n=i.head.line,r==this.doc.sel.primIndex&&ai(this));else{var o=i.from(),s=i.to(),a=Math.max(n,o.line);n=Math.min(this.lastLine(),s.line-(s.ch?0:1))+1;for(var l=a;l0&&Io(this.doc,r,new oo(o,c[r].to()),z)}}})),getTokenAt:function(t,e){return ke(this,t,e)},getLineTokens:function(t,e){return ke(this,oe(t),e,!0)},getTokenTypeAt:function(t){t=fe(this.doc,t);var e,n=ye(this,Jt(this.doc,t.line)),r=0,i=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=r+i>>1;if((s?n[2*s-1]:0)>=o)i=s;else{if(!(n[2*s+1]o&&(t=o,i=!0),r=Jt(this.doc,t)}else r=t;return vr(this,r,{top:0,left:0},e||"page",n||i).top+(i?this.doc.height-sn(r):0)},defaultTextHeight:function(){return Er(this.display)},defaultCharWidth:function(){return jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,r,i){var o=this.display,s=(t=br(this,fe(this.doc,t))).bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==r)s=t.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);('above'==r||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==i?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&ii(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:Ai(ca),triggerOnKeyPress:Ai(fa),triggerOnKeyUp:ha,triggerOnMouseDown:Ai(ya),execCommand:function(t){if(Js.hasOwnProperty(t))return Js[t].call(null,this)},triggerElectric:Ai((function(t){Wa(this,t)})),findPosH:function(t,e,n,r){var i=1;e<0&&(i=-1,e=-e);for(var o=fe(this.doc,t),s=0;s0&&s(e.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Lr(this),mt(this,"refresh",this)})),swapDoc:Ai((function(t){var e=this.doc;return e.cm=null,this.state.selectingText&&this.state.selectingText(),bo(this,t),fr(this),this.display.input.reset(),li(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,En(this,"swapDoc",this,e),e})),phrase:function(t){var e=this.options.phrases;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},xt(t),t.registerHelper=function(e,r,i){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][r]=i},t.registerGlobalHelper=function(e,r,i,o){t.registerHelper(e,r,o),n[e]._global.push({pred:i,val:o})}}function Ya(t,e,n,r,i){var o=e,s=n,a=Jt(t,e.line),l=i&&"rtl"==t.direction?-n:n;function c(){var n=e.line+l;return!(n=t.first+t.size)&&(e=new oe(n,e.ch,e.sticky),a=Jt(t,n))}function u(o){var s;if("codepoint"==r){var u=a.text.charCodeAt(e.ch+(n>0?0:-1));if(isNaN(u))s=null;else{var h=n>0?u>=55296&&u<56320:u>=56320&&u<57343;s=new oe(e.line,Math.max(0,Math.min(a.text.length,e.ch+n*(h?2:1))),-n)}}else s=i?Ys(t.cm,a,e,n):Gs(a,e,n);if(null==s){if(o||!c())return!1;e=Ks(i,t.cm,a,e.line,l)}else e=s;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var h=null,f="group"==r,d=t.cm&&t.cm.getHelper(e,"wordChars"),p=!0;!(n<0)||u(!p);p=!1){var g=a.text.charAt(e.ch)||"\n",v=nt(g,d)?"w":f&&"\n"==g?"n":!f||/\s/.test(g)?null:"p";if(!f||p||v||(v="s"),h&&h!=v){n<0&&(n=1,u(),e.sticky="after");break}if(v&&(h=v),n>0&&!u(!p))break}var m=Go(t,e,o,s,!0);return ae(o,m)&&(m.hitSide=!0),m}function Ja(t,e,n,r){var i,o,s=t.doc,a=e.left;if("page"==r){var l=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Er(t.display),3);i=(n>0?e.bottom:e.top)+n*c}else"line"==r&&(i=n>0?e.bottom+3:e.top-3);for(;(o=Or(t,a,i)).outside;){if(n<0?i<=0:i>=s.height){o.hitSide=!0;break}i+=5*n}return o}var Xa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qa(t,e){var n=er(t,e.line);if(!n||n.hidden)return null;var r=Jt(t.doc,e.line),i=Xn(n,r,e.line),o=ft(r,t.doc.direction),s="left";o&&(s=ut(o,e.ch)%2?"right":"left");var a=sr(i.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function tl(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function el(t,e){return e&&(t.bad=!0),t}function nl(t,e,n,r,i){var o="",s=!1,a=t.doc.lineSeparator(),l=!1;function c(t){return function(e){return e.id==t}}function u(){s&&(o+=a,l&&(o+=a),s=l=!1)}function h(t){t&&(u(),o+=t)}function f(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(n)return void h(n);var o,d=e.getAttribute("cm-marker");if(d){var p=t.findMarks(oe(r,0),oe(i+1,0),c(+d));return void(p.length&&(o=p[0].find(0))&&h(Xt(t.doc,o.from,o.to).join(a)))}if("false"==e.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;g&&u();for(var v=0;v=e.display.viewTo||o.line=e.display.viewFrom&&Qa(e,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(s=oe(s.line-1,Jt(r.doc,s.line-1).length)),a.ch==Jt(r.doc,a.line).text.length&&a.linei.viewTo-1)return!1;s.line==i.viewFrom||0==(t=Nr(r,s.line))?(e=ee(i.view[0].line),n=i.view[0].node):(e=ee(i.view[t].line),n=i.view[t-1].node.nextSibling);var l,c,u=Nr(r,a.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ee(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var h=r.doc.splitLines(nl(r,n,c,e,l)),f=Xt(r.doc,oe(e,0),oe(l,Jt(r.doc,l).text.length));h.length>1&&f.length>1;)if(K(h)==K(f))h.pop(),f.pop(),l--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),e++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);ds.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(d).replace(/\u200b+$/,"");var x=oe(e,d),O=oe(l,f.length?K(f).length-p:0);return h.length>1||h[0]||se(x,O)?(is(r.doc,h,x,O,"+input"),!0):void 0},Xa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Xa.prototype.reset=function(){this.forceCompositionEnd()},Xa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Xa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()}),80))},Xa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||Di(this.cm,(function(){return Zr(t.cm)}))},Xa.prototype.setUneditable=function(t){t.contentEditable="false"},Xa.prototype.onKeyPress=function(t){0==t.charCode||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Mi(this.cm,za)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Xa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Xa.prototype.onContextMenu=function(){},Xa.prototype.resetPosition=function(){},Xa.prototype.needsContentAttribute=!0;var ol=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};function sl(t,e){if((e=e?Z(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var n=M();e.autofocus=n==t||null!=t.getAttribute("autofocus")&&n==document.body}function r(){t.value=a.getValue()}var i;if(t.form&&(pt(t.form,"submit",r),!e.leaveSubmitMethodAlone)){var o=t.form;i=o.submit;try{var s=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=s}}catch(t){}}e.finishInit=function(n){n.save=r,n.getTextArea=function(){return t},n.toTextArea=function(){n.toTextArea=isNaN,r(),t.parentNode.removeChild(n.getWrapperElement()),t.style.display="",t.form&&(vt(t.form,"submit",r),e.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var a=Za((function(e){return t.parentNode.insertBefore(e,t.nextSibling)}),e);return a}function al(t){t.off=vt,t.on=pt,t.wheelEventPixels=no,t.Doc=Cs,t.splitLines=Lt,t.countColumn=I,t.findColumn=$,t.isWordChar=et,t.Pass=B,t.signal=mt,t.Line=cn,t.changeEnd=lo,t.scrollbarModel=wi,t.Pos=oe,t.cmpPos=se,t.modes=Ft,t.mimeModes=Vt,t.resolveMode=zt,t.getMode=Ut,t.modeExtensions=Wt,t.extendMode=$t,t.copyState=qt,t.startState=Kt,t.innerMode=Gt,t.commands=Js,t.keyMap=Is,t.keyName=Us,t.isModifierKey=Bs,t.lookupKey=Hs,t.normalizeKeyMap=Vs,t.StringStream=Yt,t.SharedTextMarker=ms,t.TextMarker=gs,t.LineWidget=hs,t.e_preventDefault=Ot,t.e_stopPropagation=Ct,t.e_stop=St,t.addClass=A,t.contains=D,t.rmClass=P,t.keyNames=Ls}ol.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(t){if(!yt(r,t)){if(r.somethingSelected())Ba({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=$a(r);Ba({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,z):(n.prevInput="",i.value=e.text.join("\n"),R(i))}"cut"==t.type&&(r.state.cutIncoming=+new Date)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),g&&(i.style.width="0px"),pt(i,"input",(function(){s&&a>=9&&e.hasSelection&&(e.hasSelection=null),n.poll()})),pt(i,"paste",(function(t){yt(r,t)||Ua(t,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pt(i,"cut",o),pt(i,"copy",o),pt(t.scroller,"paste",(function(e){if(!Un(t,e)&&!yt(r,e)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=e.clipboardData,i.dispatchEvent(o)}})),pt(t.lineSpace,"selectstart",(function(e){Un(t,e)||Ot(e)})),pt(i,"compositionstart",(function(){var t=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pt(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},ol.prototype.createField=function(t){this.wrapper=Ga(),this.textarea=this.wrapper.firstChild},ol.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute('aria-label',t):this.textarea.removeAttribute('aria-label')},ol.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,r=Ur(t);if(t.options.moveInputWithCursor){var i=br(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,i.top+s.top-o.top)),r.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,i.left+s.left-o.left))}return r},ol.prototype.showSelection=function(t){var e=this.cm.display;T(e.cursorDiv,t.cursors),T(e.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},ol.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&R(this.textarea),s&&a>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",s&&a>=9&&(this.hasSelection=null))}},ol.prototype.getField=function(){return this.textarea},ol.prototype.supportsTouch=function(){return!1},ol.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||M()!=this.textarea))try{this.textarea.focus()}catch(t){}},ol.prototype.blur=function(){this.textarea.blur()},ol.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ol.prototype.receivedFocus=function(){this.slowPoll()},ol.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){t.poll(),t.cm.state.focused&&t.slowPoll()}))},ol.prototype.fastPoll=function(){var t=!1,e=this;function n(){e.poll()||t?(e.pollingFast=!1,e.slowPoll()):(t=!0,e.polling.set(60,n))}e.pollingFast=!0,e.polling.set(20,n)},ol.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||Rt(n)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var i=n.value;if(i==r&&!e.somethingSelected())return!1;if(s&&a>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=i,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ol.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ol.prototype.onKeyPress=function(){s&&a>=9&&(this.hasSelection=null),this.fastPoll()},ol.prototype.onContextMenu=function(t){var e=this,n=e.cm,r=n.display,i=e.textarea;e.contextMenuPending&&e.contextMenuPending();var o=Rr(n,t),c=r.scroller.scrollTop;if(o&&!h){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Mi(n,Bo)(n.doc,ao(o),z);var u,f=i.style.cssText,d=e.wrapper.style.cssText,p=e.wrapper.offsetParent.getBoundingClientRect();if(e.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-p.top-5)+"px; left: "+(t.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(s?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=e.prevInput=" "),e.contextMenuPending=m,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),s&&a>=9&&v(),C){St(t);var g=function(){vt(window,"mouseup",g),setTimeout(m,20)};pt(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var t=n.somethingSelected(),o="​"+(t?i.value:"");i.value="⇚",i.value=o,e.prevInput=t?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function m(){if(e.contextMenuPending==m&&(e.contextMenuPending=!1,e.wrapper.style.cssText=d,i.style.cssText=f,s&&a<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!s||s&&a<9)&&v();var t=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==e.prevInput?Mi(n,Yo)(n):t++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},ol.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t,this.textarea.readOnly=!!t},ol.prototype.setUneditable=function(){},ol.prototype.needsContentAttribute=!1,La(Za),Ka(Za);var ll="iter insert remove copy getEditor constructor".split(" ");for(var cl in Cs.prototype)Cs.prototype.hasOwnProperty(cl)&&V(ll,cl)<0&&(Za.prototype[cl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Cs.prototype[cl]));return xt(Cs),Za.inputStyles={textarea:ol,contenteditable:Xa},Za.defineMode=function(t){Za.defaults.mode||"null"==t||(Za.defaults.mode=t),Ht.apply(this,arguments)},Za.defineMIME=Bt,Za.defineMode("null",(function(){return{token:function(t){return t.skipToEnd()}}})),Za.defineMIME("text/plain","null"),Za.defineExtension=function(t,e){Za.prototype[t]=e},Za.defineDocExtension=function(t,e){Cs.prototype[t]=e},Za.fromTextArea=sl,al(Za),Za.version="5.63.0",Za}()},6629:(t,e,n)=>{!function(t){"use strict";function e(t){for(var e={},n=0;n*\/]/.test(n)?O(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?O("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?O(null,n):t.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(t.current())&&(e.tokenize=S),O("variable callee","variable")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),O("property","word")):O(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),O("number","unit")):t.match(/^-[\w\\\-]*/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?O("variable-2","variable-definition"):O("variable-2","variable")):t.match(/^\w+-/)?O("meta","meta"):void 0}function k(t){return function(e,n){for(var r,i=!1;null!=(r=e.next());){if(r==t&&!i){")"==t&&e.backUp(1);break}i=!i&&"\\"==r}return(r==t||!i&&")"!=t)&&(n.tokenize=null),O("string","string")}}function S(t,e){return t.next(),t.match(/^\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=k(")"),O(null,"(")}function P(t,e,n){this.type=t,this.indent=e,this.prev=n}function _(t,e,n,r){return t.context=new P(n,e.indentation()+(!1===r?0:s),t.context),n}function T(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function E(t,e,n){return M[n.context.type](t,e,n)}function j(t,e,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(t,e,n)}function D(t){var e=t.current().toLowerCase();o=m.hasOwnProperty(e)?"atom":v.hasOwnProperty(e)?"keyword":"variable"}var M={top:function(t,e,n){if("{"==t)return _(n,e,"block");if("}"==t&&n.context.prev)return T(n);if(w&&/@component/i.test(t))return _(n,e,"atComponentBlock");if(/^@(-moz-)?document$/i.test(t))return _(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(t))return _(n,e,"atBlock");if(/^@(font-face|counter-style)/i.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return _(n,e,"at");if("hash"==t)o="builtin";else if("word"==t)o="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return _(n,e,"interpolation");if(":"==t)return"pseudo";if(y&&"("==t)return _(n,e,"parens")}return n.context.type},block:function(t,e,n){if("word"==t){var r=e.current().toLowerCase();return f.hasOwnProperty(r)?(o="property","maybeprop"):d.hasOwnProperty(r)?(o=x?"string-2":"property","maybeprop"):y?(o=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==t?"block":y||"hash"!=t&&"qualifier"!=t?M.top(t,e,n):(o="error","block")},maybeprop:function(t,e,n){return":"==t?_(n,e,"prop"):E(t,e,n)},prop:function(t,e,n){if(";"==t)return T(n);if("{"==t&&y)return _(n,e,"propBlock");if("}"==t||"{"==t)return j(t,e,n);if("("==t)return _(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)D(e);else if("interpolation"==t)return _(n,e,"interpolation")}else o+=" error";return"prop"},propBlock:function(t,e,n){return"}"==t?T(n):"word"==t?(o="property","maybeprop"):n.context.type},parens:function(t,e,n){return"{"==t||"}"==t?j(t,e,n):")"==t?T(n):"("==t?_(n,e,"parens"):"interpolation"==t?_(n,e,"interpolation"):("word"==t&&D(e),"parens")},pseudo:function(t,e,n){return"meta"==t?"pseudo":"word"==t?(o="variable-3",n.context.type):E(t,e,n)},documentTypes:function(t,e,n){return"word"==t&&l.hasOwnProperty(e.current())?(o="tag",n.context.type):M.atBlock(t,e,n)},atBlock:function(t,e,n){if("("==t)return _(n,e,"atBlock_parens");if("}"==t||";"==t)return j(t,e,n);if("{"==t)return T(n)&&_(n,e,y?"block":"top");if("interpolation"==t)return _(n,e,"interpolation");if("word"==t){var r=e.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":h.hasOwnProperty(r)?"keyword":f.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?x?"string-2":"property":m.hasOwnProperty(r)?"atom":v.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(t,e,n){return"}"==t?j(t,e,n):"{"==t?T(n)&&_(n,e,y?"block":"top",!1):("word"==t&&(o="error"),n.context.type)},atBlock_parens:function(t,e,n){return")"==t?T(n):"{"==t||"}"==t?j(t,e,n,2):M.atBlock(t,e,n)},restricted_atBlock_before:function(t,e,n){return"{"==t?_(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(t,e,n)},restricted_atBlock:function(t,e,n){return"}"==t?(n.stateArg=null,T(n)):"word"==t?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(t,e,n){return"word"==t?(o="variable","keyframes"):"{"==t?_(n,e,"top"):E(t,e,n)},at:function(t,e,n){return";"==t?T(n):"{"==t||"}"==t?j(t,e,n):("word"==t?o="tag":"hash"==t&&(o="builtin"),"at")},interpolation:function(t,e,n){return"}"==t?T(n):"{"==t||";"==t?j(t,e,n):("word"==t?o="variable":"variable"!=t&&"("!=t&&")"!=t&&(o="error"),"interpolation")}};return{startState:function(t){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new P(r?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||C)(t,e);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(e.state=M[e.state](i,t,e)),o},indent:function(t,e){var n=t.context,r=e&&e.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-s)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=e(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=e(i),s=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],a=e(s),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=e(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],h=e(u),f=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(f),p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=e(y),w=n.concat(i).concat(s).concat(l).concat(u).concat(f).concat(v).concat(y);function x(t,e){for(var n,r=!1;null!=(n=t.next());){if(r&&"/"==n){e.tokenize=null;break}r="*"==n}return["comment","comment"]}t.registerHelper("hintWords","css",w),t.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=x,x(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=x,x(t,e)):["operator","operator"]},":":function(t){return!!t.match(/^\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=x,x(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:a,propertyKeywords:h,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=x,x(t,e))}},name:"css",helperType:"gss"})}(n(4631))},6531:(t,e,n)=>{!function(t){"use strict";var e={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(t,e,n){var r=t.current(),i=r.search(e);return i>-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}var r={};function i(t){var e=r[t];return e||(r[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(t,e){var n=t.match(i(e));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function s(t,e){return new RegExp((e?"^":"")+"","i")}function a(t,e){for(var n in t)for(var r=e[n]||(e[n]=[]),i=t[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(t,e){for(var n=0;n=0;f--)c.script.unshift(["type",h[f].matches,h[f].mode]);function d(e,i){var a,u=o.token(e,i.htmlState),h=/\btag\b/.test(u);if(h&&!/[<>\s\/]/.test(e.current())&&(a=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(a))i.inTag=a+" ";else if(i.inTag&&h&&/>$/.test(e.current())){var f=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var p=">"==e.current()&&l(c[f[1]],f[2]),g=t.getMode(r,p),v=s(f[1],!0),m=s(f[1],!1);i.token=function(t,e){return t.match(v,!1)?(e.token=d,e.localState=e.localMode=null,null):n(t,m,e.localMode.token(t,e.localState))},i.localMode=g,i.localState=t.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=e.current(),e.eol()&&(i.inTag+=" "));return u}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(o)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(o,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?o.indent(e.htmlState,n,r):e.localMode.indent?e.localMode.indent(e.localState,n,r):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||o}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(4631),n(9589),n(6876),n(6629))},6876:(t,e,n)=>{!function(t){"use strict";t.defineMode("javascript",(function(e,n){var r,i,o=e.indentUnit,s=n.statementIndent,a=n.jsonld,l=n.json||a,c=!1!==n.trackScope,u=n.typescript,h=n.wordCharacters||/[\w$\xa1-\uffff]/,f=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"),s={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:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:r,export:t("export"),import:t("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(t){for(var e,n=!1,r=!1;null!=(e=t.next());){if(!n){if("/"==e&&!r)return;"["==e?r=!0:r&&"]"==e&&(r=!1)}n=!n&&"\\"==e}}function v(t,e,n){return r=t,i=n,e}function m(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=y(n),e.tokenize(t,e);if("."==n&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return v("number","number");if("."==n&&t.match(".."))return v("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return v(n);if("="==n&&t.eat(">"))return v("=>","operator");if("0"==n&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return v("number","number");if(/\d/.test(n))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),v("number","number");if("/"==n)return t.eat("*")?(e.tokenize=b,b(t,e)):t.eat("/")?(t.skipToEnd(),v("comment","comment")):ie(t,e,1)?(g(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),v("regexp","string-2")):(t.eat("="),v("operator","operator",t.current()));if("`"==n)return e.tokenize=w,w(t,e);if("#"==n&&"!"==t.peek())return t.skipToEnd(),v("meta","meta");if("#"==n&&t.eatWhile(h))return v("variable","property");if("<"==n&&t.match("!--")||"-"==n&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),v("comment","comment");if(d.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-|&?]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),"?"==n&&t.eat(".")?v("."):v("operator","operator",t.current());if(h.test(n)){t.eatWhile(h);var r=t.current();if("."!=e.lastType){if(f.propertyIsEnumerable(r)){var i=f[r];return v(i.type,i.style,r)}if("async"==r&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return v("async","keyword",r)}return v("variable","variable",r)}}function y(t){return function(e,n){var r,i=!1;if(a&&"@"==e.peek()&&e.match(p))return n.tokenize=m,v("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=m),v("string","string")}}function b(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=m;break}r="*"==n}return v("comment","comment")}function w(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=m;break}r=!r&&"\\"==n}return v("quasi","string-2",t.current())}var x="([{}])";function O(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));r&&(n=r.index)}for(var i=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=x.indexOf(a);if(l>=0&&l<3){if(!i){++s;break}if(0==--i){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(h.test(a))o=!0;else if(/["'\/`]/.test(a))for(;;--s){if(0==s)return;if(t.string.charAt(s-1)==a&&"\\"!=t.string.charAt(s-2)){s--;break}}else if(o&&!i){++s;break}}o&&!i&&(e.fatArrowAt=s)}}var C={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function k(t,e,n,r,i,o){this.indented=t,this.column=e,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(t,e){if(!c)return!1;for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var r=t.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==e)return!0}function P(t,e,n,r,i){var o=t.cc;for(_.state=t,_.stream=i,_.marked=null,_.cc=o,_.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;)if((o.length?o.pop():l?W:z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&S(t,r)?"variable-2":e}}var _={state:null,column:null,marked:null,cc:null};function T(){for(var t=arguments.length-1;t>=0;t--)_.cc.push(arguments[t])}function E(){return T.apply(null,arguments),!0}function j(t,e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}function D(t){var e=_.state;if(_.marked="def",c){if(e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=M(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new R(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new R(t,e.globalVars))}}function M(t,e){if(e){if(e.block){var n=M(t,e.prev);return n?n==e.prev?e:new L(n,e.vars,!0):null}return j(t,e.vars)?e:new L(e.prev,new R(t,e.vars),!1)}return null}function A(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function L(t,e,n){this.prev=t,this.vars=e,this.block=n}function R(t,e){this.name=t,this.next=e}var N=new R("this",new R("arguments",null));function Z(){_.state.context=new L(_.state.context,_.state.localVars,!1),_.state.localVars=N}function I(){_.state.context=new L(_.state.context,_.state.localVars,!0),_.state.localVars=null}function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function V(t,e){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new k(r,_.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function H(){var t=_.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function B(t){function e(n){return n==t?E():";"==t||"}"==n||")"==n||"]"==n?T():E(e)}return e}function z(t,e){return"var"==t?E(V("vardef",e),Tt,B(";"),H):"keyword a"==t?E(V("form"),q,z,H):"keyword b"==t?E(V("form"),z,H):"keyword d"==t?_.stream.match(/^\s*$/,!1)?E():E(V("stat"),K,B(";"),H):"debugger"==t?E(B(";")):"{"==t?E(V("}"),I,ft,H,F):";"==t?E():"if"==t?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==H&&_.state.cc.pop()(),E(V("form"),q,z,H,Lt)):"function"==t?E(It):"for"==t?E(V("form"),I,Rt,z,F,H):"class"==t||u&&"interface"==e?(_.marked="keyword",E(V("form","class"==t?t:e),zt,H)):"variable"==t?u&&"declare"==e?(_.marked="keyword",E(z)):u&&("module"==e||"enum"==e||"type"==e)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==e?E(ee):"type"==e?E(Vt,B("operator"),mt,B(";")):E(V("form"),Et,B("{"),V("}"),ft,H,H)):u&&"namespace"==e?(_.marked="keyword",E(V("form"),W,z,H)):u&&"abstract"==e?(_.marked="keyword",E(z)):E(V("stat"),ot):"switch"==t?E(V("form"),q,B("{"),V("}","switch"),I,ft,H,H,F):"case"==t?E(W,B(":")):"default"==t?E(B(":")):"catch"==t?E(V("form"),Z,U,z,H,F):"export"==t?E(V("stat"),qt,H):"import"==t?E(V("stat"),Kt,H):"async"==t?E(z):"@"==e?E(W,z):T(V("stat"),W,B(";"),H)}function U(t){if("("==t)return E(Ht,B(")"))}function W(t,e){return G(t,e,!1)}function $(t,e){return G(t,e,!0)}function q(t){return"("!=t?T():E(V(")"),K,B(")"),H)}function G(t,e,n){if(_.state.fatArrowAt==_.stream.start){var r=n?et:tt;if("("==t)return E(Z,V(")"),ut(Ht,")"),H,B("=>"),r,F);if("variable"==t)return T(Z,Et,B("=>"),r,F)}var i=n?J:Y;return C.hasOwnProperty(t)?E(i):"function"==t?E(It,i):"class"==t||u&&"interface"==e?(_.marked="keyword",E(V("form"),Bt,H)):"keyword c"==t||"async"==t?E(n?$:W):"("==t?E(V(")"),K,B(")"),H,i):"operator"==t||"spread"==t?E(n?$:W):"["==t?E(V("]"),te,H,i):"{"==t?ht(at,"}",null,i):"quasi"==t?T(X,i):"new"==t?E(nt(n)):E()}function K(t){return t.match(/[;\}\)\],]/)?T():T(W)}function Y(t,e){return","==t?E(K):J(t,e,!1)}function J(t,e,n){var r=0==n?Y:J,i=0==n?W:$;return"=>"==t?E(Z,n?et:tt,F):"operator"==t?/\+\+|--/.test(e)||u&&"!"==e?E(r):u&&"<"==e&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(V(">"),ut(mt,">"),H,r):"?"==e?E(W,B(":"),i):E(i):"quasi"==t?T(X,r):";"!=t?"("==t?ht($,")","call",r):"."==t?E(st,r):"["==t?E(V("]"),K,B("]"),H,r):u&&"as"==e?(_.marked="keyword",E(mt,r)):"regexp"==t?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),E(i)):void 0:void 0}function X(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(X):E(K,Q)}function Q(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(X)}function tt(t){return O(_.stream,_.state),T("{"==t?z:W)}function et(t){return O(_.stream,_.state),T("{"==t?z:$)}function nt(t){return function(e){return"."==e?E(t?it:rt):"variable"==e&&u?E(St,t?J:Y):T(t?$:W)}}function rt(t,e){if("target"==e)return _.marked="keyword",E(Y)}function it(t,e){if("target"==e)return _.marked="keyword",E(J)}function ot(t){return":"==t?E(H,z):T(Y,B(";"),H)}function st(t){if("variable"==t)return _.marked="property",E()}function at(t,e){return"async"==t?(_.marked="property",E(at)):"variable"==t||"keyword"==_.style?(_.marked="property","get"==e||"set"==e?E(lt):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),E(ct))):"number"==t||"string"==t?(_.marked=a?"property":_.style+" property",E(ct)):"jsonld-keyword"==t?E(ct):u&&A(e)?(_.marked="keyword",E(at)):"["==t?E(W,dt,B("]"),ct):"spread"==t?E($,ct):"*"==e?(_.marked="keyword",E(at)):":"==t?T(ct):void 0;var n}function lt(t){return"variable"!=t?T(ct):(_.marked="property",E(It))}function ct(t){return":"==t?E($):"("==t?T(It):void 0}function ut(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var s=_.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),E((function(n,r){return n==e||r==e?T():T(t)}),r)}return i==e||o==e?E():n&&n.indexOf(";")>-1?T(t):E(B(e))}return function(n,i){return n==e||i==e?E():T(t,r)}}function ht(t,e,n){for(var r=3;r"),mt):"quasi"==t?T(xt,kt):void 0}function yt(t){if("=>"==t)return E(mt)}function bt(t){return t.match(/[\}\)\]]/)?E():","==t||";"==t?E(bt):T(wt,bt)}function wt(t,e){return"variable"==t||"keyword"==_.style?(_.marked="property",E(wt)):"?"==e||"number"==t||"string"==t?E(wt):":"==t?E(mt):"["==t?E(B("variable"),pt,B("]"),wt):"("==t?T(Ft,wt):t.match(/[;\}\)\],]/)?void 0:E()}function xt(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(xt):E(mt,Ot)}function Ot(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(xt)}function Ct(t,e){return"variable"==t&&_.stream.match(/^\s*[?:]/,!1)||"?"==e?E(Ct):":"==t?E(mt):"spread"==t?E(Ct):T(mt)}function kt(t,e){return"<"==e?E(V(">"),ut(mt,">"),H,kt):"|"==e||"."==t||"&"==e?E(mt):"["==t?E(mt,B("]"),kt):"extends"==e||"implements"==e?(_.marked="keyword",E(mt)):"?"==e?E(mt,B(":"),mt):void 0}function St(t,e){if("<"==e)return E(V(">"),ut(mt,">"),H,kt)}function Pt(){return T(mt,_t)}function _t(t,e){if("="==e)return E(mt)}function Tt(t,e){return"enum"==e?(_.marked="keyword",E(ee)):T(Et,dt,Mt,At)}function Et(t,e){return u&&A(e)?(_.marked="keyword",E(Et)):"variable"==t?(D(e),E()):"spread"==t?E(Et):"["==t?ht(Dt,"]"):"{"==t?ht(jt,"}"):void 0}function jt(t,e){return"variable"!=t||_.stream.match(/^\s*:/,!1)?("variable"==t&&(_.marked="property"),"spread"==t?E(Et):"}"==t?T():"["==t?E(W,B(']'),B(':'),jt):E(B(":"),Et,Mt)):(D(e),E(Mt))}function Dt(){return T(Et,Mt)}function Mt(t,e){if("="==e)return E($)}function At(t){if(","==t)return E(Tt)}function Lt(t,e){if("keyword b"==t&&"else"==e)return E(V("form","else"),z,H)}function Rt(t,e){return"await"==e?E(Rt):"("==t?E(V(")"),Nt,H):void 0}function Nt(t){return"var"==t?E(Tt,Zt):"variable"==t?E(Zt):T(Zt)}function Zt(t,e){return")"==t?E():";"==t?E(Zt):"in"==e||"of"==e?(_.marked="keyword",E(W,Zt)):T(W,Zt)}function It(t,e){return"*"==e?(_.marked="keyword",E(It)):"variable"==t?(D(e),E(It)):"("==t?E(Z,V(")"),ut(Ht,")"),H,gt,z,F):u&&"<"==e?E(V(">"),ut(Pt,">"),H,It):void 0}function Ft(t,e){return"*"==e?(_.marked="keyword",E(Ft)):"variable"==t?(D(e),E(Ft)):"("==t?E(Z,V(")"),ut(Ht,")"),H,gt,F):u&&"<"==e?E(V(">"),ut(Pt,">"),H,Ft):void 0}function Vt(t,e){return"keyword"==t||"variable"==t?(_.marked="type",E(Vt)):"<"==e?E(V(">"),ut(Pt,">"),H):void 0}function Ht(t,e){return"@"==e&&E(W,Ht),"spread"==t?E(Ht):u&&A(e)?(_.marked="keyword",E(Ht)):u&&"this"==t?E(dt,Mt):T(Et,dt,Mt)}function Bt(t,e){return"variable"==t?zt(t,e):Ut(t,e)}function zt(t,e){if("variable"==t)return D(e),E(Ut)}function Ut(t,e){return"<"==e?E(V(">"),ut(Pt,">"),H,Ut):"extends"==e||"implements"==e||u&&","==t?("implements"==e&&(_.marked="keyword"),E(u?mt:W,Ut)):"{"==t?E(V("}"),Wt,H):void 0}function Wt(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||u&&A(e))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",E(Wt)):"variable"==t||"keyword"==_.style?(_.marked="property",E($t,Wt)):"number"==t||"string"==t?E($t,Wt):"["==t?E(W,dt,B("]"),$t,Wt):"*"==e?(_.marked="keyword",E(Wt)):u&&"("==t?T(Ft,Wt):";"==t||","==t?E(Wt):"}"==t?E():"@"==e?E(W,Wt):void 0}function $t(t,e){if("!"==e)return E($t);if("?"==e)return E($t);if(":"==t)return E(mt,Mt);if("="==e)return E($);var n=_.state.lexical.prev;return T(n&&"interface"==n.info?Ft:It)}function qt(t,e){return"*"==e?(_.marked="keyword",E(Qt,B(";"))):"default"==e?(_.marked="keyword",E(W,B(";"))):"{"==t?E(ut(Gt,"}"),Qt,B(";")):T(z)}function Gt(t,e){return"as"==e?(_.marked="keyword",E(B("variable"))):"variable"==t?T($,Gt):void 0}function Kt(t){return"string"==t?E():"("==t?T(W):"."==t?T(Y):T(Yt,Jt,Qt)}function Yt(t,e){return"{"==t?ht(Yt,"}"):("variable"==t&&D(e),"*"==e&&(_.marked="keyword"),E(Xt))}function Jt(t){if(","==t)return E(Yt,Jt)}function Xt(t,e){if("as"==e)return _.marked="keyword",E(Yt)}function Qt(t,e){if("from"==e)return _.marked="keyword",E(W)}function te(t){return"]"==t?E():T(ut($,"]"))}function ee(){return T(V("form"),Et,B("{"),V("}"),ut(ne,"}"),H,H)}function ne(){return T(Et,Mt)}function re(t,e){return"operator"==t.lastType||","==t.lastType||d.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ie(t,e,n){return e.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}return F.lex=!0,H.lex=!0,{startState:function(t){var e={tokenize:m,lastType:"sof",cc:[],lexical:new k((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new L(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(),O(t,e)),e.tokenize!=b&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",P(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==b||e.tokenize==w)return t.Pass;if(e.tokenize!=m)return 0;var i,a=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==H)l=l.prev;else if(u!=Lt&&u!=F)break}for(;("stat"==l.type||"form"==l.type)&&("}"==a||(i=e.cc[e.cc.length-1])&&(i==Y||i==J)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;s&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,f=a==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==h&&"{"==a?l.indented:"form"==h?l.indented+o:"stat"==h?l.indented+(re(e,r)?s||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:a,jsonMode:l,expressionAllowed:ie,skipExpression:function(e){P(e,"atom","atom","true",new t.StringStream("",2,null))}}})),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/manifest+json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(4631))},9589:(t,e,n)=>{!function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode("xml",(function(r,i){var o,s,a=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 h(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return"<"==r?t.eat("!")?t.eat("[")?t.match("CDATA[")?n(p("atom","]]>")):null:t.match("--")?n(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(g(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=p("meta","?>"),"meta"):(o=t.eat("/")?"closeTag":"openTag",e.tokenize=f,"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 f(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=h,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){e.tokenize=h,e.state=w,e.tagName=e.tagStart=null;var r=e.tokenize(t,e);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=d(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function d(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=f;break}return"string"};return e.isInAttribute=!0,e}function p(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=h;break}n.next()}return t}}function g(t){return function(e,n){for(var r;null!=(r=e.next());){if("<"==r)return n.tokenize=g(t+1),n.tokenize(e,n);if(">"==r){if(1==t){n.tokenize=h;break}return n.tokenize=g(t-1),n.tokenize(e,n)}}return"meta"}}function v(t){return t&&t.toLowerCase()}function m(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function y(t){t.context&&(t.context=t.context.prev)}function b(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(v(n))||!l.contextGrabbers[v(n)].hasOwnProperty(v(e)))return;y(t)}}function w(t,e,n){return"openTag"==t?(n.tagStart=e.column(),x):"closeTag"==t?O:w}function x(t,e,n){return"word"==t?(n.tagName=e.current(),s="tag",S):l.allowMissingTagName&&"endTag"==t?(s="tag bracket",S(t,e,n)):(s="error",x)}function O(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(v(n.context.tagName))&&y(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(s="tag",C):(s="tag error",k)}return l.allowMissingTagName&&"endTag"==t?(s="tag bracket",C(t,e,n)):(s="error",k)}function C(t,e,n){return"endTag"!=t?(s="error",C):(y(n),w)}function k(t,e,n){return s="error",C(t,e,n)}function S(t,e,n){if("word"==t)return s="attribute",P;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(v(r))?b(n,r):(b(n,r),n.context=new m(n,r,i==n.indented)),w}return s="error",S}function P(t,e,n){return"equals"==t?_:(l.allowMissing||(s="error"),S(t,e,n))}function _(t,e,n){return"string"==t?T:"word"==t&&l.allowUnquoted?(s="string",S):(s="error",S(t,e,n))}function T(t,e,n){return"string"==t?T:S(t,e,n)}return h.isInText=!0,{startState:function(t){var e={tokenize:h,state:w,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;o=null;var n=e.tokenize(t,e);return(n||o)&&"comment"!=n&&(s=null,e.state=e.state(o||n,t,e),s&&(n="error"==s?n+" error":s)),n},indent:function(e,n,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+a;if(i&&i.noIndent)return t.Pass;if(e.tokenize!=f&&e.tokenize!=h)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==l.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+a*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(t){t.state==_&&(t.state=S)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:"closeTag"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(4631))},1030:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Q,evAdd:()=>B,evAll:()=>I,evClose:()=>q,evCustom:()=>W,evOpen:()=>$,evPfx:()=>F,evRemove:()=>z,evRemoveBefore:()=>U,evSelect:()=>V,evUpdate:()=>H,evUpload:()=>G,evUploadEnd:()=>Y,evUploadError:()=>J,evUploadRes:()=>X,evUploadStart:()=>K});var r=n(4942),i=n(9050),o=n(9304);const s={assets:[],noAssets:'',stylePrefix:'am-',upload:0,uploadName:'files',headers:{},params:{},credentials:'include',multiUpload:!0,autoAdd:!0,customFetch:null,uploadFile:null,embedAsBase64:!0,handleAdd:null,beforeUpload:null,showUrlInput:!0,custom:!1,dropzone:!1,openAssetsOnDrop:1,dropzoneContent:''};var a=n(2316),l=n.n(a),c=n(5671),u=n(3144),h=n(9340),f=n(3930),d=n(1120);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var g=function(t){(0,h.Z)(n,t);var e=p(n);function n(){return(0,c.Z)(this,n),e.apply(this,arguments)}return(0,u.Z)(n,[{key:"defaults",value:function(){return{type:'',src:''}}},{key:"getType",value:function(){return this.get('type')}},{key:"getSrc",value:function(){return this.get('src')}},{key:"getFilename",value:function(){return this.get('src').split('/').pop().split('?').shift()}},{key:"getExtension",value:function(){return this.getFilename().split('.').pop()}}]),n}(a.Model);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.className=this.pfx+'asset',this.listenTo(this.model,'destroy remove',this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},__getBhv:function(){var t=this.em,e=t&&t.get('AssetManager');return e&&e.__getBehaviour()||{}},template:function(){var t=this.pfx;return"\n
\n ").concat(this.getPreview(),"\n
\n
\n ").concat(this.getInfo(),"\n
\n
\n ⨯\n
\n ")},updateTarget:function(t){t&&t.set&&(t.set('attributes',(0,i.clone)(t.get('attributes'))),t.set('src',this.model.get('src')))},getPreview:function(){return''},getInfo:function(){return''},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}});var O,C,k=n(1629);const S=x.extend({events:{'click [data-toggle=asset-remove]':'onRemove',click:'onClick',dblclick:'onDblClick'},getPreview:function(){var t=this.pfx,e=this.ppfx,n=this.model.get('src');return(0,k.Z)(O||(O=(0,w.Z)(["\n
\n
\n "])),t,n,t,e)},getInfo:function(){var t=this.pfx,e=this.model,n=e.get('name'),r=e.get('width'),i=e.get('height'),o=e.get('unitDim'),s=r&&i?"".concat(r,"x").concat(i).concat(o):'';return n=n||e.getFilename(),(0,k.Z)(C||(C=(0,w.Z)(["\n
","
\n
","
\n "])),t,n,t,s)},init:function(t){var e=this.pfx;this.className+=" ".concat(e,"asset-image")},onClick:function(){var t=this.model,e=this.pfx,n=this.__getBhv().select,r=this.config.onClick,o=this.collection;o.trigger('deselectAll'),this.$el.addClass(e+'highlight'),(0,i.isFunction)(n)?n(t,!1):(0,i.isFunction)(r)?r(t):this.updateTarget(o.target)},onDblClick:function(){var t=this.em,e=this.model,n=this.__getBhv().select,r=this.config.onDblClick,o=this.collection,s=o.target,a=o.onSelect;(0,i.isFunction)(n)?n(e,!0):(0,i.isFunction)(r)?r(e):(this.updateTarget(s),t&&t.get('Modal').close()),(0,i.isFunction)(a)&&a(e)},onRemove:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}});var P=n(793);const _=l().Collection.extend(P.Z).extend({types:[{id:'image',model:b,view:S,isType:function(t){return'string'==typeof t?{type:'image',src:t}:t}}]});var T=n(4925),E=["pfx","ppfx","em"];const j=l().View.extend({events:{submit:'handleSubmit'},template:function(t){var e=t.pfx,n=t.ppfx,r=t.em,i=((0,T.Z)(t,E),'');return this.config.showUrlInput&&(i="\n
\n
\n \n
\n \n
\n
\n ")),"\n
\n
\n ").concat(i,"\n
\n
\n
\n
\n ")},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.em=this.config.em;var e=this.collection;this.listenTo(e,'reset',this.renderAssets),this.listenTo(e,'add',this.addToAsset),this.listenTo(e,'remove',this.removedAsset),this.listenTo(e,'deselectAll',this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e&&e.value.trim(),r=this.config.handleAdd;n&&(e.value='',this.getAssetsEl().scrollTop=0,r?r.bind(this)(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector(".".concat(this.pfx,"assets"))},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector(".".concat(this.pfx,"add-asset input"))),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.collection,i=this.config,o=new t.typeView({model:t,collection:r,config:i}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find(".".concat(this.pfx,"assets"));if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find(".".concat(t,"highlight")).removeClass("".concat(t,"highlight"))},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find(".".concat(this.pfx,"assets"));n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each((function(n){return t.addAsset(n,e)})),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className="".concat(this.ppfx,"asset-manager"),this.renderAssets(),this}});var D,M=n(9661);function A(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return L(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return L(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n
","
\n \n
\n \n "])),e,n,r,i?'disabled':'',o?'multiple':'')},events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.module=t.module,this.config=e,this.em=this.config.em,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.target=this.options.globalCollection||{},this.uploadId=this.pfx+'uploadFile',this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.multiUpload=void 0===e.multiUpload||e.multiUpload,this.events['change #'+this.uploadId]='uploadFile';var n=e.uploadFile;n?this.uploadFile=n.bind(this):!e.upload&&e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.module;t&&t.__propEv('asset:upload:start')},onUploadEnd:function(t){var e=this.$el,n=this.module;n&&n.__propEv('asset:upload:end',t);var r=e.find('input');r&&r.val('')},onUploadError:function(t){var e=this.module;console.error(t),this.onUploadEnd(t),e&&e.__propEv('asset:upload:error',t)},onUploadResponse:function(t,e){var n,r=this.module,i=this.config,o=this.target;try{n='string'==typeof t?JSON.parse(t):t}catch(e){n=t}r&&r.__propEv('asset:upload:response',n),i.autoAdd&&o&&o.add(n.data,{at:0}),this.onUploadEnd(t),e&&e(n)},uploadFile:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i=this.config,o=i.beforeUpload;if(!1!==(o&&o(r))){var s=new FormData,a=i.params,l=i.customFetch;for(var c in a)s.append(c,a[c]);if(this.multiUpload)for(var u=0;u").concat(r.dropzoneContent,"")),h(),'draggable'in o&&[o,a].forEach((function(t){t.ondragover=f,t.ondragleave=d,t.ondrop=p}))},render:function(){var t=this.$el,e=this.pfx,n=this.em;return t.html(this.template({title:n&&n.t('assetManager.uploadTitle'),uploadId:this.uploadId,disabled:this.disabled,multiUpload:this.multiUpload,pfx:e})),this.initDrop(),t.attr('class',e+'file-uploader'),this}},{embedAsBase64:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i={data:[]};if(FileReader){var o,s=[],a=/^(.+)\/(.+)$/,l=A(r);try{var c=function(){var t=o.value,e=new Promise((function(e,n){var r=new FileReader;r.addEventListener('load',(function(i){var o,s=t.name,l=a.exec(t.type);if('image'===(o=l?l[1]:t.type)){var c={src:r.result,name:s,type:o,height:0,width:0},u=new Image;u.addEventListener('error',(function(t){n(t)})),u.addEventListener('load',(function(){c.height=u.height,c.width=u.width,e(c)})),u.src=c.src}else e(o?{src:r.result,name:s,type:o}:r.result)})),r.addEventListener('error',(function(t){n(t)})),r.addEventListener('abort',(function(t){n('Aborted')})),r.readAsDataURL(t)}));s.push(e)};for(l.s();!(o=l.n()).done;)c()}catch(t){l.e(t)}finally{l.f()}Promise.all(s).then((function(t){i.data=t,n.onUploadResponse(i,e)}),(function(t){n.onUploadError(t)}))}else this.onUploadError(new Error('Unsupported platform, FileReader is not defined'))}});function N(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Z(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=(a=Z(Z({},s),r)).pStylePrefix,o=a,l=o.em;return this.config=a,this.em=l,i&&(a.stylePrefix=i+a.stylePrefix),t=new _([]),e=new _([]),this.all=t,this.__initListen(),t.on('add',(function(t){return n.getAllVisible().add(t)})),t.on('remove',(function(t){return n.getAllVisible().remove(t)})),this},__propEv:function(t){for(var e,n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=this.em.get('Commands');e.run(l,Z({types:['image'],select:function(){}},t))},close:function(){this.em.get('Commands').stop(l)},isOpen:function(){var t=this.em.get('Commands');return!(!t||!t.isActive(l))},add:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===n.at&&(n.at=0),t.add(e,n)},get:function(e){return t.where({src:e})[0]||null},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t,e){return this.__remove(t,e)},store:function(t){var e={},n=JSON.stringify(this.getAll().toJSON());return e[this.storageKey]=n,!t&&a.stm&&a.stm.store(e),e},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if('string'==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return this.__getBehaviour().container||n&&n.el},getAssetsEl:function(){return n.el.querySelector('[data-el=assets]')},render:function(t){if(!this.getConfig('custom')){var r=t||this.getAll().models;if(!n){var i=this.__viewParams();i.fu=this.FileUploader();var o=n&&n.el;(n=new j(Z({el:o},i))).render()}return e.reset(r),this.getContainer()}},__viewParams:function(){return{collection:e,globalCollection:t,config:a,module:this}},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return n},FileUploader:function(){return r||(r=new R(this.__viewParams())),r},onLoad:function(){var t=this;this.getAll().reset(a.assets);var e=this.em,n=this.events;e.on("run:".concat(l),(function(){return t.__propEv(n.open)})),e.on("stop:".concat(l),(function(){return t.__propEv(n.close)}))},postRender:function(t){a.dropzone&&r&&r.initDropzone(t)},setTarget:function(t){e.target=t},onSelect:function(t){e.onSelect=t},onClick:function(t){a.onClick=t},onDblClick:function(t){a.onDblClick=t},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=Z(Z({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},destroy:function(){t.stopListening(),e.stopListening(),t.reset(),e.reset(),r&&r.remove(),n&&n.remove(),[t,e,n,r].forEach((function(t){return null})),this._bhv={},this.all={},a={}}})}},6407:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>U,evAdd:()=>N,evAll:()=>L,evCustom:()=>z,evDrag:()=>V,evDragStart:()=>H,evDragStop:()=>B,evPfx:()=>R,evRemove:()=>I,evRemoveBefore:()=>F,evUpdate:()=>Z});var r=n(4942),i=n(9050),o=n(9304);const s={appendTo:'',appendOnClick:!1,blocks:[],custom:!1};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316),d=n.n(f);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var g=function(t){(0,c.Z)(n,t);var e=p(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{label:'',content:'',media:'',category:'',activate:!1,select:null,resetId:!1,disable:!1,onClick:null,attributes:{}}}},{key:"getId",value:function(){return this.id}},{key:"getLabel",value:function(){return this.get('label')}},{key:"getMedia",value:function(){return this.get('media')}},{key:"getContent",value:function(){return this.get('content')}},{key:"getCategoryLabel",value:function(){var t=this.get('category');return(0,i.isFunction)(t.get)?t.get('label'):t.label?t.label:t}}]),n}(f.Model);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var m=function(t){(0,c.Z)(n,t);var e=v(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Collection);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}m.prototype.model=g;var b=function(t){(0,c.Z)(n,t);var e=y(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{id:'',label:'',open:!0,attributes:{}}}}]),n}(f.Model);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var x=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Collection);x.prototype.model=b;var O=n(6183);const C=d().View.extend({events:{click:'handleClick',mousedown:'startDrag',dragstart:'handleDragStart',drag:'handleDrag',dragend:'handleDragEnd'},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model;this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change',this.render)},__getModule:function(){return this.em.get('BlockManager')},handleClick:function(t){var e=this.config,n=this.model,r=this.em,o=n.get('onClick')||e.appendOnClick;if(r.trigger('block:click',n,t),o){if((0,i.isFunction)(o))return o(n,r.getEditor(),{event:t});var s,a=e.getSorter(),l=n.get('content'),c=r.getSelected();if(a.setDropContent(l),c)if(a.validTarget(c.getEl(),l).valid)s=c;else{var u=c.parent();a.validTarget(u.getEl(),l).valid&&(s=u)}if(!s){var h=r.getWrapper();a.validTarget(h.getEl(),l).valid&&(s=h)}var f=s&&s.append(l)[0];f&&r.setSelected(f,{scroll:1})}},startDrag:function(t){var e=this.config,n=this.em,r=this.model.get('disable');if(0===t.button&&e.getSorter&&!this.el.draggable&&!r){n.refreshCanvas();var i=e.getSorter();i.setDragHelper(this.el,t),i.setDropContent(this.model.get('content')),i.startSort(this.el),(0,O.on)(document,'mouseup',this.endDrag)}},handleDragStart:function(t){this.__getModule().__startDrag(this.model,t)},handleDrag:function(t){this.__getModule().__drag(t)},handleDragEnd:function(){this.__getModule().__endDrag()},endDrag:function(t){(0,O.off)(document,'mouseup',this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.em,e=this.el,n=this.$el,r=this.ppfx,i=this.model,o=i.get('disable'),s=i.get('attributes')||{},a=s.class||'',l="".concat(r,"block"),c=t&&t.t("blockManager.labels.".concat(i.id))||i.get('label'),u=i.get('render'),h=i.get('media'),f=o?"".concat(l,"--disable"):"".concat(r,"four-color-h");n.attr(s),e.className="".concat(a," ").concat(l," ").concat(r,"one-bg ").concat(f).trim(),e.innerHTML="\n ".concat(h?"
").concat(h,"
"):'',"\n
").concat(c,"
\n "),e.title=s.title||e.textContent.trim(),e.setAttribute('draggable',!(!(0,O.hasDnd)(t)||o));var d=u&&u({el:e,model:i,className:l,prefix:r});return d&&(e.innerHTML=d),this}});var k,S=n(168),P=n(1629);function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var T=function(t){(0,c.Z)(n,t);var e=_(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.label;return(0,P.Z)(k||(k=(0,S.Z)(["\n
\n \n ","\n
\n
\n "])),e,e,n,e)}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initialize",value:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t;var e=t.pStylePrefix||'';this.em=t.em,this.pfx=e,this.caretR='fa fa-caret-right',this.caretD='fa fa-caret-down',this.iconClass="".concat(e,"caret-icon"),this.activeClass="".concat(e,"open"),this.className="".concat(e,"block-category"),this.events={},this.events["click .".concat(e,"title")]='toggle',this.listenTo(this.model,'change:open',this.updateVisibility),this.delegateEvents(),this.model.view=this}},{key:"updateVisibility",value:function(){this.model.get('open')?this.open():this.close()}},{key:"open",value:function(){this.$el.addClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretD),this.getBlocksEl().style.display=''}},{key:"close",value:function(){this.$el.removeClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretR),this.getBlocksEl().style.display='none'}},{key:"toggle",value:function(){var t=this.model;t.set('open',!t.get('open'))}},{key:"getIconEl",value:function(){return this.iconEl||(this.iconEl=this.el.querySelector('.'+this.iconClass)),this.iconEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector('.'+this.pfx+'blocks-c')),this.blocksEl}},{key:"append",value:function(t){this.getBlocksEl().appendChild(t)}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.pfx,o=t.t("blockManager.categories.".concat(r.id))||r.get('label');return e.innerHTML=this.template({pfx:i,label:o}),n.addClass(this.className),n.css({order:r.get('order')}),this.updateVisibility(),this}}]),n}(f.View);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=j(j({},this.config),t)},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get('Utils'),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:'a',wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger('block:drag:start',t)},onMove:function(t){this.em.trigger('block:drag:move',t)},onDrop:function(t){var e=this.em;if(e.runDefault(),t&&t.get){var n='activeOnRender';t.get(n)&&(t.trigger('active'),t.unset(n)),e.trigger('block:drag:stop',t)}},addTo:function(t){this.add(t)},add:function(t,e){var n=this.config,r=e||null,o=new C({model:t,attributes:t.get('attributes')},n).render().el,s=t.get('category');if(s&&this.categories&&!n.ignoreCategories){(0,i.isString)(s)?s={id:s,label:s}:(0,i.isObject)(s)&&!s.id&&(s.id=s.label);var a=this.categories.add(s),l=a.get('id'),c=this.renderedCategories[l],u=this.getCategoriesEl();return t.set('category',a,{silent:!0}),!c&&u&&(c=new T({model:a},this.config).render(),this.renderedCategories[l]=c,u.appendChild(c.el)),void(c&&c.append(o))}r?r.appendChild(o):this.append(o)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector(".".concat(this.catsClass))),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector(".".concat(this.noCatClass," .").concat(this.blockContClass))),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=this.ppfx,n=document.createDocumentFragment();this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML="\n
\n
\n
\n
\n "),this.collection.each((function(e){return t.add(e,n)})),this.append(n);var r="".concat(this.blockContClass,"s ").concat(e,"one-bg ").concat(e,"two-color");return this.$el.addClass(r),this.rendered=!0,this}});function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=r=A(A({},s),n),o=i.em;return this.em=o,t=new m(r.blocks),e=new m(t.models),a=new x,this.all=t,this.__initListen(),t.on('add',(function(t){return e.add(t)})),t.on('remove',(function(t){return e.remove(t)})),t.on('reset',(function(t){return e.reset(t.models)})),this},__trgCustom:function(){this.em.trigger(this.events.custom,this.__customData())},__customData:function(){var t=this,e=this.__getBehaviour();return{bm:this,blocks:this.getAll().models,container:e.container,dragStart:function(e,n){return t.startDrag(e,n)},drag:function(e){return t.__drag(e)},dragStop:function(e){return t.endDrag(e)}}},__startDrag:function(e,n){var r=this.em,i=this.events,o=e.getContent?e.getContent():e;this._dragBlock=e,r.set({dragResult:null,dragContent:o}),[r,t].map((function(t){return t.trigger(i.dragStart,e,n)}))},__drag:function(e){var n=this.em,r=this.events,i=this._dragBlock;[n,t].map((function(t){return t.trigger(r.drag,i,e)}))},__endDrag:function(){var e=this.em,n=this.events,r=this._dragBlock,o=e.get('dragResult');if(this._dragBlock=null,o){var s='activeOnRender',a=o.get&&o.get(s),l=r.get('activate')||a,c=r.get('select'),u=(0,i.isArray)(o)?o[0]:o;(c||l&&!1!==c)&&e.setSelected(u),l&&(u.trigger('active'),a&&u.unset(s)),r.get('resetId')&&u.onAll((function(t){return t.resetId()}))}e.set({dragResult:null,dragContent:null}),[e,t].map((function(t){return t.trigger(n.dragEnd,o,r)}))},__getFrameViews:function(){return this.em.get('Canvas').getFrames().map((function(t){return t.view}))},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=A(A({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},startDrag:function(t,e){this.__startDrag(t,e),this.__getFrameViews().forEach((function(t){return t.droppable.startCustom()}))},endDrag:function(t){this.__getFrameViews().forEach((function(e){return e.droppable.endCustom(t)})),this.__endDrag()},getConfig:function(){return r},postRender:function(){n=new D({collection:e,categories:a},r);var t=this.getConfig().appendTo;if(t){var o=(0,i.isElement)(t)?t:document.querySelector(t);if(!o)return this.__logWarn('"appendTo" element not found');o.appendChild(this.render(e.models))}this.__trgCustom()},add:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n||{};return i.id=e,t.add(i,r)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getCategories:function(){return a},getContainer:function(){return n.el},render:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t||this.getAll().models;if(e.external){var o=new m(i);return new D({collection:o,categories:a},A(A({},r),e)).render().el}return n&&(n.updateConfig(e),n.collection.reset(i),n.rendered||(n.render(),n.rendered=1)),this.getContainer()},destroy:function(){var i=[t,e,a];i.map((function(t){return t.stopListening()})),i.map((function(t){return t.reset()})),n&&n.remove(),r={},t={},e={},n={},a=[],this.all={}}})}},6950:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>F});var r=n(2982),i=n(4942),o=n(9050),s=n(6183);const a={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,extHl:0,notTextable:['button','a','input[type=checkbox]','input[type=radio]']};var l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(2316),p=n.n(d),g=n(2567),v=n(9065);function m(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var y=function(t){(0,u.Z)(n,t);var e=m(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frame:'',frames:'',rulers:!1,zoom:100,x:0,y:0,scripts:[],styles:[]}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.em;this.config=e,this.em=n,this.set('frames',new v.Z),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(n,'change:device',this.updateDevice),this.listenTo(n,g.evPageSelect,this._pageUpdated)}},{key:"init",value:function(){var t=this.em.get('PageManager').getMain(),e=t.getMainFrame();this.set('frames',t.getFrames()),this.updateDevice({frame:e})}},{key:"_pageUpdated",value:function(t,e){var n=this.em;n.setSelected(),n.get('readyCanvas')&&n.stopDefault(),e&&e.getFrames().map((function(t){return t.disable()})),this.set('frames',t.getFrames())}},{key:"updateDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e.getDeviceModel(),r=t.frame||e.getCurrentFrameModel();if(r&&n){var i=n.attributes,o=i.width,s=i.height;r.set({width:o,height:s},{noUndo:1})}}},{key:"onZoomChange",value:function(){this.get('zoom')<1&&this.set('zoom',1)}}]),n}(d.Model),b=n(6602),w=n(4868);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var O=function(){function t(e,n){var r=this;(0,l.Z)(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.getComponent().getEl()})),s=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,(0,o.bindAll)(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),s.forEach((function(t){return r.toggleEffects(t,1)})),this}return(0,c.Z)(t,[{key:"toggleEffects",value:function(t,e){var n={on:s.on,off:s.off},r=e?'on':'off';n[r](t,'dragenter',this.handleDragEnter),n[r](t,'dragover',this.handleDragOver),n[r](t,'drop',this.handleDrop),n[r](t,'dragleave',this.handleDragLeave)}},{key:"__customTglEff",value:function(t){var e=t?s.on:s.off,n=this.el.ownerDocument,r=n.defaultView.frameElement;this.sortOpts=t?{onStart:function(t){var e=t.sorter;(0,s.on)(r,'pointermove',e.onMove)},onEnd:function(t){var e=t.sorter;(0,s.off)(r,'pointermove',e.onMove)},customTarget:function(t){var e=t.event;return n.elementFromPoint(e.clientX,e.clientY)}}:null,e(r,'pointerenter',this.handleDragEnter),e(r,'pointermove',this.handleDragOver),e(document,'pointerup',this.handleDrop),e(r,'pointerout',this.handleDragLeave)}},{key:"startCustom",value:function(){this.__customTglEff(!0)}},{key:"endCustom",value:function(t){this.over?this.endDrop(t):this.__customTglEff(!1)}},{key:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),this.__customTglEff(!1),n.trigger('canvas:dragend',e)}},{key:"handleDragLeave",value:function(t){this.updateCounter(-1,t)}},{key:"updateCounter",value:function(t,e){this.counter+=t,0===this.counter&&this.endDrop(1,e)}},{key:"handleDragEnter",value:function(t){var e=this,n=this.em,r=t.dataTransfer;if(this.updateCounter(1,t),!this.over){this.over=1;var o,s,a=n.get('Utils'),l=n.get('Canvas'),c=n.get('dragContent')||'
';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),h=u.append({})[0],f=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:h,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var s=h.getStyle(),a=s.left,l=s.top,f=s.position;o.addStyle({left:a,top:l,position:f})}e.handleDragEnd(o,r),h.remove()}});o=function(e){return f.stop(t,{cancel:e})},s=function(t){return c=t}}else{var d=new a.Sorter(function(t){for(var e=1;e=0)s=t&&t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if((0,o.indexOf)(n,'text/uri-list')>=0)s={type:'link',attributes:{href:s},content:s};else if((0,o.indexOf)(n,'text/json')>=0){var u=t&&t.getData('text/json');u&&(s=JSON.parse(u))}else 1===n.length&&'text/plain'===n[0]&&(s="
".concat(s,"
"));var h={content:s};return e.trigger('canvas:dragdata',t,h),h}}]),t}(),C=n(9283);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(t).sort().map((function(e){return"[".concat(e,"=\"").concat(t[e],"\"]")})).join('')},a=function(t,e,n){t.forEach((function(t){var r=t.tag,i=t.attributes;!e.some((function(t){return t.tag===r&&s(t.attributes)===s(i)}))&&n.push(t)}))};a(i,o,r),a(o,i,n),n.forEach((function(t){var n=e.querySelector("".concat(t.tag).concat(s(t.attributes)));n&&n.parentNode.removeChild(n)})),(0,C.SJ)(e,r)},getEl:function(){return this.el},getCanvasModel:function(){return this.em.get('Canvas').getModel()},getWindow:function(){return this.getEl().contentWindow},getDoc:function(){return this.getEl().contentDocument},getHead:function(){return this.getDoc().querySelector('head')},getBody:function(){return this.getDoc().querySelector('body')},getWrapper:function(){return this.getBody().querySelector('[data-gjs-type=wrapper]')},getJsContainer:function(){return this.jsContainer||(this.jsContainer=(0,C.ut)('div',{class:"".concat(this.ppfx,"js-cont")})),this.jsContainer},getToolsEl:function(){var t=this.config.frameWrapView;return t&&t.elTools},getGlobalToolsEl:function(){return this.em.get('Canvas').getGlobalToolsEl()},getHighlighter:function(){return this._getTool('[data-hl]')},getBadgeEl:function(){return this._getTool('[data-badge]')},getOffsetViewerEl:function(){return this._getTool('[data-offset]')},getRect:function(){return this.rect||(this.rect=this.el.getBoundingClientRect()),this.rect},getOffsetRect:function(){var t=this.el,e=this.getBody(),n=e.scrollTop,r=e.scrollLeft,i=t.offsetHeight,o=t.offsetWidth;return{top:t.offsetTop,left:t.offsetLeft,height:i,width:o,scrollTop:n,scrollLeft:r,scrollBottom:n+i,scrollRight:r+o}},_getTool:function(t){var e=this.tools,n=this.getToolsEl();return e[t]||(e[t]=n.querySelector(t)),e[t]},remove:function(){var t=this.wrapper;this._toggleEffects(),this.tools={},t&&t.remove(),p().View.prototype.remove.apply(this,arguments)},startAutoscroll:function(){var t=this;this.lastMaxHeight=this.getWrapper().offsetHeight-this.el.offsetHeight,setTimeout((function(){t._toggleAutoscrollFx(1),requestAnimationFrame(t.autoscroll)}),0)},autoscroll:function(){if(this.dragging){var t=this.lastClientY,e=this.em.get('Canvas'),n=this.getWindow(),r=this.getBody().scrollTop,i=t||0,s=e.getConfig().autoscrollLimit,a=this.getRect().height-s,l=r;if(ia&&(l+=i-a),!(0,o.isUndefined)(t)&&l!==r&&l>0&&l0){var l=r.shift(),c=(0,C.ut)('script',S({type:'text/javascript'},(0,o.isString)(l)?{src:l}:l));c.onerror=c.onload=n.bind(null,r),e.contentDocument.head.appendChild(c)}else t.renderBody(),i&&i.trigger(s,a)};e.onload=function(){i&&i.trigger("".concat(s,":before"),a),c((0,r.Z)(l.get('scripts')))}},renderStyles:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getHead(),n=this.getCanvasModel(),r=function(t){return t.map((function(t){return{tag:'link',attributes:S({rel:'stylesheet'},(0,o.isString)(t)?{href:t}:t)}}))},i=r(t.prev||n.previous('styles')),s=r(n.get('styles')),a=[],l=[],c=function(t,e,n){t.forEach((function(t){var r=t.attributes.href;!e.some((function(t){return t.attributes.href===r}))&&n.push(t)}))};c(s,i,l),c(i,s,a),a.forEach((function(t){var n=e.querySelector("link[href=\"".concat(t.attributes.href,"\"]"));n&&n.parentNode.removeChild(n)})),(0,C.SJ)(e,l)},renderBody:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=e.em,o=this.getDoc(),a=this.getBody(),l=this.getWindow(),c=i.get('Config');l._isEditor=!0,this.renderStyles({prev:[]});(0,C.R3)(a,""));var u=n.getComponent(),h=i.get('DomComponents').getType('wrapper').view;this.wrapper=new h({model:u,config:S(S({},u.config),{},{frameView:this})}).render(),(0,C.R3)(a,this.wrapper.el),(0,C.R3)(a,new w.Z({collection:n.getStyles(),config:S(S({},i.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),(0,C.R3)(a,this.getJsContainer()),(0,s.on)(a,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),(0,s.on)(a,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'pointerdown pointermove pointerup',class:'PointerEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){o.addEventListener(n,(function(n){return t.el.dispatchEvent((0,C.t3)(n,e.class))}))}))})),this._toggleEffects(1),this.droppable=(0,s.hasDnd)(i)&&new O(i,this.wrapper.el),n.trigger('loaded')},_toggleEffects:function(t){var e=t?s.on:s.off,n=this.getWindow();n&&e(n,"".concat(C.G1," resize"),this._emitUpdate)},_emitUpdate:function(){this.model._emitUpdated()}});var _=n(5610);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.bindAll)(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=E(E({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,s=r.em;this.cv=i,this.config=r,this.em=s,this.canvas=s&&s.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new P({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),this.updateOffset=(0,o.debounce)(this.updateOffset.bind(this)),this.updateSize=(0,o.debounce)(this.updateSize.bind(this)),this.listenTo(n,'loaded',this.frameLoaded),this.listenTo(n,'change:x change:y',this.updatePos),this.listenTo(n,'change:width change:height',this.updateSize),this.listenTo(n,'destroy remove',this.remove),this.updatePos(),this.setupDragger()},setupDragger:function(){var t,e,n,r=this,i=this.canvas,o=this.model,s=function(t){i.toggleFramesEvents(t)};this.dragger=new _.Z({onStart:function(){var i=o.attributes,a=i.x,l=i.y;n=r.em.getZoomMultiplier(),t=a,e=l,s()},onEnd:function(){return s(1)},setPosition:function(r){o.set({x:t+r.x*n,y:e+r.y*n})}})},startDrag:function(t){t&&this.dragger.start(t)},__clear:function(t){var e=this.frame;e&&e.remove(t),(0,C.L_)(this.elTools)},remove:function(t){var e=this;return this.__clear(t),p().View.prototype.remove.apply(this,arguments),['frame','dragger','cv','em','canvas','elTools'].forEach((function(t){return e[t]=0})),this},updateOffset:function(){var t=this.em,e=this.$el,n=this.frame;t&&(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,s=n.style;this.frame.rect=0,s.left=isNaN(i)?i:"".concat(i,"px"),s.top=isNaN(o)?o:"".concat(o,"px"),t&&this.updateOffset()},updateSize:function(){this.updateDim()},updateDim:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,s=this.frame;if(s){s.rect=0,n.addClass(i);var a=this.__handleSize(),l=a.noChanges,c=a.width,u=a.height;((0,o.isNull)(c)||(0,o.isNull)(u))&&r.set(E(E({},c?{}:{width:e.offsetWidth}),u?{}:{height:e.offsetHeight}),{silent:1}),t.stopDefault({preserveSelected:1}),l?this.updateOffset():setTimeout(this.updateOffset,350)}},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()},__handleSize:function(){var t=this.model,e=this.el.style,n=t.attributes,r=n.width,i=n.height,s=e.width||'',a=e.height||'',l=r||'',c=i||'',u=s==l&&a==c;return e.width=(0,o.isNumber)(l)?"".concat(l).concat("px"):l,e.height=(0,o.isNumber)(c)?"".concat(c).concat("px"):c,{noChanges:u,width:r,height:i,newW:l,newH:c}},render:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,s=i.attributes.onRender;this.__clear(),this.__handleSize(),t.render(),e.empty().attr({class:"".concat(n,"frame-wrapper")}).append("\n
\n
\n ").concat(i.get('name')||'',"\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n ")).append(t.el);var a=(0,C.ut)('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n "));this.elTools=a;var l=r.toolsWrapper;return l&&l.appendChild(a),s&&s({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}}),D=b.Z.extend({itemView:j,autoAdd:1,init:function(){this.listenTo(this.collection,'reset',this.render)},onRemoveBefore:function(t,e){t.forEach((function(t){return t.remove(e)}))},onRender:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}});function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e\n
\n ")},initialize:function(t){(0,o.bindAll)(this,'clearOff','onKeyPress','onCanvasMove');var e=this.model;this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.config.stylePrefix+'canvas';var n=this.em;this._initFrames(),this.listenTo(n,'change:canvasOffset',this.clearOff),this.listenTo(n,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(e,'change:frames',this._onFramesUpdate),this.toggleListeners(1)},_onFramesUpdate:function(){this._initFrames(),this._renderFrames()},_initFrames:function(){var t=this.frames,e=this.model,n=this.config,r=this.em,i=e.get('frames');r.set('readyCanvas',0),i.once('loaded:all',(function(){return r.set('readyCanvas',1)})),t&&t.remove(),this.frames=new D({collection:i,config:A(A({},n),{},{canvasView:this})})},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(){this.frames.remove(),this.frames={},p().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;var e=t?s.on:s.off;e(document,'keypress',this.onKeyPress),e(window,'scroll resize',this.clearOff)},onKeyPress:function(t){var e=this.em;' '!==(0,s.getKeyChar)(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(),s={preserveSelected:1},a=o?1/o:1;this.framesArea.style.transform="scale(".concat(o,") translate(").concat(r*a,"px, ").concat(i*a,"px)"),this.clearOff(),e.stopDefault(s),e.trigger('canvas:update',t),L&&clearTimeout(L),L=setTimeout((function(){return e.runDefault(s)}),300)},getZoom:function(){return this.em.getZoomDecimal()},isElInViewport:function(t){var e=(0,s.getElement)(t),n=(0,s.getElRect)(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=(0,s.getElRect)(t),r=t.ownerDocument.body,i=e.noScroll;return{top:n.top+(i?0:r.scrollTop),left:n.left+(i?0:r.scrollLeft),width:n.width,height:n.height}},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,r=n?n.frameElement:e;this.frmOff=this.offset(r||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(),s=this.offset(t,e),a=r.avoidFrameOffset?0:i.top,l=r.avoidFrameOffset?0:i.left;return{top:s.top*n+a-o.top,left:s.left*n+l-o.left,height:s.height*n,width:s.width*n,zoom:n,rect:s}},getElementOffsets:function(t){var e=this;if(!t||(0,s.isTextNode)(t))return{};var n={},r=window.getComputedStyle(t);return['marginTop','marginRight','marginBottom','marginLeft','paddingTop','paddingRight','paddingBottom','paddingLeft'].forEach((function(t){n[t]=parseFloat(r[t])*e.getZoom()})),n},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(),s=t.noScroll;return{top:i.top+(s?0:n.scrollTop)*r-o.top,left:i.left+(s?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;}"),s=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(s,")\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')},_renderFrames:function(){if(this.ready){var t=this.model,e=this.frames,n=this.em,r=this.framesArea,i=t.get('frames');i.listenToLoad(),e.render();var o=i.at(0),s=o&&o.view;n.setCurrentFrame(s),r&&r.appendChild(e.el),this.frame=s}},render:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.config,i=this.em;e.html(this.template());var o=e.find('[data-frames]');this.framesArea=o.get(0);var a=e.find('[data-tools]');this.toolsWrapper=a.get(0),a.append("\n
\n
\n
\n
\n
\n
\n ").concat(r.extHl?"
"):'',"\n
\n
\n
\n
\n
\n
\n
\n "));var l=t.querySelector("#".concat(n,"tools"));return this.hlEl=t.querySelector(".".concat(n,"highlighter")),this.badgeEl=t.querySelector(".".concat(n,"badge")),this.placerEl=t.querySelector(".".concat(n,"placeholder")),this.ghostEl=t.querySelector(".".concat(n,"ghost")),this.toolbarEl=t.querySelector(".".concat(n,"toolbar")),this.resizerEl=t.querySelector(".".concat(n,"resizer")),this.offsetEl=t.querySelector(".".concat(n,"offset-v")),this.fixedOffsetEl=t.querySelector(".".concat(n,"offset-fixed-v")),this.toolsGlobEl=t.querySelector(".".concat(n,"tools-gl")),this.toolsEl=l,this.el.className=(0,s.getUiClass)(i,this.className),this.ready=1,this._renderFrames(),this}});function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function I(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=I(I(I({},a),e),{},{module:this}),this.em=n.em;var r=n,i=r.scripts,o=r.styles,s=n.pStylePrefix;return s&&(n.stylePrefix=s+n.stylePrefix),t=new y({scripts:i,styles:o},e),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},onLoad:function(){this.model.init()},getModel:function(){return t},getConfig:function(){return n},getElement:function(){return e.el},getFrame:function(t){return this.getFrames()[t||0]},getFrameEl:function(){var t=(e||{}).frame;return t&&t.el},getFramesEl:function(){return e.framesArea},getWindow:function(){return this.getFrameEl().contentWindow},getDocument:function(){var t=this.getFrameEl();return t&&t.contentDocument},getBody:function(){var t=this.getDocument();return t&&t.body},_getCompFrame:function(t){return t&&t._getFrame()},_getLocalEl:function(t,e,n){var r=t,i=this._getCompFrame(e);return r=i?i[n]():r},getGlobalToolsEl:function(){return e.toolsGlobEl},getToolsEl:function(t){return this._getLocalEl(e.toolsEl,t,'getToolsEl')},getHighlighter:function(t){return this._getLocalEl(e.hlEl,t,'getHighlighter')},getBadgeEl:function(t){return this._getLocalEl(e.badgeEl,t,'getBadgeEl')},getPlacerEl:function(){return e.placerEl},getGhostEl:function(){return e.ghostEl},getToolbarEl:function(){return e.toolbarEl},getResizerEl:function(){return e.resizerEl},getOffsetViewerEl:function(t){return this._getLocalEl(e.offsetEl,t,'getOffsetViewerEl')},getFixedOffsetViewerEl:function(){return e.fixedOffsetEl},render:function(){return e&&e.remove(),(e=new N({model:t,config:n})).render().el},getOffset:function(){var t=this.offset(this.getFrameEl()),e=this.offset(this.getElement());return{top:t.top-e.top,left:t.left-e.left}},offset:function(t){return e.offset(t)},setCustomBadgeLabel:function(t){n.customBadgeLabel=t},getElementPos:function(t,n){return e.getElementPos(t,n)},getElementOffsets:function(t){return e.getElementOffsets(t)},getRect:function(){var t=e.getPosition(),n=t.top,r=t.left;return I(I({},e.getCanvasOffset()),{},{topScroll:n,leftScroll:r})},getTargetToElementDim:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i||{},s=e.getPosition();if(s){var a=o.elPos||e.getElementPos(r),l=i.toRight||0,c=o.targetHeight||t.offsetHeight,u=o.targetWidth||t.offsetWidth,h=o.event||null,f=a.top-c,d=a.left;d+=l?a.width:0;var p=(d=l?d-u:d)a.top+a.height?a.top+a.height:g,left:p,elementTop:a.top,elementLeft:a.left,elementWidth:a.width,elementHeight:a.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:s.top,canvasLeft:s.left,canvasWidth:s.width,canvasHeight:s.height};return h&&n.em&&n.em.trigger(h,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,s=n.em.getZoomDecimal(),a=e?'top':'left',l=t.ownerDocument,c=r.offset?i(l):{},u=c.offsetTop,h=void 0===u?0:u,f=c.offsetLeft,d=void 0===f?0:f,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,y=void 0===m?0:m,b=e?v:y,w=e?h:d;return o[a]-(b-w)*s};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),s=e.offsetHeight||0,a=e.offsetWidth||0,l=r.left+r.width,c=this.getCanvasView(),u=c.getPosition(),h=c.getFrameOffset(t),f=n.event,d=-s,p=(0,o.isUndefined)(n.left)?r.width-a:n.left;p=r.left<-p?-r.left:p,p=l>u.width?p-(l-u.width):p;var g=r.height+s,v=g1&&void 0!==arguments[1]?arguments[1]:{},n=(0,s.getElement)(t),r=n&&(0,s.getViewEl)(n);r&&r.scrollIntoView(e)},startAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.startAutoscroll()},stopAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.stopAutoscroll()},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},setCoords:function(e,n){return t.set({x:parseFloat(e),y:parseFloat(n)}),this},getCoords:function(){var e=t.attributes;return{x:e.x,y:e.y}},getZoomDecimal:function(){return this.getZoom()/100},getZoomMultiplier:function(){var t=this.getZoomDecimal();return t?1/t:1},toggleFramesEvents:function(t){this.getFramesEl().style.pointerEvents=t?'':'none'},getFrames:function(){return t.get('frames').map((function(t){return t}))},addFrame:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.get('frames').add(I({},e),I(I({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e&&e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},9065:(t,e,n)=>{"use strict";n.d(e,{Z:()=>O});var r=n(4942),i=n(5671),o=n(3144),s=n(9340),a=n(3930),l=n(1120),c=n(9050),u=n(2316),h=n(2982),f=n(6183);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 p(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.config,r=n.em,i=this.attributes,o=i.styles,s=i.component,a=r.get('DomComponents'),l=a.getConfig(),u=r.get('CssComposer').getAll(),h={};this.em=r;var d={em:r,config:l,frame:this,idMap:h};if(!(0,f.isComponent)(s)){var p=(0,f.isObject)(s)?s:{components:s};!p.type&&(p.type='wrapper');var g=a.getType('wrapper').model;this.set('component',new g(p,d))}if(o){if(!(0,f.isObject)(o)){var y=Object.keys(h);y.length&&Array.isArray(o)&&o.forEach((function(t){var e=t.selectors;if(e&&1==e.length){var n=e[0],r=n.name&&2===n.type&&n;if(r&&h[r.name])r.name=h[r.name];else if((0,c.isString)(n)&&'#'===n[0]){var i=n.substring(1);i&&h[i]&&(e[0]="#".concat(h[i]))}}})),u.add(o),this.set('styles',u)}}else this.set('styles',u);!t.width&&this.set(v,1),!t.height&&this.set(m,1)}},{key:"onRemove",value:function(){this.getComponent().remove({root:1})}},{key:"changesUp",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.temporary||t.noCount||t.avoidStore||this.set('changesCount',this.get('changesCount')+1)}},{key:"getComponent",value:function(){return this.get('component')}},{key:"getStyles",value:function(){return this.get('styles')}},{key:"disable",value:function(){this.trigger('disable')}},{key:"remove",value:function(){this.view=0;var t=this.collection;return t&&t.remove(this)}},{key:"getHead",value:function(){var t=this.get('head')||[];return(0,h.Z)(t)}},{key:"setHead",value:function(t){return this.set('head',(0,h.Z)(t))}},{key:"addHeadItem",value:function(t){var e=this.getHead();e.push(t),this.setHead(e)}},{key:"getHeadByAttr",value:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]}},{key:"removeHeadByAttr",value:function(t,e,n){var r=this.getHead(),i=this.getHeadByAttr(t,e,n),o=r.indexOf(i);o>=0&&(r.splice(o,1),this.setHead(r))}},{key:"addLink",value:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})}},{key:"removeLink",value:function(t){this.removeHeadByAttr('href',t,'link')}},{key:"addScript",value:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})}},{key:"removeScript",value:function(t){this.removeHeadByAttr('src',t,'script')}},{key:"getPage",value:function(){var t=this.collection;return t&&t.page}},{key:"_emitUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',p({frame:this},t))}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=u.Model.prototype.toJSON.call(this,t),n=this.em,r=n&&n.get('StorageManager'),i=r&&r.getConfig(),o=(0,c.result)(this,'defaults');if(i&&!t.fromUndo){var s={component:this.getComponent()};i.storeHtml&&(e.html=n.getHtml(s)),i.storeCss&&(e.css=n.getCss(s))}return t.fromUndo&&delete e.component,delete e.styles,delete e.changesCount,e.__aw&&delete e.width,e.__ah&&delete e.height,(0,c.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,c.forEach)(o,(function(t,n){e[n]===t&&delete e[n]})),(0,c.forEach)(['attributes','head'],(function(t){(0,c.isEmpty)(e[t])&&delete e[t]})),e}}]),n}(u.Model);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,c.bindAll)(this,'itemLoaded'),this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"itemLoaded",value:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))}},{key:"listenToLoad",value:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)}},{key:"listenToLoadItems",value:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return u.Collection.prototype.add.call(this,t,w(w({},e),{},{config:n}))}}]),n}(u.Collection);O.prototype.model=y},7619:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r=n(9050);const i={stylePrefix:'cm-',inlineCss:!1};var o=n(5671),s=n(3144),a=n(9340),l=n(3930),c=n(1120),u=n(2316),h=n.n(u);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var d=function(t){(0,a.Z)(n,t);var e=f(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"build",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=e.em;if(e.cleanId&&r){var i=r.get('CssComposer').getAll(),o=i.toJSON().map((function(t){var e=t.selectors,n=e&&1===e.length&&e.models[0];return n&&n.isId()&&n.get('name')})).filter((function(t){return t}));n.attributes=function(t,e){var n=e.id;return n&&'i'===n[0]&&!t.get('script')&&!t.get('attributes').id&&o.indexOf(n)<0&&delete e.id,e}}return t.toHTML(n)}}]),n}(u.Model),p=n(8795);const g=h().Model.extend({build:function(t){var e=t.toJSON();return this.beforeEach(e),(0,r.each)(e,(function(t,n){var r=e[n];if(r instanceof h().Model)e[n]=this.build(r);else if(r instanceof h().Collection){var i=r;e[n]=[],i.length&&i.each((function(t,r){e[n][r]=this.build(t)}),this)}}),this),e},beforeEach:function(t){delete t.status}});var v=n(4942);const m=h().Model.extend({mapModel:function(t){var e='',n=t.get('script-export')||t.get('script'),i=t.get('type'),o=t.get('components'),s=t.getId();if(n){var a=t.get('attributes');a=(0,r.extend)({},a,{id:s}),t.set('attributes',a,{silent:1});var l=t.getScriptString(n),c=t.get('script-props');if(t.get('scriptUpdated')&&!c)this.mapJs[i+'-'+s]={ids:[s],code:l};else{var u,h=this.mapJs[i];if(c&&(u=t.__getScriptProps()),h)h.ids.push(s),u&&(h.props[s]=u);else{var f={ids:[s],code:l};u&&(f.props=(0,v.Z)({},s,u)),this.mapJs[i]=f}}}return o.each((function(t){e+=this.mapModel(t)}),this),e},build:function(t){this.mapJs={},this.mapModel(t);var e='';for(var n in this.mapJs){var r=this.mapJs[n];if(r.code)if(r.props){if(0===r.code.toString().match(/\{([\s\S]*)\}/m)[1].replace(/^\s*\/\/.*$/gm,'').trim().length)continue;e+="\n var props = ".concat(JSON.stringify(r.props),";\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (").concat(r.code,".bind(el))(props[el.id]);\n }")}else{var i='#'+r.ids.join(', #');e+="\n var items = document.querySelectorAll('".concat(i,"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\n").concat(r.code,"\n}.bind(items[i]))();\n }")}}return e}});var y;function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}(0,n(6183).hasWin)()&&(y=n(4631),n(6531),n(6629),n(9210));const w=h().Model.extend({CodeMirror:y,defaults:{input:'',label:'',codeName:'',theme:'hopscotch',readOnly:!0,lineNumbers:!0},init:function(t){return(0,r.bindAll)(this,'onChange'),this.editor=y.fromTextArea(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=this.editor;r&&(r.setValue(t),r.autoFormatRange&&(y.commands.selectAll(r),r.autoFormatRange(r.getCursor(!0),r.getCursor(!1)),y.commands.goDocStart(r)),!n.noRefresh&&setTimeout((function(){return e.refresh()})))}});var x,O=n(168),C=n(1629);function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var S=function(t){(0,a.Z)(n,t);var e=k(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.codeName,r=t.label;return(0,C.Z)(x||(x=(0,O.Z)(["\n
\n
","
\n
\n
\n "])),e,e,n,e,r,e)}},{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix}},{key:"render",value:function(){var t=this.model,e=this.pfx,n=this.$el,r=t.toJSON();return r.pfx=e,n.html(this.template(r)),n.attr('class',"".concat(e,"editor-c")),n.find("#".concat(e,"code")).append(t.get('input')),this}}]),n}(u.View);const P=function(){var t={},e={},n={},o={},s={},a='CodeMirror';return{getConfig:function(){return t},config:t,EditorView:S,name:'CodeManager',init:function(e){for(var r in t=e||{},i)r in t||(t[r]=i[r]);var o=t.pStylePrefix;return o&&(t.stylePrefix=o+t.stylePrefix),n.html=new d,n.css=new p.Z,n.json=new g,n.js=new m,s.CodeMirror=new w,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,n){return e[t]=n,this},getGenerator:function(t){return e[t]||null},getGenerators:function(){return e},addViewer:function(t,e){return o[t]=e,this},getViewer:function(t){return o[t]||null},getViewers:function(){return o},createViewer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,r.isUndefined)(t.type)?a:t.type,n=this.getViewer(e)&&this.getViewer(e).clone(),i=document.createElement('div'),o=document.createElement('textarea');return i.appendChild(o),n.set(t),n.init(o),n.setElement(i),n},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.em=t.em;var i=this.getGenerator(n);return i?i.build(e,r):''},loadDefaultGenerators:function(){for(var t in n)this.addGenerator(t,n[t]);return this},loadDefaultViewers:function(){for(var t in s)this.addViewer(t,s[t]);return this},destroy:function(){[t,e,n,o,s].forEach((function(t){return{}}))}}}},8795:(t,e,n)=>{"use strict";n.d(e,{U:()=>l,Z:()=>c});var r=n(2316),i=n.n(r),o=n(9050),s=n(6183),a=Number.MAX_VALUE,l=function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?e[0]:''};const c=i().Model.extend({initialize:function(){(0,o.bindAll)(this,'sortRules'),this.compCls=[],this.ids=[]},buildFromModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r='',i=this.em,o=i&&i.getConfig('avoidInlineStyle'),s=t.styleToString(),a=t.get('classes');this.ids.push("#".concat(t.getId())),a.each((function(t){return e.compCls.push(t.getFullName())})),!o&&s&&(r="#".concat(t.getId(),"{").concat(s,"}"));var l=t.components();return l.each((function(t){return r+=e.buildFromModel(t,n)})),r},build:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.json,i=n.em||'',a=n.cssc||i&&i.get('CssComposer');this.em=i,this.compCls=[],this.ids=[],this.model=t;var l=[],c=t?this.buildFromModel(t,n):'',u=(0,o.isUndefined)(n.clearStyles)&&i?i.getConfig('clearStyles'):n.clearStyles;if(a){var h=n.rules||a.getAll(),f={},d=[];n.onlyMatched&&t&&(0,s.hasWin)()&&(h=this.matchedRules(t,h)),h.forEach((function(t){var i=t.getAtRule();if(i){var o=f[i];o?o.push(t):f[i]=[t]}else{var s=e.buildFromRule(t,d,n);r?l.push(s):c+=s}})),this.sortMediaObject(f).forEach((function(t){var i='',o=t.key;t.value.forEach((function(t){var s=e.buildFromRule(t,d,n);t.get('singleAtRule')?c+="".concat(o,"{").concat(s,"}"):i+=s,r&&l.push(s)})),i&&(c+="".concat(o,"{").concat(i,"}"))})),i&&u&&h.remove&&h.remove(d)}return r?l.filter((function(t){return t})):c},buildFromRule:function(t,e){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o='',s=this.model,a=t.selectorsToString({skipAdd:1}),l=t.get('selectorsAdd'),c=t.get('singleAtRule');if(t.get('selectors').each((function(t){var e=t.getFullName();(r.compCls.indexOf(e)>=0||r.ids.indexOf(e)>=0||i.keepUnusedStyles)&&(n=1)})),a&&n||l||c||!s){var u=t.getDeclaration({body:1});u&&(i.json?o=t:o+=u)}else e.push(t);return o},matchedRules:function(t,e){var n=this,r=t.getEl(),i=[];return e.forEach((function(t){try{t.selectorsToString().split(',').some((function(t){return r.matches(n.__cleanSelector(t))}))&&i.push(t)}catch(t){}})),t.components().forEach((function(t){i=i.concat(n.matchedRules(t,e))})),i=i.filter((function(t,e){return i.indexOf(t)===e}))},getQueryLength:function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?parseFloat(e[1]):a},sortMediaObject:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return(0,o.each)(e,(function(t,e){return n.push({key:e,value:t})})),n.sort((function(e,n){var r=[e.key,n.key].every((function(t){return-1!==t.indexOf('min-width')})),i=r?e.key:n.key,o=r?n.key:e.key;return t.getQueryLength(i)-t.getQueryLength(o)}))},sortRules:function(t,e){var n=function(t){return t.get('mediaText')},r=[n(t),n(e)].every((function(t){return-1!==t.indexOf('min-width')})),i=n(r?t:e),o=n(r?e:t);return this.getQueryLength(i)-this.getQueryLength(o)},__cleanSelector:function(t){return t.split(' ').map((function(t){return t.split(':')[0]})).join(' ')}})},289:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>f});var r=n(2982),i=n(4942),o=n(9050),s=n(238);const a={stylePrefix:'com-',defaults:[],strict:1};var l=n(9138);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};e=u(u({},a),s),t=e.em;var f=e.pStylePrefix;return f&&(e.stylePrefix=f+e.stylePrefix),Object.keys(e.defaults).forEach((function(t){var n=e.defaults[t];n.id&&i.add(n.id,n)})),c['tlb-delete']={run:function(t){return t.runCommand('core:component-delete')}},c['tlb-clone']={run:function(t){t.runCommand('core:copy'),t.runCommand('core:paste',{action:'clone-component'})}},c['tlb-move']={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),s=n&&n.event,a=n.target,c=a||t.getSelected(),u=a?[a]:(0,r.Z)(t.getSelectedAll()),h=s&&'dragstart'==s.type,f={preserveSelected:1},d=['absolute','translate'];if(!c||!c.get('draggable'))return i.logWarning('The element is not draggable');var p=c.get('dmode')||i.get('dmode'),g=function(){return i.stopDefault(f)},v=(0,o.includes)(d,p);u.forEach((function(t){return t.trigger('disable')})),h?setTimeout(g,0):g();var m=function(t){i.trigger("".concat(l.OA,":start"),t)},y=function(t){i.trigger(l.OA,t)},b=function(e,n,r){u.forEach((function(t){return t.set('status','selected')})),t.select(u),c.emitUpdate(),i.trigger("".concat(l.OA,":end"),r),setTimeout((function(){return i.runDefault(f)})),(v||r.cancelled)&&i.set('_cmpDrag',1)};if(v)t.runCommand('core:component-drag',{guidesInfo:1,mode:p,target:c,onStart:m,onDrag:y,onEnd:b,event:s});else{h&&s.dataTransfer.setDragImage(c.view.el,0,0);var w=t.Commands.get('move-comp');w.onStart=m,w.onDrag=y,w.onEndMoveFromModel=b,w.initSorterFromModels(u)}u.forEach((function(t){return t.set('status','freezed-selected')}))}},c['core:undo']=function(t){return t.UndoManager.undo()},c['core:redo']=function(t){return t.UndoManager.redo()},h.forEach((function(e){var r=e[2],i=n(2828)("./".concat(e[1])).default,o="core:".concat(e[0]);c[o]=i,r&&(c[r]=i,['run','stop'].forEach((function(e){t.on("".concat(e,":").concat(r),(function(){for(var n,r=arguments.length,i=new Array(r),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=this.get(t);if(n){var r=u(u({},n.constructor.prototype),e);this.add(t,r);var i=h.filter((function(e){return"core:".concat(e[0])===t&&e[2]}))[0];i&&this.add(i[2],r)}return this},has:function(t){return!!i[t]},getAll:function(){return i},run:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.runCommand(this.get(t),e)},stop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.stopCommand(this.get(t),e)},isActive:function(t){return this.getActive().hasOwnProperty(t)},getActive:function(){return f},loadDefaultCommands:function(){for(var t in c)this.add(t,c[t]);return this},runCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,s=t.get('Editor');this.isActive(o)&&!i.force&&e.strict||(r=s&&n.callRun(s,i),o&&n.stop&&!n.noStop&&!i.abort&&(f[o]=r))}return r},stopCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,s=t.get('Editor');(this.isActive(o)||i.force||!e.strict)&&(o&&delete f[o],r=n.callStop(s,i))}return r},create:function(t){return t.stop||(t.noStop=1),new(s.default.extend(t))(e)},destroy:function(){[t,e,i,c,f].forEach((function(t){return{}}))}}}},7202:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){t.DomComponents.clear(),t.CssComposer.clear()}}},327:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var r=n(9050),i=n(6183),o=n(5610);const s={run:function(t){(0,r.bindAll)(this,'onKeyUp','enableDragger','disableDragger'),this.editor=t,this.canvasModel=this.canvas.getCanvasView().model,this.toggleMove(1)},stop:function(t){this.toggleMove(),this.disableDragger()},onKeyUp:function(t){' '===(0,i.getKeyChar)(t)&&this.editor.stopCommand(this.id)},enableDragger:function(t){this.toggleDragger(1,t)},disableDragger:function(t){this.toggleDragger(0,t)},toggleDragger:function(t,e){var n=this.canvasModel,r=this.em,i=this.dragger,s=t?'add':'remove';this.getCanvas().classList[s]("".concat(this.ppfx,"is__grabbing")),i||(i=new o.Z({getPosition:function(){return{x:n.get('x'),y:n.get('y')}},setPosition:function(t){var e=t.x,r=t.y;n.set({x:e,y:r})},onStart:function(t,e){r.trigger('canvas:move:start',e)},onDrag:function(t,e){r.trigger('canvas:move',e)},onEnd:function(t,e){r.trigger('canvas:move:end',e)}}),this.dragger=i),t?i.start(e):i.stop()},toggleMove:function(t){var e=this.ppfx,n=t?'add':'remove',r=t?'on':'off',o={on:i.on,off:i.off},s=this.getCanvas(),a=["".concat(e,"is__grab")];!t&&a.push("".concat(e,"is__grabbing")),a.forEach((function(t){return s.classList[n](t)})),o[r](document,'keyup',this.onKeyUp),o[r](s,'mousedown',this.enableDragger),o[r](document,'mouseup',this.disableDragger)}}},238:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2316);const i=r.Model.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+'hover',this.badgeClass=this.pfx+'badge',this.plhClass=this.pfx+'placeholder',this.freezClass=this.ppfx+'freezed',this.canvas=this.em.get&&this.em.get('Canvas'),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},callRun:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id;if(t.trigger("run:".concat(n,":before"),e),!e||!e.abort){var r=e.sender||t,i=this.run(t,r,e);return t.trigger("run:".concat(n),i,e),t.trigger('run',n,i,e),i}t.trigger("abort:".concat(n),e)},callStop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id,r=e.sender||t;t.trigger("stop:".concat(n,":before"),e);var i=this.stop(t,r,e);return t.trigger("stop:".concat(n),i,e),t.trigger('stop',n,i,e),i},stopCommand:function(){this.em.get('Commands').stop(this.id)},run:function(t,e){},stop:function(t,e){}})},5820:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2982),i=n(9050);const o={run:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[],a=o.component||t.getSelectedAll();return(a=(0,i.isArray)(a)?(0,r.Z)(a):[a]).filter(Boolean).forEach((function(t){if(!t.get('removable'))return s.push(t),n.em.logWarning('The element is not removable',{component:t});t.remove()})),t.select(s),a}}},6694:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(4942),i=n(9050),o=n(5610);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 a(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};(0,i.bindAll)(this,'setPosition','onStart','onDrag','onEnd','getPosition','getGuidesStatic','renderGuide','getGuidesTarget');var s=r.target,c=r.event,u=r.mode,h=r.dragger,f=void 0===h?{}:h,d=s.getEl(),p=a({doc:d.ownerDocument,onStart:this.onStart,onEnd:this.onEnd,onDrag:this.onDrag,getPosition:this.getPosition,setPosition:this.setPosition,guidesStatic:function(){return n.guidesStatic},guidesTarget:function(){return n.guidesTarget}},f);this.setupGuides(),this.opts=r,this.editor=t,this.em=t.getModel(),this.target=s,this.isTran='translate'==u,this.guidesContainer=this.getGuidesContainer(),this.guidesTarget=this.getGuidesTarget(),this.guidesStatic=this.getGuidesStatic();var g=this.dragger;return g?g.setOptions(p):(g=new o.Z(p),this.dragger=g),c&&g.start(c),this.toggleDrag(1),this.em.trigger("".concat(l,":start"),this.getEventOpts()),g},getEventOpts:function(){return{mode:this.opts.mode,target:this.target,guidesTarget:this.guidesTarget,guidesStatic:this.guidesStatic}},stop:function(){this.toggleDrag()},setupGuides:function(){(this.guides||[]).forEach((function(t){var e=t.guide;e&&e.parentNode.removeChild(e)})),this.guides=[]},getGuidesContainer:function(){var t=this,e=this.guidesEl;if(!e){var n=this.editor,r=this.em,o=this.opts,s=n.getConfig('stylePrefix'),a=document.createElement('div'),l=document.createElement('div'),c="
\n
\n
");(e=document.createElement('div')).className="".concat(s,"guides"),a.className="".concat(s,"guide-info ").concat(s,"guide-info__x"),l.className="".concat(s,"guide-info ").concat(s,"guide-info__y"),a.innerHTML=c,l.innerHTML=c,e.appendChild(a),e.appendChild(l),n.Canvas.getGlobalToolsEl().appendChild(e),this.guidesEl=e,this.elGuideInfoX=a,this.elGuideInfoY=l,this.elGuideInfoContentX=a.querySelector(".".concat(s,"guide-info__content")),this.elGuideInfoContentY=l.querySelector(".".concat(s,"guide-info__content")),r.on('canvas:update frame:scroll',(0,i.debounce)((function(){t.updateGuides(),o.debug&&t.guides.forEach((function(e){return t.renderGuide(e)}))}),200))}return e},getGuidesStatic:function(){var t=this,e=[],n=this.target.getEl(),r=n.parentNode,o=void 0===r?{}:r;return(0,i.each)(o.children,(function(r){return e=e.concat(n!==r?t.getElementGuides(r):[])})),e.concat(this.getElementGuides(o))},getGuidesTarget:function(){return this.getElementGuides(this.target.getEl())},updateGuides:function(t){var e,n,r=this;(t||this.guides).forEach((function(t){var o=t.origin,s=e===o?n:r.getElementPos(o);e=o,n=s,(0,i.each)(r.getGuidePosUpdate(t,s),(function(e,n){return t[n]=e})),t.originRect=s}))},getGuidePosUpdate:function(t,e){var n={},r=e.top,i=e.height,o=e.left,s=e.width;switch(t.type){case't':n.y=r;break;case'b':n.y=r+i;break;case'l':n.x=o;break;case'r':n.x=o+s;break;case'x':n.x=o+s/2;break;case'y':n.y=r+i/2}return n},renderGuide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.guide||document.createElement('div'),n='px',r=t.active?2:1,i=e.children[0];return e.style="position: absolute; background-color: ".concat(t.active?'green':'red',";"),e.children.length||((i=document.createElement('div')).style='position: absolute; color: red; padding: 5px; top: 0; left: 0;',e.appendChild(i)),t.y?(e.style.width='100%',e.style.height="".concat(r).concat(n),e.style.top="".concat(t.y).concat(n),e.style.left=0):(e.style.width="".concat(r).concat(n),e.style.height='100%',e.style.left="".concat(t.x).concat(n),e.style.top="0".concat(n)),!t.guide&&this.guidesContainer.appendChild(e),e},getElementPos:function(t){return this.editor.Canvas.getElementPos(t,{noScroll:1})},getElementGuides:function(t){var e=this,n=this.opts,r=this.getElementPos(t),i=r.top,o=r.height,s=r.left,l=r.width,c=[{type:'t',y:i},{type:'b',y:i+o},{type:'l',x:s},{type:'r',x:s+l},{type:'x',x:s+l/2},{type:'y',y:i+o/2}].map((function(i){return a(a({},i),{},{origin:t,originRect:r,guide:n.debug&&e.renderGuide(i)})}));return c.forEach((function(t){return e.guides.push(t)})),c},getTranslate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'x',n=0;return(t||'').split(' ').forEach((function(t){var r=t.trim(),i="translate".concat(e.toUpperCase(),"(");0===r.indexOf(i)&&(n=parseFloat(r.replace(i,'')))})),n},setTranslate:function(t,e,n){var r="translate".concat(e.toUpperCase(),"("),i="".concat(r).concat(n,")"),o=(t||'').split(' ').map((function(t){return 0===t.trim().indexOf(r)&&(t=i),t})).join(' ');return o.indexOf(r)<0&&(o+=" ".concat(i)),o},getPosition:function(){var t=this.target,e=this.isTran,n=t.getStyle(),r=n.left,i=n.top,o=n.transform,s=0,a=0;return e?(s=this.getTranslate(o),a=this.getTranslate(o,'y')):(s=parseFloat(r||0),a=parseFloat(i||0)),{x:s,y:a}},setPosition:function(t){var e=t.x,n=t.y,r=t.end,o=t.position,s=t.width,a=t.height,l=this.target,c=this.isTran,u=this.em,h=r?'':1,f="".concat(e).concat("px"),d="".concat(n).concat("px"),p={};if(c){var g=l.getStyle().transform||'';g=this.setTranslate(g,'x',f),p={transform:g=this.setTranslate(g,'y',d),en:h},l.addStyle(p,{avoidStore:!r})}else{var v={position:o,width:s,height:a},m={left:f,top:d,en:h};(0,i.keys)(v).forEach((function(t){var e=v[t];e&&(m[t]=e)})),p=m,l.addStyle(p,{avoidStore:!r})}u.getSelected()&&(0,i.keys)(p).forEach((function(t){return u.trigger("update:component:style:".concat(t))}))},_getDragData:function(){var t=this.target;return{target:t,parent:t.parent(),index:t.index()}},onStart:function(t){var e=this.target,n=this.editor,r=this.isTran,i=this.opts,o=i.center,s=i.onStart,a=n.Canvas,l=e.getStyle(),c='absolute',u=[c,'relative'];if(s&&s(this._getDragData()),!r&&l.position!==c){var h,f=a.offset(e.getEl()),d=f.left,p=f.top,g=f.width,v=f.height,m=e.parent();do{var y=m.getStyle();h=u.indexOf(y.position)>=0?m:null,m=m.parent()}while(m&&!h);if(o){var b=a.getMouseRelativeCanvas(t);d=b.x,p=b.y}else if(h){var w=a.offset(h.getEl());d-=w.left,p-=w.top}this.setPosition({x:d,y:p,width:"".concat(g,"px"),height:"".concat(v,"px"),position:c})}},onDrag:function(){var t=this,e=this.guidesTarget,n=this.opts,r=n.onDrag;this.updateGuides(e),n.debug&&e.forEach((function(e){return t.renderGuide(e)})),n.guidesInfo&&this.renderGuideInfo(e.filter((function(t){return t.active}))),r&&r(this._getDragData())},onEnd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.editor,i=this.opts,o=this.id,s=i.onEnd;s&&s(t,n,a(a({event:t},n),this._getDragData())),r.stopCommand(o),this.hideGuidesInfo(),this.em.trigger("".concat(l,":end"),this.getEventOpts())},hideGuidesInfo:function(){var t=this;['X','Y'].forEach((function(e){var n=t["elGuideInfo".concat(e)];n&&(n.style.display='none')}))},renderGuideInfo:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=this.guidesStatic;this.hideGuidesInfo(),e.forEach((function(e){var r=e.origin,o=e.x,s=t.getElementPos(r),c=(0,i.isUndefined)(o)?'y':'x',u='y'===c,h=s[u?'left':'top'],f=s.rect[u?'left':'top'],d=u?h+s.width:h+s.height,p=u?f+s.rect.width:f+s.rect.height,g=t["elGuideInfo".concat(c.toUpperCase())],v=t["elGuideInfoContent".concat(c.toUpperCase())],m=g.style,y=n.filter((function(t){return t.type===e.type})).map((function(t){var e=t.originRect,n=e.left,r=e.width,i=e.top,o=e.height,s=u?n+r:i+o;return{gap:s0})).sort((function(t,e){return t.gap-e.gap})).map((function(t){return t.guide}))[0];if(y){var b=y.originRect,w=b.left,x=b.width,O=b.top,C=b.height,k=b.rect,S=u?w{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.components(),r=n&&n.filter((function(t){return t.get('selectable')}))[0];r&&e.push(r)})),e.length&&t.select(e)}}}},3888:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t.Canvas.hasFocus()||n.force){var r=[];t.getSelectedAll().forEach((function(t){for(var e=t.parent();e&&!e.get('selectable');)e=e.parent();e&&r.push(e)})),r.length&&t.select(r)}}}},5883:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=n.components().length,o=0,s=0;do{o++,r=(s=t.index()+o)<=i?n.getChildAt(s):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},7508:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=0,o=0;do{i++,r=(o=t.index()-i)>=0?n.getChildAt(o):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},8769:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.target,o=[];if(!i.get('styles'))return o;var s=i.get('type'),a=t.Pages.getAllWrappers(),l=(0,r.flatten)(a.map((function(t){return t.findType(s)}))).length;if(!l){var c=t.CssComposer.getAll();o=c.filter((function(t){return t.get('group')==="cmp:".concat(s)})),c.remove(o)}return o}}},2213:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2982);const i={run:function(t){var e=t.getModel(),n=(0,r.Z)(t.getSelectedAll());n.length&&e.set('clipboard',n)}}},5049:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>l});var r=n(9050),i=n(2316),o=n.n(i),s=n(2620),a=o().$;const l=(0,r.extend)({},s.default,{init:function(t){(0,r.bindAll)(this,'startDelete','stopDelete','onDelete'),this.hoverClass=this.pfx+'hover-delete',this.badgeClass=this.pfx+'badge-red'},enable:function(){this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=a(t.target);e.data('model').get('removable')&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),a(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=a(t.target);e.data('model').get('removable')&&(e.data('model').destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html('Remove '+t.getName())}})},3775:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){var n=this;e&&e.set&&e.set('active',0);var r=t.getConfig(),o=t.Modal,s=r.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var a=this.buildEditor('htmlmixed','hopscotch','HTML'),l=this.buildEditor('css','hopscotch','CSS');this.htmlEditor=a.el,this.cssEditor=l.el;var c=i("
"));c.append(a.$el).append(l.$el),this.$editors=c}o.open({title:r.textViewCode,content:this.$editors}).getModel().once('change:open',(function(){return t.stopCommand(n.id)})),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var r=document.createElement('textarea');!this.codeMirror&&(this.codeMirror=this.cm.getViewer('CodeMirror'));var i=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:r}),o=new this.cm.EditorView({model:i,config:this.cm.getConfig()}).render().$el;return i.init(r),{el:i,$el:o}}}},58:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e='';return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e='webkit',t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e='moz',t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn('Fullscreen not supported'),e},disable:function(){var t=document;this.isEnabled()&&(t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen())},fsChanged:function(t,e){document;var n=(t||'')+'fullscreenchange';this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.sender=e;var i=n.target,o=(0,r.isElement)(i)?i:document.querySelector(i),s=this.enable(o||t.getContainer());this.fsChanged=this.fsChanged.bind(this,s),document.addEventListener(s+'fullscreenchange',this.fsChanged),t.trigger('change:canvasOffset')},stop:function(t,e){e&&e.set&&e.set('active',!1),this.disable(),t&&t.trigger('change:canvasOffset')}}},8658:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(9050),i=n(2316),o=n.n(i),s=n(6183),a=n(2620),l=n(8463),c=o().$;const u=(0,r.extend)({},l.default,a.default,{init:function(t){a.default.init.apply(this,arguments),(0,r.bindAll)(this,'initSorter','rollback','onEndMove'),this.opt=t,this.hoverClass=this.ppfx+'highlighter-warning',this.badgeClass=this.ppfx+'badge-warning',this.noSelClass=this.ppfx+'no-select'},enable:function(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(9283);const o={open:function(t){var e=this,n=this.editor,i=this.title,o=this.config,s=this.am,a=o.custom;if((0,r.isFunction)(a.open))return a.open(s.__customData());n.Modal.open({title:i,content:t}).onceClose((function(){return n.stopCommand(e.id)}))},close:function(){var t=this.config.custom;if((0,r.isFunction)(t.close))return t.close(this.am.__customData());var e=this.editor.Modal;e&&e.close()},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.AssetManager,o=r.getConfig(),s=n.types,a=void 0===s?[]:s,l=n.accept,c=n.select;if(this.title=n.modalTitle||t.t('assetManager.modalTitle')||'',this.editor=t,this.config=o,this.am=r,r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),r.__behaviour({select:c,types:a,options:n}),o.custom)this.rendered=this.rendered||(0,i.ut)('div'),this.rendered.className="".concat(o.stylePrefix,"custom-wrp"),r.__behaviour({container:this.rendered}),r.__trgCustom();else{if(!this.rendered||a){var u=r.getAll().filter((function(t){return t}));a&&a.length&&(u=u.filter((function(t){return-1!==a.indexOf(t.get('type'))}))),r.render(u),this.rendered=r.getContainer()}if(l){var h=this.rendered.querySelector("input#".concat(o.stylePrefix,"uploadFile"));h&&h.setAttribute('accept',l)}}return this.open(this.rendered),this},stop:function(t){this.editor=t,this.close(this.rendered)}}},5821:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(9283);const o={open:function(){var t=this.container,e=this.editor,n=this.bm,i=this.config,o=i.custom,s=i.appendTo;if((0,r.isFunction)(o.open))return o.open(n.__customData());if(this.firstRender&&!s){var a='views-container',l=e.Panels;(l.getPanel(a)||l.addPanel({id:a})).set('appendContent',t).trigger('change:appendContent'),o||t.appendChild(n.render())}t&&(t.style.display='block')},close:function(){var t=this.container,e=this.config.custom;if((0,r.isFunction)(e.close))return e.close(this.bm.__customData());t&&(t.style.display='none')},run:function(t){var e=t.Blocks;this.config=e.getConfig(),this.firstRender=!this.container,this.container=this.container||(0,i.ut)('div'),this.editor=t,this.bm=e;var n=this.container;e.__behaviour({container:n}),this.config.custom&&e.__trgCustom(),this.open()},stop:function(){this.close()}}},3452:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){var e=t.LayerManager,n=t.Panels;if(!e.getConfig().appendTo){if(!this.layers){var r='views-container',i=document.createElement('div'),o=n.getPanel(r)||n.addPanel({id:r});i.appendChild(e.render()),o.set('appendContent',i).trigger('change:appendContent'),this.layers=i}this.layers.style.display='block'}},stop:function(){var t=this.layers;t&&(t.style.display='none')}}},2840:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),r=t.Panels,o='change:appendContent';this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2);var s=t.DeviceManager;if(s&&n.showDevices){var a=r.addPanel({id:'devices-c'}),l=s.render();a.set('appendContent',l).trigger(o)}var c=t.SelectorManager;this.slm=c;var u=c.getConfig();u.custom?c.__trgCustom({container:this.$cn2.get(0)}):u.appendTo||this.$cn2.append(c.render([]));var h=t.StyleManager;this.sm=h;var f=h.getConfig(),d=f.stylePrefix;this.$header=i("
").concat(t.t('styleManager.empty'),"
")),this.$cn.append(this.$header),f.custom?h.__trgCustom({container:this.$cn2.get(0)}):f.appendTo||this.$cn2.append(h.render());var p='views-container';this.panel=r.getPanel(p),this.panel||(this.panel=r.addPanel({id:p})),this.panel.set('appendContent',this.$cn).trigger(o),this.em=t.getModel(),this.listenTo(this.em,h.events.target,this.toggleSm)}this.toggleSm()},toggleSm:function(){var t,e,n,r,i=this.sender,o=this.sm;i&&i.get&&!i.get('active')||!o||(o.getSelected()?(null===(t=this.$cn2)||void 0===t||t.show(),null===(e=this.$header)||void 0===e||e.hide()):(null===(n=this.$cn2)||void 0===n||n.hide(),null===(r=this.$header)||void 0===r||r.show()))},stop:function(){var t,e;null===(t=this.$cn2)||void 0===t||t.hide(),null===(e=this.$header)||void 0===e||e.hide()}}},8644:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){this.sender=e;var n=t.getModel(),r=t.Config.stylePrefix,o=t.TraitManager,s=o.getConfig();if(!s.appendTo){if(!this.$cn){this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2),this.$header=i('
').append("
").concat(n.t('traitManager.empty'),"
")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(o.render());var a=t.Panels;(a.getPanel('views-container')?a.getPanel('views-container'):a.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()}}},560:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),o=i.get('clipboard'),s=t.getSelected();o&&s&&(t.getSelectedAll().forEach((function(e){if(e){var i=e.collection;if(i){var s,a={at:i.indexOf(e)+1,action:n.action||'paste-component'},l=o.filter((function(t){return t.get('copyable')}));s=(0,r.contains)(o,e)&&e.get('copyable')?i.add(e.clone(),a):i.add(l.map((function(t){return t.clone()})),a),(s=(0,r.isArray)(s)?s:[s]).forEach((function(e){return t.trigger('component:paste',e)}))}}})),s.emitUpdate())}}},4944:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var r=n(2982),i=n(9050),o='sw-visibility';const s={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanels()),this.panels},preventDrag:function(t){t.abort=1},tglEffects:function(t){var e=this.em,n=t?'on':'off';if(e){var r=e.get('Canvas'),o=r.getBody(),s=r.getToolbarEl();s&&(s.style.display=t?'none':'');var a=o.querySelectorAll(".".concat(this.ppfx,"no-pointer"));(0,i.each)(a,(function(e){return e.style.pointerEvents=t?'all':''})),e[n]('run:tlb-move:before',this.preventDrag)}},run:function(t,e){var n=this;this.sender=e,this.selected=(0,r.Z)(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(o)),this.shouldRunSwVisibility&&t.stopCommand(o),t.getModel().stopDefault();var i=this.getPanels(t),s=t.Canvas.getElement(),a=t.getEl(),l=t.Config.stylePrefix;if(!this.helper){var c=document.createElement('span');c.className="".concat(l,"off-prv fa fa-eye-slash"),a.appendChild(c),c.onclick=function(){return n.stopCommand()},this.helper=c}this.helper.style.display='inline-block',i.forEach((function(t){return t.set('visible',!1)}));var u=s.style;u.width='100%',u.height='100%',u.top='0',u.left='0',u.padding='0',u.margin='0',t.refresh(),this.tglEffects(1)},stop:function(t){var e=this.sender,n=void 0===e?{}:e,r=this.selected;n.set&&n.set('active',0);var i=this.getPanels(t);this.shouldRunSwVisibility&&(t.runCommand(o),this.shouldRunSwVisibility=!1),t.getModel().runDefault(),i.forEach((function(t){return t.set('visible',!0)})),t.Canvas.getElement().setAttribute('style',''),r&&t.select(r),delete this.selected,this.helper&&(this.helper.style.display='none'),t.refresh(),this.tglEffects()}}},7538:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(4942);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const o={run:function(t,e,n){var o=n||{},s=t.Canvas,a=s.getCanvasView(),l=function(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{default:()=>x});var r=n(1002),i=n(4942),o=n(2316),s=n.n(o),a=n(9050),l=n(6183),c=n(9283),u=n(6602);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 f(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.config,n=void 0===e?{}:e;this.em=n.em,this.editor=n.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e=this.editor,n=this.em,r=e.Canvas.getFrameEl().getBoundingClientRect(),i=r.left,o=r.top,s=f(f({},t),{},{clientX:t.clientX-i,clientY:t.clientY-o});n.trigger('toolbar:run:before'),this.execCommand(s)},execCommand:function(t){var e={event:t},n=this.model.get('command'),r=this.editor;'function'==typeof n&&n(r,null,e),'string'==typeof n&&r.runCommand(n,e)},render:function(){var t=this.editor,e=this.$el,n=this.model,r=n.get('id'),i=n.get('label'),o=t.getConfig('stylePrefix');return e.addClass("".concat(o,"toolbar-item")),r&&e.addClass("".concat(o,"toolbar-item__").concat(r)),i&&e.append(i),this}}),p=u.Z.extend({itemView:d,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config={editor:t.editor||'',em:t.em},this.listenTo(this.collection,'reset',this.render)}}),g=s().Model.extend({defaults:{command:'',attributes:{}}}),v=s().Collection.extend({model:g});function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function y(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=n.el||this.canvas.getToolsEl(e);return r&&(r.style.display=t?'':'none'),r||{}},showElementOffset:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};b&&this.editor.runCommand('show-offset',{el:t,elPos:e,view:n.view,force:1,top:0,left:0})},hideElementOffset:function(t){this.editor.stopCommand('show-offset',{view:t})},showFixedElementOffset:function(t,e){this.editor.runCommand('show-offset',{el:t,elPos:e,state:'Fixed'})},hideFixedElementOffset:function(t,e){this.editor&&this.editor.stopCommand('show-offset',{state:'Fixed'})},hideHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=0},onClick:function(t){t.stopPropagation(),t.preventDefault();var e=this.em;if(e.get('_cmpDrag'))return e.set('_cmpDrag');var n=w(t.target),r=n.data('model');if(!r)for(var i=n.parent();!r&&i.length&&!(0,c.Mx)(i[0]);)r=i.data('model'),i=i.parent();if(r){if(e.isEditing()&&!r.get('textable')&&r.isChildOf('text'))return;this.select(r,t)}},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&(this.editor.select(t,{event:e,useValid:!0}),this.initResize(t))},updateBadge:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.canvas,i=w(t).data('model');if(i&&i.get('badgable')){var o=this.getBadge(n);if(!n.posOnly){var s=this.canvas.getConfig(),a=i.getIcon(),l=s.pStylePrefix||'',c="".concat(l,"badge"),u=s.customBadgeLabel,h="".concat(a?"
").concat(a,"
"):'',"\n
").concat(i.getName(),"
");o.innerHTML=u?u(i):h}var f='px',d=o.style;d.display='block';var p=r.getTargetToElementFixed(t,o,{pos:e}),g=p.top,v=n.leftOff<0?-n.leftOff:0;d.top=g+f,d.left=v+f}},showHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=''},initResize:function(t){var e,n=this.em,i=this.canvas,o=n?n.get('Editor'):'',s=(n?n.get('Config'):'').stylePrefix||'',c="".concat(s,"resizing"),u=!(0,a.isElement)(t)&&(0,l.isTaggableNode)(t)?t:n.getSelected(),h=u&&u.get('resizable'),f={},d=function(t,e,n){var r=n.docs;r&&r.forEach((function(e){var n=e.body,r=n.className||'';n.className=('add'==t?"".concat(r," ").concat(c):r.replace(c,'')).trim()}))};if(o&&h){var p=(0,a.isElement)(t)?t:u.getEl();f={onStart:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.el,s=r.config,a=r.resizer,c=s.keyHeight,h=s.keyWidth,f=s.currentUnit,p=s.keepAutoHeight,g=s.keepAutoWidth;d('add',0,r),e=n.get('StyleManager').getModelToStyle(u),i.toggleFramesEvents();var v=getComputedStyle(o),m=e.getStyle(),y=m[h];s.autoWidth=g&&'auto'===y,isNaN(parseFloat(y))&&(y=v[h]);var w=m[c];s.autoHeight=p&&'auto'===w,isNaN(parseFloat(w))&&(w=v[c]),a.startDim.w=parseFloat(y),a.startDim.h=parseFloat(w),b=0,f&&(s.unitHeight=(0,l.getUnitFromValue)(w),s.unitWidth=(0,l.getUnitFromValue)(y))},onMove:function(){o.trigger('component:resize')},onEnd:function(t,e){d('remove',0,e),o.trigger('component:resize'),i.toggleFramesEvents(1),b=1},updateTarget:function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var s=o.store,a=o.selectedHandler,l=o.config,c=l.keyHeight,u=l.keyWidth,h=l.autoHeight,f=l.autoWidth,d=l.unitWidth,p=l.unitHeight,g=['tc','bc'].indexOf(a)>=0,v=['cl','cr'].indexOf(a)>=0,m={},b=s?'':1;if(!g){var w=i.getBody().offsetWidth,x=r.w0&&void 0!==arguments[0]?arguments[0]:{};return this.canvas.getBadgeEl(t.view)},onFrameScroll:function(){this.updateTools()},updateTools:function(){this.updateLocalPos(),this.updateGlobalPos()},isCompSelected:function(t){return t&&'selected'===t.get('status')},updateToolsLocal:function(t){var e=t||this.getElHovered(),n=e.el,r=e.pos,i=e.view,o=e.component;if(n){var s=o.get('hoverable'),a=this.lastHovered!==n,l=a?{}:{posOnly:1};a&&s&&(this.lastHovered=n,this.showHighlighter(i),this.showElementOffset(n,r,{view:i})),this.isCompSelected(o)&&(this.hideHighlighter(i),this.hideElementOffset(i));var c='px',u=this.toggleToolsEl(1,i),h=u.style,f=this.canvas.canvasRectOffset(n,r),d=f.top,p=f.left;this.updateBadge(n,r,y(y({},l),{},{view:i,topOff:d,leftOff:p})),h.top=d+c,h.left=p+c,h.width=r.width+c,h.height=r.height+c,this._trgToolUp('local',{component:o,el:u,top:d,left:p,width:r.width,height:r.height})}else this.lastHovered=0},_upToolbar:(0,a.debounce)((function(){this.updateToolsGlobal({force:1})})),_trgToolUp:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em.trigger('canvas:tools:update',y({type:t},e))},updateToolsGlobal:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getElSelected(),n=e.el,r=e.pos,i=e.component;if(!n)return this.toggleToolsEl(),void(this.lastSelected=0);var o=this.canvas,s=this.lastSelected!==n;(s||t.force)&&(this.lastSelected=n,this.updateToolbar(i));var a='px',l=this.toggleToolsEl(1),c=l.style,u=o.getTargetToElementFixed(n,o.getToolbarEl(),{pos:r}),h=u.canvasOffsetTop,f=u.canvasOffsetLeft;c.top=h+a,c.left=f+a,c.width=r.width+a,c.height=r.height+a,this.updateToolbarPos({top:u.top,left:u.left}),this._trgToolUp('global',{component:i,el:l,top:h,left:f,width:r.width,height:r.height})},updateAttached:(0,a.debounce)((function(){this.updateGlobalPos()})),onContainerChange:(0,a.debounce)((function(){this.em.refreshCanvas()}),150),getElementPos:function(t){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display='none'},cleanPrevious:function(t){t&&t.set({status:'',state:''})},getContentWindow:function(){return this.canvas.getWindow()},run:function(t){(0,l.hasWin)()&&(this.editor=t&&t.get('Editor'),this.enable())},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,l.hasWin)()){var r=this.em,i=this.editor;this.onHovered(),this.stopSelectComponent(),!n.preserveSelected&&r.setSelected(null),this.toggleToolsEl(),i&&i.stopCommand('resize')}}}},8463:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={startSelectPosition:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.isPointed=!1;var i=this.editorModel.get('Utils'),o=t.ownerDocument.body;i&&!this.sorter&&(this.sorter=new i.Sorter({container:o,placer:this.canvas.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,direction:'a',document:e,wmargin:1,nested:1,em:this.editorModel,canvasRelative:1,scale:function(){return n.em.getZoomDecimal()}})),r.onStart&&(this.sorter.onStart=r.onStart),t&&this.sorter.startSort(t,{container:o})},getOffsetDim:function(){var t=this.offset(this.canvas.getFrameEl()),e=this.offset(this.canvas.getElement());return{top:t.top-e.top,left:t.left-e.left}},stopSelectPosition:function(){this.posTargetCollection=null,this.posIndex='after'==this.posMethod&&0!==this.cDim.length?this.posIndex+1:this.posIndex,this.sorter&&(this.sorter.moved=0,this.sorter.endMove()),this.cDim&&(this.posIsLastEl=0!==this.cDim.length&&'after'==this.posMethod&&this.posIndex==this.cDim.length,this.posTargetEl=0===this.cDim.length?i(this.outsideElem):!this.posIsLastEl&&this.cDim[this.posIndex]?i(this.cDim[this.posIndex][5]).parent():i(this.outsideElem),this.posTargetModel=this.posTargetEl.data('model'),this.posTargetCollection=this.posTargetEl.data('model-comp'))},enable:function(){this.startSelectPosition()},nearFloat:function(t,e,n){var r=t||0,i=e||'before',o=n.length,s=0!==o&&'after'==i&&r==o;return 0!==o&&(!s&&!n[r][4]||n[r-1]&&!n[r-1][4]||s&&!n[r-1][4])?1:0},run:function(){this.enable()},stop:function(){this.stopSelectPosition(),this.$wrapper.css('cursor',''),this.$wrapper.unbind()}}},7994:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(6183);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=o().$;const u={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var i=n||{},o=i.state||'',u=t.getConfig(),h=this.em.getZoomDecimal(),f=i.el||'';if(!u.showOffsets||(0,a.isTextNode)(f)||!u.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var d=t.Canvas,p=function(t){for(var e=1;e")).get(0),D=c("
")).get(0),M=v+E+'-el',A="".concat(v+T+'-el'," ").concat(v+T),L="".concat(M," ").concat(v+E);b=c("
")).get(0),w=c("
")).get(0),x=c("
")).get(0),O=c("
")).get(0),C=c("
")).get(0),k=c("
")).get(0),S=c("
")).get(0),P=c("
")).get(0),this['marginT'+o]=b,this['marginB'+o]=w,this['marginL'+o]=x,this['marginR'+o]=O,this['padT'+o]=C,this['padB'+o]=k,this['padL'+o]=S,this['padR'+o]=P,j.appendChild(b),j.appendChild(w),j.appendChild(x),j.appendChild(O),D.appendChild(C),D.appendChild(k),D.appendChild(S),D.appendChild(P),y.appendChild(j),y.appendChild(D),this[m]='1'}var R='px',N=parseFloat(g.marginLeft.replace(R,''))*h,Z=parseFloat(g.marginRight.replace(R,''))*h,I=parseFloat(g.marginTop.replace(R,''))*h,F=parseFloat(g.marginBottom.replace(R,''))*h,V=b.style,H=w.style,B=x.style,z=O.style,U=C.style,W=k.style,$=S.style,q=P.style,G=parseFloat(p.left),K=parseFloat(g.width)*h+R;V.height=I+R,V.width=K,V.top=p.top-I+R,V.left=G+R,H.height=F+R,H.width=K,H.top=p.top+p.height+R,H.left=G+R;var Y=p.height+I+F+R,J=p.top-I+R;B.height=Y,B.width=N+R,B.top=J,B.left=G-N+R,z.height=Y,z.width=Z+R,z.top=J,z.left=G+p.width+R;var X=parseFloat(g.paddingTop)*h;U.height=X+R;var Q=parseFloat(g.paddingBottom)*h;W.height=Q+R;var tt=p.height-Q-X+R,et=p.top+X+R;$.height=tt,$.width=parseFloat(g.paddingLeft)*h+R,$.top=et;var nt=parseFloat(g.paddingRight)*h;q.height=tt,q.width=nt+R,q.top=et}},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n||{},i=r.state||'',o=this.getOffsetMethod(i),s=t.Canvas,a=s[o](n.view);a.style.opacity=0}}},8352:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={init:function(){(0,r.bindAll)(this,'_onFramesChange')},run:function(t){this.toggleVis(t)},stop:function(t){this.toggleVis(t,0)},toggleVis:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t.Commands.isActive('preview')){var r=t.Canvas,i=n?'on':'off';r.getFrames().forEach((function(t){return e._upFrame(t,n)})),r.getModel()[i]('change:frames',this._onFramesChange)}},_onFramesChange:function(t,e){var n=this;e.forEach((function(t){return n._upFrame(t,1)}))},_upFrame:function(t,e){var n=e?'add':'remove';t.view.getBody().classList[n]("".concat(this.ppfx,"dashed"))}}},9304:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),s=n(6183);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]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=l(l({},t),e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,s){var a=l({event:t},s||o);[n,e].map((function(t){return t.trigger(i,r,a)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,s=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,s,n),!n.abort&&s()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,s=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:s}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t){this.em.logWarning("[".concat(this.name,"]: ").concat(t))},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,s.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},672:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r=n(2982),i=n(4942),o=n(9050),s=n(6183);const a={stylePrefix:'css-',rules:[],onBeforeStyle:null};var l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(2316),p=n.n(d),g=n(3345),v=n(4293),m=n(8795);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{},this.opt=e,this.em=e.em,this.ensureSelectors(),this.on('change',this.__onChange)}},{key:"__onChange",value:function(t,e){var n=this.em,r=this.changedAttributes();!(0,s.isEmptyObj)(r)&&n&&n.changesUp(e)}},{key:"clone",value:function(){var t=b({},this.opt),e=b({},this.attributes);return e.selectors=this.get('selectors').map((function(t){return t.clone()})),new this.constructor(e,t)}},{key:"ensureSelectors",value:function(t,e,n){var i=this.em,s=i&&i.get('SelectorManager'),a=[this,'change:selectors',this.ensureSelectors],l=this.getSelectors();if(this.stopListening.apply(this,a),l.models&&(l=(0,r.Z)(l.models)),l=(0,o.isString)(l)?[l]:l,Array.isArray(l)){var c=l.filter((function(t){return t})).map((function(t){return s?s.add(t):t}));l=new v.Z(c)}this.set('selectors',l,n),this.listenTo.apply(this,a)}},{key:"getAtRule",value:function(){var t=this.get('atRuleType'),e=this.get('mediaText'),n=t?"@".concat(t):e?'@media':'';return n+(e&&n?" ".concat(e):'')}},{key:"selectorsToString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get('state'),r=this.get('selectorsAdd'),i={escape:function(t){return x&&x.escape?x.escape(t):t}},o=this.get('selectors').getFullString(0,i),s=n&&!t.skipState?":".concat(n):'';return o&&e.push("".concat(o).concat(s)),r&&!t.skipAdd&&e.push(r),e.join(', ')}},{key:"getDeclaration",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.selectorsToString(t),r=this.styleToString(t),i=this.get('singleAtRule');return(n||i)&&(r||t.allowEmpty)&&(e=i?r:"".concat(n,"{").concat(r,"}")),e}},{key:"getDevice",value:function(){var t=this.em,e=this.attributes,n=e.atRuleType,r=e.mediaText,i=(null==t?void 0:t.get('DeviceManager').getDevices())||[],o=i.filter((function(t){return''===t.getWidthMedia()}))[0];return'media'===n&&r?i.filter((function(t){return t.getWidthMedia()===(0,m.U)(r)}))[0]||null:o||null}},{key:"getState",value:function(){var t=this.em,e=this.get('state');return(t.get('SelectorManager').getStates()||[]).filter((function(t){return t.getName()===e}))[0]||null}},{key:"getComponent",value:function(){var t,e=this.getSelectors(),n=1==e.length&&e.at(0),r=n&&n.isId()&&n.get('name');return r&&(null===(t=this.em)||void 0===t?void 0:t.get('DomComponents').getById(r))||null}},{key:"toCSS",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.getAtRule(),r=this.getDeclaration(t);return(r||t.allowEmpty)&&(e=r),n&&e&&(e="".concat(n,"{").concat(e,"}")),e}},{key:"toJSON",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{},i=e||'',s=n||'',a=r.selectorsAdd||'',l=r.atRuleType||'',c=(0,o.isArray)(t)||t.models?t.models||t:[t];s&&!l&&(l='media');var u=c.map((function(t){return t.getFullName()})),h=this.get('selectors').map((function(t){return t.getFullName()})),f=u.slice().sort(),d=h.slice().sort();return!(u.length!==h.length||!f.every((function(t,e){return t===d[e]})))&&(this.get('state')===i&&this.get('mediaText')===s&&this.get('selectorsAdd')===a&&this.get('atRuleType')===l)}}]),n}(d.Model.extend(g.Z)),C=p().Collection;const k=C.extend({model:O,initialize:function(t,e){var n=this;e&&e.em&&(this.editor=e.em),setTimeout((function(){n.on('remove',n.onRemove),n.on('add',n.onAdd)}))},toJSON:function(t){return C.prototype.toJSON.call(this,t).filter((function(t){return t.style&&!t.shallow}))},onAdd:function(t,e,n){t.ensureSelectors(t,e,n)},onRemove:function(t){var e=this.editor;e.stopListening(t),e.get('UndoManager').remove(t)},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=this.editor.get('Parser').parseCss(t)),e.em=this.editor,C.prototype.add.apply(this,[t,e])}});var S=n(4868),P=n(8490);function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e=0&&!s&&(r.css=i.em.getCss()),o.indexOf('styles')>=0&&(r.styles=JSON.stringify(e)),n||i.stm.store(r),r}},add:function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=n||'',l=r||'',c=T({},o),u=this.get(t,a,l,c);return u&&u.config&&!u.config.singleAtRule||(c.state=a,c.mediaText=l,c.selectors=[],l&&(c.atRuleType='media'),(u=new O(c,i)).get('selectors').add(t,s),e.add(u,s)),u},get:function(n,r,i,s){var a=n;if((0,o.isString)(n)){var l=t.get('SelectorManager'),c=n.split(',')[0].trim(),u=t.get('Parser').parserCss.checkNode({selectors:c})[0];a=l.get(u.selectors)}return e.find((function(t){return t.compare(a,r,i,s)}))||null},getAll:function(){return e},addCollection:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[];(0,o.isString)(e)&&(e=t.get('Parser').parseCss(e));for(var l=e instanceof Array?e:[e],c=0,u=l.length;c2&&void 0!==arguments[2]?arguments[2]:{},i=r.atRuleType,o=r.atRuleParams,s=t.get('Parser').parserCss.checkNode({selectors:e,style:n})[0],a=s.state,l=s.selectorsAdd,c=t.get('SelectorManager'),u=c.add(s.selectors),h=this.add(u,a,o,{selectorsAdd:l,atRule:i});return h.setStyle(n,r),h},getRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.get('SelectorManager'),i=t.get('Parser').parserCss.checkNode({selectors:e})[0],o=r.get(i.selectors),s=i.state,a=i.selectorsAdd,l=n.atRuleType,c=n.atRuleParams;return o&&this.get(o,s,c,{selectorsAdd:a,atRule:l})},getRules:function(t){var e=this.getAll();if(!t)return(0,r.Z)(e.models);var n=(0,o.isString)(t)?t.split(',').map((function(t){return t.trim()})):t;return e.filter((function(t){return n.indexOf(t.getSelectors().getFullString())>=0}))},setIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.addOpts,s=void 0===i?{}:i,a=r.mediaText,l=r.state||'',c=(0,o.isUndefined)(a)?t.getCurrentMedia():a,u=t.get('SelectorManager'),h=u.add({name:e,type:P.Z.TYPE_ID},s),f=this.add(h,l,c,{},s);return f.setStyle(n,T(T({},r),s)),f},getIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.mediaText,i=n.state||'',s=(0,o.isUndefined)(r)?t.getCurrentMedia():r,a=t.get('SelectorManager').get(e,P.Z.TYPE_ID);return a&&this.get(a,i,s)},setClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.state||'',o=r.mediaText||t.getCurrentMedia(),s=t.get('SelectorManager'),a=s.add({name:e,type:P.Z.TYPE_CLASS}),l=this.add(a,i,o);return l.setStyle(n,r),l},getClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state||'',i=n.mediaText||t.getCurrentMedia(),o=t.get('SelectorManager').get(e,P.Z.TYPE_CLASS);return o&&this.get(o,r,i)},remove:function(t,e){var n=(0,o.isString)(t)?this.getRules(t):t,r=this.getAll().remove(n,e);return(0,o.isArray)(r)?r:[r]},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().reset(null,t),this},getComponentRules:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state,i=n.mediaText,s=n.current;s&&(r=t.get('state')||'',i=t.getCurrentMedia());var a=e.getId(),l=this.getAll().filter((function(t){if(((0,o.isUndefined)(r)||t.get('state')===r)&&((0,o.isUndefined)(i)||t.get('mediaText')===i))return t.getSelectorsString()==="#".concat(a)}));return l},render:function(){return n&&n.remove(),(n=new S.Z({collection:e,config:i})).render().el},destroy:function(){e.reset(),e.stopListening(),n&&n.remove(),[t,e,n].forEach((function(t){return null})),i={}}}}},4868:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(2316),i=n.n(r);const o=i().View.extend({tagName:'style',initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,'change',this.render),this.listenTo(e,'destroy remove',this.remove),this.listenTo(e.get('selectors'),'change',this.render)},render:function(){var t=this.model,e=this.el,n=t.get('important');return e.innerHTML=t.toCSS({important:n}),this}}),s=o.extend({_createElement:function(t){return document.createTextNode('')},render:function(){var t=this.model,e=t.get('important');return this.el.textContent=t.getDeclaration({important:e}),this}});var a=i().$,l=function(t,e){return"".concat(t).concat(e?"-".concat(parseFloat(e)):'')};const c=i().View.extend({initialize:function(t){var e=t.config||{};this.atRules={},this.config=e,this.em=e.em,this.pfx=e.stylePrefix||'',this.className=this.pfx+'rules';var n=this.collection;this.listenTo(n,'add',this.addTo),this.listenTo(n,'reset',this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){if(this.renderStarted){var n,r,i=e||null,a={model:t,config:this.config};if('keyframes'===t.get('atRuleType')){var c=t.getAtRule(),u=this.atRules[c];if(!u){var h=document.createElement('style');u=document.createTextNode(''),h.appendChild(document.createTextNode("".concat(c,"{"))),h.appendChild(u),h.appendChild(document.createTextNode("}")),this.atRules[c]=u,n=h}r=new s(a),u.appendData(r.render().el.textContent)}else n=(r=new o(a)).render().el;var f=this.className,d=t.get('mediaText'),p=l(f),g=p;if(d&&(g=l(f,this.getMediaWidth(d))),n){var v,m=i||this.el;try{v=m.querySelector("#".concat(g))}catch(t){}v||(v=m.querySelector("#".concat(p))),v.appendChild(n)}return n}},getMediaWidth:function(t){return t&&t.replace("(".concat(this.em.getConfig('mediaCondition'),": "),'').replace(')','')},render:function(){var t=this;this.renderStarted=1,this.atRules={};var e=this.em,n=this.$el,r=this.className,i=this.collection,o=document.createDocumentFragment();n.empty();var s=e.get('DeviceManager').getAll().pluck('priority');return s.every((function(t){return t}))&&s.unshift(0),s.forEach((function(t){return a("
")).appendTo(o)})),i.each((function(e){return t.addToCollection(e,o)})),n.append(o),n.attr('class',r),this}})},2004:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>L,evAdd:()=>E,evAddBefore:()=>j,evAll:()=>k,evPfx:()=>S,evRemove:()=>D,evRemoveBefore:()=>M,evSelect:()=>P,evSelectBefore:()=>_,evUpdate:()=>T});var r=n(4942),i=n(9050),o=n(9304);const s={default:null,devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'770px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{name:'',width:null,height:'',widthMedia:null,priority:null}}},{key:"initialize",value:function(){var t=this;null===this.get('widthMedia')&&this.set('widthMedia',this.get('width')),null===this.get('width')&&this.set('width',this.get('widthMedia')),!this.get('priority')&&this.set('priority',parseFloat(this.get('widthMedia'))||0);['width','height','widthMedia'].forEach((function(e){return t.checkUnit(e)}))}},{key:"checkUnit",value:function(t){var e=this.get(t)||'';(parseFloat(e)||0).toString()===e.toString()&&this.set(t,"".concat(e,"px"))}},{key:"getName",value:function(){return this.get('name')||this.get('id')}},{key:"getWidthMedia",value:function(){return this.get('widthMedia')||''}}]),n}(f.Model);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"comparator",value:function(t,e){var n=Number.MAX_VALUE;return(e.get('priority')||n)-(t.get('priority')||n)}},{key:"getSorted",value:function(){return this.sort()}}]),n}(f.Collection);v.prototype.model=p;var m,y=n(168),b=n(1629);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var x=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.ppfx,n=t.label;return(0,b.Z)(m||(m=(0,y.Z)(["\n
","
\n
\n \n \n \n
\n
\n
\n
\n \n "])),e,n,e,e,e,e,e,e,e)}},{key:"events",value:function(){return{change:'updateDevice'}}},{key:"initialize",value:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||'',this.events['click .'+this.ppfx+'add-trasp']=this.startAdd,this.listenTo(this.em,'change:device',this.updateSelect),this.delegateEvents()}},{key:"startAdd",value:function(){}},{key:"updateDevice",value:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():'';t.set('device',n)}}},{key:"updateSelect",value:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),r=n?n.get('id'):'';e.val(r)}}},{key:"getOptions",value:function(){var t=this.collection,e=this.em,n='';return t.each((function(t){var r=t.attributes,i=r.name,o=r.id,s=e&&e.t&&e.t("deviceManager.devices.".concat(o))||i;n+="")})),n}},{key:"render",value:function(){var t=this.em,e=this.ppfx,n=this.$el,r=this.el,i=t&&t.t&&t.t('deviceManager.device');return n.html(this.template({ppfx:e,label:i})),this.devicesEl=n.find(".".concat(e,"devices")),this.devicesEl.append(this.getOptions()),this.devicesEl.val(t.get('device')),r.className="".concat(e,"devices-c"),this}}]),n}(f.View);function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=n=C(C({},s),r),o=i.em;return t=new v,n.devices.forEach((function(t){return e.add(t)})),this.em=o,this.all=t,this.select(n.default||t.at(0)),this.__initListen(),o.on(A,this._onSelect,this),this},_onSelect:function(t,e,n){var r=this.em,i=this.events,o=t.previous('device'),s=this.get(e),a=i.select;r.trigger(a,s,this.get(o)),this.__catchAllEvent(a,s,n)},add:function(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r;if((0,i.isString)(e)){var s=r;n=C(C({},o=arguments[2]||{}),{},{id:e,name:o.name||e,width:s})}else n=e;return n.id||(n.id=n.name||this._createId()),t.add(n,o)},get:function(e){return this.getAll().filter((function(t){return t.get('name')===e}))[0]||t.get(e)||null},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getDevices:function(){return t.models},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.isString)(t)?this.get(t):t;return n&&this.em.set('device',n.get('id'),e),this},getSelected:function(){return this.get(this.em.get('device'))},getAll:function(){return t},render:function(){return e&&e.remove(),(e=new x({collection:t,config:n})).render().el},destroy:function(){t.stopListening(),t.reset(),e&&e.remove(),[t,e].forEach((function(t){return null})),n={}}})}},9831:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>ue});var r=n(4942),i=n(1002),o=n(9050);const s={stylePrefix:'comp-',components:[],draggableComponents:1,storeWrapper:0,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']};var a=n(9138),l=n(8431),c=n(2169),u=n(5671),h=n(3144),f=n(9340),d=n(3930),p=n(1120);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var v=function(t){(0,f.Z)(n,t);var e=g(n);function n(){return(0,u.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"tagName",value:function(){return'div'}}]),n}(c.Z),m=n(3505),y=n(6183);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e=0}}),O=c.Z.extend({});function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){a.ZP.prototype.initialize.apply(this,arguments);var n=this.get('attributes'),r=n.src;r&&this.set('src',r,{silent:1})},initToolbar:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.get(t.fallback?'fallback':'src')||'',n=e;return e&&'1&&void 0!==arguments[1]?arguments[1]:{};if('a'===(0,y.toLowerCase)(t.tagName)){var r=n.textTags||[];e={type:ct,editable:!1};var i=t.childNodes,s=i.length;s||delete e.editable,(0,o.forEach)(i,(function(t){var n=t.tagName;(3==t.nodeType&&''!==t.textContent.trim()||n&&r.indexOf((0,y.toLowerCase)(n))>=0)&&delete e.editable}))}return e};var ht=n(5861),ft=n(7757),dt=n.n(ft);function pt(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 gt(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},canActivate:function(){var t,e=this.model,n=this.rteEnabled,r=this.em,i=(null==r?void 0:r.getEditing())===e,o=!0,s=!1;if((n||!e.get('editable')||i||(s=e.isChildOf('text')))&&(o=!1,s&&!e.get('textable'))){for(var a=e.parent();a&&!a.isInstanceOf('text');)a=a.parent();a&&a.get('editable')?t=a:o=!0}return{result:o,delegate:t}},onActive:function(t){var e=this;return(0,ht.Z)(dt().mark((function n(){var r,i,o,s,a,l,c;return dt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=e.rte,o=e.em,s=e.canActivate(),a=s.result,l=s.delegate,a){n.next=5;break}return l&&(null==t||null===(c=t.stopPropagation)||void 0===c||c.call(t),o.setSelected(l),l.trigger('active',t)),n.abrupt("return");case 5:if(null==t||null===(r=t.stopPropagation)||void 0===r||r.call(t),e.lastContent=e.getContent(),!i){n.next=17;break}return n.prev=8,n.next=11,i.enable(e,e.activeRte,{event:t});case 11:e.activeRte=n.sent,n.next=17;break;case 14:n.prev=14,n.t0=n.catch(8),o.logError(n.t0);case 17:e.toggleEvents(1);case 18:case"end":return n.stop()}}),n,null,[[8,14]])})))()},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=arguments,e=this;return(0,ht.Z)(dt().mark((function n(){var r,i,o,s,a,l;return dt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.model,o=e.rte,s=e.activeRte,a=e.em,l=i&&i.get('editable'),!o){n.next=13;break}return n.prev=4,n.next=7,o.disable(e,s);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),a.logError(n.t0);case 12:l&&e.getContent()!==e.lastContent&&(e.syncContent(r),e.lastContent='');case 13:e.toggleEvents();case 14:case"end":return n.stop()}}),n,null,[[4,9]])})))()},getContent:function(){var t=this.activeRte;return t&&'function'==typeof t.getContent?t.getContent():this.getChildrenContainer().innerHTML},syncContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.rte,r=this.rteEnabled;if(r||t.force){var i=this.getContent(),o=e.components(),s=gt({fromDisable:1},t);e.set('content','',s),n.customRte?(o.length&&o.reset(null,t),e.set('content',i,s)):o.resetFromString(i,t)}},insertComponent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=this.el,i=r.ownerDocument,o=i.getSelection();if(null!=o&&o.rangeCount){var s,a=o.getRangeAt(0),l=a.startContainer,c=a.startOffset,u=(0,y.getModel)(l),h=[];if(u&&null!==(s=u.is)&&void 0!==s&&s.call(u,'textnode')){var f=u.collection;f.forEach((function(e){if(e===u){var n='textnode',r=e.get('content');h.push({type:n,content:r.slice(0,c)}),h.push(t),h.push({type:n,content:r.slice(c)})}else h.push(e)}));var d=h.filter(Boolean),p=d.indexOf(t);return f.reset(d,e),f.at(p)}}return n.append(t,e)},onInput:function(){var t=this.em,e='component',n=["".concat(e,":update"),"".concat(e,":input")].join(' ');t&&t.trigger(n,this.model)},disablePropagation:function(t){t.stopPropagation()},toggleEvents:function(t){var e=this.em,n=this.model,r=this.$el,i={on:y.on,off:y.off},o=t?'on':'off';e.setEditing(t?this:0),this.rteEnabled=!!t;var s=[this.el.ownerDocument,document];if(i.off(s,'mousedown',this.onDisable),i[o](s,'mousedown',this.onDisable),e[o]('toolbar:run:before',this.onDisable),n&&(n[o]('removed',this.onDisable),n.trigger("rte:".concat(t?'enable':'disable'))),r&&r.off('mousedown',this.disablePropagation),r&&r[o]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var a=this.el;a;)a.draggable=!t,(a=a.parentNode)&&'BODY'==a.tagName&&(a=0)}}),yt=mt.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return!!e.inSvg}}),Ut=c.Z.extend({_createElement:function(t){return document.createElementNS('http://www.w3.org/2000/svg',t)}});function Wt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $t(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:'',e=this.em,n='';!t&&r.stm&&(t=r.em.getCacheLoad());var i=t,s=i.components,a=i.html;if(s)if((0,o.isObject)(s)||(0,o.isArray)(s))n=s;else try{n=JSON.parse(s)}catch(t){e&&e.logError(t)}else a&&(n=a);var l=n&&n.constructor===Object;return(n&&n.length||l)&&(this.clear(),l?this.getWrapper().set(n):this.getComponents().add(n)),n},store:function(t){if(!r.stm||this.em.get('hasPages'))return{};var e={},n=this.storageKey();if(n.indexOf('html')>=0&&(e.html=r.em.getHtml()),n.indexOf('components')>=0){var i=r.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(i)}return t||r.stm.store(e),e},getComponent:function(){var t=this.em.get('PageManager').getSelected(),e=t&&t.getMainFrame();return e&&e.getComponent()},getWrapper:function(){return this.getComponent()},getComponents:function(){var t=this.getWrapper();return t&&t.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,s=void 0===r?{}:r,a=e.view,l=void 0===a?{}:a,c=e.isComponent,u=e.extend,f=e.extendView,d=e.extendFn,p=void 0===d?[]:d,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),y=this.getType(u),b=this.getType(f),w=y||(m||this.getType('default')),x=w.model,O=b?b.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'===(0,i.Z)(s)&&(e.model=x.extend(ce(ce(ce({},s),C(p,s,x)),{},{defaults:ce(ce({},(0,o.result)(x.prototype,'defaults')||{}),(0,o.result)(s,'defaults')||{})}),{isComponent:!m||y||c?c||function(){return 0}:x.isComponent})),'object'===(0,i.Z)(l)&&(e.view=O.extend(ce(ce({},l),C(v,l,O)))),m?(m.model=e.model,m.view=e.view):(e.id=t,h.unshift(e));var k="component:type:".concat(m?'update':'add');return n&&n.trigger(k,m||e),this},getType:function(t){for(var e=h,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};t&&(t.set({status:'selected'}),['component:selected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)})))},selectRemove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t){this.em;t.set({status:'',state:''}),['component:deselected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)}))}},componentHovered:function(){var t=r.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),i='hovered';n&&n.get('status')==i&&n.set({status:'',state:''}),e&&(0,o.isEmpty)(e.get('status'))&&e.set('status',i)},getShallowWrapper:function(){var t=this.shallow,e=this.em;if(!t&&e){var n=e.get('shallow');if(!n)return;var r=n.get('DomComponents');if(r.componentTypes=this.componentTypes,t=r.getWrapper()){var i=[a.GN,a.xH].join(' ');t.on(i,(0,o.debounce)((function(){return t.components('')}),100))}this.shallow=t}return t},canMove:function(t,e,n){var r=n||0===n?n:null,i={result:!1,reason:0,target:t,source:null};if(!e)return i;var s=null!=e&&e.toHTML?e:null;if(!s){var a=this.getShallowWrapper();s=null==a?void 0:a.append(e)[0]}if(i.source=s,!s)return i;var l=s.get('draggable');if((0,o.isFunction)(l))l=!!l(s,t,r);else{var c=t.getEl();l=(0,o.isArray)(l)?l.join(','):l,l=(0,o.isString)(l)?null==c?void 0:c.matches(l):l}if(!l)return ce(ce({},i),{},{reason:1});var u=t.get('droppable');if((0,o.isFunction)(u))u=!!u(s,t,r);else if(!1===u&&t.isInstanceOf('text')&&s.get('textable'))u=!0;else{var h=s.getEl();u=(0,o.isArray)(u)?u.join(','):u,u=(0,o.isString)(u)?null==h?void 0:h.matches(u):u}return ce(ce({},i),{},u?{result:!0}:{reason:2})},allById:function(){return u},getById:function(t){return u[t]||null},destroy:function(){var i=this.allById();Object.keys(i).forEach((function(t){return i[t]&&i[t].remove()})),n&&n.remove(),[r,t,u,e,n].forEach((function(t){return{}})),this.em={}}}}},9138:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>Z,OA:()=>D,GN:()=>R,xH:()=>N});var r=n(1002),i=n(2982),o=n(885),s=n(4942),a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(9050),d=n(6183),p=n(3345),g=n(2316),v=n(8431),m=n(8490),y=n(4293);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('label')||this.getName();return r&&(null===(t=this.em)||void 0===t?void 0:t.t("traitManager.traits.labels.".concat(i)))||o}},{key:"getValue",value:function(){return this.getTargetValue()}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};e.partial&&(n.avoidStore=!0),this.setTargetValue(t,n),!1===e.partial&&(this.setTargetValue(''),this.setTargetValue(t))}},{key:"props",value:function(){return this.attributes}},{key:"targetUpdated",value:function(){var t,e=this.getTargetValue();this.set({value:e},{fromTarget:1}),null===(t=this.em)||void 0===t||t.trigger('trait:update',{trait:this,component:this.target})}},{key:"getTargetValue",value:function(){var t,e=this.get('name'),n=this.target;return t=this.get('changeProp')?n.get(e):n.getAttributes()[e],(0,f.isUndefined)(t)?'':t}},{key:"setTargetValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.target,r=this.get('name');if(!(0,f.isUndefined)(t)){var i=t;if('false'===t?i=!1:'true'===t&&(i=!0),this.get('changeProp'))n.set(r,i,e);else{var o=w({},n.get('attributes'));o[r]=i,n.set('attributes',o,e)}}}},{key:"setValueFromInput",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,w(w({},n),{},{avoidStore:1})),e&&(this.set('value','',n),this.set(r,n))}},{key:"getInitValue",value:function(){var t,e=this.target,n=this.get('name');if(e){var r=e.get('attributes');t=this.get('changeProp')?e.get(n):r[n]}return t||this.get('value')||this.get('default')}}]),n}(g.Model);O.prototype.defaults={type:'text',label:'',name:'',min:'',max:'',unit:'',step:1,value:'',target:'',default:'',placeholder:'',changeProp:0,options:[]};function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k,S=function(t){(0,c.Z)(n,t);var e=C(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.listenTo(this,'add',this.handleAdd),this.listenTo(this,'reset',this.handleReset)}},{key:"handleReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels,r=void 0===n?[]:n;r.forEach((function(t){return t.trigger('remove')}))}},{key:"handleAdd",value:function(t){t.em=this.em;var e=this.target;e&&(t.target=e)}},{key:"setTarget",value:function(t){this.target=t}},{key:"add",value:function(t,e){var n=this.em;if((0,f.isString)(t)||(0,f.isArray)(t)){var r=n&&n.get&&n.get('TraitManager'),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];'string'==typeof e&&(e=[e]);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,f.bindAll)(this,'__upSymbProps','__upSymbCls','__upSymbComps');var i=r.em,o=this.parent(),s=o&&o.attributes,a=this.get('propagate');if(a&&this.set('propagate',(0,f.isArray)(a)?a:[a]),s&&s.propagate&&!a){var l={},c=s.propagate;c.forEach((function(t){return l[t]=o.get(t)})),l.propagate=c,this.set(_(_({},l),e))}if(r&&r.config&&r.config.voidElements.indexOf(this.get('tagName'))>=0&&this.set('void',!0),r.em=i,this.opt=r,this.em=i,this.frame=r.frame,this.config=r.config||{},this.set('attributes',_(_({},(0,f.result)(this,'defaults').attributes||{}),this.get('attributes')||{})),this.ccid=n.createId(this,r),this.initClasses(),this.initTraits(),this.initComponents(),this.initToolbar(),this.initScriptProps(),this.listenTo(this,'change:script',this.scriptUpdated),this.listenTo(this,'change:tagName',this.tagUpdated),this.listenTo(this,'change:attributes',this.attrUpdated),this.listenTo(this,'change:attributes:id',this._idUpdated),this.on('change:toolbar',this.__emitUpdateTlb),this.on('change',this.__onChange),this.on(N,this.__propToParent),this.set('status',''),this.views=[],['classes','traits','components'].forEach((function(e){var n="add remove ".concat('components'!==e?'change':'');t.listenTo(t.get(e),n.trim(),(function(){for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e&&e.get('UndoManager'),r=this.components();n&&!this.__hasUm&&(n.add(r),n.add(this.getSelectors()),this.__hasUm=1),t.recursive&&r.map((function(e){return e.__postAdd(t)}))}},{key:"__postRemove",value:function(){var t=this.em,e=t&&t.get('UndoManager');e&&(e.remove(this.components()),e.remove(this.getSelectors()),delete this.__hasUm)}},{key:"__onChange",value:function(t,e){var n=this.changedAttributes();['status','open','toolbar','traits'].forEach((function(t){return delete n[t]})),(0,d.isEmptyObj)(n)||(this.__changesUp(e),this.__propSelfToParent({component:this,changed:n,options:e}))}},{key:"__changesUp",value:function(t){var e=this.em;[this.frame,e].forEach((function(e){return e&&e.changesUp(t)}))}},{key:"__propSelfToParent",value:function(t){this.trigger(R,t),this.__propToParent(t)}},{key:"__propToParent",value:function(t){var e=this.parent();e&&e.trigger(N,t)}},{key:"__emitUpdateTlb",value:function(){this.emitUpdate('toolbar')}},{key:"is",value:function(t){return!(this.get('type')!=t)}},{key:"props",value:function(){return this.attributes}},{key:"index",value:function(){var t=this.collection;return t?t.indexOf(this):0}},{key:"setDragMode",value:function(t){return this.set('dmode',t)}},{key:"find",value:function(t){var e=[],n=this.view.$el.find(t);return n.each((function(t){var r=n.eq(t).data('model');r&&e.push(r)})),e}},{key:"findType",value:function(t){var e=[];return function n(r){return r.forEach((function(r){r.is(t)&&e.push(r),n(r.components())}))}(this.components()),e}},{key:"closest",value:function(t){var e=this.view.$el.closest(t);return e.length&&e.data('model')}},{key:"closestType",value:function(t){for(var e=this.parent();e&&!e.is(t);)e=e.parent();return e}},{key:"contains",value:function(t){var e=!1;if(!t)return e;var n=function n(r){!e&&r.forEach((function(r){r===t&&(e=!0),!e&&n(r.components())}))};return n(this.components()),e}},{key:"tagUpdated",value:function(){this.trigger('rerender')}},{key:"replaceWith",value:function(t){var e=this.collection,n=e.indexOf(this);return e.remove(this),e.add(t,{at:n})}},{key:"attrUpdated",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.get('attributes'),o=i.class;o&&this.setClass(o),delete i.class;var s=i.style;s&&this.setStyle(s),delete i.style;var a=_({},this.previous('attributes')),l=(0,d.shallowDiff)(a,this.get('attributes'));(0,f.keys)(l).forEach((function(t){return n.trigger("change:attributes:".concat(t),n,l[t],r)}))}},{key:"setAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.set('attributes',_({},t),e),this}},{key:"addAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setAttributes(_(_({},this.getAttributes({noClass:1})),t),e)}},{key:"removeAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.getAttributes();return n.map((function(t){return delete r[t]})),this.setAttributes(r,e)}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=(0,f.isString)(t)?t:'',i=r?e:t;if(n&&n.getConfig('avoidInlineStyle')&&!i.inline){var o=n.get('state'),s=n.get('CssComposer'),a=s.getIdRule(this.getId(),_({state:o},i));if(this.rule=a,a)return a.getStyle(r)}return p.Z.getStyle.call(this,r)}},{key:"setStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=this.opt;if(r&&r.getConfig('avoidInlineStyle')&&!i.temporary&&!n.inline){var o=this.get('style')||{};e=_(_({},e=(0,f.isString)(e)?this.parseStyle(e):e),o);var s=r.get('state'),a=r.get('CssComposer'),l=this.getStyle(n);this.rule=a.setIdRule(this.getId(),e,_(_({},n),{},{state:s}));var c=(0,d.shallowDiff)(l,e);this.set('style','',{silent:1}),(0,f.keys)(c).forEach((function(e){return t.trigger("change:style:".concat(e))}))}else e=p.Z.setStyle.apply(this,arguments);return e}},{key:"getAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=[],i=_({},this.get('attributes')),o=n&&n.get('SelectorManager'),s=this.getId();if(e.noClass||(this.get('classes').forEach((function(t){return r.push((0,f.isString)(t)?t:t.get('name'))})),r.length&&(i.class=r.join(' '))),!e.noStyle){var a=this.get('style');(0,d.isObject)(a)&&!(0,d.isEmptyObj)(a)&&(i.style=this.styleToString({inline:1}))}(0,f.has)(i,'id')||(j(n)?t=o&&o.get(s,o.Selector.TYPE_ID):(0,f.isEmpty)(this.getStyle())||(t=1),(this.__getSymbol()||this.__getSymbols())&&(t=1),t&&(i.id=s));return i}},{key:"addClass",value:function(t){var e=this.em.get('SelectorManager').addClass(t);return this.get('classes').add(e)}},{key:"setClass",value:function(t){return this.get('classes').reset(),this.addClass(t)}},{key:"removeClass",value:function(t){var e=[];t=(0,f.isArray)(t)?t:[t];var n=this.get('classes'),r=m.Z.TYPE_CLASS;return t.forEach((function(t){t.split(' ').forEach((function(t){var i=n.where({name:t,type:r})[0];i&&e.push(n.remove(i))}))})),e}},{key:"getClasses",value:function(){var t=this.getAttributes().class;return t?t.split(' '):[]}},{key:"__logSymbol",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.__getSymbol(),i=this.__getSymbols();(r||i)&&this.em.log(t,{model:this,toUp:e,context:'symbols',opts:n})}},{key:"__initSymb",value:function(){this.__symbReady||(this.on('change',this.__upSymbProps),this.__symbReady=1)}},{key:"__isSymbol",value:function(){return(0,f.isArray)(this.get(M))}},{key:"__isSymbolOrInst",value:function(){return!(!this.__isSymbol()&&!this.get(A))}},{key:"__isSymbolTop",value:function(){var t=this.parent();return this.__isSymbolOrInst()&&(!t||t&&!t.__isSymbol()&&!t.__getSymbol())}},{key:"__isSymbolNested",value:function(){if(!this.__isSymbolOrInst()||this.__isSymbolTop())return!1;var t=(this.__isSymbol()?this:this.__getSymbol()).__getSymbTop(),e=this.__getSymbTop();return(e.__isSymbol()?e:e.__getSymbol())!==t}},{key:"__getAllById",value:function(){var t=this.em;return t?t.get('DomComponents').allById():{}}},{key:"__getSymbol",value:function(){var t=this.get(A);if(t&&(0,f.isString)(t)){var e=this.__getAllById()[t];e?(t=e,this.set(A,e)):t=0}return t}},{key:"__getSymbols",value:function(){var t=this,e=this.get(M);return e&&(0,f.isArray)(e)&&(e.forEach((function(n,r){n&&(0,f.isString)(n)&&(e[r]=t.__getAllById()[n])})),e=e.filter((function(t){return t&&!(0,f.isString)(t)}))),e}},{key:"__isSymbOvrd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.get(L),n=t.split(':'),r=(0,o.Z)(n,1),i=r[0],s=t!==i?[t,i]:[t];return!0===e||(0,f.isArray)(e)&&s.some((function(t){return e.indexOf(t)>=0}))}},{key:"__getSymbToUp",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[],r=this.em,o=e.changed,s=r&&r.get('symbols');if(e.fromInstance||e.noPropagate||e.fromUndo||!s||o&&this.__isSymbOvrd(o))return n;var a=this.__getSymbols()||[],l=this.__getSymbol(),c=l?[l].concat((0,i.Z)(l.__getSymbols()||[])):a;return n=c.filter((function(e){return e!==t})).filter((function(t){return!(o&&t.__isSymbOvrd(o))}))}},{key:"__getSymbTop",value:function(t){for(var e=this,n=this.parent(t);n&&(n.__isSymbol()||n.__getSymbol());)e=n,n=n.parent(t);return e}},{key:"__upSymbProps",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.changedAttributes(),i=r.attributes||{};if(delete r.status,delete r.open,delete r.__symbols,delete r.__symbol,delete r.__symbol_ovrd,delete r.attributes,delete i.id,(0,d.isEmptyObj)(i)||(r.attributes=i),!(0,d.isEmptyObj)(r)){var o=this.__getSymbToUp(n);(0,f.keys)(r).map((function(t){e.__isSymbOvrd(t)&&delete r[t]})),this.__logSymbol('props',o,{opts:n,changed:r}),o.forEach((function(t){var i=_({},r);(0,f.keys)(i).map((function(e){t.__isSymbOvrd(e)&&delete i[e]})),t.set(i,_({fromInstance:e},n))}))}}},{key:"__upSymbCls",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.__getSymbToUp(r);this.__logSymbol('classes',i,{opts:r}),i.forEach((function(t){t.set('classes',n.get('classes'),{fromInstance:n})})),this.__changesUp(r)}},{key:"__upSymbComps",value:function(t,e,n){var r=this,o=n||e||{},s={fromInstance:o.fromInstance,fromUndo:o.fromUndo},a=t.opt.temporary;if(n)if(n.add){var l=[],c=!!this.__getSymbols(),u=this.__getSymbToUp(_(_({},s),{},{changed:'components:add'}));if(u.length){var h=t.__getSymbol();l=(h?h.__getSymbols():t.__getSymbols())||[],(l=(0,i.Z)(l)).push(h||t)}!a&&this.__logSymbol('add',u,{opts:n,addedInstances:l.map((function(t){return t.cid})),added:t.cid}),u.forEach((function(e){var i=e.__getSymbTop(),o=l.filter((function(t){var e=t.__getSymbTop({prev:1});return i&&e&&e===i}))[0]||t.clone({symbol:1,symbolInv:c});e.append(o,_({fromInstance:r},n))}))}else{var f=t.__getSymbol();if(f&&!n.temporary&&f.set(M,f.__getSymbols().filter((function(e){return e!==t}))),!t.__isSymbolTop()){var d='components:remove',p=n.index,g=t.parent(),v=_({fromInstance:t},n),m=t.__isSymbolNested(),y=function(t){var e=t.parent();e&&!e.__isSymbOvrd(d)&&t.remove(v)},b=g.__isSymbOvrd(d)?[]:t.__getSymbToUp(s);m&&(b=g.__getSymbToUp(_(_({},s),{},{changed:d})),y=function(t){var e=t.components().at(p);e&&e.remove(_({fromInstance:g},v))}),!a&&this.__logSymbol('remove',b,{opts:n,removed:t.cid,isSymbNested:m}),b.forEach(y)}}else{var w=this.__getSymbToUp(_(_({},s),{},{changed:'components:reset'}));this.__logSymbol('reset',w,{components:t.models}),w.forEach((function(n){var i=t.models.map((function(t){return t.clone({symbol:1})}));n.components().reset(i,_({fromInstance:r},e))}))}this.__changesUp(o)}},{key:"initClasses",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r='change:classes',i=this.get('attributes').class||[],o=[this,r,this.initClasses],s=this.get('classes')||i,a=(0,f.isString)(s)?s.split(' '):s;this.stopListening.apply(this,o);var l=this.normalizeClasses(a),c=new y.Z([]);return this.set('classes',c,n),c.add(l),c.on('add remove reset',this.__upSymbCls),this.listenTo.apply(this,o),this}},{key:"initComponents",value:function(){var t=[this,'change:components',this.initComponents];this.stopListening.apply(this,t);var e=new v.Z(null,this.opt);e.parent=this;var n=this.get('components'),r=!this.opt.avoidChildren;return this.set('components',e),r&&n&&e.add((0,f.isFunction)(n)?n(this):n,this.opt),e.on('add remove reset',this.__upSymbComps),this.listenTo.apply(this,t),this}},{key:"initTraits",value:function(t){var e=this.em,n='change:traits';this.off(n,this.initTraits),this.__loadTraits();var r=_({},this.get('attributes')),i=this.get('traits');return i.each((function(t){if(!t.get('changeProp')){var e=t.get('name'),n=t.getInitValue();e&&n&&(r[e]=n)}})),i.length&&this.set('attributes',r),this.on(n,this.initTraits),t&&e&&e.trigger('component:toggled'),this}},{key:"initScriptProps",value:function(){if(!this.opt.temporary){var t='script-props',e=["change:".concat(t),this.initScriptProps];this.off.apply(this,e);var n=this.previous(t)||[],r=this.get(t)||[],i=n.map((function(t){return"change:".concat(t)})).join(' '),o=r.map((function(t){return"change:".concat(t)})).join(' ');i&&this.off(i,this.__scriptPropsChange),o&&this.on(o,this.__scriptPropsChange),this.on.apply(this,e)}}},{key:"__scriptPropsChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.avoidStore||this.trigger('rerender')}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,f.isArray)(t)?t:[t],r=n.map((function(t){return(0,f.isString)(t)||t.collection&&t.collection.remove(t,{temporary:1}),t})),i=this.components().add(r,e);return(0,f.isArray)(i)?i:[i]}},{key:"components",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('components');return(0,f.isUndefined)(t)?n:(n.reset(null,e),t?this.append(t,e):[])}},{key:"getChildAt",value:function(t){return this.components().at(t||0)||null}},{key:"getLastChild",value:function(){var t=this.components();return t.at(t.length-1)||null}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.components().reset(null,t),this}},{key:"parent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.collection||t.prev&&this.prevColl;return e?e.parent:null}},{key:"scriptUpdated",value:function(){this.set('scriptUpdated',1)}},{key:"initToolbar",value:function(){var t=this.em,e=this,n=t&&t.getConfig('stylePrefix')||'';if(!e.get('toolbar')&&t){var r=[];e.collection&&r.push({label:t.getIcon('arrowUp'),command:function(t){return t.runCommand('core:component-exit',{force:1})}}),e.get('draggable')&&r.push({attributes:{class:"".concat(n,"no-touch-actions"),draggable:!0},label:t.getIcon('move'),command:'tlb-move'}),e.get('copyable')&&r.push({label:t.getIcon('copy'),command:'tlb-clone'}),e.get('removable')&&r.push({label:t.getIcon('delete'),command:'tlb-delete'}),e.set('toolbar',r)}}},{key:"__loadTraits",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t||this.get('traits');if(!(n instanceof S)){n=(0,f.isFunction)(n)?n(this):n;var r=new S([],this.opt);r.setTarget(this),n.length&&(n.forEach((function(t){return t.attributes&&delete t.attributes.value})),r.add(n)),this.set({traits:r},e)}return this}},{key:"getTraits",value:function(){return this.__loadTraits(),(0,i.Z)(this.get('traits').models)}},{key:"setTraits",value:function(t){var e=(0,f.isArray)(t)?t:[t];return this.set({traits:e}),this.getTraits()}},{key:"getTrait",value:function(t){return this.getTraits().filter((function(e){return e.get('id')===t||e.get('name')===t}))[0]||null}},{key:"updateTrait",value:function(t,e){var n,r=this.getTrait(t);return r&&r.set(e),null===(n=this.em)||void 0===n||n.trigger('component:toggled'),this}},{key:"getTraitIndex",value:function(t){var e=this.getTrait(t);return e?this.get('traits').indexOf(e):-1}},{key:"removeTrait",value:function(t){var e,n=this,r=((0,f.isArray)(t)?t:[t]).map((function(t){return n.getTrait(t)})),i=this.get('traits'),o=r.length?i.remove(r):[];return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,f.isArray)(o)?o:[o]}},{key:"addTrait",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.__loadTraits();var r=this.get('traits').add(t,n);return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,f.isArray)(r)?r:[r]}},{key:"normalizeClasses",value:function(t){var e=[],n=this.em,r=n&&n.get('SelectorManager');if(r)return t.models?(0,i.Z)(t.models):(t.forEach((function(t){return e.push(r.add(t))})),e)}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=_({},this.attributes),r=_({},this.opt),o=this.getId(),s=e&&e.get('CssComposer');n.attributes=_({},n.attributes),delete n.attributes.id,n.components=[],n.classes=[],n.traits=[],this.__isSymbolTop()&&(t.symbol=1),this.get('components').each((function(e,r){n.components[r]=e.clone(_(_({},t),{},{_inner:1}))})),this.get('traits').each((function(t,e){n.traits[e]=t.clone()})),this.get('classes').each((function(t,e){n.classes[e]=t.get('name')})),n.status='',r.collection=null;var a=new this.constructor(n,r),l="#".concat(a.getId()),c=s?s.getRules("#".concat(o)):[];c.forEach((function(t){var e=t.clone();e.set('selectors',[l]),s.getAll().add(e)})),a.set(M,0);var u=this.__getSymbol(),h=this.__getSymbols();t.symbol||!u&&!h?u?(u.set(M,[].concat((0,i.Z)(u.__getSymbols()),[a])),a.__initSymb()):t.symbol&&(this.__isSymbol()?(this.set(M,[].concat((0,i.Z)(h),[a])),a.set(A,this),a.__initSymb()):t.symbolInv?(this.set(M,[a]),a.set(A,this),[this,a].map((function(t){return t.__initSymb()}))):(a.set(M,[this]),[this,a].map((function(t){return t.__initSymb()})),this.set(A,a))):(a.set(A,0),a.set(M,0));var f='component:clone';return e&&e.trigger(f,a),this.trigger(f,a),a}},{key:"getName",value:function(){var t=this.em,e=this.attributes,n=e.type,r=e.tagName,i=e.name,o=n||r,s=!n&&r,a='domComponents.names.',l=i&&(null==t?void 0:t.t("".concat(a).concat(i))),c=s&&(null==t?void 0:t.t("".concat(a).concat(s))),u=t&&(t.t("".concat(a).concat(n))||t.t("".concat(a).concat(r)));return this.get('custom-name')||l||i||c||(0,d.capitalize)(s)||u||(0,d.capitalize)(o)}},{key:"getIcon",value:function(){var t=this.get('icon');return t?t+' ':''}},{key:"toHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=[],r=t.tag,i=r||e.get('tagName'),o=e.get('void'),s=t.attributes,a=this.getAttrToHTML();if(delete t.tag,s&&((0,f.isFunction)(s)?a=s(e,a)||{}:(0,d.isObject)(s)&&(a=s)),t.withProps){var l=this.toJSON();(0,f.forEach)(l,(function(t,e){'_'!==e[0]&&['classes','attributes','components'].indexOf(e)<0&&(a["data-gjs-".concat(e)]=(0,f.isArray)(t)||(0,d.isObject)(t)?JSON.stringify(t):t)}))}for(var c in a){var u=a[c];if(!(0,f.isUndefined)(u)&&null!==u)if((0,f.isBoolean)(u))u&&n.push(c);else{var h='';if(t.altQuoteAttr&&(0,f.isString)(u)&&u.indexOf('"')>=0)h="'".concat(u.replace(/'/g,'''),"'");else{var p=(0,f.isString)(u)?u.replace(/"/g,'"'):u;h="\"".concat(p,"\"")}n.push("".concat(c,"=").concat(h))}}var g=n.length?" ".concat(n.join(' ')):'',v=e.getInnerHTML(t),m="<".concat(i).concat(g).concat(o?'/':'',">").concat(v);return!o&&(m+="")),m}},{key:"getInnerHTML",value:function(t){return this.__innerHTML(t)}},{key:"__innerHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.components();return e.length?e.map((function(e){return e.toHTML(t)})).join(''):this.get('content')}},{key:"getAttrToHTML",value:function(){var t=this.getAttributes();return delete t.style,t}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=g.Model.prototype.toJSON.call(this,t);if(e.attributes=this.getAttributes(),delete e.attributes.class,delete e.toolbar,delete e.traits,delete e.status,delete e.open,!t.fromUndo){var n=e.__symbol,r=e.__symbols;r&&(0,f.isArray)(r)&&(e.__symbols=r.filter((function(t){return t})).map((function(t){return t.getId?t.getId():t}))),n&&!(0,f.isString)(n)&&(e.__symbol=n.getId())}return this.em.getConfig('avoidDefaults')&&this.getChangedProps(e),e}},{key:"getChangedProps",value:function(t){var e=t||g.Model.prototype.toJSON.apply(this),n=(0,f.result)(this,'defaults');return(0,f.forEach)(n,(function(t,n){-1===['type'].indexOf(n)&&e[n]===t&&delete e[n]})),(0,f.isEmpty)(e.type)&&delete e.type,(0,f.forEach)(['attributes','style'],(function(t){(0,f.isEmpty)(n[t])&&(0,f.isEmpty)(e[t])&&delete e[t]})),(0,f.forEach)(['classes','components'],(function(t){(!e[t]||(0,f.isEmpty)(n[t])&&!e[t].length)&&delete e[t]})),e}},{key:"getId",value:function(){return(this.get('attributes')||{}).id||this.ccid||this.cid}},{key:"setId",value:function(t,e){var n=_({},this.get('attributes'));return n.id=t,this.set('attributes',n,e),this}},{key:"getEl",value:function(t){var e=this.getView(t);return e&&e.el}},{key:"getView",value:function(t){var e=this.view,n=this.views;return t&&(e=n.filter((function(e){return e._getFrame()===t.view}))[0]),e}},{key:"getCurrentView",value:function(){var t=(this.em.get('currentFrame')||{}).model;return this.getView(t)}},{key:"__getScriptProps",value:function(){var t=this.props();return(this.get('script-props')||[]).reduce((function(e,n){return e[n]=t[n],e}),{})}},{key:"getScriptString",value:function(t){var e=this,n=t||this.get('script');if(!n)return n;if(this.get('script-props'))n=n.toString().trim();else{if('function'==typeof n){var i=n.toString().trim();n=(i=i.replace(/^function[\s\w]*\(\)\s?\{/,'').replace(/\}$/,'')).trim()}var o=this.em.getConfig(),s=E(o.tagVarStart||'{[ '),a=E(o.tagVarEnd||' ]}'),l=new RegExp("".concat(s,"([\\w\\d-]*)").concat(a),'g');n=n.replace(l,(function(t,n){e.scriptUpdated();var i=e.attributes[n]||'';return(0,f.isArray)(i)||'object'==(0,r.Z)(i)?JSON.stringify(i):i}))}return n}},{key:"emitUpdate",value:function(t){for(var e=this.em,n=R+(t?":".concat(t):''),r=t&&this.get(t),i=arguments.length,o=new Array(i>1?i-1:0),a=1;a=0&&this.__propSelfToParent({component:this,changed:(0,s.Z)({},t,r),options:o[2]||o[1]||{}})}},{key:"onAll",value:function(t){return(0,f.isFunction)(t)&&(t(this),this.components().forEach((function(e){return e.onAll(t)}))),this}},{key:"remove",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=this.collection,i=function(){r&&r.remove(t,_(_({},e),{},{action:'remove-component'})),e.root&&t.components('')},o=_({},e);return[this,n].map((function(e){return e.trigger('component:remove:before',t,i,o)})),!o.abort&&i(),this}},{key:"move",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.remove({temporary:1}),t&&t.append(this,e),this}},{key:"isInstanceOf",value:function(t){var e,n,r=null===(e=this.em)||void 0===e||null===(n=e.get('DomComponents').getType(t))||void 0===n?void 0:n.model;return!!r&&this instanceof r}},{key:"isChildOf",value:function(t){for(var e=(0,f.isString)(t),n=this.parent();n;){if(e){if(n.isInstanceOf(t))return!0}else if(n===t)return!0;n=n.parent()}return!1}},{key:"resetId",value:function(){var t=this.em,e=this.getId();if(e){var r=n.createId(this);this.setId(r);var i=t&&t.get('CssComposer').getIdRule(e),o=i&&i.get('selectors').at(0);return o&&o.set('name',r),this}}},{key:"_getStyleRule",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.id,n=this.em,r=e||this.getId();return n&&n.get('CssComposer').getIdRule(r)}},{key:"_getStyleSelector",value:function(t){var e=this._getStyleRule(t);return e&&e.get('selectors').at(0)}},{key:"_idUpdated",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r.idUpdate){var i=this.ccid,o=this.get('attributes')||{},s=o.id,a=(this.previous('attributes')||{}).id||i,l=n.getList(this);if(l[s]||!s&&a)return this.setId(a,{idUpdate:1});delete l[a],l[s]=this,this.ccid=s;var c=this._getStyleSelector({id:a});c&&c.set({name:s,label:s})}}}]),n}(g.Model.extend(p.Z));Z.isComponent=function(t){return{tagName:(0,d.toLowerCase)(t.tagName)}},Z.ensureInList=function(t){var e=Z.getList(t),n=t.getId(),r=e[n];if(r){if(r!==t){var i=Z.getIncrementId(n,e);t.setId(i),e[i]=t}}else e[n]=t;t.components().forEach((function(t){return Z.ensureInList(t)}))},Z.createId=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Z.getList(t),i=n.idMap,o=void 0===i?{}:i,s=t.get('attributes'),a=s.id;return a?(e=Z.getIncrementId(a,r,n),t.setId(e),a!==e&&(o[a]=e)):e=Z.getNewId(r),r[e]=t,e},Z.getNewId=function(t){for(var e=Object.keys(t).length.toString().length+2,n=(Math.random()+1.1).toString(36).slice(-e),r="i".concat(n);t[r];)r=Z.getNewId(t);return r},Z.getIncrementId=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.keepIds,i=void 0===r?[]:r,o=1,s=t;if(i.indexOf(t)<0)for(;e[s];)o++,s="".concat(t,"-").concat(o);return s},Z.getList=function(t){var e=t.opt,n=void 0===e?{}:e,r=n.domc,i=n.em,o=r||i&&i.get('DomComponents');return o?o.componentsById:{}},Z.checkId=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(0,f.isArray)(t)?t:[t],o=r.keepIds,s=void 0===o?[]:o;i.forEach((function(t){var i=t.attributes,o=void 0===i?{}:i,a=t.components,l=o.id;if(l&&n[l]&&s.indexOf(l)<0){var c=Z.getIncrementId(l,n);o.id=c,(0,f.isArray)(e)&&e.forEach((function(t){var e=t.selectors;e.forEach((function(t,n){t==="#".concat(l)&&(e[n]="#".concat(c))}))}))}a&&Z.checkId(a,e,n,r)}))},Z.getDefaults=function(){return(0,f.result)(this.prototype,'defaults')},Z.prototype.defaults=(k={tagName:'div',type:'',name:'',removable:!0,draggable:!0,droppable:!0,badgable:!0,stylable:!0,'stylable-require':'','style-signature':'',unstylable:'',highlightable:!0,copyable:!0,resizable:!1,editable:!1,layerable:!0,selectable:!0,hoverable:!0,void:!1,state:'',status:'',content:'',icon:'',style:'',styles:'',classes:'',script:'','script-props':'','script-export':'',attributes:'',traits:['id','title'],propagate:'',dmode:'',toolbar:null},(0,s.Z)(k,A,0),(0,s.Z)(k,M,0),(0,s.Z)(k,L,0),(0,s.Z)(k,"_undo",!0),(0,s.Z)(k,"_undoexc",['status','open']),k)},8431:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(1002),i=n(2982),o=n(4925),s=n(4942),a=n(2316),l=n.n(a),c=n(9050),u=n(9138),h=["at"];function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];var r=(0,c.isArray)(e)||(0,c.isFunction)(e.map)?e:[e];return r.map((function(e){n.push(e.getId()),t(e.components().models,n)})),n},g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,c.isArray)(e)?e:[e];return i.map((function(e){var i=e.attributes,o=void 0===i?{}:i,s=e.components,a=e.tagName,l=o.id,u=e;if(l&&n[l]&&(u=n[l],a&&u.set({tagName:a},d(d({},r),{},{silent:!0}))),s){var h=t(s,n);if((0,c.isFunction)(u.components)){var f=u.components();f.length>0&&f.reset(h,r)}else u.components=h}return u}))};const v=l().Collection.extend({initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.opt=e,this.listenTo(this,'add',this.onAdd),this.listenTo(this,'remove',this.removeChildren),this.listenTo(this,'reset',this.resetChildren);var n=e.em,r=e.config;this.config=r,this.em=n,this.domc=e.domc||n&&n.get('DomComponents')},resetChildren:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this,i=n.previousModels||[],o=i.filter((function(e){return!t.get(e.cid)})),s=p(t);n.keepIds=p(i).filter((function(t){return s.indexOf(t)>=0})),o.forEach((function(t){return e.removeChildren(t,r,n)})),t.each((function(t){return e.onAdd(t)}))},resetFromString:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=p(this);var r=this.domc,i=(null==r?void 0:r.allById())||{},o=this.parseString(e,n),s=(0,c.isArray)(o)?o:[o],a=g(s,i,n);this.reset(a,n),null===(t=this.em)||void 0===t||t.trigger('component:content',this.parent,n,e)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i=this.domc,o=this.em,s=r.temporary||r.fromUndo;if(t.prevColl=this,!s){var a=t.getId(),l=o.get('SelectorManager').getAll(),c=o.get('CssComposer').getAll(),u=(r.keepIds||[]).indexOf(a)<0,h=i?i.allById():{};delete h[a];var f=u?c.remove(c.filter((function(t){return t.getSelectors().getFullString()==="#".concat(a)})),r):[];l.remove(f.map((function(t){return t.getSelectors().at(0)}))),t.opt.temporary||(o.get('Commands').run('core:component-style-clear',{target:t}),t.removed(),t.trigger('removed'),o.trigger('component:remove',t));var d=t.components();d.forEach((function(t){return n.removeChildren(t,e,r)}))}var p=t.components();o.stopListening(p),o.stopListening(t),o.stopListening(t.get('classes')),t.__postRemove()}},model:function(t,e){var n,r=e.collection.opt,i=r.em,o=i.get('DomComponents').componentTypes;e.em=i,e.config=r.config,e.componentTypes=o,e.domc=r.domc;for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.domc,i=n.get('CssComposer'),s=n.get('Parser').parseHtml(t);if(u.ZP.checkId(s.html,s.css,r.componentsById,e),s.css&&i&&!e.temporary){e.at;var a=(0,o.Z)(e,h);i.addCollection(s.css,d(d({},a),{},{extend:1}))}return s.html},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=[].concat((0,i.Z)(n.keepIds||[]),(0,i.Z)(p(n.previousModels))),(0,c.isString)(t)?t=this.parseString(t,n):(0,c.isArray)(t)&&(t=(0,i.Z)(t)).forEach((function(r,i){if((0,c.isString)(r)){var o=e.parseString(r,n);t[i]=(0,c.isArray)(o)&&!o.length?null:o}}));var r=(0,c.isArray)(t);t=(r?t:[t]).filter((function(t){return t})).map((function(t){return e.processDef(t)})),t=r?(0,c.flatten)(t,1):t[0];var o=l().Collection.prototype.add.apply(this,[t,n]);return this.__firstAdd=o,o},processDef:function(t){if(t.cid&&t.ccid)return t;var e=this.em,n=this.config,i=(void 0===n?{}:n).processor,o=t;if(i){var s=i(o=d({},o));s&&((0,c.each)(o,(function(t,e){return delete o[e]})),(0,c.extend)(o,s))}if(o.$$typeof&&'object'==(0,r.Z)(o.props)){(o=d({},o)).props=d({},o.props);var a=e.get('DomComponents'),l=e.get('Parser').parserHtml;(0,c.each)(o,(function(t,e){(0,c.includes)(['props','type'],e)||delete o[e]}));var u=o.props,h=u.children;delete u.children,delete o.props;var f=l.splitPropsFromAttr(u);o.attributes=f.attrs,h&&(o.components=h),o.type?a.getType(o.type)||(o.tagName=o.type,delete o.type):o.type='textnode',(0,c.extend)(o,f.props)}return o},onAdd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.domc,i=this.em,o=t.getStyle(),s=i&&i.getConfig('avoidInlineStyle');if(r&&r.Component.ensureInList(t),!(0,c.isEmpty)(o)&&!s&&i&&i.get&&i.getConfig('forceClass')&&!n.temporary){var a=t.cid;i.get('CssComposer').setClassRule(a,o);t.setStyle({}),t.addClass(a)}t.__postAdd({recursive:1}),this.__onAddEnd()},__onAddEnd:(0,c.debounce)((function(){}))})},2169:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(8431),l=n(3505),c=n(4293),u=n(9283),h=n(6183);function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{},r=n.em,i=e.opt||{},o=this.$el,s=this.el;this.opts=t,this.modelOpt=i,this.config=n,this.em=r||'',this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.attr=e.get('attributes'),this.classe=this.attr.class||[],this.listenTo(e,'change:style',this.updateStyle),this.listenTo(e,'change:attributes',this.renderAttributes),this.listenTo(e,'change:highlightable',this.updateHighlight),this.listenTo(e,'change:status',this.updateStatus),this.listenTo(e,'change:script rerender',this.reset),this.listenTo(e,'change:content',this.updateContent),this.listenTo(e,'change',this.handleChange),this.listenTo(e,'active',this.onActive),this.listenTo(e,'disable',this.onDisable),o.data('model',e),(0,h.setViewEl)(s,this),e.view=this,this._getFrame()&&e.views.push(this),this.initClasses(),this.initComponents({avoidRender:1}),this.events=d(d({},this.events),{},{dragstart:'handleDragStart'}),this.delegateEvents(),!i.temporary&&this.init(this._clbObj())},__isDraggable:function(){var t=this.model,e=this.config,n=t.attributes.draggable;return e.draggableComponents&&n},_clbObj:function(){var t=this.em,e=this.model,n=this.el;return{editor:t&&t.getEditor(),model:e,el:n}},init:function(){},removed:function(){},onActive:function(){},onDisable:function(){},remove:function(){var t;o().View.prototype.remove.apply(this,arguments);var e=this.model,n=this.$el,r=e.views,i=this._getFrame()||{};return e.components().forEach((function(t){var e=t.getView(i.model);null==e||e.remove()})),null===(t=this.childrenView)||void 0===t||t.remove(),r.splice(r.indexOf(this),1),this.removed(this._clbObj()),n.data({model:'',collection:'',view:''}),this},handleDragStart:function(t){if(!this.__isDraggable())return!1;t.stopPropagation(),t.preventDefault(),this.em.get('Commands').run('tlb-move',{target:this.model,event:t})},initClasses:function(){var t=this.model,e='change:classes',n=t.get('classes');n instanceof c.Z&&(this.stopListening(t,e,this.initClasses),this.listenTo(t,e,this.initClasses),this.listenTo(n,'add remove change',this.updateClasses),n.length&&this.importClasses())},initComponents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.$el,r=this.childrenView,i='change:components',o=e.get('components'),s=[e,i,this.initComponents];o instanceof a.Z&&(n.data('collection',o),r&&r.remove(),this.stopListening.apply(this,s),!t.avoidRender&&this.renderChildren(),this.listenTo.apply(this,s))},handleChange:function(){var t=this.model,e=(0,s.keys)(t.changed);if(1!==e.length||'status'!==e[0])for(var n in t.emitUpdate(),t.changed)t.emitUpdate(n)},importClasses:function(){var t=this.config.em.get('SelectorManager');t&&this.model.get('classes').each((function(e){t.add(e.get('name'))}))},updateStatus:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e?e.get('Canvas').getConfig():{},r=n.extHl,i=this.el,o=this.model.get('status'),s=this.ppfx,a="".concat(s,"selected"),l="".concat(a,"-parent"),c="".concat(s,"freezed"),u="".concat(s,"hovered"),h=[a,l,c,u],f=r&&!t.noExtHl?'':a;this.$el.removeClass(h.join(' '));var d=i.getAttribute('class')||'',p='';switch(o){case'selected':p="".concat(d," ").concat(f);break;case'selected-parent':p="".concat(d," ").concat(l);break;case'freezed':p="".concat(d," ").concat(c);break;case'freezed-selected':p="".concat(d," ").concat(c," ").concat(f);break;case'hovered':p=t.avoidHover?'':"".concat(d," ").concat(u)}(p=p.trim())&&i.setAttribute('class',p)},updateHighlight:function(){var t=this.model,e=t.get('textable'),n=t.get('highlightable')&&(e||!t.isChildOf('text'));this.setAttribute('data-gjs-highlightable',!!n||'')},updateStyle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.em;if(i&&i.getConfig('avoidInlineStyle')&&!n.inline){var o=r.getStyle();!(0,s.isEmpty)(o)&&r.setStyle(o)}else this.setAttribute('style',r.styleToString(n))},updateClasses:function(){var t=this.model.get('classes').pluck('name').join(' ');this.setAttribute('class',t),this.updateStatus(),this.onAttrUpdate()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){return this.model.getClasses().join(' ')},updateAttributes:function(){var t=[],e=this.model,n=this.$el,r=this.el,i=e.attributes,o=i.textable,a=i.type,l=d(d({id:e.getId(),'data-gjs-type':a||'default'},this.__isDraggable()&&{draggable:!0}),o&&{contenteditable:'false'});(0,s.each)(r.attributes,(function(e){return t.push(e.nodeName)})),t.forEach((function(t){return n.removeAttr(t)})),this.updateStyle(),this.updateHighlight();var c=d(d({},l),e.getAttributes());(0,s.keys)(c).forEach((function(t){return!1===c[t]&&delete c[t]})),n.attr(c)},updateContent:function(){var t=this.model.get('content'),e=this.model.components().length;this.getChildrenContainer().innerHTML=e?'':t},prevDef:function(t){t.preventDefault()},updateScript:function(){var t=this.model,e=this.em;t.get('script')&&e&&e.get('Canvas').getCanvasView().updateScript(this)},getChildrenContainer:function(){var t=this.el;return'function'==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},getOffsetRect:function(){var t={},e=this.el,n=0,r=0;return function i(o){var s=o.offsetParent;s?(n+=s.offsetTop,r+=s.offsetLeft,i(s)):(t.top=e.offsetTop+n,t.left=e.offsetLeft+r,t.bottom=t.top+e.offsetHeight,t.right=t.left+e.offsetWidth)}(e),t},isInViewport:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.rect,n=this.el,r=n.ownerDocument,i=r.body,o=r.defaultView.frameElement,s=e||this.getOffsetRect(),a=s.top,l=s.left,c=this._getFrame().getOffsetRect();return a>=c.scrollTop&&l>=c.scrollLeft&&a<=c.scrollBottom&&l<=o.offsetWidth+i.scrollLeft},scrollIntoView:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getOffsetRect(),n=this.isInViewport({rect:e});if(!n||t.force){var r=this.el;'smooth'!==t.behavior?r.ownerDocument.defaultView.scrollTo(0,e.top):r.scrollIntoView(d({behavior:'smooth',block:'nearest'},t))}},reset:function(){var t=this.el;this.el='',this._ensureElement(),this._setData(),(0,u.dL)(t,this.el),this.render()},_setData:function(){var t=this.model,e=t.components();this.$el.data({model:t,collection:e,view:this})},_getFrame:function(){return this.config.frameView},renderChildren:function(){this.updateContent();var t=this.getChildrenContainer(),e=this.childrenView||new l.Z({collection:this.model.get('components'),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),r=0,i=n.length;r{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=n(9050);const s=i().View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{},this.em=this.config.em;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.resetChildren),this.listenTo(e,'remove',this.removeChildren)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.views.forEach((function(t){if(t){var e=t.childrenView,n=t.scriptContainer;e&&e.stopListening(),n&&n.remove(),t.remove.apply(t)}}));var i=t.components();i.forEach((function(t){return n.removeChildren(t,e,r)}))},addTo:function(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.config.em,r=this.collection.indexOf(t);if(this.addToCollection(t,null,r),n&&!e.temporary){var i=function t(e){n.trigger('component:add',e),e.components().forEach((function(e){return t(e)}))};i(t)}},addToCollection:function(t,e,r){this.compView||(this.compView=n(2169).Z);for(var i=this.config,s=this.opts,a=this.em,l=e||null,c=i.frameView,u=void 0===c?{}:c,h=u.model&&t.getView(u.model),f=s.componentTypes||a&&a.get('DomComponents').getTypes(),d=t.get('type')||'default',p=this.compView,g=0;g1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels,i=void 0===r?[]:r;this.parentEl.innerHTML='',i.forEach((function(t){return e.removeChildren(t,e.collection)})),t.each((function(t){return e.addToCollection(t)}))},render:function(t){var e=this,n=this.el,r=document.createDocumentFragment();return this.parentEl=t||this.el,this.collection.each((function(t){return e.addToCollection(t,r)})),n.innerHTML='',n.appendChild(r),this}})},3345:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(6183);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 a(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(e)&&(e=l(e));var r=this.getStyle(n),s=a({},e);this.set('style',s,n);var c=(0,o.shallowDiff)(r,s);return(0,i.keys)(c).forEach((function(e){var r=t.em;n.noEvent||(t.trigger("change:style:".concat(e)),r&&(r.trigger("styleable:change",t,e,n),r.trigger("styleable:change:".concat(e),t,e,n)))})),s},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};'string'==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle(t);for(var r in n){var o=t.important,s=(0,i.isArray)(o)?o.indexOf(r)>=0:o,a="".concat(n[r]).concat(s?' !important':''),l='__'==r.substr(0,2);a&&!l&&e.push("".concat(r,":").concat(a,";"))}return e.join('')},getSelectors:function(){return this.get('selectors')||this.get('classes')},getSelectorsString:function(t){return this.selectorsToString?this.selectorsToString(t):this.getSelectors().getFullString()},_validate:function(t,e){var n,r=t.style,o=this.em||e.em,s=null==o||null===(n=o.get('CssComposer'))||void 0===n?void 0:n.getConfig().onBeforeStyle;if(r&&s){var l=s(a({},r));l&&(0,i.keys)(r).map((function(e){(0,i.isUndefined)(l[e])&&delete t.style[e]})),l&&(0,i.keys)(l).map((function(e){t.style[e]=l[e]}))}return!0}}},793:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(4942),i=n(9050),o=n(2316),s=n.n(o);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;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r,this.opts=n,this.model=function(){var t,n,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o&&o.type){var a=e.getBaseType();t=(i=e.getType(o.type))?i.model:a.model,n=i?i.view:a.view}else{var c=e.recognizeType(o);t=(i=c.type).model,n=i.view,o=c.attributes}var u=new t(o,l(l({},s),{},{em:r}));return u.typeView=n,u};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=i().$;const s=i().View.extend({events:{change:'handleChange'},template:function(){return"")},inputClass:function(){return"".concat(this.ppfx,"field")},holderClass:function(){return"".concat(this.ppfx,"input-holder")},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||'';this.opts=t,this.ppfx=e,this.em=t.target||{},!t.onChange&&this.listenTo(this.model,'change:value',this.handleModelChange)},elementUpdated:function(){this.model.trigger('el:change')},setValue:function(t){var e=this.model,n=t||e.get('defaults'),r=this.getInputEl();r&&(r.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation();var e=this.getInputEl().value;this.__onInputChange(e),this.elementUpdated()},__onInputChange:function(t){this.model.set({value:t},{fromInput:1})},getInputEl:function(){if(!this.inputEl){var t=this.model,e=this.opts.type||'text',n=t.get('placeholder')||t.get('defaults')||t.get('default')||'';this.inputEl=o(""))}return this.inputEl.get(0)},render:function(){this.inputEl=null;var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find(".".concat(this.holderClass())).append(this.getInputEl()),this}})},1511:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(1002),l=n(6183);var c=n(8659);function u(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;e","
","
",'
'].join(''),c=function(){var t='';if(i)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","",'
','
',"
","
","
","
","
","
","
","
",'
','
','
',"
",'
',"
","
",t,'
','
',"
",'
',"
","",'
',"
","
","","",'
','
','
'].join('')}(),u='spectrum.id';t.fn.spectrum=function(e,n){if('string'==typeof e){var i=this,o=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=r[t(this).data(u)];if(n){var s=n[e];if(!s)throw new Error("Spectrum: no such method: '"+e+"'");'get'==e?i=n.get():'container'==e?i=n.container:'option'==e?i=n.option.apply(n,o):'destroy'==e?(n.destroy(),t(this).removeData(u)):s.apply(n,o)}})),i}return this.spectrum('destroy').each((function(){var n=_(this,t.extend({},e,t(this).data()));t(this).data(u,n.id)}))},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=D,t.fn.spectrum.defaults=n,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult='color'===n.type&&''!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t('input[type=color]');e.length&&!M()&&e.spectrum({preferredFormat:'hex6'})};var h=/^[\s,#]+/,f=/\s+$/,d=0,p=Math,g=p.round,v=p.min,m=p.max,y=p.random,b=function t(e,n){if(n=n||{},(e=e||'')instanceof t)return e;if(!(this instanceof t))return new t(e,n);var r=function(t){var e={r:0,g:0,b:0},n=1,r=!1,i=!1;'string'==typeof t&&(t=function(t){t=t.replace(h,'').replace(f,'').toLowerCase();var e,n=!1;if(C[t])t=C[t],n=!0;else if('transparent'==t)return{r:0,g:0,b:0,a:0,format:'name'};if(e=S.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=S.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=S.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=S.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=S.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=S.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=S.hex8.exec(t))return{a:nt(e[1]),r:Q(e[2]),g:Q(e[3]),b:Q(e[4]),format:n?'name':'hex8'};if(e=S.hex6.exec(t))return{r:Q(e[1]),g:Q(e[2]),b:Q(e[3]),format:n?'name':'hex'};if(e=S.hex3.exec(t))return{r:Q(e[1]+''+e[1]),g:Q(e[2]+''+e[2]),b:Q(e[3]+''+e[3]),format:n?'name':'hex'};return!1}(t));'object'==(0,a.Z)(t)&&(t.hasOwnProperty('r')&&t.hasOwnProperty('g')&&t.hasOwnProperty('b')?(o=t.r,s=t.g,l=t.b,e={r:255*J(o,255),g:255*J(s,255),b:255*J(l,255)},r=!0,i='%'===String(t.r).substr(-1)?'prgb':'rgb'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('v')?(t.s=et(t.s),t.v=et(t.v),e=function(t,e,n){t=6*J(t,360),e=J(e,100),n=J(n,100);var r=p.floor(t),i=t-r,o=n*(1-e),s=n*(1-i*e),a=n*(1-(1-i)*e),l=r%6;return{r:255*[n,s,o,o,a,n][l],g:255*[a,n,n,s,o,o][l],b:255*[o,o,a,n,n,s][l]}}(t.h,t.s,t.v),r=!0,i='hsv'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('l')&&(t.s=et(t.s),t.l=et(t.l),e=function(t,e,n){var r,i,o;function s(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=J(t,360),e=J(e,100),n=J(n,100),0===e)r=i=o=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=s(l,a,t+1/3),i=s(l,a,t),o=s(l,a,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,t.s,t.l),r=!0,i='hsl'),t.hasOwnProperty('a')&&(n=t.a));var o,s,l;return n=Y(n),{ok:r,format:t.format||i,r:v(255,m(e.r,0)),g:v(255,m(e.g,0)),b:v(255,m(e.b,0)),a:n}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=g(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=g(this._r)),this._g<1&&(this._g=g(this._g)),this._b<1&&(this._b=g(this._b)),this._ok=r.ok,this._tc_id=d++};b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=Y(t),this._roundA=g(100*this._a)/100,this},toHsv:function(){var t=L(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=L(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.v);return 1==this._a?'hsv('+e+', '+n+'%, '+r+'%)':'hsva('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHsl:function(){var t=A(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=A(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.l);return 1==this._a?'hsl('+e+', '+n+'%, '+r+'%)':'hsla('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHex:function(t){return R(this._r,this._g,this._b,t)},toHexString:function(t){return'#'+this.toHex(t)},toHex8:function(){return N(this._r,this._g,this._b,this._a)},toHex8String:function(){return'#'+this.toHex8()},toRgb:function(){return{r:g(this._r),g:g(this._g),b:g(this._b),a:this._a}},toRgbString:function(){return 1==this._a?'rgb('+g(this._r)+', '+g(this._g)+', '+g(this._b)+')':'rgba('+g(this._r)+', '+g(this._g)+', '+g(this._b)+', '+this._roundA+')'},toPercentageRgb:function(){return{r:g(100*J(this._r,255))+'%',g:g(100*J(this._g,255))+'%',b:g(100*J(this._b,255))+'%',a:this._a}},toPercentageRgbString:function(){return 1==this._a?'rgb('+g(100*J(this._r,255))+'%, '+g(100*J(this._g,255))+'%, '+g(100*J(this._b,255))+'%)':'rgba('+g(100*J(this._r,255))+'%, '+g(100*J(this._g,255))+'%, '+g(100*J(this._b,255))+'%, '+this._roundA+')'},toName:function(){return 0===this._a?'transparent':!(this._a<1)&&(k[R(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e='#'+N(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?'GradientType = 1, ':'';t&&(n=b(t).toHex8String());return'progid:DXImageTransform.Microsoft.gradient('+r+'startColorstr='+e+',endColorstr='+n+')'},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||'hex'!==t&&'hex6'!==t&&'hex3'!==t&&'name'!==t?('rgb'===t&&(n=this.toRgbString()),'prgb'===t&&(n=this.toPercentageRgbString()),'hex'!==t&&'hex6'!==t||(n=this.toHexString()),'hex3'===t&&(n=this.toHexString(!0)),'hex8'===t&&(n=this.toHex8String()),'name'===t&&(n=this.toName()),'hsl'===t&&(n=this.toHslString()),'hsv'===t&&(n=this.toHsvString()),n||this.toHexString()):'name'===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(V,arguments)},brighten:function(){return this._applyModification(H,arguments)},darken:function(){return this._applyModification(B,arguments)},desaturate:function(){return this._applyModification(Z,arguments)},saturate:function(){return this._applyModification(I,arguments)},greyscale:function(){return this._applyModification(F,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(G,arguments)},complement:function(){return this._applyCombination(U,arguments)},monochromatic:function(){return this._applyCombination(K,arguments)},splitcomplement:function(){return this._applyCombination(q,arguments)},triad:function(){return this._applyCombination(W,arguments)},tetrad:function(){return this._applyCombination($,arguments)}},b.fromRatio=function(t,e){if('object'==(0,a.Z)(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]='a'===r?t[r]:et(t[r]));t=n}return b(t,e)},b.equals=function(t,e){return!(!t||!e)&&b(t).toRgbString()==b(e).toRgbString()},b.random=function(){return b.fromRatio({r:y(),g:y(),b:y()})},b.mix=function(t,e,n){n=0===n?0:n||50;var r,i=b(t).toRgb(),o=b(e).toRgb(),s=n/100,a=2*s-1,l=o.a-i.a,c=1-(r=((r=a*l==-1?a:(a+l)/(1+a*l))+1)/2),u={r:o.r*r+i.r*c,g:o.g*r+i.g*c,b:o.b*r+i.b*c,a:o.a*s+i.a*(1-s)};return b(u)},b.readability=function(t,e){var n=b(t),r=b(e),i=n.toRgb(),o=r.toRgb(),s=n.getBrightness(),a=r.getBrightness(),l=Math.max(i.r,o.r)-Math.min(i.r,o.r)+Math.max(i.g,o.g)-Math.min(i.g,o.g)+Math.max(i.b,o.b)-Math.min(i.b,o.b);return{brightness:Math.abs(s-a),color:l}},b.isReadable=function(t,e){var n=b.readability(t,e);return n.brightness>125&&n.color>500},b.mostReadable=function(t,e){for(var n=null,r=0,i=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!i||a&&i&&l>r||!a&&!i&&l>r)&&(i=a,r=l,n=b(e[o]))}return n};var w,x,O,C=b.names={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'0ff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000',blanchedalmond:'ffebcd',blue:'00f',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',burntsienna:'ea7e5d',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'0ff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkgrey:'a9a9a9',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkslategrey:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dimgrey:'696969',dodgerblue:'1e90ff',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'f0f',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',grey:'808080',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgray:'d3d3d3',lightgreen:'90ee90',lightgrey:'d3d3d3',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslategray:'789',lightslategrey:'789',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'0f0',limegreen:'32cd32',linen:'faf0e6',magenta:'f0f',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370db',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'db7093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',rebeccapurple:'663399',red:'f00',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',slategrey:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',wheat:'f5deb3',white:'fff',whitesmoke:'f5f5f5',yellow:'ff0',yellowgreen:'9acd32'},k=b.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(C),S=(x='[\\s|\\(]+('+(w="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',O='[\\s|\\(]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',{rgb:new RegExp('rgb'+x),rgba:new RegExp('rgba'+O),hsl:new RegExp('hsl'+x),hsla:new RegExp('hsla'+O),hsv:new RegExp('hsv'+x),hsva:new RegExp('hsva'+O),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=b,t((function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()}))}function P(e,n,r,i){for(var s=[],a=0;a')}else{s.push(t('
').append(t("").attr('title',i.noColorSelectedText)).html())}}return"
"+s.join('')+'
'}function _(a,l){var u,h,f,d,p=function(e,r){var i=t.extend({},n,e);return i.callbacks={move:j(i.move,r),change:j(i.change,r),show:j(i.show,r),hide:j(i.hide,r),beforeShow:j(i.beforeShow,r)},i}(l,a),g=p.flat,v=p.showSelectionPalette,m=p.localStorageKey,y=p.theme,w=p.callbacks,x=(u=Wt,h=10,function(){var t=this,e=arguments,n=function(){d=null,u.apply(t,e)};f&&clearTimeout(d),!f&&d||(d=setTimeout(n,h))}),O=!1,C=!1,k=!0,S=0,_=0,T=0,A=0,L=0,R=0,N=0,Z=0,I=0,F=0,V=1,H=[],B=[],z={},U=p.selectionPalette.slice(0),W=p.maxSelectionSize,$='sp-dragging',q=null,G=a.ownerDocument,K=(G.body,t(a)),Y=!1,J=t(c,G).addClass(y),X=J.find('.sp-picker-container'),Q=J.find('.sp-color'),tt=J.find('.sp-dragger'),et=J.find('.sp-hue'),nt=J.find('.sp-slider'),rt=J.find('.sp-alpha-inner'),it=J.find('.sp-alpha'),ot=J.find('.sp-alpha-handle'),st=J.find('.sp-input'),at=J.find('.sp-palette'),lt=J.find('.sp-initial'),ct=J.find('.sp-cancel'),ut=J.find('.sp-clear'),ht=J.find('.sp-choose'),ft=J.find('.sp-palette-toggle'),dt=K.is('input'),pt=dt&&'color'===K.attr('type')&&M(),gt=dt&&!g,vt=gt?t(s).addClass(y).addClass(p.className).addClass(p.replacerClassName):t([]),mt=gt?vt:K,yt=vt.find('.sp-preview-inner'),bt=p.color||dt&&K.val(),wt=!1,xt=p.preferredFormat,Ot=!p.showButtons||p.clickoutFiresChange,Ct=!bt,kt=p.allowEmpty&&!pt;function St(){if(p.showPaletteOnly&&(p.showPalette=!0),ft.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),p.palette){H=p.palette.slice(0),B=t.isArray(H[0])?H:[H],z={};for(var e=0;e1&&(delete window.localStorage[m],t.each(e,(function(t,e){_t(e)})))}catch(t){}try{U=window.localStorage[m].split(';')}catch(t){}}}function _t(e){if(v){var n=b(e).toRgbString();if(!z[n]&&-1===t.inArray(n,U))for(U.push(n);U.length>W;)U.shift();if(m&&window.localStorage)try{window.localStorage[m]=U.join(';')}catch(t){}}}function Tt(){var e=Vt(),n=t.map(B,(function(t,n){return P(t,e,'sp-palette-row sp-palette-row-'+n,p)}));Pt(),U&&n.push(P(function(){var t=[];if(p.showPalette)for(var e=0;ed&&d>i?Math.abs(g.left+i-d):0),g.top-=Math.min(g.top,g.top+o>p&&p>o?Math.abs(o+s-r):r),g}(J,mt))),zt(),p.showPalette&&Tt(),K.trigger('reflow.spectrum'))}function $t(){Zt(),Y=!0,K.attr('disabled',!0),mt.addClass('sp-disabled')}!function(){if(i&&J.find('*:not(input)').attr('unselectable','on'),St(),gt&&K.after(vt).hide(),kt||ut.hide(),g)K.after(J).hide();else{var e='parent'===p.appendTo?K.parent():t(p.appendTo);1!==e.length&&(e=t('body')),e.append(J)}function n(e){return e.data&&e.data.ignore?(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Ht()):(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Ht(),p.hideAfterPaletteSelect&&(Ut(!0),Zt())),!1}Pt(),mt.bind('click.spectrum touchstart.spectrum',(function(e){Y||At(),e.stopPropagation(),t(e.target).is('input')||e.preventDefault()})),(K.is(':disabled')||!0===p.disabled)&&$t(),J.click(E),st.change(Mt),st.bind('paste',(function(){setTimeout(Mt,1)})),st.keydown((function(t){13==t.keyCode&&Mt()})),ct.text(p.cancelText),ct.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),It(),Zt()})),ut.attr('title',p.clearText),ut.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),Ct=!0,Ht(),g&&Ut(!0)})),ht.text(p.chooseText),ht.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),i&&st.is(':focus')&&st.trigger('change'),st.hasClass('sp-validation-error')||(Ut(!0),Zt())})),ft.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),ft.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),p.showPaletteOnly=!p.showPaletteOnly,p.showPaletteOnly||g||J.css('left','-='+(X.outerWidth(!0)+5)),St()})),D(it,(function(t,e,n){V=t/L,Ct=!1,n.shiftKey&&(V=Math.round(10*V)/10),Ht()}),jt,Dt),D(et,(function(t,e){Z=parseFloat(e/A),Ct=!1,p.showAlpha||(V=1),Ht()}),jt,Dt),D(Q,(function(t,e,n){if(n.shiftKey){if(!q){var r=I*S,i=_-F*_,o=Math.abs(t-r)>Math.abs(e-i);q=o?'x':'y'}}else q=null;var s=!q||'y'===q;(!q||'x'===q)&&(I=parseFloat(t/S)),s&&(F=parseFloat((_-e)/_)),Ct=!1,p.showAlpha||(V=1),Ht()}),jt,Dt),bt?(Ft(bt),Bt(),xt=p.preferredFormat||b(bt).getFormat(),_t(bt)):Bt(),g&&Lt();var r=i?'mousedown.spectrum':'click.spectrum touchstart.spectrum';at.delegate('.sp-thumb-el',r,n),lt.delegate('.sp-thumb-el:nth-child(1)',r,{ignore:!0},n)}();var qt={show:Lt,hide:Zt,toggle:At,reflow:Wt,option:function(n,r){return n===e?t.extend({},p):r===e?p[n]:(p[n]=r,'preferredFormat'===n&&(xt=p.preferredFormat),void St())},enable:function(){Y=!1,K.attr('disabled',!1),mt.removeClass('sp-disabled')},disable:$t,offset:function(t){p.offset=t,Wt()},set:function(t){Ft(t),Ut()},get:Vt,destroy:function(){K.show(),mt.unbind('click.spectrum touchstart.spectrum'),J.remove(),vt.remove(),r[qt.id]=null},container:J};return qt.id=r.push(qt)-1,qt}function T(){}function E(t){t.stopPropagation()}function j(t,e){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}function D(e,n,r,o){n=n||function(){},r=r||function(){},o=o||function(){};var s=document,a=!1,l={},c=0,u=0,h='ontouchstart'in window,f={};function d(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function p(t){if(a){if(i&&s.documentMode<9&&!t.button)return g();var r=t&&t.touches&&t.touches[0],o=r&&r.pageX||t.pageX,f=r&&r.pageY||t.pageY,p=Math.max(0,Math.min(o-l.left,u)),v=Math.max(0,Math.min(f-l.top,c));h&&d(t),n.apply(e,[p,v,t])}}function g(){a&&(t(s).unbind(f),t(s.body).removeClass('sp-dragging'),setTimeout((function(){o.apply(e,arguments)}),0)),a=!1}f.selectstart=d,f.dragstart=d,f['touchmove mousemove']=p,f['touchend mouseup']=g,t(e).bind('touchstart mousedown',(function(n){var i=n.which?3==n.which:2==n.button;i||a||!1!==r.apply(e,arguments)&&(a=!0,c=t(e).height(),u=t(e).width(),l=t(e).offset(),t(s).bind(f),t(s.body).addClass('sp-dragging'),p(n),d(n))}))}function M(){return t.fn.spectrum.inputTypeColorSupport()}function A(t,e,n){t=J(t,255),e=J(e,255),n=J(n,255);var r,i,o=m(t,e,n),s=v(t,e,n),a=(o+s)/2;if(o==s)r=i=0;else{var l=o-s;switch(i=a>.5?l/(2-o-s):l/(o+s),o){case t:r=(e-n)/l+(e>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(b(r));return o}function K(t,e){e=e||6;for(var n=b(t).toHsv(),r=n.h,i=n.s,o=n.v,s=[],a=1/e;e--;)s.push(b({h:r,s:i,v:o})),o=(o+a)%1;return s}function Y(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function J(t,e){(function(t){return'string'==typeof t&&-1!=t.indexOf('.')&&1===parseFloat(t)})(t)&&(t='100%');var n=function(t){return'string'==typeof t&&-1!=t.indexOf('%')}(t);return t=v(e,m(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),p.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function X(t){return v(1,m(0,t))}function Q(t){return parseInt(t,16)}function tt(t){return 1==t.length?'0'+t:''+t}function et(t){return t<=1&&(t=100*t+'%'),t}function nt(t){return Q(t)/255}}(f);var d=function(t){var e='name'===t.getFormat()&&t.toName(),n=1==t.getAlpha()?t.toHexString():t.toRgbString();return e||n.replace(/ /g,'')};const p=c.Z.extend({template:function(){var t=this.ppfx;return"\n
\n
\n
\n
\n
\n
\n ")},inputClass:function(){var t=this.ppfx;return"".concat(t,"field ").concat(t,"field-color")},holderClass:function(){return"".concat(this.ppfx,"input-holder")},remove:function(){c.Z.prototype.remove.apply(this,arguments),this.colorEl.spectrum('destroy')},handleChange:function(t){t.stopPropagation();var e=t.target.value;(0,s.isUndefined)(e)||this.__onInputChange(e)},__onInputChange:function(t){var e=this.model,n=this.opts.onChange,r=t,i=this.getColorEl();if(i){i.spectrum('set',r);var o=i.spectrum('get'),s=r&&d(o);s&&(r=s)}n?n(r):e.set({value:r},{fromInput:1})},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=(0,s.isUndefined)(e.def)?n.get('defaults'):e.def,i=(0,s.isUndefined)(t)?(0,s.isUndefined)(r)?'':r:t,o=this.getInputEl(),a=this.getColorEl(),l='none'!=i?i:'';o.value=i,a.get(0).style.backgroundColor=l,(e.fromTarget||e.fromInput&&!e.avoidStore)&&(a.spectrum('set',l),this.noneColor='none'==i)},getColorEl:function(){if(!this.colorEl){var t,e=this.em,n=this.model,r=this.opts,i=this,o=this.ppfx,s=r.onChange,a=f("
")),l=a.get(0).style,c=e&&e.config?e.config.el:'',u=e&&e.getConfig&&e.getConfig('colorPicker')||{},p=0;this.$el.find("[data-colorp-c]").append(a),a.spectrum(h(h(h({color:n.getValue()||!1,containerClassName:"".concat(o,"one-bg ").concat(o,"two-color"),appendTo:c||'body',maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:'Ok',cancelText:'⨯',palette:[]},u),n.get('colorPicker')||{}),{},{move:function(t){var e=d(t);l.backgroundColor=e,s?s(e,!0):n.setValueFromInput(e,0)},change:function(t){p=1;var e=d(t);l.backgroundColor=e,s?s(e):(n.setValueFromInput(0,0),n.setValueFromInput(e)),i.noneColor=0},show:function(e){p=0,t=s?n.getValue({noDefault:!0}):d(e)},hide:function(e){p||!t&&!s||(i.noneColor&&(t=''),l.backgroundColor=t,a.spectrum('set',t),s?s(t,!0):n.setValueFromInput(t,0))}})),e&&e.on&&this.listenTo(e,'component:selected',(function(){p=1,a.spectrum('hide')})),this.colorEl=a}return this.colorEl},render:function(){return c.Z.prototype.render.call(this),this.getColorEl(),this}})},7610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(2316),i=n.n(r),o=n(9050),s=n(6183),a=n(8659);i().$;const l=a.Z.extend({events:{'change input':'handleChange','change select':'handleUnitChange','click [data-arrow-up]':'upArrowClick','click [data-arrow-down]':'downArrowClick','mousedown [data-arrows]':'downIncrement',keydown:'handleKeyDown'},template:function(){var t=this.ppfx;return"\n \n \n
\n
\n
\n
\n ")},inputClass:function(){var t=this.ppfx;return this.opts.contClass||"".concat(t,"field ").concat(t,"field-integer")},initialize:function(){a.Z.prototype.initialize.apply(this,arguments),(0,o.bindAll)(this,'moveIncrement','upIncrement'),this.doc=document,this.listenTo(this.model,'change:unit',this.handleModelChange)},setValue:function(t,e){var n=e||{},r=this.validateInputValue(t,{deepCheck:1}),i={value:r.value};(r.unit||r.force)&&(i.unit=r.unit),this.model.set(i,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set('unit',e),this.elementUpdated()},handleKeyDown:function(t){'ArrowUp'===t.key&&(t.preventDefault(),this.upArrowClick()),'ArrowDown'===t.key&&(t.preventDefault(),this.downArrowClick())},elementUpdated:function(){this.model.trigger('el:change')},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get('value');var e=this.getUnitEl();e&&(e.value=t.get('unit')||'')},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get('units')||[];if(e.length){var n=[''];e.forEach((function(e){var r=e==t.get('unit')?'selected':'';n.push(""))}));var r=document.createElement('div');r.innerHTML=""),this.unitEl=r.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n+e)),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n-e)),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get('value')||0;e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,s.on)(this.doc,'mousemove',this.moveIncrement),(0,s.on)(this.doc,'mouseup',this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get('step'),r=this.current,i=this.normalizeValue(r.val+(r.y-t.pageY)*n),o=this.validateInputValue(i),s=o.value,a=o.unit;return this.prValue=s,e.set({value:s,unit:a},{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get('step');if((0,s.off)(this.doc,'mouseup',this.upIncrement),(0,s.off)(this.doc,'mousemove',this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set('value',n,{avoidStore:1}).set('value',n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,r=n.get('step'),i=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=r.toString().split('.')[1];i=o?o.length:0}return i?parseFloat(t.toFixed(i)):t},validateInputValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e||{},i=this.model,s='',a=(0,o.isUndefined)(t)?s:t,l=e.units||i.get('units')||[],c=i.get('unit')||l.length&&l[0]||'',u=(0,o.isUndefined)(e.max)?i.get('max'):e.max,h=(0,o.isUndefined)(e.min)?i.get('min'):e.min,f=!!i.get('limitlessMax'),d=!!i.get('limitlessMin');if(r.deepCheck){var p=i.get('fixedValues')||[];if(''===a&&(c=''),a){var g=new RegExp('^'+p.join('|'),'g');if(p.length&&g.test(a))a=a.match(g)[0],c='',n=1;else{var v=a+'';a+='',a=parseFloat(a.replace(',','.')),a=isNaN(a)?s:a;var m=v.replace(a,'');(0,o.indexOf)(l,m)>=0&&(c=m)}}}return f||(0,o.isUndefined)(u)||''===u||(a=a>u?u:a),d||(0,o.isUndefined)(h)||''===h||(a=a{"use strict";n.d(e,{Z:()=>s});var r=n(9050),i=n(2316),o=n.n(i);const s=o().View.extend({itemView:'',itemsView:'',itemType:'type',autoAdd:0,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;this.config=e||t.config||{},this.autoAdd&&this.listenTo(this.collection,'add',this.addTo),this.items=[],this.init()},init:function(){},addTo:function(t){this.add(t)},itemViewNotFound:function(t){var e=this.config,n=this.ns,r=e.em,i="".concat(n?"[".concat(n,"]: "):'',"'").concat(t,"' type not found");r&&r.logWarning(i)},add:function(t,e){var n,i=this.config,o=this.reuseView,s=this.items,a=this.itemsView,l=void 0===a?{}:a,c=e||null,u=this.itemView,h=t.get(this.itemType);l[h]?u=l[h]:!h||l[h]||(0,r.includes)(['button','checkbox','color','date','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week'],h)||this.itemViewNotFound(h),n=t.view&&o?t.view:new u({model:t,config:i},i),s&&s.push(n);var f=n.render().el;c?c.appendChild(f):this.$el.append(f)},render:function(){var t=document.createDocumentFragment();return this.clearItems(),this.$el.empty(),this.collection.length&&this.collection.each((function(e){this.add(e,t)}),this),this.$el.append(t),this.onRender(),this},onRender:function(){},onRemoveBefore:function(){},onRemove:function(){},remove:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.items;this.onRemoveBefore(e,t),this.clearItems(),o().View.prototype.remove.apply(this,arguments),this.onRemove(e,t)},clearItems:function(){this.items}})},4836:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>d});var r=n(4942),i=n(1002),o=n(9050),s=n(6183),a={placeholder:'eg. Text here'};const l={locale:'en',localeFallback:'en',detectLocale:!0,debug:!1,messages:{en:{assetManager:{addButton:'Add image',inputPlh:'http://path/to/the/image.jpg',modalTitle:'Select Image',uploadTitle:'Drop files here or click to upload'},blockManager:{labels:{},categories:{}},domComponents:{names:{'':'Box',wrapper:'Body',text:'Text',comment:'Comment',image:'Image',video:'Video',label:'Label',link:'Link',map:'Map',tfoot:'Table foot',tbody:'Table body',thead:'Table head',table:'Table',row:'Table row',cell:'Table cell'}},deviceManager:{device:'Device',devices:{desktop:'Desktop',tablet:'Tablet',mobileLandscape:'Mobile Landscape',mobilePortrait:'Mobile Portrait'}},panels:{buttons:{titles:{preview:'Preview',fullscreen:'Fullscreen','sw-visibility':'View components','export-template':'View code','open-sm':'Open Style Manager','open-tm':'Settings','open-layers':'Open Layer Manager','open-blocks':'Open Blocks'}}},selectorManager:{label:'Classes',selected:'Selected',emptyState:'- State -',states:{hover:'Hover',active:'Click','nth-of-type(2n)':'Even/Odd'}},styleManager:{empty:'Select an element before using Style Manager',layer:'Layer',fileButton:'Images',sectors:{general:'General',layout:'Layout',typography:'Typography',decorations:'Decorations',extra:'Extra',flex:'Flex',dimension:'Dimension'},properties:{'text-shadow-h':'X','text-shadow-v':'Y','text-shadow-blur':'Blur','text-shadow-color':'Color','box-shadow-h':'X','box-shadow-v':'Y','box-shadow-blur':'Blur','box-shadow-spread':'Spread','box-shadow-color':'Color','box-shadow-type':'Type','margin-top-sub':'Top','margin-right-sub':'Right','margin-bottom-sub':'Bottom','margin-left-sub':'Left','padding-top-sub':'Top','padding-right-sub':'Right','padding-bottom-sub':'Bottom','padding-left-sub':'Left','border-width-sub':'Width','border-style-sub':'Style','border-color-sub':'Color','border-top-left-radius-sub':'Top Left','border-top-right-radius-sub':'Top Right','border-bottom-right-radius-sub':'Bottom Right','border-bottom-left-radius-sub':'Bottom Left','transform-rotate-x':'Rotate X','transform-rotate-y':'Rotate Y','transform-rotate-z':'Rotate Z','transform-scale-x':'Scale X','transform-scale-y':'Scale Y','transform-scale-z':'Scale Z','transition-property-sub':'Property','transition-duration-sub':'Duration','transition-timing-function-sub':'Timing','background-image-sub':'Image','background-repeat-sub':'Repeat','background-position-sub':'Position','background-attachment-sub':'Attachment','background-size-sub':'Size'}},traitManager:{empty:'Select an element before using Trait Manager',label:'Component settings',traits:{labels:{},attributes:{id:a,alt:a,title:a,href:{placeholder:'eg. https://google.com'}},options:{target:{false:'This window',_blank:'New window'}}}}}},messagesAdd:null};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=u(u(u({},l),t),{},{messages:u(u({},l.messages),t.messages||{})});var e=this.config.messagesAdd;return e&&this.addMessages(e),this.config.detectLocale&&(this.config.locale=this._localLang()),this.em=t.em,this},getConfig:function(){return this.config},setLocale:function(t){var e=this.em,n=this.config,r={value:t,valuePrev:n.locale};return e&&e.trigger('i18n:locale',r),n.locale=t,this},getLocale:function(){return this.config.locale},getMessages:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config.messages;return t&&!n[t]&&this._debug("'".concat(t,"' i18n lang not found"),e),t?n[t]:n},setMessages:function(t){var e=this.em;return this.config.messages=t,e&&e.trigger('i18n:update',t),this},addMessages:function(t){var e=this.em,n=this.config.messages;return e&&e.trigger('i18n:add',t),this.setMessages(f(n,t)),this},t:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config,r=e.params||{},i=e.l||this.getLocale(),s=e.lFlb||n.localeFallback,a=this._getMsg(t,i,e);return a||(a=this._getMsg(t,s,e)),!a&&this._debug("'".concat(t,"' i18n key not found in '").concat(i,"' lang"),e),a=a&&(0,o.isString)(a)?this._addParams(a,r):a},_localLang:function(){var t=(0,s.hasWin)()&&window.navigator||{},e=t.language||t.userLanguage;return e?e.split('-')[0]:'en'},_addParams:function(t,e){var n=new RegExp("{([\\w\\d-]*)}",'g');return t.replace(n,(function(t,n){return e[n]||''})).trim()},_getMsg:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getMessages(e,n);if(r){var i=r[t];return!i&&t.indexOf('.')>0&&(i=t.split('.').reduce((function(t,e){if(!(0,o.isUndefined)(t))return t[e]}),r)),i}},_debug:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.config;(e.debug||r.debug)&&n&&n.logWarning(t)},destroy:function(){this.config=l,this.em={}}}}},9788:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r,i=n(1002),o=n(4942),s=n(9050),a=n(6183),l={},c={16:!1,18:!1,17:!1,91:!1},u='all',h={'⇧':16,shift:16,'⌥':18,alt:18,option:18,'⌃':17,ctrl:17,control:17,'⌘':91,command:91},f={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,',':188,'.':190,'/':191,'`':192,'-':189,'=':187,';':186,"'":222,'[':219,']':221,'\\':220},d=function(t){return f[t]||t.toUpperCase().charCodeAt(0)},p=[];for(r=1;r<20;r++)f['f'+r]=111+r;function g(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function v(t,e){if(t.length!=e.length)return!1;for(var n=0;n=0&&p.splice(r,1),93!=n&&224!=n||(n=91),n in c)for(e in c[n]=!1,h)h[e]==n&&(x[e]=!1)}function w(){for(r in c)c[r]=!1;for(r in h)x[r]=!1}function x(t,e,n){var r,i;r=C(t),void 0===n&&(n=e,e='all');for(var o=0;o1&&(i=k(t),t=[t[t.length-1]]),t=t[0],(t=d(t))in l||(l[t]=[]),l[t].push({shortcut:r[o],scope:e,method:n,key:r[o],mods:i})}for(r in h)x[r]=!1;function O(){return u||'all'}function C(t){var e;return''==(e=(t=t.replace(/\s/g,'')).split(','))[e.length-1]&&(e[e.length-2]+=','),e}function k(t){for(var e=t.slice(0,t.length-1),n=0;n1&&(a=k(r)),t=r[r.length-1],t=d(t),void 0===e&&(e=O()),!l[t])return;for(i=0;i0,c)(!c[r]&&g(n.mods,+r)>-1||c[r]&&-1==g(n.mods,+r))&&(o=!1);(0!=n.mods.length||c[16]||c[18]||c[17]||c[91])&&!o||!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}(t)})),S(t.document,'keyup',b),S(t,'focus',w)};const P=x;function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.config=T(T({},t),e),this.em=this.config.em,this.keymaps={},this},onLoad:function(){var t=this.config.defaults;for(var e in t){var n=t[e];this.add(e,n.keys,n.handler,n.opts||{})}},add:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.em,a=o.get('Commands'),l=o.getEditor(),c=o.get('Canvas'),u={id:t,keys:e,handler:n},h=this.keymaps[t];return h&&this.remove(t),this.keymaps[t]=u,P(e,(function(e,u){var h={event:e,h:u};if(n=(0,s.isString)(n)?a.get(n):n,!o.isEditing()&&!l.Canvas.isInputFocused()||r.force){r.prevent&&c.getCanvasView().preventDefault(e),'object'==(0,i.Z)(n)?a.runCommand(n,h):n(l,0,h);var f=[t,u.shortcut,e];o.trigger.apply(o,['keymap:emit'].concat(f)),o.trigger.apply(o,["keymap:emit:".concat(t)].concat(f))}})),o.trigger('keymap:add',u),u},get:function(t){return this.keymaps[t]},getAll:function(){return this.keymaps},remove:function(t){var e=this.em,n=this.get(t);if(n)return delete this.keymaps[t],n.keys.split(', ').forEach((function(t){return P.unbind(t.trim())})),e&&e.trigger('keymap:remove',n),n},removeAll:function(){var t=this;return Object.keys(this.keymaps).forEach((function(e){return t.remove(e)})),P.handlers={},this},destroy:function(){this.removeAll(),this.keymaps={},this.em={}}}}},2450:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>x});var r=n(4942),i=n(9050),o=n(9283);const s={stylePrefix:'mdl-',title:'',content:'',backdrop:!0,custom:!1,extend:{}};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{title:'',content:'',attributes:{},open:!1}}},{key:"open",value:function(){this.set('open',!0)}},{key:"close",value:function(){this.set('open',!1)}}]),n}(f.Model);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
").concat(i,"
\n
\n
\n
\n
").concat(r,"
\n
\n
\n
\n
")}},{key:"events",value:function(){return{click:'onClick','click [data-close-modal]':'hide'}}},{key:"initialize",value:function(t){var e=this.model,n=t.config||{},r=n.stylePrefix||'';this.config=n,this.pfx=r,this.ppfx=n.pStylePrefix||'',this.listenTo(e,'change:open',this.updateOpen),this.listenTo(e,'change:title',this.updateTitle),this.listenTo(e,'change:content',this.updateContent)}},{key:"onClick",value:function(t){this.config.backdrop&&t.target===this.el&&this.hide()}},{key:"getCollector",value:function(){return this.$collector||(this.$collector=this.$el.find('.'+this.pfx+'collector')),this.$collector}},{key:"getContent",value:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find(".".concat(t,"content #").concat(t,"c"))),this.$content}},{key:"getTitle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.$title||(this.$title=this.$el.find('.'+this.pfx+'title')),t.$?this.$title:this.$title.get(0)}},{key:"updateContent",value:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),r=this.model.get('content');e.length&&n.append(e),t.empty().append(r)}},{key:"updateTitle",value:function(){var t=this.getTitle({$:!0});t&&t.empty().append(this.model.get('title'))}},{key:"updateOpen",value:function(){this.el.style.display=this.model.get('open')?'':'none'}},{key:"hide",value:function(){this.model.close()}},{key:"show",value:function(){this.model.open()}},{key:"updateAttr",value:function(t){var e=this.pfx,n=this.$el,r=this.el,i=[].slice.call(r.attributes).map((function(t){return t.name}));n.removeAttr(i.join(' ')),n.attr(v(v({},t||{}),{},{class:"".concat(e,"container ").concat(t&&t.class||'').trim()}))}},{key:"render",value:function(){var t=this.$el,e=this.model.toJSON();return e.pfx=this.pfx,e.ppfx=this.ppfx,t.html(this.template(e)),this.updateAttr(),this.updateOpen(),this}}]),n}(f.View);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},a=(n=w(w({},s),o)).em;this.em=a;var l=n.pStylePrefix;return l&&(n.stylePrefix=l+n.stylePrefix),(t=new p(n)).on('change:open',(function(t,e){return r(e,a)})),t.on('change',(0,i.debounce)((function(){var t=e._evData(),n=e.getConfig().custom;(0,i.isFunction)(n)&&n(t),a.trigger('modal',t)}))),this},_evData:function(){var e=this,n=this.getTitle(),r=this.getContent(),s=t.attributes;return{open:s.open,attributes:s.attributes,title:(0,i.isString)(n)?(0,o.rw)(n):n,content:(0,i.isString)(r)?(0,o.rw)(r):r.get?r.get(0):r,close:function(){return e.close()}}},postRender:function(t){var e=t.model.getConfig().el||t.el,n=this.render();n&&n.appendTo(e)},open:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.attributes||{};return n.title&&this.setTitle(n.title),n.content&&this.setContent(n.content),t.set('attributes',r),t.open(),e&&e.updateAttr(r),this},close:function(){return t.close(),this},onceClose:function(t){return this.em.once('modal:close',t),this},onceOpen:function(t){return this.em.once('modal:open',t),this},isOpen:function(){return!!t.get('open')},setTitle:function(e){return t.set('title',e),this},getTitle:function(){return t.get('title')},setContent:function(e){return t.set('content',' '),t.set('content',e),this},getContent:function(){return t.get('content')},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){if(!this.getConfig().custom){var r=y.extend(n.extend),i=e&&e.el;return(e=new r({el:i,model:t,config:n})).render().$el}},destroy:function(){e&&e.remove(),[n,t,e].forEach((function(t){return{}})),this.em={}}}}},77:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>b});var r=n(4942);const i={stylePrefix:'',appendTo:'',sortable:1,hidable:1,hideTextnode:1,root:'',showWrapper:1,showHover:1,scrollCanvas:{behavior:'smooth',block:'nearest'},scrollLayers:{behavior:'auto',block:'nearest'},highlightHover:1,onInit:function(){},onRender:function(){},extend:{}};var o,s=n(9050),a=n(6183),l=n(2316),c=n.n(l),u=n(2169),h=n(9138),f='contentEditable',d={mediaText:''},p=c().$,g=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return 0===(t.display||'').trim().indexOf('none')};const v=c().View.extend({events:{'mousedown [data-toggle-move]':'startSort','touchstart [data-toggle-move]':'startSort','click [data-toggle-visible]':'toggleVisibility','click [data-toggle-open]':'toggleOpening','click [data-toggle-select]':'handleSelect','mouseover [data-toggle-select]':'handleHover','mouseout [data-toggle-select]':'handleHoverOut','dblclick [data-name]':'handleEdit','keydown [data-name]':'handleEditKey','focusout [data-name]':'handleEditEnd'},template:function(t){var e=this.pfx,n=this.ppfx,r=this.config,i=this.clsNoEdit,o=r.hidable,s=this.countChildren(t),a=s?'':this.clsNoChild,l="".concat(this.clsTitle," ").concat(a),c="".concat(this.clsTitleC," ").concat(n,"one-bg"),u="".concat(this.clsCaret," fa fa-chevron-right"),h="".concat(this.inputNameCls," ").concat(i," ").concat(n,"no-app"),f=this.level+1,d="".concat(30+10*f,"px"),p=t.getName(),g=t.getIcon(),v="".concat(e,"layer");return"\n ".concat(o?""):'',"\n
\n
\n
\n \n ").concat(g?"").concat(g,""):'',"\n ").concat(p,"\n
\n
\n
\n
").concat(s||'',"
\n
\n \n
\n
")},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,s.bindAll)(this,'__render'),this.opt=e,this.level=e.level;var n=e.config||{},r=n.onInit;this.config=n,this.em=e.config.em,this.ppfx=this.em.get('Config').stylePrefix,this.sorter=e.sorter||'',this.pfx=this.config.stylePrefix,this.parentView=e.parentView;var i=this.pfx,o=this.ppfx,a=this.model,l=a.get('components'),c=a.get('type')||'default';a.set('open',!1),this.listenTo(l,'remove add reset',this.checkChildren),[['change:status',this.updateStatus],['change:open',this.updateOpening],['change:layerable',this.updateLayerable],['change:style:display',this.updateVisibility],['rerender:layer',this.render],['change:name change:custom-name',this.updateName]].forEach((function(e){return t.listenTo(a,e[0],e[1])})),this.className="".concat(i,"layer ").concat(i,"layer__t-").concat(c," no-select ").concat(o,"two-color"),this.inputNameCls="".concat(o,"layer-name"),this.clsTitleC="".concat(i,"layer-title-c"),this.clsTitle="".concat(i,"layer-title"),this.clsCaret="".concat(i,"layer-caret"),this.clsCount="".concat(i,"layer-count"),this.clsMove="".concat(i,"layer-move"),this.clsChildren="".concat(i,"layer-children"),this.clsNoChild="".concat(i,"layer-no-chld"),this.clsEdit="".concat(this.inputNameCls,"--edit"),this.clsNoEdit="".concat(this.inputNameCls,"--no-edit"),this.$el.data('model',a),this.$el.data('collection',l),a.viewLayer=this,r.bind(this)({component:a,render:this.__render,listenTo:this.listenTo})},updateName:function(){this.getInputName().innerText=this.model.getName()},getVisibilityEl:function(){return this.eyeEl||(this.eyeEl=this.$el.children(".".concat(this.pfx,"layer-vis"))),this.eyeEl},updateVisibility:function(){var t=this.pfx,e=this.model,n="".concat(t,"layer-hidden"),r=g(e.getStyle(d))?'addClass':'removeClass';this.$el[r](n),this.getVisibilityEl()[r]('fa-eye-slash')},toggleVisibility:function(t){t&&t.stopPropagation();var e=this.model,n=this.em,r='__prev-display',i=e.get(r),o=e.getStyle(d),s=o.display;g(o)?(delete o.display,i&&(o.display=i,e.unset(r))):(s&&e.set(r,s),o.display='none'),e.setStyle(o,d),n&&n.trigger('component:toggled')},handleEdit:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName();o[f]=!0,o.focus(),document.execCommand('selectAll',!1,null),e&&e.setEditing(1),n.find(".".concat(this.inputNameCls)).removeClass(r).addClass(i)},handleEditKey:function(t){t.stopPropagation(),((0,a.isEscKey)(t)||(0,a.isEnterKey)(t))&&this.handleEditEnd(t)},handleEditEnd:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName(),s=o.textContent;o.scrollLeft=0,o[f]=!1,this.setName(s,{component:this.model,propName:'custom-name'}),e&&e.setEditing(0),n.find(".".concat(this.inputNameCls)).addClass(r).removeClass(i)},setName:function(t,e){var n=e.propName;this.model.set(n,t)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector(".".concat(this.inputNameCls))),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model,n='fa-chevron-down';e.get('open')?(this.$el.addClass('open'),this.getCaret().addClass(n),t[e.cid]=e):(this.$el.removeClass('open'),this.getCaret().removeClass(n),delete t[e.cid])},toggleOpening:function(t){var e=this.model;t.stopImmediatePropagation(),e.get('components').length&&e.set('open',!e.get('open'))},handleSelect:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;if(e){e.setSelected(r,{fromLayers:1,event:t});var i=n.scrollCanvas;i&&r.views.forEach((function(t){return t.scrollIntoView(i)}))}},handleHover:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;e&&n.showHover&&e.setHovered(r,{fromLayers:1})},handleHoverOut:function(t){t.stopPropagation();var e=this.em,n=this.config;e&&n.showHover&&e.setHovered(0,{fromLayers:1})},startSort:function(t){t.stopPropagation();var e=this.em,n=this.sorter;t.button&&0!==t.button||n&&(n.onStart=function(t){return e.trigger("".concat(h.OA,":start"),t)},n.onMoveClb=function(t){return e.trigger(h.OA,t)},n.startSort(t.target))},freeze:function(){this.$el.addClass(this.pfx+'opac50'),this.model.set('open',0)},unfreeze:function(){this.$el.removeClass(this.pfx+'opac50')},updateStatus:function(t){u.Z.prototype.updateStatus.apply(this,[{avoidHover:!this.config.highlightHover,noExtHl:1}])},isVisible:function(){return!g(this.model.getStyle())},checkChildren:function(){var t=this.model,e=this.clsNoChild,n=this.countChildren(t),r=this.$el.children(".".concat(this.clsTitleC)).children(".".concat(this.clsTitle)),i=this.cnt;i||(i=this.$el.children('[data-count]').get(0),this.cnt=i),r[n?'removeClass':'addClass'](e),i&&(i.innerHTML=n||''),!n&&t.set('open',0)},countChildren:function(t){var e=0;return t.get('components').each((function(t){var n=this.opt.isCountable,r=this.config.hideTextnode;n&&!n(t,r)||e++}),this),e},getCaret:function(){if(!this.caret||!this.caret.length){this.pfx;this.caret=this.$el.children(".".concat(this.clsTitleC)).find(".".concat(this.clsCaret))}return this.caret},setRoot:function(t){t=(0,s.isString)(t)?this.em.getWrapper().find(t)[0]:t;var e=(0,a.getModel)(t,p);e&&(this.stopListening(),this.model=e,this.initialize(this.opt),this._rendered&&this.render())},updateLayerable:function(){(this.parentView||this).render()},__clearItems:function(){var t=this.items;t&&t.remove()},remove:function(){c().View.prototype.remove.apply(this,arguments),this.__clearItems()},render:function(){var t=this.model,e=this.config,r=this.pfx,i=this.ppfx,a=this.opt;this.__clearItems();var l=a.isCountable,c=l&&!l(t,e.hideTextnode),u=this.isVisible(),h=this.$el.empty(),f=this.level+1;this.inputName=0,(0,s.isUndefined)(o)&&(o=n(3557).Z),this.items=new o({ItemView:a.ItemView,collection:t.get('components'),config:this.config,sorter:this.sorter,opened:this.opt.opened,parentView:this,parent:t,level:f});var d=this.items.render().$el;return this.config.showWrapper||1!==f?(h.html(this.template(t)),h.find(".".concat(this.clsChildren)).append(d)):h.append(d),t.get('draggable')&&this.config.sortable||h.children(".".concat(this.clsMove)).remove(),!u&&(this.className+=" ".concat(r,"hide")),c&&(this.className+=" ".concat(i,"hidden")),h.attr('class',this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this.__render(),this._rendered=1,this},__render:function(){var t=this.model,e=this.config,n={component:t,el:this.el};e.onRender.bind(this)(n),this.em.trigger('layer:render',n)}});function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function y(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=y(y({},i),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&((0,s.isElement)(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e&&e.setRoot(t),this},getRoot:function(){return e&&e.model},getAll:function(){return e},componentChanged:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.fromLayers){var i=t.get('opened'),o=t.getSelected(),s=n.scrollLayers,a=o&&o.collection?o.collection.parent:null;for(var l in i)i[l].set('open',0);for(;a;)a.set('open',1),i[a.cid]=a,a=a.collection?a.collection.parent:null;if(o&&s){var c=o.viewLayer&&o.viewLayer.el;c&&c.scrollIntoView(s)}}},render:function(){var r=v.extend(n.extend);return e&&e.remove(),(e=new r({ItemView:r,level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()})).render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},3557:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(2316),i=n(9138);const o=r.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.items=[],this.opt=t;var e=t.config||{};this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||'',this.pfx=e.stylePrefix||'',this.parent=t.parent,this.parentView=t.parentView;var n=this.pfx,r=this.ppfx,o=this.parent,s=this.collection;this.listenTo(s,'add',this.addTo),this.listenTo(s,'reset resetNavigator',this.render),this.listenTo(s,'remove',this.removeChildren),this.className="".concat(n,"layers");var a=e.em;if(e.sortable&&!this.opt.sorter){var l=a.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();a.setSelected(r,{forceChange:1}),a.trigger("".concat(i.OA,":end"),n)},avoidSelectOnEnd:1,nested:1,ppfx:r,pfx:n})}this.sorter=this.opt.sorter||'',this.$el.data('collection',s),o&&this.$el.data('model',o)},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,o=this.opt.ItemView,s=e||null,a=new o({ItemView:o,level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(s)s.appendChild(l);else if(void 0!==n){var c='before';this.$el.children().length==n&&(n--,c='after'),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return this.items.push(a),l},remove:function(){r.View.prototype.remove.apply(this,arguments),this.items.map((function(t){return t.remove()}))},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}})},2567:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>A,evAll:()=>O,evPageAdd:()=>_,evPageAddBefore:()=>T,evPageRemove:()=>E,evPageRemoveBefore:()=>j,evPageSelect:()=>k,evPageSelectBefore:()=>S,evPageUpdate:()=>P,evPfx:()=>C});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(2316),l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(9065);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var g=function(t){(0,u.Z)(n,t);var e=p(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frames:[],_undo:!0}}},{key:"initialize",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.config,i=void 0===r?{}:r,o=i.em,s={};this.em=o,t.frames||(s.component=t.component,s.styles=t.styles,['component','styles'].map((function(t){return e.unset(t)})));var a=t.frames||[s],l=new d.Z(a,i);l.page=this,this.set('frames',l);var c=o&&o.get('UndoManager');c&&c.add(l)}},{key:"onRemove",value:function(){this.get('frames').reset()}},{key:"getFrames",value:function(){return this.get('frames')}},{key:"getId",value:function(){return this.id}},{key:"getName",value:function(){return this.get('name')}},{key:"setName",value:function(t){return this.get({name:t})}},{key:"getAllFrames",value:function(){return this.getFrames().models||[]}},{key:"getMainFrame",value:function(){return this.getFrames().at(0)}},{key:"getMainComponent",value:function(){var t=this.getMainFrame();return t&&t.getComponent()}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=a.Model.prototype.toJSON.call(this,t),n=(0,o.result)(this,'defaults');return(0,o.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,o.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),e}}]),n}(a.Model);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return a.Collection.prototype.add.call(this,t,m(m({},e),{},{config:n}))}}]),n}(a.Collection);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'_onPageChange');var n=e.em,r=x({},e);this.config=r,this.em=n;var i=new b([],r);this.pages=i;var s=new a.Model({_undo:!0});return this.model=s,i.on('add',(function(t,e,r){return n.trigger(_,t,r)})),i.on('remove',(function(t,e,r){return n.trigger(E,t,r)})),i.on('change',(function(t,e){n.trigger(P,t,t.changedAttributes(),e)})),i.on('reset',(function(e){return e.at(0)&&t.select(e.at(0))})),i.on('all',this.__onChange,this),s.on(D,this._onPageChange),this},__onChange:function(t,e,n,r){var i=r||n;this.em.trigger(O,{event:t,page:e,options:i})},onLoad:function(){var t=this.pages,e={silent:!0};t.add(this.config.pages||[],e);var n=t.length?this.getMain():this.add({type:M},e);this.select(n,e)},_onPageChange:function(t,e,n){var r=this.em,i=r.get('LayerManager'),o=e.getMainComponent();i&&o&&i.setRoot(o),r.trigger(k,e,t.previous('selected')),this.__onChange(D,e,n)},postLoad:function(){var t=this.em,e=this.model,n=t.get('UndoManager');n&&n.add(e),n&&n.add(this.pages)},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em;t.id=t.id||this._createId();var i=function(){var r=e.pages.add(t,n);return n.select&&e.select(r),r};return!n.silent&&r.trigger(T,t,i,n),!n.abort&&i()},remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,s=function(){return i&&e.pages.remove(i,n),i};return!n.silent&&r.trigger(j,i,s,n),!n.abort&&s()},get:function(t){return this.pages.filter((function(e){return e.get('id')===t}))[0]},getMain:function(){var t=this.pages;return t.filter((function(t){return t.get('type')===M}))[0]||t.at(0)},getAll:function(){return(0,r.Z)(this.pages.models)},getAllWrappers:function(){var t=this.getAll();return(0,o.unique)((0,o.flatten)(t.map((function(t){return t.getAllFrames().map((function(t){return t.getComponent()}))}))))},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get('id')]=e,t}),{})},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,o.isString)(t)?this.get(t):t;return n&&(this.em.trigger(S,n,e),this.model.set('selected',n,e)),this},getSelected:function(){return this.model.get('selected')},destroy:function(){var t=this;this.pages.off().reset(),this.model.stopListening(),this.model.clear({silent:!0}),['selected','config','em','pages','model'].map((function(e){return t[e]=0}))},store:function(t){if(!this.em.get('hasPages'))return{};var e={},n=this.config;return e[this.storageKey]=JSON.stringify(this.getAll()),!t&&n.stm&&n.stm.store(e),e},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if('string'==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.pages.reset(n),n},_createId:function(){var t,e=this.getAll().length+16,n=this.getAllMap();do{t=(0,s.createId)(e)}while(n[t]);return t}}}},4906:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r='sw-visibility',i='export-template',o='open-sm',s='open-tm',a='open-layers',l='open-blocks',c='fullscreen',u='preview';const h={stylePrefix:'pn-',defaults:[{id:'commands',buttons:[{}]},{id:'options',buttons:[{active:!0,id:r,className:'fa fa-square-o',command:r,context:r,attributes:{title:'View components'}},{id:u,className:'fa fa-eye',command:u,context:u,attributes:{title:'Preview'}},{id:c,className:'fa fa-arrows-alt',command:c,context:c,attributes:{title:'Fullscreen'}},{id:i,className:'fa fa-code',command:i,attributes:{title:'View code'}}]},{id:'views',buttons:[{id:o,className:'fa fa-paint-brush',command:o,active:!0,togglable:0,attributes:{title:'Open Style Manager'}},{id:s,className:'fa fa-cog',command:s,togglable:0,attributes:{title:'Settings'}},{id:a,className:'fa fa-bars',command:a,togglable:0,attributes:{title:'Open Layer Manager'}},{id:l,className:'fa fa-th-large',command:l,togglable:0,attributes:{title:'Open Blocks'}}]}],em:null,delayBtnsShow:300};var f=n(2316),d=n.n(f),p=n(2516);const g=d().Model.extend({defaults:{id:'',content:'',visible:!0,buttons:[],attributes:{}},initialize:function(t){this.btn=this.get('buttons')||[],this.buttons=new p.Z(this.btn),this.set('buttons',this.buttons)}}),v=d().Collection.extend({model:g});var m=n(4942),y=n(9050);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.commands,o=this.$el,s=this.activeCls,a=n.fromCollection,l=n.fromListen,c=r.get('context'),u=r.get('options'),h=r.get('command'),f={};h&&(i&&(0,y.isString)(h)?f=i.get(h)||{}:(0,y.isFunction)(h)?f=i.create({run:h}):null!==h&&(0,y.isObject)(h)&&(f=i.create(h)),r.get('active')?(!a&&r.collection.deactivateAll(c,r),r.set('active',!0,{silent:!0}).trigger('checkActive'),!l&&i.runCommand(f,w(w({},u),{},{sender:r})),f.noStop&&r.set('active',!1)):(o.removeClass(s),!l&&i.stopCommand(f,w(w({},u),{},{sender:r,force:1}))))},updateDisable:function(){var t=this.disableCls,e=this.model.get('disable');this.$el[e?'addClass':'removeClass'](t)},checkActive:function(){var t=this.model,e=this.$el,n=this.activeCls;t.get('active')?e.addClass(n):e.removeClass(n)},clicked:function(t){var e=this.model;e.get('bntsVis')||e.get('disable')||!e.get('command')||this.toggleActive()},toggleActive:function(){var t=this.model,e=this.em,n=t.attributes,r=n.active,i=n.togglable;r&&!i||(t.set('active',!r),r?t.get('runDefaultCommand')&&e.runDefault():t.get('stopDefaultCommand')&&e.stopDefault())},render:function(){var t=this.model,e=t.get('label'),n=this.$el;return!t.get('el')&&n.empty(),this.updateAttributes(),e&&n.append(e),this.checkActive(),this.updateDisable(),this}}),O=d().View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||'',this.parentM=this.opt.parentM||null,this.listenTo(this.collection,'add',this.addTo),this.listenTo(this.collection,'reset remove',this.render),this.className=this.pfx+'buttons'},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,r=new x({el:t.get('el'),model:t,config:this.config,parentM:this.parentM}).render().el;return n?n.appendChild(r):this.$el.append(r),r},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each((function(e){this.addToCollection(e,t)}),this),this.$el.append(t),this.$el.attr('class',(0,y.result)(this,'className')),this}});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}const k=d().View.extend({initialize:function(t){var e=t.config||{},n=this.model;this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.buttons=n.get('buttons'),this.className=this.pfx+'panel',this.id=this.pfx+n.get('id'),this.listenTo(n,'change:appendContent',this.appendContent),this.listenTo(n,'change:content',this.updateContent),this.listenTo(n,'change:visible',this.toggleVisible),n.view=this},appendContent:function(){this.$el.append(this.model.get('appendContent'))},updateContent:function(){this.$el.html(this.model.get('content'))},toggleVisible:function(){this.model.get('visible')?this.$el.removeClass("".concat(this.ppfx,"hidden")):this.$el.addClass("".concat(this.ppfx,"hidden"))},attributes:function(){return this.model.get('attributes')},initResize:function(){var t=this.config.em,e=t?t.get('Editor'):'',n=this.model.get('resizable');if(e&&n){var r,i,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(r=s[0],o=s[0],i=s[1],l=s[1]):4==a&&(r=s[0],i=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init(function(t){for(var e=1;e{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r);const o=i().Model.extend({defaults:{id:'',label:'',tagName:'span',className:'',command:'',context:'',buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,togglable:!0,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get('buttons').length){var e=n(2516).Z;this.set('buttons',new e(this.get('buttons')))}}}),s=i().Collection.extend({model:o,deactivateAllExceptOne:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('active',!1),e&&n.get('buttons').length&&n.get('buttons').deactivateAllExceptOne(t,e))}))},deactivateAll:function(t,e){var n=t||'';this.forEach((function(t){t.get('context')==n&&t!==e&&t.set('active',!1,{fromCollection:1})}))},disableAllButtons:function(t){var e=t||'';this.forEach((function(t,n){t.get('context')==e&&t.set('disable',!0)}))},disableAllButtonsExceptOne:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('disable',!0),e&&n.get('buttons').length&&n.get('buttons').disableAllButtonsExceptOne(t,e))}))}})},4424:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={textTags:['br','b','i','u','a','ul','ol'],parserCss:null,parserHtml:null,optionsHtml:{htmlType:null,allowScripts:!1,allowUnsafeAttr:!1}};var o=n(9050),s={4:'media',5:'font-face',6:'page',7:'keyframes',11:'counter-style',12:'supports',13:'document',14:'font-feature-values',15:'viewport'},a=(0,o.keys)(s),l=['5','6','11','15'],c=['font-face','page','counter-style','viewport'],u=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=[],n=[],r=t.split(','),i=0,o=r.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i=t.length,o=t[i-1],s=o?o.split(/:(.+)/):[],a=s[1],l=n.atRule,u=n.selectorsAdd,h=n.mediaText,f=c.indexOf(l)>=0;return f&&(r.singleAtRule=1),l&&(r.atRuleType=l),u&&(r.selectorsAdd=u),h&&(r.mediaText=h),a&&(t[i-1]=s[0],r.state=a,s.splice(s.length-1,1)),r.selectors=t,r.style=e,r},p=function t(e){for(var n=[],r=e.cssRules||[],i=0,o=r.length;i=0;if(b)g=1,v=s[p],m=f(c);else if(a.indexOf(p)>=0){var w=t(c);m=f(c);for(var x=0,O=w.length;x0&&void 0!==arguments[0]?arguments[0]:{};return{parse:function(e){var n=this,r=[],i=t.parserCss,o=t.em,s=o&&o.get&&o.get('Editor');return(i?i(e,s):g(e)).forEach((function(t){return r=r.concat(n.checkNode(t))})),o&&o.trigger('parse:css',{input:e,output:r}),r},checkNode:function(t){var e=t,n=e.selectors,r=e.style;if((0,o.isString)(n)){var i=[],s=u(n),a=s.result,l=s.add.join(', '),c={atRule:t.atRule,mediaText:t.params};if(a.length?a.forEach((function(t){i.push(d(t,r,c))})):i.push(d([],r,c)),l)i[i.length-1].selectorsAdd=l;t=i}return t}}};var m=n(5311);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=b(b({},i),r)).Parser=this,t=new m.Z(n),e=new v(n),this.em=n.em,this.parserCss=e,this.parserHtml=t,this},getConfig:function(){return n},parseHtml:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.em,o=this.compTypes;return t.compTypes=i?i.get('DomComponents').getTypes():o,t.parse(n,e,r)},parseCss:function(t){return e.parse(t)},destroy:function(){var r=this;[n,t,e].forEach((function(t){return{}})),['em','parserCss','parserHtml'].forEach((function(t){return r[t]={}}))}}}},5311:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(4942),i=n(1002),o=n(9050),s='text/html',a=s;const l=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new DOMParser,i=n.htmlType||a,l=i===s,c=l?t:"
".concat(t,"
"),u=r.parseFromString(c,i);if(l){var h=u.head,f=u.body,d=h.querySelectorAll('script');(0,o.each)(d,(function(t){return f.appendChild(t)}));var p=[];(0,o.each)(h.children,(function(t){return p.push(t)})),(0,o.each)(p,(function(t,e){return f.insertBefore(t,f.children[e])})),e=f}else e=u.firstChild;return e};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},r={},i={};return(0,o.each)(e,(function(e,s){if(0===s.indexOf(t.modelAttrStart)){var a=s.replace(n,''),l=e.length,c=e&&(0,o.isString)(e),u=c&&e.substr(0,1),h=c&&e.substr(l-1);e='false'!==(e='true'===e||e)&&e;try{e='{'==u&&'}'==h||'['==u&&']'==h?JSON.parse(e):e}catch(t){}r[a]=e}else i[s]=e})),{props:r,attrs:i}},parseStyle:function(t){for(var e={},n=t.split(';'),r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},s=[],a=r.childNodes,l=0,c=a.length;l'!=="".concat(h.outerHTML).slice(-2)||(m.void=!0);var A=m.components;if(!m.type&&A){for(var L=1,R=0,N=0;N2&&void 0!==arguments[2]?arguments[2]:{},c=e.em,h=c&&c.get('Config')||{},f={html:null,css:null},d=u(u({},t),a),p=u(u({},t.optionsHtml),{},{htmlType:(null===(s=t.optionsHtml)||void 0===s?void 0:s.htmlType)||t.htmlType},a),g=(0,o.isFunction)(d.parserHtml)?d.parserHtml(n,p):l(n,p),v=g.querySelectorAll('script'),m=v.length,y=(0,o.isUndefined)(h.allowScripts)?p.allowScripts:h.allowScripts;if(!y)for(;m--;)v[m].parentNode.removeChild(v[m]);if(p.allowUnsafeAttr||this.__clearUnsafeAttr(g),i){for(var b=g.querySelectorAll('style'),w=b.length,x='';w--;)x=b[w].innerHTML+x,b[w].parentNode.removeChild(b[w]);x&&(f.css=i.parse(x))}c&&c.trigger("".concat(r,":root"),{input:n,root:g});var O=this.parseNode(g,d),C=1!==O.length||e.returnArray?O:O[0];return f.html=C,c&&c.trigger(r,{input:n,output:f}),f},__clearUnsafeAttr:function(t){var e=this,n=t.attributes||[],r=t.childNodes||[],i=[];(0,o.each)(n,(function(t){var e=t.nodeName||'';0===e.indexOf('on')&&i.push(e)})),i.map((function(e){return t.removeAttribute(e)})),(0,o.each)(r,(function(t){return e.__clearUnsafeAttr(t)}))}}}},2012:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>S});var r=n(5861),i=n(2982),o=n(4942),s=n(7757),a=n.n(s),l=n(5671),c=n(3144),u=n(9050),h=n(6183);function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:'A',n=t.selection(),r=n.anchorNode,i=n.focusNode,o=null==r?void 0:r.parentNode,s=null==i?void 0:i.parentNode;return(null==o?void 0:o.nodeName)==e||(null==s?void 0:s.nodeName)==e},y='data-selectme',b={bold:{name:'bold',icon:'B',attributes:{title:'Bold'},result:function(t){return t.exec('bold')}},italic:{name:'italic',icon:'I',attributes:{title:'Italic'},result:function(t){return t.exec('italic')}},underline:{name:'underline',icon:'U',attributes:{title:'Underline'},result:function(t){return t.exec('underline')}},strikethrough:{name:'strikethrough',icon:'S',attributes:{title:'Strike-through'},result:function(t){return t.exec('strikeThrough')}},link:{icon:"\n \n ",name:'link',attributes:{style:'font-size:1.4rem;padding:0 4px 2px;',title:'Link'},state:function(t){return t&&t.selection()&&m(t)?p:g},result:function(t){m(t)?t.exec('unlink'):t.insertHTML("").concat(t.selection(),""),{select:!0})}},wrap:{icon:"\n \n ",attributes:{title:'Wrap for style'},state:function(t){return null!=t&&t.selection()&&m(t,'SPAN')?v:g},result:function(t){!m(t,'SPAN')&&t.insertHTML("").concat(t.selection(),""),{select:!0})}}},w=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,l.Z)(this,t);var r=n.el,i=n.em;if(this.em=i,r._rte)return r._rte;r._rte=this,this.setEl(r),this.updateActiveActions=this.updateActiveActions.bind(this),this.__onKeydown=this.__onKeydown.bind(this),this.__onPaste=this.__onPaste.bind(this);var o=(n.actions||[]).map((function(t){var e=t;return'string'==typeof t?e=d({},b[t]):b[t.name]&&(e=d(d({},b[t.name]),t)),e})),s=o.length?o:Object.keys(b).map((function(t){return b[t]}));n.classes=d(d({},{actionbar:'actionbar',button:'action',active:'active',disabled:'disabled',inactive:'inactive'}),n.classes);var a=n.classes,c=n.actionbar;if(this.actionbar=c,this.settings=n,this.classes=a,this.actions=s,!c){var u=n.actionbarContainer;(c=document.createElement('div')).className=a.actionbar,u.appendChild(c),this.actionbar=c,s.forEach((function(t){return e.addAction(t)}))}return n.styleWithCSS&&this.exec('styleWithCSS'),this}return(0,c.Z)(t,[{key:"destroy",value:function(){this.el=0,this.doc=0,this.actionbar=0,this.settings={},this.classes={},this.actions=[]}},{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach((function(e){var n=e.btn,r=e.update,i=d({},t.classes),o=i.active,s=i.inactive,a=i.disabled,l=e.state,c=e.name,u=t.doc;if(n.className=n.className.replace(o,'').trim(),n.className=n.className.replace(s,'').trim(),n.className=n.className.replace(a,'').trim(),l)switch(l(t,u)){case p:n.className+=" ".concat(o);break;case g:n.className+=" ".concat(s);break;case v:n.className+=" ".concat(a)}else u.queryCommandSupported(c)&&u.queryCommandState(c)&&(n.className+=" ".concat(o));r&&r(t,e)}))}},{key:"enable",value:function(t){return this.enabled?this:this.__toggleEffects(!0,t)}},{key:"disable",value:function(){return this.__toggleEffects(!1)}},{key:"__toggleEffects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t?h.on:h.off,r=this.el,i=this.doc;if(this.actionbarEl().style.display=t?'':'none',r.contentEditable=!!t,n(r,'mouseup keyup',this.updateActiveActions),n(i,'keydown',this.__onKeydown),n(i,'paste',this.__onPaste),this.enabled=t,t){var o=e.event;if(this.syncActions(),this.updateActiveActions(),o){var s=null;if(i.caretRangeFromPoint){var a=(0,h.getPointerEvent)(o);s=i.caretRangeFromPoint(a.clientX,a.clientY)}else o.rangeParent&&(s=i.createRange()).setStart(o.rangeParent,o.rangeOffset);var l=i.getSelection();l.removeAllRanges(),s&&l.addRange(s)}r.focus()}return this}},{key:"__onKeydown",value:function(t){'Enter'===t.key&&(this.doc.execCommand('insertLineBreak'),t.preventDefault())}},{key:"__onPaste",value:function(t){var e=t.clipboardData||window.clipboardData,n=e.getData('text'),r=e.getData('text/html');if(n&&!r){t.preventDefault();var i=n.replace(/(?:\r\n|\r|\n)/g,'
');this.doc.execCommand('insertHTML',!1,i)}}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach((function(e){if(t.actionbar&&(!e.state||e.state&&e.state(t,t.doc)>=0)){var n=e.event||'click';e.btn["on".concat(n)]=function(n){e.result(t,e),t.updateActiveActions()}}}))}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,r=document.createElement('span'),i=t.icon,o=t.attributes||{};for(var s in r.className=this.classes.button,t.btn=r,o)r.setAttribute(s,o[s]);'string'==typeof i?r.innerHTML=i:r.appendChild(i),this.actionbarEl().appendChild(r),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.select,r=this.em,i=this.doc,o=this.el,s=i.getSelection();if(s&&s.rangeCount){var a=(0,h.getModel)(o),l=i.createElement('div'),c=s.getRangeAt(0);c.deleteContents(),(0,u.isString)(t)?l.innerHTML=t:t&&l.appendChild(t),Array.prototype.slice.call(l.childNodes).forEach((function(t){c.insertNode(t)})),s.removeAllRanges(),s.addRange(c),o.focus(),n&&a&&(a.once('rte:disable',(function(){var t=a.find("[".concat(y,"]"))[0];t&&(r.setSelected(t),t.removeAttributes(y))})),a.trigger('disable'))}}}]),t}();const x={stylePrefix:'rte-',adjustToolbar:1,actions:['bold','italic','underline','strikethrough','link','wrap']};function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=C(C({},x),e),r=n.pStylePrefix;return r&&(n.stylePrefix=r+n.stylePrefix),this.config=n,this.pfx=n.stylePrefix,this.em=n.em,this.actions=n.actions||[],(0,h.hasWin)()?((t=document.createElement('div')).className="".concat(r,"rte-toolbar ").concat(r,"one-bg"),this.initRte(document.createElement('div')),(0,h.on)(t,'mousedown',(function(t){return t.stopPropagation()})),this):this},destroy:function(){var e,n,r,i=this;null===(e=this.globalRte)||void 0===e||e.destroy(),null===(n=this.customRte)||void 0===n||null===(r=n.destroy)||void 0===r||r.call(n),t=0,['actionbar','actions','em','config','globalRte','lastEl'].map((function(t){delete i[t]}))},postRender:function(n){var r=n.model.get('Canvas');t.style.pointerEvents='all',e(),r.getToolsEl().appendChild(t)},initRte:function(e){var n=this.globalRte,r=this.em,o=this.pfx,s=this.actionbar,a=this.config,l=t,c=this.actions||(0,i.Z)(a.actions),u={actionbar:"".concat(o,"actionbar"),button:"".concat(o,"action"),active:"".concat(o,"active"),inactive:"".concat(o,"inactive"),disabled:"".concat(o,"disabled")};return n?(n.em=r,n.setEl(e)):(n=new w({em:r,el:e,classes:u,actions:c,actionbar:s,actionbarContainer:l}),this.globalRte=n),n.actionbar&&(this.actionbar=n.actionbar),n.actions&&(this.actions=n.actions),n},add:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.name=t,null===(e=this.globalRte)||void 0===e||e.addAction(n,{sync:1})},get:function(t){var e,n;return null===(e=this.globalRte)||void 0===e||e.getActions().forEach((function(e){e.name==t&&(n=e)})),n},getAll:function(){var t;return null===(t=this.globalRte)||void 0===t?void 0:t.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var r=n.btn,i=e.indexOf(n);r.parentNode.removeChild(r),e.splice(i,1)}return n},getToolbarEl:function(){return t},updatePosition:function(){var e=this.em.get('Canvas'),n=t.style,r=e.getTargetToElementFixed(this.lastEl,t,{event:'rteToolbarPosUpdate',left:0});n.top=(r.top||0)+"px",n.left=(r.left||0)+"px"},enable:function(e,n,i){var o=this;return(0,r.Z)(a().mark((function r(){var s,l,c,u;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.lastEl=e.el,s=o.customRte,l=o.em,c=e.getChildrenContainer(),t.style.display='',r.next=6,s?s.enable(c,n):o.initRte(c).enable(i);case 6:return u=r.sent,l&&(setTimeout(o.updatePosition.bind(o),0),l.off(k,o.updatePosition,o),l.on(k,o.updatePosition,o),l.trigger('rte:enable',e,u)),r.abrupt("return",u);case 9:case"end":return r.stop()}}),r)})))()},disable:function(t,n){var r=this.em,i=this.customRte,o=t.getChildrenContainer();i?i.disable(o,n):n&&n.disable(),e(),r&&(r.off(k,this.updatePosition,this),r.trigger('rte:disable',t,n))}}}},4755:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>H,evAdd:()=>R,evAll:()=>A,evCustom:()=>F,evPfx:()=>L,evRemove:()=>Z,evRemoveBefore:()=>I,evState:()=>V,evUpdate:()=>N});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(2316),l=n.n(a),c=n(9304);const u={stylePrefix:'clm-',appendTo:'',selectors:[],states:[{name:'hover'},{name:'active'},{name:'nth-of-type(2n)'}],escapeName:0,selectedName:0,iconAdd:'',iconSync:'',iconTagOn:'',iconTagOff:'',iconTagRemove:'',render:0,componentFirst:0,custom:!1};var h=n(8490),f=n(4293),d=n(5671),p=n(3144),g=n(9340),v=n(3930),m=n(1120);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var b=function(t){(0,g.Z)(n,t);var e=y(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"defaults",value:function(){return{name:'',label:''}}},{key:"getName",value:function(){return this.get('name')}},{key:"getLabel",value:function(){return this.get('label')||this.getName()}}]),n}(a.Model);b.prototype.idAttribute='name';var w=n(168),x='contentEditable';const O=l().View.extend({template:function(){var t=this.pfx,e=this.model,n=this.config,r=e.get('label')||'';return"\n \n ").concat(r,"\n \n ").concat(n.iconTagRemove,"\n \n ")},events:{'click [data-tag-remove]':'removeTag','click [data-tag-status]':'changeStatus','dblclick [data-tag-name]':'startEditTag','focusout [data-tag-name]':'endEditTag'},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{};this.config=e,this.module=t.module,this.coll=t.coll||null,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.listenTo(this.model,'change:active',this.updateStatus)},getInputEl:function(){return this.inputEl||(this.inputEl=this.el.querySelector('[data-tag-name]')),this.inputEl},startEditTag:function(){var t=this.em,e=this.getInputEl();e[x]=!0,e.focus(),t&&t.setEditing(1)},endEditTag:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=this.em,i=r&&r.get('SelectorManager');if(e[x]=!1,r&&r.setEditing(0),i){var o=i.escapeName(n);i.get(o)?e.innerText=t.get('label'):t.set({name:o,label:n})}},changeStatus:function(){var t=this.model;t.set('active',!t.get('active'))},removeTag:function(){this.module.removeSelected(this.model)},updateStatus:function(){var t=this.model,e=this.$el,n=this.config,r=n.iconTagOn,i=n.iconTagOff,o=e.find('[data-tag-status]');t.get('active')?(o.html(r),e.removeClass('opac50')):(o.html(i),e.addClass('opac50'))},render:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr('class',"".concat(t,"tag ").concat(e,"three-bg")),this.updateStatus(),this}});var C,k,S,P,_=n(1629);const T=l().View.extend({template:function(t){var e=t.labelInfo,n=t.labelHead,r=t.iconSync,i=t.iconAdd,o=t.pfx,s=t.ppfx;return"\n
\n
").concat(n,"
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n ").concat(i,"\n \n \n ").concat(r,"\n \n
\n
\n
").concat(e,":
\n
\n
")},events:{'change [data-states]':'stateChanged','click [data-add]':'startNewTag','focusout [data-input]':'endNewTag','keyup [data-input]':'onInputKeyUp','click [data-sync-style]':'syncStyle'},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=e.config||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.pfx+'tags',this.stateInputId=this.pfx+'states',this.stateInputC=this.pfx+'input-c',this.states=this.config.states||[];var n=this.config.em,r=this.collection;this.target=this.config.em;var i=e.module;this.module=i,this.em=n;var s='component:toggled component:update:classes',a='component:update:classes change:state';this.listenTo(n,s,this.componentChanged),this.listenTo(n,'styleManager:update',this.componentChanged),this.listenTo(n,a,this.__handleStateChange),this.listenTo(n,'styleable:change change:device',this.checkSync),this.listenTo(r,'add',this.addNew),this.listenTo(r,'reset',this.renderClasses),this.listenTo(r,'remove',this.tagRemoved),this.listenTo(i.getAll(),i.events.state,(0,o.debounce)((function(){return t.renderStates()}))),this.delegateEvents()},syncStyle:function(){var t,e=this.em,n=this.getTarget(),r=e.get('CssComposer'),i=this.getCommonSelectors({opts:{noDisabled:1}}),o=e.get('state'),s=e.getCurrentMedia(),a=[],l=r.get(i,o,s)||r.add(i,o,s);this.getTargets().forEach((function(e){var n=r.getIdRule(e.getId(),{state:o,mediaText:s});t=n.getStyle(),n.setStyle({}),a.push(n)})),t&&l.addStyle(t),e.trigger('component:toggled'),e.trigger('component:sync-style',{component:n,selectors:i,mediaText:s,rule:l,ruleComponents:a,state:o})},tagRemoved:function(t){this.updateStateVis()},addNew:function(t){this.addToClasses(t)},startNewTag:function(){this.$addBtn.css({display:'none'}),this.$input.show().focus()},endNewTag:function(){this.$addBtn.css({display:''}),this.$input.hide().val('')},onInputKeyUp:function(t){13===t.keyCode?(t.preventDefault(),this.addNewTag(this.$input.val())):27===t.keyCode&&this.endNewTag()},checkStates:function(){var t=this.em.getState(),e=this.getStates();e&&e.val(t)},componentChanged:(0,o.debounce)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets;this.updateSelection(e)})),updateSelection:function(t){var e=t||this.getTargets(),n=[];return(e=(0,o.isArray)(e)?e:[e])&&e.length&&(n=this.getCommonSelectors({targets:e}),this.checkSync({validSelectors:n})),this.collection.reset(n),this.updateStateVis(e),this.module.__trgCustom(),n},getCommonSelectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets,n=t.opts,r=void 0===n?{}:n,i=e||this.getTargets();return this.module.__getCommonSelectors(i,r)},_commonSelectors:function(){var t;return(t=this.module).__common.apply(t,arguments)},checkSync:(0,o.debounce)((function(){var t,e=this.$btnSyncEl,n=this.config,r=this.collection,i=this.getTarget();if(i&&n.componentFirst&&r.length){var s=i.getStyle();t=!(0,o.isEmpty)(s)}e&&e[t?'show':'hide']()})),getTarget:function(){return this.target.getSelected()},getTargets:function(){return this.target.getSelectedAll()},updateStateVis:function(t){var e=this.em,n=e&&e.getConfig('avoidInlineStyle'),r=this.collection.length||n?'':'none';this.getStatesC().css('display',r),this.updateSelector(t)},__handleStateChange:function(){this.updateSelector(this.getTargets())},updateSelector:function(t){var e=this,n=this.el.querySelector('[data-selected]'),r=[],i=t||this.getTargets();(i=(0,o.isArray)(i)?i:[i]).forEach((function(t){return r.push(e.__getName(t))})),n&&(n.innerHTML=r.join(', ')),this.checkStates()},__getName:function(t){var e,n=this.pfx,r=this.config,i=this.em,s=r.selectedName,a=r.componentFirst;if((0,o.isString)(t))e=(0,_.Z)(C||(C=(0,w.Z)(["",""])),n,t);else{var l=t&&t.get&&t.getSelectors();if(!l)return;var c=l.getStyleable(),u=i.get('state'),h=t.getId?(0,_.Z)(k||(k=(0,w.Z)(["","\n #",""])),n,t.getName(),n,t.getId()):'';e=(e=this.collection.getFullString(c))?(0,_.Z)(S||(S=(0,w.Z)(["",""])),n,e):t.get('selectorsAdd')||h,e=a&&h?h:e,e+=u?(0,_.Z)(P||(P=(0,w.Z)([":",""])),n,u):'',e=s?s({result:e,state:u,target:t}):e}return e&&"").concat(e,"")},stateChanged:function(t){var e=this.em,n=t.target.value;e.set('state',n)},addNewTag:function(t){var e=t.trim();e&&(this.module.addSelected({label:e}),this.endNewTag())},addToClasses:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.getClasses(),i=new O({model:t,config:this.config,coll:this.collection,module:this.module}).render().el;return n?n.appendChild(i):r.append(i),i},renderClasses:function(){var t=this,e=document.createDocumentFragment(),n=this.getClasses();n.empty(),this.collection.each((function(n){return t.addToClasses(n,e)})),n.append(e)},getClasses:function(){return this.$el.find('[data-selectors]')},getStates:function(){if(!this.$states){var t=this.$el.find('[data-states]');this.$states=t[0]&&t}return this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find('#'+this.stateInputC)),this.$statesC},renderStates:function(){var t=this.module,e=this.em,n=e.t('selectorManager.emptyState'),r=t.getStates().map((function(t){var n=e.t("selectorManager.states.".concat(t.id))||t.getLabel()||t.id;return"")})).join(''),i=this.getStates();i&&i.html("").concat(r)),this.checkStates()},render:function(){var t=this.em,e=this.pfx,n=this.ppfx,r=this.config,i=this.$el,o=this.el,s=r.render,a={iconSync:r.iconSync,iconAdd:r.iconAdd,labelHead:t.t('selectorManager.label'),labelInfo:t.t('selectorManager.selected'),ppfx:n,pfx:e,el:o};i.html(this.template(a));var l=s&&s(a);return l&&l!==o&&i.empty().append(l),this.$input=i.find('[data-input]'),this.$addBtn=i.find('[data-add]'),this.$classes=i.find('#'+e+'tags-c'),this.$btnSyncEl=i.find('[data-sync-style]'),this.$input.hide(),this.renderStates(),this.renderClasses(),i.attr('class',"".concat(this.className," ").concat(n,"one-bg ").concat(n,"two-color")),this}});function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(u,e);var n=this.getConfig(),r=n.em,i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),this.all=new f.Z(n.selectors),this.selected=new f.Z([],{em:r,config:n}),this.states=new a.Collection(n.states,{model:b}),this.model=new a.Model({cFirst:n.componentFirst,_undo:!0}),this.__initListen({collections:[this.states,this.selected],propagate:[{entity:this.states,event:this.events.state}]}),r.on('change:state',(function(t,e){return r.trigger(V,e)})),this.model.on('change:cFirst',(function(t,e){return r.trigger('selector:type',e)}));var o='component:toggled component:update:classes change:device styleManager:update selector:state selector:type';return this.model.listenTo(r,o,(function(){return t.__update()})),this},__update:(0,o.debounce)((function(){this.__trgCustom()})),__trgCustom:function(t){this.em.trigger(this.events.custom,this.__customData(t))},__customData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.container;return{states:this.getStates(),selected:this.getSelected(),container:e}},postRender:function(){this.__appendTo(),this.__trgCustom()},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.em.get('StyleManager').select(n,e),i=this.selectorTags,o=r.filter((function(t){return t})).map((function(t){return(0,s.isComponent)(t)||(0,s.isRule)(t)&&!t.get('selectorsAdd')?t:t.getSelectorsString()}));return i&&i.componentChanged({targets:o}),this},addSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=j({},e);(0,o.isObject)(t)?r=t:r.name=t,D(r.name)?(r.name=r.name.substr(1),r.type=h.Z.TYPE_ID):M(r.name)&&(r.name=r.name.substr(1)),r.label&&!r.name&&(r.name=this.escapeName(r.label));var i=r.name,s=this.getConfig(),a=this.getAll(),l=i?this.get(i,r.type):a.where(r)[0];return l||a.add(r,j(j({},n),{},{config:s}))},getSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.Z.TYPE_CLASS;return D(t)?(t=t.substr(1),e=h.Z.TYPE_ID):M(t)&&(t=t.substr(1)),this.getAll().where({name:t,type:e})[0]},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isString)(t)?{}:n;return(0,o.isArray)(t)?t.map((function(t){return e.addSelector(t,n,r)})):this.addSelector(t,n,r)},addClass:function(t){var e=this,n=[];return(0,o.isString)(t)&&(t=t.trim().split(' ')),t.forEach((function(t){return n.push(e.addSelector(t))})),n},get:function(t,e){var n=this;if((0,o.isArray)(t)){var r=[];return t.map((function(t){return n.getSelector(t)})).filter((function(t){return t})).forEach((function(t){return r.indexOf(t)<0&&r.push(t)})),r}return this.getSelector(t,e)||null},remove:function(t,e){return this.__remove(t,e)},setState:function(t){return this.em.setState(t),this},getState:function(){return this.em.getState()},getStates:function(){return(0,r.Z)(this.states.models)},setStates:function(t,e){return this.states.reset(t,e)},getSelected:function(){return this.__getCommon()},addSelected:function(t){var e=this.add(t);this.em.getSelectedAll().forEach((function(t){t.getSelectors().add(e)}))},removeSelected:function(t){this.em.getSelectedAll().forEach((function(e){!t.get('protected')&&e&&e.getSelectors().remove(t)}))},getSelectedTargets:function(){return this.em.get('StyleManager').getSelectedAll()},setComponentFirst:function(t){this.getConfig().componentFirst=t,this.model.set({cFirst:t})},getComponentFirst:function(){return this.getConfig().componentFirst},escapeName:function(t){var e=this.getConfig().escapeName;return e?e(t):h.Z.escapeName(t)},render:function(t){this.em;var e=this.selectorTags,n=this.getConfig(),r=e&&e.el;return this.selected.reset(t),this.selectorTags=new T({el:r,collection:this.selected,module:this,config:n}),this.selectorTags.render().el},destroy:function(){var t=this.selectorTags;this.model.stopListening(),this.__destroy(),t&&t.remove(),this.selectorTags={}},__getCommon:function(){return this.__getCommonSelectors(this.em.getSelectedAll())},__getCommonSelectors:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.map((function(t){return t.getSelectors&&t.getSelectors().getValid(e)})).filter(Boolean);return this.__common.apply(this,(0,r.Z)(n))},__common:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r=0})):n.slice(1).reduce((function(e,n){return t.__common(e,n)}),n[0]):[]}})}},8490:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),s=n(3930),a=n(1120),l=n(2316),c=n(9050);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,a.Z)(t);if(e){var i=(0,a.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var h=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"defaults",value:function(){return{name:'',label:'',type:1,active:!0,private:!1,protected:!1,_undo:!0}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.config,i=void 0===r?{}:r,o=this.get('name'),s=this.get('label');o?s||this.set('label',o):this.set('name',s);var a=this.get('name'),l=i.escapeName,c=l?l(a):n.escapeName(a);this.set('name',c),this.em=i.em}},{key:"isId",value:function(){return 2===this.get('type')}},{key:"isClass",value:function(){return 1===this.get('type')}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.escape,n=this.get('name'),r='';switch(this.get('type')){case 1:r='.';break;case 2:r='#'}return r+(e?e(n):n)}},{key:"toString",value:function(){return this.getFullName()}},{key:"getLabel",value:function(){return this.get('label')}},{key:"setLabel",value:function(t){return this.set('label',t)}},{key:"getActive",value:function(){return this.get('active')}},{key:"setActive",value:function(t){return this.set('active',t)}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=l.Model.prototype.toJSON.call(this,[t]),r=(0,c.result)(this,'defaults');if(e&&e.getConfig('avoidDefaults')){(0,c.forEach)(r,(function(t,e){n[e]===t&&delete n[e]})),n.label===n.name&&delete n.label;var i=(0,c.keys)(n).length;1===i&&n.name&&(n=n.name),2===i&&n.name&&n.type&&(n=this.getFullName())}return n}}]),n}(l.Model);h.prototype.idAttribute='name',h.TYPE_CLASS=1,h.TYPE_ID=2,h.escapeName=function(t){return"".concat(t).trim().replace(/([^a-z0-9\w-\:]+)/gi,'-')}},4293:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(5671),i=n(3144),o=n(9340),s=n(3930),a=n(1120),l=n(9050),c=n(2316),u=n(8490);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,a.Z)(t);if(e){var i=(0,a.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var f=function t(e,n){return e.reduce((function(r,i,o){return r.concat(t(e.slice(o+1),"".concat(n).concat(i)))}),[n])},d=function(t){(0,o.Z)(n,t);var e=h(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"modelId",value:function(t){return"".concat(t.name,"_").concat(t.type||u.Z.TYPE_CLASS)}},{key:"getStyleable",value:function(){return(0,l.filter)(this.models,(function(t){return t.get('active')&&!t.get('private')}))}},{key:"getValid",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDisabled;return(0,l.filter)(this.models,(function(t){return!t.get('private')})).filter((function(t){return e?t.get('active'):1}))}},{key:"getFullString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t||this;return r.forEach((function(t){return n.push(t.getFullName(e))})),n.join('').trim()}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.combination,n=t.array,r=[],i=this.map((function(e){return e.getFullName(t)})).sort();return e?i.forEach((function(t,e){r=r.concat(f(i.slice(e+1),t))})):r=i,n?r:e?r.join(','):r.join('')}}]),n}(c.Collection);d.prototype.model=u.Z},4859:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={id:'gjs-',autosave:!0,autoload:!0,type:'local',stepsBeforeSave:1,storeComponents:!0,storeStyles:!0,storeHtml:!0,storeCss:!0,checkLocal:!0,params:{},headers:{},urlStore:'',urlLoad:'',beforeSend:function(t,e){},onComplete:function(t,e){},contentTypeJson:!0,credentials:'include',fetchOptions:''};var o=n(2316),s=n.n(o),a=n(6183);const l=o.Model.extend({defaults:{checkLocal:!0},store:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(this.hasLocal())for(var n in t)localStorage.setItem(n,t[n]);e&&e()},load:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n={};if(this.hasLocal())for(var r=0,i=t.length;r1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=this.get('contentTypeJson'),l=this.get('headers')||{},c=this.get('params'),h='X-Requested-With',d='Content-Type',p=i.body||{};for(var g in c)p[g]=c[g];if((0,u.isUndefined)(l[h])&&(l[h]='XMLHttpRequest'),(0,u.isUndefined)(l[d])&&a&&(l[d]='application/json; charset=utf-8'),a)n=JSON.stringify(p);else for(var v in n=new FormData,p)n.append(v,p[v]);'post'===(e={method:i.method||'post',credentials:this.get('credentials'),headers:l}).method&&(e.body=n);var m=this.get('fetchOptions')||{},y=(0,u.isFunction)(m)?m(e):e;this.onStart(),this.fetch(t,f(f({},e),y||{})).then((function(t){return 1==(t.status/200|0)?t.text():t.text().then((function(t){return Promise.reject(t)}))})).then((function(t){return r.onResponse(t,o)})).catch((function(t){return r.onError(t,s)}))}});function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return e=g(g({},i),n),t=e.em,e._disable&&(e.type=0),r.remote=new d(e),r.local=new l(e),e.currentStorage=e.type,this.loadDefaultProviders().setCurrent(e.type),this},getConfig:function(){return e},isAutosave:function(){return!!e.autosave},setAutosave:function(t){return e.autosave=!!t,this},getStepsBeforeSave:function(){return e.stepsBeforeSave},setStepsBeforeSave:function(t){return e.stepsBeforeSave=t,this},add:function(t,e){return n[t]=e,this},get:function(t){return n[t]||null},getStorages:function(){return n},getCurrent:function(){return e.currentStorage},setCurrent:function(t){return e.currentStorage=t,this},store:function(t,n){var r=this,i=this.get(this.getCurrent()),o={};for(var s in this.onStart('store',t),t)o[e.id+s]=t[s];return i?i.store(o,(function(t){r.onAfter('store',t),n&&n(t),r.onEnd('store',t)}),(function(t){r.onError('store',t)})):null},load:function(t,n){var r=this,i=this.get(this.getCurrent()),o=[],s={};'string'==typeof t&&(t=[t]),this.onStart('load',t);for(var a=0,l=t.length;a0&&void 0!==arguments[0]?arguments[0]:{},n={},r=new RegExp('^'+e.id);for(var i in t){var o=i.replace(r,'');n[o]=t[i]}return n},loadDefaultProviders:function(){for(var t in r)this.add(t,r[t]);return this},getCurrentStorage:function(){return this.get(this.getCurrent())},onStart:function(e,n){t&&(t.trigger(v),e&&t.trigger("".concat(v,":").concat(e),n))},onAfter:function(e,n){t&&(t.trigger(m),e&&t.trigger("".concat(m,":").concat(e),n))},onEnd:function(e,n){t&&(t.trigger(y),e&&t.trigger("".concat(y,":").concat(e),n))},onError:function(e,n){t&&(t.trigger(b,n),e&&t.trigger("".concat(b,":").concat(e),n),this.onEnd(e,n))},canAutoload:function(){return this.getCurrentStorage()&&this.getConfig().autoload},destroy:function(){[e,t,n,r].forEach((function(t){return{}}))}}}},2326:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>_e,evAll:()=>de,evCustom:()=>Se,evLayerSelect:()=>Ce,evPfx:()=>pe,evProp:()=>be,evPropAdd:()=>we,evPropRemove:()=>xe,evPropUp:()=>Oe,evSector:()=>ge,evSectorAdd:()=>ve,evSectorRemove:()=>me,evSectorUpdate:()=>ye,evTarget:()=>ke});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(9304),l=n(2316),c=n.n(l);const u={sectors:[{name:'General',open:!1,properties:['display','float','position','top','right','left','bottom']},{name:'Flex',open:!1,properties:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,properties:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,properties:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow']},{name:'Decorations',open:!1,properties:['background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,properties:['opacity','transition']}],appendTo:'',stylePrefix:'sm-',custom:!1,hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!0,avoidComputed:['width','height']};var h=n(4925),f=n(5671),d=n(3144),p=n(9340),g=n(3930),v=n(1120),m=n(793),y=["partial"];function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em;var r=this.get('id')||'',i=this.get('name')||this.get('label')||'';!this.get('property')&&this.set('property',(i||r).replace(/ /g,'-'));var o=this.get('property');!this.get('id')&&this.set('id',o),!i&&this.set('name',(0,s.capitalize)(o).replace(/-/g,' ')),this.on('change',this.__upTargets),n.callInit(this,t,e)}},{key:"__getParentProp",value:function(){var t,e;return null===(t=this.collection)||void 0===t||null===(e=t.opts)||void 0===e?void 0:e.parentProp}},{key:"__upTargets",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=this.em,a=s.get('StyleManager'),l=this.getName(),c=n.__clear,u=c?'':this.__getFullValue(n),h=this.__getParentProp(),f=this.changedAttributes(),d=(0,o.keys)(f).reduce((function(t,n){return t[n]=e.previous(n),t}),{}),p=[].concat((0,r.Z)((0,o.keys)(this.__getClearProps())),['__p']),g=(0,o.keys)(f),v=!n.__up&&!h&&(c||p.some((function(t){return g.indexOf(t)>=0}))),m=this.get('onChange'),y={property:this,from:d,to:f,value:u,opts:n};a.__trgEv(a.events.propertyUpdate,y),m&&m(y),v&&this.__upTargetsStyle((0,i.Z)({},l,u),n)}},{key:"__upTargetsStyle",value:function(t,e){var n,r=null===(n=this.em)||void 0===n?void 0:n.get('StyleManager');null==r||r.addStyleTargets(w(w({},t),{},{__p:!!e.avoidStore}),e)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.noTarget&&(e.__up=!0);var n=e.partial,r=(0,h.Z)(e,y);return t.__p=!(!r.avoidStore&&!n),this.set(t,w(w({},r),{},{avoidStore:t.__p}))}},{key:"up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.set(t,w(w({},e),{},{__up:!0}))}},{key:"init",value:function(){}},{key:"getId",value:function(){return this.get('id')}},{key:"getType",value:function(){return this.get('type')}},{key:"getName",value:function(){return this.get('property')}},{key:"getLabel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('name')||this.get('label');return r&&(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.properties.".concat(i)))||o}},{key:"getValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDefault,n=this.get('value');return this.hasValue()||e?n:this.getDefaultValue()}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget(),r=this.get('value');return!(0,o.isUndefined)(r)&&''!==r&&!n}},{key:"hasValueParent",value:function(){return this.hasValue()&&!this.hasValue({noParent:!0})}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=t.camelCase?(0,s.camelCase)(e):e;return(0,i.Z)({},n,this.__getFullValue(t))}},{key:"getDefaultValue",value:function(){var t=this.get('default');return"".concat((0,o.isUndefined)(t)?this.get('defaults'):t)}},{key:"upValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null===t||''===t?this.__getClearProps():this.__parseValue(t,e);return this._up(n,e)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._up(this.__getClearProps(),w(w({},t),{},{__clear:!0}))}},{key:"canClear",value:function(){var t=this.getParent();return t?t.__canClearProp(this):this.hasValue({noParent:!0})}},{key:"getParent",value:function(){return this.__getParentProp()||null}},{key:"isFull",value:function(){return!!this.get('full')}},{key:"__parseValue",value:function(t,e){return this.parseValue(t,e)}},{key:"__getClearProps",value:function(){return{value:''}}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t),i=!e;!i&&this.set({value:void 0},{avoidStore:i,silent:!0}),this.set(r,w({avoidStore:i},n))}},{key:"setValueFromInput",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,w(w({},n),{},{fromInput:1}))}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={value:t},r='!important';if((0,o.isString)(t)&&-1!==t.indexOf(r)&&(n.value=t.replace(r,'').trim(),n.important=1),!this.get('functionName')&&!e.complete)return n;var i=[],s="".concat(n.value),a=s.indexOf('(')+1,l=s.lastIndexOf(')'),c=s.substring(0,a-1);if(c&&(n.functionName=c),i.push(a),l>=0&&i.push(l),n.value=String.prototype.substring.apply(s,i),e.numeric){var u=parseFloat(n.value);n.unit=n.value.replace(u,''),n.value=u}return n}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.withDefault;return!this.hasValue()&&e?this.getDefaultValue():this.getFullValue()}},{key:"getFullValue",value:function(t){var e=this.get('functionName'),n=this.getDefaultValue(),r=(0,o.isUndefined)(t)?this.get('value'):t,i=!(0,o.isUndefined)(r)&&''!==r;if(r&&n&&r===n)return n;if(e&&i){var s='url'===e?"'".concat(r.replace(/'/g,''),"'"):r;r="".concat(e,"(").concat(s,")")}return i&&this.get('important')&&(r="".concat(r," !important")),r||''}},{key:"__setParentTarget",value:function(t){this.__parentTarget=t}},{key:"getParentTarget",value:function(){return this.__parentTarget||null}},{key:"__parseFn",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=t.indexOf('(')+1,n=t.lastIndexOf(')');return{name:t.substring(0,e-1).trim(),value:String.prototype.substring.apply(t,[e,n>=0?n:void 0]).trim()}}},{key:"__checkVisibility",value:function(t){var e=t.target,n=t.component,r=t.sectors,i=n||e;if(!i)return!1;var a=this.getId(),l=this.getName(),c=this.get('toRequire'),u=this.get('requires'),h=this.get('requiresParent'),f=i.get('unstylable'),d=i.get('stylable-require'),p=i.get('stylable');if((0,o.isArray)(p)&&(p=p.indexOf(l)>=0),(0,o.isArray)(f)&&(p=f.indexOf(l)<0),c&&(p=!e||d&&(d.indexOf(a)>=0||d.indexOf(l)>=0)),r&&u){var g=(0,o.keys)(u);r.forEach((function(t){t.getProperties().forEach((function(t){if((0,o.includes)(g,t.id)){var e=u[t.id];p=p&&(0,o.includes)(e,t.get('value'))}}))}))}if(h){var v=n&&n.parent(),m=v&&v.getEl();if(m){var y=(0,s.hasWin)()?window.getComputedStyle(m):{};(0,o.each)(h,(function(t,e){p=p&&y[e]&&(0,o.includes)(t,y[e])}))}else p=!1}return!!p}}]),n}(l.Model);function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};t.prototype.initialize.apply(e,[n,w(w({},r),{},{skipInit:1})])},O.callInit=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.skipInit&&t.init(e,n)},O.getDefaults=function(){return(0,o.result)(this.prototype,'defaults')},O.prototype.defaults={name:'',property:'',type:'',defaults:'',info:'',value:'',icon:'',functionName:'',status:'',visible:!0,fixedValues:['initial','inherit'],onChange:null,full:0,important:0,toRequire:0,requires:null,requiresParent:null};var P=function(t){return'integer'===t||'number'===t},_=function(t){(0,p.Z)(n,t);var e=S(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return k(k({},O.getDefaults()),{},{detached:!1,properties:[],separator:' ',join:null,fromStyle:null,toStyle:null,full:!0})}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.em,r=new Bt(this.get('properties')||[],{em:n,parentProp:this});this.set('properties',r,{silent:1}),this.listenTo(r,'change',this.__upProperties),O.callInit(this,t,e)}},{key:"getProperties",value:function(){return(0,r.Z)(this.get('properties').models)}},{key:"getProperty",value:function(t){return this.get('properties').filter((function(e){return e.getId()===t||e.getName()===t}))[0]||null}},{key:"getPropertyAt",value:function(t){return this.get('properties').at(t)}},{key:"isDetached",value:function(){return!!this.get('detached')}},{key:"getValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.byName;return this.getProperties().reduce((function(t,n){return t[e?n.getName():n.getId()]="".concat(n.__getFullValue()),t}),{})}},{key:"getSeparator",value:function(){return this.getSplitSeparator()}},{key:"getJoin",value:function(){return this.__getJoin()}},{key:"getStyleFromProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.__getJoin(),r=this.get('toStyle'),o=this.getValues(),s={};if(r)s=r(o,{join:n,name:e,property:this});else if(o=this.getValues({byName:!0}),this.isDetached())s=o;else{var a=this.getProperties().map((function(t){return t.__getFullValue({withDefault:1})})).filter(Boolean).join(n);s=(0,i.Z)({},e,a)}return this.isDetached()?s[e]='':(s[e]=s[e]||'',s=k(k({},s),this.getProperties().reduce((function(t,e){return t[e.getName()]='',t}),{}))),t.camelCase?Object.keys(s).reduce((function(t,e){return t[camelCase(e)]=s[e],t}),{}):s}},{key:"getSplitSeparator",value:function(){return new RegExp("".concat(this.get('separator'),"(?![^\\(]*\\))"))}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__up&&!e.__clearIn){var n=this.__getParentProp();if(n)return n.__upProperties(this,e);this.__upTargetsStyleProps(e,t)}}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.getStyleFromProps();if(this.isDetached()&&e){var r=e.getName();n=(0,i.Z)({},r,n[r])}this.__upTargetsStyle(n,t)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__setProperties(this.__getSplitValue(t.value),e),O.prototype._up.call(this,t,e)}},{key:"getStyle",value:function(t){return this.getStyleFromProps(t)}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isDetached()||t.__clear?'':this.getStyleFromProps()[this.getName()]||''}},{key:"__getJoin",value:function(){var t=this.get('join');return(0,o.isString)(t)?t:this.get('separator')}},{key:"__styleHasProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.getProperties(),i=n.map((function(t){return t.getName()})),s=[e].concat((0,r.Z)(i));return s.some((function(e){return!(0,o.isUndefined)(t[e])&&''!==t[e]}))}},{key:"__splitValue",value:function(t,e){return t.split(e).map((function(t){return t.trim()})).filter(Boolean)}},{key:"__splitStyleName",value:function(t,e,n){return this.__splitValue(t[e]||'',n)}},{key:"__getSplitValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.byName,r=this.getProperties(),i=4===r.length&&r.every((function(t){return P(t.getType())})),s=this.__splitValue(t,this.getSplitSeparator()),a={};return r.forEach((function(t,e){var r=s[e],l=(0,o.isUndefined)(r)?'':r;if(i){var c=s.length;l=s[e]||s[e%c+(1!=c&&c%2?1:0)]||l}var u=n?t.getName():t.getId();a[u]=l||''})),a}},{key:"__getPropsFromStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.__styleHasProps(t))return null;var n=e.byName,r=this.getName(),i=this.getProperties(),s=this.getSplitSeparator(),a=this.get('fromStyle'),l=a?a(t,{property:this,name:r,separator:s}):{};return a||(l=this.__getSplitValue(t[r]||'',{byName:n}),i.forEach((function(e){var r=t[e.getName()],i=n?e.getName():e.getId();(0,o.isUndefined)(r)||''===r||(l[i]=r)}))),l}},{key:"__setProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.getProperties().forEach((function(n){var r=t[n.getId()];n.__getFullValue()!==r&&n.upValue(r,e)}));var n=(0,o.keys)(t).map((function(e){return t[e]})).join(' ');this.set('value',n,{silent:!0})}},{key:"clear",value:function(){var t=this;return this.getProperties().map((function(e){return e.clear({__clearIn:!t.isDetached()})})),O.prototype.clear.call(this)}},{key:"hasValue",value:function(t){return this.getProperties().some((function(e){return e.hasValue(t)}))}},{key:"getFullValue",value:function(){return this.__getFullValue()}},{key:"__canClearProp",value:function(t){return this.isDetached()&&t.hasValue({noParent:!0})}}]),n}(O);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('values');return t.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,s.camelCase)(n)]=e[n],t}),{}):e}},{key:"getLabel",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.getLayerLabel(this)}},{key:"isSelected",value:function(){var t;return(null===(t=this.prop)||void 0===t?void 0:t.getSelectedLayer())===this}},{key:"select",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.selectLayer(this)}},{key:"remove",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.removeLayer(this)}},{key:"move",value:function(t){var e;return null===(e=this.prop)||void 0===e?void 0:e.moveLayer(this,t)}},{key:"getStylePreview",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return null===(t=this.prop)||void 0===t?void 0:t.getStylePreview(this,e)}},{key:"hasPreview",value:function(){var t;return!(null===(t=this.prop)||void 0===t||!t.get('preview'))}},{key:"upValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.set('values',E(E({},this.getValues()),t))}}]),n}(l.Model);function M(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var A=function(t){(0,p.Z)(n,t);var e=M(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prop=e.prop}}]),n}(l.Collection);A.prototype.model=D;var L=["__layers"];function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.callParentInit(_,this,t,e);var n=this.get('layers'),r=new A(n,{prop:this});r.property=this,r.properties=this.get('properties'),this.set('layers',r,{silent:!0}),this.on('change:selectedLayer',this.__upSelected),this.listenTo(r,'add remove',this.__upLayers),_.callInit(this,t,e)}},{key:"getLayers",value:function(){return this.__getLayers().models}},{key:"__getLayers",value:function(){return this.get('layers')}},{key:"getLayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.__getLayers().at(t)||null}},{key:"getSelectedLayer",value:function(){var t=this.get('selectedLayer');return t&&t.getIndex()>=0?t:null}},{key:"selectLayer",value:function(t){return this.set('selectedLayer',t,{__select:!0})}},{key:"selectLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e&&this.selectLayer(e)}},{key:"moveLayer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t?t.getIndex():-1;n>=0&&(0,o.isNumber)(e)&&e>=0&&e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};this.getProperties().forEach((function(e){var r=e.getId(),i=t[r];n[r]=(0,o.isUndefined)(i)?e.getDefaultValue():i}));var r=this.get('layers').push({values:n},e);return r}},{key:"removeLayer",value:function(t){return this.get('layers').remove(t)}},{key:"removeLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e?this.removeLayer(e):null}},{key:"getLayerLabel",value:function(t){var e='';if(t){var n=this.get('layerLabel'),r=t.getValues(),i=t.getIndex();if(n)e=n(t,{index:i,values:r,property:this});else{var o=[];this.getProperties().map((function(t){o.push(r[t.getId()])})),e=o.filter(Boolean).join(' ')}}return e}},{key:"getStyleFromLayer",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.__getJoin(),a=this.__getJoinLayers(),l=this.get('toStyle'),c=this.getName(),u=t.getValues();if(l)e=l(u,{join:r,joinLayers:a,name:c,layer:t,property:this});else{var h=this.getProperties().map((function(t){var e=t.getName(),r=u[t.getId()],i=(0,o.isUndefined)(r)?t.getDefaultValue():r;if(n.number&&P(t.getType())){var s=t.parseValue(r,n.number);i="".concat(s.value).concat(s.unit)}return{name:e,value:i}}));e=this.isDetached()?h.reduce((function(t,e){return t[e.name]=e.value,t}),{}):(0,i.Z)({},this.getName(),h.map((function(t){return t.value})).join(r))}return n.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,s.camelCase)(n)]=e[n],t}),{}):e}},{key:"getStylePreview",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=this.get('preview');return r&&(n=this.getStyleFromLayer(t,e)),n}},{key:"getLayerSeparator",value:function(){var t=this.get('layerSeparator');return(0,o.isString)(t)?new RegExp("".concat(t,"(?![^\\(]*\\))")):t}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getSelectedLayer();n&&(n.upValues((0,i.Z)({},t.getId(),t.__getFullValue())),e.__up||this.__upTargetsStyleProps(e))}},{key:"__upLayers",value:function(t,e,n){this.__upTargetsStyleProps(n||e)}},{key:"__upTargets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__select)return O.prototype.__upTargets.call(this,t,e)}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__upTargetsStyle(this.getStyleFromLayers(),t)}},{key:"__upTargetsStyle",value:function(t,e){return O.prototype.__upTargetsStyle.call(this,t,e)}},{key:"__upSelected",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noEvent,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em.get('StyleManager'),i=this.getSelectedLayer(),o=null==i?void 0:i.getValues();o&&this.getProperties().forEach((function(t){var e=o[t.getId()];t.__getFullValue()!==e&&t.upValue(e,N(N({},n),{},{__up:!0}))})),!e&&r.__trgEv(r.events.layerSelect,{property:this})}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.__layers,r=void 0===n?[]:n,i=(0,h.Z)(t,L);return!this.isDetached()&&this.__setLayers(r),this.__upSelected({noEvent:!0},e),O.prototype._up.call(this,i,e)}},{key:"__setLayers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.__getLayers(),n=t.map((function(t){return{values:t}}));e.length===n.length?n.map((function(t,n){var r;return null===(r=e.at(n))||void 0===r?void 0:r.upValues(t.values)})):this.__getLayers().reset(n),this.__upSelected({noEvent:!0})}},{key:"__parseValue",value:function(t){var e=this,n=this.parseValue(t);return n.__layers=t.split(I).map((function(t){return t.trim()})).map((function(t){return e.__parseLayer(t)})).filter(Boolean),n}},{key:"__parseLayer",value:function(t){var e=this.get('parseLayer'),n=t.split(F),r=this.getProperties();return e?e({value:t,values:n}):r.reduce((function(t,e,r){var i=n[r];return t[e.getId()]=(0,o.isUndefined)(i)?e.getDefaultValue():i,t}),{})}},{key:"__getLayersFromStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.__styleHasProps(e))return null;var n=this.getName(),r=this.getProperties(),s=this.getLayerSeparator(),a=this.get('fromStyle'),l=a?a(e,{property:this,name:n,separatorLayers:s}):[];if(!a){var c=this.__splitStyleName(e,n,s).map((function(e){return e.split(t.getSplitSeparator())})).map((function(t){var e={};return r.forEach((function(n,r){var i=t[r];e[n.getId()]=(0,o.isUndefined)(i)?n.getDefaultValue():i})),e}));r.forEach((function(n){var r=n.getId();t.__splitStyleName(e,n.getName(),s).map((function(t){return(0,i.Z)({},r,t||n.getDefaultValue())})).forEach((function(t,e){c[e]=c[e]?N(N({},c[e]),t):t}))})),l=c}return(0,o.isArray)(l)?l:[l]}},{key:"getStyle",value:function(t){return this.getStyleFromLayers(t)}},{key:"getStyleFromLayers",value:function(t){var e=this,n={},r=this.getName(),i=this.getLayers(),s=this.getProperties();if(i.map((function(n){return e.getStyleFromLayer(n,t)})).forEach((function(t){(0,o.keys)(t).map((function(e){n[e]||(n[e]=[]),n[e].push(t[e])}))})),(0,o.keys)(n).map((function(t){n[t]=n[t].join(e.__getJoinLayers())})),this.isDetached())n[r]='',!i.length&&s.map((function(t){n[t.getName()]=''}));else{var a=s.reduce((function(t,e){return t[e.getName()]='',t}),{});n[r]=n[r]||'',n=N(N({},n),a)}return n}},{key:"__getJoinLayers",value:function(){var t=this.get('layerJoin'),e=this.get('layerSeparator');return t||((0,o.isString)(e)?e:t)}},{key:"__getFullValue",value:function(){return this.get('detached')?'':this.getStyleFromLayers()[this.getName()]}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget();return this.getLayers().length>0&&!n}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.__getLayers().reset(),this.__upTargetsStyleProps(t),O.prototype.clear.call(this)}},{key:"__canClearProp",value:function(){return!1}}]),n}(_),H=["complete","partial"];function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function z(t){for(var e=1;e
\n
\n ")}},{key:"templateLabel",value:function(t){var e=this.pfx,n=this.em,r=t.parent,i=t.attributes,o=i.icon,s=void 0===o?'':o,a=i.info,l=void 0===a?'':a,c=null==n?void 0:n.getConfig('icons'),u=(null==c?void 0:c.close)||'';return"\n \n ").concat(t.getLabel(),"\n \n ").concat(r?'':"
").concat(u,"
"),"\n ")}},{key:"templateInput",value:function(t){return"\n
\n \n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__change','__updateStyle');var e=t.config||{},n=e.em;this.config=e,this.em=n,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.__destroyFn=this.destroy?this.destroy.bind(this):function(){};var r=this.model;r.view=this,this.onValueChange=(0,o.debounce)(this.onValueChange.bind(this),10),this.updateStatus=(0,o.debounce)(this.updateStatus.bind(this)),this.listenTo(r,'destroy remove',this.remove),this.listenTo(r,'change:visible',this.updateVisibility),this.listenTo(r,'change:name change:className change:full',this.render),this.listenTo(r,'change:value',this.onValueChange),this.listenTo(n,'change:device',this.onValueChange);var i=this.init&&this.init.bind(this);i&&i()}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['em','input','$input','view'].forEach((function(e){return t[e]=null})),this.__destroyFn(this._getClbOpts())}},{key:"updateStatus",value:function(){var t,e=this.model,n=this.pfx,r=this.ppfx,i=this.config,o="".concat(r,"four-color"),s="".concat(r,"color-warn"),a=this.$el.children(".".concat(n,"label")),l=this.getClearEl(),c=l?l.style:{};a.removeClass("".concat(o," ").concat(s)),c.display='none',e.hasValue({noParent:!0})&&i.highlightChanged?(a.addClass(o),i.clearProperties&&(c.display='')):e.hasValue()&&i.highlightComputed&&a.addClass(s),null===(t=this.parent)||void 0===t||t.updateStatus()}},{key:"clear",value:function(t){t&&t.stopPropagation(),this.model.clear()}},{key:"getClearEl",value:function(){return this.clearEl||(this.clearEl=this.el.querySelector("[".concat(W,"]"))),this.clearEl}},{key:"inputValueChanged",value:function(t){t&&t.stopPropagation(),this.emit||this.model.upValue(t.target.value)}},{key:"onValueChange",value:function(t,e){this.setValue(this.model.getFullValue()),this.updateStatus()}},{key:"setValue",value:function(t){var e=this.model,n=(0,o.isUndefined)(t)||''===t?e.getDefaultValue():t;if(this.update)return this.__update(n);this.__setValueInput(n)}},{key:"__setValueInput",value:function(t){var e=this.getInputEl();e&&(e.value=t)}},{key:"getInputEl",value:function(){return this.input||(this.input=this.el.querySelector('input')),this.input}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"clearCached",value:function(){this.clearEl=null,this.input=null,this.$input=null}},{key:"__unset",value:function(){var t=this.unset&&this.unset.bind(this);t&&t(this._getClbOpts())}},{key:"__update",value:function(t){var e=this.update&&this.update.bind(this);e&&e(z(z({},this._getClbOpts()),{},{value:t}))}},{key:"__change",value:function(){for(var t=this.emit&&this.emit.bind(this),e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.complete,r=e.partial,i=((0,h.Z)(e,H),this.model),o=!1!==n&&!0!==r;(0,s.isObject)(t)?i.__upTargetsStyle(t,{avoidStore:!o}):i.upValue(t,{partial:!o})}},{key:"_getClbOpts",value:function(){var t=this.model;return{el:this.el,createdEl:this.createdEl,property:t,props:t.attributes,change:this.__change,updateStyle:this.__updateStyle}}},{key:"render",value:function(){this.clearCached();var t=this.pfx,e=this.model,n=this.el,r=this.$el,i=e.getName(),o=e.getType(),s=e.get('className')||'',a="".concat(t,"property"),l='number'===o?"".concat(t).concat(o," ").concat(t,"integer"):"".concat(t).concat(o);this.createdEl&&this.__destroyFn(this._getClbOpts()),r.empty().append(this.template(e)),r.find('[data-sm-label]').append(this.templateLabel(e));var c=this.create&&this.create.bind(this);this.createdEl=c&&c(this._getClbOpts()),r.find('[data-sm-fields]').append(this.createdEl||this.templateInput(e)),n.className="".concat(a," ").concat(l," ").concat(a,"__").concat(i," ").concat(s).trim(),n.className+=e.isFull()?" ".concat(a,"--full"):'';var u=this.onRender&&this.onRender.bind(this);u&&u(),this.setValue(e.getValue())}}]),n}(l.View);$.prototype.events=(0,i.Z)({change:'inputValueChanged'},"click [".concat(W,"]"),'clear');var q=n(9283);function G(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var K=function(t){(0,p.Z)(n,t);var e=G(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||'',this.properties=[],this.parent=t.parent;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.render)}},{key:"addTo",value:function(t,e,n){this.add(t,null,n)}},{key:"add",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parent,i=this.config,o=e||this.el,s=new t.typeView({model:t,config:i});r&&(s.parent=r),s.render();var a=s.el;this.properties.push(s),(0,q.$Q)(o,a,n.at)}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.clearItems()}},{key:"clearItems",value:function(){this.properties.forEach((function(t){return t.remove()})),this.properties=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx;this.clearItems();var r=document.createDocumentFragment();return this.collection.forEach((function(e){return t.add(e,r)})),e.empty(),e.append(r),e.attr('class',"".concat(n,"properties")),this}}]),n}(l.View);function Y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function J(t){for(var e=1;e\n \n
\n ")}},{key:"remove",value:function(){var t;null===(t=this.props)||void 0===t||t.remove(),$.prototype.remove.apply(this,arguments)}},{key:"onValueChange",value:function(){}},{key:"onRender",value:function(){var t=this.model,e=this.pfx,n=t.get('properties');if(n.length&&!this.props){var r=t.isDetached(),i=new K({config:J(J({},this.config),{},{highlightComputed:r,highlightChanged:r}),collection:n,parent:this});i.render(),this.$el.find("#".concat(e,"input-holder")).append(i.el),this.props=i}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.props=null}}]),n}($);function tt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var et=function(t){(0,p.Z)(n,t);var e=tt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"events",value:function(){return{click:'select','click [data-close-layer]':'removeItem','mousedown [data-move-layer]':'initSorter','touchstart [data-move-layer]':'initSorter'}}},{key:"template",value:function(){var t=this.pfx,e=this.ppfx,n=this.em,r=null==n?void 0:n.getConfig('icons'),i=(null==r?void 0:r.close)||'',o=(null==r?void 0:r.move)||'';return"\n
\n
\n ").concat(o,"\n
\n
\n
\n
\n
\n
\n ").concat(i,"\n
\n
\n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.em=n.em,this.config=n,this.sorter=t.sorter,this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.propertyView=t.propertyView;var r=this.propertyView.model;this.listenTo(e,'destroy remove',this.remove),this.listenTo(e,'change:values',this.updateLabel),this.listenTo(r,'change:selectedLayer',this.updateVisibility),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data('model',e)}},{key:"initSorter",value:function(){var t;null===(t=this.sorter)||void 0===t||t.startSort(this.el)}},{key:"removeItem",value:function(t){t&&t.stopPropagation(),this.model.remove()}},{key:"select",value:function(){this.model.select()}},{key:"getPropertiesWrapper",value:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector('[data-properties]')),this.propsWrapEl}},{key:"getPreviewEl",value:function(){return this.previewEl||(this.previewEl=this.el.querySelector('[data-preview]')),this.previewEl}},{key:"getLabelEl",value:function(){return this.labelEl||(this.labelEl=this.el.querySelector('[data-label]')),this.labelEl}},{key:"updateLabel",value:function(){var t=this.model,e=t.getLabel();if(this.getLabelEl().innerHTML=e,t.hasPreview()){var n=this.getPreviewEl(),r=t.getStylePreview({number:{min:-3,max:3}}),i=(0,o.keys)(r).map((function(t){return"".concat(t,":").concat(r[t])})).join(';');n.setAttribute('style',i)}}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n=this.propertyView,r=this.getPropertiesWrapper(),i=e.isSelected();r.style.display=i?'':'none',this.$el[i?'addClass':'removeClass']("".concat(t,"active")),i&&r.appendChild(n.props.el)}},{key:"render",value:function(){var t=this.el,e=this.pfx,n=this.model;return t.innerHTML=this.template(),t.className="".concat(e,"layer"),n.hasPreview()&&(t.querySelector("[data-preview-box]").style.display=''),this.updateLabel(),this.updateVisibility(),this}}]),n}(l.View);function nt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var rt=function(t){(0,p.Z)(n,t);var e=nt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=this.collection,n=t.config||{},r=n.em,i=n.stylePrefix||'',o=n.pStylePrefix||'';this.config=n,this.pfx=i,this.ppfx=o,this.propertyView=t.propertyView,this.className="".concat(i,"layers ").concat(o,"field"),this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.reset),this.items=[];var s=r?r.get('Utils'):'';this.sorter=s?new s.Sorter({container:this.el,ignoreViewChildren:1,containerSel:".".concat(i,"layers"),itemSel:".".concat(i,"layer"),pfx:n.pStylePrefix}):'',e.view=this,this.$el.data('model',e),this.$el.data('collection',e)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=e||null,i=this.propertyView,o=this.config,s=this.sorter,a=this.$el,l=new et({model:t,config:o,sorter:s,propertyView:i}),c=l.render().el;if(this.items.push(l),r)r.appendChild(c);else if(void 0!==n){var u='before';a.children().length===n&&(n--,u='after'),n<0?a.append(c):a.children().eq(n)[u](c)}else a.append(c);return c}},{key:"reset",value:function(t,e){this.clearItems(e),this.render()}},{key:"remove",value:function(){this.clearItems(),l.View.prototype.remove.apply(this,arguments)}},{key:"clearItems",value:function(){this.items.forEach((function(t){return t.remove()})),this.items=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.sorter,r=document.createDocumentFragment();return e.empty(),this.collection.forEach((function(e){return t.addToCollection(e,r)})),e.append(r),e.attr('class',this.className),n&&(n.plh=null),this}}]),n}(l.View);function it(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 ot(t){for(var e=1;e\n \n
\n \n ")}},{key:"init",value:function(){var t=this.model;this.listenTo(t.__getLayers(),'change reset',this.updateStatus)}},{key:"addLayer",value:function(){this.model.addLayer({},{at:0})}},{key:"setValue",value:function(){}},{key:"remove",value:function(){var t;null===(t=this.layersView)||void 0===t||t.remove(),Q.prototype.remove.apply(this,arguments)}},{key:"clearCached",value:function(){Q.prototype.clearCached.apply(this,arguments),this.layersView=null}},{key:"onRender",value:function(){var t=this.model,e=this.el,n=this.config,r=t.get('properties');if(r.length&&!this.props){var i=new K({config:ot(ot({},n),{},{highlightComputed:!1,highlightChanged:!1}),collection:r,parent:this});i.render();var o=new rt({collection:t.__getLayers(),config:n,propertyView:this});o.render(),e.querySelector('[data-layers-wrapper]').appendChild(o.el),this.props=i,this.layersView=o}}}]),n}(Q);function lt(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 ct(t){for(var e=1;e\n
\n
\n \n
\n
\n
\n
\n
\n
").concat(i,"
\n
\n \n ")}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.el,r=e.getDefaultValue(),i=n.querySelector('[data-preview-box]'),o=n.querySelector('[data-preview]');i.style.display=t&&t!==r?'':'none',o.style.backgroundImage=t||e.getDefaultValue()}},{key:"openAssetManager",value:function(){var t,e=this,n=null===(t=this.em)||void 0===t?void 0:t.get('AssetManager');null==n||n.open({select:function(t,r){var i=(0,o.isString)(t)?t:t.get('src');e.model.upValue(i,{partial:!r}),r&&n.close()},types:['image'],accept:'image/*'})}}]),n}($);function ft(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var dt=function(t){(0,p.Z)(n,t);var e=ft(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"templateInput",value:function(){return''}},{key:"init",value:function(){var t=this.model;this.listenTo(t,'change:unit',this.onValueChange),this.listenTo(t,'change:units',this.render)}},{key:"setValue",value:function(){}},{key:"onRender",value:function(){var t=this.ppfx,e=this.model,n=this.el;if(!this.inputInst){var r=e.input;r.ppfx=t,r.render(),n.querySelector(".".concat(t,"fields")).appendChild(r.el),this.input=r.inputEl.get(0),this.inputInst=r}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.inputInst=null}}]),n}($),pt=n(1511);function gt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var vt=function(t){(0,p.Z)(n,t);var e=gt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"setValue",value:function(t){var e;null===(e=this.inputInst)||void 0===e||e.setValue(t,{fromTarget:1,def:this.model.getDefaultValue()})}},{key:"remove",value:function(){var t=this;dt.prototype.remove.apply(this,arguments);var e=this.inputInst;e&&e.remove&&e.remove(),['inputInst','$color'].forEach((function(e){return t[e]=null}))}},{key:"__handleChange",value:function(t,e){this.model.upValue(t,{partial:e})}},{key:"onRender",value:function(){if(!this.inputInst){this.__handleChange=this.__handleChange.bind(this);var t=this.ppfx,e=this.model,n=this.em,r=this.el,i=new pt.Z({target:n,model:e,ppfx:t,onChange:this.__handleChange}).render();r.querySelector(".".concat(t,"fields")).appendChild(i.el),this.input=i.inputEl.get(0),this.inputInst=i}}}]),n}(dt);function mt(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 yt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[];return this.set('options',t),this}},{key:"addOption",value:function(t){if(t){var e=this.getOptions();this.setOptions([].concat((0,r.Z)(e),[t]))}return this}},{key:"getOptionId",value:function(t){return(0,s.isDef)(t.id)?t.id:t.value}},{key:"getOptionLabel",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.locale,i=void 0===r||r,s=((0,o.isString)(t)?this.getOption(t):t)||{},a=this.getOptionId(s),l=s.label||s.name||a,c=this.getId();return i&&(null===(e=this.em)||void 0===e?void 0:e.t("styleManager.options.".concat(c,".").concat(a)))||l}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n\n \n
\n
\n
\n \n ")}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n").concat(i,""))}));var i=this.el.querySelector("#".concat(e,"input-holder"));i.innerHTML=""),this.input=i.firstChild}}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.getInputEl(),r=e.getOptions()[0],i=r?e.getOptionId(r):'';n&&(n.value=t||i)}}]),n}($);function Ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function kt(t){for(var e=1;e")}},{key:"onRender",value:function(){var t=this.pfx,e=this.ppfx,n=this.model,r="".concat(e,"radio-item-label"),i=n.getName(),o=n.getOptions(),s="".concat(t,"radio ").concat(t,"radio-").concat(i),a=n.cid;if(!this.input){var l=[];o.forEach((function(o){var c=o.className?"".concat(o.className," ").concat(t,"icon ").concat(r):'',u=n.getOptionId(o),h="".concat(i,"-").concat(u,"-").concat(a),f=c?'':n.getOptionLabel(u),d=o.title?"title=\"".concat(o.title,"\""):'',p=n.getValue()===u?'checked':'';l.push("\n
\n \n \n
\n "))}));var c=this.el.querySelector(".".concat(e,"field"));c.innerHTML="
").concat(l.join(''),"
"),this.input=c.firstChild}}},{key:"__setValueInput",value:function(t){var e,n=this.model,r=t||n.getDefaultValue(),i=null===(e=this.getInputEl())||void 0===e?void 0:e.querySelector("[value=\"".concat(r,"\"]"));i&&(i.checked=!0)}}]),n}(Ot),Et=n(7610);function jt(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 Dt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.get('unit'),r=this.get('units');this.input=(0,s.hasWin)()&&new Et.Z({model:this}),r.length&&!n&&this.set('unit',r[0],{silent:1}),O.callInit(this,t,e)}},{key:"__getClearProps",value:function(){return Dt(Dt({},O.prototype.__getClearProps()),{},{unit:''})}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=O.prototype.parseValue.apply(this,arguments),r=this.input.validateInputValue(n.value,Dt({deepCheck:1},e)),i=r.value,o=r.unit;return n.value=i,n.unit=o,n}},{key:"getFullValue",value:function(){var t=this.get('value'),e=this.get('unit');return t=(0,o.isUndefined)(t)?'':t,e=!(0,o.isUndefined)(e)&&t?e:'',t="".concat(t).concat(e),O.prototype.getFullValue.apply(this,[t])}}]),n}(O);function Lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;e\n \n \n ")}},{key:"getSliderEl",value:function(){return this.slider||(this.slider=this.el.querySelector('input[type=range]')),this.slider}},{key:"inputValueChanged",value:function(){this.model.upValue(this.getSliderEl().value)}},{key:"inputValueChangedSoft",value:function(){this.model.upValue(this.getSliderEl().value,{partial:!0})}},{key:"setValue",value:function(t){var e=this.model,n=e.parseValue(t);this.getSliderEl().value=''===t?e.getDefaultValue():parseFloat(n.value),dt.prototype.setValue.apply(this,arguments)}},{key:"onRender",value:function(){dt.prototype.onRender.apply(this,arguments),this.model.get('showInput')||(this.inputInst.el.style.display='none')}},{key:"clearCached",value:function(){dt.prototype.clearCached.apply(this,arguments),this.slider=null}}]),n}(dt);const Bt=c().Collection.extend(m.Z).extend({extendViewApi:1,init:function(){var t=this.opts,e=this.em,n=t.module||(null==e?void 0:e.get('StyleManager'));n&&(n.__listenAdd(this,n.events.propertyAdd),n.__listenRemove(this,n.events.propertyRemove))},types:[{id:'stack',model:V,view:at,isType:function(t){if(t&&'stack'==t.type)return t}},{id:'composite',model:_,view:Q,isType:function(t){if(t&&'composite'==t.type)return t}},{id:'file',model:O,view:ht,isType:function(t){if(t&&'file'==t.type)return t}},{id:'color',model:O,view:vt,isType:function(t){if(t&&'color'==t.type)return t}},{id:'select',model:wt,view:Ot,isType:function(t){if(t&&'select'==t.type)return t}},{id:'radio',model:Pt,view:Tt,isType:function(t){if(t&&'radio'==t.type)return t}},{id:'slider',model:Zt,view:Ht,isType:function(t){if(t&&'slider'==t.type)return t}},{id:'integer',model:At,view:dt,isType:function(t){if(t&&'integer'==t.type)return t}},{id:'number',model:At,view:dt,isType:function(t){if(t&&'number'==t.type)return t}},{id:'base',model:O,view:$,isType:function(t){return t.type='base',t}}]});var zt=["extend"];function Ut(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 Wt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r;var i=t||{},s=this.buildProperties(i.buildProps),a=this.get('name')||'',l=[];!this.get('id')&&this.set('id',a.replace(/ /g,'_').toLowerCase()),l=(l=s?this.extendProperties(s):this.get('properties').map((function(t){return(0,o.isString)(t)?e.buildProperties(t)[0]:t})).filter(Boolean)).map((function(t){return e.checkExtend(t)}));var c=new Bt(l,{em:r});c.sector=this,this.set('properties',c)}},{key:"getId",value:function(){return this.get('id')}},{key:"getName",value:function(){var t,e=this.getId();return(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.sectors.".concat(e)))||this.get('name')}},{key:"setName",value:function(t){return this.set('name',t)}},{key:"isOpen",value:function(){return!!this.get('open')}},{key:"setOpen",value:function(t){return this.set('open',t)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"getProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('properties'),n=e.models?(0,r.Z)(e.models):e;return n.filter((function(e){var n=!0;(t.withValue&&(n=e.hasValue({noParent:!0})),t.withParentValue)&&(n=!e.hasValue({noParent:!0})&&e.hasValue());return n}))}},{key:"getProperty",value:function(t){return this.getProperties().filter((function(e){return e.get('id')===t}))[0]||null}},{key:"addProperty",value:function(t,e){return this.get('properties').add(this.checkExtend(t),e)}},{key:"extendProperties",value:function(t,e,n){for(var r=t.length,i=e||this.get('properties'),s=this.get('extendBuilded'),a=[],l=0,c=i.length;l1&&void 0!==arguments[1]?arguments[1]:{},n=e.module,r=e.em;this.em=r,this.module=n,this.listenTo(this,'reset',this.onReset)}},{key:"model",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.collection.em;return new qt(t,Kt(Kt({},e),{},{em:n}))}},{key:"onReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels||[];n.forEach((function(t){return t.get('properties').reset()}))}}]),n}(l.Collection),Xt=n(885),Qt=["extend"];function te(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 ee(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.from||'',i=this.props[r||t]||{},s=ee(ee({},i),{},{property:t},e);return s.properties&&(0,o.isFunction)(s.properties)&&(s.properties=s.properties()),this.props[t]=s,s}},{key:"get",value:function(t){return this.props[t]||null}},{key:"build",value:function(t){var e=this,n=[];return((0,o.isString)(t)?[t]:t).forEach((function(t){n.push(e.get(t)||{property:t})})),n}}]),t}(),oe=n(168),se=n(1629);function ae(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var le=function(t){(0,p.Z)(n,t);var e=ae(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"template",value:function(t){var e,n=t.pfx,r=t.label,i=null===(e=this.em)||void 0===e?void 0:e.getConfig('icons'),o=(null==i?void 0:i.caret)||'',s="".concat(n,"sector-");return(0,se.Z)(ne||(ne=(0,oe.Z)(["\n
\n
$","
\n
","
\n
\n "])),s,s,o,s,r)}},{key:"events",value:function(){return{'click [data-sector-title]':'toggle'}}},{key:"initialize",value:function(t){var e=t.config||{},n=this.model,r=e.em;this.config=e,this.em=r,this.pfx=e.stylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change:open',this.updateOpen),this.listenTo(n,'change:visible',this.updateVisibility)}},{key:"updateOpen",value:function(){var t=this.$el,e=this.model,n=this.pfx,r=e.isOpen();t[r?'addClass':'removeClass']("".concat(n,"open")),this.getPropertiesEl().style.display=r?'':'none'}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"getPropertiesEl",value:function(){var t=this.$el,e=this.pfx;return t.find(".".concat(e,"properties")).get(0)}},{key:"toggle",value:function(){var t=this.model;t.setOpen(!t.get('open'))}},{key:"renderProperties",value:function(){var t=this.model,e=this.config,n=t.get('properties');if(n){var r=new K({collection:n,config:e});this.$el.append(r.render().el)}}},{key:"render",value:function(){var t=this.pfx,e=this.model,n=this.$el,r=e.getId(),i=e.getName();return n.html(this.template({pfx:t,label:i})),this.renderProperties(),n.attr('class',"".concat(t,"sector ").concat(t,"sector__").concat(r," no-select")),this.updateOpen(),this}}]),n}(l.View);function ce(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var ue=function(t){(0,p.Z)(n,t);var e=ce(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.module,n=t.config,r=void 0===n?{}:n,i=this.collection;this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.config=r,this.module=e,this.listenTo(i,'add',this.addTo),this.listenTo(i,'reset',this.render)}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['config','module','em'].forEach((function(e){return t[e]={}}))}},{key:"addTo",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addToCollection(t,null,n)}},{key:"addToCollection",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.config,i=this.el,o=e||i,s=new le({model:t,config:r}).render().el;return(0,q.$Q)(o,s,n.at),s}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx,r=this.ppfx;e.empty();var i=document.createDocumentFragment();return this.collection.each((function(e){return t.addToCollection(e,i)})),e.append(i),e.addClass("".concat(n,"sectors ").concat(r,"one-bg ").concat(r,"two-color")),this}}]),n}(l.View);function he(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function fe(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__clearStateTarget'),this.__initConfig(u,r);var i=this.config,s=i.em,a=i.pStylePrefix;a&&(i.stylePrefix=a+i.stylePrefix),this.builtIn=new ie,t=new Bt([],{em:s,module:this}),e=new Jt([],fe(fe({},i),{},{module:this}));var c=new l.Model({targets:[]});this.model=c,this.__listenAdd(e,ve),this.__listenRemove(e,me),this.__listenUpdate(e,ye);var h='component:toggled component:update:classes change:state change:device frame:resized selector:type',f=(0,o.debounce)((function(){return n.__upSel()}));c.listenTo(s,h,f),c.listenTo(s,'component:toggled',this.__clearStateTarget);var d=(0,o.debounce)((function(){n.__upProps(),n.__trgCustom()}));c.listenTo(s,'styleable:change undo redo',d);var p=(0,o.debounce)((function(){return n.__trgCustom()}));return c.listenTo(s,"".concat(Ce," ").concat(ke),p),c.on('change:lastTarget',(function(){return s.trigger(ke,n.getSelected())})),this},__upSel:function(){this.select(this.em.getSelectedAll())},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},__trgEv:function(t){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{},i=this.getSector(t);return i||(n.id=t,i=e.add(n,r)),i},getSector:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.where({id:t})[0];return!r&&n.warn&&this._logNoSector(t),r||null},getSectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e&&e.models?t.array?(0,r.Z)(e.models):e:[];return t.visible?n.filter((function(t){return t.isVisible()})):n},removeSector:function(t){return this.getSectors().remove(this.getSector(t,{warn:1}))},addProperty:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getSector(t,{warn:1}),i=null;return r&&(i=r.addProperty(e,n)),i},getProperty:function(t,e){var n,r=this.getSector(t,{warn:1});return r&&(n=r.get('properties').filter((function(t){return t.get('property')===e||t.get('id')===e}))[0]),n||null},getProperties:function(t){var e=null,n=this.getSector(t,{warn:1});return n&&(e=n.get('properties')),e},removeProperty:function(t,e){var n=this.getProperties(t);return n?n.remove(this.getProperty(t,e)):null},select:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isArray)(t)?t:[t],a=n.stylable,l=r.get('CssComposer'),c=[];i.filter(Boolean).forEach((function(t){var e=t;if((0,o.isString)(t)){var n=l.getRule(t)||l.setRule(t);!(0,o.isUndefined)(a)&&n.set({stylable:a}),e=n}c.push(e)}));var u=n.component||c.filter((function(t){return(0,s.isComponent)(t)})).reverse()[0];c=c.map((function(t){return e.getModelToStyle(t)}));var h=r.getState(),f=c.slice().reverse()[0],d=this.getParentRules(f,{state:h,component:u}),p=this.__getStateTarget();return r.skip((function(){var t;if(h&&null!=f&&null!==(t=f.getState)&&void 0!==t&&t.call(f)){var e=f.getStyle();p?p.setStyle(e):p=l.getAll().add({selectors:'gjs-selected',style:e,shallow:!0,important:!0})}else p&&(l.remove(p),p=null)})),this.model.set({targets:c,lastTarget:f,lastTargetParents:d,stateTarget:p,component:u}),this.__upProps(n),c},getSelected:function(){return this.model.get('lastTarget')||null},getSelectedAll:function(){return this.model.get('targets')},getSelectedParents:function(){return this.model.get('lastTargetParents')||[]},__getStateTarget:function(){return this.model.get('stateTarget')||null},addStyleTargets:function(t,e){this.getSelectedAll().map((function(n){return n.addStyle(t,e)}));var n=this.getSelected(),r=this.__getStateTarget();n&&(null==r||r.setStyle(n.getStyle(),e))},getBuiltIn:function(t){return this.builtIn.get(t)},getBuiltInAll:function(){return this.builtIn.props},addBuiltIn:function(t,e){return this.builtIn.add(t,e)},getModelToStyle:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=n.skipAdd;if(r&&null!==(e=t)&&void 0!==e&&e.toHTML){var o,s=r.getConfig(),a=r.get('UndoManager'),l=r.get('CssComposer'),c=r.get('SelectorManager'),u=c?c.getConfig():{},h=s.devicePreviewMode?'':r.get('state'),f=t.get('classes'),d=f.getStyleable(),p=d.length,g=!u.componentFirst||n.useClasses,v={noCount:1},m={state:h,addOpts:v};if(a.stop(),p&&g){var y=r.getCurrentMedia();(o=l.get(d,h,y))||i||(o=l.add(d,h,y,{},v))}else if(s.avoidInlineStyle){var b=t.getId();!(o=l.getIdRule(b,m))&&!i&&(o=l.setIdRule(b,{},m)),t.is('wrapper')&&o.set('wrapper',1,v)}o&&(t=o),a.start()}return t},getParentRules:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state,r=e.component,i=this.em,s=[];if(i&&t){var a=r,l=i.get('CssComposer'),c=i.get('CodeManager').getGenerator('css'),u=t.toHTML?t:t.getComponent(),h={combination:!0,array:!0},f=[],d=[],p=[];u?(f=l.getRules("#".concat(u.getId())),p=(d=a?l.getRules(a.getSelectors().getFullName(h)):[]).concat(f)):(f=a?l.getRules("#".concat(a.getId())):[],d=l.getRules(t.getSelectors().getFullName(h)),p=f.concat(d));var g=p.filter((function(t){return(0,o.isUndefined)(n)?1:t.get('state')===n})).sort(c.sortRules).reverse();s=g.slice(g.indexOf(t)+1)}return s},addType:function(e,n){t.addType(e,n)},getType:function(e){return t.getType(e)},getTypes:function(){return t.getTypes()},createType:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,r=void 0===n?{}:n,i=e.view,o=void 0===i?{}:i,s=this.config,a=this.getType(t);if(a)return new a.view(fe({model:new a.model(r),config:s},o))},render:function(){var t=this.config,r=this.em,i=n&&n.el;return(n=new ue({el:i,em:r,config:t,collection:e,module:this})).render().el},_logNoSector:function(t){var e=this.em;e&&e.logWarning("'".concat(t,"' sector not found"))},__upProps:function(t){var n=this,r=this.getSelected();if(r){var i=this.model.get('component'),o=this.getSelectedParents(),s=r.getStyle(),a=o.map((function(t){return{target:t,style:t.getStyle()}}));e.map((function(e){e.getProperties().map((function(e){n.__upProp(e,s,a,t)}))})),e.forEach((function(t){var n=t.getProperties();n.forEach((function(t){var n=t.__checkVisibility({target:r,component:i,sectors:e});t.set('visible',n)}));var o=n.some((function(t){return t.isVisible()}));t.set('visible',o)}))}},__upProp:function(t,e,n,r){var i=this,o=t.getName(),s=e[o],a=Pe(s),l='stack'===t.getType(),c='composite'===t.getType(),u=fe(fe({},r),{},{__up:!0}),h=!c&&!l,f=l?t.__getLayersFromStyle(e):[],d=c?t.__getPropsFromStyle(e):{},p=a?s:null,g=null;if(l&&null===f||c&&null===d){var v=l?'__getLayersFromStyle':'__getPropsFromStyle',m=n.filter((function(e){return null!==t[v](e.style)}))[0];if(m){p=m.style[o],g=m.target;var y=t[v](m.style);l?f=y:d=y}}else if(!a){p=null;var b=n.filter((function(t){return Pe(t.style[o])}))[0];b&&(p=b.style[o],g=b.target)}if(t.__setParentTarget(g),h&&t.__getFullValue()!==p&&t.upValue(p,u),l&&t.__setLayers(f||[]),c){var w=t.getProperties();if(t.isDetached()){var x=t.__getPropsFromStyle(e,{byName:!0})||{},O=n.map((function(e){return fe(fe({},e),{},{style:t.__getPropsFromStyle(e.style,{byName:!0})||{}})}));w.map((function(t){return i.__upProp(t,x,O,r)}))}else t.__setProperties(d||{},u),t.getProperties().map((function(t){return t.__setParentTarget(g)}))}},destroy:function(){[t,e].forEach((function(t){t.reset(),t.stopListening()})),n&&n.remove(),[t,e,n].forEach((function(t){return{}})),this.em={},this.config={},this.builtIn={},this.model={}}})}},6388:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j,evAll:()=>_,evCustom:()=>E,evPfx:()=>T});var r=n(4942),i=n(9050);const o={stylePrefix:'trt-',appendTo:'',optionsTarget:[{value:!1},{value:'_blank'}]};var s=n(6602),a=n(885),l=n(2316),c=n.n(l),u=n(6183);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 f(t){for(var e=1;e").concat(e,"")},templateInput:function(){var t=this.clsField;return"
")},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.config,r=void 0===n?{}:n,i=this.model,o=this.eventCapture,s=i.target,l=i.attributes.type;this.config=r,this.em=r.em,this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.target=s;var c=this.ppfx;this.clsField="".concat(c,"field ").concat(c,"field-").concat(l),[['change:value',this.onValueChange],['remove',this.removeView]].forEach((function(e){var n=(0,a.Z)(e,2),r=n[0],o=n[1];i.off(r,o),t.listenTo(i,r,o)})),i.view=this,this.listenTo(i,'change:label',this.render),this.listenTo(i,'change:placeholder',this.rerender),this.events={},o.forEach((function(e){return t.events[e]='onChange'})),this.delegateEvents(),this.init()},getClbOpts:function(){return{component:this.target,trait:this.model,elInput:this.getInputElem()}},removeView:function(){this.remove(),this.removed()},init:function(){},removed:function(){},onRender:function(){},onUpdate:function(){},onEvent:function(){},onChange:function(t){var e=this.getInputElem();e&&!(0,i.isUndefined)(e.value)&&this.model.set('value',e.value),this.onEvent(f(f({},this.getClbOpts()),{},{event:t}))},getValueForTarget:function(){return this.model.get('value')},setInputValue:function(t){var e=this.getInputElem();e&&(e.value=t)},onValueChange:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n.fromTarget)this.setInputValue(t.get('value')),this.postUpdate();else{var r=this.getValueForTarget();t.setTargetValue(r,n)}},renderLabel:function(){var t=this.$el,e=this.target,n=this.getLabel(),r=this.templateLabel(e);this.createLabel&&(r=this.createLabel({label:n,component:e,trait:this})||''),t.find('[data-label]').append(r)},getLabel:function(){var t=this.em,e=this.model.attributes,n=e.label,r=e.name;return t.t("traitManager.traits.labels.".concat(r))||(0,u.capitalize)(n||r).replace(/-/g,' ')},getComponent:function(){return this.target},getInputEl:function(){if(!this.$input){var t=this.em,e=this.model,n=e,r=e.attributes.name,o=n.get('placeholder')||n.get('default')||'',s=n.get('type')||'text',a=n.get('min'),l=n.get('max'),c=this.getModelValue(),u=d("")),h=t.t("traitManager.traits.attributes.".concat(r))||{};u.attr(h),(0,i.isUndefined)(c)||(n.set({value:c},{silent:!0}),u.prop('value',c)),a&&u.prop('min',a),l&&u.prop('max',l),this.$input=u}return this.$input.get(0)},getInputElem:function(){var t=this.input,e=this.$input;return t||e&&e.get&&e.get(0)||this.getElInput()},getModelValue:function(){var t,e=this.model,n=this.target,r=e.get('name');if(e.get('changeProp'))t=n.get(r);else{var o=n.get('attributes');t=e.get('value')||o[r]}return(0,i.isUndefined)(t)?'':t},getElInput:function(){return this.elInput},renderField:function(){var t=this.$el,e=this.appendInput,n=this.model,r=t.find('[data-input]'),o=r[r.length-1],s=n.el;s||(s=this.createInput?this.createInput(this.getClbOpts()):this.getInputEl()),(0,i.isString)(s)?(o.innerHTML=s,this.elInput=o.firstChild):(e?o.appendChild(s):o.insertBefore(s,o.firstChild),this.elInput=s),n.el=this.elInput},hasLabel:function(){var t=this.model.attributes.label;return!this.noLabel&&!1!==t},rerender:function(){this.model.el=null,this.render()},postUpdate:function(){this.onUpdate(this.getClbOpts())},render:function(){var t=this.$el,e=this.pfx,n=this.ppfx,r=this.model.attributes,o=r.type,s=r.id,a=this.hasLabel&&this.hasLabel(),l="".concat(e,"trait");this.$input=null;var c="
\n ").concat(a?"
"):'',"\n
\n ").concat(this.templateInput?(0,i.isFunction)(this.templateInput)?this.templateInput(this.getClbOpts()):this.templateInput:'',"\n
\n
");return t.empty().append(c),a&&this.renderLabel(),this.renderField(),this.el.className="".concat(l,"__wrp ").concat(l,"__wrp-").concat(s),this.postUpdate(),this.onRender(this.getClbOpts()),this}}),g=s.Z.extend({ns:'Traits',itemView:p,reuseView:1,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{},n=e.stylePrefix||'',r=t.editor;this.config=e,this.em=r,this.pfx=n,this.ppfx=e.pStylePrefix||'',this.className="".concat(n,"traits"),this.listenTo(r,'component:toggled',this.updatedCollection)},updatedCollection:function(){var t=this.ppfx,e=this.className,n=this.em.getSelected();this.el.className="".concat(e," ").concat(t,"one-bg ").concat(t,"two-color"),this.collection=n?n.get('traits'):[],this.render()}});var v=c().$;const m=p.extend({init:function(){this.listenTo(this.model,'change:options',this.rerender)},templateInput:function(){var t=this.ppfx,e=this.clsField;return"
\n
\n
\n
\n
\n
")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.em,n=t.get('name'),r=t.get('options')||[],o=[],s='',this.$input=v(s);var a=t.getTargetValue(),l=o.indexOf(a)>=0?a:t.get('default');!(0,i.isUndefined)(l)&&this.$input.val(l)}return this.$input.get(0)}}),y=p.extend({appendInput:0,templateInput:function(){var t=this.ppfx,e=this.clsField;return"")},onChange:function(){var t=this.getInputElem().checked;this.model.set('value',this.getCheckedValue(t))},getCheckedValue:function(t){var e=t,n=this.model.attributes,r=n.valueTrue,o=n.valueFalse;return e&&!(0,i.isUndefined)(r)&&(e=r),e||(0,i.isUndefined)(o)||(e=o),e},getInputEl:function(){for(var t=!this.$input,e=arguments.length,n=new Array(e),r=0;r").concat(s,"")}});var k=n(9304);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 P(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(o,n);var r=this.config,s=new l.Model;this.model=s;var a=this.em,c=r.pStylePrefix;this.types=P({},t),c&&(r.stylePrefix="".concat(c).concat(r.stylePrefix));var u=(0,i.debounce)((function(){return e.__upSel()}));s.listenTo(a,'component:toggled',u);var h=(0,i.debounce)((function(){return e.__onUp()}));return s.listenTo(a,'trait:update',h),this},__upSel:function(){this.select(this.em.getSelected())},__onUp:function(){this.select(this.getSelected())},select:function(t){var e=t?t.getTraits():[];this.model.set({component:t,traits:e}),this.__trgCustom()},getSelected:function(){return this.model.get('component')||null},getCurrent:function(){return this.model.get('traits')||[]},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},postRender:function(){this.__appendTo()},getTraitsViewer:function(){return this.view},addType:function(t,e){var n=this.getType('text');this.types[t]=n.extend(e)},getType:function(t){return this.getTypes()[t]},getTypes:function(){return this.types},render:function(){var t=this.view,e=this.getConfig(),n=t&&t.el;return(t=new g({el:n,collection:[],editor:e.em,config:e})).itemsView=this.getTypes(),t.updatedCollection(),this.view=t,t.el},destroy:function(){this.__destroy()}})}},8202:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(2982),i=n(4942),o=n(3410),s=n.n(o),a=n(9050);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=c(c({},o),f),t=n.em,this.em=t,n._disable&&(n=c(c({},n),{},{maximumStackLength:0}));var d=!0;return(e=new(s())(c({track:!0,register:[]},n))).changeUndoType('change',{condition:function(t){var e=t.get('_undo');if(e){var n=t.get('_undoexc');if((0,a.isArray)(n)&&u(t).some((function(t){return n.indexOf(t)>=0})))return!1;if((0,a.isBoolean)(e))return!0;if((0,a.isArray)(e)&&u(t).some((function(t){return e.indexOf(t)>=0})))return!0}return!1},on:function(t,e,n){!i&&(i=t.previousAttributes());var r=n||e||{};if(r.noUndo&&setTimeout((function(){i=null})),!l(r)){var o=t.toJSON({fromUndo:d}),s={object:t,before:i,after:o};if(i=null,!(0,a.isEmpty)(o))return s}}}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&h.isRegistered(e))return{object:e,before:void 0,after:t,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&h.isRegistered(e))return{object:e,before:t,after:void 0,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('reset',{undo:function(t,e){t.reset(e,{fromUndo:d})},redo:function(t,e,n){t.reset(n,{fromUndo:d})},on:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l(e)&&h.isRegistered(t))return{object:t,before:e.previousModels,after:(0,r.Z)(t.models),options:c(c({},e),{},{fromUndo:d})}}}),e.on('undo redo',(function(){t.trigger('change:canvasOffset'),t.getSelectedAll().map((function(t){return t.trigger('rerender:layer')}))})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},postLoad:function(){n.trackSelection&&t&&this.add(t.get('selected'))},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.undo(n),this},undoAll:function(){return e.undoAll(),this},redo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.redo(n),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable('undo')},hasRedo:function(){return e.isAvailable('redo')},isRegistered:function(t){return!!this.getInstance().objectRegistry.isRegistered(t)},getStack:function(){return e.stack},getStackGroup:function(){var t=[],e=[];return this.getStack().forEach((function(n){var r=n.get('magicFusionIndex');e.indexOf(r)<0&&(e.push(r),t.push(n))})),t},skip:function(t){this.stop(),t(),this.start()},getGroupedStack:function(){var t={},e=this.getStack();return e.forEach((function(e,n){var r=e.get('magicFusionIndex'),i=function(t,e){var n=t.attributes,r=n.type,i=n.after,o=n.before,s=n.object,a=n.options;return{index:e,type:r,after:i,before:o,object:s,options:void 0===a?{}:a}}(e,n);t[r]?t[r].push(i):t[r]=[i]})),Object.keys(t).map((function(e){var n=t[e];return{index:n[n.length-1].index,actions:n,labels:(0,a.unique)(n.reduce((function(t,e){var n,r=null===(n=e.options)||void 0===n?void 0:n.action;return r&&t.push(r),t}),[]))}}))},goToGroup:function(t){var e=this;if(t){var n=this.getPointer(),r=t.index-n;(0,a.times)(Math.abs(r),(function(){e[r<0?'undo':'redo'](!1)}))}},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,i].forEach((function(t){return{}})),this.em={}}}}},5610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var r=n(4942),i=n(5671),o=n(3144),s=n(9050),a=n(6183);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.Z)(this,t),this.opts={container:null,onStart:null,onDrag:null,onEnd:null,setPosition:null,getPosition:null,guidesStatic:null,guidesTarget:null,snapOffset:5,doc:0,scale:1},(0,s.bindAll)(this,'drag','stop','keyHandle','handleScroll'),this.setOptions(e),this.delta={x:0,y:0},this}return(0,o.Z)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=c(c({},this.opts),t)}},{key:"toggleDrag",value:function(t){var e=this.getDocumentEl(),n=this.getContainerEl(),r=this.getWindowEl(),i=t?'on':'off',o={on:a.on,off:a.off};o[i](n,'mousemove dragover',this.drag),o[i](e,'mouseup dragend touchend',this.stop),o[i](e,'keydown',this.keyHandle),o[i](r,'scroll',this.handleScroll)}},{key:"handleScroll",value:function(){var t=this.lastScroll,e=this.delta,n=this.getScrollInfo(),r={x:n.x-t.x,y:n.y-t.y};this.move(e.x+r.x,e.y+r.y),this.lastScrollDiff=r}},{key:"start",value:function(t){var e=this.opts,n=e.onStart;this.toggleDrag(1),this.startPointer=this.getPointerPos(t),this.guidesStatic=(0,s.result)(e,'guidesStatic')||[],this.guidesTarget=(0,s.result)(e,'guidesTarget')||[],(0,s.isFunction)(n)&&n(t,this),this.startPosition=this.getStartPosition(),this.lastScrollDiff={x:0,y:0},this.globScrollDiff={x:0,y:0},this.drag(t)}},{key:"drag",value:function(t){var e=this,n=this.opts,r=this.lastScrollDiff,i=this.globScrollDiff,o=n.onDrag,a=this.startPointer,l=this.getPointerPos(t),u={x:i.x+r.x,y:i.y+r.y};this.globScrollDiff=u;var h={x:l.x-a.x+u.x,y:l.y-a.y+u.y};this.lastScrollDiff={x:0,y:0};var f=this.lockedAxis;'x'===(f=t.shiftKey?!f&&this.detectAxisLock(h.x,h.y):null)?h.x=a.x:'y'===f&&(h.y=a.y);var d=function(r){['x','y'].forEach((function(t){return r[t]=r[t]*(0,s.result)(n,'scale')})),e.delta=r,e.move(r.x,r.y),(0,s.isFunction)(o)&&o(t,e)},p=c({},h);if(this.currentPointer=l,this.lockedAxis=f,this.lastScroll=this.getScrollInfo(),d(h),this.guidesTarget.length){var g=this.snapGuides(p),v=g.newDelta,m=g.trgX,y=g.trgY;(m||y)&&d(v)}0===t.which&&this.stop(t)}},{key:"snapGuides",value:function(t){var e=this,n=t,r=this.trgX,i=this.trgY;return this.guidesTarget.forEach((function(n){n.x&&e.trgX||n.y&&e.trgY||(n.active=0,e.guidesStatic.forEach((function(o){if(!(n.y&&o.x||n.x&&o.y)){var a=n.y&&o.y,l=a?'y':'x',c=n[l],u=o[l],h=t[l],f=a?i:r;if(e.isPointIn(c,u)&&(0,s.isUndefined)(f)){var d=h-(c-u);e.setGuideLock(n,d)}}})))})),r=this.trgX,i=this.trgY,['x','y'].forEach((function(r){var i=r.toUpperCase(),o=e["trg".concat(i)];o&&!e.isPointIn(t[r],o.lock)&&(e.setGuideLock(o,null),o=null),o&&!(0,s.isUndefined)(o.lock)&&(n[r]=o.lock)})),{newDelta:n,trgX:this.trgX,trgY:this.trgY}}},{key:"isPointIn",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.offset,i=r||this.opts.snapOffset;return t>=e&&t<=e+i||t<=e&&t>=e-i}},{key:"setGuideLock",value:function(t,e){var n=(0,s.isUndefined)(t.x)?'Y':'X',r="trg".concat(n);return null!==e?(t.active=1,t.lock=e,this[r]=t):(delete t.active,delete t.lock,delete this[r]),t}},{key:"stop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.delta,r=e.cancel,i=r?0:n.x,o=r?0:n.y;this.toggleDrag(),this.lockedAxis=null,this.move(i,o,1);var a=this.opts.onEnd;(0,s.isFunction)(a)&&a(t,this,{cancelled:r})}},{key:"keyHandle",value:function(t){(0,a.isEscKey)(t)&&this.stop(t,{cancel:1})}},{key:"move",value:function(t,e,n){var r=this.el,i=this.opts,o=this.startPosition;if(o){var a=i.setPosition,l=o.x+t,c=o.y+e;this.position={x:l,y:c,end:n},(0,s.isFunction)(a)&&a(this.position),r&&(r.style.left="".concat(l,"px"),r.style.top="".concat(c,"px"))}}},{key:"getContainerEl",value:function(){var t=this.opts.container;return t?[t]:this.getDocumentEl()}},{key:"getWindowEl",value:function(){return this.getContainerEl().map((function(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}))}},{key:"getDocumentEl",value:function(t){var e=this.opts.doc;if(t=t||this.el,!this.docs){var n=[document];t&&n.push(t.ownerDocument),e&&n.push(e),this.docs=n}return this.docs}},{key:"getPointerPos",value:function(t){var e=this.opts.getPointerPosition,n=(0,a.getPointerEvent)(t);return e?e(t):{x:n.clientX,y:n.clientY}}},{key:"getStartPosition",value:function(){var t=this.el,e=this.opts.getPosition,n={x:0,y:0};return(0,s.isFunction)(e)?n=e():t&&(n={x:parseFloat(t.style.left),y:parseFloat(t.style.top)}),n}},{key:"getScrollInfo",value:function(){var t=this.opts.doc,e=t&&t.body;return{y:e?e.scrollTop:0,x:e?e.scrollLeft:0}}},{key:"detectAxisLock",value:function(t,e){var n=t,r=e,i=Math.abs(n),o=Math.abs(r);return r>=i||r<=-i?'x':n>o||n<-o?'y':void 0}}]),t}()},2579:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>pt});var r='undefined'!=typeof document?document:null,i='undefined'!=typeof window?window:null,o=Array.prototype,s=o.filter,a=o.indexOf,l=o.map,c=o.push,u=o.reverse,h=o.slice,f=o.splice,d=/^#[\w-]*$/,p=/^\.[\w-]*$/,g=/<.+>/,v=/^\w+$/;function m(t,e){return void 0===e&&(e=r),p.test(t)?e.getElementsByClassName(t.slice(1)):v.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function y(t,e){if(void 0===e&&(e=r),t){if(t.__cash)return t;var n=t;if(T(t)){if(e.__cash&&(e=e[0]),!(n=d.test(t)?e.getElementById(t.slice(1)):g.test(t)?ht(t):m(t,e)))return}else if(_(t))return this.ready(t);(n.nodeType||n===i)&&(n=[n]),this.length=n.length;for(var o=0,s=this.length;o=0})):n.value=i}))},w.clone=function(){return this.map((function(t,e){return e.cloneNode(!0)}))},w.detach=function(){return this.each((function(t,e){e.parentNode&&e.parentNode.removeChild(e)}))};var lt,ct=/^\s*<(\w+)[^>]*>/,ut=/^\s*<(\w+)\s*\/?>(?:<\/\1>)?\s*$/;function ht(t){if(function(){if(!lt){var t=r.createElement('table'),e=r.createElement('tr');lt={'*':r.createElement('div'),tr:r.createElement('tbody'),td:e,th:e,thead:t,tbody:t,tfoot:t}}}(),!T(t))return[];if(ut.test(t))return[r.createElement(RegExp.$1)];var e=ct.test(t)&&RegExp.$1,n=lt[e]||lt['*'];return n.innerHTML=t,b(n.childNodes).detach().get()}function ft(t,e,n){if(void 0!==e){var r=T(e);!r&&e.length?k(e,(function(e){return ft(t,e,n)})):k(t,r?function(t){t.insertAdjacentHTML(n?'afterbegin':'beforeend',e)}:function(t,r){return function(t,e,n){n?t.insertBefore(e,t.childNodes[0]):t.appendChild(e)}(t,r?e.cloneNode(!0):e,n)})}}b.parseHTML=ht,w.empty=function(){var t=this[0];if(t)for(;t.firstChild;)t.removeChild(t.firstChild);return this},w.append=function(){var t=this;return k(arguments,(function(e){ft(t,e)})),this},w.appendTo=function(t){return ft(b(t),this),this},w.html=function(t){if(void 0===t)return this[0]&&this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t,n){n.innerHTML=e}))},w.insertAfter=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n.nextSibling)}))})),this},w.after=function(){var t=this;return k(u.apply(arguments),(function(e){u.apply(b(e).slice()).insertAfter(t)})),this},w.insertBefore=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n)}))})),this},w.before=function(){var t=this;return k(arguments,(function(e){b(e).insertBefore(t)})),this},w.prepend=function(){var t=this;return k(arguments,(function(e){ft(t,e,!0)})),this},w.prependTo=function(t){return ft(b(t),u.apply(this.slice()),!0),this},w.remove=function(){return this.detach().off()},w.replaceWith=function(t){var e=this;return this.each((function(n,r){var i=r.parentNode;if(i){var o=n?b(t).clone():b(t);if(!o[0])return e.remove(),!1;i.replaceChild(o[0],r),b(o[0]).after(o.slice(1))}}))},w.replaceAll=function(t){return b(t).replaceWith(this),this},w.text=function(t){return void 0===t?this[0]?this[0].textContent:'':this.each((function(e,n){n.textContent=t}))};var dt=r&&r.documentElement;w.offset=function(){var t=this[0];if(t){var e=t.getBoundingClientRect();return{top:e.top+i.pageYOffset-dt.clientTop,left:e.left+i.pageXOffset-dt.clientLeft}}},w.offsetParent=function(){return b(this[0]&&this[0].offsetParent)},w.position=function(){var t=this[0];if(t)return{left:t.offsetLeft,top:t.offsetTop}},w.children=function(t){var e=[];return this.each((function(t,n){c.apply(e,n.children)})),e=b(L(e)),t?e.filter((function(e,n){return P(n,t)})):e},w.contents=function(){var t=[];return this.each((function(e,n){c.apply(t,'IFRAME'===n.tagName?[n.contentDocument]:n.childNodes)})),b(t.length&&L(t))},w.find=function(t){for(var e=[],n=0,r=this.length;n{"use strict";n.d(e,{G1:()=>o,Mx:()=>s,L_:()=>a,sE:()=>l,FW:()=>c,pn:()=>u,dL:()=>h,$Q:()=>f,R3:()=>d,ut:()=>p,rw:()=>g,t3:()=>v,SJ:()=>m});var r=n(9050),i='attributes',o='transitionend oTransitionEnd transitionend webkitTransitionEnd',s=function(t){return t&&9===t.nodeType},a=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l=function(t,e){return t.querySelectorAll(e)},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t&&t.setAttribute&&(0,r.each)(e,(function(e,n){return t.setAttribute(n,e)}))},u=function(t){return t&&!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},h=function(t,e){t.parentNode.replaceChild(e,t)},f=function(t,e,n){var i=t.childNodes,o=i.length,s=(0,r.isUndefined)(n)?o:n;(0,r.isString)(e)&&(t.insertAdjacentHTML('beforeEnd',e),e=t.lastChild,t.removeChild(e)),s>=o?t.appendChild(e):t.insertBefore(e,i[s])},d=function(t,e){return f(t,e)},p=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2?arguments[2]:void 0,i=document.createElement(t);return e&&(0,r.each)(e,(function(t,e){return i.setAttribute(e,t)})),n&&((0,r.isString)(n)?i.innerHTML=n:i.appendChild(n)),i},g=function(t){return document.createTextNode(t)},v=function(t,e){var n,r=t.type;try{n=new window[e](r,t)}catch(t){(n=document.createEvent(e)).initEvent(r,!0,!0)}return n._parentEvent=t,0===r.indexOf('key')&&(n.keyCodeVal=t.keyCode,['keyCode','which'].forEach((function(t){Object.defineProperty(n,t,{get:function(){return this.keyCodeVal}})}))),n},m=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Array.isArray(e)?e:[e];n.forEach((function(e){var n=e.tag||'div',o=e[i]||{},s=document.createElement(n);(0,r.each)(o,(function(t,e){s.setAttribute(e,t)})),t.appendChild(s)}))}},9661:(t,e,n)=>{"use strict";n.d(e,{Z:()=>m});var r=n(1002);const i=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){return e.reject(n)}))}))};const o=function(t){return new this((function(e,n){if(!t||void 0===t.length)return n(new TypeError((0,r.Z)(t)+' '+t+' is not iterable(cannot read property Symbol(Symbol.iterator))'));var i=Array.prototype.slice.call(t);if(0===i.length)return e([]);var o=i.length;function s(t,n){if(n&&('object'===(0,r.Z)(n)||'function'==typeof n)){var a=n.then;if('function'==typeof a)return void a.call(n,(function(e){s(t,e)}),(function(n){i[t]={status:'rejected',reason:n},0==--o&&e(i)}))}i[t]={status:'fulfilled',value:n},0==--o&&e(i)}for(var a=0;a{"use strict";n.d(e,{Z:()=>i});var r=n(6183);function i(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{"use strict";n.r(e),n.d(e,{default:()=>k});var r=n(4942),i=n(5610),o=n(2316),s=n.n(o),a=n(9050),l=n(6183);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},a=this.em,c=this.itemSel,u=this.containerSel,h=this.plh,f=this.getContainerEl(s.container),d=this.getDocuments(t);this.dropModel=null,this.target=null,this.prevTarget=null,this.moved=0,t&&!this.matches(t,"".concat(c,", ").concat(u))&&(t=this.closest(t,c)),this.sourceEl=t,h||(this.plh=this.createPlaceholder(),f.appendChild(this.plh)),t&&((o=this.getSourceModel(t))&&o.set&&o.set('status','freezed'),this.srcModel=o),(0,l.on)(f,'mousemove dragover',this.onMove),(0,l.on)(d,'mouseup dragend touchend',this.endMove),(0,l.on)(d,'keydown',this.rollback),this.onStart({sorter:this,target:o,parent:o&&(null===(e=(n=o).parent)||void 0===e?void 0:e.call(n)),index:o&&(null===(r=(i=o).index)||void 0===r?void 0:r.call(i))}),null==a||a.clearSelection(),this.toggleSortCursor(1),null==a||a.trigger('sorter:drag:start',t,o)},getTargetModel:function(t){var e=t||this.target;return h(e).data('model')},getSourceModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.target,i=n.avoidChildren,o=void 0===i?1:i,s=this.em,a=this.sourceEl,l=t||a,c=this.dropModel,f=this.dropContent,d=function(t){return t&&r&&t.opt&&t.opt.avoidChildren&&e.isTextableActive(t,r)};if(f&&s){if(d(c)&&(c=null),!c){var p=s.get('DomComponents').getComponents(),g={avoidChildren:o,avoidStore:1,avoidUpdateStyle:1},v=p.add(f,u(u({},g),{},{temporary:1}));if(c=(c=p.remove(v,g))instanceof Array?c[0]:c,this.dropModel=c,d(c))return this.getSourceModel(l,{target:r,avoidChildren:0})}return c}return l&&h(l).data('model')},selectTargetModel:function(t,e){if(!(t instanceof s().Collection||e&&e===t)){var n=this.targetModel;n&&n!==this.srcModel&&n.set('status',''),t&&t.set&&(t.set('status','selected-parent'),this.targetModel=t)}},onMove:function(t){var e=t,n=this.em,r=this.onMoveClb,i=this.plh,o=this.customTarget;this.moved=1;var s=i.style.display;s&&'none'!==s||(i.style.display='block');var l=this.offset(this.el);this.elT=this.wmargin?Math.abs(l.top):l.top,this.elL=this.wmargin?Math.abs(l.left):l.left;var c=t.pageY-this.elT+this.el.scrollTop,u=t.pageX-this.elL+this.el.scrollLeft;if(this.canvasRelative&&n){var f=n.get('Canvas').getMouseRelativeCanvas(t,{noScroll:1});u=f.x,c=f.y}this.rX=u,this.rY=c,this.eventMove=t;var d=this.getSourceModel(),p=o?o({sorter:this,event:t}):t.target,g=this.dimsFromTarget(p,u,c),v=this.target,m=v&&this.getTargetModel(v);if(this.selectTargetModel(m,d),m||(i.style.display='none'),v){this.lastDims=g;var y=this.findPosition(g,u,c);this.isTextableActive(d,m)?(this.activeTextModel=m,i.style.display='none',this.lastPos=y,this.updateTextViewCursorPosition(e)):(this.disableTextable(),this.activeTextModel=null,this.lastPos&&this.lastPos.index==y.index&&this.lastPos.method==y.method||(this.movePlaceholder(this.plh,g,y,this.prevTargetDim),this.$plh||(this.$plh=h(this.plh)),this.canvasRelative||(this.offTop&&this.$plh.css('top','+='+this.offTop+'px'),this.offLeft&&this.$plh.css('left','+='+this.offLeft+'px')),this.lastPos=y)),(0,a.isFunction)(r)&&r({event:t,target:d,parent:m,index:y.index+('after'==y.method?1:0)}),n&&n.trigger('sorter:drag',{target:v,targetModel:m,sourceModel:d,dims:g,pos:y,x:u,y:c})}},isTextableActive:function(t,e){return t&&t.get&&t.get('textable')&&e&&e.is('text')},disableTextable:function(){var t=this.activeTextModel;t&&t.getView().disableEditing(),this.setContentEditable(t,!1)},isInFlow:function(t,e){if(!t)return!1;e=e||document.body;var n=t;return n.offsetHeight,!!this.styleInFlow(n,e)},styleInFlow:function(t,e){if(!(0,l.isTextNode)(t)){var n=t.style||{},r=h(t),i=e&&h(e);if(!n.overflow||'visible'===n.overflow){var o=r.css('float');if(!(o&&'none'!==o||i&&'flex'==i.css('display')&&'column'!==i.css('flex-direction'))){switch(n.position){case'static':case'relative':case'':break;default:return}switch(t.tagName){case'TR':case'TBODY':case'THEAD':case'TFOOT':return!0}switch(r.css('display')){case'block':case'list-item':case'table':case'flex':return!0}}}}},validTarget:function(t,e){var n=this.getTargetModel(t),r=this.getSourceModel(e,{target:n}),i={valid:!0,src:e=r&&r.view&&r.view.el,srcModel:r,trg:t=n&&n.view&&n.view.el,trgModel:n};if(!e||!t)return i.valid=!1,i;var o=r.get('draggable');if((0,a.isFunction)(o)){var l=o(r,n);i.dragInfo=l,i.draggable=l,o=l}else o=o instanceof Array?o.join(', '):o,i.dragInfo=o,o=(0,a.isString)(o)?this.matches(t,o):o,i.draggable=o;var c=n.get('droppable');if((0,a.isFunction)(c)){var u=c(r,n);i.droppable=u,i.dropInfo=u,c=u}else c=(c=c instanceof s().Collection?1:c)instanceof Array?c.join(', '):c,i.dropInfo=c,c=(0,a.isString)(c)?this.matches(e,c):c,c=o&&this.isTextableActive(r,n)?1:c,i.droppable=c;return c&&o||(i.valid=!1),i},dimsFromTarget:function(t,e,n){var r=this.em,i=[];if(!t)return i;if(this.matches(t,"".concat(this.itemSel,", ").concat(this.containerSel))||(t=this.closest(t,this.itemSel)),this.draggable instanceof Array&&(t=this.closest(t,this.draggable.join(','))),!t)return i;if(this.prevTarget&&this.prevTarget!=t&&(this.prevTarget=null),!this.prevTarget){this.targetP=this.closest(t,this.containerSel);var o=this.validTarget(t);if(r&&r.trigger('sorter:drag:validation',o),!o.valid&&this.targetP)return this.dimsFromTarget(this.targetP,e,n);this.prevTarget=t,this.prevTargetDim=this.getDim(t),this.cacheDimsP=this.getChildrenDim(this.targetP),this.cacheDims=this.getChildrenDim(t)}if(this.prevTarget==t&&(i=this.cacheDims),this.target=this.prevTarget,this.nearBorders(this.prevTargetDim,e,n)||!this.nested&&!this.cacheDims.length){var s=this.targetP;s&&this.validTarget(s).valid&&(i=this.cacheDimsP,this.target=s)}return this.lastPos=null,i},getTargetFromEl:function(t){var e,n=t,r=this.targetPrev,i=this.em,o=this.containerSel,s=this.itemSel;if(this.matches(n,"".concat(s,", ").concat(o))||(n=this.closest(n,s)),this.draggable instanceof Array&&(n=this.closest(n,this.draggable.join(','))),r&&r!=n&&(this.targetPrev=''),!this.targetPrev){e=this.closest(n,o);var a=this.validTarget(n);if(i&&i.trigger('sorter:drag:validation',a),!a.valid&&e)return this.getTargetFromEl(e);this.targetPrev=n}return this.nearElBorders(n)&&(e=this.closest(n,o))&&this.validTarget(e).valid&&(n=e),n},nearElBorders:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body,r=this.getCurrentPos(),i=r.x,o=r.y,s=e.top+n.scrollTop,a=e.left+n.scrollLeft,l=e.width,c=e.height;if(os+c-10||ia+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,r,i,o=this.em,s=this.canvasRelative,a=o&&o.get('Canvas'),l=a?a.getElementOffsets(t):{};if(s&&o){var c=a.getElementPos(t,{noScroll:1});e=c.top,n=c.left,r=c.height,i=c.width}else{var u=this.offset(t);e=this.relative?t.offsetTop:u.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:u.left-(this.wmargin?-1:1)*this.elL,r=t.offsetHeight,i=t.offsetWidth}return{top:e,left:n,height:r,width:i,offsets:l}},getChildrenDim:function(t){var e=this,n=[];if(!t)return n;var r=this.getTargetModel(t);if(r&&r.view&&!this.ignoreViewChildren){var i=r.getCurrentView?r.getCurrentView():r.view;t=i.getChildrenContainer()}return(0,a.each)(t.children,(function(r,i){var o=(0,l.getModel)(r,h),s=o&&o.index?o.index():i;if((0,l.isTextNode)(r)||e.matches(r,e.itemSel)){var a=e.getDim(r),c=e.direction;c='v'==c||'h'!=c&&e.isInFlow(r,t),a.dir=c,a.el=r,a.indexEl=s,n.push(a)}})),n},nearBorders:function(t,e,n){var r=0,i=this.borderOffset,o=e||0,s=n||0,a=t.top,l=t.left,c=t.height,u=t.width;return(a+i>s||s>a+c-i||l+i>o||o>l+u-i)&&(r=1),!!r},findPosition:function(t,e,n){for(var r={index:0,indexEl:0,method:'before'},i=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,f=t.length;ho||s&&l>=s||i&&g+mO&&(w.at=d-1))}r&&(x?(delete w.at,i=v.getView().insertComponent(r,w)):i=g.add(r,w)),this.dropContent=null,this.prevTarget=null}else if(o){var k=p.dropInfo||(null==v?void 0:v.get('droppable')),S=p.dragInfo||(null==m?void 0:m.get('draggable'));!g&&f.push('Target collection not found'),!b&&k&&f.push("Target is not droppable, accepts [".concat(k,"]")),!y&&S&&f.push("Component not draggable, acceptable by [".concat(S,"]")),o.logWarning('Invalid target position',{errors:f,model:m,context:'sorter',target:v})}return null==o||o.trigger('sorter:drag:end',{targetCollection:g,modelToDrop:r,warns:f,validResult:p,dst:t,srcEl:u}),i},rollback:function(t){(0,l.off)(this.getDocuments(),'keydown',this.rollback),27==(t.which||t.keyCode)&&(this.moved=0,this.endMove())}});var p=n(5671),g=n(3144);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Z)(this,t),this.setOptions(e),(0,a.bindAll)(this,'handleKeyDown','handleMouseDown','move','stop'),this}return(0,g.Z)(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,a.defaults)(t,y),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||'',n=t.appendTo||document.body,r=this.container;for(r||((r=document.createElement('div')).className="".concat(e,"resizer-c"),n.appendChild(r),this.container=r);r.firstChild;)r.removeChild(r.firstChild);var i={};for(var o in['tl','tc','tr','cl','cr','bl','bc','br'].forEach((function(e){return i[e]=t[e]?function(t,e){var n=e.prefix||'',r=document.createElement('i');return r.className=n+'resizer-h '+n+'resizer-h-'+t,r.setAttribute('data-'+n+'handler',t),r}(e,t):''})),i){var s=i[o];s&&r.appendChild(s)}this.handlers=i,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd,this.onUpdateContainer=t.onUpdateContainer}},{key:"toggleFrames",value:function(t){if(this.opts.silentFrames){var e=document.querySelectorAll('iframe');(0,a.each)(e,(function(e){return e.style.pointerEvents=t?'none':''}))}}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getParentEl",value:function(){return this.el.parentElement}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.posFetcher||'';return n?n(t,e):b(t)}},{key:"focus",value:function(t){t&&t===this.el||(this.el=t,this.updateContainer({forceShow:1}),(0,l.on)(this.getDocumentEl(),'mousedown',this.handleMouseDown))}},{key:"blur",value:function(){this.container.style.display='none',this.el&&((0,l.off)(this.getDocumentEl(),'mousedown',this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this.getParentEl(),r=this.opts||{},i='data-'+r.prefix+'handler',o=this.getElementPos(e,{target:'el'}),s=this.getElementPos(n);this.handlerAttr=t.target.getAttribute(i),this.clickedHandler=t.target,this.startDim={t:o.top,l:o.left,w:o.width,h:o.height},this.rectDim={t:o.top,l:o.left,w:o.width,h:o.height},this.startPos={x:t.clientX,y:t.clientY},this.parentDim={t:s.top,l:s.left,w:s.width,h:s.height};var c=this.getDocumentEl();(0,l.on)(c,'mousemove',this.move),(0,l.on)(c,'keydown',this.handleKeyDown),(0,l.on)(c,'mouseup',this.stop),(0,a.isFunction)(this.onStart)&&this.onStart(t,{docs:c,config:r,el:e,resizer:this}),this.toggleFrames(1),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,r=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=r,this.delta={x:r.x-this.startPos.x,y:r.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,l.off)(n,'mousemove',this.move),(0,l.off)(n,'keydown',this.handleKeyDown),(0,l.off)(n,'mouseup',this.stop),this.updateRect(1),this.toggleFrames(),(0,a.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this.opts,r=this.rectDim,i=this.updateTarget,o=this.getSelectedHandler(),s=n.unitHeight,l=n.unitWidth,c=n.keyWidth,u=n.keyHeight;if((0,a.isFunction)(i))i(e,r,{store:t,selectedHandler:o,resizer:this,config:n});else{var h=e.style;h[c]=r.w+l,h[u]=r.h+s}this.updateContainer()}},{key:"updateContainer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.opts,n=this.container,r=this.el,i=n.style;!e.avoidContainerUpdate&&r&&t.forceShow&&(i.display='block'),this.onUpdateContainer({el:n,resizer:this,opts:m(m({},e),t)})}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler='',this.blur())}},{key:"calc",value:function(t){var e,n=this.opts||{},r=n.step,i=this.startDim,o=n.minDim,s=n.maxDim,a=t.delta.x,c=t.delta.y,u=this.parentDim.w,h=this.parentDim.h,f=this.opts.unitWidth,d=this.opts.unitHeight,p='%'===f?i.w/100*u:i.w,g='%'===d?i.h/100*h:i.h,v={t:0,l:0,w:p,h:g};if(t){var m=t.handlerAttr;~m.indexOf('r')&&(e='%'===f?(0,l.normalizeFloat)((p+a*r)/u*100,.01):(0,l.normalizeFloat)(p+a*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.w=e),~m.indexOf('b')&&(e='%'===d?(0,l.normalizeFloat)((g+c*r)/h*100,.01):(0,l.normalizeFloat)(g+c*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.h=e),~m.indexOf('l')&&(e='%'===f?(0,l.normalizeFloat)((p-a*r)/u*100,.01):(0,l.normalizeFloat)(p-a*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.w=e),~m.indexOf('t')&&(e='%'===d?(0,l.normalizeFloat)((g-c*r)/h*100,.01):(0,l.normalizeFloat)(g-c*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.h=e);var y=n.ratioDefault?!t.keys.shift:t.keys.shift;if(m.indexOf('c')<0&&y){var b=i.w/i.h;v.w/v.h>b?v.h=Math.round(v.w/b):v.w=Math.round(v.h*b)}return~m.indexOf('l')&&(v.l=i.w-v.w),~m.indexOf('t')&&(v.t=i.h-v.h),v}}}]),t}();const x={init:function(t){return new w(t)}};function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{isDef:()=>s,hasWin:()=>a,getGlobal:()=>l,toLowerCase:()=>c,getUiClass:()=>f,isCommentNode:()=>k,isTaggableNode:()=>S,find:()=>P,escape:()=>_,on:()=>g,off:()=>v,hasDnd:()=>x,upFirst:()=>y,matches:()=>h,getModel:()=>T,getElRect:()=>E,camelCase:()=>b,isTextNode:()=>C,getKeyCode:()=>D,getKeyChar:()=>M,isEscKey:()=>A,isEnterKey:()=>L,getElement:()=>O,shallowDiff:()=>p,normalizeFloat:()=>w,getPointerEvent:()=>j,getUnitFromValue:()=>m,capitalize:()=>Z,getViewEl:()=>V,setViewEl:()=>H,appendStyles:()=>d,isObject:()=>R,isEmptyObj:()=>N,isComponent:()=>I,createId:()=>B,isRule:()=>F});var r=n(1002),i=n(2982),o=n(9050),s=function(t){return void 0!==t},a=function(){return'undefined'!=typeof window},l=function(){return'undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:n.g},c=function(t){return(t||'').toLowerCase()},u=a()?window.Element.prototype:{},h=u.matches||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector,f=function(t,e){var n=t.getConfig(),r=n.stylePrefix;return[n.customUI&&"".concat(r,"cui"),e].filter((function(t){return t})).join(' ')},d=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isArray)(e)?(0,i.Z)(e):[e];if(r.length){var s=r.shift();if(s&&(!n.unique||!document.querySelector("link[href=\"".concat(s,"\"]")))){var a=document,l=a.head,c=document.createElement('link');c.href=s,c.rel='stylesheet',n.prepand?l.insertBefore(c,l.firstChild):l.appendChild(c)}t(r)}},p=function(t,e){var n={},r=(0,o.keys)(e);for(var i in t)if(t.hasOwnProperty(i)){var s=t[i],a=e[i];r.indexOf(i)>=0?s!==a&&(n[i]=a):n[i]=null}for(var l in e)e.hasOwnProperty(l)&&(0,o.isUndefined)(t[l])&&(n[l]=e[l]);return n},g=function(t,e,n,r){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=function(i){t.forEach((function(t){return t&&t.addEventListener(e[i],n,r)}))},o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var i=e.toString().split('.')[1];r=i?i.length:0}return r?parseFloat(t.toFixed(r)):t},x=function(t){return'draggable'in document.createElement('i')&&(t?t.get('Config').nativeDnD:1)},O=function(t){return(0,o.isElement)(t)||C(t)?t:t&&t.getEl?t.getEl():void 0},C=function(t){return t&&3===t.nodeType},k=function(t){return t&&8===t.nodeType},S=function(t){return t&&!C(t)&&!k(t)},P=function(t,e){var n=null;return t.some((function(r,i){return e(r,i,t)?(n=r,1):0})),n},_=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return"".concat(t).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/`/g,'`')},T=function(t,e){var n=t;return!e&&t&&t.__cashData?n=t.__cashData.model:(0,o.isElement)(t)&&(n=e(t).data('model')),n},E=function(t){var e,n={top:0,left:0,width:0,height:0};if(!t)return n;if(C(t)){var r=document.createRange();r.selectNode(t),e=r.getBoundingClientRect(),r.detach()}return e||(t.getBoundingClientRect?t.getBoundingClientRect():n)},j=function(t){return t.touches&&t.touches[0]?t.touches[0]:t},D=function(t){return t.which||t.keyCode},M=function(t){return String.fromCharCode(D(t))},A=function(t){return 27===D(t)},L=function(t){return 13===D(t)},R=function(t){return null!==t&&!Array.isArray(t)&&'object'===(0,r.Z)(t)},N=function(t){return Object.keys(t).length<=0},Z=function(t){return t&&t.charAt(0).toUpperCase()+t.substring(1)},I=function(t){return t&&t.toHTML},F=function(t){return t&&t.toCSS},V=function(t){return t.__gjsv},H=function(t,e){t.__gjsv=e},B=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e='',n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',r=n.length,i=0;i{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),s=new T(r||[]);return o._invoke=function(t,e,n){var r=h;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var a=S(s,n);if(a){if(a===g)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=u(t,e,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(t,n,s),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",g={};function v(){}function m(){}function y(){}var b={};b[o]=function(){return this};var w=Object.getPrototypeOf,x=w&&w(w(E([])));x&&x!==n&&r.call(x,o)&&(b=x);var O=y.prototype=v.prototype=Object.create(b);function C(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function n(i,o,s,a){var l=u(t[i],t,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&r.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,a)}),(function(t){n("throw",t,s,a)})):e.resolve(h).then((function(t){c.value=t,s(c)}),(function(t){return n("throw",t,s,a)}))}a(l.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=u(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function E(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,s=function n(){for(;++i=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),c=r.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},2828:(t,e,n)=>{var r={"./CanvasClear":7202,"./CanvasClear.js":7202,"./CanvasMove":327,"./CanvasMove.js":327,"./CommandAbstract":238,"./CommandAbstract.js":238,"./ComponentDelete":5820,"./ComponentDelete.js":5820,"./ComponentDrag":6694,"./ComponentDrag.js":6694,"./ComponentEnter":1947,"./ComponentEnter.js":1947,"./ComponentExit":3888,"./ComponentExit.js":3888,"./ComponentNext":5883,"./ComponentNext.js":5883,"./ComponentPrev":7508,"./ComponentPrev.js":7508,"./ComponentStyleClear":8769,"./ComponentStyleClear.js":8769,"./CopyComponent":2213,"./CopyComponent.js":2213,"./DeleteComponent":5049,"./DeleteComponent.js":5049,"./ExportTemplate":3775,"./ExportTemplate.js":3775,"./Fullscreen":58,"./Fullscreen.js":58,"./MoveComponent":8658,"./MoveComponent.js":8658,"./OpenAssets":9617,"./OpenAssets.js":9617,"./OpenBlocks":5821,"./OpenBlocks.js":5821,"./OpenLayers":3452,"./OpenLayers.js":3452,"./OpenStyleManager":2840,"./OpenStyleManager.js":2840,"./OpenTraitManager":8644,"./OpenTraitManager.js":8644,"./PasteComponent":560,"./PasteComponent.js":560,"./Preview":4944,"./Preview.js":4944,"./Resize":7538,"./Resize.js":7538,"./SelectComponent":2620,"./SelectComponent.js":2620,"./SelectPosition":8463,"./SelectPosition.js":8463,"./ShowOffset":7994,"./ShowOffset.js":7994,"./SwitchVisibility":8352,"./SwitchVisibility.js":8352};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code='MODULE_NOT_FOUND',e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=o,t.exports=i,i.id=2828},907:(t,e,n)=>{"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nr})},5861:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,s){try{var a=t[o](s),l=a.value}catch(t){return void n(t)}a.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var s=t.apply(e,n);function a(t){r(s,i,o,a,l,"next",t)}function l(t){r(s,i,o,a,l,"throw",t)}a(void 0)}))}}n.d(e,{Z:()=>i})},5671:(t,e,n)=>{"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:()=>r})},3144:(t,e,n)=>{"use strict";function r(t,e){for(var n=0;ni})},4942:(t,e,n)=>{"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>r})},1120:(t,e,n)=>{"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:()=>r})},9340:(t,e,n)=>{"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)}n.d(e,{Z:()=>i})},4925:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},3930:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1002);function i(t,e){return!e||"object"!==(0,r.Z)(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}},885:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(181);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=n){var r,i,o=[],s=!0,a=!1;try{for(n=n.call(t);!(s=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);s=!0);}catch(t){a=!0,i=t}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return o}}(t,e)||(0,r.Z)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},168:(t,e,n)=>{"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,{Z:()=>r})},2982:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(907);var i=n(181);function o(t){return function(t){if(Array.isArray(t))return(0,r.Z)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.Z)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},1002:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},181:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(907);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}},9050:(t,e,n)=>{"use strict";n.r(e),n.d(e,{VERSION:()=>i,after:()=>Le,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Lt,before:()=>Re,bind:()=>Oe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>X,contains:()=>nn,countBy:()=>gn,create:()=>Zt,debounce:()=>je,default:()=>zn,defaults:()=>Rt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>se,every:()=>tn,extend:()=>At,extendOwn:()=>Lt,filter:()=>Xe,find:()=>We,findIndex:()=>Fe,findKey:()=>Ze,findLastIndex:()=>Ve,findWhere:()=>$e,first:()=>kn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Je,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>kn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>Cn,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>Z,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>R,isFinite:()=>Y,isFunction:()=>V,isMap:()=>kt,isMatch:()=>ct,isNaN:()=>J,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>L,isSet:()=>Pt,isString:()=>D,isSymbol:()=>N,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>at,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Xt,matcher:()=>$t,matches:()=>$t,max:()=>an,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Vn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Nn,omit:()=>On,once:()=>Ne,pairs:()=>Et,partial:()=>xe,partition:()=>vn,pick:()=>xn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Zn,reduce:()=>Ye,reduceRight:()=>Je,reject:()=>Qe,rest:()=>Sn,restArguments:()=>k,result:()=>ge,sample:()=>cn,select:()=>Xe,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>hn,sortedIndex:()=>He,tail:()=>Sn,take:()=>kn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Vt,transpose:()=>Ln,unescape:()=>ae,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Ln,values:()=>Tt,where:()=>sn,without:()=>jn,wrap:()=>De,zip:()=>Rn});var r={};n.r(r),n.d(r,{VERSION:()=>i,after:()=>Le,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Lt,before:()=>Re,bind:()=>Oe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>X,contains:()=>nn,countBy:()=>gn,create:()=>Zt,debounce:()=>je,default:()=>Hn,defaults:()=>Rt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>se,every:()=>tn,extend:()=>At,extendOwn:()=>Lt,filter:()=>Xe,find:()=>We,findIndex:()=>Fe,findKey:()=>Ze,findLastIndex:()=>Ve,findWhere:()=>$e,first:()=>kn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Je,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>kn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>Cn,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>Z,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>R,isFinite:()=>Y,isFunction:()=>V,isMap:()=>kt,isMatch:()=>ct,isNaN:()=>J,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>L,isSet:()=>Pt,isString:()=>D,isSymbol:()=>N,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>at,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Xt,matcher:()=>$t,matches:()=>$t,max:()=>an,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Vn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Nn,omit:()=>On,once:()=>Ne,pairs:()=>Et,partial:()=>xe,partition:()=>vn,pick:()=>xn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Zn,reduce:()=>Ye,reduceRight:()=>Je,reject:()=>Qe,rest:()=>Sn,restArguments:()=>k,result:()=>ge,sample:()=>cn,select:()=>Xe,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>hn,sortedIndex:()=>He,tail:()=>Sn,take:()=>kn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Vt,transpose:()=>Ln,unescape:()=>ae,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Ln,values:()=>Tt,where:()=>sn,without:()=>jn,wrap:()=>De,zip:()=>Rn});var i='1.13.1',o='object'==typeof self&&self.self===self&&self||'object'==typeof global&&global.global===global&&global||Function('return this')()||{},s=Array.prototype,a=Object.prototype,l='undefined'!=typeof Symbol?Symbol.prototype:null,c=s.push,u=s.slice,h=a.toString,f=a.hasOwnProperty,d='undefined'!=typeof ArrayBuffer,p='undefined'!=typeof DataView,g=Array.isArray,v=Object.keys,m=Object.create,y=d&&ArrayBuffer.isView,b=isNaN,w=isFinite,x=!{toString:null}.propertyIsEnumerable('toString'),O=['valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'],C=Math.pow(2,53)-1;function k(t,e){return e=null==e?t.length-1:+e,function(){for(var n=Math.max(arguments.length-e,0),r=Array(n),i=0;i=0&&n<=C}}function tt(t){return function(e){return null==e?void 0:e[t]}}const et=tt('byteLength'),nt=Q(et);var rt=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const it=d?function(t){return y?y(t)&&!W(t):nt(t)&&rt.test(h.call(t))}:X(!1),ot=tt('length');function st(t,e){e=function(t){for(var e={},n=t.length,r=0;r':'>','"':'"',"'":''','`':'`'},se=ie(oe),ae=ie(jt(oe)),le=ut.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ce=/(.)^/,ue={"'":"'",'\\':'\\','\r':'r','\n':'n','\u2028':'u2028','\u2029':'u2029'},he=/\\|'|\r|\n|\u2028|\u2029/g;function fe(t){return'\\'+ue[t]}var de=/^\s*(\w|\$)+\s*$/;function pe(t,e,n){!e&&n&&(e=n),e=Rt({},e,ut.templateSettings);var r=RegExp([(e.escape||ce).source,(e.interpolate||ce).source,(e.evaluate||ce).source].join('|')+'|$','g'),i=0,o="__p+='";t.replace(r,(function(e,n,r,s,a){return o+=t.slice(i,a).replace(he,fe),i=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e})),o+="';\n";var s,a=e.variable;if(a){if(!de.test(a))throw new Error('variable is not a bare identifier: '+a)}else o='with(obj||{}){\n'+o+'}\n',a='obj';o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+'return __p;\n';try{s=new Function(a,'_',o)}catch(t){throw t.source=o,t}var l=function(t){return s.call(this,t,ut)};return l.source='function('+a+'){\n'+o+'}',l}function ge(t,e,n){var r=(e=Ht(e)).length;if(!r)return V(n)?n.call(t):n;for(var i=0;i1)ke(a,e-1,n,r),i=r.length;else for(var l=0,c=a.length;le?(r&&(clearTimeout(r),r=null),a=c,s=t.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),s};return c.cancel=function(){clearTimeout(r),a=0,r=i=o=null},c}function je(t,e,n){var r,i,o,s,a,l=function(){var c=re()-i;e>c?r=setTimeout(l,e-c):(r=null,n||(s=t.apply(a,o)),r||(o=a=null))},c=k((function(c){return a=this,o=c,i=re(),r||(r=setTimeout(l,e),n&&(s=t.apply(a,o))),s}));return c.cancel=function(){clearTimeout(r),r=o=a=null},c}function De(t,e){return xe(e,t)}function Me(t){return function(){return!t.apply(this,arguments)}}function Ae(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function Le(t,e){return function(){if(--t<1)return e.apply(this,arguments)}}function Re(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}}const Ne=xe(Re,2);function Ze(t,e,n){e=Jt(e,n);for(var r,i=at(t),o=0,s=i.length;o0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=e(u.call(r,s,a),J))>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o0?0:s-1;for(i||(r=e[o?o[a]:a],a+=t);a>=0&&a=3;return e(t,Gt(n,i,4),r,o)}}const Ye=Ke(1),Je=Ke(-1);function Xe(t,e,n){var r=[];return e=Jt(e,n),qe(t,(function(t,n,i){e(t,n,i)&&r.push(t)})),r}function Qe(t,e,n){return Xe(t,Me(Jt(e)),n)}function tn(t,e,n){e=Jt(e,n);for(var r=!Ce(t)&&at(t),i=(r||t).length,o=0;o=0}const rn=k((function(t,e,n){var r,i;return V(e)?i=e:(e=Ht(e),r=e.slice(0,-1),e=e[e.length-1]),Ge(t,(function(t){var o=i;if(!o){if(r&&r.length&&(t=Bt(t,r)),null==t)return;o=t[e]}return null==o?o:o.apply(t,n)}))}));function on(t,e){return Ge(t,qt(e))}function sn(t,e){return Xe(t,$t(e))}function an(t,e,n){var r,i,o=-1/0,s=-1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var a=0,l=(t=Ce(t)?t:Tt(t)).length;ao&&(o=r);else e=Jt(e,n),qe(t,(function(t,n,r){((i=e(t,n,r))>s||i===-1/0&&o===-1/0)&&(o=t,s=i)}));return o}function ln(t,e,n){var r,i,o=1/0,s=1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var a=0,l=(t=Ce(t)?t:Tt(t)).length;ar||void 0===n)return 1;if(n1&&(r=Gt(r,e[1])),e=vt(t)):(r=wn,e=ke(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(n=e[1])):(e=Ge(ke(e,!1,!1),String),r=function(t,n){return!nn(e,n)}),xn(t,r,n)}));function Cn(t,e,n){return u.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))}function kn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[0]:Cn(t,t.length-e)}function Sn(t,e,n){return u.call(t,null==e||n?1:e)}function Pn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[t.length-1]:Sn(t,Math.max(0,t.length-e))}function _n(t){return Xe(t,Boolean)}function Tn(t,e){return ke(t,e,!1)}const En=k((function(t,e){return e=ke(e,!0,!0),Xe(t,(function(t){return!nn(e,t)}))})),jn=k((function(t,e){return En(t,e)}));function Dn(t,e,n,r){T(e)||(r=n,n=e,e=!1),null!=n&&(n=Jt(n,r));for(var i=[],o=[],s=0,a=ot(t);s{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if('object'==typeof globalThis)return globalThis;try{return this||new Function('return this')()}catch(t){if('object'==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(t,'__esModule',{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>V});var t=n(4942),e=n(9050),i=n(2579);const o={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,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,optsHtml:{},optsCss:{},avoidInlineStyle:1,avoidDefaults:1,clearStyles:0,dragMode:0,listenToEl:[],cssIcons:'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css',icons:{close:'',move:'',plus:'',caret:'',delete:'',copy:'',arrowUp:''},el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{},styleManager:{},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0,customUI:!1};var s=n(4925),a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316),d=n.n(f);var p=n(6183);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Model),m=function(t){(0,c.Z)(r,t);var n=g(r);function r(){return(0,a.Z)(this,r),n.apply(this,arguments)}return(0,l.Z)(r,[{key:"getByComponent",value:function(t){var e=this;return this.filter((function(n){return e.getComponent(n)===t}))[0]}},{key:"addComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).filter((function(t){return!r.hasComponent(t)})).map((function(t){return{component:t}}));return this.push(i,n)}},{key:"getComponent",value:function(t){return t.get('component')}},{key:"hasComponent",value:function(t){var e=this.getByComponent(t);return e&&this.contains(e)}},{key:"lastComponent",value:function(){var t=this.last();return t&&this.getComponent(t)}},{key:"allComponents",value:function(){var t=this;return this.map((function(e){return t.getComponent(e)})).filter((function(t){return t}))}},{key:"removeComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).map((function(t){return r.getByComponent(t)}));return this.remove(i,n)}}]),r}(f.Collection);m.prototype.model=v;var y=["unset"];function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};this.config=n,this.set('Config',n),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new m),this.set('dmode',n.dragMode),this.set('hasPages',!!n.pageManager);var r=n.el,i=n.log,o=!0===i?(0,e.keys)(S):(0,e.isArray)(i)?i:[];(0,e.bindAll)(this,'initBaseColorPicker'),r&&n.fromElement&&(this.config.components=r.innerHTML),this.attrsOrig=r?(0,e.toArray)(r.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',k.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),this.on('change:readyLoad change:readyCanvas',this._checkReady,this),o.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){return t.onLoad()}));var i=function(){t.get('modules').forEach((function(e){return e.postLoad&&e.postLoad(t)})),t.set('readyLoad',1),e&&e()};n&&n.canAutoload()?this.load(i):setTimeout(i);var o=new r({noticeOnUnload:!1,storageManager:!1,undoManager:!1});['PageManager','Canvas'].forEach((function(t){return o.get(t).onLoad()})),this.set('shallow',o)}},{key:"updateChanges",value:function(){var t=this,e=this.get('StorageManager'),n=this.get('changesCount');C&&clearTimeout(C),C=setTimeout((function(){return t.trigger('update')})),this.config.noticeOnUnload&&(window.onbeforeunload=n?function(t){return 1}:null),e.isAutosave()&&n>=e.getStepsBeforeSave()&&this.store()}},{key:"loadModule",value:function(t){var n=this.config,r=new(t.default||t),i=r.name.charAt(0).toLowerCase()+r.name.slice(1),o=(0,e.isUndefined)(n[i])?n[r.name]:n[i],s=!0===o?{}:o||{},a=this.get('StorageManager');if(s.pStylePrefix=n.pStylePrefix||'',(0,e.isUndefined)(o)||o||(s._disable=1),r.storageKey&&r.store&&r.load&&a){s.stm=a;var l='domComponents'==i?'unshift':'push';this.get('storables')[l](r)}return s.em=this,r.init(w({},s)),!r.private&&this.set(r.name,r),r.onLoad&&this.get('toLoad').push(r),this.get('modules').push(r),this}},{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroyed&&(this.initialize(e),this.destroyed=0),this.set('Editor',t)}},{key:"getEditor",value:function(){return this.get('Editor')}},{key:"handleUpdates",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.__skip||r.temporary||r.noCount||r.avoidStore||!this.get('ready')||(O&&clearTimeout(O),O=setTimeout((function(){var t=n.get('changesCount')||0,e=(r.unset,(0,s.Z)(r,y));n.set('changesCount',t+1,e)}),0))}},{key:"changesUp",value:function(t){this.handleUpdates(0,0,t)}},{key:"componentHovered",value:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)}},{key:"getSelected",value:function(){return this.get('selected').lastComponent()}},{key:"getSelectedAll",value:function(){return this.get('selected').allComponents()}},{key:"setSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.event,s=o&&(o.ctrlKey||o.metaKey),a=o||{},l=a.shiftKey,c=(0,e.isArray)(t),u=(c?t:[t]).map((function(t){return(0,p.getModel)(t,i.default)})),h=this.getSelectedAll(),f=this.getConfig('multipleSelection');c&&this.removeSelected(h.filter((function(t){return!(0,e.contains)(u,t)}))),u.forEach((function(t){var i=(0,p.getModel)(t);if(i&&(n.trigger('component:select:before',i,r),!i.get('selectable')||r.abort)){if(!r.useValid)return;for(var o=i.parent();o&&!o.get('selectable');)o=o.parent();i=o}if(s&&f)return n.toggleSelected(i);if(l&&f){n.clearSelection(n.get('Canvas').getWindow());var a,u,d=i.collection,g=i.index();if(n.getSelectedAll().forEach((function(t){var n=t.collection,r=t.index();n===d&&(rg&&(u=(0,e.isUndefined)(u)?r:Math.min(u,r)))})),!(0,e.isUndefined)(a))for(;a!==g;)n.addSelected(d.at(a)),a++;if(!(0,e.isUndefined)(u))for(;u!==g;)n.addSelected(d.at(u)),u--;return n.addSelected(i)}!c&&n.removeSelected(h.filter((function(t){return t!==i}))),n.addSelected(i,r),i}))}},{key:"addSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,p.getModel)(t,i.default),s=(0,e.isArray)(o)?o:[o];s.forEach((function(t){if(!t||t.get('selectable')){var e=n.get('selected');r.forceChange&&n.removeSelected(t,r),e.addComponent(t,r),t&&n.trigger('component:select',t,r)}}))}},{key:"removeSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').removeComponent((0,p.getModel)(t,i.default),e)}},{key:"toggleSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,p.getModel)(t,i.default),s=(0,e.isArray)(o)?o:[o];s.forEach((function(t){n.get('selected').hasComponent(t)?n.removeSelected(t,r):n.addSelected(t,r)}))}},{key:"setHovered",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return this.set('componentHovered','');var n='component:hover',r=(0,p.getModel)(t);if(r){if(e.forceChange&&this.set('componentHovered',''),this.trigger("".concat(n,":before"),r,e),!r.get('hoverable')){if(!e.useValid||e.abort)return;for(var i=r&&r.parent();i&&!i.get('hoverable');)i=i.parent();r=i}e.abort||(this.set('componentHovered',r,e),this.trigger(n,r,e))}}},{key:"getHovered",value:function(){return this.get('componentHovered')}},{key:"setComponents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)}},{key:"getComponents",value:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}}},{key:"setStyle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('CssComposer');return n.clear(e),n.getAll().add(t,e),this}},{key:"addStyle",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getStyle().add(t,n);return(0,e.isArray)(r)?r:[r]}},{key:"getStyle",value:function(){return this.get('CssComposer').getAll()}},{key:"setState",value:function(t){return this.set('state',t),this}},{key:"getState",value:function(){return this.get('state')||''}},{key:"getHtml",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.jsInHtml?this.getJs(t):'',i=t.component||this.get('DomComponents').getComponent(),o=i?this.get('CodeManager').getCode(i,'html',w(w({},n),t)):'';return o+=r?"` : '';\n return html;\n }\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @returns {string} CSS string\n * @private\n */\n getCss(opts = {}) {\n const config = this.config;\n const { optsCss } = config;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = opts.component || this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n const css =\n wrp &&\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n keepUnusedStyles,\n ...optsCss,\n ...opts,\n });\n return wrp ? (opts.json ? css : protCss + css) : '';\n }\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs(opts = {}) {\n var wrp = opts.component || this.get('DomComponents').getWrapper();\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\n }\n\n /**\n * Store data to the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n * @private\n */\n store(clb) {\n const sm = this.get('StorageManager');\n if (!sm) return;\n\n const store = this.storeData();\n sm.store(store, res => {\n clb && clb(res, store);\n this.set('changesCount', 0);\n this.trigger('storage:store', store);\n });\n\n return store;\n }\n\n storeData() {\n let result = {};\n // Sync content if there is an active RTE\n const editingCmp = this.getEditing();\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\n\n this.get('storables').forEach(m => {\n result = { ...result, ...m.store(1) };\n });\n return result;\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.loadData(res);\n clb && clb(res);\n });\n }\n\n loadData(data = {}) {\n const sm = this.get('StorageManager');\n const result = sm.__clearKeys(data);\n\n this.get('storables').forEach(module => {\n module.load(result);\n module.postLoad && module.postLoad(this);\n });\n\n return result;\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 || !this.defaultRunning) return;\n command.stop(this, this, opts);\n this.defaultRunning = 0;\n }\n\n /**\n * Update canvas dimensions and refresh data useful for tools positioning\n * @private\n */\n refreshCanvas(opts = {}) {\n this.set('canvasOffset', null);\n this.set('canvasOffset', this.get('Canvas').getOffset());\n opts.tools && this.trigger('canvas:updateTools');\n }\n\n /**\n * Clear all selected stuf inside the window, sometimes is useful to call before\n * doing some dragging opearation\n * @param {Window} win If not passed the current one will be used\n * @private\n */\n clearSelection(win) {\n var w = win || window;\n w.getSelection().removeAllRanges();\n }\n\n /**\n * Get the current media text\n * @return {string}\n */\n getCurrentMedia() {\n const config = this.config;\n const device = this.getDeviceModel();\n const condition = config.mediaCondition;\n const preview = config.devicePreviewMode;\n const width = device && device.get('widthMedia');\n return device && width && !preview ? `(${condition}: ${width})` : '';\n }\n\n /**\n * Return the component wrapper\n * @return {Component}\n */\n getWrapper() {\n return this.get('DomComponents').getWrapper();\n }\n\n setCurrentFrame(frameView) {\n return this.set('currentFrame', frameView);\n }\n\n getCurrentFrame() {\n return this.get('currentFrame');\n }\n\n getCurrentFrameModel() {\n return (this.getCurrentFrame() || {}).model;\n }\n\n getIcon(icon) {\n const icons = this.getConfig('icons') || {};\n return icons[icon] || '';\n }\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return this.get('changesCount');\n }\n\n getZoomDecimal() {\n return this.get('Canvas').getZoomDecimal();\n }\n\n getZoomMultiplier() {\n return this.get('Canvas').getZoomMultiplier();\n }\n\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n t(...args) {\n const i18n = this.get('I18n');\n return i18n?.t(...args);\n }\n\n /**\n * Returns true if the editor is in absolute mode\n * @returns {Boolean}\n */\n inAbsoluteMode() {\n return this.get('dmode') === 'absolute';\n }\n\n /**\n * Destroy editor\n */\n destroyAll() {\n const { config, view } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n const shallow = this.get('shallow');\n shallow?.destroyAll();\n this.stopListening();\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n view && view.remove();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\n editors.splice(editors.indexOf(editor), 1);\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\n }\n\n getEditing() {\n const res = this.get('editing');\n return (res && res.model) || null;\n }\n\n setEditing(value) {\n this.set('editing', value);\n return this;\n }\n\n isEditing() {\n return !!this.get('editing');\n }\n\n log(msg, opts = {}) {\n const { ns, level = 'debug' } = opts;\n this.trigger('log', msg, opts);\n level && this.trigger(`log:${level}`, msg, opts);\n\n if (ns) {\n const logNs = `log-${ns}`;\n this.trigger(logNs, msg, opts);\n level && this.trigger(`${logNs}:${level}`, msg, opts);\n }\n }\n\n logInfo(msg, opts) {\n this.log(msg, { ...opts, level: 'info' });\n }\n\n logWarning(msg, opts) {\n this.log(msg, { ...opts, level: 'warning' });\n }\n\n logError(msg, opts) {\n this.log(msg, { ...opts, level: 'error' });\n }\n\n initBaseColorPicker(el, opts = {}) {\n const config = this.getConfig();\n const { colorPicker = {} } = config;\n const elToAppend = config.el;\n const ppfx = config.stylePrefix;\n\n return $(el).spectrum({\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n palette: [],\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n ...opts,\n ...colorPicker,\n });\n }\n\n /**\n * Execute actions without triggering the storage and undo manager.\n * @param {Function} clb\n * @private\n */\n skip(clb) {\n this.__skip = true;\n const um = this.get('UndoManager');\n um ? um.skip(clb) : clb();\n this.__skip = false;\n }\n\n /**\n * Set/get data from the HTMLElement\n * @param {HTMLElement} el\n * @param {string} name Data name\n * @param {any} value Date value\n * @return {any}\n * @private\n */\n data(el, name, value) {\n const varName = '_gjs-data';\n\n if (!el[varName]) {\n el[varName] = {};\n }\n\n if (isUndefined(value)) {\n return el[varName][name];\n } else {\n el[varName][name] = value;\n }\n }\n}\n","import { isObject, isString, each, isUndefined } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\n const fn = $.fn;\n\n // Additional helpers\n\n fn.hide = function() {\n return this.css('display', 'none');\n };\n\n fn.show = function() {\n return this.css('display', 'block');\n };\n\n fn.focus = function() {\n const el = this.get(0);\n el && el.focus();\n return this;\n };\n\n // For SVGs in IE\n // (fn.removeClass = function(c) {\n // if (!arguments.length) {\n // return this.attr('class', '');\n // }\n // const classes = isString(c) && c.match(/\\S+/g);\n // return classes\n // ? this.each(function(el) {\n // each(classes, function(c) {\n // if (el.classList) {\n // el.classList.remove(c);\n // } else {\n // const val = el.className;\n // const bval = el.className.baseVal;\n\n // if (!isUndefined(bval)) {\n // val.baseVal = bval.replace(c, '');\n // } else {\n // el.className = val.replace(c, '');\n // }\n // }\n // });\n // })\n // : this;\n // }),\n // (fn.remove = function() {\n // return this.each(node => {\n // return node.parentNode && node.parentNode.removeChild(node);\n // });\n // }),\n\n // For spectrum compatibility\n\n fn.bind = function(ev, h) {\n return this.on(ev, h);\n };\n\n fn.unbind = function(ev, h) {\n if (isObject(ev)) {\n for (let name in ev) {\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\n }\n\n return this;\n } else {\n return this.off(ev, h);\n }\n };\n\n fn.click = function(h) {\n return h ? this.on('click', h) : this.trigger('click');\n };\n\n fn.change = function(h) {\n return h ? this.on('change', h) : this.trigger('change');\n };\n\n fn.keydown = function(h) {\n return h ? this.on('keydown', h) : this.trigger('keydown');\n };\n\n fn.delegate = function(selector, events, data, handler) {\n if (!handler) {\n handler = data;\n }\n\n return this.on(events, selector, function(e) {\n e.data = data;\n handler(e);\n });\n };\n\n fn.scrollLeft = function() {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageXOffset : el.scrollLeft || 0;\n };\n\n fn.scrollTop = function() {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageYOffset : el.scrollTop || 0;\n };\n\n const offset = $.prototype.offset;\n fn.offset = function(coords) {\n let top, left;\n\n if (coords) {\n top = coords.top;\n left = coords.left;\n }\n\n if (typeof top != 'undefined') {\n this.css('top', `${top}px`);\n }\n if (typeof left != 'undefined') {\n this.css('left', `${left}px`);\n }\n\n return offset.call(this);\n };\n\n $.map = function(items, clb) {\n const ar = [];\n\n for (var i = 0; i < items.length; i++) {\n ar.push(clb(items[i], i));\n }\n\n return ar;\n };\n\n const indexOf = Array.prototype.indexOf;\n\n $.inArray = function(val, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, val, i);\n };\n\n $.Event = function(src, props) {\n if (!(this instanceof $.Event)) {\n return new $.Event(src, props);\n }\n\n this.type = src;\n this.isDefaultPrevented = () => false;\n };\n }\n};\n","import Backbone from 'backbone';\nimport { View } from 'common';\nimport { appendStyles } from 'utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default class EditorView extends View {\n initialize() {\n const { model } = this;\n model.view = this;\n this.conf = model.config;\n this.pn = model.get('Panels');\n this.cv = model.get('Canvas');\n model.once('change:ready', () => {\n this.pn.active();\n this.pn.disableButtons();\n setTimeout(() => {\n model.trigger('load', model.get('Editor'));\n model.set('changesCount', 0);\n });\n });\n }\n\n render() {\n const { $el, conf, model } = 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\n // Load shallow editor\n const shallow = model.get('shallow');\n const shallowCanvasEl = shallow.get('Canvas').render();\n shallowCanvasEl.style.display = 'none';\n $el.append(shallowCanvasEl);\n\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\n\n return this;\n }\n}\n","/**\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\n *\n * ```js\n * const editor = grapesjs.init({\n * // options\n * });\n * ```\n *\n * ## Available Events\n *\n * You can make use of available events in this way\n * ```js\n * editor.on('EVENT-NAME', (some, argument) => {\n * // do something\n * })\n * ```\n *\n * * `update` - The structure of the template is updated (its HTML/CSS)\n * * `undo` - Undo executed\n * * `redo` - Redo executed\n * * `load` - Editor is loaded\n *\n * ### Components\n * Check the [Components](/api/components.html) module.\n * ### Keymaps\n * Check the [Keymaps](/api/keymaps.html) module.\n * ### Style Manager\n * Check the [Style Manager](/api/style_manager.html) module.\n * ### Storage\n * Check the [Storage](/api/storage_manager.html) module.\n * ### Canvas\n * Check the [Canvas](/api/canvas.html) module.\n * ### RTE\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\n * ### Commands\n * Check the [Commands](/api/commands.html) module.\n * ### Selectors\n * Check the [Selectors](/api/selector_manager.html) module.\n * ### Blocks\n * Check the [Blocks](/api/block_manager.html) module.\n * ### Assets\n * Check the [Assets](/api/assets.html) module.\n * ### Modal\n * Check the [Modal](/api/modal_dialog.html) module.\n * ### Devices\n * Check the [Devices](/api/device_manager.html) module.\n * ### Parser\n * Check the [Parser](/api/parser.html) module.\n * ### Pages\n * Check the [Pages](/api/pages.html) module.\n *\n * ## Methods\n * @module Editor\n */\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\nimport html from 'utils/html';\n\nexport default (config = {}, opts = {}) => {\n const { $ } = opts;\n let c = {\n ...defaults,\n ...config,\n };\n\n c.pStylePrefix = c.stylePrefix;\n let em = new EditorModel(c);\n let editorView;\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n modules: [],\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n this.modules = [\n 'I18n',\n 'Utils',\n 'Config',\n 'Commands',\n 'Keymaps',\n 'Modal',\n 'Panels',\n 'Canvas',\n 'Parser',\n 'CodeManager',\n 'UndoManager',\n 'RichTextEditor',\n ['Pages', 'PageManager'],\n 'DomComponents',\n ['Components', 'DomComponents'],\n 'LayerManager',\n ['Layers', 'LayerManager'],\n 'CssComposer',\n ['Css', 'CssComposer'],\n 'StorageManager',\n ['Storage', 'StorageManager'],\n 'AssetManager',\n ['Assets', 'AssetManager'],\n 'BlockManager',\n ['Blocks', 'BlockManager'],\n 'TraitManager',\n ['Traits', 'TraitManager'],\n 'SelectorManager',\n ['Selectors', 'SelectorManager'],\n 'StyleManager',\n ['Styles', 'StyleManager'],\n 'DeviceManager',\n ['Devices', 'DeviceManager'],\n ];\n\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = em.get(prop[1]);\n } else {\n this[prop] = em.get(prop);\n }\n });\n\n // Do post render stuff after the iframe is loaded otherwise it'll\n // be empty during tests\n em.once('change:ready', () => {\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 {Component} [opts.component] Return the HTML of a specific Component\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\n * @returns {string} HTML string\n */\n getHtml(opts) {\n return em.getHtml(opts);\n },\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the CSS of a specific Component\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\n * @returns {String|Array} CSS string or array of CssRules\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Get the JS of a specific component\n * @returns {String} JS string\n */\n getJs(opts) {\n return em.getJs(opts);\n },\n\n /**\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\n * @return {Components}\n */\n getComponents() {\n return em.get('DomComponents').getComponents();\n },\n\n /**\n * Return the wrapper and its all components\n * @return {Component}\n */\n getWrapper() {\n return em.get('DomComponents').getWrapper();\n },\n\n /**\n * Set components inside editor's canvas. This method overrides actual components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\n * @return {this}\n * @example\n * editor.setComponents('
New component
');\n * // or\n * editor.setComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n setComponents(components, opt = {}) {\n em.setComponents(components, opt);\n return this;\n },\n\n /**\n * Add components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opts Options\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\n * by default, they will be created and, if already exist, updated. When this option\n * is true, styles already created will not be updated.\n * @return {Array}\n * @example\n * editor.addComponents('
New component
');\n * // or\n * editor.addComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n addComponents(components, opts) {\n return this.getWrapper().append(components, opts);\n },\n\n /**\n * Returns style in JSON format object\n * @return {Object}\n */\n getStyle() {\n return em.get('CssComposer').getAll();\n },\n\n /**\n * Set style inside editor's canvas. This method overrides actual style\n * @param {Array|Object|string} style CSS string or style model\n * @return {this}\n * @example\n * editor.setStyle('.cls{color: red}');\n * //or\n * editor.setStyle({\n * selectors: ['cls'],\n * style: { color: 'red' }\n * });\n */\n setStyle(style, opt = {}) {\n em.setStyle(style, opt);\n return this;\n },\n\n /**\n * Add styles to the editor\n * @param {Array|Object|string} style CSS string or style model\n * @returns {Array} Array of created CssRule instances\n * @example\n * editor.addStyle('.cls{color: red}');\n */\n addStyle(style, opts = {}) {\n return em.addStyle(style, opts);\n },\n\n /**\n * Returns the last selected component, if there is one\n * @return {Model}\n */\n getSelected() {\n return em.getSelected();\n },\n\n /**\n * Returns an array of all selected components\n * @return {Array}\n */\n getSelectedAll() {\n return em.getSelectedAll();\n },\n\n /**\n * Get a stylable entity from the selected component.\n * If you select a component without classes the entity is the Component\n * itself and all changes will go inside its 'style' attribute. Otherwise,\n * if the selected component has one or more classes, the function will\n * return the corresponding CSS Rule\n * @return {Model}\n */\n getSelectedToStyle() {\n let selected = em.getSelected();\n\n if (selected) {\n return this.StyleManager.getModelToStyle(selected);\n }\n },\n\n /**\n * Select a component\n * @param {Component|HTMLElement} el Component to select\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\n * @return {this}\n * @example\n * // Select dropped block\n * editor.on('block:drag:stop', function(model) {\n * editor.select(model);\n * });\n */\n select(el, opts) {\n em.setSelected(el, opts);\n return this;\n },\n\n /**\n * Add component to selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectAdd(model);\n */\n selectAdd(el) {\n em.addSelected(el);\n return this;\n },\n\n /**\n * Remove component from selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectRemove(model);\n */\n selectRemove(el) {\n em.removeSelected(el);\n return this;\n },\n\n /**\n * Toggle component selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectToggle(model);\n */\n selectToggle(el) {\n em.toggleSelected(el);\n return this;\n },\n\n /**\n * Returns, if active, the Component enabled in rich text editing mode.\n * @returns {Component|null}\n * @example\n * const textComp = editor.getEditing();\n * if (textComp) {\n * console.log('HTML: ', textComp.toHTML());\n * }\n */\n getEditing() {\n return em.getEditing();\n },\n\n /**\n * Set device to the editor. If the device exists it will\n * change the canvas to the proper width\n * @param {string} name Name of the device\n * @return {this}\n * @example\n * editor.setDevice('Tablet');\n */\n setDevice(name) {\n em.set('device', name);\n return this;\n },\n\n /**\n * Return the actual active device\n * @return {string} Device name\n * @example\n * var device = editor.getDevice();\n * console.log(device);\n * // 'Tablet'\n */\n getDevice() {\n return em.get('device');\n },\n\n /**\n * Execute command\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.runCommand('myCommand', {someValue: 1});\n */\n runCommand(id, options = {}) {\n return em.get('Commands').run(id, options);\n },\n\n /**\n * Stop the command if stop method was provided\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.stopCommand('myCommand', {someValue: 1});\n */\n stopCommand(id, options = {}) {\n return em.get('Commands').stop(id, options);\n },\n\n /**\n * Store data to the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n */\n store(clb) {\n return em.store(clb);\n },\n\n /**\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProject(json)`\n * @returns {Object}\n * @example\n * console.log(editor.getProject());\n * // { pages: [...], styles: [...], ... }\n */\n getProject() {\n return em.storeData();\n },\n\n storeData() {\n return em.storeData();\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 * Load data from the JSON project\n * @param {Object} data Project to load\n * @example\n * editor.loadProject({ pages: [...], styles: [...], ... })\n */\n loadProject(data) {\n return em.loadData(data);\n },\n\n loadData(data) {\n return em.loadData(data);\n },\n\n /**\n * Returns container element. The one which was indicated as 'container'\n * on init method\n * @return {HTMLElement}\n */\n getContainer() {\n return c.el;\n },\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return em.getDirtyCount();\n },\n\n /**\n * Update editor dimension offsets\n *\n * This method could be useful when you update, for example, some position\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\n * refresh you'll get misleading position of tools\n * @param {Object} [options] Options\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\n */\n refresh(opts) {\n em.refreshCanvas(opts);\n },\n\n /**\n * Replace the built-in Rich Text Editor with a custom one.\n * @param {Object} obj Custom RTE Interface\n * @example\n * editor.setCustomRte({\n * // Function for enabling custom RTE\n * // el is the HTMLElement of the double clicked Text Component\n * // rte is the same instance you have returned the first time you call\n * // enable(). This is useful if need to check if the RTE is already enabled so\n * // ion this case you'll need to return the RTE and the end of the function\n * enable: function(el, rte) {\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\n * ...\n * return rte; // return the RTE instance\n * },\n *\n * // Disable the editor, called for example when you unfocus the Text Component\n * disable: function(el, rte) {\n * rte.blur(); // this depends on the Custom RTE API\n * }\n *\n * // Called when the Text Component is focused again. If you returned the RTE instance\n * // from the enable function, the enable won't be called again instead will call focus,\n * // in this case to avoid double binding of the editor\n * focus: function (el, rte) {\n * rte.focus(); // this depends on the Custom RTE API\n * }\n * });\n */\n setCustomRte(obj) {\n this.RichTextEditor.customRte = obj;\n },\n\n /**\n * Replace the default CSS parser with a custom one.\n * The parser function receives a CSS string as a parameter and expects\n * an array of CSSRule objects as a result. If you need to remove the\n * custom parser, pass `null` as the argument\n * @param {Function|null} parser Parser function\n * @return {this}\n * @example\n * editor.setCustomParserCss(css => {\n * const result = [];\n * // ... parse the CSS string\n * result.push({\n * selectors: '.someclass, div .otherclass',\n * style: { color: 'red' }\n * })\n * // ...\n * return result;\n * });\n */\n setCustomParserCss(parser) {\n this.Parser.getConfig().parserCss = parser;\n return this;\n },\n\n /**\n * Change the global drag mode of components.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n em.setDragMode(value);\n return this;\n },\n\n /**\n * Trigger event log message\n * @param {*} msg Message to log\n * @param {Object} [opts={}] Custom options\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\n * @return {this}\n * @example\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\n * // This will trigger following events\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\n * // Callbacks of those events will always receive the message and\n * // options, as arguments, eg:\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\n */\n log(msg, opts = {}) {\n em.log(msg, opts);\n return this;\n },\n\n /**\n * Translate label\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\n * @returns {String}\n * @example\n * editor.t('msg');\n * // use params\n * editor.t('msg2', { params: { test: 'hello' } });\n * // custom local\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\n */\n t(...args) {\n return em.t(...args);\n },\n\n /**\n * Attach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n on(event, callback) {\n em.on(event, callback);\n return this;\n },\n\n /**\n * Attach event and detach it after the first run\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n once(event, callback) {\n em.once(event, callback);\n return this;\n },\n\n /**\n * Detach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n off(event, callback) {\n em.off(event, callback);\n return this;\n },\n\n /**\n * Trigger event\n * @param {string} event Event to trigger\n * @return {this}\n */\n trigger(event) {\n em.trigger.apply(em, arguments);\n return this;\n },\n\n /**\n * Destroy the editor\n */\n destroy() {\n if (!em) return;\n em.destroyAll();\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = 0;\n } else {\n this[prop] = 0;\n }\n });\n this.modules = 0;\n editorView = 0;\n em = 0;\n c = 0;\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return editorView && editorView.el;\n },\n\n /**\n * Returns editor model\n * @return {Model}\n * @private\n */\n getModel() {\n return em;\n },\n\n /**\n * Render editor\n * @return {HTMLElement}\n */\n render() {\n editorView && editorView.remove();\n editorView = new EditorView({\n model: em,\n config: c,\n });\n return editorView.render().el;\n },\n\n /**\n * Trigger a callback once the editor is loaded and rendered.\n * The callback will be executed immediately if the method is called on the already rendered editor.\n * @param {Function} clb Callback to trigger\n * @example\n * editor.onReady(() => {\n * // perform actions\n * });\n */\n onReady(clb) {\n em.get('ready') ? clb(this) : em.on('load', clb);\n },\n\n /**\n * Print safe HTML by using ES6 tagged template strings.\n * @param {Array} literals\n * @param {Array} substs\n * @returns {String}\n * @example\n * const unsafeStr = '';\n * const safeStr = 'Hello';\n * // Use `$${var}` to avoid escaping\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\n */\n html,\n };\n};\n","export default {\n plugins: []\n};\n","/**\n * File made for IE/Edge support\n * https://github.com/artf/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument =\n DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement, isFunction } from 'underscore';\nimport $ from 'utils/cash-dom';\nimport Editor from './editor';\nimport polyfills from 'utils/polyfills';\nimport { getGlobal } from 'utils/mixins';\nimport PluginManager from './plugin_manager';\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors = [];\nconst defaultConfig = {\n // If true renders editor on init\n autorender: 1,\n\n // Array of plugins to init\n plugins: [],\n\n // Custom options for plugins\n pluginsOpts: {}\n};\n\nexport default {\n $,\n\n editors,\n\n plugins,\n\n // Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: '
Hello world
',\n * style: '.hello{color: red}',\n * })\n */\n init(config = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el =\n !headless && (isElement(els) ? els : document.querySelector(els));\n const editor = new Editor(config, { $ }).init();\n const em = editor.getModel();\n\n // Load plugins\n config.plugins.forEach(pluginId => {\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = getGlobal()[pluginId];\n plugin = wplg?.default || wplg;\n }\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else if (isFunction(pluginId)) {\n pluginId(editor, plgOptions);\n } else {\n em.logWarning(`Plugin ${pluginId} not found`, {\n context: 'plugins',\n plugin: pluginId\n });\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n config.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n }\n};\n","import defaults from './config/config';\n\nexport default config => {\n var c = config || {};\n\n // Set default options\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var plugins = {};\n\n return {\n /**\n * Add new plugin. Plugins could not be overwritten\n * @param {string} id Plugin ID\n * @param {Function} plugin Function which contains all plugin logic\n * @return {Function} The plugin function\n * @example\n * PluginManager.add('some-plugin', function(editor){\n * editor.Commands.add('new-command', {\n * run: function(editor, senderBtn){\n * console.log('Executed new-command');\n * }\n * })\n * });\n */\n add(id, plugin) {\n if (plugins[id]) {\n return plugins[id];\n }\n\n plugins[id] = plugin;\n return plugin;\n },\n\n /**\n * Returns plugin by ID\n * @param {string} id Plugin ID\n * @return {Function|undefined} Plugin\n * @example\n * var plugin = PluginManager.get('some-plugin');\n * plugin(editor);\n */\n get(id) {\n return plugins[id];\n },\n\n /**\n * Returns object with all plugins\n * @return {Object}\n */\n getAll() {\n return plugins;\n }\n };\n};\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","_","Backbone","core_slice","Array","prototype","slice","apply","fn","ctx","args","length","call","arr","index","hasKeys","obj","keys","isArray","arguments","all","key","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","which","objects","i","l","objectRegistry","register","unregister","isFunction","actionUndoRedo","action","type","undoTypes","object","before","after","options","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","clone","models","at","where","get","pop","shift","trigger","validateUndoActionCreation","undoTypesType","condition","addToStack","track","res","diff","add","maximumStackLength","isRegistered","cid","contains","push","splice","indexOf","map","concat","UndoTypes","collection","ignore","model","remove","undefined","isEmpty","each","unset","set","unsetData","afterAttributes","changedAttributes","keysAfter","previousAttributes","pick","keysPrevious","val","reset","previousModels","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","isObject","extend","Action","Model","defaults","undo","attributes","redo","UndoStack","Collection","Infinity","setMaxLength","UndoManager","initialize","attr","on","value","startTracking","isArguments","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","s","merge","undoManager","addUndoType","changeUndoType","removeUndoType","clear","defaultAttributes","self","g","global","$","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","method","attribute","iteratee","context","cb","defaultVal","unshift","addUnderscoreMethods","Class","methods","instance","_isModel","modelMatcher","isString","attrs","matcher","matches","Events","eventSplitter","eventsApi","events","name","callback","opts","names","test","split","internalOn","listening","_events","onApi","_listeners","id","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","count","handlers","off","offApi","listeners","stopListening","ids","remaining","j","handler","_callback","once","onceMap","bind","listenToOnce","offer","Math","max","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","unbind","cidPrefix","parse","result","changed","validationError","idAttribute","toJSON","sync","escape","has","_validate","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","_pending","hasChanged","old","size","previous","fetch","success","resp","serverAttrs","wrapError","save","wait","validate","isNew","patch","xhr","destroy","url","base","urlError","replace","encodeURIComponent","constructor","isValid","error","values","pairs","invert","omit","chain","comparator","_reset","setOptions","addOptions","array","insert","min","tail","singular","removed","_removeModels","added","merged","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","some","m","_removeReference","_byId","modelId","first","findWhere","Error","sortBy","pluck","create","callbackOpts","_onModelEvent","event","prevId","forEach","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","any","include","includes","invoke","toArray","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","listener","undelegate","_createElement","document","createElement","className","_setAttributes","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","e","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","CodeMirror","extendMode","commentStart","commentEnd","newlineAfterToken","_type","content","textAfter","state","jsonMode","lexical","inlineElements","inline","configuration","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","mode","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","substr","substring","cmInstance","indentLine","outer","text","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","token","cur","pos","string","blankLine","end","setSelection","getCursor","mod","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","cls","range","rmClass","node","removeChildren","childNodes","removeChildrenAndAdd","appendChild","elt","tag","cssText","createTextNode","eltP","setAttribute","nodeType","parentNode","host","activeElt","activeElement","shadowRoot","addClass","joinClasses","a","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","f","copyObj","target","overwrite","prop","hasOwnProperty","countColumn","startValue","search","n","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","setTimeout","ms","clearTimeout","scrollerGap","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","score","priority","nothing","createObj","props","inst","Object","nonASCIISingleCaseWordChar","isWordCharBasic","toUpperCase","toLowerCase","isWordChar","helper","source","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","iterateBidiSections","order","found","part","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","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","reverse","getOrder","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","nl","rt","hasSelection","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","properties","nstate","info","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","chunk","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","lineNo","no","lineAtHeight","h","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","next","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","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","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","sel","ranges","primIndex","empty","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","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","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","active","anchorNode","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","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","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","v","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","cloneNode","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","join","lineSeparator","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","option","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","blur","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","toggle","enter","over","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","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","hiddenTextarea","border","addEditorMethods","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","func","defineDocExtension","version","keySet","config","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","script","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","html","htmlState","inTag","endTagA","endTag","localState","localMode","local","statementIndent","jsonldMode","jsonld","json","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","firstChar","c","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","setStyle","inText","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","assets","noAssets","stylePrefix","upload","uploadName","headers","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","getFilename","getDefaults","AssetImage","unitDim","pfx","ppfx","pStylePrefix","em","__getBhv","am","__getBehaviour","template","getPreview","getInfo","updateTarget","innerHTML","AssetView","click","dblclick","dim","onClick","coll","onDblClick","onSelect","onRemove","stopImmediatePropagation","TypeableCollection","AssetImageView","isType","renderAssets","addToAsset","removedAsset","deselectAll","handleSubmit","getAddInput","trim","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","fragmentEl","rendered","typeView","assetsEl","hide","append","removeClass","fuRendered","fu","uploadId","disableUpload","onUploadStart","__propEv","onUploadEnd","onUploadError","err","console","onUploadResponse","clb","FormData","reqHead","fetchOpts","then","status","Promise","catch","initDrop","that","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","onDragLeave","getSelected","runCommand","Modal","AssetManager","setTarget","item","response","promises","mimeTypeMatcher","promise","resolve","image","Image","readAsDataURL","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","storageKey","Assets","removeBefore","uploadStart","uploadEnd","uploadError","uploadResponse","__initListen","getAllVisible","getAll","__onAllEvent","debounce","__trgCustom","getConfig","__customData","bhv","isOpen","asset","complete","run","isActive","__remove","store","noStore","stm","load","getContainer","assts","toRender","__viewParams","FileUploader","AssetsView","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","__behaviour","_bhv","appendTo","appendOnClick","blocks","Block","media","category","activate","resetId","disable","ctg","Blocks","Category","Categories","mousedown","dragstart","drag","dragend","endDrag","__getModule","handleClick","sorter","getSorter","setDropContent","validTarget","getEl","valid","getWrapper","setSelected","startDrag","refreshCanvas","setDragHelper","startSort","handleDragStart","__startDrag","handleDrag","__drag","handleDragEnd","__endDrag","endMove","class","clsAdd","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","iconEl","blocksEl","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","updateConfig","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","BlockView","ignoreCategories","catModel","catId","catView","getCategoriesEl","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","bm","dragStop","getContent","_dragBlock","dragResult","dragContent","oldKey","toActive","toSelect","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","BlocksView","elTo","isElement","__logWarn","prp","getCategories","external","colls","scripts","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","toggleEffects","enable","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","defaultView","frameElement","sortOpts","onEnd","customTarget","__customTglEff","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","cancelled","getStyle","addStyle","cnt","preserveSelected","getContentByData","allowfullscreen","tools","frameView","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","attrStr","items","stl","appendVNodes","getModel","getWindow","getJsContainer","jsContainer","createEl","getToolsEl","frameWrapView","elTools","getGlobalToolsEl","getHighlighter","_getTool","getBadgeEl","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","toolsEl","wrp","_toggleEffects","startAutoscroll","lastMaxHeight","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","actualTop","limitTop","limitBottom","nextTop","isUndefined","opacity","showGlobalTools","updateClientY","getPointerEvent","getZoomDecimal","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","normalize","stls","prevStyles","conf","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","canvasView","cv","FrameView","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","__clear","removeEl","md","updateDim","__handleSize","noChanges","isNull","onScroll","onscroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","DomainViews","itemView","FrameWrapView","onRemoveBefore","timerZoom","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","FramesView","currFrame","views","_getFrame","_parentEvent","onCanvasMove","getKeyChar","isInputFocused","onWheel","getZoom","defOpts","mpl","framesArea","transform","isElInViewport","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","getCanvasOffset","getElementPos","eo","frmTop","avoidFrameOffset","frmLeft","getElementOffsets","isTextNode","parseFloat","getPosition","bEl","fo","co","updateScript","getId","scriptContainer","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","CanvasView","getCanvasView","getFrame","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getGhostEl","getToolbarEl","getResizerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","xOffset","getMouseRelativeCanvas","toIgnore","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","components","Wrapper","idMapKeys","selectors","sSel","idSel","temporary","noCount","avoidStore","setHead","getHeadByAttr","addHeadItem","removeHeadByAttr","sm","smc","fromUndo","storeHtml","getHtml","storeCss","getCss","onReset","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","rule","isId","toHTML","build","beforeEach","mapModel","comps","scrStr","scrProps","mapJs","mapType","hasWin","require","codeName","onChange","ed","setContent","autoFormatRange","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","txtarea","updateViewer","getCode","genId","maxValue","MAX_VALUE","getMediaLength","mediaQuery","compCls","buildFromModel","avoidInline","styleToString","getFullName","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","keepUnusedStyles","getDeclaration","__cleanSelector","getQueryLength","itemsArr","isMobFirst","mquery","sortRules","getKey","q","strict","commandsDef","defaultCommands","CommandAbstract","sender","selAll","getSelectedAll","nativeDrag","defComOptions","logWarning","hideTlb","altMode","eventDrag","emitUpdate","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","oldCmd","default","cmdName","loadDefaultCommands","noStop","command","cmdObj","stopCommand","getActive","callRun","abort","callStop","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","onFrameScroll","getCanvasBody","getCanvasTools","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","getElementGuides","lastEl","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","itemStr","setTranslate","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","codeMirror","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","$badge","getBadge","$hl","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","addOpts","copyable","cop","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","onclick","canvasS","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","calibrated","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","ToolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","getOffsetMethod","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","__getConfig","getAllMap","acc","__initConfig","def","__catchAllEvent","collections","entity","__appendTo","_createId","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","shallow","ensureSelectors","__onChange","isEmptyObj","changesUp","toListen","getSelectors","Selectors","typeStr","addSelector","selOpts","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","ruleProps","wd","selAdd","a1S","a2S","Styleable","onAdd","parseCss","rulesView","storeStyles","elStyle","CssRules","postLoad","um","getCacheLoad","hasPages","slc","singleSel","parserCss","checkNode","addCollection","sl","newSels","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","toCSS","CssRuleView","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","CssGroupRuleView","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pr","widthMedia","Device","checkUnit","Devices","DevicesView","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","storeWrapper","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","btoa","isDefaultSrc","parseUri","uri","query","qrs","pair","hostname","protocol","port","mapUrl","address","frameborder","OComponent","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","compProt","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","color","modestbranding","sources","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","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","selectable","hoverable","inSvg","createElementNS","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","storeComponents","compTypes","componentHovered","selectAdd","selectRemove","setComponents","isObj","getComponents","toStore","addComponent","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","keySymbols","keySymbol","keySymbolOvrd","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","updated","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","hasComps","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","elDoc","_setData","replaceWith","triggerAdd","sameFrameView","viewObject","parentEl","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","holderClass","inputClass","handleModelChange","elementUpdated","getInputEl","__onInputChange","fromInput","inputEl","plh","defaultOpts","beforeShow","noop","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","spect","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","format","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","timeout","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","getUniqueSelectionPalette","drawInitial","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","paletteElementClick","keydown","hasClass","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","rightclick","hex","pad2","clamp01","hue","results","slices","modification","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","Input","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","contClass","validateInputValue","deepCheck","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","itemsView","itemType","itemViewNotFound","ns","reuseView","typeField","clearItems","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","titles","preview","fullscreen","selectorManager","emptyState","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","traitManager","false","_blank","messagesAdd","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","return","esc","down","del","delete","home","pageup","pagedown","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","modifiersMatch","dispatch","keymaster","configDef","keymaps","defKeys","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","clsNoEdit","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","getVisibilityEl","eyeEl","hClass","toggleVisibility","prevDspKey","prevDisplay","handleEdit","handleEditKey","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","toggleOpening","handleSelect","fromLayers","handleHover","handleHoverOut","freeze","unfreeze","isCountable","caret","setRoot","_rendered","__clearItems","ItemView","componentChanged","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","btn","Buttons","Panel","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","clicked","toggleActive","parentM","ButtonView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","ButtonsView","PanelView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","PanelsView","disableButtons","runDefaultCommand","stopDefaultCommand","Button","deactivateAllExceptOne","except","disableAllButtons","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","classSets","classSet","pHtml","pCss","Parser","defaultType","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","btnState","isValidTag","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","syncActions","caretRangeFromPoint","poiner","rangeParent","rangeOffset","textHtml","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","startEditTag","endEditTag","changeStatus","removeTag","removeSelected","$chk","labelInfo","labelHead","stateInputId","stateInputC","toList","toListCls","__handleStateChange","checkSync","renderClasses","tagRemoved","renderStates","syncStyle","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","startNewTag","$addBtn","$input","endNewTag","onInputKeyUp","addNewTag","checkStates","getState","statesEl","targets","trgs","validSelectors","__getCommonSelectors","_commonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","getStyleable","idRes","stateChanged","addSelected","ClassTagView","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","ClassTagsView","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","curr","combination","autosave","autoload","stepsBeforeSave","checkLocal","urlStore","urlLoad","jqXHR","onComplete","contentTypeJson","fetchOptions","hasLocal","setItem","getItem","removeItem","clbErr","onResponse","request","typeJson","typeHead","bodyObj","bodyKey","eventStart","eventAfter","eventEnd","eventError","storages","defaultStorages","_disable","remote","RemoteStorage","LocalStorage","currentStorage","loadDefaultProviders","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","onAfter","keysF","__clearKeys","itemKey","itemKeyR","getCurrentStorage","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","__p","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","callParentInit","skipInit","fixedValues","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","__handleChange","InputColor","PropertySelect","getOptionId","isDef","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","InputNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","eventCapture","appendInput","clsField","removeView","rerender","getClbOpts","elInput","getInputElem","onUpdate","onEvent","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","inputs","createInput","hasLabel","noLabel","tmpl","TraitView","updatedCollection","resultName","valResult","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","inputNumber","$unit","labelButton","typesDef","TraitNumberView","TraitSelectView","checkbox","TraitCheckboxView","TraitColorView","TraitButtonView","TraitsView","__onUp","getTraitsViewer","baseView","beforeCache","trackSelection","hasSkip","getChanged","hasUndo","undoExc","chn","hasRedo","getInstance","getStack","getStackGroup","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","boxSizing","includeMargins","getEventsCache","parseEventName","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","queryEncode","isMultiple","eleValue","containers","fragmentRe","singleTagRe","td","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceAll","docEle","clientTop","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","oldEl","newEl","total","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","setTimeoutFunc","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","prom","promiseFinally","allSettled","race","setImmediate","rej","req","XMLHttpRequest","withCredentials","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","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","normalizeFloat","ratioActive","ratio","getGlobal","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","__gjsv","chars","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","ReferenceError","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","storageManager","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","pageManager","toLog","attrsOrig","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","editingCmp","loadData","cacheLoad","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","getProject","loadProject","getDirtyCount","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"grapes.min.js","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,IARrB,CASyB,oBAAfK,WAA6BA,WAAgC,oBAAXC,OAAyBA,OAASC,MAAO,WACrG,M,4BCVAL,EAAOD,QAAU,EAAjB,O,yUCAA,SAQEO,OAAQ,GAIRC,SAAU,GAGVC,YAAa,MAKbC,OAAQ,EAGRC,WAAY,QAGZC,QAAS,GAGTC,OAAQ,GAGRC,YAAa,UAIbC,aAAa,EAabC,SAAS,EAOTC,YAAa,KAWbC,WAAY,KAGZC,eAAe,EAQfC,UAAW,KASXC,aAAc,KAGdC,cAAc,EAGdC,QAAQ,EASRC,UAAU,EAGVC,iBAAkB,EAGlBC,gBAAiB,I,4fCrGEC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLC,KAAM,GACNC,IAAK,M,qBAWT,WACE,OAAOvB,KAAKwB,IAAI,U,oBAUlB,WACE,OAAOxB,KAAKwB,IAAI,S,yBAYlB,WACE,OAAOxB,KAAKwB,IAAI,OAAOC,MAAM,KAAKC,MAAMD,MAAM,KAAKE,U,0BAYrD,WACE,OAAO3B,KAAK4B,cAAcH,MAAM,KAAKC,U,EArDpBL,C,QAAcQ,G,6/BAyDnCR,EAAMS,UAAUC,YAAc,MAE9BV,EAAMW,YAAc,WAClB,OAAOC,EAAAA,EAAAA,QAAOjC,KAAK8B,UAAW,a,ICjEXI,EAAAA,SAAAA,I,yHACnB,WACE,cACKb,EAAMW,eADX,IAEEV,KAAM,QACNa,QAAS,KACTC,OAAQ,EACRC,MAAO,Q,EAPQH,CAAmBb,G,ycCCnBiB,EAAAA,SAAAA,I,2HACnB,WAAmB,IAARC,EAAQ,uDAAJ,GACbvC,KAAKwC,QAAUD,EACfvC,KAAKyC,WAAaF,EAAEE,WACpB,IAAMC,EAASH,EAAEG,QAAU,GAC3B1C,KAAK0C,OAASA,EACd1C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAK+C,UAAY/C,KAAK2C,IAAM,QAC5B3C,KAAKgD,SAAShD,KAAKiD,MAAO,iBAAkBjD,KAAKkD,QACjDlD,KAAKiD,MAAME,KAAOnD,KAClB,IAAMoD,EAAOpD,KAAKoD,MAAQpD,KAAKoD,KAAKC,KAAKrD,MACzCoD,GAAQA,EAAKb,K,sBAGf,WACE,IAAQO,EAAO9C,KAAP8C,GACFQ,EAAKR,GAAMA,EAAGtB,IAAI,gBACxB,OAAQ8B,GAAMA,EAAGC,kBAAqB,K,sBAGxC,WACE,IAAMZ,EAAM3C,KAAK2C,IACjB,qCACgBA,EADhB,oCAEM3C,KAAKwD,aAFX,8CAIgBb,EAJhB,4BAKM3C,KAAKyD,UALX,8CAOgBd,EAPhB,gF,0BAkBF,SAAae,GACPA,GAAUA,EAAOC,MACnBD,EAAOC,IAAI,cAAcC,EAAAA,EAAAA,OAAMF,EAAOlC,IAAI,gBAC1CkC,EAAOC,IAAI,MAAO3D,KAAKiD,MAAMzB,IAAI,W,wBAIrC,WACE,MAAO,K,qBAGT,WACE,MAAO,K,oBAGT,WACE,IAAMqC,EAAK7D,KAAK6D,GAGhB,OAFAA,EAAGC,UAAY9D,KAAK+D,SAAS/D,KAAMA,KAAKiD,OACxCY,EAAGd,UAAY/C,KAAK+C,UACb/C,S,EA7DUsC,CAAkB0B,EAAAA,M,scCClBC,EAAAA,SAAAA,I,2HACnB,WACE,IAAQtB,EAAqB3C,KAArB2C,IAAKC,EAAgB5C,KAAhB4C,KACPrB,EADuBvB,KAAViD,MACDzB,IAAI,OACtB,OAAO0C,EAAAA,EAAAA,GAAP,oKACgBvB,EAA6CpB,EAC7CoB,EAAiBC,K,qBAInC,WACE,IAAQD,EAAe3C,KAAf2C,IAAKM,EAAUjD,KAAViD,MACTkB,EAAOlB,EAAMzB,IAAI,QACjBa,EAAQY,EAAMzB,IAAI,SAClBY,EAASa,EAAMzB,IAAI,UACnB4C,EAAOnB,EAAMzB,IAAI,WACjB6C,EAAMhC,GAASD,EAAT,UAAqBC,EAArB,YAA8BD,GAA9B,OAAuCgC,GAAS,GAE1D,OADAD,EAAOA,GAAQlB,EAAMrB,eACdsC,EAAAA,EAAAA,GAAP,iHACgBvB,EAAYwB,EACZxB,EAAkB0B,K,kBAIpC,SAAK9B,GACH,IAAMI,EAAM3C,KAAK2C,IACjB3C,KAAK+C,WAAL,WAAsBJ,EAAtB,iB,qBAOF,WACE,IAAQM,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACP2B,EAAWtE,KAAKuE,WAAhBD,OACAE,EAAYxE,KAAK0C,OAAjB8B,QACFC,EAAOzE,KAAKyC,WAClBgC,EAAKC,QAAQ,eACb1E,KAAK2E,IAAIC,SAASjC,EAAM,cAEpBkC,EAAAA,EAAAA,YAAWP,GACbA,EAAOrB,GAAO,IACL4B,EAAAA,EAAAA,YAAWL,GACpBA,EAAQvB,GAERjD,KAAK8E,aAAaL,EAAKf,U,wBAQ3B,WACE,IAAQZ,EAAc9C,KAAd8C,GAAIG,EAAUjD,KAAViD,MACJqB,EAAWtE,KAAKuE,WAAhBD,OACAS,EAAe/E,KAAK0C,OAApBqC,WACR,EAA6B/E,KAAKyC,WAA1BiB,EAAR,EAAQA,OAAQsB,EAAhB,EAAgBA,UAEZH,EAAAA,EAAAA,YAAWP,GACbA,EAAOrB,GAAO,IACL4B,EAAAA,EAAAA,YAAWE,GACpBA,EAAW9B,IAEXjD,KAAK8E,aAAapB,GAClBZ,GAAMA,EAAGtB,IAAI,SAASyD,UAExBJ,EAAAA,EAAAA,YAAWG,IAAaA,EAAS/B,K,sBAOnC,SAASiC,GACPA,EAAEC,2BACFnF,KAAKiD,MAAMR,WAAWS,OAAOlD,KAAKiD,W,EA7EjBgB,CAAuB3B,GAiF5C2B,EAAenC,UAAUsD,OAAS,CAChC,mCAAoC,WACpCC,MAAO,UACPC,SAAU,c,0cCnFSC,EAAAA,SAAAA,I,mGAAAA,CAAeC,EAAAA,WAAAA,OAAkBC,EAAAA,I,wbAEtDF,EAAOzD,UAAU4D,MAAQ,CACvB,CACEC,GAAI,QACJ1C,MAAOf,EACPiB,KAAMc,EACN2B,OAJF,SAISC,GACL,MAAoB,iBAATA,EACF,CACLvE,KAAM,QACNC,IAAKsE,GAGFA,K,ICjBQC,EAAAA,SAAAA,I,yHACnB,YAA4B,IAAjBnD,EAAiB,EAAjBA,IAAKC,EAAY,EAAZA,KAAME,EAAM,EAANA,GAChBiD,EAAO,GAaX,OAZI/F,KAAK0C,OAAO1B,eACd+E,EAAO,6BAAH,OACepD,EADf,kDAEgBC,EAFhB,iBAE6BD,EAF7B,4DAG0BG,GAAMA,EAAGkD,EAAE,yBAHrC,iEAKmBpD,EALnB,sBAKoCE,GAAMA,EAAGkD,EAAE,0BAL/C,uFAWN,6BACcrD,EADd,8CAEgBA,EAFhB,qCAGMoD,EAHN,8CAKgBpD,EALhB,kG,wBAWF,SAAWJ,GACTvC,KAAKwC,QAAUD,EACfvC,KAAK0C,OAASH,EAAEG,OAChB1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtCH,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB,IAAM2B,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,QAASzE,KAAKiG,cAClCjG,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKkG,YAChClG,KAAKgD,SAASyB,EAAM,SAAUzE,KAAKmG,cACnCnG,KAAKgD,SAASyB,EAAM,cAAezE,KAAKoG,e,0BAS1C,SAAalB,GACXA,EAAEmB,iBACF,IAAMC,EAAQtG,KAAKuG,cACbC,EAAMF,GAASA,EAAMT,MAAMY,OAC3B3F,EAAYd,KAAK0C,OAAO5B,UAEzB0F,IAILF,EAAMT,MAAQ,GACd7F,KAAK0G,cAAcC,UAAY,EAE3B7F,EACFA,EAAUuC,KAAKrD,KAAfc,CAAqB0F,GAErBxG,KAAKwC,QAAQoE,iBAAiBC,IAAIL,EAAK,CAAEM,GAAI,O,yBASjD,WAEE,OAAO9G,KAAK6D,GAAGkD,cAAR,WAA0B/G,KAAK2C,IAA/B,a,yBAQT,WAEE,OADK3C,KAAKgH,UAAahH,KAAKgH,SAASnB,QAAO7F,KAAKgH,SAAWhH,KAAK6D,GAAGkD,cAAR,WAA0B/G,KAAK2C,IAA/B,qBACrD3C,KAAKgH,W,0BAQd,SAAa/D,GACNjD,KAAKyC,WAAWwE,QACnBjH,KAAKkH,mB,wBAQT,SAAWjE,GACqB,GAA1BjD,KAAKyC,WAAWwE,QAClBjH,KAAKkH,eAAe,GAEtBlH,KAAKmH,SAASlE,K,sBAUhB,SAASA,GAA0B,IAAnBmE,EAAmB,uDAAN,KACrBC,EAAWD,EACX3E,EAAazC,KAAKyC,WAClBC,EAAS1C,KAAK0C,OACd4E,EAAW,IAAIrE,EAAMsE,SAAS,CAClCtE,MAAAA,EACAR,WAAAA,EACAC,OAAAA,IACC8E,SAAS3D,GAEZ,GAAIwD,EACFA,EAASI,YAAYH,OAChB,CACL,IAAMI,EAAW1H,KAAK0G,cAClBgB,GACFA,EAASC,aAAaL,EAAUI,EAASE,YAI7C,OAAON,I,4BAQT,SAAeO,GACb,IAAMH,EAAW1H,KAAK2E,IAAImD,KAAT,WAAkB9H,KAAK2C,IAAvB,WAEjB,GAAIkF,EACFH,EAASK,YACJ,CACL,IAAM7H,EAAWF,KAAK0C,OAAOxC,SAC7BA,GAAYwH,EAASM,OAAO9H,M,yBAQhC,WACE,IAAMyC,EAAM3C,KAAK2C,IACjB3C,KAAK2E,IAAImD,KAAT,WAAkBnF,EAAlB,cAAkCsF,YAAlC,UAAiDtF,EAAjD,gB,0BAGF,WAAe,WACP0E,EAAWa,SAASC,yBACpBlI,EAASD,KAAK2E,IAAImD,KAAT,WAAkB9H,KAAK2C,IAAvB,WACf1C,EAAO8H,QACP/H,KAAKkH,eAAelH,KAAKyC,WAAWwE,QACpCjH,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKkE,SAASlE,EAAOoE,MACnDpH,EAAO+H,OAAOX,K,oBAGhB,WACE,IAAMgB,EAAarI,KAAKwC,QAAQ8F,GAAGd,SAAS3D,GAK5C,OAJA7D,KAAK2E,IAAIoD,QACT/H,KAAK2E,IAAIqD,OAAOK,GAAYL,OAAOhI,KAAK+D,SAAS/D,OACjDA,KAAK6D,GAAGd,UAAR,UAAuB/C,KAAK4C,KAA5B,iBACA5C,KAAKiG,eACEjG,S,EAhLU8F,CAAmB9B,EAAAA,MAoLxC8B,EAAWhE,UAAUsD,OAAS,CAC5BmD,OAAQ,gB,g+CCnLWC,EAAAA,SAAAA,I,yHACnB,YAA0D,IAA/C7F,EAA+C,EAA/CA,IAAK8F,EAA0C,EAA1CA,MAAOC,EAAmC,EAAnCA,SAAUC,EAAyB,EAAzBA,SAAUlI,EAAe,EAAfA,YACzC,OAAOyD,EAAAA,EAAAA,GAAP,uSAEevB,EAAa8F,EAGhBC,EAGJC,EAAW,WAAa,GACxBlI,EAAc,WAAa,M,wBAOrC,WAAsB,IAAXmI,EAAW,uDAAJ,GAChB5I,KAAKwC,QAAUoG,EACf,IAAMC,EAAID,EAAKlG,QAAU,GACzB1C,KAAKL,OAASiJ,EAAKjJ,OACnBK,KAAK0C,OAASmG,EACd7I,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAK2C,IAAMkG,EAAE1I,aAAe,GAC5BH,KAAK4C,KAAOiG,EAAEhG,cAAgB,GAC9B7C,KAAK0D,OAAS1D,KAAKwC,QAAQoE,kBAAoB,GAC/C5G,KAAK0I,SAAW1I,KAAK2C,IAAM,aAC3B3C,KAAK2I,cAA+BG,IAApBD,EAAEE,cAA8BF,EAAEE,eAAiBF,EAAEzI,SAAWyI,EAAEhI,cAClFb,KAAKS,iBAAgCqI,IAAlBD,EAAEpI,aAA4BoI,EAAEpI,YACnDT,KAAKoF,QAAL,4BACcpF,KAAK0I,UAAa,cAEhC,IAAI9H,EAAaiI,EAAEjI,WAEfA,EACFZ,KAAKY,WAAaA,EAAWyC,KAAKrD,OACxB6I,EAAEzI,QAAUyI,EAAEhI,gBACxBb,KAAKY,WAAaZ,KAAKgJ,YAAYnI,eAGrCb,KAAKiJ,mB,2BAOP,WACE,IAAQtJ,EAAWK,KAAXL,OACRA,GAAUA,EAAOuJ,SAAS,wB,yBAQ5B,SAAYC,GACV,IAAQxE,EAAgB3E,KAAhB2E,IAAKhF,EAAWK,KAAXL,OACbA,GAAUA,EAAOuJ,SAAS,mBAAoBC,GAC9C,IAAM7C,EAAQ3B,EAAImD,KAAK,SACvBxB,GAASA,EAAM8C,IAAI,M,2BAQrB,SAAcC,GACZ,IAAQ1J,EAAWK,KAAXL,OACR2J,QAAQC,MAAMF,GACdrJ,KAAKwJ,YAAYH,GACjB1J,GAAUA,EAAOuJ,SAAS,qBAAsBG,K,8BAQlD,SAAiBI,EAAMC,GACrB,IACIC,EADIhK,EAA2BK,KAA3BL,OAAQ+C,EAAmB1C,KAAnB0C,OAAQgB,EAAW1D,KAAX0D,OAExB,IACEiG,EAAuB,iBAATF,EAAoBG,KAAKC,MAAMJ,GAAQA,EACrD,MAAOvE,GACPyE,EAAOF,EAGT9J,GAAUA,EAAOuJ,SAAS,wBAAyBS,GAE/CjH,EAAOhC,SAAWgD,GACpBA,EAAOmD,IAAI8C,EAAKG,KAAM,CAAEhD,GAAI,IAG9B9G,KAAKwJ,YAAYC,GACjBC,GAAOA,EAAIC,K,wBASb,SAAWzE,EAAGwE,GAAK,WACXK,EAAQ7E,EAAE8E,aAAe9E,EAAE8E,aAAaD,MAAQ7E,EAAExB,OAAOqG,MACvDrH,EAAW1C,KAAX0C,OACA3B,EAAiB2B,EAAjB3B,aAGR,IAA6B,KADAA,GAAgBA,EAAagJ,IAC1D,CAEA,IAAME,EAAO,IAAIC,SACT3J,EAAwBmC,EAAxBnC,OAAQI,EAAgB+B,EAAhB/B,YAEhB,IAAK,IAAIwJ,KAAS5J,EAChB0J,EAAKjC,OAAOmC,EAAO5J,EAAO4J,IAG5B,GAAInK,KAAKS,YACP,IAAK,IAAI2J,EAAI,EAAGA,EAAIL,EAAM9C,OAAQmD,IAChCH,EAAKjC,OAAL,UAAetF,EAAOrC,WAAtB,MAAsC0J,EAAMK,SAErCL,EAAM9C,QACfgD,EAAKjC,OAAOtF,EAAOrC,WAAY0J,EAAM,IAG1B/J,KAAK0D,OAAlB,IACM8C,EAAM9D,EAAOtC,OACbE,EAAUoC,EAAOpC,QACjB+J,EAAU,mBAMhB,QAJ+B,IAApB/J,EAAQ+J,KACjB/J,EAAQ+J,GAAW,kBAGjB7D,EAAK,CACPxG,KAAKsK,gBACL,IAAMC,EAAY,CAChBC,OAAQ,OACRhK,YAAakC,EAAOlC,aAAe,UACnCF,QAAAA,EACA2J,KAAAA,GAOF,OALoBtJ,EAChBA,EAAY6F,EAAK+D,IACjBE,EAAAA,EAAAA,GAAMjE,EAAK+D,GAAWG,MAAK,SAAAvB,GAAG,OACA,IAA1BA,EAAIwB,OAAS,IAAO,GAAUxB,EAAIM,OAASN,EAAIM,OAAOiB,MAAK,SAAAjB,GAAI,OAAImB,QAAQC,OAAOpB,UAEvEiB,MAAK,SAAAjB,GAAI,OAAI,EAAKqB,iBAAiBrB,EAAMC,MAAMqB,OAAM,SAAA1B,GAAG,OAAI,EAAK2B,cAAc3B,U,sBAQtG,WACE,IAAI4B,EAAOjL,KACX,IAAKA,KAAKkL,aACRlL,KAAKkL,WAAalL,KAAK2E,IAAImD,KAAK,QAAQtG,IAAI,GACxC,cAAexB,KAAKkL,YAAY,CACjBlL,KAAKY,WACtBZ,KAAKkL,WAAWC,WAAa,WAE3B,OADAnL,KAAK+C,UAAYkI,EAAKtI,IAAM,SACrB,GAET3C,KAAKkL,WAAWE,YAAc,WAE5B,OADApL,KAAK+C,UAAY,IACV,GAET/C,KAAKkL,WAAWG,OAAS,SAAUnG,GACjClF,KAAK+C,UAAY,GACjBmC,EAAEmB,iBACF4E,EAAKrK,WAAWsE,O,0BAOxB,SAAaoG,GAAI,WACXC,EAAW,EACT1C,EAAI7I,KAAK0C,OACTI,EAAKwI,EAAGrI,MACRuI,EAAOF,EAAGzH,GACV4H,EAAS3I,EAAGtB,IAAI,UAEhBkK,GADY5I,EAAGtB,IAAI,UAAUqC,GACnBf,EAAGtB,IAAI,UAAUmK,WAC3B/I,EAAO5C,KAAK4C,KACZgJ,EAAa,GAAH,OAAMhJ,EAAN,mBACViJ,EAAc,GAAH,OAAMjJ,EAAN,YACXkJ,EAAmB,WACvBN,EAAKzI,UAAYyI,EAAKzI,UAAUgJ,QAAQH,EAAY,IAAInF,OACxD8E,EAAW,GAEPS,EAAa,WAKjB,OAJKT,IACHC,EAAKzI,WAAL,WAAsB6I,GACtBL,EAAW,IAEN,GAEHU,EAAc,WAElB,OADAH,KACO,GAEHI,EAAS,SAAAhH,GAMb,GALA4G,IACA5G,EAAEmB,iBACFnB,EAAEiH,kBACF,EAAKvL,WAAWsE,GAEZ2D,EAAE1H,kBAAoBsK,EAAQ,CAChC,IAAM/H,EAAS+H,EAAOW,cACtBX,EAAOY,WAAW,cAAe,CAC/B3I,OAAAA,EACAsB,SAF+B,WAG7ByG,EAAOa,MAAMrH,QACbwG,EAAOc,aAAaC,UAAU,SAKpC,OAAO,GAGTlB,EAAG3G,IAAIqD,OAAP,uBAA6B6D,EAA7B,cAA6ChD,EAAEzH,gBAA/C,WACA0K,IAEI,cAAeN,GACjB,CAACA,EAAME,GAASe,SAAQ,SAAAC,GACtBA,EAAKvB,WAAaa,EAClBU,EAAKtB,YAAca,EACnBS,EAAKrB,OAASa,O,oBAKpB,WACE,IAAQvH,EAAiB3E,KAAjB2E,IAAKhC,EAAY3C,KAAZ2C,IAAKG,EAAO9C,KAAP8C,GAYlB,OAXA6B,EAAIT,KACFlE,KAAK+D,SAAS,CACZ0E,MAAO3F,GAAMA,EAAGkD,EAAE,4BAClB0C,SAAU1I,KAAK0I,SACfC,SAAU3I,KAAK2I,SACflI,YAAaT,KAAKS,YAClBkC,IAAAA,KAGJ3C,KAAK2M,WACLhI,EAAIiI,KAAK,QAASjK,EAAM,iBACjB3C,S,EA/PUwI,CAAyBxE,EAAAA,M,qkBAmQ9CwE,EAAiB3H,cAAgB,SAAUqE,EAAGwE,GAAK,WAE3CK,EAAQ7E,EAAE8E,aAAe9E,EAAE8E,aAAaD,MAAQ7E,EAAExB,OAAOqG,MACzD8C,EAAW,CAAE/C,KAAM,IAGzB,GAAKgD,WAAL,CAKA,IAXiD,EAW3CC,EAAW,GACXC,EAAkB,eAZyB,IAc9BjD,GAd8B,yBActCkD,EAdsC,QAiBzCC,EAAU,IAAItC,SAAQ,SAACuC,EAAStC,GACpC,IAAMuC,EAAS,IAAIN,WACnBM,EAAOC,iBAAiB,QAAQ,SAAAC,GAC9B,IAAIhM,EACE6C,EAAO8I,EAAK9I,KAGZoJ,EAAQP,EAAgBQ,KAAKP,EAAK3L,MA4BxC,GAAa,WA1BXA,EADEiM,EACKA,EAAM,GAENN,EAAK3L,MAwBQ,CACpB,IAAMwI,EAAO,CACXvI,IAAK6L,EAAOnL,OACZkC,KAAAA,EACA7C,KAAAA,EACAc,OAAQ,EACRC,MAAO,GAGHoL,EAAQ,IAAIC,MAClBD,EAAMJ,iBAAiB,SAAS,SAAA9D,GAC9BsB,EAAOtB,MAETkE,EAAMJ,iBAAiB,QAAQ,WAC7BvD,EAAK1H,OAASqL,EAAMrL,OACpB0H,EAAKzH,MAAQoL,EAAMpL,MACnB8K,EAAQrD,MAEV2D,EAAMlM,IAAMuI,EAAKvI,SAGjB4L,EAFS7L,EAED,CACNC,IAAK6L,EAAOnL,OACZkC,KAAAA,EACA7C,KAAAA,GAIM8L,EAAOnL,WAGnBmL,EAAOC,iBAAiB,SAAS,SAAA9D,GAC/BsB,EAAOtB,MAET6D,EAAOC,iBAAiB,SAAS,SAAA9D,GAC/BsB,EAAO,cAGTuC,EAAOO,cAAcV,MAGvBF,EAASa,KAAKV,IA/EhB,2BAA0B,IAduB,8BAgGjDtC,QAAQiD,IAAId,GAAUrC,MACpB,SAAAZ,GACE+C,EAAS/C,KAAOA,EAChB,EAAKgB,iBAAiB+B,EAAUnD,MAElC,SAAAH,GACE,EAAKyB,cAAczB,WA/FrBvJ,KAAKgL,cAAc,IAAI8C,MAAM,qDCvN1B,IAAMC,EAAQ,QACRC,EAAQ,GAAH,OAAMD,EAAN,KACLE,EAAW,GAAH,OAAMD,EAAN,UACRE,EAAW,GAAH,OAAMF,EAAN,UACRG,EAAQ,GAAH,OAAMH,EAAN,OACLI,EAAW,GAAH,OAAMJ,EAAN,UACRK,EAAiB,GAAH,OAAMD,EAAN,WACdE,EAAW,GAAH,OAAMN,EAAN,UACRO,EAAS,GAAH,OAAMP,EAAN,QACNQ,EAAU,GAAH,OAAMR,EAAN,SACPS,EAAW,GAAH,OAAMT,EAAN,UACRU,EAAgB,GAAH,OAAMD,EAAN,UACbE,EAAc,GAAH,OAAMF,EAAN,QACXG,EAAgB,GAAH,OAAMH,EAAN,UACbI,GAAc,GAAH,OAAMJ,EAAN,aAExB,oBACE,IACIxO,EAAQ6O,EAAWxL,EAAIgF,EADvBO,EAAI,GAEFkG,EAAW,cAEjB,cACKC,EAAAA,GADL,IAGE7K,KAAM,eAEN8K,WAAY,SAEZ5N,MAAAA,EAEAkE,OAAAA,EAEAH,OAAQ,CACNyI,IAAKE,EACLzJ,OAAQ2J,EACRiB,OAAQhB,EACRrH,IAAKsH,EACLjL,OAAQkL,EACRe,aAAcd,EACdpN,OAAQqN,EACRc,KAAMb,EACNtJ,MAAOuJ,EACPa,YAAaX,EACbY,UAAWX,EACXY,YAAaX,EACbY,eAAgBX,IAGlBzL,KA3BF,WA2BoB,WAAbV,EAAa,uDAAJ,GAENE,GADNiG,EAAI,OAAK4G,GAAa/M,IACPG,aACf,EAAegG,EAAP/F,EAAR,EAAQA,GAkBR,OAjBA9C,KAAK0C,OAASmG,EACd7I,KAAK8C,GAAKA,EAENF,IACFiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAI3BF,EAAS,IAAIsF,EAAO,IACpBuJ,EAAY,IAAIvJ,EAAO,IACvBvF,KAAK6N,IAAM5N,EACXD,KAAK0P,eAGLzP,EAAO0P,GAAG,OAAO,SAAA1M,GAAK,OAAI,EAAK2M,gBAAgB/I,IAAI5D,MACnDhD,EAAO0P,GAAG,UAAU,SAAA1M,GAAK,OAAI,EAAK2M,gBAAgB1M,OAAOD,MAElDjD,MAGTkJ,SAnDF,SAmDWoC,GAAa,+BAANxB,EAAM,iCAANA,EAAM,mBACpB,EAAA9J,KAAK8C,IAAG4B,QAAR,SAAgB4G,GAAhB,OAAuBxB,KACvB,EAAA9J,KAAK6P,UAASnL,QAAd,SAAsB4G,GAAtB,OAA6BxB,KAG/BgG,cAAcC,EAAAA,EAAAA,WAAS,WACrB/P,KAAKgQ,iBAGPA,YA5DF,YA6DgBhQ,KAAKuD,iBACR0M,WAAcjQ,KAAKkQ,UAAU,UAAUd,OAGhDpP,KAAK8C,GAAG4B,QAAQ1E,KAAKoF,OAAOnE,OAAQjB,KAAKmQ,iBAG3CA,aApEF,WAoEiB,WACPC,EAAMpQ,KAAKuD,iBACjB,MAAO,CACLD,GAAItD,KACJoP,KAAMpP,KAAKqQ,SACXpQ,OAAQD,KAAK6P,SAASS,OACtB5K,MAAO0K,EAAI1K,OAAS,GACpBuK,UAAWG,EAAIH,UACfhL,MAAO,kBAAM,EAAKA,SAClB/B,OAAQ,kBAAa,EAAKA,OAAL,QAAI,YACzBoB,OAAQ,SAACiM,EAAOC,GACd,IAAMrH,EAAM,EAAKtC,IAAI0J,IACrB1L,EAAAA,EAAAA,YAAWuL,EAAI9L,SAAW8L,EAAI9L,OAAO6E,EAAKqH,IAG5ChO,QAAS4N,EAAI5N,SAAW,KAwB5B4M,KA3GF,WA2GqB,IAAd5M,EAAc,uDAAJ,GACPiO,EAAMzQ,KAAK8C,GAAGtB,IAAI,YACxBiP,EAAIC,IAAI3B,EAAR,GACErJ,MAAO,CAAC,SACRpB,OAAQ,cACL9B,KASPyC,MAzHF,WA0HgBjF,KAAK8C,GAAGtB,IAAI,YACpBmP,KAAK5B,IASXsB,OApIF,WAqII,IAAMI,EAAMzQ,KAAK8C,GAAGtB,IAAI,YACxB,SAAUiP,IAAOA,EAAIG,SAAS7B,KAsBhClI,IA5JF,SA4JM0J,GAAkB,IAAX3H,EAAW,uDAAJ,GAMhB,YAJsB,IAAXA,EAAK9B,KACd8B,EAAK9B,GAAK,GAGL7G,EAAO4G,IAAI0J,EAAO3H,IAU3BpH,IA5KF,SA4KMD,GACF,OAAOtB,EAAO4Q,MAAM,CAAEtP,IAAAA,IAAO,IAAM,MAOrCsO,OApLF,WAqLI,OAAO5P,GAOT2P,cA5LF,WA6LI,OAAOd,GAaT5L,OA1MF,SA0MSqN,EAAO3H,GACZ,OAAO5I,KAAK8Q,SAASP,EAAO3H,IAG9BmI,MA9MF,WA+MI,OAAO/Q,KAAKgR,kBAGdC,KAlNF,SAkNOnH,GACH,OAAO9J,KAAKkR,gBAAgBpH,IAO9BqH,aA1NF,WA4NI,OADYnR,KAAKuD,iBACN0M,WAAc3M,GAAMA,EAAGO,IAQpC6C,YApOF,WAqOI,OAAOpD,EAAGO,GAAGkD,cAAc,qBAiB7BS,OAtPF,SAsPS4J,GACL,IAAIpR,KAAKkQ,UAAU,UAAnB,CACA,IAAMmB,EAAWD,GAASpR,KAAK6P,SAASS,OAExC,IAAKhN,EAAI,CACP,IAAMgO,EAAMtR,KAAKuR,eACjBD,EAAIhJ,GAAKtI,KAAKwR,eACd,IAAM3N,EAAKP,GAAMA,EAAGO,IACpBP,EAAK,IAAIwC,EAAJ,GACHjC,GAAAA,GACGyN,KAEF9J,SAIL,OADAsH,EAAU2C,MAAMJ,GACTrR,KAAKmR,iBAGdI,aAzQF,WA0QI,MAAO,CACL9O,WAAYqM,EACZlI,iBAAkB3G,EAClByC,OAAQmG,EACRlJ,OAAQK,OAmBZ0R,QAjSF,SAiSU/L,EAAIgM,GACV3R,KAAK6P,SAAS6B,QAAQ/L,EAAIgM,IAS5BC,QA3SF,SA2SUjM,GACN,OAAO3F,KAAK6P,SAAS+B,QAAQjM,IAQ/BkM,SApTF,WAqTI,OAAO7R,KAAK6P,SAASgC,YAKvB/L,WA1TF,WA2TI,OAAOxC,GAGTkO,aA9TF,WAkUI,OAHKlJ,IACHA,EAAK,IAAIwJ,EAAW9R,KAAKuR,iBAEpBjJ,GAGTyJ,OArUF,WAqUW,WACP/R,KAAK6P,SAAS4B,MAAM5I,EAAE5I,QACtB,IAAQ6C,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACZtC,EAAG6M,GAAH,cAAaZ,IAAY,kBAAM,EAAK7F,SAAS9D,EAAOgK,SACpDtM,EAAG6M,GAAH,eAAcZ,IAAY,kBAAM,EAAK7F,SAAS9D,EAAOH,WAGvD+M,WA5UF,SA4UaC,GACTpJ,EAAE3H,UAAYoH,GAAMA,EAAG4J,aAAaD,IAQtCzF,UArVF,SAqVY2F,GACRrD,EAAUpL,OAASyO,GAQrBnN,SA9VF,SA8VWoN,GACPtD,EAAU9J,SAAWoN,GAQvB5N,QAvWF,SAuWU6N,GACNxJ,EAAErE,QAAU6N,GAQdtN,WAhXF,SAgXasN,GACTxJ,EAAE9D,WAAasN,GAGjBC,YApXF,WAoXyB,IAAX1J,EAAW,uDAAJ,GACjB,OAAQ5I,KAAKuS,KAAL,OACFvS,KAAKuS,MAAQ,IACd3J,IAIPrF,eA3XF,WA4XI,OAAOvD,KAAKuS,MAAQ,IAGtBC,QA/XF,WAgYIvS,EAAOwS,gBACP3D,EAAU2D,gBACVxS,EAAOwR,QACP3C,EAAU2C,QACVnJ,GAAMA,EAAGpF,SACTI,GAAMA,EAAGJ,SACT,CAACjD,EAAQ6O,EAAWxL,EAAIgF,GAAImE,SAAQ,SAAArC,GAAC,OAAS,QAC9CpK,KAAKuS,KAAO,GACZvS,KAAK6N,IAAM,GACXhF,EAAI,Q,iPCrdV,SAGE6J,SAAU,GAaVC,eAAe,EAGfC,OAAQ,GAGR3R,QAAQ,G,4fCPW4R,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLC,MAAO,GACPC,QAAS,GACTC,MAAO,GACPC,SAAU,GACVC,UAAU,EACV5O,OAAQ,KACR6O,SAAS,EACTC,SAAS,EACT5O,QAAS,KACT6O,WAAY,M,mBAQhB,WACE,OAAOrT,KAAK2F,K,sBAOd,WACE,OAAO3F,KAAKwB,IAAI,W,sBAOlB,WACE,OAAOxB,KAAKwB,IAAI,W,wBAOlB,WACE,OAAOxB,KAAKwB,IAAI,a,8BAOlB,WACE,IAAM8R,EAAMtT,KAAKwB,IAAI,YACrB,OAAOqD,EAAAA,EAAAA,YAAWyO,EAAI9R,KAAO8R,EAAI9R,IAAI,SAAW8R,EAAIR,MAAQQ,EAAIR,MAAQQ,M,EAtDvDT,CAAchR,EAAAA,G,scCZd0R,EAAAA,SAAAA,I,mGAAAA,CAAe/N,EAAAA,Y,wbAEpC+N,EAAOzR,UAAUmB,MAAQ4P,E,ICHJW,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL7N,GAAI,GACJmN,MAAO,GACP1D,MAAM,EACNiE,WAAY,Q,EANGG,CAAiB3R,EAAAA,G,4bCCjB4R,EAAAA,SAAAA,I,mGAAAA,CAAmBjO,EAAAA,YAExCiO,EAAW3R,UAAUmB,MAAQuQ,E,4cCDRE,EAAAA,SAAAA,I,uHACnB,WACE,MAAO,CACLrO,MAAO,cACPsO,UAAW,YACXC,UAAW,kBACXC,KAAM,aACNC,QAAS,mB,wBAIb,SAAWvR,GAAgB,IAAbG,EAAa,uDAAJ,GACbO,EAAUjD,KAAViD,MACRjD,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAK0C,OAASA,EACd1C,KAAK+T,QAAU/T,KAAK+T,QAAQ1Q,KAAKrD,MACjCA,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKgD,SAASC,EAAO,SAAUjD,KAAKwH,U,yBAGtC,WACE,OAAOxH,KAAK8C,GAAGtB,IAAI,kB,yBAGrB,SAAY8J,GACV,IAAQ5I,EAAsB1C,KAAtB0C,OAAQO,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACjB0B,EAAUvB,EAAMzB,IAAI,YAAckB,EAAOiQ,cAE/C,GADA7P,EAAG4B,QAAQ,cAAezB,EAAOqI,GAC5B9G,EAAL,CAEO,IAAIK,EAAAA,EAAAA,YAAWL,GACpB,OAAOA,EAAQvB,EAAOH,EAAGkR,YAAa,CAAE1G,MAAOhC,IAEjD,IAII5H,EAAeuQ,EAJbC,EAASxR,EAAOyR,YAChBpB,EAAU9P,EAAMzB,IAAI,WACpB4S,EAAWtR,EAAGsJ,cAMpB,GALA8H,EAAOG,eAAetB,GAKlBqB,EAGF,GAFQF,EAAOI,YAAYF,EAASG,QAASxB,GAEnCyB,MACR9Q,EAAS0Q,MACJ,CACL,IAAMK,EAASL,EAASK,SAChBP,EAAOI,YAAYG,EAAOF,QAASxB,GACjCyB,QACR9Q,EAAS+Q,EACTR,EAAWQ,EAAOC,aAAaC,QAAQP,GAAY,GAMzD,IAAK1Q,EAAQ,CACX,IAAMkR,EAAU9R,EAAG+R,aACXX,EAAOI,YAAYM,EAAQL,QAASxB,GAClCyB,QAAO9Q,EAASkR,GAG5B,IAAM3S,EAASyB,GAAUA,EAAOsE,OAAO+K,EAAS,CAAEjM,GAAImN,IAAY,GAClEhS,GAAUa,EAAGgS,YAAY7S,EAAQ,CAAE8S,OAAQ,O,uBAO7C,SAAU7P,GACR,IAAQxC,EAAsB1C,KAAtB0C,OAAQI,EAAc9C,KAAd8C,GACVsQ,EADwBpT,KAAViD,MACEzB,IAAI,WAE1B,GAAiB,IAAb0D,EAAE8P,QAAiBtS,EAAOyR,YAAanU,KAAK6D,GAAGoR,YAAa7B,EAAhE,CACAtQ,EAAGoS,gBACH,IAAMhB,EAASxR,EAAOyR,YACtBD,EAAOiB,cAAcnV,KAAK6D,GAAIqB,GAC9BgP,EAAOG,eAAerU,KAAKiD,MAAMzB,IAAI,YACrC0S,EAAOkB,UAAUpV,KAAK6D,KACtB8L,EAAAA,EAAAA,IAAGzH,SAAU,UAAWlI,KAAK+T,Y,6BAG/B,SAAgBzI,GACdtL,KAAKqV,cAAcC,YAAYtV,KAAKiD,MAAOqI,K,wBAG7C,SAAWA,GACTtL,KAAKqV,cAAcE,OAAOjK,K,2BAG5B,WACEtL,KAAKqV,cAAcG,c,qBAOrB,SAAQtQ,IACNuQ,EAAAA,EAAAA,KAAIvN,SAAU,UAAWlI,KAAK+T,SAC9B,IAAMG,EAASlU,KAAK0C,OAAOyR,YAM3BD,EAAOwB,MAAQ,EACfxB,EAAOyB,Y,oBAGT,WACE,IAAQ7S,EAA6B9C,KAA7B8C,GAAIe,EAAyB7D,KAAzB6D,GAAIc,EAAqB3E,KAArB2E,IAAK/B,EAAgB5C,KAAhB4C,KAAMK,EAAUjD,KAAViD,MACrBmQ,EAAUnQ,EAAMzB,IAAI,WACpBoL,EAAO3J,EAAMzB,IAAI,eAAiB,GAClCoU,EAAMhJ,EAAKiJ,OAAS,GACpB9S,EAAY,GAAH,OAAMH,EAAN,SACTkQ,EAAShQ,GAAMA,EAAGkD,EAAH,8BAA4B/C,EAAM0C,MAAU1C,EAAMzB,IAAI,SACrEgG,EAASvE,EAAMzB,IAAI,UACnBwR,EAAQ/P,EAAMzB,IAAI,SAClBsU,EAAS1C,EAAU,GAAH,OAAMrQ,EAAN,uBAAgCH,EAAhC,gBACtB+B,EAAIiI,KAAKA,GACT/I,EAAGd,UAAY,UAAG6S,EAAH,YAAU7S,EAAV,YAAuBH,EAAvB,kBAAqCkT,GAASrP,OAC7D5C,EAAGC,UAAH,kBACIkP,EAAQ,gBAAH,OAAkBjQ,EAAlB,qBAAuCiQ,EAAvC,UAAuD,GADhE,gCAEgBjQ,EAFhB,oBAEoC+P,EAFpC,gBAIAjP,EAAG4E,MAAQmE,EAAKnE,OAAS5E,EAAGkS,YAAYtP,OACxC5C,EAAGmS,aAAa,gBAAaC,EAAAA,EAAAA,QAAOnT,IAAQsQ,IAC5C,IAAMnR,EAASuF,GAAUA,EAAO,CAAE3D,GAAAA,EAAIZ,MAAAA,EAAOF,UAAAA,EAAWmT,OAAQtT,IAEhE,OADIX,IAAQ4B,EAAGC,UAAY7B,GACpBjC,S,EArIU0T,CAAkB1P,EAAAA,M,+cCDlBmS,EAAAA,SAAAA,I,yHACnB,YAAyB,IAAdxT,EAAc,EAAdA,IAAKmQ,EAAS,EAATA,MACd,OAAO5O,EAAAA,EAAAA,GAAP,wKACgBvB,EACAA,EACVmQ,EAEUnQ,K,wBAIlB,WACE,OAAO3C,KAAKiD,MAAMzB,IAAI,gB,wBAGxB,WAAgC,IAAbkB,EAAa,uDAAJ,GAC1B1C,KAAK0C,OAASA,EACd,IAAMC,EAAMD,EAAOG,cAAgB,GACnC7C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAK2C,IAAMA,EACX3C,KAAKoW,OAAS,oBACdpW,KAAKqW,OAAS,mBACdrW,KAAKsW,UAAL,UAAoB3T,EAApB,cACA3C,KAAKuW,YAAL,UAAsB5T,EAAtB,QACA3C,KAAK+C,UAAL,UAAoBJ,EAApB,kBACA3C,KAAKoF,OAAS,GACdpF,KAAKoF,OAAL,iBAAsBzC,EAAtB,UAAoC,SACpC3C,KAAKgD,SAAShD,KAAKiD,MAAO,cAAejD,KAAKwW,kBAC9CxW,KAAKiJ,iBACLjJ,KAAKiD,MAAME,KAAOnD,O,8BAGpB,WACMA,KAAKiD,MAAMzB,IAAI,QAASxB,KAAKoP,OAC5BpP,KAAKiF,U,kBAGZ,WACEjF,KAAK2E,IAAIC,SAAS5E,KAAKuW,aACvBvW,KAAKyW,YAAY1T,UAAjB,UAAgC/C,KAAKsW,UAArC,YAAkDtW,KAAKqW,QACvDrW,KAAK0W,cAAcC,MAAMC,QAAU,K,mBAGrC,WACE5W,KAAK2E,IAAIsD,YAAYjI,KAAKuW,aAC1BvW,KAAKyW,YAAY1T,UAAjB,UAAgC/C,KAAKsW,UAArC,YAAkDtW,KAAKoW,QACvDpW,KAAK0W,cAAcC,MAAMC,QAAU,S,oBAGrC,WACE,IAAI3T,EAAQjD,KAAKiD,MACjBA,EAAMU,IAAI,QAASV,EAAMzB,IAAI,W,uBAG/B,WAKE,OAJKxB,KAAK6W,SACR7W,KAAK6W,OAAS7W,KAAK6D,GAAGkD,cAAc,IAAM/G,KAAKsW,YAG1CtW,KAAK6W,S,yBAGd,WAKE,OAJK7W,KAAK8W,WACR9W,KAAK8W,SAAW9W,KAAK6D,GAAGkD,cAAc,IAAM/G,KAAK2C,IAAM,aAGlD3C,KAAK8W,W,oBAGd,SAAOjT,GACL7D,KAAK0W,cAAcjP,YAAY5D,K,oBAGjC,WACE,IAAQf,EAA4B9C,KAA5B8C,GAAIe,EAAwB7D,KAAxB6D,GAAIc,EAAoB3E,KAApB2E,IAAK1B,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACtBmQ,EAAQhQ,EAAGkD,EAAH,kCAAgC/C,EAAM0C,MAAS1C,EAAMzB,IAAI,SAMvE,OALAqC,EAAGC,UAAY9D,KAAK+D,SAAS,CAAEpB,IAAAA,EAAKmQ,MAAAA,IACpCnO,EAAIC,SAAS5E,KAAK+C,WAClB4B,EAAIoS,IAAI,CAAEC,MAAO/T,EAAMzB,IAAI,WAC3BxB,KAAKwW,mBAEExW,S,EAlFUmW,CAAqBnS,EAAAA,M,igCCErBiT,EAAAA,SAAAA,I,2HACnB,SAAWrO,EAAMlG,IACfwU,EAAAA,EAAAA,SAAQlX,KAAM,YAAa,SAAU,SAAU,UAC/CA,KAAK0C,OAASA,GAAU,GACxB1C,KAAKmX,WAAavO,EAAKuO,YAAc,GACrCnX,KAAKoX,mBAAqB,GAC1B,IAAIxU,EAAO5C,KAAK0C,OAAOG,cAAgB,GACvC7C,KAAK4C,KAAOA,EACZ5C,KAAKqX,WAAL,UAAqBzU,EAArB,iBACA5C,KAAKsX,eAAL,UAAyB1U,EAAzB,YACA5C,KAAKuX,UAAL,UAAoB3U,EAApB,oBACA,IAAM6B,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAKwH,QAClCxH,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAKyX,IAAM,WACXzX,KAAK0X,YAAc1X,KAAK4C,KAAO,WAE3B5C,KAAK8C,KACP9C,KAAK0C,OAAOyR,UAAYnU,KAAKmU,UAC7BnU,KAAK2X,OAAS3X,KAAK8C,GAAGtB,IAAI,a,0BAI9B,WAAwB,IAAXoH,EAAW,uDAAJ,GAClB5I,KAAK0C,OAAL,OACK1C,KAAK0C,QACLkG,K,uBAQP,WACE,GAAK5I,KAAK8C,GAAV,CACA,IAAK9C,KAAKkU,OAAQ,CAChB,IAAI0D,EAAQ5X,KAAK8C,GAAGtB,IAAI,SACpBmW,EAAS3X,KAAK2X,OAClB3X,KAAKkU,OAAS,IAAI0D,EAAMC,OAAO,CAC7B5H,UAAW0H,EAAOhM,UAClBmM,OAAQH,EAAOI,cACfC,aAAc,IACdC,QAAS,IACTtV,IAAK3C,KAAK4C,KACVsV,QAASlY,KAAKmY,OACdC,UAAWpY,KAAKkM,OAChBmM,OAAQrY,KAAKqY,OACbnQ,SAAUyP,EAAOW,aAAaC,gBAC9BC,UAAW,IACXC,QAAS,EACTC,OAAQ,EACR5V,GAAI9C,KAAK8C,GACT6V,eAAgB,IAGpB,OAAO3Y,KAAKkU,U,oBAOd,SAAOhP,GACLlF,KAAK8C,GAAG8V,cACR5Y,KAAK8C,GAAG4B,QAAQ,mBAAoBQ,K,oBAGtC,SAAOA,GACLlF,KAAK8C,GAAG4B,QAAQ,kBAAmBQ,K,oBAOrC,SAAOjC,GACL,IAAQH,EAAO9C,KAAP8C,GAGR,GAFAA,EAAG+V,aAEC5V,GAASA,EAAMzB,IAAK,CACtB,IAAMsX,EAAY,iBAEd7V,EAAMzB,IAAIsX,KACZ7V,EAAMyB,QAAQ,UACdzB,EAAM8V,MAAMD,IAGdhW,EAAG4B,QAAQ,kBAAmBzB,M,mBASlC,SAAMA,GACJjD,KAAK6G,IAAI5D,K,iBASX,SAAIA,EAAOoE,GACT,IAAQ3E,EAAW1C,KAAX0C,OACJsW,EAAO3R,GAAY,KAQnBC,EAPO,IAAIoM,EACb,CACEzQ,MAAAA,EACAoQ,WAAYpQ,EAAMzB,IAAI,eAExBkB,GAEkB8E,SAAS3D,GACzBoP,EAAWhQ,EAAMzB,IAAI,YAGzB,GAAIyR,GAAYjT,KAAKmX,aAAezU,EAAOuW,iBAAkB,EACvDC,EAAAA,EAAAA,UAASjG,GACXA,EAAW,CACTtN,GAAIsN,EACJH,MAAOG,IAEAkG,EAAAA,EAAAA,UAASlG,KAAcA,EAAStN,KACzCsN,EAAStN,GAAKsN,EAASH,OAGzB,IAAIsG,EAAWpZ,KAAKmX,WAAWtQ,IAAIoM,GAC/BoG,EAAQD,EAAS5X,IAAI,MACrB8X,EAAUtZ,KAAKoX,mBAAmBiC,GAClClC,EAAanX,KAAKuZ,kBAetB,OAdAtW,EAAMU,IAAI,WAAYyV,EAAU,CAAEI,QAAQ,KAErCF,GAAWnC,IACdmC,EAAU,IAAInD,EACZ,CACElT,MAAOmW,GAETpZ,KAAK0C,QACL8E,SACFxH,KAAKoX,mBAAmBiC,GAASC,EACjCnC,EAAW1P,YAAY6R,EAAQzV,UAGjCyV,GAAWA,EAAQtR,OAAOV,IAIxB0R,EAAMA,EAAKvR,YAAYH,GACtBtH,KAAKgI,OAAOV,K,6BAGnB,WAKE,OAJKtH,KAAKyZ,SACRzZ,KAAKyZ,OAASzZ,KAAK6D,GAAGkD,cAAR,WAA0B/G,KAAKuX,aAGxCvX,KAAKyZ,S,yBAGd,WAKE,OAJKzZ,KAAK8W,WACR9W,KAAK8W,SAAW9W,KAAK6D,GAAGkD,cAAR,WAA0B/G,KAAKqX,WAA/B,aAA8CrX,KAAKsX,kBAG9DtX,KAAK8W,W,oBAGd,SAAOjT,GACL,IAAI+O,EAAS5S,KAAK0W,cAClB9D,GAAUA,EAAOnL,YAAY5D,K,oBAG/B,WAAS,WACDjB,EAAO5C,KAAK4C,KACZoW,EAAO9Q,SAASC,yBACtBnI,KAAKyZ,OAAS,KACdzZ,KAAK8W,SAAW,KAChB9W,KAAKoX,mBAAqB,GAC1BpX,KAAK6D,GAAGC,UAAR,+BACgB9D,KAAKuX,UADrB,yCAEgBvX,KAAKqX,WAFrB,qCAGkBrX,KAAKsX,eAHvB,iCAOAtX,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAK4D,IAAI5D,EAAO+V,MAC9ChZ,KAAKgI,OAAOgR,GACZ,IAAMpD,EAAM,GAAH,OAAM5V,KAAKsX,eAAX,aAA8B1U,EAA9B,kBAA4CA,EAA5C,aAGT,OAFA5C,KAAK2E,IAAIC,SAASgR,GAClB5V,KAAKsH,UAAW,EACTtH,S,EApMUiX,CAAmBjT,EAAAA,M,qkBCkDjC,IAAM+J,EAAQ,QACRC,EAAQ,GAAH,OAAMD,EAAN,KACLI,EAAQ,GAAH,OAAMH,EAAN,OACLE,EAAW,GAAH,OAAMF,EAAN,UACRI,EAAW,GAAH,OAAMJ,EAAN,UACRK,EAAiB,GAAH,OAAMD,EAAN,WACdsL,EAAS,GAAH,OAAM1L,EAAN,QACN2L,EAAc,GAAH,OAAMD,EAAN,UACXE,EAAa,GAAH,OAAMF,EAAN,SACVpL,EAAW,GAAH,OAAMN,EAAN,UAErB,mBACE,IACI4E,EAAQiH,EAAeC,EADvBjR,EAAI,GAEJsO,EAAa,GAEjB,cACKnI,EAAAA,GADL,IAGE7K,KAAM,eAEN0O,MAAAA,EAEAU,OAAAA,EAEAC,SAAAA,EAEAC,WAAAA,EAEArO,OAAQ,CACNyI,IAAKE,EACLmB,OAAQhB,EACRrH,IAAKsH,EACLjL,OAAQkL,EACRe,aAAcd,EACdwF,KAAM6F,EACNK,UAAWJ,EACXK,QAASJ,EACT3Y,OAAQqN,GAGVlL,KAzBF,WAyBoB,IAAbV,EAAa,uDAAJ,GAEZ,EADAmG,EAAI,OAAK4G,GAAa/M,GACdI,EAAR,EAAQA,GAeR,OAdA9C,KAAK8C,GAAKA,EAGV8P,EAAS,IAAIW,EAAO1K,EAAE+J,QACtBiH,EAAgB,IAAItG,EAAOX,EAAOtC,QAClC6G,EAAa,IAAI1D,EACjBzT,KAAK6N,IAAM+E,EACX5S,KAAK0P,eAGLkD,EAAOjD,GAAG,OAAO,SAAA1M,GAAK,OAAI4W,EAAchT,IAAI5D,MAC5C2P,EAAOjD,GAAG,UAAU,SAAA1M,GAAK,OAAI4W,EAAc3W,OAAOD,MAClD2P,EAAOjD,GAAG,SAAS,SAAAlL,GAAI,OAAIoV,EAAcpI,MAAMhN,EAAK6L,WAE7CtQ,MAGTgQ,YA7CF,WA8CIhQ,KAAK8C,GAAG4B,QAAQ1E,KAAKoF,OAAOnE,OAAQjB,KAAKmQ,iBAG3CA,aAjDF,WAiDiB,WACPC,EAAMpQ,KAAKuD,iBACjB,MAAO,CACL0W,GAAIja,KACJ4S,OAAQ5S,KAAK6P,SAASS,OACtBL,UAAWG,EAAIH,UACf8J,UAAW,SAACG,EAAO5O,GAAR,OAAe,EAAK6O,UAAUD,EAAO5O,IAChDuI,KAAM,SAAAvI,GAAE,OAAI,EAAKiK,OAAOjK,IACxB8O,SAAU,SAAAC,GAAM,OAAI,EAAKtG,QAAQsG,MAIrC/E,YA7DF,SA6Dc4E,EAAO5O,GACjB,IAAQxI,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACN2N,EAAUmH,EAAMI,WAAaJ,EAAMI,aAAeJ,EACxDla,KAAKua,WAAaL,EAClBpX,EAAGa,IAAI,CAAE6W,WAAY,KAAMC,YAAa1H,IACxC,CAACjQ,EAAI8P,GAAQ8H,KAAI,SAAAtQ,GAAC,OAAIA,EAAE1F,QAAQU,EAAO2U,UAAWG,EAAO5O,OAG3DiK,OArEF,SAqESjK,GACL,IAAQxI,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACN8U,EAAQla,KAAKua,WACnB,CAACzX,EAAI8P,GAAQ8H,KAAI,SAAAtQ,GAAC,OAAIA,EAAE1F,QAAQU,EAAOyO,KAAMqG,EAAO5O,OAGtDkK,UA3EF,WA4EI,IAAQ1S,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACN8U,EAAQla,KAAKua,WACbI,EAAM7X,EAAGtB,IAAI,cAGnB,GAFAxB,KAAKua,WAAa,KAEdI,EAAK,CACP,IAAMC,EAAS,iBACT9B,EAAY6B,EAAInZ,KAAOmZ,EAAInZ,IAAIoZ,GAC/BC,EAAWX,EAAM1Y,IAAI,aAAesX,EACpCgC,EAAWZ,EAAM1Y,IAAI,UACrBuZ,GAAQC,EAAAA,EAAAA,SAAQL,GAAOA,EAAI,GAAKA,GAElCG,GAAaD,IAAyB,IAAbC,IAC3BhY,EAAGgS,YAAYiG,GAGbF,IACFE,EAAMrW,QAAQ,UACdoU,GAAaiC,EAAMhC,MAAM6B,IAGvBV,EAAM1Y,IAAI,YACZuZ,EAAME,OAAM,SAAAf,GAAK,OAAIA,EAAM/G,aAI/BrQ,EAAGa,IAAI,CAAE6W,WAAY,KAAMC,YAAa,OACxC,CAAC3X,EAAI8P,GAAQ8H,KAAI,SAAAtQ,GAAC,OAAIA,EAAE1F,QAAQU,EAAO4U,QAASW,EAAKT,OAGvDgB,gBA1GF,WA2GI,OAAOlb,KAAK8C,GACTtB,IAAI,UACJ2Z,YACAT,KAAI,SAAAU,GAAK,OAAIA,EAAMjY,SAGxBmP,YAjHF,WAiHyB,IAAX1J,EAAW,uDAAJ,GACjB,OAAQ5I,KAAKuS,KAAL,OACFvS,KAAKuS,MAAQ,IACd3J,IAIPrF,eAxHF,WAyHI,OAAOvD,KAAKuS,MAAQ,IAGtB4H,UA5HF,SA4HYD,EAAO5O,GACftL,KAAKsV,YAAY4E,EAAO5O,GACxBtL,KAAKkb,kBAAkBzO,SAAQ,SAAA4O,GAAE,OAAIA,EAAGC,UAAUC,kBAGpDxH,QAjIF,SAiIUsG,GACNra,KAAKkb,kBAAkBzO,SAAQ,SAAA4O,GAAE,OAAIA,EAAGC,UAAUE,UAAUnB,MAC5Dra,KAAKwV,aAOPtF,UA1IF,WA2II,OAAOrH,GAGTmJ,WA9IF,WAgJI8H,EAAa,IAAI7C,EAAW,CAAExU,WADXoX,EACuB1C,WAAAA,GAActO,GACxD,IAAM4S,EAAOzb,KAAKkQ,YAAYwC,SAE9B,GAAI+I,EAAM,CACR,IAAM5X,GAAK6X,EAAAA,EAAAA,WAAUD,GAAQA,EAAOvT,SAASnB,cAAc0U,GAC3D,IAAK5X,EAAI,OAAO7D,KAAK2b,UAAU,gCAC/B9X,EAAG4D,YAAYzH,KAAKwH,OAAOqS,EAAcvJ,SAG3CtQ,KAAKgQ,eAkBPnJ,IA3KF,SA2KMlB,EAAIiW,GAAkB,IAAXhT,EAAW,uDAAJ,GACdiT,EAAMD,GAAS,GAErB,OADAC,EAAIlW,GAAKA,EACFiN,EAAO/L,IAAIgV,EAAKjT,IAYzBpH,IA1LF,SA0LMmE,GACF,OAAOiN,EAAOpR,IAAImE,IAWpBkK,OAtMF,WAuMI,OAAO+C,GAOThD,cA9MF,WA+MI,OAAOiK,GAaT3W,OA5NF,SA4NSgX,GAAkB,IAAXtR,EAAW,uDAAJ,GACnB,OAAO5I,KAAK8Q,SAASoJ,EAAOtR,IAQ9BkT,cArOF,WAsOI,OAAO3E,GAOThG,aA7OF,WA8OI,OAAO2I,EAAWjW,IA+BpB2D,OA7QF,SA6QSoL,GAAmB,IAAXhK,EAAW,uDAAJ,GACdyI,EAAWuB,GAAU5S,KAAK6P,SAASS,OAEzC,GAAI1H,EAAKmT,SAAU,CACjB,IAAMtZ,EAAa,IAAI8Q,EAAOlC,GAC9B,OAAO,IAAI4F,EAAW,CAAExU,WAAAA,EAAY0U,WAAAA,GAA7B,OAAgDtO,GAAMD,IAAQpB,SAAS3D,GAahF,OAVIiW,IACFA,EAAWkC,aAAapT,GACxBkR,EAAWrX,WAAWgP,MAAMJ,GAEvByI,EAAWxS,WACdwS,EAAWtS,SACXsS,EAAWxS,SAAW,IAInBtH,KAAKmR,gBAGdqB,QAlSF,WAmSI,IAAMyJ,EAAQ,CAACrJ,EAAQiH,EAAe1C,GACtC8E,EAAMvB,KAAI,SAAA7R,GAAC,OAAIA,EAAE4J,mBACjBwJ,EAAMvB,KAAI,SAAA7R,GAAC,OAAIA,EAAE4I,WACjBqI,GAAcA,EAAW5W,SACzB2F,EAAI,GACJ+J,EAAS,GACTiH,EAAgB,GAChBC,EAAa,GACb3C,EAAa,GACbnX,KAAK6N,IAAM,Q,sGCnXjB,SACE1N,YAAa,MAUb+b,QAAS,GAUTC,OAAQ,GASRC,iBAAkB,GAKlBC,gBAAiB,GAGjBC,MAAO,EAOPC,YAAa,CAAC,SAAU,IAAK,uBAAwB,sB,ghBCzClCC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLpB,MAAO,GACPqB,OAAQ,GACRC,QAAQ,EACRC,KAAM,IACNC,EAAG,EACHC,EAAG,EAEHX,QAAS,GAETC,OAAQ,M,wBAIZ,SAAWP,GAAoB,IAAblZ,EAAa,uDAAJ,GACjBI,EAAOJ,EAAPI,GACR9C,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV9C,KAAK2D,IAAI,SAAU,IAAImZ,EAAAA,GACvB9c,KAAKgD,SAAShD,KAAM,cAAeA,KAAK+c,cACxC/c,KAAKgD,SAASF,EAAI,gBAAiB9C,KAAKgd,cACxChd,KAAKgD,SAASF,EAAIma,EAAAA,aAAcjd,KAAKkd,gB,kBAGvC,WACE,IACMC,EADSnd,KAAP8C,GACYtB,IAAI,eAAe4b,UACjChC,EAAQ+B,EAASE,eACvBrd,KAAK2D,IAAI,SAAUwZ,EAAShC,aAC5Bnb,KAAKgd,aAAa,CAAE5B,MAAAA,M,0BAGtB,SAAakC,EAAMC,GACjB,IAAQza,EAAO9C,KAAP8C,GACRA,EAAGgS,cACHhS,EAAGtB,IAAI,gBAAkBsB,EAAG8V,cAC5B2E,GAAQA,EAAKpC,YAAYT,KAAI,SAAAU,GAAK,OAAIA,EAAMhI,aAC5CpT,KAAK2D,IAAI,SAAU2Z,EAAKnC,e,0BAG1B,WAAwB,IAAXvS,EAAW,uDAAJ,GACV9F,EAAO9C,KAAP8C,GACF0a,EAAS1a,EAAG2a,iBACZxa,EAAQ2F,EAAKwS,OAAStY,EAAG4a,uBAE/B,GAAIza,GAASua,EAAQ,CACnB,MAA0BA,EAAOnK,WAAzBhR,EAAR,EAAQA,MAAOD,EAAf,EAAeA,OACfa,EAAMU,IAAI,CAAEtB,MAAAA,EAAOD,OAAAA,GAAU,CAAEub,OAAQ,O,0BAI3C,WACe3d,KAAKwB,IAAI,QACf,GAAKxB,KAAK2D,IAAI,OAAQ,O,EAvDZ6Y,CAAe3a,EAAAA,G,wQCGf+b,EAAAA,WACnB,WAAY9a,EAAI+a,GAAQ,2BACtB7d,KAAK8C,GAAKA,EACV,IAAMe,EACJga,GACA/a,EACGtB,IAAI,UACJ2Z,YACAT,KAAI,SAAAU,GAAK,OAAIA,EAAM0C,eAAevJ,WACjCwJ,EAAMC,MAAMhD,QAAQnX,GAAMA,EAAK,CAACA,GAMtC,OALA7D,KAAK6D,GAAKA,EACV7D,KAAKie,QAAU,GACf/G,EAAAA,EAAAA,SAAQlX,KAAM,kBAAmB,iBAAkB,aAAc,mBACjE+d,EAAItR,SAAQ,SAAA5I,GAAE,OAAI,EAAKqa,cAAcra,EAAI,MAElC7D,K,4CAGT,SAAc6D,EAAIsa,GAChB,IAAMC,EAAU,CAAEzO,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,KAChBjL,EAAS2T,EAAS,KAAO,MAC/BC,EAAQ5T,GAAQ3G,EAAI,YAAa7D,KAAKqe,iBACtCD,EAAQ5T,GAAQ3G,EAAI,WAAY7D,KAAKse,gBACrCF,EAAQ5T,GAAQ3G,EAAI,OAAQ7D,KAAKue,YACjCH,EAAQ5T,GAAQ3G,EAAI,YAAa7D,KAAKwe,mB,4BAGxC,SAAeL,GACb,IAAM3T,EAAS2T,EAASxO,EAAAA,GAAK8F,EAAAA,IACvBgJ,EAAMze,KAAK6D,GAAG6a,cACdhT,EAAU+S,EAAIE,YAAYC,aAChC5e,KAAK6e,SAAWV,EACZ,CACEjG,QADF,YACsB,IAAVhE,EAAU,EAAVA,QACRvE,EAAAA,EAAAA,IAAGjE,EAAS,cAAewI,EAAOmE,SAEpCyG,MAJF,YAIoB,IAAV5K,EAAU,EAAVA,QACNuB,EAAAA,EAAAA,KAAI/J,EAAS,cAAewI,EAAOmE,SAErC0G,aAPF,YAO0B,IAATzR,EAAS,EAATA,MACb,OAAOmR,EAAIO,iBAAiB1R,EAAM2R,QAAS3R,EAAM4R,WAGrD,KACJ1U,EAAOkB,EAAS,eAAgB1L,KAAKqe,iBACrC7T,EAAOkB,EAAS,cAAe1L,KAAKse,gBACpC9T,EAAOtC,SAAU,YAAalI,KAAKue,YACnC/T,EAAOkB,EAAS,aAAc1L,KAAKwe,mB,yBAOrC,WACExe,KAAKmf,gBAAe,K,uBAGtB,SAAU9E,GACRra,KAAKof,KAAOpf,KAAKqf,QAAQhF,GAAUra,KAAKmf,gBAAe,K,qBAGzD,SAAQ9E,EAAQ/O,GACd,IAAQxI,EAAiB9C,KAAjB8C,GAAIsX,EAAapa,KAAboa,SACZpa,KAAKie,QAAU,EACf7D,GAAYA,EAASC,GACrBra,KAAKmf,gBAAe,GACpBrc,EAAG4B,QAAQ,iBAAkB4G,K,6BAG/B,SAAgBA,GACdtL,KAAKsf,eAAe,EAAGhU,K,2BAGzB,SAAczF,EAAOyF,GACnBtL,KAAKie,SAAWpY,EACC,IAAjB7F,KAAKie,SAAiBje,KAAKqf,QAAQ,EAAG/T,K,6BAGxC,SAAgBA,GAAI,WACVxI,EAAO9C,KAAP8C,GACFyc,EAAKjU,EAAGtB,aAEd,GADAhK,KAAKsf,cAAc,EAAGhU,IAClBtL,KAAKof,KAAT,CACApf,KAAKof,KAAO,EACZ,IAMIhF,EAAUK,EANR7C,EAAQ9U,EAAGtB,IAAI,SACfmW,EAAS7U,EAAGtB,IAAI,UAIlBuR,EAAUjQ,EAAGtB,IAAI,gBAAkB,OAKvC,GAHAsB,EAAG8V,cAGC9V,EAAG0c,iBAAkB,CACvB,IAAM5K,EAAU9R,EAAGtB,IAAI,iBAAiBqT,aAClCnR,EAASkR,EAAQ5M,OAAO,IAAI,GAC5ByX,EAAU3c,EAAGtB,IAAI,YAAYkP,IAAI,sBAAuB,CAC5DpD,MAAOhC,EACPoU,WAAY,EACZC,OAAQ,EACRjc,OAAAA,EACAob,MAAO,SAACxT,EAAImU,EAAL,GAAgC,IACjCG,EACJ,IAFqC,EAAhBC,UAEL,CACdD,EAAOhL,EAAQ5M,OAAO+K,GAAS,GAC/B,MAAgCrP,EAAOoc,WAA/BC,EAAR,EAAQA,KAAMC,EAAd,EAAcA,IAAKC,EAAnB,EAAmBA,SACnBL,EAAKM,SAAS,CAAEH,KAAAA,EAAMC,IAAAA,EAAKC,SAAAA,IAE7B,EAAKE,cAAcP,EAAML,GACzB7b,EAAOR,YAGXkX,EAAW,SAAAC,GAAM,OAAIoF,EAAQ9O,KAAKrF,EAAI,CAAE+O,OAAAA,KACxCI,EAAc,SAAA2F,GAAG,OAAKrN,EAAUqN,OAC3B,CACL,IAAMlM,EAAS,IAAI0D,EAAMC,O,qWAAV,EACb/U,GAAAA,EACA2V,QAAS,EACTC,OAAQ,EACRC,eAAgB,EAChBH,UAAW,IACXvI,UAAWjQ,KAAK6D,GAChBiU,OAAQH,EAAOI,cACfC,aAAc,IACdC,QAAS,IACTtV,IAAK,OACLyV,UAAW,SAAAnV,GAAK,OAAI,EAAKkd,cAAcld,EAAOsc,IAC9CrX,SAAUlI,KAAK6D,GAAG6a,eACd1e,KAAK6e,UAAY,KAEvB3K,EAAOG,eAAetB,GACtBmB,EAAOkB,YACPpV,KAAKkU,OAASA,EACdkG,EAAW,SAAAC,GACTA,IAAWnG,EAAOwB,MAAQ,GAC1BxB,EAAOyB,WAET8E,EAAc,SAAA1H,GAAO,OAAImB,EAAOG,eAAetB,IAGjD/S,KAAKoa,SAAWA,EAChBpa,KAAKya,YAAcA,EACnB3X,EAAG4B,QAAQ,mBAAoB6a,EAAIxM,M,2BAGrC,SAAc9P,EAAOsc,GACnB,IAAQzc,EAAO9C,KAAP8C,GACR9C,KAAKof,KAAO,EACRnc,IACFH,EAAGa,IAAI,aAAcV,GACrBH,EAAG4B,QAAQ,cAAe6a,EAAItc,IAEhCH,EAAG+V,WAAW,CAAEwH,iBAAkB,M,4BAOpC,SAAe/U,GACbA,EAAGjF,iBACHrG,KAAK8C,GAAG4B,QAAQ,kBAAmB4G,K,wBAOrC,SAAWA,GACTA,EAAGjF,iBACH,IAAQoU,EAAgBza,KAAhBya,YACF8E,EAAKjU,EAAGtB,aACR+I,EAAU/S,KAAKsgB,iBAAiBf,GAAIxM,QAC1CzH,EAAG5H,OAAOiT,MAAM4J,OAAS,GACzBxN,GAAW0H,GAAeA,EAAY1H,GACtC/S,KAAKqf,SAAStM,EAASzH,K,8BAGzB,SAAiBiU,GACf,IAAMzc,EAAK9C,KAAK8C,GACV4C,EAAQ6Z,GAAMA,EAAG7Z,MACjBqE,EAASwV,GAAMA,EAAGxV,OAAU,GAC5B0Q,EAAc3X,EAAGtB,IAAI,eACvBuR,EAAUwM,GAAMA,EAAGiB,QAAQ,QAE/B,GAAIzW,EAAM9C,OAAQ,CAChB8L,EAAU,GACV,IAAK,IAAI3I,EAAI,EAAGA,EAAIL,EAAM9C,OAAQmD,IAAK,CACrC,IAAM6C,EAAOlD,EAAMK,GACb9I,EAAO2L,EAAK3L,KAAKG,MAAM,KAAK,GAEtB,SAARH,GACFyR,EAAQnF,KAAK,CACXtM,KAAAA,EACA2L,KAAAA,EACAoG,WAAY,CAAEoN,IAAKxT,EAAK9I,cAIzB,GAAIsW,EACT1H,EAAU0H,OACL,IAAI9F,EAAAA,EAAAA,SAAQjP,EAAO,cAAgB,EACxCqN,EAAUwM,GAAMA,EAAGiB,QAAQ,aAAazU,QAAQ,kBAAmB,SAC9D,IAAI4I,EAAAA,EAAAA,SAAQjP,EAAO,kBAAoB,EAC5CqN,EAAU,CACRzR,KAAM,OACN+R,WAAY,CAAEqN,KAAM3N,GACpBA,QAASA,QAEN,IAAI4B,EAAAA,EAAAA,SAAQjP,EAAO,cAAgB,EAAG,CAC3C,IAAMiE,EAAO4V,GAAMA,EAAGiB,QAAQ,aAC9B7W,IAASoJ,EAAUnJ,KAAKC,MAAMF,SACJ,IAAjBjE,EAAMuB,QAA6B,eAAbvB,EAAM,KAErCqN,EAAU,QAAH,OAAWA,EAAX,WAGT,IAAM9Q,EAAS,CAAE8Q,QAAAA,GAGjB,OAFAjQ,EAAG4B,QAAQ,kBAAmB6a,EAAItd,GAE3BA,M,EA9NU2b,G,igCCAA+C,EAAAA,SAAAA,I,wHACnB,WACE,MAAO,W,wBAGT,WACE,MAAO,CACLC,gBAAiB,kBACjB,iBAAiB,K,wBAIrB,SAAWre,IACT2U,EAAAA,EAAAA,SAAQlX,KAAM,gBAAiB,iBAAkB,aAAc,eAC/D,IAAQiD,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACf7D,KAAK6gB,MAAQ,GACb7gB,KAAK0C,OAAL,OACMH,EAAEG,QAAU,IADlB,IAEEoe,UAAW9gB,OAEbA,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAK+gB,iBAAkBhR,EAAAA,EAAAA,UAAS/P,KAAK+gB,gBAAgB1d,KAAKrD,MAAO,IACjE,IAAMghB,EAAUhhB,KAAKihB,iBACrBjhB,KAAKgD,SAASC,EAAO,cAAejD,KAAKkhB,YACzClhB,KAAKgD,SAASge,EAAS,gBAAiBhhB,KAAKmhB,cAC7Cle,EAAME,KAAOnD,MACbohB,EAAAA,EAAAA,WAAUvd,EAAI7D,Q,wBAMhB,WACE,IAAQiD,EAAUjD,KAAViD,MACFoe,EAASrhB,KAAKshB,UACdC,EAAW,GACXC,EAAQ,GACRC,EAAUxe,EAAMzB,IAAI,QACpB+b,EAAOta,EAAMye,SAAS,QACtBC,EAAU,eAAC/U,EAAD,uDAAQ,GAAR,OACdgV,OAAOC,KAAKjV,GACTkV,OACApH,KAAI,SAAAtQ,GAAC,iBAAQA,EAAR,cAAcwC,EAAKxC,GAAnB,UACL2X,KAAK,KACJja,EAAO,SAACka,EAAOC,EAAO9Y,GAC1B6Y,EAAMvV,SAAQ,SAAAC,GACZ,IAAQwV,EAAoBxV,EAApBwV,IAAK7O,EAAe3G,EAAf2G,YACD4O,EAAME,MAAK,SAAAC,GAAC,OAAIA,EAAEF,MAAQA,GAAOP,EAAQS,EAAE/O,cAAgBsO,EAAQtO,OACvElK,EAAIyE,KAAKlB,OAGrB5E,EAAK2Z,EAASlE,EAAMiE,GACpB1Z,EAAKyV,EAAMkE,EAASF,GACpBA,EAAS9U,SAAQ,SAAA4V,GACf,IAAMxe,EAAKwd,EAAOta,cAAP,UAAwBsb,EAAIH,KAA5B,OAAkCP,EAAQU,EAAIhP,cACzDxP,GAAMA,EAAGye,WAAWC,YAAY1e,OAElC2e,EAAAA,EAAAA,IAAanB,EAAQG,K,mBAGvB,WACE,OAAOxhB,KAAK6D,K,4BAGd,WACE,OAAO7D,KAAK8C,GAAGtB,IAAI,UAAUihB,a,uBAG/B,WACE,OAAOziB,KAAKuU,QAAQmO,gB,oBAGtB,WACE,OAAO1iB,KAAKuU,QAAQgE,kB,qBAGtB,WACE,OAAOvY,KAAK2iB,SAAS5b,cAAc,U,qBAGrC,WACE,OAAO/G,KAAK2iB,SAAS5b,cAAc,U,wBAGrC,WACE,OAAO/G,KAAK2L,UAAU5E,cAAc,6B,4BAGtC,WAKE,OAJK/G,KAAK4iB,cACR5iB,KAAK4iB,aAAcC,EAAAA,EAAAA,IAAS,MAAO,CAAEhN,MAAO,GAAF,OAAK7V,KAAK4C,KAAV,cAGrC5C,KAAK4iB,c,wBAGd,WACE,IAAQE,EAAkB9iB,KAAK0C,OAAvBogB,cACR,OAAOA,GAAiBA,EAAcC,U,8BAGxC,WACE,OAAO/iB,KAAK8C,GAAGtB,IAAI,UAAUwhB,qB,4BAG/B,WACE,OAAOhjB,KAAKijB,SAAS,e,wBAGvB,WACE,OAAOjjB,KAAKijB,SAAS,kB,+BAGvB,WACE,OAAOjjB,KAAKijB,SAAS,mB,qBAGvB,WAKE,OAJKjjB,KAAKkjB,OACRljB,KAAKkjB,KAAOljB,KAAK6D,GAAGsf,yBAGfnjB,KAAKkjB,O,2BAMd,WACE,IAAQrf,EAAO7D,KAAP6D,GACR,EAAkC7D,KAAK2L,UAA/BhF,EAAR,EAAQA,UAAWyc,EAAnB,EAAmBA,WACbhhB,EAASyB,EAAGwf,aACZhhB,EAAQwB,EAAGyf,YAEjB,MAAO,CACLtD,IAAKnc,EAAG0f,UACRxD,KAAMlc,EAAG2f,WACTphB,OAAAA,EACAC,MAAAA,EACAsE,UAAAA,EACAyc,WAAAA,EACAK,aAAc9c,EAAYvE,EAC1BshB,YAAaN,EAAa/gB,K,sBAI9B,SAAS8B,GACP,IAAQ0c,EAAU7gB,KAAV6gB,MACF8C,EAAU3jB,KAAK4jB,aAMrB,OAJK/C,EAAM1c,KACT0c,EAAM1c,GAAQwf,EAAQ5c,cAAc5C,IAG/B0c,EAAM1c,K,oBAGf,WACE,IAAM0f,EAAM7jB,KAAK4U,QACjB5U,KAAK8jB,iBACL9jB,KAAK6gB,MAAQ,GACbgD,GAAOA,EAAI3gB,SACXc,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,a,6BAGpC,WAAkB,WAChB/jB,KAAKgkB,cAAgBhkB,KAAK6U,aAAawO,aAAerjB,KAAK6D,GAAGwf,aAI9DY,YAAW,WACT,EAAKC,oBAAoB,GACzBC,sBAAsB,EAAKC,cAC1B,K,wBAGL,WACE,GAAIpkB,KAAKqkB,SAAU,CACjB,IAAQC,EAAgBtkB,KAAhBskB,YACF3M,EAAS3X,KAAK8C,GAAGtB,IAAI,UACrB+iB,EAAMvkB,KAAKwkB,YAEXC,EADOzkB,KAAK2L,UACKhF,UACjBuY,EAAUoF,GAAe,EACzBI,EAAW/M,EAAOzH,YAAYmM,gBAC9BsI,EAAc3kB,KAAK4kB,UAAUxiB,OAASsiB,EACxCG,EAAUJ,EAUd,GARIvF,EAAUwF,IACZG,GAAWH,EAAWxF,GAGpBA,EAAUyF,IACZE,GAAW3F,EAAUyF,KAIpBG,EAAAA,EAAAA,aAAYR,IACbO,IAAYJ,GACZI,EAAU,GACVA,EAAU7kB,KAAKgkB,cAEChkB,KAAKgjB,mBACbrM,MAAMoO,QAAU,EACxB/kB,KAAK+gB,kBACLwD,EAAIS,SAAS,EAAGH,GAGlBV,sBAAsBnkB,KAAKokB,e,2BAI/B,SAAc9Y,GACZA,EAAGjF,iBACHrG,KAAKskB,aAAcW,EAAAA,EAAAA,iBAAgB3Z,GAAI4T,QAAUlf,KAAK8C,GAAGoiB,mB,6BAG3D,WACEllB,KAAKgjB,mBAAmBrM,MAAMoO,QAAU,K,4BAG1C,WACE/kB,KAAKqkB,UAAYrkB,KAAKkkB,wB,iCAGxB,SAAoB/F,GAClBne,KAAKqkB,SAAWlG,EAChB,IAAMoG,EAAMvkB,KAAKwkB,YACXha,EAAS2T,EAAS,KAAO,MACzBgH,EAAK,CAAExV,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,KACjB0P,EAAG3a,GAAQ+Z,EAAK,qBAAsBvkB,KAAKolB,eAC3CD,EAAG3a,GAAQ+Z,EAAK,UAAWvkB,KAAKqlB,kB,oBAGlC,WACE,IAAQ1gB,EAAc3E,KAAd2E,IAAK/B,EAAS5C,KAAT4C,KAGb,OAFA+B,EAAIiI,KAAK,CAAEiJ,MAAO,GAAF,OAAKjT,EAAL,WAChB5C,KAAKslB,gBACEtlB,O,2BAGT,WAAgB,WACN6D,EAAkB7D,KAAlB6D,GAAIZ,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACbyiB,EAAS,aACTC,EAAS,CAAE3hB,GAAAA,EAAIZ,MAAAA,EAAOE,KAAMnD,MAC5B2X,EAAS3X,KAAKihB,iBACdwE,EAAe,SAAfA,EAAevJ,GACnB,GAAIA,EAAQjV,OAAS,EAAG,CACtB,IAAM1F,EAAM2a,EAAQva,QACd+jB,GAAW7C,EAAAA,EAAAA,IAAS,SAAD,GACvBvhB,KAAM,oBACF4X,EAAAA,EAAAA,UAAS3X,GAAO,CAAEA,IAAAA,GAAQA,IAEhCmkB,EAASC,QAAUD,EAASE,OAASH,EAAapiB,KAAK,KAAM6Y,GAC7DrY,EAAG0U,gBAAgBsN,KAAKpe,YAAYie,QAEpC,EAAKI,aACLhjB,GAAMA,EAAG4B,QAAQ6gB,EAAQC,IAI7B3hB,EAAG+hB,OAAS,WACV9iB,GAAMA,EAAG4B,QAAH,UAAc6gB,EAAd,WAA+BC,GACrCC,GAAa,OAAI9N,EAAOnW,IAAI,gB,0BAIhC,WAAwB,IAAXoH,EAAW,uDAAJ,GACZid,EAAO7lB,KAAKshB,UACZ3J,EAAS3X,KAAKihB,iBACd8E,EAAY,SAAAC,GAAI,OACpBA,EAAKtL,KAAI,SAAAgG,GAAI,MAAK,CAChBwB,IAAK,OACL7O,WAAY,GACV4S,IAAK,eACD/M,EAAAA,EAAAA,UAASwH,GAAQ,CAAEA,KAAAA,GAASA,QAGhCwF,EAAaH,EAAUnd,EAAK2U,MAAQ5F,EAAO+J,SAAS,WACpDvF,EAAS4J,EAAUpO,EAAOnW,IAAI,WAC9B+f,EAAW,GACXC,EAAQ,GACR1Z,EAAO,SAACka,EAAOC,EAAO9Y,GAC1B6Y,EAAMvV,SAAQ,SAAAC,GACZ,IAAQgU,EAAShU,EAAK2G,WAAdqN,MACIuB,EAAME,MAAK,SAAAC,GAAC,OAAIA,EAAE/O,WAAWqN,OAASA,MAC1CvX,EAAIyE,KAAKlB,OAGrB5E,EAAKqU,EAAQ+J,EAAY1E,GACzB1Z,EAAKoe,EAAY/J,EAAQoF,GACzBA,EAAS9U,SAAQ,SAAA4V,GACf,IAAMxe,EAAKgiB,EAAK9e,cAAL,sBAAiCsb,EAAIhP,WAAWqN,KAAhD,QACX7c,GAAMA,EAAGye,WAAWC,YAAY1e,OAElC2e,EAAAA,EAAAA,IAAaqD,EAAMrE,K,wBAGrB,WAAa,WACH9e,EAAwB1C,KAAxB0C,OAAQO,EAAgBjD,KAAhBiD,MAAOL,EAAS5C,KAAT4C,KACfE,EAAOJ,EAAPI,GACF2b,EAAMze,KAAK2iB,SACX1Y,EAAOjK,KAAK2L,UACZ4Y,EAAMvkB,KAAKwkB,YACX2B,EAAOrjB,EAAGtB,IAAI,UACpB+iB,EAAI6B,WAAY,EAChBpmB,KAAKmhB,aAAa,CAAE5D,KAAM,MAY1BvV,EAAAA,EAAAA,IACEiC,EADI,yBAGFkc,EAAKE,SAAW,GAHd,sBAKDzjB,EALC,oJAUDA,EAVC,wHAeDA,EAfC,yDAVY,UAUZ,0CAmBDA,EAnBC,0IAyBDA,EAzBC,8FA8BDA,EA9BC,0EAkCDA,EAlCC,oQA6CDA,EA7CC,uGAkDDA,EAlDC,0EAsDDA,EAtDC,iCAuDDA,EAvDC,oFA2DFujB,EAAKG,WAAa,GA3DhB,mBA4DFH,EAAKI,cAAgB,GA5DnB,mBA+DN,IAAMC,EAAYvjB,EAAM6a,eAChB3a,EAASL,EAAGtB,IAAI,iBAAiBoQ,QAAQ,WAAzCzO,KACRnD,KAAK4U,QAAU,IAAIzR,EAAK,CACtBF,MAAOujB,EACP9jB,OAAQ,OACH8jB,EAAU9jB,QADT,IAEJoe,UAAW9gB,SAEZwH,UACHQ,EAAAA,EAAAA,IAAOiC,EAAMjK,KAAK4U,QAAQ/Q,KAC1BmE,EAAAA,EAAAA,IACEiC,EACA,IAAIwc,EAAAA,EAAa,CACfhkB,WAAYQ,EAAMyjB,YAClBhkB,OAAQ,OACHI,EAAGtB,IAAI,eAAe0O,aADrB,IAEJ4Q,UAAW9gB,SAEZwH,SAAS3D,KAEdmE,EAAAA,EAAAA,IAAOiC,EAAMjK,KAAK2mB,mBAKlBhX,EAAAA,EAAAA,IAAG1F,EAAM,SAAS,SAAAqB,GAAE,OAAIA,GAA2B,KAArBA,EAAG5H,OAAOkjB,SAAkBtb,EAAGjF,qBAC7DsJ,EAAAA,EAAAA,IAAG1F,EAAM,UAAU,SAAAqB,GAAE,OAAIA,GAAMA,EAAGjF,oBAIlC,CACE,CAAEiH,MAAO,yBAA0BuI,MAAO,iBAC1C,CAAEvI,MAAO,8BAA+BuI,MAAO,cAC/C,CAAEvI,MAAO,oCAAqCuI,MAAO,gBACrD,CAAEvI,MAAO,QAASuI,MAAO,eACzBpJ,SAAQ,SAAA6E,GAAG,OACXA,EAAIhE,MAAM7L,MAAM,KAAKgL,SAAQ,SAAAa,GAC3BmR,EAAIpR,iBAAiBC,GAAO,SAAAhC,GAAE,OAAI,EAAKzH,GAAGgjB,eAAcC,EAAAA,EAAAA,IAAkBxb,EAAIgG,EAAIuE,iBAItF7V,KAAK8jB,eAAe,GACpB9jB,KAAKsb,WAAYrF,EAAAA,EAAAA,QAAOnT,IAAO,IAAI8a,EAAU9a,EAAI9C,KAAK4U,QAAQ/Q,IAC9DZ,EAAMyB,QAAQ,Y,4BAGhB,SAAeyZ,GACb,IAAM3T,EAAS2T,EAASxO,EAAAA,GAAK8F,EAAAA,IACvB8O,EAAMvkB,KAAKwkB,YACjBD,GAAO/Z,EAAO+Z,EAAD,UAASwC,EAAAA,GAAT,WAA6B/mB,KAAKgnB,e,yBAGjD,WACEhnB,KAAKiD,MAAMgkB,mB,EAnbMtG,CAAkB3c,EAAAA,M,2gCCDlBkjB,EAAAA,SAAAA,I,uHACnB,WACE,MAAO,CACL,6BAA8B,SAC9B,+BAAgC,e,wBAIpC,WAAiC,IAAtBte,EAAsB,uDAAf,GAAIud,EAAW,uDAAJ,IAC3BjP,EAAAA,EAAAA,SAAQlX,KAAM,WAAY,cAAe,eAAgB,SAAU,aACnE,IAAQiD,EAAUjD,KAAViD,MACFP,EAAS,OACTkG,EAAKlG,QAAUyjB,GADT,IAEVrD,cAAe9iB,OAETmnB,EAAmBzkB,EAAnBykB,WAAYrkB,EAAOJ,EAAPI,GACpB9C,KAAKonB,GAAKD,EACVnnB,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV9C,KAAK2X,OAAS7U,GAAMA,EAAGtB,IAAI,UAC3BxB,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAKob,MAAQ,IAAIuF,EAAU,CAAE1d,MAAAA,EAAOP,OAAAA,IACpC1C,KAAKqnB,UAAL,UAAoBrnB,KAAK4C,KAAzB,uBACA5C,KAAKsnB,cAAevX,EAAAA,EAAAA,UAAS/P,KAAKsnB,aAAajkB,KAAKrD,OACpDA,KAAKunB,YAAaxX,EAAAA,EAAAA,UAAS/P,KAAKunB,WAAWlkB,KAAKrD,OAChDA,KAAKgD,SAASC,EAAO,SAAUjD,KAAKwnB,aACpCxnB,KAAKgD,SAASC,EAAO,oBAAqBjD,KAAKynB,WAC/CznB,KAAKgD,SAASC,EAAO,6BAA8BjD,KAAKunB,YACxDvnB,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKynB,YACLznB,KAAK0nB,iB,0BAGP,WAAe,IAETC,EAAOC,EAAOjL,EAFL,OACLhF,EAAkB3X,KAAlB2X,OAAQ1U,EAAUjD,KAAViD,MAEVib,EAAgB,SAAAvO,GACpBgI,EAAOkQ,mBAAmBlY,IAG5B3P,KAAKyf,QAAU,IAAIqI,EAAAA,EAAQ,CACzB5P,QAAS,WACP,MAAiBjV,EAAMoQ,WAAfuJ,EAAR,EAAQA,EAAGC,EAAX,EAAWA,EACXF,EAAO,EAAK7Z,GAAGilB,oBACfJ,EAAQ/K,EACRgL,EAAQ/K,EACRqB,KAEFY,MAAO,kBAAMZ,EAAc,IAC3B8J,YAAa,SAAAC,GACXhlB,EAAMU,IAAI,CACRiZ,EAAG+K,EAAQM,EAAQrL,EAAID,EACvBE,EAAG+K,EAAQK,EAAQpL,EAAIF,S,uBAM/B,SAAUrR,GACRA,GAAMtL,KAAKyf,QAAQyI,MAAM5c,K,qBAG3B,SAAQ1C,GACN,IAAQwS,EAAUpb,KAAVob,MACRA,GAASA,EAAMlY,OAAO0F,IACtBuf,EAAAA,EAAAA,IAASnoB,KAAK+iB,W,oBAGhB,SAAOna,GAAM,WAIX,OAHA5I,KAAKooB,QAAQxf,GACb5E,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC,CAAC,QAAS,UAAW,KAAM,KAAM,SAAU,WAAWtX,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,KACvEpK,O,0BAGT,WACE,IAAQ8C,EAAmB9C,KAAnB8C,GAAI6B,EAAe3E,KAAf2E,IAAKyW,EAAUpb,KAAVob,MACZtY,IACLA,EAAG+V,WAAW,CAAEwH,iBAAkB,IAClC1b,EAAIsD,YAAYjI,KAAKqnB,WACrBjM,EAAMnY,MAAMgkB,kB,uBAGd,SAAUoB,GACR,IAAQplB,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACf,EAAiBZ,EAAMoQ,WAAfuJ,EAAR,EAAQA,EAAGC,EAAX,EAAWA,EACHlG,EAAU9S,EAAV8S,MACR3W,KAAKob,MAAM8H,KAAO,EAClBvM,EAAMoJ,KAAOuI,MAAM1L,GAAKA,EAAX,UAAkBA,EAAlB,MACbjG,EAAMqJ,IAAMsI,MAAMzL,GAAKA,EAAX,UAAkBA,EAAlB,MACZwL,GAAMroB,KAAKsnB,iB,wBAGb,WACEtnB,KAAKuoB,c,uBAOP,WACE,IAAQzlB,EAAyC9C,KAAzC8C,GAAIe,EAAqC7D,KAArC6D,GAAIc,EAAiC3E,KAAjC2E,IAAK1B,EAA4BjD,KAA5BiD,MAAOokB,EAAqBrnB,KAArBqnB,UAAWjM,EAAUpb,KAAVob,MACvC,GAAKA,EAAL,CACAA,EAAM8H,KAAO,EACbve,EAAIC,SAASyiB,GACb,MAAqCrnB,KAAKwoB,eAAlCC,EAAR,EAAQA,UAAWpmB,EAAnB,EAAmBA,MAAOD,EAA1B,EAA0BA,SAGtBsmB,EAAAA,EAAAA,QAAOrmB,KAAUqmB,EAAAA,EAAAA,QAAOtmB,KAC1Ba,EAAMU,IAAN,OAEStB,EAAoC,GAA5B,CAAEA,MAAOwB,EAAGyf,cACpBlhB,EAAuC,GAA9B,CAAEA,OAAQyB,EAAGwf,eAE7B,CAAE7J,OAAQ,IAMd1W,EAAG8V,YAAY,CAAEyH,iBAAkB,IACnCoI,EAAYzoB,KAAKsnB,eAAiBrD,WAAWjkB,KAAKsnB,aAAc,Q,sBAGlE,WACE,IAAQlM,EAAcpb,KAAdob,MAAcpb,KAAP8C,GACZ4B,QAAQ,eAAgB,CACzB0W,MAAAA,EACAnR,KAAMmR,EAAMzP,UACZjI,OAAQ0X,EAAMoJ,gB,yBAIlB,WACoBxkB,KAAVob,MACFoJ,YAAYmE,SAAW3oB,KAAK4oB,SAClC5oB,KAAKuoB,c,0BAGP,WACE,IACQtlB,EAAcjD,KAAdiD,MACA0T,EADc3W,KAAP6D,GACP8S,MACR,EAA0B1T,EAAMoQ,WAAxBhR,EAAR,EAAQA,MAAOD,EAAf,EAAeA,OACTymB,EAAQlS,EAAMtU,OAAS,GACvBymB,EAAQnS,EAAMvU,QAAU,GACxB2mB,EAAO1mB,GAAS,GAChB2mB,EAAO5mB,GAAU,GACjBqmB,EAAYI,GAASE,GAAQD,GAASE,EAG5C,OAFArS,EAAMtU,OAAQ4mB,EAAAA,EAAAA,UAASF,GAAT,UAAoBA,GAApB,OATH,MASqCA,EAChDpS,EAAMvU,QAAS6mB,EAAAA,EAAAA,UAASD,GAAT,UAAoBA,GAApB,OAVJ,MAUsCA,EAC1C,CAAEP,UAAAA,EAAWpmB,MAAAA,EAAOD,OAAAA,EAAQ2mB,KAAAA,EAAMC,KAAAA,K,oBAG3C,WACE,IAAQ5N,EAAoCpb,KAApCob,MAAOzW,EAA6B3E,KAA7B2E,IAAK/B,EAAwB5C,KAAxB4C,KAAMwkB,EAAkBpnB,KAAlBonB,GAAInkB,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GAC7BqlB,EAAajmB,EAAMoQ,WAAnB6V,SACRlpB,KAAKooB,UACLpoB,KAAKwoB,eACLpN,EAAM5T,SACN7C,EACGoD,QACA6E,KAAK,CAAEiJ,MAAO,GAAF,OAAKjT,EAAL,mBACZoF,OAHH,+BAKgBpF,EALhB,oFAMkBA,EANlB,8DAOQK,EAAMzB,IAAI,SAAW,GAP7B,kDASkBoB,EATlB,2DAUoBA,EAVpB,8RAegBA,EAfhB,8EAgBgBA,EAhBhB,4EAiBgBA,EAjBhB,6DAoBGoF,OAAOoT,EAAMvX,IAChB,IAAMkf,GAAUF,EAAAA,EAAAA,IACd,MACA,CACEhN,MAAO,GAAF,OAAKjT,EAAL,SACL+T,MAAO,sCAJa,+BAOR/T,EAPQ,4DAQRA,EARQ,yDASRA,EATQ,gDAUNA,EAVM,sEAYRA,EAZQ,8CAaRA,EAbQ,6EAcRA,EAdQ,gDAeRA,EAfQ,s3BA6BRA,EA7BQ,kCAgCxB5C,KAAK+iB,QAAUA,EACf,IAAMoG,EAAO/B,EAAGgC,aAchB,OAbAD,GAAQA,EAAK1hB,YAAYsb,GACzBmG,GACEA,EAAS,CACPrlB,GAAAA,EACAwlB,MAAOxlB,EAAGkD,cAAc,oBACxBuiB,QAASzlB,EAAGkD,cAAc,sBAC1BwiB,SAAU1lB,EAAGkD,cAAc,uBAC3ByiB,OAAQ3lB,EAAGkD,cAAc,qBACzBqU,MAAOnY,EACPwmB,iBAAkBzpB,KAClBkD,OAAQlD,KAAKkD,OACbiX,UAAWna,KAAKma,YAEbna,S,EArOUknB,CAAsBljB,EAAAA,M,4bCAvC0lB,ECHiBC,EAAAA,SAAAA,I,uBACnB,aAA+B,MAAnB/gB,EAAmB,uDAAZ,GAAIlG,EAAQ,8DAC7B,cAAMkG,EAAMlG,GAAQ,IACfM,SAAS,EAAKP,WAAY,QAAS,EAAK+E,QAFhB,E,6CAK/B,SAAewa,EAAOpZ,GACpBoZ,EAAMvV,SAAQ,SAAAC,GAAI,OAAIA,EAAKxJ,OAAO0F,Q,sBAGpC,WACE,IAAQlG,EAAgB1C,KAAhB0C,OAAQiC,EAAQ3E,KAAR2E,IACR7B,EAAOJ,EAAPI,GACRA,GAAM6B,EAAIiI,KAAK,CAAEiJ,MAAO,GAAF,OAAK/S,EAAGoN,UAAU,eAAlB,gB,EAbLyZ,CAAmBC,EAAAA,G,6/BAiBxCD,EAAW7nB,UAAU+nB,SAAW3C,E,IDZX4C,EAAAA,SAAAA,I,uHACnB,WACE,MAAO,CACLC,MAAO,a,sBAIX,WACE,IAAQpnB,EAAQ3C,KAAR2C,IACR,qCACgBA,EADhB,gEAEaA,EAFb,2BAEiCA,EAFjC,6C,wBAMF,SAAWJ,IACT2U,EAAAA,EAAAA,SAAQlX,KAAM,WAAY,aAAc,gBACxC,IAAQiD,EAAUjD,KAAViD,MACRjD,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK8C,GAAK9C,KAAK0C,OAAOI,IAAM,GAC5B9C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtCH,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAK+C,UAAY/C,KAAK0C,OAAOvC,YAAc,SAC3C,IAAQ2C,EAAO9C,KAAP8C,GACR9C,KAAKgqB,cACLhqB,KAAKgD,SAASF,EAAI,sBAAuB9C,KAAKiqB,UAC9CjqB,KAAKgD,SAASF,EAAI,qBAAsB9C,KAAKkqB,eAC7ClqB,KAAKgD,SAASC,EAAO,gCAAiCjD,KAAKmqB,cAC3DnqB,KAAKgD,SAASC,EAAO,gBAAiBjD,KAAKoqB,iBAC3CpqB,KAAKqqB,gBAAgB,K,6BAGvB,WACErqB,KAAKgqB,cACLhqB,KAAKsqB,kB,yBAGP,WACE,IAAQ7N,EAA8Bzc,KAA9Byc,OAAQxZ,EAAsBjD,KAAtBiD,MAAOP,EAAe1C,KAAf0C,OAAQI,EAAO9C,KAAP8C,GACzBL,EAAaQ,EAAMzB,IAAI,UAC7BsB,EAAGa,IAAI,cAAe,GACtBlB,EAAW8nB,KAAK,cAAc,kBAAMznB,EAAGa,IAAI,cAAe,MAC1D8Y,GAAUA,EAAOvZ,SACjBlD,KAAKyc,OAAS,IAAIkN,EAAW,CAC3BlnB,WAAAA,EACAC,OAAQ,OACHA,GADC,IAEJykB,WAAYnnB,W,2BAKlB,SAAcwmB,GAAsB,IAAX5d,EAAW,uDAAJ,GACtBmM,EAAWnM,EAAXmM,OACFyV,EAAYxqB,KAAK8C,GAAGtB,IAAI,gBAE9BuT,GACEyR,EAAUiE,MAAMhe,SAAQ,SAAAtJ,GACtBA,EAAKunB,cAAgBF,GAAarnB,EAAKwnB,eAAe5V,Q,oBAI5D,WACE/U,KAAKyc,OAAOvZ,SACZlD,KAAKyc,OAAS,GACdzY,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC/jB,KAAKqqB,oB,4BAGP,SAAe/e,GACTA,IACFA,EAAGjF,iBACHiF,EAAGsf,cAAgBtf,EAAGsf,aAAavkB,oB,0BAIvC,SAAaiF,M,6BAOb,SAAgB6S,GACCne,KAAP6D,GAAR,IACMgnB,EAAK1M,EAASxO,EAAAA,GAAK8F,EAAAA,IACzBoV,EAAG3iB,SAAU,WAAYlI,KAAK8qB,YAC9BD,EAAG9qB,OAAQ,gBAAiBC,KAAKiqB,Y,wBAInC,SAAW3e,GACT,IAAQxI,EAAO9C,KAAP8C,GAGI,OAFAioB,EAAAA,EAAAA,YAAWzf,IAEoB,IAAxBxI,EAAGoiB,kBAA2BpiB,EAAGtB,IAAI,UAAUwpB,mBAChEhrB,KAAKqG,eAAeiF,GACpBxI,EAAGtB,IAAI,UAAU6K,WAAW,uB,qBAIhC,SAAQf,GACN,IAAKA,EAAG2f,SAAW3f,EAAG4f,UAAYlrB,KAAK8C,GAAGoN,UAAU,eAAgB,CAClElQ,KAAKqG,eAAeiF,GACpB,IAAQrI,EAAUjD,KAAViD,MACFkoB,EAAQC,KAAKC,KAAK,EAAGD,KAAKE,IAAI,EAAGhgB,EAAGigB,aAAejgB,EAAGkgB,SACtD7O,EAAO1Z,EAAMzB,IAAI,QACvByB,EAAMU,IAAI,OAAQgZ,EAAe,EAARwO,M,0BAI7B,SAAa7f,GACX,IAAQxI,EAAc9C,KAAd8C,GACR,EADsB9C,KAAViD,MACWoQ,WAAfuJ,EAAR,EAAQA,EAAGC,EAAX,EAAWA,EACLF,EAAO3c,KAAKyrB,UACZC,EAAU,CAAErL,iBAAkB,GAC9BsL,EAAMhP,EAAO,EAAIA,EAAO,EAC9B3c,KAAK4rB,WAAWjV,MAAMkV,UAAtB,gBAA2ClP,EAA3C,uBAA8DC,EAAI+O,EAAlE,eAA4E9O,EAAI8O,EAAhF,OACA3rB,KAAKiqB,WACLnnB,EAAG8V,YAAY8S,GACf5oB,EAAG4B,QAAQ,gBAAiB4G,GAC5Boe,GAAaoC,aAAapC,GAC1BA,EAAYzF,YAAW,kBAAMnhB,EAAG+V,WAAW6S,KAAU,O,qBAGvD,WACE,OAAO1rB,KAAK8C,GAAGoiB,mB,4BAQjB,SAAerhB,GACb,IAAMkoB,GAAOC,EAAAA,EAAAA,YAAWnoB,GAClBqf,GAAO+I,EAAAA,EAAAA,WAAUF,GACjBG,EAAYlsB,KAAKmsB,eAAeJ,GAChCK,EAAOlJ,EAAKlD,IACZqM,EAAQnJ,EAAKnD,KACnB,OAAOqM,GAAQ,GAAKC,GAAS,GAAKD,GAAQF,EAAU9pB,QAAUiqB,GAASH,EAAU7pB,Q,oBAQnF,SAAOwB,GAAe,IAAX+E,EAAW,uDAAJ,GACVsa,GAAO+I,EAAAA,EAAAA,WAAUpoB,GACjByoB,EAAUzoB,EAAG6a,cAAczU,KACzBsiB,EAAa3jB,EAAb2jB,SAER,MAAO,CACLvM,IAAKkD,EAAKlD,KAAOuM,EAAW,EAAID,EAAQ3lB,WACxCoZ,KAAMmD,EAAKnD,MAAQwM,EAAW,EAAID,EAAQlJ,YAC1C/gB,MAAO6gB,EAAK7gB,MACZD,OAAQ8gB,EAAK9gB,U,sBAQjB,WACEpC,KAAKwsB,OAAS,KACdxsB,KAAKysB,OAAS,O,4BAQhB,SAAe5oB,GACb,IAAK7D,KAAKwsB,QAAU3oB,EAAI,CACtB,IAAMuX,EAAQpb,KAAKob,MAAMvX,GACnB6oB,EAAQ7oB,GAAMA,EAAG6a,cAAcC,YAC/BgO,EAAOD,EAAQA,EAAM9N,aAAexD,EAC1Cpb,KAAKwsB,OAASxsB,KAAK4sB,OAAOD,GAAQvR,GAEpC,OAAOpb,KAAKwsB,S,6BAQd,WAEE,OADKxsB,KAAKysB,SAAQzsB,KAAKysB,OAASzsB,KAAK4sB,OAAO5sB,KAAK6D,KAC1C7D,KAAKysB,S,2BASd,SAAc5oB,EAAI+E,GAChB,IAAM+T,EAAO3c,KAAKyrB,UACdoB,EAAMjkB,GAAQ,GACd4jB,EAASxsB,KAAKmsB,eAAetoB,GAC7B4oB,EAASzsB,KAAK8sB,kBACdC,EAAK/sB,KAAK4sB,OAAO/oB,EAAI+E,GAErBokB,EAASH,EAAII,iBAAmB,EAAIT,EAAOxM,IAC3CkN,EAAUL,EAAII,iBAAmB,EAAIT,EAAOzM,KAOhD,MAAO,CAAEC,IALG+M,EAAG/M,IAAMrD,EAAOqQ,EAASP,EAAOzM,IAK9BD,KAJDgN,EAAGhN,KAAOpD,EAAOuQ,EAAUT,EAAO1M,KAI3B3d,OAHL2qB,EAAG3qB,OAASua,EAGCta,MAFd0qB,EAAG1qB,MAAQsa,EAEUA,KAAAA,EAAMuG,KAAM6J,K,+BASjD,SAAkBlpB,GAAI,WACpB,IAAKA,IAAMspB,EAAAA,EAAAA,YAAWtpB,GAAK,MAAO,GAClC,IAAM5B,EAAS,GACTka,EAASpc,OAAOqtB,iBAAiBvpB,GAcvC,MAbA,CACE,YACA,cACA,eACA,aACA,aACA,eACA,gBACA,eACA4I,SAAQ,SAAAmgB,GACR3qB,EAAO2qB,GAAUS,WAAWlR,EAAOyQ,IAAW,EAAKnB,aAG9CxpB,I,yBAQT,WAAuB,IAAX2G,EAAW,uDAAJ,GACX6V,EAAMze,KAAKob,MAAMvX,GAAG0U,gBAC1B,GAAKkG,EAAL,CACA,IAAM6O,EAAM7O,EAAIxU,KACV0S,EAAO3c,KAAKyrB,UACZ8B,EAAKvtB,KAAKmsB,iBACVqB,EAAKxtB,KAAK8sB,kBACRP,EAAa3jB,EAAb2jB,SAER,MAAO,CACLvM,IAAKuN,EAAGvN,KAAOuM,EAAW,EAAIe,EAAI3mB,WAAagW,EAAO6Q,EAAGxN,IACzDD,KAAMwN,EAAGxN,MAAQwM,EAAW,EAAIe,EAAIlK,YAAczG,EAAO6Q,EAAGzN,KAC5D1d,MAAOmrB,EAAGnrB,MACVD,OAAQorB,EAAGprB,W,0BASf,SAAae,GACX,IAAMF,EAAQE,EAAKF,MACb0C,EAAK1C,EAAMwqB,QAEZtqB,EAAKuqB,kBACRvqB,EAAKuqB,iBAAkB7K,EAAAA,EAAAA,IAAS,MAAO,CAAE,UAAWld,IACpD3F,KAAK2mB,iBAAiBlf,YAAYtE,EAAKuqB,kBAGzCvqB,EAAKU,GAAG8B,GAAKA,EACbxC,EAAKuqB,gBAAgB5pB,UAAY,GAGjC,IAAM6pB,EAASzlB,SAAS0lB,cAAc,UAChCC,EAAW5qB,EAAM6qB,kBACjBC,EAAc9qB,EAAMzB,IAAI,gBAAkBqsB,EAA5B,uBAAuDA,EAAvD,QACdG,EAAcpkB,KAAKqkB,UAAUhrB,EAAMirB,oBACzCP,EAAO7pB,UAAP,uFAE0C6B,EAF1C,qDAIOooB,EAJP,wBAIkCC,EAJlC,mBAQA/J,YAAW,WACT,IAAMkK,EAAMhrB,EAAKuqB,gBACjBS,MAAAA,GAAAA,EAAK1mB,YAAYkmB,KAChB,K,4BAOL,SAAexqB,GACb,IAAM2d,EAAY9gB,KAAKouB,aAAajrB,GACpC,OAAO2d,GAAaA,EAAU6F,mB,0BAGhC,SAAaxjB,GACX,OAAQA,GAAQA,EAAKunB,aAAgB1qB,KAAK8C,GAAGtB,IAAI,kB,2BAGnD,WACE,GAAKxB,KAAKquB,MAAV,CACA,IAAQprB,EAAkCjD,KAAlCiD,MAAOwZ,EAA2Bzc,KAA3Byc,OAAQ3Z,EAAmB9C,KAAnB8C,GAAI8oB,EAAe5rB,KAAf4rB,WACrB0C,EAAOrrB,EAAMzB,IAAI,UACvB8sB,EAAKC,eACL9R,EAAOjV,SACP,IAAMgnB,EAAYF,EAAKxnB,GAAG,GACpB0jB,EAAYgE,GAAaA,EAAUrrB,KACzCL,EAAG2rB,gBAAgBjE,GACnBoB,GAAcA,EAAWnkB,YAAYgV,EAAO5Y,IAC5C7D,KAAKob,MAAQoP,K,oBAGf,WACE,IAAQ3mB,EAA8B7D,KAA9B6D,GAAIc,EAA0B3E,KAA1B2E,IAAK/B,EAAqB5C,KAArB4C,KAAMF,EAAe1C,KAAf0C,OAAQI,EAAO9C,KAAP8C,GAC/B6B,EAAIT,KAAKlE,KAAK+D,YACd,IAAM2qB,EAAU/pB,EAAImD,KAAK,iBACzB9H,KAAK4rB,WAAa8C,EAAQltB,IAAI,GAE9B,IAAMmtB,EAAWhqB,EAAImD,KAAK,gBAC1B9H,KAAKopB,aAAeuF,EAASntB,IAAI,GACjCmtB,EAAS3mB,OAAT,+BACgBpF,EADhB,iBAC6BA,EAD7B,2EAEkBA,EAFlB,kDAGoBA,EAHpB,mFAMaA,EANb,2DAOMF,EAAO4Z,MAAP,uBAA8B1Z,EAA9B,4BAA8D,GAPpE,kCAQkBA,EARlB,gDASkBA,EATlB,gDAUkBA,EAVlB,+EAWkBA,EAXlB,kDAYkBA,EAZlB,mDAakBA,EAblB,gDAgBA,IAAM+gB,EAAU9f,EAAGkD,cAAH,WAAqBnE,EAArB,UAehB,OAdA5C,KAAK4uB,KAAO/qB,EAAGkD,cAAH,WAAqBnE,EAArB,gBACZ5C,KAAK6uB,QAAUhrB,EAAGkD,cAAH,WAAqBnE,EAArB,UACf5C,KAAK8uB,SAAWjrB,EAAGkD,cAAH,WAAqBnE,EAArB,gBAChB5C,KAAK+uB,QAAUlrB,EAAGkD,cAAH,WAAqBnE,EAArB,UACf5C,KAAKgvB,UAAYnrB,EAAGkD,cAAH,WAAqBnE,EAArB,YACjB5C,KAAKivB,UAAYprB,EAAGkD,cAAH,WAAqBnE,EAArB,YACjB5C,KAAKkvB,SAAWrrB,EAAGkD,cAAH,WAAqBnE,EAArB,aAChB5C,KAAKmvB,cAAgBtrB,EAAGkD,cAAH,WAAqBnE,EAArB,mBACrB5C,KAAKovB,YAAcvrB,EAAGkD,cAAH,WAAqBnE,EAArB,aACnB5C,KAAK2jB,QAAUA,EACf3jB,KAAK6D,GAAGd,WAAYssB,EAAAA,EAAAA,YAAWvsB,EAAI9C,KAAK+C,WACxC/C,KAAKquB,MAAQ,EACbruB,KAAKsqB,gBAEEtqB,S,EAhXU8pB,CAAmB9lB,EAAAA,M,qkBE+CxC,mBACE,IACI2T,EACAmS,EAFAjhB,EAAI,GAIR,MAAO,CAKLymB,cALK,WAMH,OAAOxF,GAGT3lB,KAAM,SAONf,KAhBK,WAgBa,IAAbV,EAAa,uDAAJ,GACZmG,EAAI,SACC4G,GACA/M,GAFJ,IAGC/C,OAAQK,OAGVA,KAAK8C,GAAK+F,EAAE/F,GACZ,MAA4B+F,EAApBqT,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,OACXvZ,EAAOiG,EAAEhG,aAMf,OALID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aACnCwX,EAAS,IAAI6E,EAAO,CAAEN,QAAAA,EAASC,OAAAA,GAAUzZ,GACzC1C,KAAKiD,MAAQ0U,EACb3X,KAAKuvB,gBAAkBvvB,KAAKuvB,gBAAgBlsB,KAAKrD,MACjDA,KAAKqlB,eAAiBrlB,KAAKqlB,eAAehiB,KAAKrD,MACxCA,MAGT+R,OAlCK,WAmCH/R,KAAKiD,MAAMG,QAGbqf,SAtCK,WAuCH,OAAO9K,GASTzH,UAhDK,WAiDH,OAAOrH,GAOTmjB,WAxDK,WAyDH,OAAOlC,EAAWjmB,IAGpB2rB,SA5DK,SA4DIC,GACP,OAAOzvB,KAAKmb,YAAYsU,GAAS,IAOnCnX,WApEK,WAqEH,IAAQ8C,GAAU0O,GAAc,IAAxB1O,MACR,OAAOA,GAASA,EAAMvX,IAGxB6rB,YAzEK,WA0EH,OAAO5F,EAAW8B,YAOpBpH,UAjFK,WAkFH,OAAOxkB,KAAKsY,aAAaoK,eAO3BiN,YAzFK,WA0FH,IAAMvU,EAAQpb,KAAKsY,aACnB,OAAO8C,GAASA,EAAM7C,iBAOxB5M,QAlGK,WAmGH,IAAM8S,EAAMze,KAAK2vB,cACjB,OAAOlR,GAAOA,EAAIxU,MAGpB2lB,cAvGK,SAuGSC,GACZ,OAAOA,GAAYA,EAASnF,aAG9BoF,YA3GK,SA2GOC,EAAUF,EAAUrlB,GAC9B,IAAIvI,EAAS8tB,EACPjP,EAAY9gB,KAAK4vB,cAAcC,GAGrC,OAFA5tB,EAAS6e,EAAYA,EAAUtW,KAAYvI,GAU7C+gB,iBAxHK,WAyHH,OAAO8G,EAAWsF,aAQpBxL,WAjIK,SAiIMiM,GACT,OAAO7vB,KAAK8vB,YAAYhG,EAAWnG,QAASkM,EAAU,eAQxDG,eA1IK,SA0IUH,GACb,OAAO7vB,KAAK8vB,YAAYhG,EAAW8E,KAAMiB,EAAU,mBAQrDI,WAnJK,SAmJMJ,GACT,OAAO7vB,KAAK8vB,YAAYhG,EAAW+E,QAASgB,EAAU,eAQxD9X,YA5JK,WA6JH,OAAO+R,EAAWgF,UAQpBoB,WArKK,WAsKH,OAAOpG,EAAWiF,SAQpBoB,aA9KK,WA+KH,OAAOrG,EAAWkF,WAQpBoB,aAvLK,WAwLH,OAAOtG,EAAWmF,WAQpBoB,kBAhMK,SAgMaR,GAChB,OAAO7vB,KAAK8vB,YAAYhG,EAAWoF,SAAUW,EAAU,sBAQzDS,uBAzMK,WA0MH,OAAOxG,EAAWqF,eAGpB3nB,OA7MK,WAmNH,OALAsiB,GAAcA,EAAW5mB,UACzB4mB,EAAa,IAAI3C,EAAW,CAC1BlkB,MAAO0U,EACPjV,OAAQmG,KAEQrB,SAAS3D,IAQ7B0sB,UA3NK,WA4NH,IAAIC,EAAWxwB,KAAK4sB,OAAO5sB,KAAKsY,cAC5BmY,EAAYzwB,KAAK4sB,OAAO5sB,KAAKgsB,cACjC,MAAO,CACLhM,IAAKwQ,EAASxQ,IAAMyQ,EAAUzQ,IAC9BD,KAAMyQ,EAASzQ,KAAO0Q,EAAU1Q,OAUpC6M,OA1OK,SA0OE/oB,GACL,OAAOimB,EAAW8C,OAAO/oB,IAW3B6sB,oBAtPK,SAsPete,GAClBvJ,EAAEuT,iBAAmBhK,GASvBue,cAhQK,SAgQS9sB,EAAI+E,GAChB,OAAOkhB,EAAW6G,cAAc9sB,EAAI+E,IAStCgoB,kBA1QK,SA0Qa/sB,GAChB,OAAOimB,EAAW8G,kBAAkB/sB,IAOtC+gB,QAlRK,WAmRH,MAAsBkF,EAAW+G,cAAzB7Q,EAAR,EAAQA,IAAKD,EAAb,EAAaA,KACb,cACK+J,EAAWgD,mBADhB,IAEEgE,UAAW9Q,EACX+Q,WAAYhR,KAoBhBiR,sBA3SK,SA2SiBttB,EAAQutB,GAAuB,IAAdzuB,EAAc,uDAAJ,GAC3CoG,EAAOpG,GAAW,GAClB0uB,EAAYpH,EAAW+G,cAC3B,GAAKK,EAAL,CACA,IAAIC,EAAMvoB,EAAKwoB,OAAStH,EAAW6G,cAAcM,GAC7CI,EAAU7uB,EAAQ6uB,SAAW,EAC7BC,EAAe1oB,EAAK0oB,cAAgB5tB,EAAO2f,aAC3CkO,EAAc3oB,EAAK2oB,aAAe7tB,EAAO4f,YACzCkO,EAAiB5oB,EAAK0E,OAAS,KAE/B+b,EAAQ8H,EAAInR,IAAMsR,EAClB9H,EAAS2H,EAAIpR,KACjByJ,GAAU6H,EAAUF,EAAI9uB,MAAQ,EAGhC,IAAIovB,GAFJjI,EAAS6H,EAAU7H,EAAS+H,EAAc/H,GAEnB0H,EAAUnR,KAAOmR,EAAUnR,KAAOyJ,EACrDkI,EAASrI,EAAQ6H,EAAUlR,IAAMkR,EAAUlR,IAAMqJ,EAGjDpnB,EAAS,CACX+d,IAHF0R,EAASA,EAASP,EAAInR,IAAMmR,EAAI/uB,OAAS+uB,EAAInR,IAAMmR,EAAI/uB,OAASsvB,EAI9D3R,KAAM0R,EACNE,WAAYR,EAAInR,IAChB4R,YAAaT,EAAIpR,KACjB8R,aAAcV,EAAI9uB,MAClByvB,cAAeX,EAAI/uB,OACnBmvB,YAAa7tB,EAAO4f,YACpBgO,aAAc5tB,EAAO2f,aACrB0O,UAAWb,EAAUlR,IACrBgS,WAAYd,EAAUnR,KACtBkS,YAAaf,EAAU7uB,MACvB6vB,aAAchB,EAAU9uB,QAQ1B,OAJIovB,GAAkB3oB,EAAE/F,IACtB+F,EAAE/F,GAAG4B,QAAQ8sB,EAAgBvvB,GAGxBA,IAGTkwB,iBArVK,SAqVYtuB,EAAIstB,GAAgB,WAAXvoB,EAAW,uDAAJ,GACzBwpB,EAAoB,SAAA3T,GACxB,IAAQE,EAAgBF,EAAhBE,YACR,OAAOA,GAAeA,EAAYC,cAG9ByT,EAAU,SAACxuB,GAAqB,IAAjBmc,EAAiB,uDAAX,EAAGmR,EAAQ,uCAC9BxU,EAAO,EAAK7Z,GAAGoiB,iBACfoN,EAAOtS,EAAM,MAAQ,OACrBvB,EAAM5a,EAAG6a,cACf,EAA0C9V,EAAKgkB,OAASwF,EAAkB3T,GAAO,GAAjF,IAAQ8E,UAAAA,OAAR,MAAoB,EAApB,MAAuBC,WAAAA,OAAvB,MAAoC,EAApC,EACA,EAA0C/E,EAAIxU,MAAQ,GAAtD,IAAQtD,UAAAA,OAAR,MAAoB,EAApB,MAAuByc,WAAAA,OAAvB,MAAoC,EAApC,EACMrO,EAASiL,EAAMrZ,EAAYyc,EAC3BwJ,EAAS5M,EAAMuD,EAAYC,EAMjC,OAAO2N,EAAImB,IAASvd,EAAS6X,GAAUjQ,GAGzC,MAAO,CACLqD,IAAKqS,EAAQxuB,EAAI,EAAGstB,GACpBpR,KAAMsS,EAAQxuB,EAAI,EAAGstB,KAIzBoB,wBAjXK,SAiXmB1uB,EAAI2uB,GAAqB,IAAX5pB,EAAW,uDAAJ,GACrCuoB,EAAMvoB,EAAKuoB,KAAOnxB,KAAK2wB,cAAc9sB,GACrC4uB,EAAQ7pB,EAAK6nB,WAAazwB,KAAKmyB,iBAAiBtuB,EAAIstB,GACpDuB,EAAWF,EAASnP,cAAgB,EACpCsP,EAAWH,EAASlP,aAAe,EACnCgG,EAAU6H,EAAIpR,KAAOoR,EAAI9uB,MACzB+kB,EAAKpnB,KAAKsvB,gBACVsD,EAAUxL,EAAGyJ,cACbgC,EAAczL,EAAG+E,eAAetoB,GAC9ByJ,EAAU1E,EAAV0E,MAEJ0S,GAAO0S,EACP3S,GAAQ+E,EAAAA,EAAAA,aAAYlc,EAAKmX,MAAoBoR,EAAI9uB,MAAQswB,EAAxB/pB,EAAKmX,KAC1CA,EAAOoR,EAAIpR,MAAQA,GAAQoR,EAAIpR,KAAOA,EACtCA,EAAOuJ,EAAUsJ,EAAQvwB,MAAQ0d,GAAQuJ,EAAUsJ,EAAQvwB,OAAS0d,EAIpE,IAAM+S,EAAa3B,EAAI/uB,OAASswB,EAC1BK,EAAYD,EAAaD,EAAYzwB,OAEvCqwB,EAAMzS,IAAM0S,IACVK,EACF/S,GAAY8S,EAEZ9S,GAAOyS,EAAMzS,IAAMmR,EAAI/uB,QAAUqwB,EAAMzS,IAAMmR,EAAI/uB,QAIrD,IAAMH,EAAS,CACb+d,IAAAA,EACAD,KAAAA,EACAiT,gBAAiBP,EAAMzS,IACvBiT,iBAAkBR,EAAM1S,MAM1B,OAFAzS,GAAStN,KAAK8C,GAAG4B,QAAQ4I,EAAOrL,GAEzBA,GAYTixB,oBApaK,SAoaehuB,EAAG1C,GACrB,IACI2wB,EAAS,EACTC,EAAU,EACVC,GAHO7wB,GAAW,IAGE6wB,aACpB5U,EAAMvZ,EAAExB,OAAOgb,cACf6F,EAAM9F,EAAIE,aAAeF,EAAI6U,aAC7BlY,EAAQmJ,EAAI3F,aACZ2U,EAAUF,EAAe9O,EAAIiP,YAAc,EAC3CC,EAAUJ,EAAe9O,EAAImP,YAAc,EAE/C,GAAItY,EAAO,CACT,IAAI8Q,EAAY9Q,EAAM+H,wBACtBgQ,EAASjH,EAAUlM,KAAO,EAC1BoT,EAAUlH,EAAUnM,MAAQ,EAG9B,MAAO,CACLlD,EAAG3X,EAAEga,QAAUiU,EAASI,EACxB3W,EAAG1X,EAAE+Z,QAAUmU,EAAUK,IAU7BE,uBAjcK,SAickBroB,EAAI1C,GACzB,IAAM+T,EAAO3c,KAAKklB,iBAClB,EAAsB4E,EAAW+G,YAAYjoB,GAArCoX,EAAR,EAAQA,IAAKD,EAAb,EAAaA,KAEb,MAAO,CACLlD,EAAGvR,EAAG4T,QAAUvC,EAAOqD,EACvBpD,EAAGtR,EAAG2T,QAAUtC,EAAOoD,IAQ3B6T,SA/cK,WAgdH,OAAO5zB,KAAK2vB,cAAciE,YAQ5B5I,eAxdK,WAydH,IAAMvM,EAAMze,KAAK2vB,cACXvU,EAAQpb,KAAKsY,aACbub,EAAW,CAAC,QAAJ,eAAe7zB,KAAKkQ,YAAYqM,cAExCuX,EADY1Y,GAASlT,SAAS6rB,gBAAkB3Y,EAC1BqD,GAAOA,EAAIsV,cAAgB7rB,SAAS6rB,cAEhE,OAAOD,IAAYD,EAAS1R,MAAK,SAAAzV,GAAI,OAAIonB,EAAQE,QAAQtnB,OAkB3DsY,SAjfK,SAifInhB,GAAe,IAAX+E,EAAW,uDAAJ,GACZmjB,GAAOC,EAAAA,EAAAA,YAAWnoB,GAClBV,EAAO4oB,IAAQkI,EAAAA,EAAAA,WAAUlI,GAC/B5oB,GAAQA,EAAKwnB,eAAe/hB,IAO9B2mB,gBA3fK,SA2fWnU,GACd,IAAM8Y,EAAM9Y,GAASA,EAAMjY,MAASnD,KAAK8C,GAAGqxB,kBAC5CD,GAAMA,EAAG3E,mBAOXlK,eApgBK,SAogBUjK,GACb,IAAM8Y,EAAM9Y,GAASA,EAAMjY,MAASnD,KAAK8C,GAAGqxB,kBAC5CD,GAAMA,EAAG7O,kBAUX+O,QAhhBK,SAghBGvuB,GAEN,OADA8R,EAAOhU,IAAI,OAAQ0pB,WAAWxnB,IACvB7F,MAUTyrB,QA5hBK,WA6hBH,OAAO4B,WAAW1V,EAAOnW,IAAI,UAW/B6yB,UAxiBK,SAwiBKzX,EAAGC,GAEX,OADAlF,EAAOhU,IAAI,CAAEiZ,EAAGyQ,WAAWzQ,GAAIC,EAAGwQ,WAAWxQ,KACtC7c,MAWTs0B,UArjBK,WAsjBH,MAAiB3c,EAAOtE,WACxB,MAAO,CAAEuJ,EADT,EAAQA,EACIC,EADZ,EAAWA,IAIbqI,eA1jBK,WA2jBH,OAAOllB,KAAKyrB,UAAY,KAG1B1D,kBA9jBK,WA+jBH,IAAMpL,EAAO3c,KAAKklB,iBAClB,OAAOvI,EAAO,EAAIA,EAAO,GAG3BkL,mBAnkBK,SAmkBclY,GACC3P,KAAK0vB,cAAf/Y,MACF4d,cAAgB5kB,EAAK,GAAK,QAGlCwL,UAxkBK,WAykBH,OAAOxD,EAAOnW,IAAI,UAAUkZ,KAAI,SAAAhO,GAAI,OAAIA,MAyB1C8nB,SAlmBK,WAkmB2B,IAAvB5Y,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC1B,OAAO+O,EAAOnW,IAAI,UAAUqF,IAArB,KAEA+U,GAFA,OAKAhT,GALA,IAMH9F,GAAI9C,KAAK8C,OAKf0P,QA9mBK,WA8mBK,WACRmF,EAAOlF,gBACPqX,GAAcA,EAAW5mB,SACzB,CAAC2F,EAAG8O,EAAQmS,GAAYrd,SAAQ,SAAArC,GAAC,MAAS,MAC1C,CAAC,KAAM,QAAS,aAAaqC,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,U,4pCC1qB3D,IAAMqqB,EAAW,OACXC,EAAW,OAUIC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL/X,EAAG,EACHC,EAAG,EACH+X,aAAc,EACdvhB,WAAY,GACZhR,MAAO,KACPD,OAAQ,KACRyjB,KAAM,GACNW,UAAW,GACXrK,OAAQ,GACR0Y,OAAO,EACPC,SAAU,CAAC,mB,wBAIf,SAAWlZ,GAAkB,IAAXhT,EAAW,uDAAJ,GACflG,EAAWkG,EAAXlG,OACAI,EAAOJ,EAAPI,GACR,EAA8B9C,KAAKqT,WAA3B8I,EAAR,EAAQA,OAAQqK,EAAhB,EAAgBA,UACVuO,EAAOjyB,EAAGtB,IAAI,iBACd2kB,EAAO4O,EAAK7kB,YACZ8kB,EAAWlyB,EAAGtB,IAAI,eAAeqO,SACjColB,EAAQ,GACdj1B,KAAK8C,GAAKA,EACV,IAAMoyB,EAAU,CAAEpyB,GAAAA,EAAIJ,OAAQyjB,EAAM/K,MAAOpb,KAAMi1B,MAAAA,GAEjD,KAAKE,EAAAA,EAAAA,aAAY3O,GAAY,CAC3B,IAAM3C,GAAM1K,EAAAA,EAAAA,UAASqN,GAAaA,EAAY,CAAE9R,WAAY8R,IAC3D3C,EAAIviB,OAASuiB,EAAIviB,KAAO,WACzB,IAAM8zB,EAAUL,EAAKnjB,QAAQ,WAAW3O,MACxCjD,KAAK2D,IAAI,YAAa,IAAIyxB,EAAQvR,EAAKqR,IAGzC,GAAK/Y,GAEE,KAAKhD,EAAAA,EAAAA,UAASgD,GAAS,CAE5B,IAAMkZ,EAAYzT,OAAOC,KAAKoT,GAC1BI,EAAUpuB,QAAU+W,MAAMhD,QAAQmB,IACpCA,EAAO1P,SAAQ,SAAAkK,GACb,IAAM2e,EAAM3e,EAAM4e,UAClB,GAAID,GAAqB,GAAdA,EAAIruB,OAAa,CAC1B,IAAMuuB,EAAOF,EAAI,GACXG,EAAQD,EAAKrxB,MAAsB,IAAdqxB,EAAKl0B,MAAck0B,EAC9C,GAAIC,GAASR,EAAMQ,EAAMtxB,MACvBsxB,EAAMtxB,KAAO8wB,EAAMQ,EAAMtxB,WACpB,IAAI+U,EAAAA,EAAAA,UAASsc,IAAqB,MAAZA,EAAK,GAAY,CAC5C,IAAME,EAASF,EAAKG,UAAU,GAC1BD,GAAUT,EAAMS,KAClBJ,EAAI,GAAJ,WAAaL,EAAMS,UAO7BV,EAASnuB,IAAIsV,GACbnc,KAAK2D,IAAI,SAAUqxB,SAvBnBh1B,KAAK2D,IAAI,SAAUqxB,IA0BpBpZ,EAAMvZ,OAASrC,KAAK2D,IAAI8wB,EAAU,IAClC7Y,EAAMxZ,QAAUpC,KAAK2D,IAAI+wB,EAAU,K,sBAGtC,WACE10B,KAAK8d,eAAe5a,OAAO,CAAE1D,KAAM,M,uBAGrC,WAAoB,IAAVqtB,EAAU,uDAAJ,GACVA,EAAI+I,WAAa/I,EAAIgJ,SAAWhJ,EAAIiJ,YAGxC91B,KAAK2D,IAAI,eAAgB3D,KAAKwB,IAAI,gBAAkB,K,0BAGtD,WACE,OAAOxB,KAAKwB,IAAI,e,uBAGlB,WACE,OAAOxB,KAAKwB,IAAI,Y,qBAGlB,WACExB,KAAK0E,QAAQ,a,oBAGf,WACE1E,KAAKmD,KAAO,EACZ,IAAMsB,EAAOzE,KAAKyC,WAClB,OAAOgC,GAAQA,EAAKvB,OAAOlD,Q,qBAG7B,WACE,IAAM6lB,EAAO7lB,KAAKwB,IAAI,SAAW,GACjC,cAAWqkB,K,qBAGb,SAAQhgB,GACN,OAAO7F,KAAK2D,IAAI,QAAT,OAAqBkC,M,yBAG9B,SAAY6G,GACV,IAAMmZ,EAAO7lB,KAAKshB,UAClBuE,EAAKjY,KAAKlB,GACV1M,KAAK+1B,QAAQlQ,K,2BAGf,SAAcjZ,EAAM/G,EAAOqc,GAEzB,OADaliB,KAAKshB,UACN0U,QAAO,SAAAtpB,GAAI,OAAIA,EAAK2G,YAAc3G,EAAK2G,WAAWzG,IAAS/G,KAAWqc,GAAOA,IAAQxV,EAAKwV,QAAM,K,8BAG9G,SAAiBtV,EAAM/G,EAAOqc,GAC5B,IAAM2D,EAAO7lB,KAAKshB,UACZ5U,EAAO1M,KAAKi2B,cAAcrpB,EAAM/G,EAAOqc,GACvCuN,EAAQ5J,EAAKlR,QAAQjI,GAEvB+iB,GAAS,IACX5J,EAAKqQ,OAAOzG,EAAO,GACnBzvB,KAAK+1B,QAAQlQ,M,qBAIjB,SAAQnF,GACN,IAAMwB,EAAM,QACXliB,KAAKi2B,cAAc,OAAQvV,EAAMwB,IAChCliB,KAAKm2B,YAAY,CACfjU,IAAAA,EACA7O,WAAY,CACVqN,KAAAA,EACAuF,IAAK,kB,wBAKb,SAAWvF,GACT1gB,KAAKo2B,iBAAiB,OAAQ1V,EAAM,U,uBAGtC,SAAUnf,GACR,IAAM2gB,EAAM,UACXliB,KAAKi2B,cAAc,MAAO10B,EAAK2gB,IAC9BliB,KAAKm2B,YAAY,CACfjU,IAAAA,EACA7O,WAAY,CAAE9R,IAAAA,O,0BAIpB,SAAaA,GACXvB,KAAKo2B,iBAAiB,MAAO70B,EAAK,Y,qBAGpC,WACE,IAAMkD,EAAOzE,KAAKyC,WAClB,OAAOgC,GAAQA,EAAK6Y,O,0BAGtB,WAAwB,IAAXxT,EAAW,uDAAJ,GAClB9J,KAAK8C,GAAG4B,QAAQ,gBAAhB,GAAmC0W,MAAOpb,MAAS8J,M,oBAGrD,WAAkB,IAAXlB,EAAW,uDAAJ,GACN0I,EAAMzP,EAAAA,EAAAA,UAAAA,OAAAA,KAA4B7B,KAAM4I,GACxC6G,GAAWxN,EAAAA,EAAAA,QAAOjC,KAAM,YAqB9B,OAnBI4I,EAAKytB,iBAAiB/kB,EAAIkV,iBACvBlV,EAAI6K,cACJ7K,EAAIsjB,aACXtjB,EAAG,aAAqBA,EAAIjP,MAC5BiP,EAAG,aAAqBA,EAAIlP,QAG5BqK,EAAAA,EAAAA,SAAQ6E,GAAK,SAACzL,EAAOywB,GACE,IAArBA,EAAI3hB,QAAQ,aAAqBrD,EAAIglB,OAGvC7pB,EAAAA,EAAAA,SAAQgD,GAAU,SAAC5J,EAAOywB,GACpBhlB,EAAIglB,KAASzwB,UAAcyL,EAAIglB,OAGrC7pB,EAAAA,EAAAA,SAAQ,CAAC,aAAc,SAAS,SAAA8pB,IAC1BC,EAAAA,EAAAA,SAAQllB,EAAIilB,YAAejlB,EAAIilB,MAG9BjlB,M,EA3LUqjB,CAAc9yB,EAAAA,G,igCCXdib,EAAAA,SAAAA,I,2HACnB,SAAWxM,GAAqB,IAAb5N,EAAa,uDAAJ,IAC1BwU,EAAAA,EAAAA,SAAQlX,KAAM,cACdA,KAAK0C,OAASA,EACd1C,KAAK2P,GAAG,QAAS3P,KAAKy2B,SACtBz2B,KAAK2P,GAAG,SAAU3P,KAAK02B,Y,qBAGzB,SAAQvkB,GAAc,WAAXvJ,EAAW,uDAAJ,GACV2U,EAAO3U,EAAK+tB,gBAAkB,GACpCpZ,EAAK7C,KAAI,SAAAkc,GAAC,OAAI,EAAKF,SAASE,Q,sBAG9B,SAASC,GACPA,GAAWA,EAAQH,a,wBAGrB,WACE12B,KAAK82B,cAED92B,KAAK82B,aAAe92B,KAAK+2B,cAC3B/2B,KAAK0E,QAAQ,cACb1E,KAAKg3B,kBAAkB,M,0BAI3B,WACEh3B,KAAK82B,YAAc,EACnB92B,KAAK+2B,YAAc/2B,KAAKiH,OACxBjH,KAAKg3B,kBAAkB,K,+BAGzB,SAAkBrnB,GAAI,WACpB3P,KAAKyM,SAAQ,SAAAC,GAAI,OAAIA,EAAKiD,EAAK,KAAO,OAAO,SAAU,EAAKsnB,iB,iBAG9D,SAAI9kB,GAAW,IAAR5P,EAAQ,uDAAJ,GACDG,EAAW1C,KAAX0C,OACR,OAAO8C,EAAAA,WAAAA,UAAAA,IAAAA,KAA8BxF,KAAMmS,EAApC,OAA4C5P,GAA5C,IAA+CG,OAAAA,S,EAtCrCoa,CAAetX,EAAAA,YA0CpCsX,EAAOhb,UAAUmB,MAAQ0xB,G,wEC9CzB,SAEEx0B,YAAa,MAEb+2B,WAAW,G,4fCFQC,EAAAA,SAAAA,I,sHACnB,SAAMl0B,GAAkB,IAAX2F,EAAW,uDAAJ,GACZwuB,EAAW,GACTt0B,EAAO8F,EAAP9F,GAGR,GAAI8F,EAAKyuB,SAAWv0B,EAAI,CACtB,IAAMw0B,EAAQx0B,EAAGtB,IAAI,eAAeqO,SAC9B0nB,EAAUD,EACbE,SACA9c,KAAI,SAAA+c,GACH,IAAMC,EAAOD,EAAKlC,UACZD,EAAMoC,GAAwB,IAAhBA,EAAKzwB,QAAgBywB,EAAKpnB,OAAO,GACrD,OAAOglB,GAAOA,EAAIqC,QAAUrC,EAAI9zB,IAAI,WAErCw0B,QAAO,SAAA5rB,GAAC,OAAIA,KAEfgtB,EAAS/jB,WAAa,SAACukB,EAAKC,GAC1B,IAAQlyB,EAAOkyB,EAAPlyB,GAUR,OAREA,GACU,MAAVA,EAAG,KACFiyB,EAAIp2B,IAAI,YACRo2B,EAAIp2B,IAAI,cAAcmE,IACvB4xB,EAAQ5iB,QAAQhP,GAAM,UAEfkyB,EAAMlyB,GAERkyB,GAIX,OAAO50B,EAAM60B,OAAOV,O,EAhCHD,CAAsBt1B,EAAAA,G,gdCCtBk2B,EAAAA,SAAAA,I,sHACnB,SAAM90B,GACJ,IAAI0G,EAAO1G,EAAMu0B,SAsBjB,OArBAx3B,KAAKg4B,WAAWruB,IAEhBvB,EAAAA,EAAAA,MACEuB,GACA,SAAUsuB,EAAGrrB,GACX,IAAI0E,EAAM3H,EAAKiD,GACf,GAAI0E,aAAezP,EAAAA,EACjB8H,EAAKiD,GAAQ5M,KAAKk4B,MAAM5mB,QACnB,GAAIA,aAAe9L,EAAAA,WAAY,CACpC,IAAIf,EAAO6M,EACX3H,EAAKiD,GAAQ,GACTnI,EAAKwC,QACPxC,EAAK2D,MAAK,SAAUvE,EAAI4rB,GACtB9lB,EAAKiD,GAAM6iB,GAASzvB,KAAKk4B,MAAMr0B,KAC9B7D,SAITA,MAGK2J,I,wBAOT,SAAW2H,UACFA,EAAI3G,W,EAhCMotB,CAAsBl2B,EAAAA,G,scCCvCs2B,ECIiBC,EAAAA,SAAAA,I,yHACnB,SAASn1B,GACP,IAAIo1B,EAAO,GACP1K,EAAS1qB,EAAMzB,IAAI,kBAAoByB,EAAMzB,IAAI,UACjDF,EAAO2B,EAAMzB,IAAI,QACjB82B,EAAQr1B,EAAMzB,IAAI,cAClBmE,EAAK1C,EAAMwqB,QAEf,GAAIE,EAAQ,CAEV,IAAI/gB,EAAO3J,EAAMzB,IAAI,cACrBoL,GAAO2rB,EAAAA,EAAAA,QAAO,GAAI3rB,EAAM,CAAEjH,GAAAA,IAC1B1C,EAAMU,IAAI,aAAciJ,EAAM,CAAE4M,OAAQ,IACxC,IAAIgf,EAASv1B,EAAM6qB,gBAAgBH,GAC7B8K,EAAWx1B,EAAMzB,IAAI,gBAG3B,GAAIyB,EAAMzB,IAAI,mBAAqBi3B,EACjCz4B,KAAK04B,MAAMp3B,EAAO,IAAMqE,GAAM,CAAEgzB,IAAK,CAAChzB,GAAK0yB,KAAMG,OAC5C,CACL,IAAI5c,EACEgd,EAAU54B,KAAK04B,MAAMp3B,GAM3B,GAJIm3B,IACF7c,EAAQ3Y,EAAMirB,oBAGZ0K,EACFA,EAAQD,IAAI/qB,KAAKjI,GACbiW,IAAOgd,EAAQhd,MAAMjW,GAAMiW,OAC1B,CACL,IAAMzS,EAAM,CAAEwvB,IAAK,CAAChzB,GAAK0yB,KAAMG,GAC3B5c,IAAOzS,EAAIyS,OAAJ,UAAejW,EAAKiW,IAC/B5b,KAAK04B,MAAMp3B,GAAQ6H,IASzB,OAJAmvB,EAAMlwB,MAAK,SAAUnF,GACnBo1B,GAAQr4B,KAAK64B,SAAS51B,KACrBjD,MAEIq4B,I,mBAGT,SAAMp1B,GACJjD,KAAK04B,MAAQ,GACb14B,KAAK64B,SAAS51B,GACd,IAAIo1B,EAAO,GAEX,IAAK,IAAI/2B,KAAQtB,KAAK04B,MAAO,CAC3B,IAAME,EAAU54B,KAAK04B,MAAMp3B,GAE3B,GAAKs3B,EAAQP,KAIb,GAAIO,EAAQhd,MAAO,CACjB,GA7DwD,IA6DpCgd,EAAQP,KA9DfS,WAAWvrB,MAAM,kBAAkB,GACvCxB,QAAQ,gBAAiB,IAAItF,OAAOQ,OA8D3C,SAGFoxB,GAAQ,2BAAJ,OACYzuB,KAAKqkB,UAAU2K,EAAQhd,OADnC,kQAMGgd,EAAQP,KANX,8CAQC,CAEL,IAAMM,EAAM,IAAMC,EAAQD,IAAI5W,KAAK,OACnCsW,GAAQ,sDAAJ,OACuCM,EADvC,yGAGgBC,EAAQP,KAHxB,wCAQR,OAAOA,M,EAjFUD,CAAoBv2B,EAAAA,G,upBDFrCk3B,E,QAAAA,YACFZ,EAAaa,EAAQ,MACrBA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,O,IAGWC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL3yB,MAAO,GACPwM,MAAO,GACPomB,SAAU,GACVC,MAAO,YACPC,UAAU,EACVC,aAAa,K,kBAIjB,SAAKx1B,GAWH,OAVAqT,EAAAA,EAAAA,SAAQlX,KAAM,YACdA,KAAKyL,OAAS0sB,EAAWmB,aAAaz1B,E,qWAAxB,EACZ01B,UAAU,EACVC,cAAc,EACdC,KAAMz5B,KAAKwB,IAAI,aACZxB,KAAKqT,aAEVrT,KAAKixB,QAAUptB,EACf7D,KAAKyL,OAAOkE,GAAG,SAAU3P,KAAK05B,UAEvB15B,O,sBAGT,WACEA,KAAK0E,QAAQ,SAAU1E,Q,uBAGzB,WACE,OAAOA,KAAKyL,S,wBAOd,WACE,OAAOzL,KAAKixB,U,wBAUd,SAAWptB,GAET,OADA7D,KAAKixB,QAAUptB,EACR7D,O,qBAOT,WAEE,OADAA,KAAKgU,YAAY2lB,UACV35B,O,mBAOT,WAEE,OADAA,KAAKgU,YAAY4lB,QACV55B,O,wBAGT,WACE,IAAM65B,EAAK75B,KAAKgU,YAChB,OAAO6lB,GAAMA,EAAGC,a,wBAIlB,SAAW7B,GAAc,WAAXrvB,EAAW,uDAAJ,GACX6C,EAAWzL,KAAXyL,OACHA,IACLA,EAAOsuB,SAAS9B,GAEZxsB,EAAOuuB,kBACT7B,EAAW8B,SAASC,UAAUzuB,GAC9BA,EAAOuuB,gBAAgBvuB,EAAO0uB,WAAU,GAAO1uB,EAAO0uB,WAAU,IAChEhC,EAAW8B,SAASG,WAAW3uB,KAGhC7C,EAAKyxB,WAAapW,YAAW,kBAAM,EAAK0V,kB,EAzFxBV,CAAyBp3B,EAAAA,GA6F9Co3B,EAAiBn3B,UAAUq2B,WAAaA,E,qdEvGnBmC,EAAAA,SAAAA,I,yHACnB,YAAmC,IAAxB33B,EAAwB,EAAxBA,IAAKu2B,EAAmB,EAAnBA,SAAUpmB,EAAS,EAATA,MACxB,OAAO5O,EAAAA,EAAAA,GAAP,oKACgBvB,EAAkBA,EAAMu2B,EACzBv2B,EAAamQ,EACbnQ,K,wBAKjB,SAAWJ,GACTvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,c,oBAGzB,WACE,IAAQ8C,EAAoBjD,KAApBiD,MAAON,EAAa3C,KAAb2C,IAAKgC,EAAQ3E,KAAR2E,IACd2M,EAAMrO,EAAMu0B,SAKlB,OAJAlmB,EAAI3O,IAAMA,EACVgC,EAAIT,KAAKlE,KAAK+D,SAASuN,IACvB3M,EAAIiI,KAAK,QAAT,UAAqBjK,EAArB,aACAgC,EAAImD,KAAJ,WAAanF,EAAb,SAAwBqF,OAAO/E,EAAMzB,IAAI,UAClCxB,S,EAtBUs6B,CAAmBt2B,EAAAA,MCyBxC,mBACE,IAAI6E,EAAI,GACJ0xB,EAAa,GACfC,EAAgB,GAChBC,EAAU,GACVC,EAAa,GAETC,EAAgB,aAEtB,MAAO,CACLzqB,UADK,WAEH,OAAOrH,GAGTnG,OAAQmG,EAERyxB,WAAYroB,EAOZ9N,KAAM,cAMNf,KApBK,SAoBAV,GAEH,IAAK,IAAIyB,KADT0E,EAAInG,GAAU,GACG+M,EACTtL,KAAQ0E,IAAIA,EAAE1E,GAAQsL,EAAStL,IAGvC,IAAIvB,EAAOiG,EAAEhG,aAUb,OATID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAEnCq6B,EAAct2B,KAAO,IAAI02B,EACzBJ,EAAczjB,IAAM,IAAI8jB,EAAAA,EACxBL,EAAc7wB,KAAO,IAAImxB,EACzBN,EAAcO,GAAK,IAAIC,EACvBN,EAAWvC,WAAa,IAAI8C,EAC5Bj7B,KAAKk7B,wBAAwBC,qBAEtBn7B,MAgBTo7B,aApDK,SAoDQz1B,EAAI01B,GAEf,OADAd,EAAW50B,GAAM01B,EACVr7B,MAaTs7B,aAnEK,SAmEQ31B,GACX,OAAO40B,EAAW50B,IAAO,MAO3B41B,cA3EK,WA4EH,OAAOhB,GAqBTiB,UAjGK,SAiGK71B,EAAI81B,GAEZ,OADAhB,EAAQ90B,GAAM81B,EACPz7B,MAUT07B,UA7GK,SA6GK/1B,GACR,OAAO80B,EAAQ90B,IAAO,MAOxBg2B,WArHK,WAsHH,OAAOlB,GAGTmB,aAzHK,WAyHmB,IAAXhzB,EAAW,uDAAJ,GACZtH,GAAQwjB,EAAAA,EAAAA,aAAYlc,EAAKtH,MAAoBq5B,EAAZ/xB,EAAKtH,KACtCm6B,EAASz7B,KAAK07B,UAAUp6B,IAAStB,KAAK07B,UAAUp6B,GAAMsC,QACtDi4B,EAAO3zB,SAAS0lB,cAAc,OAC9BkO,EAAU5zB,SAAS0lB,cAAc,YAMvC,OALAiO,EAAKp0B,YAAYq0B,GACjBL,EAAO93B,IAAIiF,GACX6yB,EAAOr4B,KAAK04B,GACZL,EAAOM,WAAWF,GAEXJ,GAcTO,aAjJK,SAiJQP,EAAQpD,GACnBoD,EAAOQ,WAAW5D,IAYpB6D,QA9JK,SA8JGj5B,EAAOk5B,GAAiB,IAAVtP,EAAU,uDAAJ,GAC1BA,EAAI/pB,GAAK+F,EAAE/F,GACX,IAAIu4B,EAAYr7B,KAAKs7B,aAAaa,GAClC,OAAOd,EAAYA,EAAUnD,MAAMj1B,EAAO4pB,GAAO,IAQnDqO,sBAzKK,WA0KH,IAAK,IAAIv1B,KAAM60B,EAAex6B,KAAKo7B,aAAaz1B,EAAI60B,EAAc70B,IAElE,OAAO3F,MAQTm7B,mBApLK,WAqLH,IAAK,IAAIx1B,KAAM+0B,EAAY16B,KAAKw7B,UAAU71B,EAAI+0B,EAAW/0B,IAEzD,OAAO3F,MAGTwS,QA1LK,WA2LH,CAAC3J,EAAG0xB,EAAYC,EAAeC,EAASC,GAAYjuB,SAClD,SAAArC,GAAC,MAAS,U,ikBC7NlB,IAAMgyB,EAAWC,OAAOC,UAEXC,EAAiB,SAAAC,GAC5B,IAAMv1B,EAAS,sBAAsBuG,KAAKgvB,GAC1C,OAAQv1B,EAAcA,EAAO,GAAZ,IAGEw1B,EAAAA,SAAAA,I,2HACnB,YACEvlB,EAAAA,EAAAA,SAAQlX,KAAM,aACdA,KAAK08B,QAAU,GACf18B,KAAK24B,IAAM,K,4BAQb,SAAe11B,GAAkB,WAAX2F,EAAW,uDAAJ,GACvByvB,EAAO,GACLv1B,EAAK9C,KAAK8C,GACV65B,EAAc75B,GAAMA,EAAGoN,UAAU,oBACjCyG,EAAQ1T,EAAM25B,gBACdC,EAAU55B,EAAMzB,IAAI,WAC1BxB,KAAK24B,IAAI/qB,KAAT,WAAkB3K,EAAMwqB,UAGxBoP,EAAQz0B,MAAK,SAAAnF,GAAK,OAAI,EAAKy5B,QAAQ9uB,KAAK3K,EAAM65B,mBAEzCH,GAAehmB,IAClB0hB,EAAO,IAAH,OAAOp1B,EAAMwqB,QAAb,YAAwB9W,EAAxB,MAGN,IAAMjC,EAAazR,EAAMyR,aAEzB,OADAA,EAAWtM,MAAK,SAAAnF,GAAK,OAAKo1B,GAAQ,EAAK0E,eAAe95B,EAAO2F,MACtDyvB,I,mBAGT,SAAMp1B,GAAkB,WAAX2F,EAAW,uDAAJ,GACVe,EAASf,EAATe,KACF7G,EAAK8F,EAAK9F,IAAM,GAChBk6B,EAAOp0B,EAAKo0B,MAASl6B,GAAMA,EAAGtB,IAAI,eACxCxB,KAAK8C,GAAKA,EACV9C,KAAK08B,QAAU,GACf18B,KAAK24B,IAAM,GACX34B,KAAKiD,MAAQA,EACb,IAAMg6B,EAAW,GACb5E,EAAOp1B,EAAQjD,KAAK+8B,eAAe95B,EAAO2F,GAAQ,GAChDs0B,GAAcpY,EAAAA,EAAAA,aAAYlc,EAAKs0B,cAAgBp6B,EAAKA,EAAGoN,UAAU,eAAiBtH,EAAKs0B,YAE7F,GAAIF,EAAM,CACR,IAAI1F,EAAQ1uB,EAAK0uB,OAAS0F,EAAKntB,SACzBstB,EAAU,GACVC,EAAO,GAETx0B,EAAKy0B,aAAep6B,IAAS81B,EAAAA,EAAAA,YAC/BzB,EAAQt3B,KAAKs9B,aAAar6B,EAAOq0B,IAGnCA,EAAM7qB,SAAQ,SAAAgrB,GACZ,IAAM8F,EAAS9F,EAAK+F,YAEpB,GAAID,EAAJ,CACE,IAAME,EAASN,EAAQI,GACnBE,EACFA,EAAO7vB,KAAK6pB,GAEZ0F,EAAQI,GAAU,CAAC9F,OALvB,CAUA,IAAMtuB,EAAM,EAAKu0B,cAAcjG,EAAM2F,EAAMx0B,GAEvCe,EACFszB,EAASrvB,KAAKzE,GAEdkvB,GAAQlvB,MAIZnJ,KAAK29B,gBAAgBR,GAAS1wB,SAAQ,SAAAC,GACpC,IAAIkxB,EAAW,GACTL,EAAS7wB,EAAK4pB,IACL5pB,EAAK7G,MAEb4G,SAAQ,SAAAgrB,GACb,IAAMoG,EAAU,EAAKH,cAAcjG,EAAM2F,EAAMx0B,GAE3C6uB,EAAKj2B,IAAI,gBACX62B,GAAQ,GAAJ,OAAOkF,EAAP,YAAiBM,EAAjB,KAEJD,GAAYC,EAGdl0B,GAAQszB,EAASrvB,KAAKiwB,MAGpBD,IACFvF,GAAQ,GAAJ,OAAOkF,EAAP,YAAiBK,EAAjB,SAIR96B,GAAMo6B,GAAe5F,EAAMp0B,QAAUo0B,EAAMp0B,OAAOk6B,GAGpD,OAAOzzB,EAAOszB,EAASjH,QAAO,SAAA8H,GAAC,OAAIA,KAAKzF,I,2BAQ1C,SAAcZ,EAAM2F,GAAiB,IAM/BW,EAN+B,OAAXn1B,EAAW,uDAAJ,GAC3B3G,EAAS,GACLgB,EAAUjD,KAAViD,MACF+6B,EAAmBvG,EAAKwG,kBAAkB,CAAEC,QAAS,IACrDC,EAAe1G,EAAKj2B,IAAI,gBACxB48B,EAAe3G,EAAKj2B,IAAI,gBAW9B,GAPAi2B,EAAKj2B,IAAI,aAAa4G,MAAK,SAAAi2B,GACzB,IAAMl6B,EAAOk6B,EAASvB,eAClB,EAAKJ,QAAQ/nB,QAAQxQ,IAAS,GAAK,EAAKw0B,IAAIhkB,QAAQxQ,IAAS,GAAKyE,EAAK01B,oBACzEP,EAAQ,MAIPC,GAAoBD,GAAUI,GAAgBC,IAAiBn7B,EAAO,CACzE,IAAMiX,EAAQud,EAAK8G,eAAe,CAAEt0B,KAAM,IAC1CiQ,IAAUtR,EAAKe,KAAQ1H,EAASw1B,EAASx1B,GAAUiY,QAEnDkjB,EAAKxvB,KAAK6pB,GAGZ,OAAOx1B,I,0BAST,SAAaukB,EAAW8Q,GAAO,WACvBzzB,EAAK2iB,EAAUjS,QACjBtS,EAAS,GAsBb,OApBAq1B,EAAM7qB,SAAQ,SAAAgrB,GACZ,IAEIA,EACGwG,oBACAx8B,MAAM,KACN0gB,MAAK,SAAAkc,GAAQ,OAAIx6B,EAAGmwB,QAAQ,EAAKwK,gBAAgBH,QAEpDp8B,EAAO2L,KAAK6pB,GAEd,MAAOpuB,QAGXmd,EAAU9R,aAAajI,SAAQ,SAAA+Z,GAC7BvkB,EAASA,EAAOw8B,OAAO,EAAKnB,aAAa9W,EAAW8Q,OAItDr1B,EAASA,EAAO+zB,QAAO,SAACyB,EAAMrtB,GAAP,OAAanI,EAAO0S,QAAQ8iB,KAAUrtB,O,4BAU/D,SAAeoyB,GACb,IAAMv1B,EAAS,sBAAsBuG,KAAKgvB,GAC1C,OAAKv1B,EAEEomB,WAAWpmB,EAAO,IAFLm1B,I,6BAUtB,WAA4B,WAAZpa,EAAY,uDAAJ,GAChB0c,EAAW,GAEjB,OADAt2B,EAAAA,EAAAA,MAAK4Z,GAAO,SAACnc,EAAOywB,GAAR,OAAgBoI,EAAS9wB,KAAK,CAAE0oB,IAAAA,EAAKzwB,MAAAA,OAC1C64B,EAAS5c,MAAK,SAAC6c,EAAGC,GACvB,IAAMC,EAAa,CAACF,EAAErI,IAAKsI,EAAEtI,KAAKwI,OAAM,SAAAC,GAAM,OAAqC,IAAjCA,EAAOpqB,QAAQ,gBAC3DoL,EAAO8e,EAAaF,EAAErI,IAAMsI,EAAEtI,IAC9B0I,EAAQH,EAAaD,EAAEtI,IAAMqI,EAAErI,IACrC,OAAO,EAAK2I,eAAelf,GAAQ,EAAKkf,eAAeD,Q,uBAI3D,SAAUL,EAAGC,GACX,IAAMM,EAAS,SAAAzH,GAAI,OAAIA,EAAKj2B,IAAI,cAC1Bq9B,EAAa,CAACK,EAAOP,GAAIO,EAAON,IAAIE,OAAM,SAAAK,GAAC,OAAgC,IAA5BA,EAAExqB,QAAQ,gBACzDoL,EAAoBmf,EAAbL,EAAoBF,EAAYC,GACvCI,EAAqBE,EAAbL,EAAoBD,EAAYD,GAC9C,OAAO3+B,KAAKi/B,eAAelf,GAAQ/f,KAAKi/B,eAAeD,K,6BASzD,SAAgBX,GACd,OAAOA,EACJ58B,MAAM,KACNiZ,KAAI,SAAAhO,GAAI,OAAIA,EAAKjL,MAAM,KAAK,MAC5BsgB,KAAK,S,EArNS0a,CAAqB56B,EAAAA,I,sGCX1C,SACE1B,YAAa,OAGbsP,SAAU,GAIV2vB,OAAQ,G,mlBCyCV,IAAMC,EAAc,CAClB,CAAC,UAAW,UAAW,WACvB,CAAC,SAAU,SAAU,UACrB,CAAC,aAAc,aAAc,cAC7B,CAAC,OAAQ,iBACT,CAAC,QAAS,kBACV,CAAC,cAAe,cAChB,CAAC,eAAgB,eACjB,CAAC,YAAa,iBAAkB,mBAChC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,aAAc,eAC9B,CAAC,mBAAoB,kBAAmB,eACxC,CAAC,oBAAqB,mBAAoB,iBAC1C,CAAC,mBAAoB,aAAc,eACnC,CAAC,iBAAkB,gBAAiB,aACpC,CAAC,iBAAkB,iBACnB,CAAC,iBAAkB,iBACnB,CAAC,kBAAmB,kBACpB,CAAC,iBAAkB,gBAAiB,iBACpC,CAAC,mBAAoB,mBACrB,CAAC,wBAAyB,uBAC1B,CAAC,iBAAkB,kBAGrB,mBACE,IAAIv8B,EACA+F,EAAI,GACFoxB,EAAW,GACXqF,EAAkB,GAClBC,EAAS,GAYf,MAAO,CACLC,gBAAAA,EAAAA,QAOAr7B,KAAM,WAONf,KAfK,WAea,WAAbV,EAAa,uDAAJ,GACZmG,EAAI,EAAH,KACI4G,GACA/M,GAELI,EAAK+F,EAAE/F,GACP,IAAMF,EAAOiG,EAAEhG,aAkHf,OAjHID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAGnCyhB,OAAOC,KAAKhZ,EAAE4G,UAAUhD,SAAQ,SAAAgzB,GAC9B,IAAMnuB,EAAMzI,EAAE4G,SAASgwB,GACnBnuB,EAAI3L,IAAI,EAAKkB,IAAIyK,EAAI3L,GAAI2L,MAG/BguB,EAAgB,cAAgB,CAC9B5uB,IAD8B,SAC1BmpB,GACF,OAAOA,EAAGxtB,WAAW,2BAIzBizB,EAAgB,aAAe,CAC7B5uB,IAD6B,SACzBmpB,GACFA,EAAGxtB,WAAW,aACdwtB,EAAGxtB,WAAW,aAAc,CAAEqzB,OAAQ,sBAI1CJ,EAAgB,YAAc,CAC5B5uB,IAD4B,SACxBmpB,EAAI8F,GAAmB,IAAX/2B,EAAW,uDAAJ,GAEf9F,EAAK+2B,EAAGpX,WACRnV,EAAQ1E,GAAQA,EAAK0E,MACnB5J,EAAWkF,EAAXlF,OACF4xB,EAAM5xB,GAAUm2B,EAAGztB,cACnBwzB,EAASl8B,EAAS,CAACA,IAAJ,OAAkBm2B,EAAGgG,kBACpCC,EAAaxyB,GAAuB,aAAdA,EAAMhM,KAC5By+B,EAAgB,CAAE1f,iBAAkB,GACpC2f,EAAQ,CAAC,WAAY,aAE3B,IAAK1K,IAAQA,EAAI9zB,IAAI,aACnB,OAAOsB,EAAGm9B,WAAW,gCAGvB,IAAMxG,EAAOnE,EAAI9zB,IAAI,UAAYsB,EAAGtB,IAAI,SAClC0+B,EAAU,kBAAMp9B,EAAG8V,YAAYmnB,IAC/BI,GAAUC,EAAAA,EAAAA,UAASJ,EAAOvG,GAChCmG,EAAOnzB,SAAQ,SAAA6oB,GAAG,OAAIA,EAAI5wB,QAAQ,cAGlCo7B,EAAa7b,WAAWic,EAAS,GAAKA,IAEtC,IAAMhoB,EAAU,SAAApO,GACdhH,EAAG4B,QAAH,UAAc27B,EAAAA,GAAd,UAAiCv2B,IAE7BqO,EAAS,SAAArO,GACbhH,EAAG4B,QAAQ27B,EAAAA,GAAWv2B,IAElBgV,EAAQ,SAAC5Z,EAAG0D,EAAMkB,GACtB81B,EAAOnzB,SAAQ,SAAA6oB,GAAG,OAAIA,EAAI3xB,IAAI,SAAU,eACxCk2B,EAAGv1B,OAAOs7B,GACVtK,EAAIgL,aACJx9B,EAAG4B,QAAH,UAAc27B,EAAAA,GAAd,QAA+Bv2B,GAG/Bma,YAAW,kBAAMnhB,EAAG+V,WAAWknB,OAG9BI,GAAWr2B,EAAK+V,YAAc/c,EAAGa,IAAI,WAAY,IAGpD,GAAIw8B,EAEQtG,EAAGxtB,WAAW,sBAAuB,CAC7CqT,WAAY,EACZ+Z,KAAAA,EACA/1B,OAAQ4xB,EACRpd,QAAAA,EACAC,OAAAA,EACA2G,MAAAA,EACAxR,MAAAA,QAEG,CACDwyB,GACFxyB,EAAMtD,aAAau2B,aAAajL,EAAInyB,KAAKU,GAAI,EAAG,GAIlD,IAAM28B,EAAU3G,EAAG4G,SAASj/B,IAAI,aAChCg/B,EAAQtoB,QAAUA,EAClBsoB,EAAQroB,OAASA,EACjBqoB,EAAQE,mBAAqB5hB,EAC7B0hB,EAAQG,qBAAqBf,GAG/BA,EAAOnzB,SAAQ,SAAA6oB,GAAG,OAAIA,EAAI3xB,IAAI,SAAU,yBAK5C27B,EAAgB,aAAe,SAAAp6B,GAAC,OAAIA,EAAE07B,YAAYC,QAClDvB,EAAgB,aAAe,SAAAp6B,GAAC,OAAIA,EAAE07B,YAAYE,QAClDzB,EAAY5yB,SAAQ,SAAAC,GAClB,IAAMq0B,EAASr0B,EAAK,GACd+D,EAAMuoB,EAAAA,KAAAA,CAAQ,YAAUtsB,EAAK,KAAMs0B,QACnCC,EAAU,QAAH,OAAWv0B,EAAK,IAC7B4yB,EAAgB2B,GAAWxwB,EACvBswB,IACFzB,EAAgByB,GAAUtwB,EAE1B,CAAC,MAAO,QAAQhE,SAAQ,SAAAtI,GACtBrB,EAAG6M,GAAH,UAASxL,EAAT,YAAiB48B,IAAU,wCAAIG,EAAJ,yBAAIA,EAAJ,uBAAa,EAAAp+B,GAAG4B,QAAH,mBAAcP,EAAd,YAAsB88B,IAAtB,OAAoCC,cAK9Er4B,EAAE/F,KAAI+F,EAAE5F,MAAQ4F,EAAE/F,GAAGtB,IAAI,WAE7BxB,KAAKmhC,sBAEEnhC,MAqBT6G,IArKU,SAAUlB,EAAI2L,GAMxB,OALIzM,EAAAA,EAAAA,YAAWyM,KAAMA,EAAM,CAAEZ,IAAKY,IAC7BA,EAAIX,OAAMW,EAAI8vB,OAAS,UACrB9vB,EAAI+vB,WACX/vB,EAAI3L,GAAKA,EACTs0B,EAASt0B,GAAM65B,EAAAA,QAAAA,OAAuBluB,GAC/BtR,MAyKPwB,IAtKK,SAsKDmE,GACF,IAAI9B,EAAKo2B,EAASt0B,GASlB,OAPId,EAAAA,EAAAA,YAAWhB,IACbA,EAAK,IAAIA,EAAGgF,GACZoxB,EAASt0B,GAAM9B,GACLA,GACVf,EAAGm9B,WAAH,WAAkBt6B,EAAlB,wBAGK9B,GAeT00B,OA/LK,SA+LE5yB,GAAc,IAAV8K,EAAU,uDAAJ,GACT6wB,EAAUthC,KAAKwB,IAAImE,GACzB,GAAI27B,EAAS,CACX,IAAMC,EAAS,EAAH,KACPD,EAAQt4B,YAAYlH,WACpB2O,GAELzQ,KAAK6G,IAAIlB,EAAI47B,GAEb,IAAMR,EAAS1B,EAAYrJ,QAAO,SAAAvlB,GAAG,MAAI,eAAQA,EAAI,MAAS9K,GAAM8K,EAAI,MAAI,GAC5EswB,GAAU/gC,KAAK6G,IAAIk6B,EAAO,GAAIQ,GAEhC,OAAOvhC,MAQTwhC,IAnNK,SAmND77B,GACF,QAASs0B,EAASt0B,IAOpBkK,OA3NK,WA4NH,OAAOoqB,GAWTvpB,IAvOK,SAuOD/K,GAAkB,IAAdnD,EAAc,uDAAJ,GAChB,OAAOxC,KAAKqM,WAAWrM,KAAKwB,IAAImE,GAAKnD,IAWvCmO,KAnPK,SAmPAhL,GAAkB,IAAdnD,EAAc,uDAAJ,GACjB,OAAOxC,KAAKyhC,YAAYzhC,KAAKwB,IAAImE,GAAKnD,IAkBxCoO,SAtQK,SAsQIjL,GACP,OAAO3F,KAAK0hC,YAAYC,eAAeh8B,IAUzC+7B,UAjRK,WAkRH,OAAOnC,GAQT4B,oBA1RK,WA2RH,IAAK,IAAIx7B,KAAM25B,EACbt/B,KAAK6G,IAAIlB,EAAI25B,EAAgB35B,IAG/B,OAAO3F,MAUTqM,WAzSK,SAySMi1B,GAAuB,IAC5Br/B,EADcO,EAAc,uDAAJ,GAG5B,GAAI8+B,GAAWA,EAAQ5wB,IAAK,CAC1B,IAAM/K,EAAK27B,EAAQ37B,GACb8F,EAAS3I,EAAGtB,IAAI,UAEjBxB,KAAK4Q,SAASjL,KAAOnD,EAAQo/B,OAAU/4B,EAAEu2B,SAC5Cn9B,EAASwJ,GAAU61B,EAAQO,QAAQp2B,EAAQjJ,GACvCmD,GAAM27B,EAAQ3wB,OAAS2wB,EAAQF,SAAW5+B,EAAQs/B,QACpDvC,EAAO55B,GAAM1D,IAKnB,OAAOA,GAUTw/B,YAlUK,SAkUOH,GAAuB,IAC7Br/B,EADeO,EAAc,uDAAJ,GAG7B,GAAI8+B,GAAWA,EAAQ5wB,IAAK,CAC1B,IAAM/K,EAAK27B,EAAQ37B,GACb8F,EAAS3I,EAAGtB,IAAI,WAElBxB,KAAK4Q,SAASjL,IAAOnD,EAAQo/B,QAAU/4B,EAAEu2B,UACvCz5B,UAAW45B,EAAO55B,GACtB1D,EAASq/B,EAAQS,SAASt2B,EAAQjJ,IAItC,OAAOP,GAST+/B,OAxVK,SAwVEV,GAGL,OAFKA,EAAQ3wB,OAAM2wB,EAAQF,OAAS,GAE7B,IADK5B,EAAAA,QAAAA,OAAuB8B,GAC5B,CAAQz4B,IAGjB2J,QA9VK,WA+VH,CAAC1P,EAAI+F,EAAGoxB,EAAUqF,EAAiBC,GAAQ9yB,SAAQ,SAAArC,GAAC,MAAS,U,0DC5bnE,SACEsG,IADa,SACTmpB,GACFA,EAAGoI,cAAcC,QACjBrI,EAAGsI,YAAYD,W,4FCCnB,SACExxB,IADa,SACTmpB,IACF3iB,EAAAA,EAAAA,SAAQlX,KAAM,UAAW,gBAAiB,kBAC1CA,KAAKyL,OAASouB,EACd75B,KAAKoiC,YAAcpiC,KAAK2X,OAAO2X,gBAAgBrsB,MAC/CjD,KAAKqiC,WAAW,IAElB1xB,KAPa,SAORkpB,GACH75B,KAAKqiC,aACLriC,KAAKsiC,kBAGPC,QAZa,SAYLj3B,GACiB,OAAnByf,EAAAA,EAAAA,YAAWzf,IACbtL,KAAKyL,OAAOg2B,YAAYzhC,KAAK2F,KAIjC68B,cAlBa,SAkBCl3B,GACZtL,KAAKyiC,cAAc,EAAGn3B,IAGxBg3B,eAtBa,SAsBEh3B,GACbtL,KAAKyiC,cAAc,EAAGn3B,IAGxBm3B,cA1Ba,SA0BCtkB,EAAQ7S,GACpB,IAAQ82B,EAAoBpiC,KAApBoiC,YAAat/B,EAAO9C,KAAP8C,GACf2c,EAAYzf,KAAZyf,QACAijB,EAAYvkB,EAAS,MAAQ,SACnCne,KAAK2iC,YAAYC,UAAUF,GAA3B,UAAyC1iC,KAAK4C,KAA9C,iBAEK6c,IACHA,EAAU,IAAIqI,EAAAA,EAAQ,CACpB+I,YADoB,WAElB,MAAO,CACLjU,EAAGwlB,EAAY5gC,IAAI,KACnBqb,EAAGulB,EAAY5gC,IAAI,OAGvBwmB,YAPoB,YAOE,IAARpL,EAAQ,EAARA,EAAGC,EAAK,EAALA,EACfulB,EAAYz+B,IAAI,CAAEiZ,EAAAA,EAAGC,EAAAA,KAEvB3E,QAVoB,SAUZ5M,EAAImU,GACV3c,EAAG4B,QAAQ,oBAAqB+a,IAElCtH,OAboB,SAab7M,EAAImU,GACT3c,EAAG4B,QAAQ,cAAe+a,IAE5BX,MAhBoB,SAgBdxT,EAAImU,GACR3c,EAAG4B,QAAQ,kBAAmB+a,MAGlCzf,KAAKyf,QAAUA,GAGjBtB,EAASsB,EAAQyI,MAAM5c,GAAMmU,EAAQ9O,QAGvC0xB,WA3Da,SA2DFlkB,GACT,IAAQvb,EAAS5C,KAAT4C,KACF8/B,EAAYvkB,EAAS,MAAQ,SAC7B0kB,EAAW1kB,EAAS,KAAO,MAC3B2kB,EAAY,CAAEnzB,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,KAClBkC,EAAS3X,KAAK2iC,YACd9F,EAAU,CAAC,GAAD,OAAIj6B,EAAJ,cACfub,GAAU0e,EAAQjvB,KAAR,UAAgBhL,EAAhB,iBACXi6B,EAAQpwB,SAAQ,SAAAmJ,GAAG,OAAI+B,EAAOirB,UAAUF,GAAW9sB,MACnDktB,EAAUD,GAAU36B,SAAU,QAASlI,KAAKuiC,SAC5CO,EAAUD,GAAUlrB,EAAQ,YAAa3X,KAAKwiC,eAC9CM,EAAUD,GAAU36B,SAAU,UAAWlI,KAAKsiC,mB,4iBCxE7B9C,EAAAA,SAAAA,I,2HAMnB,SAAWj9B,GACTvC,KAAK0C,OAASH,GAAK,GACnBvC,KAAK+iC,YAAc/iC,KAAK8C,GAAK9C,KAAK0C,OAAOI,IAAM,GAC/C9C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,YACvBH,KAAK4C,KAAO5C,KAAK0C,OAAOG,aACxB7C,KAAKgjC,WAAahjC,KAAK2C,IAAM,QAC7B3C,KAAKijC,WAAajjC,KAAK2C,IAAM,QAC7B3C,KAAKkjC,SAAWljC,KAAK2C,IAAM,cAC3B3C,KAAKmjC,WAAanjC,KAAK4C,KAAO,UAE9B5C,KAAK2X,OAAS3X,KAAK8C,GAAGtB,KAAOxB,KAAK8C,GAAGtB,IAAI,UACzCxB,KAAKoD,KAAKpD,KAAK0C,U,2BAQjB,SAAcwC,M,uBAMd,WACE,OAAOlF,KAAK2X,OAAOqU,e,2BAOrB,WACE,OAAOhsB,KAAK2X,OAAOhM,Y,4BAOrB,WACE,OAAO3L,KAAK2X,OAAOiM,e,oBAQrB,SAAO/f,GACL,IAAIqf,EAAOrf,EAAGsf,wBACd,MAAO,CACLnD,IAAKkD,EAAKlD,IAAMnc,EAAG6a,cAAczU,KAAKtD,UACtCoZ,KAAMmD,EAAKnD,KAAOlc,EAAG6a,cAAczU,KAAKmZ,c,kBAS5C,SAAK7gB,M,qBAQL,SAAQkJ,GAAsB,IAAdjJ,EAAc,uDAAJ,GAClBmD,EAAK3F,KAAK2F,GAGhB,GAFA8F,EAAO/G,QAAP,cAAsBiB,EAAtB,WAAmCnD,IAE/BA,IAAWA,EAAQs/B,MAAvB,CAKA,IAAMnC,EAASn9B,EAAQm9B,QAAUl0B,EAC3BxJ,EAASjC,KAAK0Q,IAAIjF,EAAQk0B,EAAQn9B,GAGxC,OAFAiJ,EAAO/G,QAAP,cAAsBiB,GAAM1D,EAAQO,GACpCiJ,EAAO/G,QAAQ,MAAOiB,EAAI1D,EAAQO,GAC3BP,EARLwJ,EAAO/G,QAAP,gBAAwBiB,GAAMnD,K,sBAiBlC,SAASiJ,GAAsB,IAAdjJ,EAAc,uDAAJ,GACnBmD,EAAK3F,KAAK2F,GACVg6B,EAASn9B,EAAQm9B,QAAUl0B,EACjCA,EAAO/G,QAAP,eAAuBiB,EAAvB,WAAoCnD,GACpC,IAAMP,EAASjC,KAAK2Q,KAAKlF,EAAQk0B,EAAQn9B,GAGzC,OAFAiJ,EAAO/G,QAAP,eAAuBiB,GAAM1D,EAAQO,GACrCiJ,EAAO/G,QAAQ,OAAQiB,EAAI1D,EAAQO,GAC5BP,I,yBAMT,WACEjC,KAAK8C,GAAGtB,IAAI,YAAYmP,KAAK3Q,KAAK2F,M,iBASpC,SAAI7C,EAAI68B,M,kBAQR,SAAK78B,EAAI68B,Q,EAlIUH,C,QAAwB39B,I,kFCA7C,SACE6O,IADa,SACTmpB,EAAIzX,GAAc,WAAXxZ,EAAW,uDAAJ,GACVkS,EAAW,GACbpG,EAAa9L,EAAK4d,WAAaqT,EAAGgG,iBAetC,OAdAnrB,GAAasG,EAAAA,EAAAA,SAAQtG,IAAR,OAA0BA,GAAc,CAACA,IAE3CshB,OAAOoN,SAAS32B,SAAQ,SAAA+Z,GACjC,IAAKA,EAAUhlB,IAAI,aAEjB,OADAsZ,EAASlN,KAAK4Y,GACP,EAAK1jB,GAAGm9B,WAAW,+BAAgC,CACxDzZ,UAAAA,IAGJA,EAAUtjB,YAGZ22B,EAAGv1B,OAAOwW,GAEHpG,K,iqBCjBX,IAAM2uB,EAAS,QAEf,SACE3yB,IADa,SACTjF,EAAQk0B,GAAmB,WAAX/2B,EAAW,uDAAJ,IACzBsO,EAAAA,EAAAA,SACElX,KACA,cACA,UACA,SACA,QACA,cACA,kBACA,cACA,mBAEF,IAAQ0D,EAAsCkF,EAAtClF,OAAQ4J,EAA8B1E,EAA9B0E,MAAOmsB,EAAuB7wB,EAAvB6wB,KAAvB,EAA8C7wB,EAAjB6W,QAAAA,OAA7B,MAAuC,GAAvC,EACM5b,EAAKH,EAAO6Q,QACZ7R,EAAS,EAAH,CACV+b,IAAK5a,EAAG6a,cACRxG,QAASlY,KAAKkY,QACd4G,MAAO9e,KAAK8e,MACZ3G,OAAQnY,KAAKmY,OACb0Y,YAAa7wB,KAAK6wB,YAClB7I,YAAahoB,KAAKgoB,YAClBsb,aAAc,kBAAM,EAAKA,cACzBC,aAAc,kBAAM,EAAKA,eACtB9jB,GAELzf,KAAKwjC,cACLxjC,KAAK4I,KAAOA,EACZ5I,KAAKyL,OAASA,EACdzL,KAAK8C,GAAK2I,EAAOgX,WACjBziB,KAAK0D,OAASA,EACd1D,KAAKyjC,OAAiB,aAARhK,EACdz5B,KAAK0jC,gBAAkB1jC,KAAK2jC,qBAC5B3jC,KAAKujC,aAAevjC,KAAK4jC,kBACzB5jC,KAAKsjC,aAAetjC,KAAK6jC,kBACzB,IAAIC,EAAM9jC,KAAKyf,QAaf,OAXKqkB,EAIHA,EAAIC,WAAWrhC,IAHfohC,EAAM,IAAIhc,EAAAA,EAAQplB,GAClB1C,KAAKyf,QAAUqkB,GAKjBx2B,GAASw2B,EAAI5b,MAAM5a,GACnBtN,KAAKgkC,WAAW,GAChBhkC,KAAK8C,GAAG4B,QAAR,UAAmB2+B,EAAnB,UAAmCrjC,KAAKikC,gBAEjCH,GAGTG,aAnDa,WAoDX,MAAO,CACLxK,KAAMz5B,KAAK4I,KAAK6wB,KAChB/1B,OAAQ1D,KAAK0D,OACb6/B,aAAcvjC,KAAKujC,aACnBD,aAActjC,KAAKsjC,eAIvB3yB,KA5Da,WA6DX3Q,KAAKgkC,cAGPR,YAhEa,YAiEVxjC,KAAKkkC,QAAU,IAAIz3B,SAAQ,SAAAC,GAC1B,IAAQy3B,EAAUz3B,EAAVy3B,MACRA,GAASA,EAAM7hB,WAAWC,YAAY4hB,MAExCnkC,KAAKkkC,OAAS,IAGhBP,mBAxEa,WAwEQ,WACbS,EAAapkC,KAAbokC,SAEN,IAAKA,EAAU,CACb,IAAQ34B,EAAqBzL,KAArByL,OAAQ3I,EAAa9C,KAAb8C,GAAI8F,EAAS5I,KAAT4I,KACdjG,EAAM8I,EAAOyE,UAAU,eACvBm0B,EAAUn8B,SAAS0lB,cAAc,OACjC0W,EAAUp8B,SAAS0lB,cAAc,OACjC2W,EAAe,gBAAH,OAAkB5hC,EAAlB,4BAAyCA,EAAzC,8CACFA,EADE,+BACwBA,EADxB,wCAGlByhC,EAAWl8B,SAAS0lB,cAAc,QACzB7qB,UAAT,UAAwBJ,EAAxB,UACA0hC,EAAQthC,UAAR,UAAuBJ,EAAvB,sBAAwCA,EAAxC,iBACA2hC,EAAQvhC,UAAR,UAAuBJ,EAAvB,sBAAwCA,EAAxC,iBACA0hC,EAAQvgC,UAAYygC,EACpBD,EAAQxgC,UAAYygC,EACpBH,EAAS38B,YAAY48B,GACrBD,EAAS38B,YAAY68B,GACrB74B,EAAO+Q,OAAOwG,mBAAmBvb,YAAY28B,GAC7CpkC,KAAKokC,SAAWA,EAChBpkC,KAAKwkC,aAAeH,EACpBrkC,KAAKykC,aAAeH,EACpBtkC,KAAK0kC,oBAAsBL,EAAQt9B,cAAR,WAA0BpE,EAA1B,wBAC3B3C,KAAK2kC,oBAAsBL,EAAQv9B,cAAR,WAA0BpE,EAA1B,wBAE3BG,EAAG6M,GACD,8BACAI,EAAAA,EAAAA,WAAS,WACP,EAAK60B,eACLh8B,EAAKi8B,OAAS,EAAKX,OAAOz3B,SAAQ,SAAAC,GAAI,OAAI,EAAKo4B,YAAYp4B,QAC1D,MAIP,OAAO03B,GAGTP,gBA9Ga,WA8GK,WACZ5hC,EAAS,GACP4B,EAAK7D,KAAK0D,OAAO6Q,QACvB,EAA4B1Q,EAApBye,WAAAA,OAAR,MAAqB,GAArB,EAGA,OAFAla,EAAAA,EAAAA,MAAKka,EAAWyiB,UAAU,SAAAr4B,GAAI,OAAKzK,EAASA,EAAOw8B,OAAO56B,IAAO6I,EAAO,EAAKs4B,iBAAiBt4B,GAAQ,OAE/FzK,EAAOw8B,OAAOz+B,KAAKglC,iBAAiB1iB,KAG7CshB,gBAvHa,WAwHX,OAAO5jC,KAAKglC,iBAAiBhlC,KAAK0D,OAAO6Q,UAG3CqwB,aA3Ha,SA2HAV,GAAQ,IACfe,EAAQC,EADO,QAElBhB,GAAUlkC,KAAKkkC,QAAQz3B,SAAQ,SAAAC,GAC9B,IAAQy4B,EAAWz4B,EAAXy4B,OACFhU,EAAM8T,IAAWE,EAASD,EAAU,EAAKvU,cAAcwU,GAC7DF,EAASE,EACTD,EAAU/T,GACV/oB,EAAAA,EAAAA,MAAK,EAAKg9B,kBAAkB14B,EAAMykB,IAAM,SAAC/nB,EAAKktB,GAAN,OAAe5pB,EAAK4pB,GAAOltB,KACnEsD,EAAK24B,WAAalU,MAItBiU,kBAvIa,SAuIK14B,EAAMwW,GACtB,IAAMjhB,EAAS,GACP+d,EAA6BkD,EAA7BlD,IAAK5d,EAAwB8gB,EAAxB9gB,OAAQ2d,EAAgBmD,EAAhBnD,KAAM1d,EAAU6gB,EAAV7gB,MAE3B,OAAQqK,EAAKpL,MACX,IAAK,IACHW,EAAO4a,EAAImD,EACX,MACF,IAAK,IACH/d,EAAO4a,EAAImD,EAAM5d,EACjB,MACF,IAAK,IACHH,EAAO2a,EAAImD,EACX,MACF,IAAK,IACH9d,EAAO2a,EAAImD,EAAO1d,EAClB,MACF,IAAK,IACHJ,EAAO2a,EAAImD,EAAO1d,EAAQ,EAC1B,MACF,IAAK,IACHJ,EAAO4a,EAAImD,EAAM5d,EAAS,EAI9B,OAAOH,GAGT6iC,YAnKa,WAmKU,IAAXp4B,EAAW,uDAAJ,GACX7I,EAAK6I,EAAKy3B,OAASj8B,SAAS0lB,cAAc,OAC1C0X,EAAK,KACLC,EAAY74B,EAAK6yB,OAAS,EAAI,EAChCiG,EAAQ3hC,EAAGkhC,SAAS,GAsBxB,OArBAlhC,EAAG8S,MAAH,gDAAoDjK,EAAK6yB,OAAS,QAAU,MAA5E,KAEK17B,EAAGkhC,SAAS99B,UACfu+B,EAAQt9B,SAAS0lB,cAAc,QACzBjX,MAAQ,iEACd9S,EAAG4D,YAAY+9B,IAGb94B,EAAKmQ,GACPhZ,EAAG8S,MAAMtU,MAAQ,OACjBwB,EAAG8S,MAAMvU,OAAT,UAAqBmjC,GAArB,OAAiCD,GACjCzhC,EAAG8S,MAAMqJ,IAAT,UAAkBtT,EAAKmQ,GAAvB,OAA2ByoB,GAC3BzhC,EAAG8S,MAAMoJ,KAAO,IAEhBlc,EAAG8S,MAAMtU,MAAT,UAAoBkjC,GAApB,OAAgCD,GAChCzhC,EAAG8S,MAAMvU,OAAS,OAClByB,EAAG8S,MAAMoJ,KAAT,UAAmBrT,EAAKkQ,GAAxB,OAA4B0oB,GAC5BzhC,EAAG8S,MAAMqJ,IAAT,WAAmBslB,KAGpB54B,EAAKy3B,OAASnkC,KAAK0jC,gBAAgBj8B,YAAY5D,GACzCA,GAGT8sB,cAhMa,SAgMC9sB,GACZ,OAAO7D,KAAKyL,OAAO+Q,OAAOmU,cAAc9sB,EAAI,CAAE0oB,SAAU,KAG1DyY,iBApMa,SAoMInhC,GAAI,WACX+E,EAAS5I,KAAT4I,KACFy8B,EAAarlC,KAAK2wB,cAAc9sB,GAC9Bmc,EAA6BqlB,EAA7BrlB,IAAK5d,EAAwBijC,EAAxBjjC,OAAQ2d,EAAgBslB,EAAhBtlB,KAAM1d,EAAUgjC,EAAVhjC,MACrB6hC,EAAS,CACb,CAAE5iC,KAAM,IAAKub,EAAGmD,GAChB,CAAE1e,KAAM,IAAKub,EAAGmD,EAAM5d,GACtB,CAAEd,KAAM,IAAKsb,EAAGmD,GAChB,CAAEze,KAAM,IAAKsb,EAAGmD,EAAO1d,GACvB,CAAEf,KAAM,IAAKsb,EAAGmD,EAAO1d,EAAQ,GAC/B,CAAEf,KAAM,IAAKub,EAAGmD,EAAM5d,EAAS,IAC/BsY,KAAI,SAAAhO,GAAI,cACLA,GADK,IAERy4B,OAAQthC,EACRwhC,WAAAA,EACAlB,MAAOv7B,EAAKi8B,OAAS,EAAKC,YAAYp4B,QAIxC,OAFAw3B,EAAOz3B,SAAQ,SAAAC,GAAI,OAAI,EAAKw3B,OAAOt2B,KAAKlB,MAEjCw3B,GAGTuB,aA1Na,SA0NA5Z,GAAuB,IAAZ6Z,EAAY,uDAAL,IACzBzjC,EAAS,EAMb,OALC4pB,GAAa,IAAIpqB,MAAM,KAAKgL,SAAQ,SAAAC,GACnC,IAAMi5B,EAAUj5B,EAAKjG,OACfokB,EAAK,YAAH,OAAe6a,EAAKE,cAApB,KACoB,IAAxBD,EAAQhxB,QAAQkW,KAAW5oB,EAASorB,WAAWsY,EAAQ55B,QAAQ8e,EAAI,SAElE5oB,GAGT4jC,aApOa,SAoOAha,EAAW6Z,EAAM7/B,GAC5B,IAAMglB,EAAK,YAAH,OAAe6a,EAAKE,cAApB,KACFx8B,EAAM,GAAH,OAAMyhB,GAAN,OAAWhlB,EAAX,KACL5D,GAAU4pB,GAAa,IACxBpqB,MAAM,KACNiZ,KAAI,SAAAhO,GAGH,OAD4B,IADZA,EAAKjG,OACTkO,QAAQkW,KAAWne,EAAOtD,GAC/BsD,KAERqV,KAAK,KAGR,OAFI9f,EAAO0S,QAAQkW,GAAM,IAAG5oB,GAAU,IAAJ,OAAQmH,IAEnCnH,GAGT4uB,YApPa,WAqPX,IAAQntB,EAAmB1D,KAAnB0D,OAAQ+/B,EAAWzjC,KAAXyjC,OAChB,EAAiC//B,EAAOoc,WAAhCC,EAAR,EAAQA,KAAMC,EAAd,EAAcA,IAAK6L,EAAnB,EAAmBA,UACfjP,EAAI,EACJC,EAAI,EAUR,OARI4mB,GACF7mB,EAAI5c,KAAKylC,aAAa5Z,GACtBhP,EAAI7c,KAAKylC,aAAa5Z,EAAW,OAEjCjP,EAAIyQ,WAAWtN,GAAQ,GACvBlD,EAAIwQ,WAAWrN,GAAO,IAGjB,CAAEpD,EAAAA,EAAGC,EAAAA,IAGdmL,YArQa,YAqQuC,IAAtCpL,EAAsC,EAAtCA,EAAGC,EAAmC,EAAnCA,EAAGipB,EAAgC,EAAhCA,IAAK7lB,EAA2B,EAA3BA,SAAU5d,EAAiB,EAAjBA,MAAOD,EAAU,EAAVA,OAChCsB,EAAuB1D,KAAvB0D,OAAQ+/B,EAAezjC,KAAfyjC,OAAQ3gC,EAAO9C,KAAP8C,GAElBijC,EAAMD,EAAU,GAAJ,EACZ/lB,EAAO,GAAH,OAAMnD,GAAN,OAFG,MAGPoD,EAAM,GAAH,OAAMnD,GAAN,OAHI,MAITmpB,EAAU,GAEd,GAAIvC,EAAQ,CACV,IAAI5X,EAAYnoB,EAAOoc,WAAP,WAAkC,GAClD+L,EAAY7rB,KAAK6lC,aAAaha,EAAW,IAAK9L,GAE9CimB,EAAU,CAAEna,UADZA,EAAY7rB,KAAK6lC,aAAaha,EAAW,IAAK7L,GACvB+lB,GAAAA,GACvBriC,EAAOwc,SAAS8lB,EAAS,CAAElQ,YAAagQ,QACnC,CACL,IAAMG,EAAO,CAAEhmB,SAAAA,EAAU5d,MAAAA,EAAOD,OAAAA,GAC1BuU,EAAQ,CAAEoJ,KAAAA,EAAMC,IAAAA,EAAK+lB,GAAAA,IAC3BlkB,EAAAA,EAAAA,MAAKokB,GAAMx5B,SAAQ,SAAA5F,GACjB,IAAM0vB,EAAO0P,EAAKp/B,GACd0vB,IAAM5f,EAAM9P,GAAO0vB,MAEzByP,EAAUrvB,EACVjT,EAAOwc,SAAS8lB,EAAS,CAAElQ,YAAagQ,IAI1ChjC,EAAGsJ,gBAAiByV,EAAAA,EAAAA,MAAKmkB,GAASv5B,SAAQ,SAAArC,GAAC,OAAItH,EAAG4B,QAAH,iCAAqC0F,QAGtF87B,aAlSa,WAmSX,IAAQxiC,EAAW1D,KAAX0D,OACR,MAAO,CACLA,OAAAA,EACA+Q,OAAQ/Q,EAAO+Q,SACfgb,MAAO/rB,EAAO+rB,UAIlBvX,QA3Sa,SA2SL5K,GACN,IAAQ5J,EAAiC1D,KAAjC0D,OAAQ+H,EAAyBzL,KAAzByL,OAAQg4B,EAAiBzjC,KAAjByjC,OAAQ76B,EAAS5I,KAAT4I,KACxB+W,EAAoB/W,EAApB+W,OAAQzH,EAAYtP,EAAZsP,QACRsE,EAAW/Q,EAAX+Q,OACF7F,EAAQjT,EAAOoc,WACfG,EAAW,WACXkmB,EAAS,CAAClmB,EAAU,YAE1B,GADA/H,GAAWA,EAAQlY,KAAKkmC,iBACpBzC,GAEA9sB,EAAMsJ,WAAaA,EAAU,CAC/B,IAEImmB,EAFJ,EAAmC5pB,EAAOoQ,OAAOlpB,EAAO6Q,SAAlDwL,EAAN,EAAMA,KAAMC,EAAZ,EAAYA,IAAK3d,EAAjB,EAAiBA,MAAOD,EAAxB,EAAwBA,OACpBqS,EAAS/Q,EAAO+Q,SAIpB,EAAG,CACD,IAAM4xB,EAAS5xB,EAAOqL,WACtBsmB,EAAYD,EAAOxxB,QAAQ0xB,EAAOpmB,WAAa,EAAIxL,EAAS,KAC5DA,EAASA,EAAOA,eACTA,IAAW2xB,GAGpB,GAAIzmB,EAAQ,CACV,MAAiBnD,EAAOmX,uBAAuBrmB,GAC/CyS,EADA,EAAQnD,EAERoD,EAFA,EAAWnD,OAGN,GAAIupB,EAAW,CACpB,IAAME,EAAU9pB,EAAOoQ,OAAOwZ,EAAU7xB,SACxCwL,GAAcumB,EAAQvmB,KACtBC,GAAYsmB,EAAQtmB,IAGtBhgB,KAAKgoB,YAAY,CACfpL,EAAGmD,EACHlD,EAAGmD,EACH3d,MAAO,GAAF,OAAKA,EAAL,MACLD,OAAQ,GAAF,OAAKA,EAAL,MACN6d,SAAAA,MAKN9H,OAtVa,WAsVG,WACNorB,EAAuBvjC,KAAvBujC,aAAc36B,EAAS5I,KAAT4I,KACduP,EAAWvP,EAAXuP,OACRnY,KAAK4kC,aAAarB,GAClB36B,EAAKi8B,OAAStB,EAAa92B,SAAQ,SAAAC,GAAI,OAAI,EAAKo4B,YAAYp4B,MAC5D9D,EAAK8W,YAAc1f,KAAKumC,gBAAgBhD,EAAavN,QAAO,SAAAtpB,GAAI,OAAIA,EAAK6yB,WACzEpnB,GAAUA,EAAOnY,KAAKkmC,iBAGxBpnB,MA/Va,SA+VPxT,EAAImU,GAAmB,IAAVoN,EAAU,uDAAJ,GACfphB,EAAqBzL,KAArByL,OAAQ7C,EAAa5I,KAAb4I,KAAMjD,EAAO3F,KAAP2F,GACdmZ,EAAUlW,EAAVkW,MACRA,GAASA,EAAMxT,EAAIuhB,EAAL,KAAYvf,MAAOhC,GAAOuhB,GAAQ7sB,KAAKkmC,iBACrDz6B,EAAOg2B,YAAY97B,GACnB3F,KAAKwmC,iBACLxmC,KAAK8C,GAAG4B,QAAR,UAAmB2+B,EAAnB,QAAiCrjC,KAAKikC,iBAGxCuC,eAxWa,WAwWI,WACf,CAAC,IAAK,KAAK/5B,SAAQ,SAAAC,GACjB,IAAMy3B,EAAQ,EAAK,cAAD,OAAez3B,IAC7By3B,IAAOA,EAAMxtB,MAAMC,QAAU,YAOrC2vB,gBAlXa,WAkXgB,WAAbrC,EAAa,uDAAJ,GACfZ,EAAiBtjC,KAAjBsjC,aACRtjC,KAAKwmC,iBACLtC,EAAOz3B,SAAQ,SAAAC,GACb,IAAQy4B,EAAcz4B,EAAdy4B,OAAQvoB,EAAMlQ,EAANkQ,EACV6pB,EAAa,EAAK9V,cAAcwU,GAChCO,GAAO5gB,EAAAA,EAAAA,aAAYlI,GAAK,IAAM,IAC9B8pB,EAAe,MAAThB,EACNiB,EAAYF,EAAWC,EAAM,OAAS,OACtCE,EAAeH,EAAWvjB,KAAKwjB,EAAM,OAAS,OAC9CG,EAAYH,EAAMC,EAAYF,EAAWpkC,MAAQskC,EAAYF,EAAWrkC,OACxE0kC,EAAeJ,EAAME,EAAeH,EAAWvjB,KAAK7gB,MAAQukC,EAAeH,EAAWvjB,KAAK9gB,OAC3F2kC,EAAc,EAAK,cAAD,OAAerB,EAAKE,gBACtCoB,EAAiB,EAAK,qBAAD,OAAsBtB,EAAKE,gBAChDqB,EAAiBF,EAAYpwB,MAG7BxN,EAAMm6B,EACTtN,QAAO,SAAAkR,GAAI,OAAIA,EAAK5lC,OAASoL,EAAKpL,QAClCoZ,KAAI,SAAAwsB,GACH,MAAqCA,EAAK7B,WAAlCtlB,EAAR,EAAQA,KAAM1d,EAAd,EAAcA,MAAO2d,EAArB,EAAqBA,IAAK5d,EAA1B,EAA0BA,OAEpB+kC,EAAYT,EAAM3mB,EAAO1d,EAAQ2d,EAAM5d,EAC7C,MAAO,CACLglC,IAAKD,EAAYR,EAAYA,EAAYQ,GAHzBT,EAAM3mB,EAAOC,GAGoC6mB,EACjE1C,MAAO+C,MAGVlR,QAAO,SAAAtpB,GAAI,OAAIA,EAAK06B,IAAM,KAC1BtlB,MAAK,SAAC6c,EAAGC,GAAJ,OAAUD,EAAEyI,IAAMxI,EAAEwI,OACzB1sB,KAAI,SAAAhO,GAAI,OAAIA,EAAKy3B,SAAO,GAE3B,GAAIh7B,EAAK,CACP,MAA2CA,EAAIk8B,WAAvCtlB,EAAR,EAAQA,KAAM1d,EAAd,EAAcA,MAAO2d,EAArB,EAAqBA,IAAK5d,EAA1B,EAA0BA,OAAQ8gB,EAAlC,EAAkCA,KAC5BmkB,EAAUX,EAAM3mB,EAAO0mB,EAAW1mB,KAAOC,EAAMymB,EAAWzmB,IAC1DsnB,EAAYZ,EAAM3mB,EAAOC,EACzBunB,EAAeb,EAAMxjB,EAAKnD,KAAOmD,EAAKlD,IACtCmnB,EAAYT,EAAM3mB,EAAO1d,EAAQ2d,EAAM5d,EACvColC,EAAed,EAAMxjB,EAAKnD,KAAOmD,EAAK7gB,MAAQ6gB,EAAKlD,IAAMkD,EAAK9gB,OAC9DqlC,EAAWf,EAAMh6B,EAAKmQ,EAAInQ,EAAKkQ,EAC/B8qB,EAAYL,EAAUF,EAAYN,EAClCc,EAAO,GAAH,OAAMF,EAAN,MACJG,EAAOP,EAAUV,EAAYQ,EAAYG,EAAYT,EACrDgB,EAAUR,EAAUT,EAAeY,EAAeD,EAAeT,EACvEG,EAAerwB,QAAU,GACzBqwB,EAAeP,EAAM,MAAQ,QAAUiB,EACvCV,EAAeP,EAAM,OAAS,OAA9B,UAA0CgB,EAA1C,MACAT,EAAeP,EAAM,QAAU,UAA/B,UAA8CkB,EAA9C,MACAZ,EAAeljC,UAAf,UAA8BsnB,KAAK0c,MAAMD,GAAzC,MACA,EAAK/kC,GAAG4B,QAAR,UAAmB2+B,EAAnB,kBACK,EAAKY,gBADV,IAEEE,MAAOz3B,EACP42B,aAAAA,EACAyE,QAAS5+B,EACTs+B,SAAAA,EACAC,UAAAA,EACAE,KAAAA,EACAC,QAAAA,EACAd,YAAAA,EACAC,eAAAA,UAMRhD,WAnba,SAmbF7lB,GACT,IAAQvb,EAAiB5C,KAAjB4C,KAAM6I,EAAWzL,KAAXyL,OACRi3B,EAAYvkB,EAAS,MAAQ,SAC7B0e,EAAU,CAAC,GAAD,OAAIj6B,EAAJ,iBACR4Z,EAAW/Q,EAAX+Q,OACFvS,EAAOuS,EAAO7Q,UACpBkxB,EAAQpwB,SAAQ,SAAAmJ,GAAG,OAAI3L,EAAK24B,UAAUF,GAAW9sB,MACjD4G,EAAO2B,EAAS,kBAAoB,uB,0DC/bxC,SACEzN,IADa,SACTmpB,GACF,GAAKA,EAAGrd,OAAOoX,WAAf,CACA,IAAM9Y,EAAW,GAEjB+e,EAAGgG,iBAAiBpzB,SAAQ,SAAA+Z,GAC1B,IAAM/hB,EAAO+hB,EAAU9R,aACjBszB,EAAOvjC,GAAQA,EAAKuxB,QAAO,SAAAntB,GAAC,OAAIA,EAAErH,IAAI,iBAAe,GAC3DwmC,GAAQltB,EAASlN,KAAKo6B,MAGxBltB,EAAS7T,QAAU4yB,EAAGv1B,OAAOwW,O,0DCXjC,SACEpK,IADa,SACTmpB,EAAIoO,GAAgB,IAAXr/B,EAAW,uDAAJ,GAClB,GAAKixB,EAAGrd,OAAOoX,YAAehrB,EAAKg5B,MAAnC,CACA,IAAM9mB,EAAW,GAEjB+e,EAAGgG,iBAAiBpzB,SAAQ,SAAA+Z,GAI1B,IAHA,IAAIwhB,EAAOxhB,EAAU/R,SAGduzB,IAASA,EAAKxmC,IAAI,eACvBwmC,EAAOA,EAAKvzB,SAGduzB,GAAQltB,EAASlN,KAAKo6B,MAGxBltB,EAAS7T,QAAU4yB,EAAGv1B,OAAOwW,O,0DChBjC,SACEpK,IADa,SACTmpB,GACF,GAAKA,EAAGrd,OAAOoX,WAAf,CACA,IAAM9Y,EAAW,GAEjB+e,EAAGgG,iBAAiBpzB,SAAQ,SAAAkO,GAC1B,IAAMlG,EAASkG,EAAIlG,SACnB,GAAKA,EAAL,CAEA,IAGIuzB,EAHEE,EAAMzzB,EAAOC,aAAazN,OAC5BkhC,EAAO,EACPrhC,EAAK,EAIT,GACEqhC,IAEAH,GADAlhC,EAAK6T,EAAI8U,QAAU0Y,IACND,EAAMzzB,EAAO2zB,WAAWthC,GAAM,WACpCkhC,IAASA,EAAKxmC,IAAI,eAE3BsZ,EAASlN,KAAKo6B,GAAQrtB,OAGxBG,EAAS7T,QAAU4yB,EAAGv1B,OAAOwW,O,0DCxBjC,SACEpK,IADa,SACTmpB,GACF,GAAKA,EAAGrd,OAAOoX,WAAf,CACA,IAAM9Y,EAAW,GAEjB+e,EAAGgG,iBAAiBpzB,SAAQ,SAAAkO,GAC1B,IAAMlG,EAASkG,EAAIlG,SACnB,GAAKA,EAAL,CAEA,IAEIuzB,EAFAG,EAAO,EACPrhC,EAAK,EAIT,GACEqhC,IAEAH,GADAlhC,EAAK6T,EAAI8U,QAAU0Y,IACN,EAAI1zB,EAAO2zB,WAAWthC,GAAM,WAClCkhC,IAASA,EAAKxmC,IAAI,eAE3BsZ,EAASlN,KAAKo6B,GAAQrtB,OAGxBG,EAAS7T,QAAU4yB,EAAGv1B,OAAOwW,O,wECrBjC,SACEpK,IADa,SACTmpB,EAAIzX,GAAc,IAAXxZ,EAAW,uDAAJ,GACRlF,EAAWkF,EAAXlF,OACJ6d,EAAW,GAEf,IAAK7d,EAAOlC,IAAI,UAAW,OAAO+f,EAGlC,IAAMjgB,EAAOoC,EAAOlC,IAAI,QAClB6mC,EAAWxO,EAAGyO,MAAMC,iBACpBL,GAAMM,EAAAA,EAAAA,SAAQH,EAAS3tB,KAAI,SAAAmJ,GAAG,OAAIA,EAAI4kB,SAASnnC,OAAQ2F,OAI7D,IAAKihC,EAAK,CACR,IAAM5Q,EAAQuC,EAAGsI,YAAYtyB,SAC7B0R,EAAW+V,EAAMtB,QAAO,SAAAyB,GAAI,OAAIA,EAAKj2B,IAAI,WAAT,cAA6BF,MAC7Dg2B,EAAMp0B,OAAOqe,GAGf,OAAOA,K,uECtBX,SACE7Q,IADa,SACTmpB,GACF,IAAM/2B,EAAK+2B,EAAGpX,WACRnS,GAAS,OAAIupB,EAAGgG,kBACtBvvB,EAAOrJ,QAAUnE,EAAGa,IAAI,YAAa2M,M,qGCAnCo4B,EAAIC,IAAAA,EAEV,SAAepQ,EAAAA,EAAAA,QAAO,GAAIqQ,EAAAA,QAAiB,CACzCxlC,KADyC,SACpCb,IACH2U,EAAAA,EAAAA,SAAQlX,KAAM,cAAe,aAAc,YAC3CA,KAAKgjC,WAAahjC,KAAK2C,IAAM,eAC7B3C,KAAKijC,WAAajjC,KAAK2C,IAAM,aAG/Bwb,OAPyC,WASvCne,KAAK2E,IACFmD,KAAK,KACL+gC,UAAU7oC,KAAK8oC,aACfC,SAAS/oC,KAAKgpC,YACd3jC,MAAMrF,KAAKipC,WAQhBH,YArByC,SAqB7B5jC,GACVA,EAAEiH,kBACF,IAAI+8B,EAAQR,EAAExjC,EAAExB,QAGZwlC,EAAMp/B,KAAK,SAAStI,IAAI,eAC1B0nC,EAAMtkC,SAAS5E,KAAKgjC,YACpBhjC,KAAKmpC,YAAYD,EAAM1nC,IAAI,MAS/BwnC,WArCyC,SAqC9B9jC,GACTA,EAAEiH,kBACUu8B,EAAExjC,EAAExB,QACVuE,YAAYjI,KAAKgjC,YAGnBhjC,KAAKopC,OAAOppC,KAAKopC,MAAMryB,IAAI,CAAEgJ,MAAO,IAAMC,KAAM,OAQtDipB,SAnDyC,SAmDhC/jC,GACPA,EAAEiH,kBACF,IAAI+8B,EAAQR,EAAExjC,EAAExB,QAGXwlC,EAAMp/B,KAAK,SAAStI,IAAI,eAE7B0nC,EAAMp/B,KAAK,SAAS0I,UACpBxS,KAAKqpC,cACLrpC,KAAKspC,UAQPC,iBApEyC,SAoExBtmC,GACfjD,KAAKopC,MAAMllC,KAAK,UAAYjB,EAAMumC,e,wEC1EhCd,E,MAAIC,GAAAA,EAEV,SACEj4B,IADa,SACTjF,EAAQk0B,GAAmB,WAC7BA,GAAUA,EAAOh8B,KAAOg8B,EAAOh8B,IAAI,SAAU,GAC7C,IAAMjB,EAAS+I,EAAOyE,YAChBu5B,EAAQh+B,EAAOa,MACf3J,EAAMD,EAAOvC,YAGnB,GAFAH,KAAK0pC,GAAKj+B,EAAOk+B,aAAe,MAE3B3pC,KAAK4pC,SAAU,CAClB,IAAMC,EAAU7pC,KAAK8pC,YAAY,YAAa,YAAa,QACrDC,EAAU/pC,KAAK8pC,YAAY,MAAO,YAAa,OACrD9pC,KAAKgqC,WAAaH,EAAQhmC,GAC1B7D,KAAKiqC,UAAYF,EAAQlmC,GACzB,IAAM+lC,EAAWlB,EAAE,gBAAD,OAAgB/lC,EAAhB,uBAClBinC,EAAS5hC,OAAO6hC,EAAQllC,KAAKqD,OAAO+hC,EAAQplC,KAC5C3E,KAAK4pC,SAAWA,EAGlBH,EACGr6B,KAAK,CACJ3G,MAAO/F,EAAOwnC,aACdn3B,QAAS/S,KAAK4pC,WAEfnnB,WACA8H,KAAK,eAAe,kBAAM9e,EAAOg2B,YAAY,EAAK97B,OACrD3F,KAAKgqC,WAAW/N,WAAWxwB,EAAO0+B,WAClCnqC,KAAKiqC,UAAUhO,WAAWxwB,EAAO2+B,WAGnCz5B,KA7Ba,SA6BRlF,GACH,IAAMg+B,EAAQh+B,EAAOa,MACrBm9B,GAASA,EAAMxkC,SAGjB6kC,YAlCa,SAkCD5Q,EAAUC,EAAOrmB,GAC3B,IAAMxM,EAAQ4B,SAAS0lB,cAAc,aACpC5tB,KAAKqqC,aAAerqC,KAAKqqC,WAAarqC,KAAK0pC,GAAGhO,UAAU,eAEzD,IAAM73B,EAAK7D,KAAKqqC,WAAWzmC,QAAQD,IAAI,CACrCmP,MAAAA,EACAomB,SAAAA,EACAC,MAAAA,EACA7yB,MAAAA,IAGI3B,EAAM,IAAI3E,KAAK0pC,GAAGpP,WAAW,CACjCr3B,MAAOY,EACPnB,OAAQ1C,KAAK0pC,GAAGx5B,cACf1I,SAAS7C,IAIZ,OAFAd,EAAGT,KAAKkD,GAED,CAAEzC,GAAAA,EAAIc,IAAAA,M,wECrDjB,SAKE2lC,UALa,WAMX,IAAIC,EAAIriC,SACR,OACEqiC,EAAEC,mBACFD,EAAEE,yBACFF,EAAEG,qBAEK,EACG,GAQdvsB,OArBa,SAqBNta,GACL,IAAIlB,EAAM,GAUV,OATIkB,EAAG8mC,kBAAmB9mC,EAAG8mC,oBACpB9mC,EAAG+mC,yBACVjoC,EAAM,SACNkB,EAAG+mC,2BACM/mC,EAAGgnC,sBACZloC,EAAM,MACNkB,EAAGgnC,wBACMhnC,EAAGinC,oBAAqBjnC,EAAGinC,sBACjCxhC,QAAQyhC,KAAK,4BACXpoC,GAMTyQ,QAtCa,WAuCX,IAAMm3B,EAAIriC,SACNlI,KAAKsqC,cACHC,EAAES,eAAgBT,EAAES,iBACfT,EAAEU,qBAAsBV,EAAEU,uBAC1BV,EAAEW,oBAAqBX,EAAEW,sBACzBX,EAAEY,kBAAkBZ,EAAEY,qBAUnCC,UAtDa,SAsDHzoC,EAAKuC,GACLgD,SAAR,IACIoD,GAAM3I,GAAO,IAAM,mBAClB3C,KAAKsqC,cACRtqC,KAAK2Q,KAAK,KAAM3Q,KAAK2/B,QACrBz3B,SAASmjC,oBAAoB//B,EAAItL,KAAKorC,aAI1C16B,IA/Da,SA+DTjF,EAAQk0B,GAAmB,IAAX/2B,EAAW,uDAAJ,GACzB5I,KAAK2/B,OAASA,EACd,IAAQj8B,EAAWkF,EAAXlF,OACF4nC,GAAW5vB,EAAAA,EAAAA,WAAUhY,GACvBA,EACAwE,SAASnB,cAAcrD,GACrBf,EAAM3C,KAAKme,OAAOmtB,GAAY7/B,EAAO0F,gBAC3CnR,KAAKorC,UAAYprC,KAAKorC,UAAU/nC,KAAKrD,KAAM2C,GAC3CuF,SAASmF,iBAAiB1K,EAAM,mBAAoB3C,KAAKorC,WACzD3/B,EAAO/G,QAAQ,wBAGjBiM,KA3Ea,SA2ERlF,EAAQk0B,GACPA,GAAUA,EAAOh8B,KAAKg8B,EAAOh8B,IAAI,UAAU,GAC/C3D,KAAKoT,UACD3H,GAAQA,EAAO/G,QAAQ,0B,yHC1EzBgkC,EAAIC,IAAAA,EAEV,SAAepQ,EAAAA,EAAAA,QAAO,GAAIgT,EAAAA,QAAgB3C,EAAAA,QAAiB,CACzDxlC,KADyD,SACpDb,GACHqmC,EAAAA,QAAAA,KAAAA,MAA2B5oC,KAAM+jB,YACjC7M,EAAAA,EAAAA,SAAQlX,KAAM,aAAc,WAAY,aACxCA,KAAK6sB,IAAMtqB,EACXvC,KAAKgjC,WAAahjC,KAAK4C,KAAO,sBAC9B5C,KAAKijC,WAAajjC,KAAK4C,KAAO,gBAC9B5C,KAAKwrC,WAAaxrC,KAAK4C,KAAO,aAGhCub,OAVyD,WAUzC,2BAAN+iB,EAAM,yBAANA,EAAM,gBACd0H,EAAAA,QAAAA,OAAAA,MAA6B5oC,KAAMkhC,GACnClhC,KAAKiwB,aAAarrB,SAAS5E,KAAKijC,YAChCjjC,KAAKyrC,mBAAmB7mC,SAAS5E,KAAKgjC,YACtC,IAAI0I,EAAK1rC,KAAK2rC,SACdD,EAAG30B,IAAI,SAAU,QACjB20B,EAAG/7B,GAAG,YAAa3P,KAAK4rC,YAGxBF,EAAG9mC,SAAS5E,KAAKwrC,aAOnBK,gBA1ByD,aAiCzDD,WAjCyD,SAiC9C1mC,GACT,IACI2O,EADK60B,EAAExjC,EAAExB,QAAQoG,KAAK,SACZtI,IAAI,aACbqS,IAGL7T,KAAK8rC,QAAU,KACf9rC,KAAK+rC,oBAAoB7mC,EAAExB,OAAQ1D,KAAK0L,QAAQ6M,iBAChDvY,KAAKkU,OAAOe,UAAYpB,EACxB7T,KAAKkU,OAAOkE,UAAYpY,KAAKoY,UAAU/U,KAAKrD,MAC5CA,KAAKgsC,sBACLhsC,KAAK2rC,SAASl2B,IAAI,YAAazV,KAAK4rC,aACpCj8B,EAAAA,EAAAA,IAAG3P,KAAKisC,mBAAoB,UAAWjsC,KAAKksC,YAQ9CC,oBArDyD,SAqDrClpC,GAClB,IAAI4Q,EAAO5Q,EAAMzB,IAAI,aACrB,GAAKqS,EAAL,CAEA7T,KAAK8rC,QAAU,KACf,IAAIjoC,EAAKZ,EAAME,KAAKU,GACpB7D,KAAK+rC,oBAAoBloC,EAAI7D,KAAK0L,QAAQ6M,iBAC1CvY,KAAKkU,OAAOe,UAAYpB,EACxB7T,KAAKkU,OAAOkE,UAAYpY,KAAK0gC,mBAAmBr9B,KAAKrD,MAUrDA,KAAKgsC,uBACLr8B,EAAAA,EAAAA,IAAG3P,KAAKisC,mBAAoB,UAAWjsC,KAAKksC,YAQ9CvL,qBAhFyD,SAgFpCrwB,GAGnBtQ,KAAK8rC,QAAU,KACf,IAAMM,EAAY97B,EAAOA,EAAOrJ,OAAS,GACnCmU,GAASpb,KAAK8C,GAAGtB,IAAI,iBAAmB,IAAIyB,MAC5CY,EAAKuoC,EAAU73B,MAAM6G,GACrBqD,EAAM5a,EAAG6a,cACf1e,KAAK+rC,oBAAoBloC,EAAI4a,EAAK,CAAEvG,QAASlY,KAAKkY,UAClDlY,KAAKkU,OAAOe,UAAYm3B,EAAU5qC,IAAI,aACtCxB,KAAKkU,OAAOm4B,OAAS/7B,EACrBtQ,KAAKkU,OAAOo4B,UAAYtsC,KAAKmY,OAC7BnY,KAAKkU,OAAOkE,UAAYpY,KAAK0gC,mBAAmBr9B,KAAKrD,MACrDA,KAAKgsC,uBACLr8B,EAAAA,EAAAA,IAAG3P,KAAKisC,mBAAoB,UAAWjsC,KAAKksC,WAG9CxL,mBAjGyD,YAkGvDjrB,EAAAA,EAAAA,KAAIzV,KAAKisC,mBAAoB,UAAWjsC,KAAKksC,WAO/C9zB,UAzGyD,WA0GvDpY,KAAKme,UACL1I,EAAAA,EAAAA,KAAIzV,KAAKisC,mBAAoB,UAAWjsC,KAAKksC,WAS/ClnC,SApHyD,SAoHhDE,EAAGrB,KAQZqoC,SA5HyD,SA4HhDhnC,EAAG08B,IAEC,KADD18B,EAAEqnC,OAASrnC,EAAEsnC,UACN5K,KACf5hC,KAAKkU,OAAOwB,OAAQ,EACpB1V,KAAKkU,OAAOyB,YAUhBsa,WA1IyD,WA4IvD,OADKjwB,KAAKysC,SAAQzsC,KAAKysC,OAAS/D,EAAE1oC,KAAK0sC,aAChC1sC,KAAKysC,QAQdhB,iBApJyD,WAsJvD,OADKzrC,KAAK2sC,MAAK3sC,KAAK2sC,IAAMjE,EAAE1oC,KAAK2X,OAAOqY,mBACjChwB,KAAK2sC,KAGdh8B,KAzJyD,WAyJ3C,2BAANuwB,EAAM,yBAANA,EAAM,gBACZ0H,EAAAA,QAAAA,KAAAA,MAA2B5oC,KAAMkhC,GACjClhC,KAAKiwB,aAAahoB,YAAYjI,KAAKijC,YACnCjjC,KAAKyrC,mBAAmBxjC,YAAYjI,KAAKgjC,YACzC,IAAI0I,EAAK1rC,KAAK2rC,SACdD,EAAG30B,IAAI,SAAU,IAAI61B,SAAS3kC,YAAYjI,KAAKwrC,gB,iFCnKnD,SACEp8B,KADa,SACR2D,GAAS,WACJtH,EAA8BzL,KAA9ByL,OAAQhD,EAAsBzI,KAAtByI,MAAO/F,EAAe1C,KAAf0C,OAAQY,EAAOtD,KAAPsD,GACvBrC,EAAWyB,EAAXzB,OACR,IAAI4D,EAAAA,EAAAA,YAAW5D,EAAOmO,MACpB,OAAOnO,EAAOmO,KAAK9L,EAAG6M,gBAEN1E,EAAVa,MACF8C,KAAK,CAAE3G,MAAAA,EAAOsK,QAAAA,IAAW85B,WAAU,kBAAMphC,EAAOg2B,YAAY,EAAK97B,QAGzEV,MAXa,WAYX,IAAQhE,EAAWjB,KAAK0C,OAAhBzB,OACR,IAAI4D,EAAAA,EAAAA,YAAW5D,EAAOgE,OACpB,OAAOhE,EAAOgE,MAAMjF,KAAKsD,GAAG6M,gBAE9B,IAAQ7D,EAAUtM,KAAKyL,OAAfa,MACRA,GAASA,EAAMrH,SAGjByL,IApBa,SAoBTjF,EAAQk0B,GAAmB,IAAX/2B,EAAW,uDAAJ,GACnBtF,EAAKmI,EAAOc,aACZ7J,EAASY,EAAG4M,YAClB,EAAuCtH,EAA/BlD,MAAAA,OAAR,MAAgB,GAAhB,EAAoBonC,EAAmBlkC,EAAnBkkC,OAAQxoC,EAAWsE,EAAXtE,OAgB5B,GAfAtE,KAAKyI,MAAQG,EAAKmkC,YAActhC,EAAOzF,EAAE,4BAA8B,GACvEhG,KAAKyL,OAASA,EACdzL,KAAK0C,OAASA,EACd1C,KAAKsD,GAAKA,EAEVA,EAAGkJ,UAAU5D,EAAKlF,QAClBJ,EAAGkB,QAAQoE,EAAKpE,SAChBlB,EAAGyB,WAAW6D,EAAK7D,YACnBzB,EAAG0B,SAAS4D,EAAK5D,UACjB1B,EAAGgP,YAAY,CACbhO,OAAAA,EACAoB,MAAAA,EACAlD,QAASoG,IAGPlG,EAAOzB,OACTjB,KAAKsH,SAAWtH,KAAKsH,WAAYub,EAAAA,EAAAA,IAAS,OAC1C7iB,KAAKsH,SAASvE,UAAd,UAA6BL,EAAOvC,YAApC,cACAmD,EAAGgP,YAAY,CAAErC,UAAWjQ,KAAKsH,WACjChE,EAAG0M,kBACE,CACL,IAAKhQ,KAAKsH,UAAY5B,EAAO,CAC3B,IAAIzF,EAASqD,EAAGuM,SAASmmB,QAAO,SAAA5rB,GAAC,OAAIA,KAEjC1E,GAASA,EAAMuB,SACjBhH,EAASA,EAAO+1B,QAAO,SAAA2I,GAAC,OAAsC,IAAlCj5B,EAAMiP,QAAQgqB,EAAEn9B,IAAI,aAGlD8B,EAAGkE,OAAOvH,GACVD,KAAKsH,SAAWhE,EAAG6N,eAGrB,GAAI27B,EAAQ,CACV,IAAME,EAAWhtC,KAAKsH,SAASP,cAAd,gBACNrE,EAAOvC,YADD,eAGjB6sC,GAAYA,EAASh3B,aAAa,SAAU82B,IAKhD,OADA9sC,KAAKoP,KAAKpP,KAAKsH,UACRtH,MAGT2Q,KApEa,SAoERlF,GACHzL,KAAKyL,OAASA,EACdzL,KAAKiF,MAAMjF,KAAKsH,a,gFCtEpB,SACE8H,KADa,WAEX,IAAQa,EAAkCjQ,KAAlCiQ,UAAWxE,EAAuBzL,KAAvByL,OAAQwO,EAAeja,KAAfia,GAAIvX,EAAW1C,KAAX0C,OACvBzB,EAAqByB,EAArBzB,OAAQyR,EAAahQ,EAAbgQ,SAEhB,IAAI7N,EAAAA,EAAAA,YAAW5D,EAAOmO,MACpB,OAAOnO,EAAOmO,KAAK6K,EAAG9J,gBAGxB,GAAInQ,KAAKitC,cAAgBv6B,EAAU,CACjC,IAAM/M,EAAK,kBACLunC,EAAKzhC,EAAO0hC,QACHD,EAAGE,SAASznC,IAAOunC,EAAGG,SAAS,CAAE1nC,GAAAA,KACzChC,IAAI,gBAAiBsM,GAAWvL,QAAQ,wBAC1CzD,GAAQgP,EAAUxI,YAAYwS,EAAGzS,UAGpCyI,IAAWA,EAAU0G,MAAMC,QAAU,UAG3C3R,MApBa,WAqBX,IAAQgL,EAAsBjQ,KAAtBiQ,UACAhP,EADsBjB,KAAX0C,OACXzB,OAER,IAAI4D,EAAAA,EAAAA,YAAW5D,EAAOgE,OACpB,OAAOhE,EAAOgE,MAAMjF,KAAKia,GAAG9J,gBAG1BF,IAAWA,EAAU0G,MAAMC,QAAU,SAG3ClG,IA/Ba,SA+BTjF,GACF,IAAMwO,EAAKxO,EAAO8H,OAClBvT,KAAK0C,OAASuX,EAAG/J,YACjBlQ,KAAKitC,aAAejtC,KAAKiQ,UACzBjQ,KAAKiQ,UAAYjQ,KAAKiQ,YAAa4S,EAAAA,EAAAA,IAAS,OAC5C7iB,KAAKyL,OAASA,EACdzL,KAAKia,GAAKA,EACV,IAAQhK,EAAcjQ,KAAdiQ,UACRgK,EAAG3H,YAAY,CACbrC,UAAAA,IAGEjQ,KAAK0C,OAAOzB,QACdgZ,EAAGjK,cAGLhQ,KAAKoP,QAGPuB,KAlDa,WAmDX3Q,KAAKiF,W,0DCtDT,SACEyL,IADa,SACTjF,GACF,IAAM6hC,EAAK7hC,EAAO8hC,aACZL,EAAKzhC,EAAO0hC,OAElB,IAAIG,EAAGp9B,YAAYwC,SAAnB,CAEA,IAAK1S,KAAKwtC,OAAQ,CAChB,IAAM7nC,EAAK,kBACL6nC,EAAStlC,SAAS0lB,cAAc,OAChC6f,EAASP,EAAGE,SAASznC,IAAOunC,EAAGG,SAAS,CAAE1nC,GAAAA,IAChD6nC,EAAO/lC,YAAY6lC,EAAG9lC,UACtBimC,EAAO9pC,IAAI,gBAAiB6pC,GAAQ9oC,QAAQ,wBAC5C1E,KAAKwtC,OAASA,EAGhBxtC,KAAKwtC,OAAO72B,MAAMC,QAAU,UAG9BjG,KAnBa,WAoBX,IAAQ68B,EAAWxtC,KAAXwtC,OACRA,IAAWA,EAAO72B,MAAMC,QAAU,W,wECpBhC8xB,E,MAAIC,GAAAA,EAEV,SACEj4B,IADa,SACTjF,EAAQk0B,GAGV,GAFA3/B,KAAK2/B,OAASA,GAET3/B,KAAK0tC,IAAK,CACb,IAAMhrC,EAAS+I,EAAOyE,YAChBu9B,EAAShiC,EAAO0hC,OAChBQ,EAAW,uBACjB3tC,KAAK0tC,IAAMhF,EAAE,eACb1oC,KAAK4tC,KAAOlF,EAAE,eACd1oC,KAAK0tC,IAAI1lC,OAAOhI,KAAK4tC,MAGrB,IAAMC,EAAMpiC,EAAOqiC,cACnB,GAAID,GAAOnrC,EAAOqrC,YAAa,CAC7B,IAAMC,EAAcP,EAAOJ,SAAS,CAAE1nC,GAAI,cACpCsoC,EAAOJ,EAAIrmC,SACjBwmC,EAAYrqC,IAAI,gBAAiBsqC,GAAMvpC,QAAQipC,GAIjD,IAAMO,EAAMziC,EAAO0iC,gBACnBnuC,KAAKkuC,IAAMA,EACX,IAAME,EAAYF,EAAIh+B,YAClBk+B,EAAUntC,OACZitC,EAAIl+B,YAAY,CAAEC,UAAWjQ,KAAK4tC,KAAKpsC,IAAI,KACjC4sC,EAAU17B,UACpB1S,KAAK4tC,KAAK5lC,OAAOkmC,EAAI1mC,OAAO,KAI9B,IAAM6mC,EAAK5iC,EAAO6iC,aAClBtuC,KAAKquC,GAAKA,EACV,IAAME,EAAWF,EAAGn+B,YACdvN,EAAM4rC,EAASpuC,YACrBH,KAAKwuC,QAAU9F,EAAE,gBAAD,OAAgB/lC,EAAhB,oBAA8B8I,EAAOzF,EAAE,sBAAvC,WAChBhG,KAAK0tC,IAAI1lC,OAAOhI,KAAKwuC,SAEjBD,EAASttC,OACXotC,EAAGr+B,YAAY,CAAEC,UAAWjQ,KAAK4tC,KAAKpsC,IAAI,KAChC+sC,EAAS77B,UACnB1S,KAAK4tC,KAAK5lC,OAAOqmC,EAAG7mC,UAItB,IAAMinC,EAAQ,kBACdzuC,KAAK0uC,MAAQjB,EAAOL,SAASqB,GACxBzuC,KAAK0uC,QAAO1uC,KAAK0uC,MAAQjB,EAAOJ,SAAS,CAAE1nC,GAAI8oC,KAGpDzuC,KAAK0uC,MAAM/qC,IAAI,gBAAiB3D,KAAK0tC,KAAKhpC,QAAQipC,GAGlD3tC,KAAK8C,GAAK2I,EAAOgX,WACjBziB,KAAKgD,SAAShD,KAAK8C,GAAIurC,EAAGjpC,OAAO1B,OAAQ1D,KAAK2uC,UAGhD3uC,KAAK2uC,YAOPA,SAhEa,WAiEX,IAGsB,IAGf,IANChP,EAAe3/B,KAAf2/B,OAAQ0O,EAAOruC,KAAPquC,GACX1O,GAAUA,EAAOn+B,MAAQm+B,EAAOn+B,IAAI,YAAe6sC,IAEpDA,EAAGjiC,eACL,UAAApM,KAAK4tC,YAAL,SAAWgB,OACX,UAAA5uC,KAAKwuC,eAAL,SAAc3mC,SAEd,UAAA7H,KAAK4tC,YAAL,SAAW/lC,OACX,UAAA7H,KAAKwuC,eAAL,SAAcI,UAIlBj+B,KA7Ea,WA6EN,QACL,UAAA3Q,KAAK4tC,YAAL,SAAW/lC,OACX,UAAA7H,KAAKwuC,eAAL,SAAc3mC,U,wEChFZ6gC,E,MAAIC,GAAAA,EAEV,SACEj4B,IADa,SACTjF,EAAQk0B,GACV3/B,KAAK2/B,OAASA,EACd,IAAM78B,EAAK2I,EAAOgX,WAGZ9f,EADS8I,EAAOojC,OACH1uC,YACb2uC,EAAKrjC,EAAOsjC,aACZC,EAASF,EAAG5+B,YAGlB,IAAI8+B,EAAOt8B,SAAX,CAEA,IAAK1S,KAAK0tC,IAAK,CACb1tC,KAAK0tC,IAAMhF,EAAE,eACb1oC,KAAK4tC,KAAOlF,EAAE,eACd1oC,KAAK0tC,IAAI1lC,OAAOhI,KAAK4tC,MACrB5tC,KAAKwuC,QAAU9F,EAAE,SAAS1gC,OAAX,uBACEgnC,EAAO7uC,YADT,oBAC+B2C,EAAGkD,EAC7C,sBAFW,WAKfhG,KAAK0tC,IAAI1lC,OAAOhI,KAAKwuC,SACrBxuC,KAAK4tC,KAAK5lC,OAAV,uBACiBrF,EADjB,0BACqCG,EAAGkD,EAAE,sBAD1C,WAGAhG,KAAK4tC,KAAK5lC,OAAO8mC,EAAGtnC,UACpB,IAAIimC,EAAShiC,EAAO0hC,QAEfM,EAAOL,SAAS,mBAEPK,EAAOL,SAAS,mBADnBK,EAAOJ,SAAS,CAAE1nC,GAAI,qBAI9BhC,IAAI,gBAAiB3D,KAAK0tC,IAAIlsC,IAAI,IAClCkD,QAAQ,wBAEX1E,KAAK0D,OAAS+H,EAAOgX,WACrBziB,KAAKgD,SAAShD,KAAK0D,OAAQ,oBAAqB1D,KAAKivC,UAGvDjvC,KAAKivC,aAOPA,SAhDa,WAiDX,IAAMtP,EAAS3/B,KAAK2/B,OAChBA,GAAUA,EAAOn+B,MAAQm+B,EAAOn+B,IAAI,YAEI,IAAxCxB,KAAK0D,OAAOm8B,iBAAiB54B,QAC/BjH,KAAK4tC,KAAKgB,OACV5uC,KAAKwuC,QAAQ3mC,SAEb7H,KAAK4tC,KAAK/lC,OACV7H,KAAKwuC,QAAQI,UAIjBj+B,KA7Da,WA8DX3Q,KAAK4tC,MAAQ5tC,KAAK4tC,KAAK/lC,OACvB7H,KAAKwuC,SAAWxuC,KAAKwuC,QAAQ3mC,U,wECjEjC,SACE6I,IADa,SACTmpB,EAAIzX,GAAc,IAAXxZ,EAAW,uDAAJ,GACV9F,EAAK+2B,EAAGpX,WACRysB,EAAMpsC,EAAGtB,IAAI,aACb4S,EAAWylB,EAAGztB,cAEhB8iC,GAAO96B,IACTylB,EAAGgG,iBAAiBpzB,SAAQ,SAAAmT,GAC1B,GAAKA,EAAL,CAEA,IAAMnb,EAAOmb,EAAKnd,WAClB,GAAKgC,EAAL,CAEA,IAGI0qC,EAFEC,EAAU,CAAEtoC,GADPrC,EAAKkQ,QAAQiL,GAAQ,EACV8f,OAAQ92B,EAAK82B,QAAU,mBACvC2P,EAAWH,EAAIlZ,QAAO,SAAAsZ,GAAG,OAAIA,EAAI9tC,IAAI,eAIzC2tC,GADEI,EAAAA,EAAAA,UAASL,EAAKtvB,IAASA,EAAKpe,IAAI,YAC1BiD,EAAKoC,IAAI+Y,EAAKhc,QAASwrC,GAEvB3qC,EAAKoC,IACXwoC,EAAS30B,KAAI,SAAA40B,GAAG,OAAIA,EAAI1rC,WACxBwrC,IAIJD,GAAQn0B,EAAAA,EAAAA,SAAQm0B,GAASA,EAAQ,CAACA,IAC5B1iC,SAAQ,SAAA5F,GAAG,OAAIgzB,EAAGn1B,QAAQ,kBAAmBmC,WAGrDuN,EAASksB,iB,kFC/BTkP,EAAS,gBAEf,SACEC,UADa,SACHhkC,GAKR,OAJKzL,KAAKytC,SACRztC,KAAKytC,OAAShiC,EAAO0hC,OAAOsC,aAGvBzvC,KAAKytC,QAGdiC,YATa,SASD9mC,GACVA,EAAKk5B,MAAQ,GAGf6N,WAba,SAaFhgC,GACT,IAAQ7M,EAAO9C,KAAP8C,GACF8sC,EAAQjgC,EAAK,KAAO,MAC1B,GAAI7M,EAAI,CACN,IAAM6U,EAAS7U,EAAGtB,IAAI,UAChByI,EAAO0N,EAAOhM,UACdkkC,EAAMl4B,EAAOwY,eACnB0f,IAAQA,EAAIl5B,MAAMC,QAAUjH,EAAK,OAAS,IAC1C,IAAMmgC,EAAM7lC,EAAK8lC,iBAAL,WAA0B/vC,KAAK4C,KAA/B,gBACZwF,EAAAA,EAAAA,MAAK0nC,GAAK,SAAApjC,GAAI,OAAKA,EAAKiK,MAAM4d,cAAgB5kB,EAAK,MAAQ,MAC3D7M,EAAG8sC,GAAO,sBAAuB5vC,KAAK0vC,eAI1Ch/B,IA3Ba,SA2BTjF,EAAQk0B,GAAQ,WAClB3/B,KAAK2/B,OAASA,EACd3/B,KAAKoU,UAAL,OAAoB3I,EAAOo0B,kBAC3Bp0B,EAAOnH,SAEFtE,KAAKgwC,wBACRhwC,KAAKgwC,sBAAwBvkC,EAAOg1B,SAAS7vB,SAAS4+B,IAGxDxvC,KAAKgwC,uBAAyBvkC,EAAOg2B,YAAY+N,GACjD/jC,EAAOgX,WAAW7J,cAElB,IAAM60B,EAASztC,KAAKyvC,UAAUhkC,GACxBkM,EAASlM,EAAO+Q,OAAOwP,aACvBikB,EAAWxkC,EAAO8I,QAClB5R,EAAM8I,EAAOojC,OAAO1uC,YAE1B,IAAKH,KAAKkwC,OAAQ,CAChB,IAAMA,EAAShoC,SAAS0lB,cAAc,QACtCsiB,EAAOntC,UAAP,UAAsBJ,EAAtB,2BACAstC,EAASxoC,YAAYyoC,GACrBA,EAAOC,QAAU,kBAAM,EAAK1O,eAC5BzhC,KAAKkwC,OAASA,EAGhBlwC,KAAKkwC,OAAOv5B,MAAMC,QAAU,eAE5B62B,EAAOhhC,SAAQ,SAAAiiC,GAAK,OAAIA,EAAM/qC,IAAI,WAAW,MAE7C,IAAMysC,EAAUz4B,EAAOhB,MACvBy5B,EAAQ/tC,MAAQ,OAChB+tC,EAAQhuC,OAAS,OACjBguC,EAAQpwB,IAAM,IACdowB,EAAQrwB,KAAO,IACfqwB,EAAQC,QAAU,IAClBD,EAAQE,OAAS,IACjB7kC,EAAOkuB,UACP35B,KAAK2vC,WAAW,IAGlBh/B,KAnEa,SAmERlF,GACH,MAAkCzL,KAA1B2/B,OAAAA,OAAR,MAAiB,GAAjB,EAAqBvrB,EAAapU,KAAboU,SACrBurB,EAAOh8B,KAAOg8B,EAAOh8B,IAAI,SAAU,GACnC,IAAM8pC,EAASztC,KAAKyvC,UAAUhkC,GAE1BzL,KAAKgwC,wBACPvkC,EAAOY,WAAWmjC,GAClBxvC,KAAKgwC,uBAAwB,GAG/BvkC,EAAOgX,WAAW5J,aAClB40B,EAAOhhC,SAAQ,SAAAiiC,GAAK,OAAIA,EAAM/qC,IAAI,WAAW,MAE9B8H,EAAO+Q,OAAOwP,aACtBhW,aAAa,QAAS,IAC7B5B,GAAY3I,EAAOnH,OAAO8P,UACnBpU,KAAKoU,SAERpU,KAAKkwC,SACPlwC,KAAKkwC,OAAOv5B,MAAMC,QAAU,QAG9BnL,EAAOkuB,UACP35B,KAAK2vC,gB,sSC9FT,SACEj/B,IADa,SACTjF,EAAQk0B,EAAQ/2B,GAClB,IAAMikB,EAAMjkB,GAAQ,GACd+O,EAASlM,EAAO+Q,OAChB2K,EAAaxP,EAAO2X,gBACpB9sB,E,qWAAU,CAAH,CACXkQ,SAAUiF,EAAOyY,eACjBla,OAAQzK,EAAOyE,YAAY/P,YAC3BowC,WAAYppB,EAAWwJ,cAActtB,KAAK8jB,GAC1CqpB,gBAAiB74B,EAAOub,qBACpBrG,EAAIrqB,SAAW,IAEfiuC,EAAkBzwC,KAAlBywC,cAWN,OARKA,IAAiB5jB,EAAI6jB,WACxB1wC,KAAKywC,cAAgBhlC,EAAOklC,MAAMC,QAAQxtC,KAAKZ,GAC/CiuC,EAAgBzwC,KAAKywC,eAGvBA,EAAc1M,WAAWvhC,GACzBiuC,EAAcI,OACdJ,EAAc7W,MAAM/M,EAAIhpB,IACjB4sC,GAGT9/B,KA1Ba,WA0BN,MACL,UAAA3Q,KAAKywC,qBAAL,SAAoBI,U,mwBCzBxB,QAAelI,IAAAA,KAAAA,OAAqB,CAClCvjC,OADkC,WAEhC,OACEpF,KAAKiD,MAAMzB,IAAI,WAAa,CAC1BmS,UAAW,gBAKjBN,WATkC,WAUhC,OAAOrT,KAAKiD,MAAMzB,IAAI,eAGxB6/B,WAbkC,WAaZ,IAAXz4B,EAAW,uDAAJ,GAChB,EAAwBA,EAAhBlG,OAAAA,OAAR,MAAiB,GAAjB,EACA1C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAKyL,OAAS/I,EAAO+I,QAGvBqlC,YAnBkC,SAmBtBxjC,GACVA,EAAMjH,iBACNiH,EAAMnB,kBAgBN,IAAQV,EAAezL,KAAfyL,OAAQ3I,EAAO9C,KAAP8C,GAChB,EAAsB2I,EAAO+Q,OAAOlE,aAAa6K,wBAAzCpD,EAAR,EAAQA,KAAMC,EAAd,EAAcA,IAER+wB,EAAa,EAAH,KACXzjC,GADW,IAEd2R,QAAS3R,EAAM2R,QAAUc,EACzBb,QAAS5R,EAAM4R,QAAUc,IAG3Bld,EAAG4B,QAAQ,sBACX1E,KAAKgxC,YAAYD,IAGnBC,YAlDkC,SAkDtB1jC,GACV,IAAM1E,EAAO,CAAE0E,MAAAA,GACTg0B,EAAUthC,KAAKiD,MAAMzB,IAAI,WACzBiK,EAASzL,KAAKyL,OAEG,mBAAZ61B,GACTA,EAAQ71B,EAAQ,KAAM7C,GAGD,iBAAZ04B,GACT71B,EAAOY,WAAWi1B,EAAS14B,IAI/BpB,OAhEkC,WAiEhC,IAAQiE,EAAuBzL,KAAvByL,OAAQ9G,EAAe3E,KAAf2E,IAAK1B,EAAUjD,KAAViD,MACf0C,EAAK1C,EAAMzB,IAAI,MACfsR,EAAQ7P,EAAMzB,IAAI,SAClBmB,EAAM8I,EAAOyE,UAAU,eAI7B,OAHAvL,EAAIC,SAAJ,UAAgBjC,EAAhB,iBACAgD,GAAMhB,EAAIC,SAAJ,UAAgBjC,EAAhB,yBAAoCgD,IAC1CmN,GAASnO,EAAIqD,OAAO8K,GACb9S,Q,4bCvEUixC,EAAAA,SAAAA,I,uBACnB,aAA+B,MAAnBroC,EAAmB,uDAAZ,GAAIlG,EAAQ,8DAC7B,cAAMkG,EAAMlG,IACPA,OAAS,CAAE+I,OAAQ7C,EAAK6C,QAAU,GAAI3I,GAAI8F,EAAK9F,IACpD,EAAKE,SAAS,EAAKP,WAAY,QAAS,EAAK+E,QAHhB,E,iBADZypC,CAAoBrnB,EAAAA,GAQzCqnB,EAAYnvC,UAAU+nB,SAAWqnB,ECTjC,QAAevI,IAAAA,MAAAA,OAAsB,CACnCl5B,SAAU,CACR6xB,QAAS,GACTjuB,WAAY,MCFhB,EAAes1B,IAAAA,WAAAA,OAA2B,CAAE1lC,MAAOkuC,I,qkBCInD,IACIC,EADE1I,EAAIC,IAAAA,EAsBV,SACEvlC,KADa,SACRb,IACH2U,EAAAA,EAAAA,SAAQlX,KAAM,UAAW,QAAS,UAAW,gBAAiB,iBAAkB,sBAGlFme,OALa,WAMXne,KAAKwwB,SAAWxwB,KAAKywB,UAAYzwB,KAAKqxC,UAAY,KAClDrxC,KAAKsxC,uBACLF,EAAc,GAOhBE,qBAfa,WAgBXtxC,KAAKuxC,sBAAsB,GAC3BvxC,KAAK8C,GAAGsJ,eAAiBpM,KAAKgF,YAOhCgnC,oBAxBa,WAyBXhsC,KAAKuxC,yBAOPA,sBAhCa,SAgCSpzB,GAAQ,WACpBrb,EAAO9C,KAAP8C,GACF0uC,EAAa1uC,EAAGoN,UAAU,cACxBoS,EAAexf,EAAGqO,eAAlBmR,WACF9X,EAAS2T,EAAS,KAAO,MACzBC,EAAU,CAAEzO,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,MACrB+7B,EAAWvqC,QAAUqb,GAAckvB,EAAW5jC,KAAK0U,GAOpDlE,EAAQ5T,GAAQzK,OAAQ,SAAUC,KAAKyxC,gBACvCrzB,EAAQ5T,GAAQgnC,EAAY,SAAUxxC,KAAK0xC,mBAC3C5uC,EAAG0H,GAAQ,+CAAgDxK,KAAKgF,SAAUhF,MAC1E8C,EAAG0H,GAAQ,0BAA2BxK,KAAK2xC,UAAW3xC,MACtD8C,EAAG0H,GACD,oDACAxK,KAAK4xC,gBACL5xC,MAEF8C,EAAG0H,GAAQ,2BAA4BxK,KAAK6xC,WAAY7xC,MACxD8C,EAAG0H,GAAQ,sBAAuBxK,KAAK8xC,eAAgB9xC,MACvD8C,EAAG0H,GAAQ,gBAAiBxK,KAAKyxC,eAAgBzxC,MACjD8C,EAAG0H,GAAQ,qBAAsBxK,KAAKyxC,eAAgBzxC,MACtD8C,EAAGtB,IAAI,UACJ2Z,YACA1O,SAAQ,SAAA2O,GACP,IAAQjY,EAASiY,EAATjY,KACFohB,EAAMphB,MAAAA,OAAH,EAAGA,EAAMqhB,YAClBD,GAxBY,SAACA,EAAKta,GACpBmU,EAAQ5T,GAAQP,EAAM,YAAa,EAAK8nC,SACxC3zB,EAAQ5T,GAAQP,EAAM,aAAc,EAAK+nC,OACzC5zB,EAAQ5T,GAAQP,EAAM,iBAAkB,EAAKzF,SAC7C4Z,EAAQ5T,GAAQ+Z,EAAK,SAAU,EAAK0tB,eAAe,GAoB1CvtC,CAAQ6f,EAAKphB,EAAKwI,eAS/BomC,QAxEa,SAwEL7sC,GACNA,EAAEiH,kBACF,IAAQrJ,EAAO9C,KAAP8C,GACFovC,EAAMhtC,EAAExB,OACRP,GAAO8wB,EAAAA,EAAAA,WAAUie,GACjBpxB,EAAY3d,GAAQA,EAAKunB,YACzB/lB,EAAM+jC,EAAEwJ,GACVjvC,EAAQ0B,EAAImF,KAAK,SAGrB,IAAK7G,EAEH,IADA,IAAIwR,EAAS9P,EAAI8P,UACTxR,GAASwR,EAAOxN,UAAWkrC,EAAAA,EAAAA,IAAM19B,EAAO,KAC9CxR,EAAQwR,EAAO3K,KAAK,SACpB2K,EAASA,EAAOA,SAIpBzU,KAAKoyC,WAAaF,EAAIxzB,cACtB5b,EAAGuvC,WAAWpvC,EAAO,CAAEqvC,UAAU,IACjCxxB,GAAahe,EAAGa,IAAI,eAAgBmd,IAGtC2wB,eA/Fa,WAgGXzxC,KAAKuyC,iBACLvyC,KAAK4xC,mBAGPD,UApGa,SAoGH7uC,EAAI0jB,GAAW,WACnBvkB,EAAS,GAETukB,EACFA,EAAUiE,MAAMhe,SAAQ,SAAAtJ,GACtB,IAAMU,EAAKV,EAAKU,GACVstB,EAAM,EAAKR,cAAc9sB,GAC/B5B,EAAS,CAAE4B,GAAAA,EAAIstB,IAAAA,EAAK3K,UAAAA,EAAWrjB,MAAM8wB,EAAAA,EAAAA,WAAUpwB,IAC/C,EAAK2uC,iBAAiBvwC,GAElB4B,EAAG6a,gBAAkB,EAAK0zB,aAAY,EAAKK,UAAYxwC,OAG7DjC,KAAKoyC,WAAa,KAClBpyC,KAAKyyC,UAAY,EACjBzyC,KAAKwyC,mBACLxyC,KAAK2X,OAAOwD,YAAY1O,SAAQ,SAAA2O,GAC9B,IAAQjY,EAASiY,EAATjY,KACFU,EAAKV,GAAQA,EAAKygB,aACxB/f,GAAM,EAAK6uC,cAAc,EAAG,EAAG,CAAE7uC,GAAAA,SAWvCmB,UAAU+K,EAAAA,EAAAA,WAAS,WACjB,IAAQjN,EAAO9C,KAAP8C,GACF0jB,EAAY1jB,EAAGsJ,cACfumC,EAAe7vC,EAAGtB,IAAI,iBAAmB,GACzC2B,EAAOqjB,GAAaA,EAAUosB,QAAQD,EAAa1vC,OACrDY,EAAKV,GAAQA,EAAKU,GAClB5B,EAAS,GAET4B,IAAMgvC,EAAAA,EAAAA,IAAUhvC,KAElB5B,EAAS,CAAE4B,GAAAA,EAAIstB,IADHnxB,KAAK2wB,cAAc9sB,GACX2iB,UAAAA,EAAWrjB,MAAM8wB,EAAAA,EAAAA,WAAUpwB,KAGjD7D,KAAK8yC,WAAa7wC,EAClBjC,KAAK+yC,oBAEL/yC,KAAKuyC,eAAetwC,GACpBjC,KAAKgzC,WAAWxsB,MAGlBorB,gBAtJa,WAuJX,IAAMtc,EAAMt1B,KAAKizC,gBACZ3d,EAAIzxB,KACTyxB,EAAInE,IAAMnxB,KAAK2wB,cAAc2E,EAAIzxB,IACjC7D,KAAK+yC,sBAGPR,eA7Ja,SA6JEzoC,GACb,IAAMwrB,EAAMt1B,KAAKkzC,eACZ5d,EAAIzxB,KACTyxB,EAAInE,IAAMnxB,KAAK2wB,cAAc2E,EAAIzxB,IACjC7D,KAAKwyC,iBAAiB1oC,KAGxBopC,aApKa,WAqKX,OAAOlzC,KAAKyyC,WAAa,IAG3BQ,cAxKa,WAyKX,OAAOjzC,KAAK8yC,YAAc,IAG5Bd,MA5Ka,WA6KXhyC,KAAK8C,GAAGuvC,WAAW,IAGrBK,cAhLa,SAgLC/iC,EAAIxM,GAAiB,IAAXyF,EAAW,uDAAJ,GACvB/E,EAAK+E,EAAK/E,IAAM7D,KAAK2X,OAAOiM,WAAWzgB,GAE7C,OADAU,IAAOA,EAAG8S,MAAMC,QAAUjH,EAAK,GAAK,QAC7B9L,GAAM,IAQfsvC,kBA3La,SA2LKtvC,EAAIstB,GAAgB,IAAXvoB,EAAW,uDAAJ,GAC3BwoC,GACLpxC,KAAKyL,OAAOY,WAAW,cAAe,CACpCxI,GAAAA,EACAutB,MAAOD,EACPhuB,KAAMyF,EAAKzF,KACXy+B,MAAO,EACP5hB,IAAK,EACLD,KAAM,KASVqzB,kBA5Ma,SA4MKjwC,GAChBnD,KAAKyL,OAAOg2B,YAAY,cAAe,CACrCt+B,KAAAA,KASJkwC,uBAvNa,SAuNUxvC,EAAIstB,GACzBnxB,KAAKyL,OAAOY,WAAW,cAAe,CACpCxI,GAAAA,EACAutB,MAAOD,EACPmiB,MAAO,WASXC,uBApOa,SAoOU1vC,EAAIstB,GACrBnxB,KAAKyL,QAAQzL,KAAKyL,OAAOg2B,YAAY,cAAe,CAAE6R,MAAO,WAMnEE,gBA3Oa,SA2OGrwC,GACdnD,KAAK2X,OAAOqY,eAAe7sB,GAAMwT,MAAMoO,QAAU,GAQnDvgB,QApPa,SAoPL8G,GACNA,EAAGa,kBACHb,EAAGjF,iBACH,IAAQvD,EAAO9C,KAAP8C,GACR,GAAIA,EAAGtB,IAAI,YAAa,OAAOsB,EAAGa,IAAI,YACtC,IAAMgB,EAAM+jC,EAAEp9B,EAAG5H,QACbT,EAAQ0B,EAAImF,KAAK,SAErB,IAAK7G,EAEH,IADA,IAAIwR,EAAS9P,EAAI8P,UACTxR,GAASwR,EAAOxN,UAAWkrC,EAAAA,EAAAA,IAAM19B,EAAO,KAC9CxR,EAAQwR,EAAO3K,KAAK,SACpB2K,EAASA,EAAOA,SAIpB,GAAIxR,EAAO,CAET,GAAIH,EAAG2wC,cAAgBxwC,EAAMzB,IAAI,aAAeyB,EAAMywC,UAAU,QAC9D,OAEF1zC,KAAKsE,OAAOrB,EAAOqI,KASvBhH,OAlRa,SAkRNrB,GAAmB,IAAZqK,EAAY,uDAAJ,GACfrK,IACLjD,KAAKyL,OAAOnH,OAAOrB,EAAO,CAAEqK,MAAAA,EAAOglC,UAAU,IAC7CtyC,KAAKgzC,WAAW/vC,KASlB0wC,YA9Ra,SA8RD9vC,EAAIstB,GAAgB,IAAXvoB,EAAW,uDAAJ,GAClB+O,EAAW3X,KAAX2X,OACF1U,EAAQylC,EAAE7kC,GAAIiG,KAAK,SACzB,GAAK7G,GAAUA,EAAMzB,IAAI,YAAzB,CACA,IAAM4nC,EAAQppC,KAAK0sC,SAAS9jC,GAE5B,IAAKA,EAAKgrC,QAAS,CACjB,IAAMlxC,EAAS1C,KAAK2X,OAAOzH,YACrB2jC,EAAO5wC,EAAM6wC,UACblxC,EAAOF,EAAOG,cAAgB,GAC9BkxC,EAAW,GAAH,OAAMnxC,EAAN,SACRoxC,EAAetxC,EAAO0Z,iBACtB63B,EAAa,GAAH,OAAMJ,EAAO,gBAAH,OAAkBE,EAAlB,oBAAqCF,EAArC,UAAoD,GAA9D,kCACAE,EADA,oBACmB9wC,EAAMumC,UADzB,UAEhBJ,EAAMtlC,UAAYkwC,EAAeA,EAAa/wC,GAASgxC,EAGzD,IAAM3O,EAAK,KACL4O,EAAS9K,EAAMzyB,MACrBu9B,EAAOt9B,QAAU,QAEjB,IAAMu9B,EAAex8B,EAAO4a,wBAAwB1uB,EAAIulC,EAAO,CAC7DjY,IAAKA,IAGDnR,EAAMm0B,EAAan0B,IACnBD,EAAOnX,EAAKwrC,QAAU,GAAKxrC,EAAKwrC,QAAU,EAEhDF,EAAOl0B,IAAMA,EAAMslB,EACnB4O,EAAOn0B,KAAOA,EAAOulB,IASvB+O,gBApUa,SAoUGlxC,GACdnD,KAAK2X,OAAOqY,eAAe7sB,GAAMwT,MAAMoO,QAAU,IAQnDiuB,WA7Ua,SA6UFjnB,GACT,IAQIuoB,EARIxxC,EAAe9C,KAAf8C,GAAI6U,EAAW3X,KAAX2X,OACNlM,EAAS3I,EAAKA,EAAGtB,IAAI,UAAY,GAEjCmB,GADSG,EAAKA,EAAGtB,IAAI,UAAY,IACpBrB,aAAe,GAC5Bo0C,EAAc,GAAH,OAAM5xC,EAAN,YACXM,IAASyY,EAAAA,EAAAA,WAAUqQ,KAASyoB,EAAAA,EAAAA,gBAAezoB,GAAQA,EAAOjpB,EAAGsJ,cAC7DqoC,EAAYxxC,GAASA,EAAMzB,IAAI,aACjCgB,EAAU,GAGVkyC,EAAkB,SAAClqC,EAAQtF,EAAG0D,GAChC,IAAM+rC,EAAO/rC,EAAK+rC,KAClBA,GACEA,EAAKloC,SAAQ,SAAAgS,GACX,IAAMxU,EAAOwU,EAAIxU,KACX2L,EAAM3L,EAAKlH,WAAa,GAC9BkH,EAAKlH,WAAuB,OAAVyH,EAAA,UAAqBoL,EAArB,YAA4B2+B,GAAgB3+B,EAAI7J,QAAQwoC,EAAa,KAAK9tC,WAIlG,GAAIgF,GAAUgpC,EAAW,CACvB,IAAM5wC,GAAK6X,EAAAA,EAAAA,WAAUqQ,GAAQA,EAAO9oB,EAAMsR,QAC1C/R,EAAU,CAER0V,QAFQ,SAEAhT,GAAc,IAAX0D,EAAW,uDAAJ,GACR/E,EAAwB+E,EAAxB/E,GAAInB,EAAoBkG,EAApBlG,OAAQkyC,EAAYhsC,EAAZgsC,QACZC,EAAoEnyC,EAApEmyC,UAAWC,EAAyDpyC,EAAzDoyC,SAAUC,EAA+CryC,EAA/CqyC,YAAaC,EAAkCtyC,EAAlCsyC,eAAgBC,EAAkBvyC,EAAlBuyC,cAC1DP,EAAgB,MAAOxvC,EAAG0D,GAC1B0rC,EAAexxC,EAAGtB,IAAI,gBAAgB0zC,gBAAgBjyC,GACtD0U,EAAOkQ,qBACP,IAAMstB,EAAgB/nB,iBAAiBvpB,GACjCuxC,EAAad,EAAax0B,WAE5Bu1B,EAAeD,EAAWN,GAC9BpyC,EAAO4yC,UAAYL,GAAkC,SAAjBI,EAChC/sB,MAAM+E,WAAWgoB,MACnBA,EAAeF,EAAcL,IAG/B,IAAIS,EAAgBH,EAAWP,GAC/BnyC,EAAO8yC,WAAaR,GAAoC,SAAlBO,EAClCjtB,MAAM+E,WAAWkoB,MACnBA,EAAgBJ,EAAcN,IAGhCD,EAAQa,SAASC,EAAIroB,WAAWgoB,GAChCT,EAAQa,SAASE,EAAItoB,WAAWkoB,GAChCnE,EAAc,EAEV2D,IACFryC,EAAOkzC,YAAaC,EAAAA,EAAAA,kBAAiBN,GACrC7yC,EAAOozC,WAAYD,EAAAA,EAAAA,kBAAiBR,KAKxCh9B,OAlCQ,WAmCN5M,EAAO/G,QAAQ,qBAGjBoa,MAtCQ,SAsCF5Z,EAAG0D,GACP8rC,EAAgB,SAAUxvC,EAAG0D,GAC7B6C,EAAO/G,QAAQ,oBACfiT,EAAOkQ,mBAAmB,GAC1BupB,EAAc,GAGhBtsC,aA7CQ,SA6CKjB,EAAIqf,GAAoB,IAAd1gB,EAAc,uDAAJ,GAC/B,GAAK8xC,EAAL,CAIA,IAAQvjC,EAAmCvO,EAAnCuO,MAAOglC,EAA4BvzC,EAA5BuzC,gBAAiBrzC,EAAWF,EAAXE,OACxBmyC,EAAsEnyC,EAAtEmyC,UAAWC,EAA2DpyC,EAA3DoyC,SAAUU,EAAiD9yC,EAAjD8yC,WAAYF,EAAqC5yC,EAArC4yC,UAAWQ,EAA0BpzC,EAA1BozC,UAAWF,EAAelzC,EAAfkzC,WACzDI,EAAa,CAAC,KAAM,MAAMrhC,QAAQohC,IAAoB,EACtDE,EAAY,CAAC,KAAM,MAAMthC,QAAQohC,IAAoB,EACrDp/B,EAAQ,GACRovB,EAAMh1B,EAAY,GAAJ,EAEpB,IAAKilC,EAAY,CACf,IAAME,EAAQv+B,EAAOhM,UAAU2X,YACzBjhB,EAAQ6gB,EAAKwyB,EAAIQ,EAAQhzB,EAAKwyB,EAAIQ,EACxCv/B,EAAMm+B,GAAYQ,EAAY,OAAH,UAAejzC,GAAf,OAAuByzC,GAG/CG,IACHt/B,EAAMk+B,GAAaW,EAAa,OAAH,UAAetyB,EAAKyyB,GAApB,OAAwBC,IAGvDtB,EAAap0B,SAAb,OAA2BvJ,GAA3B,IAAkCovB,GAAAA,IAAM,CAAEjQ,YAAa/kB,IACvD,IAAMolC,EAAc,yBACdC,EAAgB,GAAH,OAAMD,EAAN,YAAqBtB,EAArB,YAAkCsB,EAAlC,YAAiDrB,GACpEhyC,GAAMA,EAAG4B,QAAQ0xC,EAAe,KAAM,KAAM,CAAEC,OAAQ,OAIlC,WAApB,OAAO5B,KACTjyC,EAAU,SAAKA,GAAYiyC,GAApB,IAA+BhgC,OAAQjS,KAGhDxC,KAAK40C,QAAUnpC,EAAOY,WAAW,SAAU,CAAExI,GAAAA,EAAIrB,QAAAA,EAASo/B,MAAO,SAEjEn2B,EAAOg2B,YAAY,UACnBzhC,KAAK40C,QAAU,MAQnB0B,cA7ba,SA6bC1e,GACZ,IAAQ90B,EAAO9C,KAAK0C,OAAZI,GACFG,EAAQ20B,GAAO90B,EAAKA,EAAGsJ,cAAgBwrB,EACvC5I,EAAYhvB,KAAK2X,OAAOwY,eACxBomB,EAAevnB,EAAUrY,MACzB6/B,EAAUvzC,EAAMzB,IAAI,WACpBi1C,EAAc3zC,EAAGtB,IAAI,UAAUi1C,YAErC,GAAIxzC,GAASwzC,GAAeD,GAAWA,EAAQvvC,OAAQ,CAErD,GADAsvC,EAAa3/B,QAAU,IAClB5W,KAAKw2C,QAAS,CACjBxnB,EAAUlrB,UAAY,GACtB9D,KAAKw2C,QAAU,IAAIE,EAAQF,GAC3B,IAAMG,EAAc,IAAI1F,EAAY,CAClCxuC,WAAYzC,KAAKw2C,QACjB/qC,OAAQzL,KAAKyL,OACb3I,GAAAA,IAEFksB,EAAUvnB,YAAYkvC,EAAYnvC,SAAS3D,IAG7C7D,KAAKw2C,QAAQ/kC,MAAM+kC,GACnBD,EAAav2B,IAAM,SACnBu2B,EAAax2B,KAAO,OAEpBw2B,EAAa3/B,QAAU,QAS3BggC,iBA/da,SA+dIzlB,GACf,IACQxa,EAAU3W,KAAK2X,OAAOwY,eAAtBxZ,MACRA,EAAMqJ,IAAN,UAAemR,EAAInR,KAAnB,OAFa,MAGbrJ,EAAMoJ,KAAN,UAAgBoR,EAAIpR,MAApB,OAHa,MAIbpJ,EAAMoO,QAAU,IAOlB8xB,kBA3ea,WA4eX,OAAO72C,KAAK2X,OAAO2X,gBAAgBuB,eAQrC6b,SApfa,WAofO,IAAX9jC,EAAW,uDAAJ,GACd,OAAO5I,KAAK2X,OAAOsY,WAAWrnB,EAAKzF,OAOrC8uC,cA5fa,WA6fXjyC,KAAK82C,eAGPA,YAhgBa,WAigBX92C,KAAKuyC,iBACLvyC,KAAK4xC,mBAGPmF,eArgBa,SAqgBEn3B,GACb,OAAOA,GAA+B,aAAvBA,EAAKpe,IAAI,WAQ1BgxC,iBA9gBa,SA8gBI1oC,GACf,MAAqCA,GAAQ9J,KAAKkzC,eAA1CrvC,EAAR,EAAQA,GAAIstB,EAAZ,EAAYA,IAAKhuB,EAAjB,EAAiBA,KAAMqjB,EAAvB,EAAuBA,UAEvB,GAAK3iB,EAAL,CAKA,IAAMmzC,EAAYxwB,EAAUhlB,IAAI,aAC1By1C,EAAUj3C,KAAKk3C,cAAgBrzC,EAC/BszC,EAAYF,EAAU,GAAK,CAAErD,QAAS,GAExCqD,GAAWD,IACbh3C,KAAKk3C,YAAcrzC,EACnB7D,KAAKq0C,gBAAgBlxC,GACrBnD,KAAKmzC,kBAAkBtvC,EAAIstB,EAAK,CAAEhuB,KAAAA,KAGhCnD,KAAK+2C,eAAevwB,KACtBxmB,KAAKwzC,gBAAgBrwC,GACrBnD,KAAKozC,kBAAkBjwC,IAGzB,IAAMiB,EAAO,KACPuf,EAAU3jB,KAAK0yC,cAAc,EAAGvvC,GAC9BwT,EAAUgN,EAAVhN,MACF6Z,EAAWxwB,KAAK2X,OAAOwa,iBAAiBtuB,EAAIstB,GAC5CimB,EAAS5mB,EAASxQ,IAClBo0B,EAAU5jB,EAASzQ,KAEzB/f,KAAK2zC,YAAY9vC,EAAIstB,EAArB,OACKgmB,GADL,IAEEh0C,KAAAA,EACAi0C,OAAAA,EACAhD,QAAAA,KAGFz9B,EAAMqJ,IAAMo3B,EAAShzC,EACrBuS,EAAMoJ,KAAOq0B,EAAUhwC,EACvBuS,EAAMtU,MAAQ8uB,EAAI9uB,MAAQ+B,EAC1BuS,EAAMvU,OAAS+uB,EAAI/uB,OAASgC,EAE5BpE,KAAKq3C,WAAW,QAAS,CACvB7wB,UAAAA,EACA3iB,GAAI8f,EACJ3D,IAAKo3B,EACLr3B,KAAMq0B,EACN/xC,MAAO8uB,EAAI9uB,MACXD,OAAQ+uB,EAAI/uB,cA5CZpC,KAAKk3C,YAAc,GAgDvBrF,YAAY9hC,EAAAA,EAAAA,WAAS,WACnB/P,KAAK+yC,kBAAkB,CAAEnR,MAAO,OAGlCyV,WAtkBa,SAskBF/1C,GAAiB,IAAXsH,EAAW,uDAAJ,GACtB5I,KAAK8C,GAAG4B,QAAQ,sBAAhB,GACEpD,KAAAA,GACGsH,KAIPmqC,kBA7kBa,WA6kBgB,IAAXnqC,EAAW,uDAAJ,GACvB,EAA+B5I,KAAKizC,gBAA5BpvC,EAAR,EAAQA,GAAIstB,EAAZ,EAAYA,IAAK3K,EAAjB,EAAiBA,UAEjB,IAAK3iB,EAGH,OAFA7D,KAAK0yC,qBACL1yC,KAAKs3C,aAAe,GAItB,IAAQ3/B,EAAW3X,KAAX2X,OACFs/B,EAAUj3C,KAAKs3C,eAAiBzzC,GAElCozC,GAAWruC,EAAKg5B,SAClB5hC,KAAKs3C,aAAezzC,EACpB7D,KAAKs2C,cAAc9vB,IAGrB,IAAMpiB,EAAO,KACPuf,EAAU3jB,KAAK0yC,cAAc,GAC3B/7B,EAAUgN,EAAVhN,MACFw9B,EAAex8B,EAAO4a,wBAAwB1uB,EAAI8T,EAAOwY,eAAgB,CAAEgB,IAAAA,IAC3EimB,EAASjD,EAAanhB,gBACtBohB,EAAUD,EAAalhB,iBAC7Btc,EAAMqJ,IAAMo3B,EAAShzC,EACrBuS,EAAMoJ,KAAOq0B,EAAUhwC,EACvBuS,EAAMtU,MAAQ8uB,EAAI9uB,MAAQ+B,EAC1BuS,EAAMvU,OAAS+uB,EAAI/uB,OAASgC,EAE5BpE,KAAK42C,iBAAiB,CAAE52B,IAAKm0B,EAAan0B,IAAKD,KAAMo0B,EAAap0B,OAClE/f,KAAKq3C,WAAW,SAAU,CACxB7wB,UAAAA,EACA3iB,GAAI8f,EACJ3D,IAAKo3B,EACLr3B,KAAMq0B,EACN/xC,MAAO8uB,EAAI9uB,MACXD,OAAQ+uB,EAAI/uB,UAOhB0vC,gBAAgB/hC,EAAAA,EAAAA,WAAS,WACvB/P,KAAK4xC,qBAGPF,mBAAmB3hC,EAAAA,EAAAA,WAAS,WAC1B/P,KAAK8C,GAAGoS,kBACP,KAQHyb,cAroBa,SAqoBC9sB,GACZ,OAAO7D,KAAK2X,OAAO2X,gBAAgBqB,cAAc9sB,IAOnD0zC,UA7oBa,WA8oBXv3C,KAAK0sC,WAAW/1B,MAAMC,QAAU,QAQlC4gC,cAtpBa,SAspBCv0C,GACZA,GACEA,EAAMU,IAAI,CACRgH,OAAQ,GACR2oC,MAAO,MAQbrH,iBAlqBa,WAmqBX,OAAOjsC,KAAK2X,OAAO6M,aAGrB9T,IAtqBa,SAsqBTjF,IACGstB,EAAAA,EAAAA,YACL/4B,KAAKyL,OAASA,GAAUA,EAAOjK,IAAI,UACnCxB,KAAKme,WAGPxN,KA5qBa,SA4qBRkpB,EAAI8F,GAAmB,IAAX/2B,EAAW,uDAAJ,GACtB,IAAKmwB,EAAAA,EAAAA,UAAL,CACA,IAAQj2B,EAAe9C,KAAf8C,GAAI2I,EAAWzL,KAAXyL,OACZzL,KAAK2xC,YACL3xC,KAAKgsC,uBACJpjC,EAAKyX,kBAAoBvd,EAAGgS,YAAY,MACzC9U,KAAK0yC,gBACLjnC,GAAUA,EAAOg2B,YAAY,c,wEC/sB3BiH,E,MAAIC,GAAAA,EAEV,SAMEoD,oBANa,SAMOmG,EAAKzzB,GAAgB,WAAX7V,EAAW,uDAAJ,GACnC5I,KAAKy3C,WAAY,EACjB,IAAI7/B,EAAQ5X,KAAK+iC,YAAYvhC,IAAI,SAC3ByO,EAAYiiC,EAAIxzB,cAAczU,KAEhC2N,IAAU5X,KAAKkU,SACjBlU,KAAKkU,OAAS,IAAI0D,EAAMC,OAAO,CAC7B5H,UAAAA,EACA6H,OAAQ9X,KAAK2X,OAAOI,cACpBC,aAAc,IACdC,QAAS,IACTtV,IAAK3C,KAAK4C,KACV4V,UAAW,IACXtQ,SAAUuW,EACVhG,QAAS,EACTC,OAAQ,EACR5V,GAAI9C,KAAK+iC,YACTpqB,eAAgB,EAChB++B,MAAO,kBAAM,EAAK50C,GAAGoiB,qBAGrBtc,EAAKsP,UAASlY,KAAKkU,OAAOgE,QAAUtP,EAAKsP,SAC7Cg6B,GAAOlyC,KAAKkU,OAAOkB,UAAU88B,EAAK,CAAEjiC,UAAAA,KAQtC0nC,aApCa,WAqCX,IAAInnB,EAAWxwB,KAAK4sB,OAAO5sB,KAAK2X,OAAOW,cACnCmY,EAAYzwB,KAAK4sB,OAAO5sB,KAAK2X,OAAOqU,cAGxC,MAAO,CAAEhM,IAFCwQ,EAASxQ,IAAMyQ,EAAUzQ,IAErBD,KADHyQ,EAASzQ,KAAO0Q,EAAU1Q,OAQvC63B,mBAhDa,WAiDX53C,KAAK63C,oBAAsB,KAC3B73C,KAAK83C,SACe,SAAlB93C,KAAK+3C,WAA6C,IAArB/3C,KAAKg4C,KAAK/wC,OACnCjH,KAAK83C,SAAW,EAChB93C,KAAK83C,SACP93C,KAAKkU,SACPlU,KAAKkU,OAAOwB,MAAQ,EACpB1V,KAAKkU,OAAOyB,WAEV3V,KAAKg4C,OACPh4C,KAAKi4C,YACkB,IAArBj4C,KAAKg4C,KAAK/wC,QACQ,SAAlBjH,KAAK+3C,WACL/3C,KAAK83C,UAAY93C,KAAKg4C,KAAK/wC,OAC7BjH,KAAKk4C,YACkB,IAArBl4C,KAAKg4C,KAAK/wC,OACNyhC,EAAE1oC,KAAKm4C,cACNn4C,KAAKi4C,aAAej4C,KAAKg4C,KAAKh4C,KAAK83C,UACpCpP,EAAE1oC,KAAKg4C,KAAKh4C,KAAK83C,UAAU,IAAIrjC,SAC/Bi0B,EAAE1oC,KAAKm4C,aACbn4C,KAAKo4C,eAAiBp4C,KAAKk4C,YAAYpuC,KAAK,SAC5C9J,KAAK63C,oBAAsB73C,KAAKk4C,YAAYpuC,KAAK,gBAQrDqU,OA9Ea,WA+EXne,KAAK+rC,uBAWPsM,UA1Fa,SA0FH5oB,EAAOjlB,EAAQ8tC,GACvB,IAAIluC,EAAIqlB,GAAS,EACbtd,EAAI3H,GAAU,SACd09B,EAAMoQ,EAAKrxC,OACXsxC,EAAiB,IAARrQ,GAAkB,SAAL/1B,GAAgB/H,GAAK89B,EAC/C,OACU,IAARA,KACGqQ,IAAWD,EAAKluC,GAAG,IACnBkuC,EAAKluC,EAAI,KAAOkuC,EAAKluC,EAAI,GAAG,IAC5BmuC,IAAWD,EAAKluC,EAAI,GAAG,IAEnB,EACF,GAGTsG,IAzGa,WA0GX1Q,KAAKme,UAGPxN,KA7Ga,WA8GX3Q,KAAK43C,qBACL53C,KAAK2rC,SAAS50B,IAAI,SAAU,IAC5B/W,KAAK2rC,SAASiB,Y,6UChHlB,IAAMlE,EAAIC,IAAAA,EAEV,SACE6P,gBADa,SACGlF,GAEd,MAAO,OADMA,GAAS,IACE,kBAG1B5iC,IANa,SAMTjF,EAAQk0B,EAAQ/2B,GAClB,IAAIikB,EAAMjkB,GAAQ,GACd0qC,EAAQzmB,EAAIymB,OAAS,GACrB5wC,EAAS+I,EAAOyE,YACdyM,EAAO3c,KAAK8C,GAAGoiB,iBACfrhB,EAAKgpB,EAAIhpB,IAAM,GAErB,IAAKnB,EAAO0uC,cAAejkB,EAAAA,EAAAA,YAAWtpB,KAASnB,EAAO+1C,qBAAgC,SAATnF,EAC3E7nC,EAAOg2B,YAAYzhC,KAAK2F,GAAIiD,OAD9B,CAKA,IAAI+O,EAASlM,EAAO+Q,OAChB2U,E,qWAAM,CAAH,GAAStE,EAAIuE,OAASzZ,EAAOgZ,cAAc9sB,KAE7CihB,EAAAA,EAAAA,aAAY+H,EAAI7M,OACnBmR,EAAInR,IAAM6M,EAAI7M,MAEX8E,EAAAA,EAAAA,aAAY+H,EAAI9M,QACnBoR,EAAIpR,KAAO8M,EAAI9M,MAGjB,IAAIpJ,EAAQ5W,OAAOqtB,iBAAiBvpB,GAChCjB,EAAO5C,KAAK4C,KACZ81C,EAAWpF,EAAQ,QAEnBqF,EAAehhC,EADN3X,KAAKw4C,gBAAgBlF,IACA1qC,EAAKzF,MACvCw1C,EAAahiC,MAAMoO,QAAU,GAE7B,IAAI6zB,EAAU54C,KAAK,UAAYszC,GAC3BuF,EAAU74C,KAAK,UAAYszC,GAC3BwF,EAAU94C,KAAK,UAAYszC,GAC3ByF,EAAU/4C,KAAK,UAAYszC,GAC3B0F,EAAOh5C,KAAK,OAASszC,GACrB2F,EAAOj5C,KAAK,OAASszC,GACrB4F,EAAOl5C,KAAK,OAASszC,GACrB6F,EAAOn5C,KAAK,OAASszC,GAczB,GAZIqF,EAAaS,WAAWnyC,SAC1BjH,KAAK04C,GAAY,IACjBE,EAAUD,EAAa5xC,cAAc,qBACrC8xC,EAAUF,EAAa5xC,cAAc,qBACrC+xC,EAAUH,EAAa5xC,cAAc,qBACrCgyC,EAAUJ,EAAa5xC,cAAc,qBACrCiyC,EAAOL,EAAa5xC,cAAc,qBAClCkyC,EAAON,EAAa5xC,cAAc,qBAClCmyC,EAAOP,EAAa5xC,cAAc,qBAClCoyC,EAAOR,EAAa5xC,cAAc,uBAG/B/G,KAAK04C,GAAW,CACnB,IAAIW,EAAW/F,EAAMgG,cACjBC,EAAaF,EAAW,WACxBG,EAAcH,EAAW,YACzBI,EAAU/Q,EAAE,gBAAD,OAAgB9lC,EAAhB,kBAAoCpB,IAAI,GACnDk4C,EAAWhR,EAAE,gBAAD,OAAgB9lC,EAAhB,mBAAqCpB,IAAI,GAErDm4C,EAAa/2C,EAAO42C,EAAc,MAChCI,EAAe,GAAH,OAFFh3C,EAAO22C,EAAa,MAElB,YAAmB32C,EAAO22C,GACtCM,EAAc,GAAH,OAAMF,EAAN,YAAoB/2C,EAAO42C,GAC5CZ,EAAUlQ,EAAE,gBAAD,OAAgBkR,EAAhB,kBAA4Cp4C,IAAI,GAC3Dq3C,EAAUnQ,EAAE,gBAAD,OAAgBkR,EAAhB,qBAA+Cp4C,IAAI,GAC9Ds3C,EAAUpQ,EAAE,gBAAD,OAAgBkR,EAAhB,mBAA6Cp4C,IAAI,GAC5Du3C,EAAUrQ,EAAE,gBAAD,OAAgBkR,EAAhB,oBAA8Cp4C,IAAI,GAC7Dw3C,EAAOtQ,EAAE,gBAAD,OAAgBmR,EAAhB,kBAA2Cr4C,IAAI,GACvDy3C,EAAOvQ,EAAE,gBAAD,OAAgBmR,EAAhB,qBAA8Cr4C,IAAI,GAC1D03C,EAAOxQ,EAAE,gBAAD,OAAgBmR,EAAhB,mBAA4Cr4C,IAAI,GACxD23C,EAAOzQ,EAAE,gBAAD,OAAgBmR,EAAhB,oBAA6Cr4C,IAAI,GACzDxB,KAAK,UAAYszC,GAASsF,EAC1B54C,KAAK,UAAYszC,GAASuF,EAC1B74C,KAAK,UAAYszC,GAASwF,EAC1B94C,KAAK,UAAYszC,GAASyF,EAC1B/4C,KAAK,OAASszC,GAAS0F,EACvBh5C,KAAK,OAASszC,GAAS2F,EACvBj5C,KAAK,OAASszC,GAAS4F,EACvBl5C,KAAK,OAASszC,GAAS6F,EACvBM,EAAQhyC,YAAYmxC,GACpBa,EAAQhyC,YAAYoxC,GACpBY,EAAQhyC,YAAYqxC,GACpBW,EAAQhyC,YAAYsxC,GACpBW,EAASjyC,YAAYuxC,GACrBU,EAASjyC,YAAYwxC,GACrBS,EAASjyC,YAAYyxC,GACrBQ,EAASjyC,YAAY0xC,GACrBR,EAAalxC,YAAYgyC,GACzBd,EAAalxC,YAAYiyC,GACzB15C,KAAK04C,GAAY,IAGnB,IAAIt0C,EAAO,KACP01C,EAAezsB,WAAW1W,EAAMojC,WAAWhuC,QAAQ3H,EAAM,KAAOuY,EAChEq9B,EAAgB3sB,WAAW1W,EAAMsjC,YAAYluC,QAAQ3H,EAAM,KAAOuY,EAClEu9B,EAAc7sB,WAAW1W,EAAMwjC,UAAUpuC,QAAQ3H,EAAM,KAAOuY,EAC9Dy9B,EAAiB/sB,WAAW1W,EAAM0jC,aAAatuC,QAAQ3H,EAAM,KAAOuY,EACpE29B,EAAU1B,EAAQjiC,MAClB4jC,EAAU1B,EAAQliC,MAClB6jC,EAAU1B,EAAQniC,MAClB8jC,EAAU1B,EAAQpiC,MAClB+jC,EAAU1B,EAAKriC,MACfgkC,EAAU1B,EAAKtiC,MACfikC,EAAU1B,EAAKviC,MACfkkC,EAAU1B,EAAKxiC,MACfmkC,EAAUztB,WAAW8D,EAAIpR,MACzBg7B,EAAU1tB,WAAW1W,EAAMtU,OAASsa,EAAOvY,EAG/Ck2C,EAAQl4C,OAAS83C,EAAc91C,EAC/Bk2C,EAAQj4C,MAAQ04C,EAChBT,EAAQt6B,IAAMmR,EAAInR,IAAMk6B,EAAc91C,EACtCk2C,EAAQv6B,KAAO+6B,EAAU12C,EAEzBm2C,EAAQn4C,OAASg4C,EAAiBh2C,EAClCm2C,EAAQl4C,MAAQ04C,EAChBR,EAAQv6B,IAAMmR,EAAInR,IAAMmR,EAAI/uB,OAASgC,EACrCm2C,EAAQx6B,KAAO+6B,EAAU12C,EAEzB,IAAI42C,EAAc7pB,EAAI/uB,OAAS83C,EAAcE,EAAiBh2C,EAC1D62C,EAAc9pB,EAAInR,IAAMk6B,EAAc91C,EAC1Co2C,EAAQp4C,OAAS44C,EACjBR,EAAQn4C,MAAQy3C,EAAe11C,EAC/Bo2C,EAAQx6B,IAAMi7B,EACdT,EAAQz6B,KAAO+6B,EAAUhB,EAAe11C,EAExCq2C,EAAQr4C,OAAS44C,EACjBP,EAAQp4C,MAAQ23C,EAAgB51C,EAChCq2C,EAAQz6B,IAAMi7B,EACdR,EAAQ16B,KAAO+6B,EAAU3pB,EAAI9uB,MAAQ+B,EAGrC,IAAI82C,EAAS7tB,WAAW1W,EAAMwkC,YAAcx+B,EAC5C+9B,EAAQt4C,OAAS84C,EAAS92C,EAK1B,IAAIg3C,EAAS/tB,WAAW1W,EAAM0kC,eAAiB1+B,EAC/Cg+B,EAAQv4C,OAASg5C,EAASh3C,EAK1B,IAAIk3C,GAAWnqB,EAAI/uB,OAASg5C,EAASF,EAAS92C,EAC1Cm3C,GAAWpqB,EAAInR,IAAMk7B,EAAS92C,EAClCw2C,EAAQx4C,OAASk5C,GACjBV,EAAQv4C,MAAQgrB,WAAW1W,EAAM6kC,aAAe7+B,EAAOvY,EACvDw2C,EAAQ56B,IAAMu7B,GAId,IAAIE,GAAWpuB,WAAW1W,EAAM+kC,cAAgB/+B,EAChDk+B,EAAQz4C,OAASk5C,GACjBT,EAAQx4C,MAAQo5C,GAAWr3C,EAC3By2C,EAAQ76B,IAAMu7B,KAKhB5qC,KAnKa,SAmKRlF,EAAQk0B,GAAmB,IAAX/2B,EAAW,uDAAJ,GACtBikB,EAAMjkB,GAAQ,GACd0qC,EAAQzmB,EAAIymB,OAAS,GACrB9oC,EAASxK,KAAKw4C,gBAAgBlF,GAC9B37B,EAASlM,EAAO+Q,OAChBm8B,EAAehhC,EAAOnN,GAAQ5B,EAAKzF,MACvCw1C,EAAahiC,MAAMoO,QAAU,K,wEC5KjC,SACE3hB,KADa,YAEX8T,EAAAA,EAAAA,SAAQlX,KAAM,oBAGhB0Q,IALa,SAKTmpB,GACF75B,KAAK27C,UAAU9hB,IAGjBlpB,KATa,SASRkpB,GACH75B,KAAK27C,UAAU9hB,EAAI,IAGrB8hB,UAba,SAaH9hB,GAAgB,WAAZ0F,EAAY,uDAAH,EACrB,IAAK1F,EAAG4G,SAAS7vB,SAAS,WAAY,CACpC,IAAMwW,EAAKyS,EAAGrd,OACRo/B,EAAMrc,EAAS,KAAO,MAC5BnY,EAAGjM,YAAY1O,SAAQ,SAAA2O,GAAK,OAAI,EAAKygC,SAASzgC,EAAOmkB,MACrDnY,EAAG3E,WAAWm5B,GAAK,gBAAiB57C,KAAK87C,mBAI7CA,gBAtBa,SAsBG3pC,EAAGsK,GAAQ,WACzBA,EAAOhQ,SAAQ,SAAA2O,GAAK,OAAI,EAAKygC,SAASzgC,EAAO,OAG/CygC,SA1Ba,SA0BJzgC,EAAOmkB,GACd,IAAM/0B,EAAS+0B,EAAS,MAAQ,SAChCnkB,EAAMjY,KAAKwI,UAAUi3B,UAAUp4B,GAA/B,UAA0CxK,KAAK4C,KAA/C,c,8pBC3BJ,SACEsN,UADa,SACH/L,GACR,OAAOnE,KAAK+7C,YAAY53C,IAG1B6M,eALa,SAKElH,GACb,IAAMwH,EAAM,GACNglB,EAAMt2B,KAAKiP,WAIjB,OAHIqnB,IACFhlB,EAAIglB,GAAOxsB,GAAQ9J,KAAK6P,UAEnByB,GAGTJ,gBAda,WAc6C,IAA1CpH,EAA0C,uDAAnC,GAAmC,yDAAJ,GAAzB+D,EAA6B,EAA7BA,IAAKmuC,EAAwB,EAAxBA,SAAUvqC,EAAc,EAAdA,MACpC6kB,EAAMt2B,KAAKiP,WACXrG,EAAO,CAAE82B,OAAQ,QACjBj7B,EAAOoJ,GAAO7N,KAAK6P,SACrB5N,EAAS6H,EAAKwsB,GAElB,GAAqB,iBAAVr0B,EACT,IACEA,EAAS2H,KAAKC,MAAM5H,GACpB,MAAOoH,GACPrJ,KAAK2b,UAAU,sBAAuB,CAAErV,MAAOrE,IAYnD,OARAwP,GAASxP,GAAUwC,EAAKgN,MAAM,KAAM7I,GAEhCozC,EACF/5C,GAAU+5C,EAAS/5C,EAAQ2G,GAClB3G,IAAUg6C,EAAAA,EAAAA,OAAMh6C,EAAOgF,SAChCxC,EAAKgN,MAAMxP,EAAQ2G,GAGd3G,GAGTigC,MAvCa,WAuCI,IAAXt5B,EAAW,uDAAJ,GACHiF,EAAQ7N,KAAR6N,IAER,OADAA,GAAOA,EAAI4D,MAAM,KAAM7I,GAChB5I,MAGT+7C,YA7Ca,SA6CD53C,GACV,IAAMgF,EAAMnJ,KAAK0C,QAAU,GAC3B,OAAOyB,EAAOgF,EAAIhF,GAAQgF,GAG5B0G,OAlDa,WAkDK,IAAXjH,EAAW,uDAAJ,GACZ,OAAO5I,KAAK6N,IAAOjF,EAAKszC,OAAL,OAAiBl8C,KAAK6N,IAAIyC,QAAUtQ,KAAK6N,IAAO,IAGrEsuC,UAtDa,WAuDX,OAAOn8C,KAAK6P,SAASusC,QAAO,SAACC,EAAKjyC,GAEhC,OADAiyC,EAAIjyC,EAAE5I,IAAI4I,EAAErI,cAAgBqI,EACrBiyC,IACN,KAGLC,aA7Da,WA6DqB,IAArBC,EAAqB,uDAAf,GAAIp2B,EAAW,uDAAJ,GAC5BnmB,KAAK0C,QAAS85C,EAAAA,EAAAA,WAAUD,EAAKp2B,GAC7BnmB,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAK4V,IAAM,IAGblG,aAnEa,WAmEW,IAAX9G,EAAW,uDAAJ,GACViF,EAAoB7N,KAApB6N,IAAK/K,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACjByI,GACE/K,GACA+K,EACG8B,GAAG,OAAO,SAACwC,EAAGtJ,EAAGtG,GAAP,OAAaO,EAAG4B,QAAQU,EAAOyB,IAAKsL,EAAG5P,MACjDoN,GAAG,UAAU,SAACwC,EAAGtJ,EAAGtG,GAAP,OAAaO,EAAG4B,QAAQU,EAAOlC,OAAQiP,EAAG5P,MACvDoN,GAAG,UAAU,SAACinB,EAAG/tB,GAAJ,OAAU/F,EAAG4B,QAAQU,EAAO8J,OAAQ0nB,EAAGA,EAAE6lB,oBAAqB5zC,MAC3E8G,GAAG,MAAO3P,KAAK08C,gBAAiB18C,MAErCA,KAAK4V,IAAM,CAAC/H,GAAK4wB,OAAO71B,EAAK+zC,aAAe,KAE3C/zC,EAAKg0C,WAAa,IAAInwC,SAAQ,YAAuB,IAApBowC,EAAoB,EAApBA,OAAQvvC,EAAY,EAAZA,MACxCuvC,EAAOltC,GAAG,OAAO,SAACrE,EAAIrI,EAAOwB,EAAMmE,GACjC,IACMikB,EAAM,EAAH,CAAKvf,MAAOhC,GADL1C,GAAQnE,GAExB,CAAC3B,EAAI+K,GAAK6M,KAAI,SAAA2N,GAAE,OAAIA,EAAG3jB,QAAQ4I,EAAOrK,EAAO4pB,aAKnD/b,SAxFa,SAwFJ7N,GAAkB,WAAX2F,EAAW,uDAAJ,GACb9F,EAAO9C,KAAP8C,GACFulB,GAAKnP,EAAAA,EAAAA,UAASjW,GAASjD,KAAKwB,IAAIyB,GAASA,EACzC65C,EAAK,WAET,OADAz0B,GAAM,EAAKxa,IAAI3K,OAAOmlB,EAAIzf,GACnByf,GAGT,OADCzf,EAAK4Q,QAAU1W,GAAMA,EAAG4B,QAAQ1E,KAAKoF,OAAO+J,aAAckZ,EAAIy0B,EAAIl0C,IAC3DA,EAAKk5B,OAASgb,KAGxBJ,gBAnGa,SAmGGpvC,EAAOrK,EAAOwB,EAAMmE,GAClC,IAAQ9F,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACN5C,EAAUoG,GAAQnE,EACxB3B,GAAMsC,EAAOyI,KAAO/K,EAAG4B,QAAQU,EAAOyI,IAAK,CAAEP,MAAAA,EAAOrK,MAAAA,EAAOT,QAAAA,IAC3DxC,KAAK8P,gBAGPitC,WA1Ga,WA2GX,IAAMthC,EAAOzb,KAAKkQ,YAAYwC,SAE9B,GAAI+I,EAAM,CACR,IAAM5X,GAAK6X,EAAAA,EAAAA,WAAUD,GAAQA,EAAOvT,SAASnB,cAAc0U,GAC3D,IAAK5X,EAAI,OAAO7D,KAAK2b,UAAU,gCAC/B9X,EAAG4D,YAAYzH,KAAKwH,YAIxBsI,aApHa,aAsHb6L,UAtHa,SAsHHqhC,EAAKp0C,GACb5I,KAAK8C,GAAGm9B,WAAR,WAAuBjgC,KAAKmE,KAA5B,cAAsC64C,GAAOp0C,IAG/Cq0C,UA1Ha,WA0HO,IAIdt3C,EAJIuiC,EAAU,uDAAJ,GACRr6B,EAAM7N,KAAK6P,SACXqtC,EAAKrvC,EAAI5G,OAASihC,EAClBiV,EAASn9C,KAAKm8C,YAGpB,GACEx2C,GAAKy3C,EAAAA,EAAAA,UAASF,SACPC,EAAOx3C,IAEhB,OAAOA,GAGT03C,YAvIa,SAuIDp6C,EAAOqK,GAAO,WACxBrK,EAAM0M,GAAG,OAAO,SAACwC,EAAGtJ,EAAGtG,GAAP,OAAa,EAAKO,GAAG4B,QAAQ4I,EAAO6E,EAAG5P,OAGzD+6C,eA3Ia,SA2IEr6C,EAAOqK,GAAO,WAC3BrK,EAAM0M,GAAG,UAAU,SAACwC,EAAGtJ,EAAGtG,GAAP,OAAa,EAAKO,GAAG4B,QAAQ4I,EAAO6E,EAAG5P,OAG5Dg7C,eA/Ia,SA+IEt6C,EAAOqK,GAAO,WAC3BrK,EAAM0M,GAAG,UAAU,SAACinB,EAAG/tB,GAAJ,OAAU,EAAK/F,GAAG4B,QAAQ4I,EAAOspB,EAAGA,EAAE6lB,oBAAqB5zC,OAGhF20C,UAnJa,WAmJD,MACVx9C,KAAK4V,IAAInJ,SAAQ,SAAAhI,GACfA,EAAKgO,gBACLhO,EAAKgN,WAEPzR,KAAK8C,GAAK,EACV9C,KAAK0C,OAAS,EACd,UAAA1C,KAAKmD,YAAL,SAAWD,SACXlD,KAAKmD,KAAO,K,mIC9JhB,SAEEhD,YAAa,OAGbm3B,MAAO,GAePmmB,cAAe,M,ilCCbjB,IAAQC,IAAQ3kB,EAAAA,EAAAA,UAAWh5B,OAAS,IAA5B29C,IAkBaC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLpoB,UAAW,GACX4I,aAAc,GACdxnB,MAAO,GACPinC,UAAW,GACXtK,MAAO,GACPuK,UAAU,EACVC,WAAY,GACZ1f,cAAc,EACd2f,WAAW,EACXC,MAAO,GAEPC,SAAS,EACTppB,OAAO,K,wBAIX,SAAWhsB,GAAa,IAAVgkB,EAAU,uDAAJ,GAClB7sB,KAAK0C,OAASmG,GAAK,GACnB7I,KAAK6sB,IAAMA,EACX7sB,KAAK8C,GAAK+pB,EAAI/pB,GACd9C,KAAKk+C,kBACLl+C,KAAK2P,GAAG,SAAU3P,KAAKm+C,c,wBAGzB,SAAWhsC,EAAGvJ,GACZ,IAAQ9F,EAAO9C,KAAP8C,GACFs7C,EAAUp+C,KAAKy8C,sBACpB4B,EAAAA,EAAAA,YAAWD,IAAYt7C,GAAMA,EAAGw7C,UAAU11C,K,mBAG7C,WACE,IAAMA,EAAO,EAAH,GAAQ5I,KAAK6sB,KACjBjgB,EAAO,EAAH,GAAQ5M,KAAKqT,YAEvB,OADAzG,EAAK2oB,UAAYv1B,KAAKwB,IAAI,aAAakZ,KAAI,SAAA0H,GAAC,OAAIA,EAAExe,WAC3C,IAAI5D,KAAKgJ,YAAY4D,EAAMhE,K,6BAGpC,SAAgBuJ,EAAGtJ,EAAGD,GACpB,IAAQ9F,EAAO9C,KAAP8C,GACFurC,EAAKvrC,GAAMA,EAAGtB,IAAI,mBAClB+8C,EAAW,CAACv+C,KAAM,mBAAoBA,KAAKk+C,iBAC7CxmB,EAAO13B,KAAKw+C,eAShB,GARAx+C,KAAKyS,cAAL,MAAAzS,KAAsBu+C,GAElB7mB,EAAKpnB,SACPonB,GAAO,OAAIA,EAAKpnB,SAGlBonB,GAAOxe,EAAAA,EAAAA,UAASwe,GAAQ,CAACA,GAAQA,EAE7B1Z,MAAMhD,QAAQ0c,GAAO,CACvB,IAAMvuB,EAAMuuB,EAAK1B,QAAO,SAAA5rB,GAAC,OAAIA,KAAGsQ,KAAI,SAAAtQ,GAAC,OAAKikC,EAAKA,EAAGxnC,IAAIuD,GAAKA,KAC3DstB,EAAO,IAAI+mB,EAAAA,EAAUt1C,GAGvBnJ,KAAK2D,IAAI,YAAa+zB,EAAM9uB,GAC5B5I,KAAKgD,SAAL,MAAAhD,KAAiBu+C,K,uBAanB,WACE,IAAMj9C,EAAOtB,KAAKwB,IAAI,cAChBk9C,EAAY1+C,KAAKwB,IAAI,aAErBm9C,EAAUr9C,EAAO,IAAH,OAAOA,GAASo9C,EAAY,SAAW,GAE3D,OAAOC,GAAWD,GAAaC,EAAb,WAA2BD,GAAc,M,+BAa7D,WAA6B,IAAX91C,EAAW,uDAAJ,GACjB3G,EAAS,GACTqxC,EAAQtzC,KAAKwB,IAAI,SACjBo9C,EAAc5+C,KAAKwB,IAAI,gBACvBq9C,EAAU,CACdC,OAAQ,SAAA9B,GAAG,OAAKU,GAAOA,EAAIoB,OAASpB,EAAIoB,OAAO9B,GAAOA,IAElDznB,EAAYv1B,KAAKwB,IAAI,aAAau9C,cAAc,EAAGF,GACnDG,EAAW1L,IAAU1qC,EAAKq2C,UAAf,WAA+B3L,GAAU,GAG1D,OAFA/d,GAAatzB,EAAO2L,KAAP,UAAe2nB,GAAf,OAA2BypB,IACxCJ,IAAgBh2C,EAAKs1B,SAAWj8B,EAAO2L,KAAKgxC,GACrC38C,EAAO8f,KAAK,Q,4BAcrB,WAA0B,IAAXnZ,EAAW,uDAAJ,GAChB3G,EAAS,GACPszB,EAAYv1B,KAAKi+B,kBAAkBr1B,GACnC+N,EAAQ3W,KAAK48B,cAAch0B,GAC3Bw1B,EAAep+B,KAAKwB,IAAI,gBAM9B,OAJK+zB,GAAa6I,KAAkBznB,GAAS/N,EAAKs2C,cAChDj9C,EAASm8B,EAAeznB,EAAH,UAAc4e,EAAd,YAA2B5e,EAA3B,MAGhB1U,I,uBAUT,WACE,IAAQa,EAAO9C,KAAP8C,GACR,EAAkC9C,KAAKqT,WAA/ByqC,EAAR,EAAQA,WAAYF,EAApB,EAAoBA,UACduB,GAAUr8C,MAAAA,OAAA,EAAAA,EAAItB,IAAI,iBAAiB49C,eAAgB,GACnDC,EAAgBF,EAAQnpB,QAAO,SAAAuU,GAAC,MAA0B,KAAtBA,EAAE+U,mBAAwB,GACpE,MAAmB,UAAfxB,GAA2BF,EAGxBuB,EAAQnpB,QAAO,SAAAuU,GAAC,OAAIA,EAAE+U,mBAAoB/iB,EAAAA,EAAAA,GAAeqhB,MAAY,IAAM,KAFzEyB,GAAiB,O,sBAY5B,WACE,IAAQv8C,EAAO9C,KAAP8C,GACFy8C,EAAav/C,KAAKwB,IAAI,SAE5B,OADesB,EAAGtB,IAAI,mBAAmBg+C,aAAe,IAC1CxpB,QAAO,SAAA5T,GAAC,OAAIA,EAAEonB,YAAc+V,KAAY,IAAM,O,0BAU9D,WAAe,MACPjqB,EAAMt1B,KAAKw+C,eACXiB,EAAqB,GAAdnqB,EAAIruB,QAAequB,EAAIxuB,GAAG,GACjC44C,EAAQD,GAAQA,EAAK9nB,QAAU8nB,EAAKj+C,IAAI,QAC9C,OAAQk+C,IAAK,UAAI1/C,KAAK8C,UAAT,aAAI,EAAStB,IAAI,iBAAiBm+C,QAAQD,KAAW,O,mBAcpE,WAAiB,IAAX92C,EAAW,uDAAJ,GACP3G,EAAS,GACPs7B,EAASv9B,KAAKw9B,YACdtjB,EAAQla,KAAKu+B,eAAe31B,GASlC,OARIsR,GAAStR,EAAKs2C,cAChBj9C,EAASiY,GAGPqjB,GAAUt7B,IACZA,EAAS,GAAH,OAAMs7B,EAAN,YAAgBt7B,EAAhB,MAGDA,I,oBAGT,WAAgB,2BAANi/B,EAAM,yBAANA,EAAM,gBACd,IAAM5vB,EAAMzP,EAAAA,EAAAA,UAAAA,OAAAA,MAA6B7B,KAAMkhC,GAE/C,GAAIlhC,KAAK8C,GAAGoN,UAAU,iBAAkB,CACtC,IAAMT,EAAWzP,KAAKyP,YAEtBhD,EAAAA,EAAAA,SAAQgD,GAAU,SAAC5J,EAAOywB,GACpBhlB,EAAIglB,KAASzwB,UACRyL,EAAIglB,aAKRhlB,EAAIqF,MAAMipC,KAEbppB,EAAAA,EAAAA,SAAQllB,EAAIikB,mBAAmBjkB,EAAIikB,WACnCiB,EAAAA,EAAAA,SAAQllB,EAAIqF,eAAerF,EAAIqF,MAGrC,OAAOrF,I,qBAYT,SAAQikB,EAAW+d,EAAOjxC,GAAuB,IAAhBw9C,EAAgB,uDAAJ,GACrCC,EAAKxM,GAAS,GACdyM,EAAK19C,GAAS,GACd29C,EAASH,EAAU1hB,cAAgB,GACrCZ,EAASsiB,EAAU/B,YAAc,GAC/BxoB,GAAOta,EAAAA,EAAAA,SAAQua,IAAeA,EAAUjlB,OAAuBilB,EAAUjlB,QAAUilB,EAAlC,CAACA,GAGpDwqB,IAAOxiB,IAAQA,EAAS,SAE5B,IAAM0iB,EAAK3qB,EAAI5a,KAAI,SAAAzX,GAAK,OAAIA,EAAM65B,iBAC5BojB,EAAKlgD,KAAKwB,IAAI,aAAakZ,KAAI,SAAAzX,GAAK,OAAIA,EAAM65B,iBAG9CqjB,EAAMF,EAAGG,QAAQt+B,OACjBu+B,EAAMH,EAAGE,QAAQt+B,OACvB,QAAIm+B,EAAGh5C,SAAWi5C,EAAGj5C,SAAWk5C,EAAIrhB,OAAM,SAAC7G,EAAG7tB,GAAJ,OAAU6tB,IAAMooB,EAAIj2C,SAM5DpK,KAAKwB,IAAI,WAAas+C,GACtB9/C,KAAKwB,IAAI,eAAiBu+C,GAC1B//C,KAAKwB,IAAI,kBAAoBw+C,GAC7BhgD,KAAKwB,IAAI,gBAAkB+7B,O,EAjQZogB,CAAgB97C,EAAAA,EAAAA,OAAay+C,EAAAA,I,scCtB7BC,EAAAA,SAAAA,I,2HACnB,SAAWjwC,EAAQuc,GAAK,WAElBA,GAAOA,EAAI/pB,KAAI9C,KAAKyL,OAASohB,EAAI/pB,IAGrCmhB,YAAW,WACT,EAAKtU,GAAG,SAAU,EAAK+mB,UACvB,EAAK/mB,GAAG,MAAO,EAAK6wC,Y,oBAIxB,SAAO53C,GAEL,OADepD,EAAAA,WAAAA,UAAAA,OAAAA,KAAiCxF,KAAM4I,GACxCotB,QAAO,SAAAyB,GAAI,OAAIA,EAAK9gB,QAAU8gB,EAAKwmB,a,mBAGnD,SAAMh7C,EAAO4F,EAAGtG,GACdU,EAAMi7C,gBAAgBj7C,EAAO4F,EAAGtG,K,sBAGlC,SAASs0B,GACP,IAAM/zB,EAAK9C,KAAKyL,OAChB3I,EAAG2P,cAAcokB,GACjB/zB,EAAGtB,IAAI,eAAe0B,OAAO2zB,K,iBAG/B,SAAIvmB,GAAkB,IAAVuc,EAAU,uDAAJ,GAKhB,MAJsB,iBAAXvc,IACTA,EAAStQ,KAAKyL,OAAOjK,IAAI,UAAUi/C,SAASnwC,IAE9Cuc,EAAI/pB,GAAK9C,KAAKyL,OACPjG,EAAAA,WAAAA,UAAAA,IAAAA,MAA+BxF,KAAM,CAACsQ,EAAQuc,Q,EAhCpC0zB,CAAiB/6C,EAAAA,YAoCtC+6C,EAASz+C,UAAUmB,MAAQ06C,E,klBCA3B,mBACE,IAAI76C,EAEAw0B,EAAOopB,EADP73C,EAAI,GAGR,cACKmG,EAAAA,GADL,IAGEyvC,UAAAA,EAAAA,EAOAt6C,KAAM,cAEN8K,WAAY,SAEZiB,UAdF,WAeI,OAAOrH,GAQTzF,KAvBF,SAuBOV,GAEH,IAAK,IAAIyB,KADT0E,EAAInG,GAAU,GACG+M,EACTtL,KAAQ0E,IAAIA,EAAE1E,GAAQsL,EAAStL,IAGvC,IAAIvB,EAAOiG,EAAEhG,aACTD,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAEnC,IAAIwgD,EAAW93C,EAAE/F,IAAM+F,EAAE/F,GAAGJ,OAAOiU,OAAU,GAK7C,OAJA9N,EAAEyuB,MAAQqpB,GAAW93C,EAAEyuB,MAEvBx0B,EAAK+F,EAAE/F,GACPw0B,EAAQ,IAAIipB,EAAS,GAAI13C,GAClB7I,MAOT+R,OA5CF,WA6CIulB,EAAMzwB,IAAIgC,EAAEyuB,MAAO,CAAE9d,OAAQ,KAQ/BonC,SArDF,WAsDI,IAAMC,EAAK/9C,GAAMA,EAAGtB,IAAI,eACxBq/C,GAAMA,EAAGh6C,IAAI7G,KAAK6P,WAGpBkB,MA1DF,WA2DI,OAAO/Q,KAAKgR,kBAGdC,KA9DF,SA8DOnH,GACH,OAAO9J,KAAKkR,gBAAgBpH,IAsB9BjD,IArFF,SAqFM0uB,EAAW+d,EAAOjxC,GAAgC,IAAzBuG,EAAyB,uDAAlB,GAAIwmC,EAAc,uDAAJ,GAC5ChtB,EAAIkxB,GAAS,GACboC,EAAIrzC,GAAS,GACbwqB,EAAM,KAAKjkB,GACX6uB,EAAOz3B,KAAKwB,IAAI+zB,EAAWnT,EAAGszB,EAAG7oB,GAKrC,OAAI4K,GAAQA,EAAK/0B,SAAW+0B,EAAK/0B,OAAO07B,eAGtCvR,EAAIymB,MAAQlxB,EACZyK,EAAI+wB,UAAYlI,EAChB7oB,EAAI0I,UAAY,GAChBmgB,IAAM7oB,EAAIixB,WAAa,UACvBrmB,EAAO,IAAIkmB,EAAQ9wB,EAAKhkB,IACnBrH,IAAI,aAAaqF,IAAI0uB,EAAW6Z,GACrC9X,EAAMzwB,IAAI4wB,EAAM2X,IART3X,GAgCXj2B,IA/HF,SA+HM+zB,EAAW+d,EAAOjxC,EAAOw9C,GAC3B,IAAIiB,EAAMvrB,EACV,IAAIrc,EAAAA,EAAAA,UAASqc,GAAY,CACvB,IAAM8Y,EAAKvrC,EAAGtB,IAAI,mBACZu/C,EAAYxrB,EAAU9zB,MAAM,KAAK,GAAGgF,OACpCu6C,EAAOl+C,EAAGtB,IAAI,UAAUy/C,UAAUC,UAAU,CAAE3rB,UAAWwrB,IAAa,GAC5ED,EAAMzS,EAAG7sC,IAAIw/C,EAAKzrB,WAEpB,OAAO+B,EAAMxvB,MAAK,SAAA2vB,GAAI,OAAIA,EAAK0pB,QAAQL,EAAKxN,EAAOjxC,EAAOw9C,OAAe,MAG3EhwC,OA1IF,WA2II,OAAOynB,GAYT8pB,cAvJF,SAuJgBt3C,GAA6B,IAAvBlB,EAAuB,uDAAhB,GAAIgT,EAAY,uDAAJ,GAC/B3Z,EAAS,IAEXiX,EAAAA,EAAAA,UAASpP,KACXA,EAAOhH,EAAGtB,IAAI,UAAUi/C,SAAS32C,IAKnC,IAFA,IAAMygC,EAAIzgC,aAAgBkU,MAAQlU,EAAO,CAACA,GAEjCM,EAAI,EAAGi3C,EAAI9W,EAAEtjC,OAAQmD,EAAIi3C,EAAGj3C,IAAK,CACxC,IAAIqtB,EAAO8S,EAAEngC,IAAM,GACnB,GAAKqtB,EAAKlC,UAAV,CACA,IAAI8Y,EAAKxlC,EAAE/F,IAAM+F,EAAE/F,GAAGtB,IAAI,mBACrB6sC,GAAI/kC,QAAQyhC,KAAK,8BAKtB,IAJA,IAAIuW,EAAK7pB,EAAKlC,UACVmC,EAAO4pB,aAActjC,MAAQsjC,EAAK,CAACA,GACnCC,EAAU,GAELC,EAAI,EAAGC,EAAK/pB,EAAKzwB,OAAQu6C,EAAIC,EAAID,IAAK,CAC7C,IAAIE,EAAQrT,EAAGxnC,IAAI6wB,EAAK8pB,IACxBD,EAAQ3zC,KAAK8zC,GAGf,IAAIC,EAAc3hD,KAAKwB,IAAI+/C,EAAS9pB,EAAK6b,MAAO7b,EAAKmmB,UAAWnmB,GAC5Dx0B,EAAQjD,KAAK6G,IAAI06C,EAAS9pB,EAAK6b,MAAO7b,EAAKmmB,UAAWnmB,EAAM7uB,GAC5Dg5C,GAAeD,IAAgB/4C,EAAKi5C,iBAClClrC,EAAQ8gB,EAAK9gB,OAAS,GAI5B,IAFAwC,EAAAA,EAAAA,UAASyC,IAAU3Y,EAAMU,IAAIiY,EAAOhT,GAEhCg5C,EAAa,CACf,IAAIE,EAAcl5C,EAAK2vB,OAAL,OAAmBt1B,EAAMzB,IAAI,UAAamV,GAAUA,EACtE1T,EAAMU,IAAI,QAASm+C,EAAal5C,GAGlC3G,EAAO2L,KAAK3K,IAGd,OAAOhB,GAYT8/C,SAzMF,SAyMWhrC,GACP,OAAO/W,KAAKohD,cAAcrqC,IAyB5BirC,QAnOF,SAmOUzsB,EAAW5e,GAAkB,IAAX/N,EAAW,uDAAJ,GACvBk1C,EAA6Bl1C,EAA7Bk1C,WAAYmE,EAAiBr5C,EAAjBq5C,aACdjB,EAAOl+C,EAAGtB,IAAI,UAAUy/C,UAAUC,UAAU,CAChD3rB,UAAAA,EACA5e,MAAAA,IACC,GACK28B,EAAwB0N,EAAxB1N,MAAOnV,EAAiB6iB,EAAjB7iB,aACTkQ,EAAKvrC,EAAGtB,IAAI,mBACZ68B,EAAWgQ,EAAGxnC,IAAIm6C,EAAKzrB,WACvBkC,EAAOz3B,KAAK6G,IAAIw3B,EAAUiV,EAAO2O,EAAc,CACnD9jB,aAAAA,EACAZ,OAAQugB,IAGV,OADArmB,EAAKyqB,SAASvrC,EAAO/N,GACd6uB,GAkBT0qB,QAnQF,SAmQU5sB,GAAsB,IAAX3sB,EAAW,uDAAJ,GAClBylC,EAAKvrC,EAAGtB,IAAI,mBACZw/C,EAAOl+C,EAAGtB,IAAI,UAAUy/C,UAAUC,UAAU,CAAE3rB,UAAAA,IAAa,GAC3D8I,EAAWgQ,EAAG7sC,IAAIw/C,EAAKzrB,WACrB+d,EAAwB0N,EAAxB1N,MAAOnV,EAAiB6iB,EAAjB7iB,aACP2f,EAA6Bl1C,EAA7Bk1C,WAAYmE,EAAiBr5C,EAAjBq5C,aACpB,OACE5jB,GACAr+B,KAAKwB,IAAI68B,EAAUiV,EAAO2O,EAAc,CACtC9jB,aAAAA,EACAZ,OAAQugB,KAiBdsE,SA9RF,SA8RW/jB,GACP,IAAM/G,EAAQt3B,KAAK6P,SACnB,IAAKwuB,EAAU,OAAO,OAAI/G,EAAMhnB,QAChC,IAAMonB,GAAOxe,EAAAA,EAAAA,UAASmlB,GAAYA,EAAS58B,MAAM,KAAKiZ,KAAI,SAAA0H,GAAC,OAAIA,EAAE3b,UAAU43B,EAE3E,OADe/G,EAAMtB,QAAO,SAAA8H,GAAC,OAAIpG,EAAK/iB,QAAQmpB,EAAE0gB,eAAeO,kBAAoB,MAkBrFsD,UApTF,SAoTYl+C,GAA6B,IAAvBwS,EAAuB,uDAAf,GAAI/N,EAAW,uDAAJ,GACjC,EAAoCA,EAA5BwmC,QAAAA,OAAR,MAAkB,GAAlB,EAAsBwO,EAAch1C,EAAdg1C,UAChBtK,EAAQ1qC,EAAK0qC,OAAS,GACtBtgC,GAAS8R,EAAAA,EAAAA,aAAY84B,GAAyB96C,EAAGw/C,kBAAf1E,EAClCvP,EAAKvrC,EAAGtB,IAAI,mBACZ68B,EAAWgQ,EAAGxnC,IAAI,CAAE1C,KAAAA,EAAM7C,KAAMihD,EAAAA,EAAAA,SAAoBnT,GACpD3X,EAAOz3B,KAAK6G,IAAIw3B,EAAUiV,EAAOtgC,EAAO,GAAIo8B,GAElD,OADA3X,EAAKyqB,SAASvrC,EAAd,OAA0B/N,GAASwmC,IAC5B3X,GAaT+qB,UAzUF,SAyUYr+C,GAAiB,IAAXyE,EAAW,uDAAJ,GACbg1C,EAAch1C,EAAdg1C,UACFtK,EAAQ1qC,EAAK0qC,OAAS,GACtBtgC,GAAS8R,EAAAA,EAAAA,aAAY84B,GAAyB96C,EAAGw/C,kBAAf1E,EAClCvf,EAAWv7B,EAAGtB,IAAI,mBAAmBA,IAAI2C,EAAMo+C,EAAAA,EAAAA,SACrD,OAAOlkB,GAAYr+B,KAAKwB,IAAI68B,EAAUiV,EAAOtgC,IAiB/CyvC,aA/VF,SA+Vet+C,GAA6B,IAAvBwS,EAAuB,uDAAf,GAAI/N,EAAW,uDAAJ,GAC9B0qC,EAAQ1qC,EAAK0qC,OAAS,GACtBtgC,EAAQpK,EAAKg1C,WAAa96C,EAAGw/C,kBAC7BjU,EAAKvrC,EAAGtB,IAAI,mBACZ68B,EAAWgQ,EAAGxnC,IAAI,CAAE1C,KAAAA,EAAM7C,KAAMihD,EAAAA,EAAAA,aAChC9qB,EAAOz3B,KAAK6G,IAAIw3B,EAAUiV,EAAOtgC,GAEvC,OADAykB,EAAKyqB,SAASvrC,EAAO/N,GACd6uB,GAaTirB,aAnXF,SAmXev+C,GAAiB,IAAXyE,EAAW,uDAAJ,GAClB0qC,EAAQ1qC,EAAK0qC,OAAS,GACtBtgC,EAAQpK,EAAKg1C,WAAa96C,EAAGw/C,kBAC7BjkB,EAAWv7B,EAAGtB,IAAI,mBAAmBA,IAAI2C,EAAMo+C,EAAAA,EAAAA,YACrD,OAAOlkB,GAAYr+B,KAAKwB,IAAI68B,EAAUiV,EAAOtgC,IAc/C9P,OArYF,SAqYSu0B,EAAM7uB,GACX,IAAM2Y,GAAWrI,EAAAA,EAAAA,UAASue,GAAQz3B,KAAKoiD,SAAS3qB,GAAQA,EAClDx1B,EAASjC,KAAK6P,SAAS3M,OAAOqe,EAAU3Y,GAC9C,OAAOoS,EAAAA,EAAAA,SAAQ/Y,GAAUA,EAAS,CAACA,IAOrCigC,MA/YF,WA+YmB,IAAXt5B,EAAW,uDAAJ,GAEX,OADA5I,KAAK6P,SAAS4B,MAAM,KAAM7I,GACnB5I,MAGT2iD,kBApZF,SAoZoBhoC,GAAgB,IAAX/R,EAAW,uDAAJ,GACtB0qC,EAA8B1qC,EAA9B0qC,MAAOsK,EAAuBh1C,EAAvBg1C,UAAWn8B,EAAY7Y,EAAZ6Y,QACpBA,IACF6xB,EAAQxwC,EAAGtB,IAAI,UAAY,GAC3Bo8C,EAAY96C,EAAGw/C,mBAEjB,IAAM38C,EAAKgV,EAAI8S,QACT6J,EAAQt3B,KAAK6P,SAASmmB,QAAO,SAAA8H,GACjC,KAAKhZ,EAAAA,EAAAA,aAAYwuB,IAAUxV,EAAEt8B,IAAI,WAAa8xC,MACzCxuB,EAAAA,EAAAA,aAAY84B,IAAc9f,EAAEt8B,IAAI,eAAiBo8C,GACtD,OAAO9f,EAAE8kB,uBAAF,WAA+Bj9C,MAExC,OAAO2xB,GAQT9vB,OAxaF,WA8aI,OALAk5C,GAAaA,EAAUx9C,UACvBw9C,EAAY,IAAIj6B,EAAAA,EAAa,CAC3BhkB,WAAY60B,EACZ50B,OAAQmG,KAEOrB,SAAS3D,IAG5B2O,QAjbF,WAkbI8kB,EAAM7lB,QACN6lB,EAAM7kB,gBACNiuC,GAAaA,EAAUx9C,SACvB,CAACJ,EAAIw0B,EAAOopB,GAAWj0C,SAAQ,SAAArC,GAAC,OAAS,QACzCvB,EAAI,Q,ijBCheWg6C,EAAAA,SAAAA,I,wHACnB,WACE,MAAO,U,wBAGT,WAAmB,IAARtgD,EAAQ,uDAAJ,GACbvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B,IAAQO,EAAUjD,KAAViD,MACRjD,KAAKgD,SAASC,EAAO,SAAUjD,KAAKwH,QACpCxH,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKgD,SAASC,EAAMzB,IAAI,aAAc,SAAUxB,KAAKwH,U,oBAGvD,WACE,IAAQvE,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACTk6C,EAAY96C,EAAMzB,IAAI,aAE5B,OADAqC,EAAGC,UAAYb,EAAM6/C,MAAM,CAAE/E,UAAAA,IACtB/9C,S,EAjBU6iD,CAAoB7+C,EAAAA,M,4bCApB++C,EAAAA,SAAAA,I,+HACnB,WACE,OAAO76C,SAAS86C,eAAe,M,oBAGjC,WACE,IAAM//C,EAAQjD,KAAKiD,MACb86C,EAAY96C,EAAMzB,IAAI,aAE5B,OADAxB,KAAK6D,GAAGkS,YAAc9S,EAAMs7B,eAAe,CAAEwf,UAAAA,IACtC/9C,S,EATU+iD,CAAyBF,G,wbCG9C,IAAMI,EAAa,SAACtgD,EAAKqU,GAAN,gBAAmBrU,GAAnB,OAAyBqU,EAAQ,IAAH,OAAOqW,WAAWrW,IAAW,KAEzDyP,EAAAA,SAAAA,I,2HACnB,SAAWlkB,GACT,IAAMG,EAASH,EAAEG,QAAU,GAC3B1C,KAAKm9B,QAAU,GACfn9B,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK+C,UAAY/C,KAAK2C,IAAM,QAC5B,IAAM8B,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAKwH,U,mBAQpC,SAAMvE,GACJjD,KAAKkjD,gBAAgBjgD,K,6BAUvB,SAAgBA,EAAOmE,GAErB,GAAKpH,KAAKmjD,cAAV,CAIA,IAGI77C,EAAUnE,EAHRkE,EAAWD,GAAc,KAEzBwB,EAAO,CAAE3F,MAAAA,EAAOP,OADH1C,KAAX0C,QAOR,GAAgC,cAA5BO,EAAMzB,IAAI,cAA+B,CAC3C,IAAM+7B,EAASt6B,EAAMu6B,YACjB4lB,EAAWpjD,KAAKm9B,QAAQI,GAE5B,IAAK6lB,EAAU,CACb,IAAMC,EAAUn7C,SAAS0lB,cAAc,SACvCw1B,EAAWl7C,SAAS86C,eAAe,IACnCK,EAAQ57C,YAAYS,SAAS86C,eAAT,UAA2BzlB,EAA3B,OACpB8lB,EAAQ57C,YAAY27C,GACpBC,EAAQ57C,YAAYS,SAAS86C,eAAT,MACpBhjD,KAAKm9B,QAAQI,GAAU6lB,EACvB97C,EAAW+7C,EAGblgD,EAAO,IAAI4/C,EAAiBn6C,GAC5Bw6C,EAASE,WAAWngD,EAAKqE,SAAS3D,GAAGkS,kBAGrCzO,GADAnE,EAAO,IAAI0/C,EAAYj6C,IACPpB,SAAS3D,GAG3B,IAAM0/C,EAAUvjD,KAAK+C,UACf66C,EAAY36C,EAAMzB,IAAI,aACtBgiD,EAAiBP,EAAWM,GAC9BE,EAAUD,EAQd,GAJI5F,IACF6F,EAAUR,EAAWM,EAASvjD,KAAK0jD,cAAc9F,KAG/Ct2C,EAAU,CACZ,IACIq8C,EADE1zC,EAAY5I,GAAYrH,KAAK6D,GAKnC,IACE8/C,EAAY1zC,EAAUlJ,cAAV,WAA4B08C,IACxC,MAAOv+C,IAEJy+C,IACHA,EAAY1zC,EAAUlJ,cAAV,WAA4By8C,KAG1CG,EAAUl8C,YAAYH,GAGxB,OAAOA,K,2BAGT,SAAcs2C,GACZ,OAAOA,GAAaA,EAAU7xC,QAAV,WAAsB/L,KAAK8C,GAAGoN,UAAU,kBAAxC,MAA+D,IAAInE,QAAQ,IAAK,M,oBAGtG,WAAS,WACP/L,KAAKmjD,cAAgB,EACrBnjD,KAAKm9B,QAAU,GACf,IAAQr6B,EAAmC9C,KAAnC8C,GAAI6B,EAA+B3E,KAA/B2E,IAAK5B,EAA0B/C,KAA1B+C,UAAWN,EAAezC,KAAfyC,WACtBuW,EAAO9Q,SAASC,yBACtBxD,EAAIoD,QAGJ,IAAM67C,EAAM9gD,EAAGtB,IAAI,iBAAiBqO,SAASg0C,MAAM,YAOnD,OANAD,EAAI9kB,OAAM,SAAAglB,GAAE,OAAIA,MAAOF,EAAIG,QAAQ,GACnCH,EAAIn3C,SAAQ,SAAAq3C,GAAE,OAAI9qC,EAAKvR,aAAYob,EAAAA,EAAAA,IAAS,MAAO,CAAEld,GAAIs9C,EAAWlgD,EAAW+gD,SAE/ErhD,EAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,EAAO+V,MACrDrU,EAAIqD,OAAOgR,GACXrU,EAAIiI,KAAK,QAAS7J,GACX/C,S,EAlHUymB,CAAqBziB,EAAAA,O,yOCP1C,SAEEg9B,QAAS,KAGTme,QAAS,CACP,CACEx5C,GAAI,UACJxB,KAAM,UACN9B,MAAO,IAET,CACEsD,GAAI,SACJxB,KAAM,SACN9B,MAAO,QACP2hD,WAAY,SAEd,CACEr+C,GAAI,kBACJxB,KAAM,mBACN9B,MAAO,QACP2hD,WAAY,SAEd,CACEr+C,GAAI,iBACJxB,KAAM,kBACN9B,MAAO,QACP2hD,WAAY,W,kfCjBGC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL9/C,KAAM,GACN9B,MAAO,KACPD,OAAQ,GACR4hD,WAAY,KACZE,SAAU,Q,wBAId,WAAa,WACgB,OAA3BlkD,KAAKwB,IAAI,eAA0BxB,KAAK2D,IAAI,aAAc3D,KAAKwB,IAAI,UAC7C,OAAtBxB,KAAKwB,IAAI,UAAqBxB,KAAK2D,IAAI,QAAS3D,KAAKwB,IAAI,gBACxDxB,KAAKwB,IAAI,aAAexB,KAAK2D,IAAI,WAAY0pB,WAAWrtB,KAAKwB,IAAI,gBAAkB,GACpE,CAAC,QAAS,SAAU,cAC5BiL,SAAQ,SAAA8pB,GAAI,OAAI,EAAK4tB,UAAU5tB,Q,uBAGzC,SAAUA,GACR,IAAMutB,EAAK9jD,KAAKwB,IAAI+0B,IAAS,IACblJ,WAAWy2B,IAAO,GAAGhrB,aAAegrB,EAAGhrB,YAC7C94B,KAAK2D,IAAI4yB,EAAT,UAAkButB,EAAlB,S,qBAGZ,WACE,OAAO9jD,KAAKwB,IAAI,SAAWxB,KAAKwB,IAAI,Q,2BAGtC,WACE,OAAOxB,KAAKwB,IAAI,eAAiB,O,EA9BhByiD,C,QAAepiD,G,scCPfuiD,EAAAA,SAAAA,I,2HACnB,SAAWrkC,EAAMif,GACf,IAAM3T,EAAMgR,OAAOC,UACnB,OAAQ0C,EAAMx9B,IAAI,aAAe6pB,IAAQtL,EAAKve,IAAI,aAAe6pB,K,uBAGnE,WACE,OAAOrrB,KAAK8hB,W,EAPKsiC,CAAgB5+C,EAAAA,YAWrC4+C,EAAQtiD,UAAUmB,MAAQghD,E,qdCXLI,EAAAA,SAAAA,I,yHACnB,YAA0B,IAAfzhD,EAAe,EAAfA,KAAMkQ,EAAS,EAATA,MACf,OAAO5O,EAAAA,EAAAA,GAAP,yZACgBtB,EAAqBkQ,EACrBlQ,EAAaA,EACbA,EACOA,EAELA,EACEA,EAGoBA,K,oBAI1C,WACE,MAAO,CACL0hD,OAAQ,kB,wBAIZ,SAAW/hD,GACTvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAKoF,OAAO,UAAYpF,KAAK4C,KAAO,aAAe5C,KAAKukD,SACxDvkD,KAAKgD,SAAShD,KAAK8C,GAAI,gBAAiB9C,KAAKwkD,cAC7CxkD,KAAKiJ,mB,sBAQP,c,0BAMA,WACE,IAAInG,EAAK9C,KAAK8C,GACd,GAAIA,EAAI,CACN,IAAI2hD,EAAQzkD,KAAK0kD,UACbt7C,EAAMq7C,EAAQA,EAAMr7C,MAAQ,GAChCtG,EAAGa,IAAI,SAAUyF,M,0BAQrB,WACE,IAAItG,EAAK9C,KAAK8C,GACV2hD,EAAQzkD,KAAK0kD,UACjB,GAAI5hD,GAAMA,EAAG2a,gBAAkBgnC,EAAO,CACpC,IAAIjnC,EAAS1a,EAAG2a,iBACZtZ,EAAOqZ,EAASA,EAAOhc,IAAI,MAAQ,GACvCijD,EAAMr7C,IAAIjF,M,wBASd,WACE,IAAQ1B,EAAmBzC,KAAnByC,WAAYK,EAAO9C,KAAP8C,GAChBb,EAAS,GAQb,OANAQ,EAAW2F,MAAK,SAAAoV,GACd,MAAqBA,EAAOnK,WAApBlP,EAAR,EAAQA,KAAMwB,EAAd,EAAcA,GACRmN,EAAShQ,GAAMA,EAAGkD,GAAKlD,EAAGkD,EAAH,gCAA8BL,KAAUxB,EACrElC,GAAU,mBAAJ,OAAsB0D,GAAMxB,EAA5B,cAAqC2O,EAArC,gBAGD7Q,I,oBAGT,WACE,IAAQa,EAAsB9C,KAAtB8C,GAAIF,EAAkB5C,KAAlB4C,KAAM+B,EAAY3E,KAAZ2E,IAAKd,EAAO7D,KAAP6D,GACjBiP,EAAQhQ,GAAMA,EAAGkD,GAAKlD,EAAGkD,EAAE,wBAMjC,OALArB,EAAIT,KAAKlE,KAAK+D,SAAS,CAAEnB,KAAAA,EAAMkQ,MAAAA,KAC/B9S,KAAK0kD,UAAY//C,EAAImD,KAAJ,WAAalF,EAAb,YACjB5C,KAAK0kD,UAAU18C,OAAOhI,KAAK2kD,cAC3B3kD,KAAK0kD,UAAUt7C,IAAItG,EAAGtB,IAAI,WAC1BqC,EAAGd,UAAH,UAAkBH,EAAlB,aACO5C,S,EA3FUqkD,CAAoBrgD,EAAAA,M,qkBCsClC,IAAM+J,EAAQ,SACRC,EAAQ,GAAH,OAAMD,EAAN,KACLE,EAAW,GAAH,OAAMD,EAAN,UACR42C,EAAiB,GAAH,OAAM32C,EAAN,WACdC,EAAW,GAAH,OAAMF,EAAN,UACRG,EAAQ,GAAH,OAAMH,EAAN,OACL62C,EAAc,GAAH,OAAM12C,EAAN,WACXC,EAAW,GAAH,OAAMJ,EAAN,UACRK,EAAiB,GAAH,OAAMD,EAAN,WACrB02C,EAAS,gBAEf,mBACE,IACI3F,EACAh8C,EAFA0F,EAAI,GAIR,cACKmG,EAAAA,GADL,IAGE7K,KAAM,gBAEN8/C,OAAAA,EAEAG,QAAAA,EAEAh/C,OAAQ,CACNyI,IAAKE,EACLzJ,OAAQ2J,EAERiB,OAAQhB,EACRrH,IAAKsH,EAELjL,OAAQkL,EACRe,aAAcd,GAGhBjL,KApBF,WAoBoB,WAAbV,EAAa,uDAAJ,GAEZ,EADAmG,EAAI,EAAH,KAAQ4G,GAAa/M,GACdI,EAAR,EAAQA,GAUR,OARAq8C,EAAU,IAAIiF,EACdv7C,EAAEs2C,QAAQ1yC,SAAQ,SAAAs4C,GAAE,OAAI,EAAKl+C,IAAIk+C,MACjC/kD,KAAK8C,GAAKA,EACV9C,KAAK6N,IAAMsxC,EACXn/C,KAAKsE,OAAOuE,EAAEm4B,SAAWme,EAAQr4C,GAAG,IACpC9G,KAAK0P,eACL5M,EAAG6M,GAAGm1C,EAAQ9kD,KAAKglD,UAAWhlD,MAEvBA,MAGTglD,UAnCF,SAmCY7yC,EAAG8yC,EAAUr8C,GACrB,IAAQ9F,EAAe9C,KAAf8C,GAAIsC,EAAWpF,KAAXoF,OACNswB,EAASvjB,EAAEuP,SAAS,UACpBwjC,EAAYllD,KAAKwB,IAAIyjD,GACrB35C,EAAKlG,EAAOd,OAClBxB,EAAG4B,QAAQ4G,EAAI45C,EAAWllD,KAAKwB,IAAIk0B,IACnC11B,KAAK08C,gBAAgBpxC,EAAI45C,EAAWt8C,IAsBtC/B,IA/DF,SA+DM+U,GAAqB,IACnB3Z,EADKO,EAAc,uDAAJ,GAEfoG,EAAOpG,EAGX,IAAI0W,EAAAA,EAAAA,UAAS0C,GAAQ,CACnB,IAAMvZ,EAAQG,EAEdP,EAAS,EAAH,KADN2G,EAAOmb,UAAU,IAAM,IACjB,IAEJpe,GAAIiW,EACJzX,KAAMyE,EAAKzE,MAAQyX,EACnBvZ,MAAAA,SAGFJ,EAAS2Z,EAOX,OAJK3Z,EAAO0D,KACV1D,EAAO0D,GAAK1D,EAAOkC,MAAQnE,KAAKi9C,aAG3BkC,EAAQt4C,IAAI5E,EAAQ2G,IAY7BpH,IAjGF,SAiGMmE,GAGF,OADe3F,KAAK6P,SAASmmB,QAAO,SAAAuU,GAAC,OAAIA,EAAE/oC,IAAI,UAAYmE,KAAI,IAC9Cw5C,EAAQ39C,IAAImE,IAAO,MAatCzC,OAjHF,SAiHSsa,GAAmB,IAAX5U,EAAW,uDAAJ,GACpB,OAAO5I,KAAK8Q,SAAS0M,EAAQ5U,IAW/Bw2C,WA7HF,WA8HI,OAAOD,EAAQ7uC,QAYjBhM,OA1IF,SA0ISkZ,GAAmB,IAAX5U,EAAW,uDAAJ,GACdyf,GAAKnP,EAAAA,EAAAA,UAASsE,GAAUxd,KAAKwB,IAAIgc,GAAUA,EAEjD,OADA6K,GAAMroB,KAAK8C,GAAGa,IAAI,SAAU0kB,EAAG7mB,IAAI,MAAOoH,GACnC5I,MASToM,YAtJF,WAuJI,OAAOpM,KAAKwB,IAAIxB,KAAK8C,GAAGtB,IAAI,YAG9BqO,OA1JF,WA2JI,OAAOsvC,GAGT33C,OA9JF,WAoKI,OALArE,GAAQA,EAAKD,UACbC,EAAO,IAAIkhD,EAAY,CACrB5hD,WAAY08C,EACZz8C,OAAQmG,KAEErB,SAAS3D,IAGvB2O,QAvKF,WAwKI2sC,EAAQ1sC,gBACR0sC,EAAQ1tC,QACRtO,GAAQA,EAAKD,SACb,CAACi8C,EAASh8C,GAAMsJ,SAAQ,SAAArC,GAAC,OAAS,QAClCvB,EAAI,Q,uGCrOV,SACE1I,YAAa,QAGbuU,WAAY,GAGZywC,oBAAqB,EAqBrBC,UAAW,EAIXC,aAAc,CACZ,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,WACA,OACA,QACA,SACA,QACA,Q,+gBC9CiBC,EAAAA,SAAAA,I,wHACnB,WACE,MAAO,U,EAFUA,CAA6BC,EAAAA,G,ylBCClD,QAAeC,EAAAA,GAAAA,OACb,CACE/1C,SAAU,EAAF,KACH+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAM,OACNslB,QAAS,KACT3R,UAAW,CAAC,SAGhB,CACEkgB,YAAa,SAAAtxB,GAAE,MAAI,CAAC,KAAM,MAAM8Q,SAAQ2kC,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAa,KCXxE,EAAe2+B,EAAAA,EAAAA,OAAqB,I,qkBCGpC,QAAeC,EAAAA,GAAAA,OACb,CACE/1C,SAAU,OACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAEN5+B,QANU,KAOV3R,UAAW,CAAC,QAAS,QAAS,SAC9BqG,UAAW,CAAC,KAAM,SAGtB,CACE6Z,YAAa,SAAAtxB,GAAE,MAZH,QAYOy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,YCbtC,EAAe2+B,EAAAA,EAAAA,OAAqB,I,qkBCCpC,IAAMjkD,EAAO,QAEb,QAAekkD,EAAAA,GAAAA,OACb,CACE/1C,SAAU,OACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAAA,EACAslB,QAAStlB,EACTga,UAAW,CAAC,QAAS,QAAS,WAGhC+lB,WARF,SAQa9+B,EAAGsqB,GACZ24B,EAAAA,GAAAA,UAAAA,WAAAA,MAAqCxlD,KAAM+jB,WAC3C,IAAMrP,EAAa1U,KAAKwB,IAAI,eAC3BkT,EAAWzN,QAAUyN,EAAW7N,IAAI,CAAEvF,KAAM,YAGjD,CACE6zB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,KCnBnD,EAAeikD,EAAAA,EAAAA,OAAqB,CAClCngD,OAAQ,K,qkBCAV,IAAM9D,EAAO,QAEb,QAAekkD,EAAAA,GAAAA,OACb,CACE/1C,SAAU,OACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAAA,EACAslB,QAAStlB,EACT2T,UAAW,CAAC,SACZqG,UAAW,CAAC,MACZmqC,QAAS,EACTC,KAAM,IAGRrkB,WAXF,SAWa9+B,EAAGsqB,GACZ24B,EAAAA,GAAAA,UAAAA,WAAAA,MAAqCxlD,KAAM+jB,WAC3C,IAAMrP,EAAa1U,KAAKwB,IAAI,cACxBikD,EAAUzlD,KAAKwB,IAAI,WACnBkkD,EAAO1lD,KAAKwB,IAAI,QAGpB,IAAKkT,EAAWzN,OAAQ,CAGtB,IAFA,IAAM0+C,EAAY,GAEXD,KAAQ,CAIb,IAHA,IAAME,EAAe,GACjBC,EAAMJ,EAEHI,KACLD,EAAah4C,KAAK,CAChBtM,KAAM,OACNu7B,QAAS,CAAC,UAId8oB,EAAU/3C,KAAK,CACbtM,KAAM,MACNu7B,QAAS,CAAC,OACVnoB,WAAYkxC,IAIhBlxC,EAAW7N,IAAI8+C,MAIrB,CACExwB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,K,qkBC/CnD,IAAMA,EAAO,QAEb,QAAewkD,EAAmBvtB,OAChC,CACE9oB,SAAU,OACLq2C,EAAmBhkD,UAAU2N,UAD1B,IAENnO,KAAAA,EACAslB,QAAStlB,KAGb,CACE6zB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,KCZnD,EAAeikD,EAAAA,EAAAA,OAAqB,ICApC,EAAeA,EAAAA,EAAAA,OAAqB,I,qkBCCpC,IAAMjkD,EAAO,QAEb,QAAewkD,EAAmBvtB,OAChC,CACE9oB,SAAU,OACLq2C,EAAmBhkD,UAAU2N,UAD1B,IAENnO,KAAAA,EACAslB,QAAStlB,KAGb,CACE6zB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,KCZnD,EAAeikD,EAAAA,EAAAA,OAAqB,I,qkBCEpC,IAAMQ,EACJ,4HAEF,QAAeP,EAAAA,GAAAA,OACb,CACE/1C,SAAU,OACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAM,QACNslB,QAAS,MACTo/B,MAAM,EACN1qC,UAAW,EACX2qC,SAAU,EACVC,cAAe,EACfzR,UAAW,CAAE0R,aAAc,GAC3BC,OAAQ,CAAC,OAET7kD,IAAK,QAAF,OAAUwkD,EAAV,2JAMHM,SAAU,QAAF,OAAUN,EAAV,6LAKR94C,KAAM,KAGRo0B,WA1BF,SA0Ba9+B,EAAGsqB,GACZ24B,EAAAA,GAAAA,UAAAA,WAAAA,MAAqCxlD,KAAM+jB,WAC3C,MAAgB/jB,KAAKwB,IAAI,cAAjBD,EAAR,EAAQA,IACJA,GAAKvB,KAAK2D,IAAI,MAAOpC,EAAK,CAAEiY,OAAQ,KAG1C8sC,YAhCF,WAgCuB,2BAANplB,EAAM,yBAANA,EAAM,gBACnBskB,EAAAA,GAAAA,UAAAA,YAAAA,MAAsCxlD,KAAMkhC,GAC5C,IAAMp+B,EAAK9C,KAAK8C,GAEhB,GAAIA,EAAI,CACN,IAAI2N,EAAM3N,EAAGtB,IAAI,YACby/B,EAAU,eAGd,GAAIxwB,EAAI+wB,IAAIP,GAAU,CAIpB,IAHA,IAAIslB,GAAgB,EAChBC,EAAKxmD,KAAKwB,IAAI,WAET4I,EAAI,EAAGA,EAAIo8C,EAAGv/C,OAAQmD,IAC7B,GAAsB,iBAAlBo8C,EAAGp8C,GAAGk3B,QAA4B,CACpCilB,GAAgB,EAChB,MAICA,IACHC,EAAG54C,KAAK,CACNyF,WAAY,CAAEwC,MAAO,gBACrByrB,QAASL,IAEXjhC,KAAK2D,IAAI,UAAW6iD,OAW5BC,cApEF,WAoEyB,2BAANvlB,EAAM,yBAANA,EAAM,gBACrB,IAAMt0B,EAAO44C,EAAAA,GAAAA,UAAAA,cAAAA,MAAwCxlD,KAAMkhC,GACrD3/B,EAAMvB,KAAK0mD,eAEjB,OADInlD,IAAKqL,EAAKrL,IAAMA,GACbqL,GAGT85C,aA3EF,WA2EyB,IAAV75B,EAAU,uDAAJ,GACXtrB,EAAMvB,KAAKwB,IAAIqrB,EAAIw5B,SAAW,WAAa,QAAU,GACvDpkD,EAASV,EAMb,OAJIA,GAA4B,SAArBA,EAAIolD,OAAO,EAAG,KACvB1kD,EAAS,6BAAH,OAAgClC,OAAO6mD,KAAKrlD,KAG7CU,GAGT4kD,aAtFF,WAuFI,OAAO7mD,KAAKwB,IAAI,UAAWS,EAAAA,EAAAA,QAAOjC,KAAM,YAAYuB,KAStDi2B,OAhGF,WAgGkB,2BAAN0J,EAAM,yBAANA,EAAM,gBACd,IAAM5vB,EAAMk0C,EAAAA,GAAAA,UAAAA,OAAAA,MAAiCxlD,KAAMkhC,GAKnD,OAJI5vB,EAAI+B,YAAc/B,EAAI/P,MAAQ+P,EAAI+B,WAAW9R,YACxC+P,EAAI/P,IAGN+P,GASTw1C,SA/GF,SA+GWC,GACP,IAAIljD,EAAKqE,SAAS0lB,cAAc,KAChC/pB,EAAG6c,KAAOqmC,EAGV,IAFA,IAAIC,EAAQ,GACRC,EAAMpjD,EAAGqjD,OAAOvxB,UAAU,GAAGl0B,MAAM,KAC9B2I,EAAI,EAAGA,EAAI68C,EAAIhgD,OAAQmD,IAAK,CACnC,IAAI+8C,EAAOF,EAAI78C,GAAG3I,MAAM,KACpB0C,EAAOijD,mBAAmBD,EAAK,IAC/BhjD,IAAM6iD,EAAM7iD,GAAQijD,mBAAmBD,EAAK,KAElD,MAAO,CACLE,SAAUxjD,EAAGwjD,SACbC,SAAUzjD,EAAGyjD,SACbC,SAAU1jD,EAAG0jD,SACbL,OAAQrjD,EAAGqjD,OACXM,KAAM3jD,EAAG2jD,KACTC,KAAM5jD,EAAG4jD,KACTT,MAAAA,KAIN,CACE7xB,YAAa,SAAAtxB,GAAE,MAAgC,SAA5By1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,Y,qkBCzItC,SAAe4+B,EAAAA,OACb,CACE/1C,SAAU,OACL+1C,EAAAA,UAAAA,UADG,IAENlkD,KAAM,MACNC,IAAK,GACLykD,KAAM,EACN0B,OAAQ,+BACR9gC,QAAS,SACTgS,QAAS,IACT+uB,QAAS,GACThrC,KAAM,IACNtJ,WAAY,CAAEu0C,YAAa,GAC3BpR,QAASqR,EAAAA,GAAAA,UAAAA,SAAAA,QACTzB,OAAQ,CACN,CACEtzC,MAAO,UACP3O,KAAM,UACN2jD,YAAa,iBACbC,WAAY,GAEd,CACEzmD,KAAM,SACNwR,MAAO,WACP3O,KAAM,UACN4jD,WAAY,EACZvlD,QAAS,CACP,CAAEqD,MAAO,IAAK1B,KAAM,WACpB,CAAE0B,MAAO,IAAK1B,KAAM,eAGxB,CACE2O,MAAO,OACP3O,KAAM,OACN7C,KAAM,QACNgqB,IAAK,IACLD,IAAK,KACL08B,WAAY,MAKlB1mB,WAzCF,SAyCa9+B,EAAGsqB,GACR7sB,KAAKwB,IAAI,OAAQxB,KAAKgoD,eACrBhoD,KAAKioD,YACVzC,EAAAA,UAAAA,WAAAA,MAAqCxlD,KAAM+jB,WAC3C/jB,KAAKgD,SACHhD,KACA,4CACAA,KAAKioD,YAITA,UApDF,WAqDIjoD,KAAK2D,IAAI,MAAO3D,KAAKkoD,cAQvBA,UA7DF,WA8DI,IAAI7/B,EAAKroB,KACLmoD,EAAO9/B,EAAG7mB,IAAI,WACdmb,EAAO0L,EAAG7mB,IAAI,QACdF,EAAO+mB,EAAG7mB,IAAI,WAElB2mD,EAAOA,EAAO,MAAQA,EAAO,GAC7BxrC,EAAOA,EAAO,MAAQA,EAAO,GAC7Brb,EAAOA,EAAO,MAAQA,EAAO,GAC7B,IAAIW,EAASomB,EAAG7mB,IAAI,UAAY,IAAM2mD,EAAOxrC,EAAOrb,EAEpD,OADAW,GAAU,iBAQZ+lD,aA/EF,WAgFI,IACII,EADMpoD,KAAK8mD,SAAS9mD,KAAKwB,IAAI,QACpBwlD,MACToB,EAAGjpB,GAAGn/B,KAAK2D,IAAI,UAAWykD,EAAGjpB,GAC7BipB,EAAGC,GAAGroD,KAAK2D,IAAI,OAAQykD,EAAGC,GAC1BD,EAAGpiD,GAAGhG,KAAK2D,IAAI,UAAWykD,EAAGpiD,KAGrC,CASEmvB,YATF,SASctxB,GACV,IAAI5B,EAAS,GAOb,MAL6B,WAA3Bq3C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,UACf,oBAAoB0hC,KAAKzkD,EAAGtC,OAE5BU,EAAS,CAAEX,KAAM,MAAOC,IAAKsC,EAAGtC,MAE3BU,K,QC1Gb,SAAesjD,EAAAA,EAAAA,OAAqB,CAClC3+B,QAAS,MAETxhB,OAAQ,CACNE,SAAU,WACVD,MAAO,aACPkE,MAAO,UACP0H,KAAM,SACN2C,UAAW,UAGbytB,WAXkC,SAWvB9+B,GACTgjD,EAAAA,EAAAA,UAAAA,WAAAA,MAAyCvlD,KAAM+jB,WAC/C/jB,KAAKgD,SAAShD,KAAKiD,MAAO,aAAcjD,KAAKioD,WAC7CjoD,KAAKuoD,WAAL,UAAqBvoD,KAAK4C,KAA1B,aACA5C,KAAKwoD,aAMPA,UArBkC,WAsBhC,IAAIxoD,KAAKyoD,SAAS7yB,UAAlB,CACA,IAAQ3yB,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACTmK,EAAOhK,EAAMzB,IAAI,QAEvB,GAAIyL,GAAQnK,EAAI,CACd,IAAMwF,EAAKxF,EAAGtB,IAAI,gBAAgBgQ,eAClClJ,MAAAA,GAAAA,EAAI1H,WAAW,CAAEoJ,aAAc,CAAED,MAAO,CAACkD,MAAW,SAAA9D,GAClD,IAAMmI,EAAMnI,GAAOA,EAAIW,MAAQX,EAAIW,KAAK,GAClCvI,EAAM+P,KAAQ4H,EAAAA,EAAAA,UAAS5H,GAAOA,EAAMA,EAAI/P,KAC9CA,GAAO0B,EAAMU,IAAI,CAAEpC,IAAAA,OAErB0B,EAAMU,IAAI,OAAQ,OAQtBskD,UAzCkC,WA0ChC,IAAQhlD,EAA2BjD,KAA3BiD,MAAOslD,EAAoBvoD,KAApBuoD,WAAY5jD,EAAQ3E,KAAR2E,IACrBpD,EAAM0B,EAAMyjD,eACZgC,EAAYnnD,IAAQ0B,EAAM4jD,eAChC5jD,EAAM0lD,cAAc,CAAEpnD,IAAAA,IACtBoD,EAAI+jD,EAAY,cAAgB,YAAYH,IAQ9CK,SAtDkC,SAsDzBt9C,GACPA,GAAMA,EAAGa,kBACT,IAAQrJ,EAAc9C,KAAd8C,GAAIG,EAAUjD,KAAViD,MACNK,EAAKR,GAAMA,EAAGtB,IAAI,gBAEpB8B,GAAML,EAAMzB,IAAI,aAClB8B,EAAG8L,KAAK,CACN9K,OADM,SACCiM,EAAOC,GACZvN,EAAMU,IAAI,CAAEpC,IAAKgP,EAAMs4C,WACvBr4C,GAAYlN,EAAG2B,SAEjBvB,OAAQT,EACRyC,MAAO,CAAC,SACRonC,OAAQ,aAKdgc,QAxEkC,WAyEhC,IAAMzC,EAAWrmD,KAAKiD,MAAMyjD,aAAa,CAAEL,SAAU,IACjDA,IAAUrmD,KAAK6D,GAAGtC,IAAM8kD,IAG9Bt0C,OA7EkC,WA+EhC/R,KAAK8C,GAAG4B,QAAQ,wBAGlBqkD,OAlFkC,SAkF3Bz9C,GAEL,OADAA,EAAGjF,kBACI,GAGTmB,OAvFkC,WAyFhC,GADAxH,KAAKgpD,mBACDhpD,KAAKyoD,SAAS7yB,UAAW,OAAO51B,KACpCA,KAAKioD,YACL,IAAQtjD,EAAe3E,KAAf2E,IAAK1B,EAAUjD,KAAViD,MACP2S,EAAMjR,EAAIiI,KAAK,UAAY,GAIjC,OAHC3J,EAAMzB,IAAI,QAAUmD,EAAIiI,KAAK,QAAS,UAAGgJ,EAAH,YAAU5V,KAAKuoD,YAAa9hD,QACnEzG,KAAKgS,aAEEhS,QChGX,GAAeulD,GAAAA,OAAqB,CAClC3+B,QAAS,MAETxhB,OAAQ,GAERi8B,WALkC,SAKvB9+B,GACTgjD,GAAAA,UAAAA,WAAAA,MAAyCvlD,KAAM+jB,WAC/C/jB,KAAKuoD,WAAavoD,KAAK4C,KAAO,WAOhCqlD,UAdkC,WAehCjoD,KAAKipD,YAAY1nD,IAAMvB,KAAKiD,MAAMzB,IAAI,QAGxCynD,UAlBkC,WAmBhC,IAAKjpD,KAAKkpD,OAAQ,CAChB,IAAIC,EAAOjhD,SAAS0lB,cAAc,UAClCu7B,EAAK5nD,IAAMvB,KAAKiD,MAAMzB,IAAI,OAC1B2nD,EAAKC,YAAc,EACnBD,EAAKxyC,MAAMvU,OAAS,OACpB+mD,EAAKxyC,MAAMtU,MAAQ,OACnB8mD,EAAKpmD,UAAY/C,KAAK4C,KAAO,aAC7B5C,KAAKkpD,OAASC,EAEhB,OAAOnpD,KAAKkpD,QAGd1hD,OA/BkC,WA+BlB,2BAAN05B,EAAM,yBAANA,EAAM,gBAId,OAHAqkB,GAAAA,UAAAA,OAAAA,MAAqCvlD,KAAMkhC,GAC3ClhC,KAAKqpD,gBACLrpD,KAAK6D,GAAG4D,YAAYzH,KAAKipD,aAClBjpD,Q,sgCCpCUspD,GAAAA,SAAAA,I,oGAAAA,CAAsB9D,EAAAA,I,kgCAE3C8D,GAAcxnD,UAAU2N,SAAxB,SACK+1C,EAAAA,GAAAA,eADL,IAEElkD,KAAM,OACNga,WAAW,EACX2qC,UAAU,ICJZ,IAAM3kD,GAAO,OAEQioD,GAAAA,SAAAA,I,oGAAAA,CAAsBD,IAE3CC,GAAcznD,UAAU2N,SAAxB,SACK65C,GAActnD,eADnB,IAEEV,KAAAA,GACAslB,QAAS,IACTw/B,OAAQ,CAAC,QAAS,OAAQ,YAG5BmD,GAAcp0B,YAAc,SAACtxB,GAAkB,IACzC5B,EAD2B2G,EAAc,uDAAP,GAGtC,GAAgC,OAA5B0wC,EAAAA,EAAAA,aAAYz1C,EAAG+iB,SAAkB,CACnC,IAAM4iC,EAAW5gD,EAAK4gD,UAAY,GAClCvnD,EAAS,CAAEX,KAAAA,GAAM2kD,UAAU,GAI3B,IAAMlhB,EAAWlhC,EAAGu1C,WACdlR,EAAMnD,EAAS99B,OAChBihC,UAAYjmC,EAAOgkD,UAExBx5C,EAAAA,EAAAA,SAAQs4B,GAAU,SAAA0kB,GAChB,IAAQ7iC,EAAY6iC,EAAZ7iC,SAEa,GAAlB6iC,EAAMC,UAA8C,KAA7BD,EAAM1zC,YAAYtP,QACzCmgB,GAAW4iC,EAAS70C,SAAQ2kC,EAAAA,EAAAA,aAAY1yB,KAAa,WAE/C3kB,EAAOgkD,YAKpB,OAAOhkD,G,8mBCnCT,IAAM0nD,GAAWpE,EAAAA,EAAAA,UAEjB,SAAeA,EAAAA,EAAAA,OAAqB,CAClCngD,OAAQ,CACNE,SAAU,WACVgB,MAAO,WAGT+6B,WANkC,SAMvB9+B,GACTonD,GAAStoB,WAAWuoB,MAAM5pD,KAAM+jB,YAChC7M,EAAAA,EAAAA,SAAQlX,KAAM,iBAAkB,aAChC,IAAMiD,EAAQjD,KAAKiD,MACbH,EAAK9C,KAAK8C,GAChB9C,KAAKgD,SAASC,EAAO,QAASjD,KAAK4oD,UACnC5oD,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAK6pD,mBAC5C7pD,KAAKgD,SAASC,EAAO,eAAgBjD,KAAK8pD,aAC1C9pD,KAAK+pD,IAAMjnD,GAAMA,EAAGtB,IAAI,mBAG1BqoD,kBAjBkC,SAiBhB13C,EAAG8lB,GAAc,IAAXrvB,EAAW,uDAAJ,IAC5BA,EAAKohD,aAAehqD,KAAKiqD,kBAG5BC,YArBkC,WAsBhC,IAKIC,EALIlnD,EAA0BjD,KAA1BiD,MAAOmnD,EAAmBpqD,KAAnBoqD,WAAYtnD,EAAO9C,KAAP8C,GAErBunD,GADcvnD,MAAAA,OAAH,EAAGA,EAAIwnD,gBACWrnD,EAC/BhB,GAAS,EACTsoD,GAAc,EAGlB,IAAIH,IAAennD,EAAMzB,IAAI,aAAe6oD,IAAeE,EAActnD,EAAMywC,UAAU,YACvFzxC,GAAS,EAELsoD,IAAgBtnD,EAAMzB,IAAI,aAAa,CAGzC,IAFA,IAAIiT,EAASxR,EAAMwR,SAEZA,IAAWA,EAAO+1C,aAAa,SACpC/1C,EAASA,EAAOA,SAGdA,GAAUA,EAAOjT,IAAI,YACvB2oD,EAAW11C,EAEXxS,GAAS,EAKf,MAAO,CAAEA,OAAAA,EAAQkoD,SAAAA,IAObvB,SAtD4B,SAsDnBt9C,GAAI,yIACTy+C,EAAY,EAAZA,IAAKjnD,EAAO,EAAPA,GADI,EAEY,EAAKonD,cAA1BjoD,EAFS,EAETA,OAAQkoD,EAFC,EAEDA,SAIXloD,EANY,uBAOXkoD,IACF7+C,MAAAA,GAAA,UAAAA,EAAIa,uBAAJ,cAAAb,GACAxI,EAAGgS,YAAYq1C,GACfA,EAASzlD,QAAQ,SAAU4G,IAVd,6BAejBA,MAAAA,GAAA,UAAAA,EAAIa,uBAAJ,cAAAb,GACA,EAAKm/C,YAAc,EAAKnwC,cAEpByvC,EAlBa,2CAoBUA,EAAI5rC,OAAO,EAAM,EAAKusC,UAAW,CAAEp9C,MAAOhC,IApBpD,QAoBb,EAAKo/C,UApBQ,yDAsBb5nD,EAAG6nD,SAAH,MAtBa,QA0BjB,EAAKC,aAAa,GA1BD,6DA6BnBC,UAnFkC,WAoFhC7qD,KAAKiqD,kBAODA,eA3F4B,WA2FF,mJAAXrhD,EAAW,+BAAJ,GAClB3F,EAA8B,EAA9BA,MAAO8mD,EAAuB,EAAvBA,IAAKW,EAAkB,EAAlBA,UAAW5nD,EAAO,EAAPA,GAGzBmjD,EAAWhjD,GAASA,EAAMzB,IAAI,aAEhCuoD,EAN0B,0CAQpBA,EAAI32C,QAAQ,EAAMs3C,GARE,uDAU1B5nD,EAAG6nD,SAAH,MAV0B,QAaxB1E,GAAY,EAAK3rC,eAAiB,EAAKmwC,cACzC,EAAKX,YAAYlhD,GACjB,EAAK6hD,YAAc,IAfO,QAmB9B,EAAKG,eAnByB,4DA0BhCtwC,WArHkC,WAsHhC,IAAQowC,EAAc1qD,KAAd0qD,UAGR,OAFyBA,GAA6C,mBAAzBA,EAAUpwC,WAE7BowC,EAAUpwC,aAAeta,KAAK8qD,uBAAuBhnD,WAMjFgmD,YA/HkC,WA+HX,IAAXlhD,EAAW,uDAAJ,GACT3F,EAA2BjD,KAA3BiD,MAAO8mD,EAAoB/pD,KAApB+pD,IAAKK,EAAepqD,KAAfoqD,WACpB,GAAKA,GAAexhD,EAAKg5B,MAAzB,CACA,IAAM7uB,EAAU/S,KAAKsa,aACfge,EAAQr1B,EAAMyR,aACdq2C,EAAa,IAAEf,YAAa,GAAMphD,GACxC3F,EAAMU,IAAI,UAAW,GAAIonD,GAIrBhB,EAAIiB,WACN1yB,EAAMrxB,QAAUqxB,EAAM7mB,MAAM,KAAM7I,GAClC3F,EAAMU,IAAI,UAAWoP,EAASg4C,IAE9BzyB,EAAM2yB,gBAAgBl4C,EAASnK,KAInCsiD,gBAjJkC,SAiJlBn4C,GAAoB,IAAXnK,EAAW,uDAAJ,GACtB3F,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACT4a,EAAM5a,EAAG6a,cACTysC,EAAY1sC,EAAI2sC,eAEtB,GAAID,MAAAA,GAAAA,EAAWE,WAAY,OACnBC,EAAQH,EAAUI,WAAW,GAC7BC,EAAWF,EAAMG,eACjB7+B,EAAS0+B,EAAMI,YACfC,GAAYlpC,EAAAA,EAAAA,UAAS+oC,GACrBI,EAAU,GAEhB,GAAID,GAAS,UAAIA,EAAUE,UAAd,OAAI,OAAAF,EAAe,YAAa,CAC3C,IAAMG,EAAOH,EAAUlpD,WACvBqpD,EAAKr/C,SAAQ,SAAAkO,GACX,GAAIA,IAAQgxC,EAAW,CACrB,IAAMrqD,EAAO,WACP8e,EAAMzF,EAAInZ,IAAI,WACpBoqD,EAAQh+C,KAAK,CAAEtM,KAAAA,EAAMyR,QAASqN,EAAIggC,MAAM,EAAGxzB,KAC3Cg/B,EAAQh+C,KAAKmF,GACb64C,EAAQh+C,KAAK,CAAEtM,KAAAA,EAAMyR,QAASqN,EAAIggC,MAAMxzB,UAExCg/B,EAAQh+C,KAAK+M,MAIjB,IAAM1Y,EAAS2pD,EAAQ51B,OAAOoN,SACxB3T,EAAQxtB,EAAO0S,QAAQ5B,GAG7B,OAFA+4C,EAAKr6C,MAAMxP,EAAQ2G,GAEZkjD,EAAKhlD,GAAG2oB,IAInB,OAAOxsB,EAAM+E,OAAO+K,EAASnK,IAO/BmjD,QA1LkC,WA2LhC,IAAQjpD,EAAO9C,KAAP8C,GACFkL,EAAQ,YACR1C,EAAK,CAAC,GAAD,OAAI0C,EAAJ,qBAAuBA,EAAvB,WAAsC+T,KAAK,KAGtDjf,GAAMA,EAAG4B,QAAQ4G,EAAItL,KAAKiD,QAQ5B+oD,mBAxMkC,SAwMf9mD,GACjBA,EAAEiH,mBAOJy+C,aAhNkC,SAgNrBzsC,GACX,IAAQrb,EAAmB9C,KAAnB8C,GAAIG,EAAejD,KAAfiD,MAAO0B,EAAQ3E,KAAR2E,IACbsnD,EAAS,CAAEt8C,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,KACfjL,EAAS2T,EAAS,KAAO,MAC/Brb,EAAGopD,WAAW/tC,EAASne,KAAO,GAC9BA,KAAKoqD,aAAejsC,EAGpB,IAAIguC,EAAS,CAACnsD,KAAK6D,GAAG6a,cAAexW,UAerC,GAdA+jD,EAAOx2C,IAAI02C,EAAQ,YAAansD,KAAK6qD,WACrCoB,EAAOzhD,GAAQ2hD,EAAQ,YAAansD,KAAK6qD,WACzC/nD,EAAG0H,GAAQ,qBAAsBxK,KAAK6qD,WAClC5nD,IACFA,EAAMuH,GAAQ,UAAWxK,KAAK6qD,WAC9B5nD,EAAMyB,QAAN,cAAqByZ,EAAS,SAAW,aAI3CxZ,GAAOA,EAAI8Q,IAAI,YAAazV,KAAKgsD,oBACjCrnD,GAAOA,EAAI6F,GAAQ,YAAaxK,KAAKgsD,oBAIjChsD,KAAK0C,OAAOyiD,oBAGd,IAFA,IAAMthD,EAAO7D,KAAP6D,GAECA,GACLA,EAAGoR,WAAYkJ,GAEfta,EAAKA,EAAGye,aACY,QAAdze,EAAG+iB,UAAsB/iB,EAAK,MClP5C,GAAe0hD,GAAAA,OAAqB,CAClC/9C,OADkC,WAClB,2BAAN05B,EAAM,yBAANA,EAAM,gBAOd,OANAqkB,GAAAA,UAAAA,OAAAA,MAAqCvlD,KAAMkhC,GAI3ClhC,KAAK6D,GAAGwJ,iBAAiB,QAASrN,KAAKosD,SAAS,GAEzCpsD,Q,ykBCPX,IAAMsB,GAAO,QAEb,SAAekkD,GAAAA,OACb,CACE/1C,SAAU,SACL+1C,GAAAA,UAAAA,UADG,IAENlkD,KAAAA,GACAslB,QAAStlB,GACT8kD,OAAQ,CAAC,KAAM,QAAS,UAG5B,CACEjxB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,MCbnD,GAAe+qD,GAAkB9zB,OAAO,CACtC3R,QAAS,S,ykBCAX,IAAMtlB,GAAO,QACPgrD,GAAK,KACLC,GAAK,KACLC,GAAO,OAEb,SAAehH,EAAAA,OACb,CACE/1C,SAAU,SACL+1C,EAAAA,UAAAA,UADG,IAENlkD,KAAAA,GACAslB,QAAStlB,GACTmrD,QAAS,GACTzG,KAAM,EACN0G,SAAU,KACVC,MAAO,iCACPC,QAAS,0CACTC,MAAO,kCACPC,KAAM,EACNC,OAAQ,GACRC,MAAO,EACPC,SAAU,EACVC,SAAU,EACVC,MAAO,GACPC,KAAM,GACNnnC,IAAK,EACLonC,eAAgB,EAChBC,QAAS,GACTj6C,WAAY,CAAEuN,gBAAiB,qBAGjCygB,WAxBF,SAwBa9+B,EAAGsqB,GACZ7sB,KAAK8C,GAAK+pB,EAAI/pB,GACV9C,KAAKwB,IAAI,QAAQxB,KAAKgoD,eAC1BhoD,KAAKutD,eACLvtD,KAAKgD,SAAShD,KAAM,kBAAmBA,KAAKutD,cAC5CvtD,KAAKgD,SAAShD,KAAM,iCAAkCA,KAAKioD,WAC3DzC,EAAAA,UAAAA,WAAAA,MAAqCxlD,KAAM+jB,YAO7CwpC,aArCF,WAsCI,IAEInH,EADAx/B,EAAU,SAGd,OAJa5mB,KAAKwB,IAAI,aAKpB,KAAK8qD,GACL,KAAKE,GACHpG,EAASpmD,KAAKwtD,mBACd,MACF,KAAKjB,GACHnG,EAASpmD,KAAKytD,iBACd,MACF,QACE7mC,EAAU,QACVw/B,EAASpmD,KAAK0tD,kBAGlB1tD,KAAK2D,IAAI,CAAEijB,QAAAA,GAAW,CAAEpN,OAAQ,IAChCxZ,KAAK2D,IAAI,CAAEyiD,OAAAA,IACXpmD,KAAK8C,GAAG4B,QAAQ,sBAMlBsjD,aA/DF,WAgEI,IAAI2F,EAAO3tD,KAAKwB,IAAI,YAChBulD,EAAM/mD,KAAK8mD,SAAS9mD,KAAKwB,IAAI,QAC7B4mD,EAAKrB,EAAIC,MACb,OAAQ2G,GACN,KAAKrB,GACL,KAAKE,GACL,KAAKD,GACH,IAAIE,EAAU1F,EAAIO,SAAS7lD,MAAM,KAAKC,MACtC1B,KAAK2D,IAAI,UAAW8oD,GACpBrE,EAAGgF,MAAQptD,KAAK2D,IAAI,OAAQykD,EAAGgF,MAC3BhF,EAAG6E,UAAUjtD,KAAK2D,IAAI,WAAY,GAClCykD,EAAG0E,MAAM9sD,KAAK2D,IAAI,OAAQ,GACA,IAA1BiqD,SAASxF,EAAG8E,WAAiBltD,KAAK2D,IAAI,WAAY,GAClDykD,EAAG+E,OAAOntD,KAAK2D,IAAI,QAASykD,EAAG+E,OACpB,MAAX/E,EAAGniC,KAAajmB,KAAK2D,IAAI,MAAO,GACV,MAAtBykD,EAAGiF,gBAAwBrtD,KAAK2D,IAAI,iBAAkB,KAUhEskD,UAzFF,WA0FI,IACI1mD,EAAM,GAEV,OAHavB,KAAKwB,IAAI,aAIpB,KAAK8qD,GACH/qD,EAAMvB,KAAK6tD,gBACX,MACF,KAAKrB,GACHjrD,EAAMvB,KAAK8tD,wBACX,MACF,KAAKvB,GACHhrD,EAAMvB,KAAK+tD,cAIf/tD,KAAK2D,IAAI,CAAEpC,IAAAA,KAQbklD,cAjHF,WAiHyB,2BAANvlB,EAAM,yBAANA,EAAM,gBACrB,IAAIt0B,EAAO44C,EAAAA,UAAAA,cAAAA,MAAwCxlD,KAAMkhC,GACrDysB,EAAO3tD,KAAKwB,IAAI,YACpB,OAAQmsD,GACN,KAAKrB,GACL,KAAKE,GACL,KAAKD,GACH,MACF,QACMvsD,KAAKwB,IAAI,UAASoL,EAAKkgD,KAAO,QAC9B9sD,KAAKwB,IAAI,cAAaoL,EAAKqgD,SAAW,YACtCjtD,KAAKwB,IAAI,cAAaoL,EAAKsgD,SAAW,YAE9C,OAAOtgD,GAUTohD,iBAxIF,WAyII,MAAO,CACL1sD,KAAM,SACNwR,MAAO,WACP3O,KAAM,WACN4jD,WAAY,EACZvlD,QAAS,CACP,CAAEqD,MAAO,KAAM1B,KAAM,gBACrB,CAAE0B,MAAOymD,GAAInoD,KAAM,WACnB,CAAE0B,MAAO2mD,GAAMroD,KAAM,uBACrB,CAAE0B,MAAO0mD,GAAIpoD,KAAM,YAUzBupD,gBA5JF,WA6JI,MAAO,CACL1tD,KAAKguD,mBACL,CACEl7C,MAAO,SACP3O,KAAM,MACN2jD,YAAa,wBACbC,WAAY,GAEd,CACEj1C,MAAO,SACP3O,KAAM,SACN2jD,YAAa,yBAGf9nD,KAAKiuD,mBACLjuD,KAAKkuD,eACLluD,KAAKmuD,qBAQTX,iBArLF,WAsLI,MAAO,CACLxtD,KAAKguD,mBACL,CACEl7C,MAAO,WACP3O,KAAM,UACN2jD,YAAa,kBACbC,WAAY,GAEd/nD,KAAKiuD,mBACLjuD,KAAKkuD,eACLluD,KAAKmuD,mBACL,CACE7sD,KAAM,WACNwR,MAAO,UACP3O,KAAM,MACN4jD,WAAY,GAEd,CACEzmD,KAAM,WACNwR,MAAO,SACP3O,KAAM,iBACN4jD,WAAY,KAUlB0F,eArNF,WAsNI,MAAO,CACLztD,KAAKguD,mBACL,CACEl7C,MAAO,WACP3O,KAAM,UACN2jD,YAAa,gBACbC,WAAY,GAEd,CACEj1C,MAAO,QACP3O,KAAM,QACN2jD,YAAa,aACbC,WAAY,GAEd/nD,KAAKiuD,mBACLjuD,KAAKkuD,iBASTD,iBA9OF,WA+OI,MAAO,CACL3sD,KAAM,WACNwR,MAAO,WACP3O,KAAM,WACN4jD,WAAY,IAShBmG,aA5PF,WA6PI,MAAO,CACL5sD,KAAM,WACNwR,MAAO,OACP3O,KAAM,OACN4jD,WAAY,IAShBoG,iBA1QF,WA2QI,MAAO,CACL7sD,KAAM,WACNwR,MAAO,WACP3O,KAAM,WACN4jD,WAAY,IAShB8F,cAxRF,WAyRI,IAAMloD,EAAK3F,KAAKwB,IAAI,WAChBgF,EAAMxG,KAAKwB,IAAI,SACb4rD,EAAOptD,KAAKwB,IAAI,QAUtB,OATAgF,GAAOb,GAAMA,EAAGgP,QAAQ,KAAO,EAAI,IAAM,IACzCnO,GAAO4mD,EAAO,SAAH,OAAYA,GAAS,GAChC5mD,GAAOxG,KAAKwB,IAAI,YAAc,cAAgB,GAC9CgF,GAAQxG,KAAKwB,IAAI,YAAyC,GAA3B,yBAG/BgF,GAAOxG,KAAKwB,IAAI,QAAT,2BAAuCmE,GAAO,GACrDa,GAAOxG,KAAKwB,IAAI,OAAS,GAAK,SAC9BgF,GAAOxG,KAAKwB,IAAI,kBAAoB,oBAAsB,IAS5DssD,sBA7SF,WA8SI,IAAItnD,EAAMxG,KAAK6tD,gBAEf,OADArnD,EAAMA,EAAIuF,QAAQ/L,KAAKwB,IAAI,SAAUxB,KAAKwB,IAAI,aAShDusD,YAxTF,WAyTI,IAAIvnD,EAAMxG,KAAKwB,IAAI,SAMnB,OALAgF,GAAOxG,KAAKwB,IAAI,WAAa,IAC7BgF,GAAOxG,KAAKwB,IAAI,YAAc,cAAgB,GAC9CgF,GAAOxG,KAAKwB,IAAI,QAAU,UAAY,GACtCgF,GAAQxG,KAAKwB,IAAI,YAA8C,GAAhC,8BAC/BgF,GAAOxG,KAAKwB,IAAI,SAAW,UAAYxB,KAAKwB,IAAI,SAAW,KAI/D,CASE2zB,YATF,SASctxB,GACV,IAAI5B,EAAS,GACL2kB,EAAiB/iB,EAAjB+iB,QAASrlB,EAAQsC,EAARtC,IACX6sD,EAAW,sBAAsB9F,KAAK/mD,GACtC8sD,EAAa,+BAA+B/F,KAAK/mD,GACjD+sD,EAAW,4BAA4BhG,KAAK/mD,GAC5CgtD,EAAYH,GAAYC,GAAcC,EAa5C,QAXEhV,EAAAA,EAAAA,aAAY1yB,IAAYtlB,IACC,WAAxBg4C,EAAAA,EAAAA,aAAY1yB,IAAwB2nC,KAErCtsD,EAAS,CAAEX,KAAM,SACbC,IAAKU,EAAOV,IAAMA,GAClBgtD,IACEH,EAAUnsD,EAAOyqD,SAAWJ,GACvB+B,EAAYpsD,EAAOyqD,SAAWF,GAC9B8B,IAAUrsD,EAAOyqD,SAAWH,MAGlCtqD,KCpWb,GAAesjD,GAAAA,OAAqB,CAClC3+B,QAAS,MAETxhB,OAAQ,GAERi8B,WALkC,SAKvB9+B,GACTisD,EAAAA,EAAAA,UAAAA,WAAAA,MAA0CxuD,KAAM+jB,WAChD,IAAQ9gB,EAAUjD,KAAViD,MACF2Y,EAAQ,CACZ,OACA,WACA,WACA,QACA,MACA,iBACA,UAEIxW,EAASwW,EAAMlB,KAAI,SAAAkc,GAAC,uBAAcA,MAAK7U,KAAK,KAClD/hB,KAAKgD,SAASC,EAAO,kBAAmBjD,KAAKyuD,gBAC7CzuD,KAAKgD,SAASC,EAAO,aAAcjD,KAAKioD,WACxCjoD,KAAKgD,SAASC,EAAOmC,EAAQpF,KAAK0uD,cAOpCD,eA3BkC,WA4BhC,IAAId,EAAO3tD,KAAKiD,MAAMzB,IAAI,YAC1BxB,KAAK6D,GAAGC,UAAY,GACpB9D,KAAK6D,GAAG4D,YAAYzH,KAAK2uD,iBAAiBhB,KAO5C1F,UArCkC,WAsChC,IAAQhlD,EAAmBjD,KAAnBiD,MAAO2rD,EAAY5uD,KAAZ4uD,QACf,GAAKA,EAAL,CACA,IAAMjB,EAAO1qD,EAAMzB,IAAI,YACnBD,EAAM0B,EAAMzB,IAAI,OAEpB,OAAQmsD,GACN,IAAK,KACHpsD,EAAM0B,EAAM4qD,gBACZ,MACF,IAAK,OACHtsD,EAAM0B,EAAM6qD,wBACZ,MACF,IAAK,KACHvsD,EAAM0B,EAAM8qD,cAIhBa,EAAQrtD,IAAMA,IAOhBmtD,YA9DkC,WA+DhC,IAAIf,EAAO3tD,KAAKiD,MAAMzB,IAAI,YACtBotD,EAAU5uD,KAAK4uD,QACfvmC,EAAKroB,KAAKiD,MACd,OAAQ0qD,GACN,IAAK,KACL,IAAK,OACL,IAAK,KACH3tD,KAAKiD,MAAMyB,QAAQ,kBACnB,MACF,QACEkqD,EAAQ9B,KAAOzkC,EAAG7mB,IAAI,QACtBotD,EAAQ3B,SAAW5kC,EAAG7mB,IAAI,YAC1BotD,EAAQ1B,SAAW7kC,EAAG7mB,IAAI,YAC1BotD,EAAQ7B,OAAS1kC,EAAG7mB,IAAI,YAI9BmtD,iBAhFkC,SAgFjBhB,GACf,IAAIiB,EACJ,OAAQjB,GACN,IAAK,KACHiB,EAAU5uD,KAAK6uD,gBACf,MACF,IAAK,OACHD,EAAU5uD,KAAK8uD,wBACf,MACF,IAAK,KACHF,EAAU5uD,KAAK+uD,cACf,MACF,QACEH,EAAU5uD,KAAKgvD,eAGnB,OADAhvD,KAAK4uD,QAAUA,EACRA,GAGTI,aAnGkC,WAoGhC,IAAInrD,EAAKqE,SAAS0lB,cAAc,SAGhC,OAFA/pB,EAAGtC,IAAMvB,KAAKiD,MAAMzB,IAAI,OACxBxB,KAAKivD,YAAYprD,GACVA,GAGTgrD,cA1GkC,WA2GhC,IAAIhrD,EAAKqE,SAAS0lB,cAAc,UAKhC,OAJA/pB,EAAGtC,IAAMvB,KAAKiD,MAAM4qD,gBACpBhqD,EAAGulD,YAAc,EACjBvlD,EAAGmS,aAAa,mBAAmB,GACnChW,KAAKivD,YAAYprD,GACVA,GAGTirD,sBAnHkC,WAoHhC,IAAIjrD,EAAKqE,SAAS0lB,cAAc,UAKhC,OAJA/pB,EAAGtC,IAAMvB,KAAKiD,MAAM6qD,wBACpBjqD,EAAGulD,YAAc,EACjBvlD,EAAGmS,aAAa,mBAAmB,GACnChW,KAAKivD,YAAYprD,GACVA,GAGTkrD,YA5HkC,WA6HhC,IAAIlrD,EAAKqE,SAAS0lB,cAAc,UAKhC,OAJA/pB,EAAGtC,IAAMvB,KAAKiD,MAAM8qD,cACpBlqD,EAAGulD,YAAc,EACjBvlD,EAAGmS,aAAa,mBAAmB,GACnChW,KAAKivD,YAAYprD,GACVA,GAGTorD,YArIkC,SAqItBprD,GACVA,EAAGd,UAAY/C,KAAK4C,KAAO,aAC3BiB,EAAG8S,MAAMvU,OAAS,OAClByB,EAAG8S,MAAMtU,MAAQ,QAGnBmF,OA3IkC,WA2IlB,2BAAN05B,EAAM,yBAANA,EAAM,gBACdqkB,GAAAA,UAAAA,OAAAA,MAAqCvlD,KAAMkhC,GAC3ClhC,KAAKqpD,gBACL,IAAIsE,EAAO3tD,KAAKiD,MAAMzB,IAAI,YAG1B,OAFAxB,KAAK6D,GAAG4D,YAAYzH,KAAK2uD,iBAAiBhB,IAC1C3tD,KAAK0uD,cACE1uD,Q,ykBCjJX,IAAMsB,GAAO,SAEb,SAAekkD,EAAAA,GAAAA,OACb,CACE/1C,SAAU,SACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAAA,GACAslB,QAAStlB,GACTga,WAAW,EACXrG,WAAW,EACXi6C,WAAW,KAGf,CACE/5B,YADF,SACctxB,GACV,IAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,UAAYtlB,GAAM,CACnC,IAAMW,EAAS,CAAEX,KAAAA,IAOjB,OALIuC,EAAGtC,MACLU,EAAOV,IAAMsC,EAAGtC,IAChBU,EAAO2jB,OAAS/hB,EAAG+hB,QAGd3jB,MCxBf,GAAesjD,GAAAA,OAAqB,CAClC3+B,QAAS,SAETxhB,OAAQ,GAERoC,OALkC,WAMhC,IAAQvE,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACTvB,EAAM0B,EAAMzB,IAAI,OAChB2tD,EAASrsD,GAAMA,EAAGtB,IAAI,eACtB4tD,EAAcD,GAAkB,EAClCp8C,EAAU,GAGd,GAAIxR,EAAK,CACP,IAAMqkB,EAAS3iB,EAAMzB,IAAI,UACnB6tD,EAAO,SAAH,OAAYD,GAChBE,EAAW,SAAH,OAAYF,EAAc,GAClCG,EAAS,GAAH,OAAMF,EAAN,SACNG,EAAa,GAAH,OAAMF,EAAN,SAEhBv8C,EAAU,iBAAH,OACCs8C,EADD,yDAEHA,EAFG,6CAGDzpC,EAAS,GAAH,OAAMA,EAAN,SAAsB,GAH3B,8BAIM4pC,EAJN,6BAIqCA,EAJrC,oCAMHH,EANG,mBAMY9tD,EANZ,gCAOMguD,EAPN,0CAO8CF,EAP9C,0BAQFD,EAA+B,GAAhC,UAAkBG,EAAlB,OARG,YAUPzsD,GAAMA,EAAGa,IAAI,cAAeyrD,EAAc,QAE1Cr8C,EAAU9P,EAAMwsD,cAKlB,OAFAzvD,KAAK6D,GAAGC,UAAYiP,EACpB/S,KAAKgS,aACEhS,Q,ykBCpCX,IAAMsB,GAAO,MAEb,SAAekkD,EAAAA,GAAAA,OACb,CACE/1C,SAAU,SACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAENlkD,KAAAA,GACAslB,QAAStlB,GACT4kD,cAAe,EACfzR,UAAW,CAAE0R,aAAc,KAG7B3c,QATF,WAUI,IAAIrlC,EAAOnE,KAAKwB,IAAI,WAChBkuD,EAAa1vD,KAAKwB,IAAI,eAE1B,OADA2C,EAAOA,EAAKwrD,OAAO,GAAG/pB,cAAgBzhC,EAAKi8C,MAAM,GAC1CsP,GAAcvrD,IAGzB,CACEgxB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,M,ykBClBnD,SAAekkD,GAAAA,OACb,CACE/1C,SAAU,SACL+1C,GAAAA,UAAAA,UADG,IAENoK,YAAY,EACZC,WAAW,EACXX,WAAW,KAGf,CACE/5B,YAAa,SAACtxB,GAAD,IAAK+E,EAAL,uDAAY,GAAZ,QAAqBA,EAAKknD,SCb3C,GAAevK,EAAAA,EAAAA,OAAqB,CAClCwK,eAAgB,SAASnpC,GACvB,OAAO1e,SAAS8nD,gBAAgB,6BAA8BppC,M,ykBCDlE,SAAe4+B,EAAAA,GAAAA,OACb,CACE/1C,SAAU,SACL+1C,EAAAA,GAAAA,UAAAA,UADG,IAEN5+B,QAAS,GACTtL,WAAW,EACX4zC,WAAW,EACXU,YAAY,EACZ3J,UAAU,IAGZnuB,OAVF,WAWI,IAAMrjB,EAASzU,KAAKyU,SACd2L,EAAMpgB,KAAKwB,IAAI,WACrB,OAAOiT,GAAUA,EAAOo3C,GAAG,UAAYzrC,GAAM0+B,EAAAA,EAAAA,QAAO1+B,KAGxD,CACE+U,YADF,SACctxB,GACV,IAAI5B,EAAS,GAOb,OANoB,IAAhB4B,EAAG6lD,WACLznD,EAAS,CACPX,KAAM,WACNyR,QAASlP,EAAGkS,cAGT9T,K,+NC3Bb,SAAeujD,GAAAA,OACb,CACE/1C,S,uWAAU,IACL+1C,GAAAA,UAAAA,UAGL1tB,OALF,WAMI,uBAAc93B,KAAKwB,IAAI,WAAvB,YAGJ,CACE2zB,YADF,SACctxB,GACV,GAAmB,GAAfA,EAAG6lD,SACL,MAAO,CACL9iC,QAAS,OACTtlB,KAAM,UACNyR,QAASlP,EAAGkS,gBChBtB,GAAewvC,EAAAA,EAAAA,OAAqB,CAClClkB,WADkC,WAEhCkkB,EAAAA,EAAAA,UAAAA,WAAAA,MAAyCvlD,KAAM+jB,YAIjDksC,eANkC,aAOlCjH,iBAPkC,aAQlCkH,aARkC,aASlC7G,cATkC,aAUlCrzC,aAVkC,aAWlCm6C,iBAXkC,aAYlCC,YAZkC,aAalCC,eAbkC,aAclCpnD,eAdkC,aAgBlC8mD,eAhBkC,WAiBhC,OAAO7nD,SAAS86C,eAAe,KAGjCx7C,OApBkC,WAqBhC,IAAQvE,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACf,OAAIZ,EAAM4pB,IAAI+I,YACd/xB,EAAGkS,YAAc9S,EAAMzB,IAAI,YADKxB,QCtBpC,GAAeulD,GAAAA,OAAqB,CAClCwK,eADkC,WAEhC,OAAO7nD,SAASooD,cAActwD,KAAKiD,MAAMzB,IAAI,e,sgCCF5B+uD,GAAAA,SAAAA,I,0HACnB,WACE,gBACK/K,EAAAA,GAAAA,eADL,IAEE5+B,QAAS,OACT4pC,WAAW,EACXnhB,UAAU,EACVp6B,WAAW,EACXP,WAAY,GACZ0xC,OAAQ,GACRvI,SAAU,CACR,aACA,mBACA,mBACA,oBACA,wBACA,sBACA,uB,uBAKN,WACE,IAAMgD,EAAK7gD,KAAK8C,IAAM9C,KAAK8C,GAAGtB,IAAI,eAElC,OADAq/C,IAAO7gD,KAAKywD,SAAW5P,EAAGh6C,IAAI7G,MACvBwlD,EAAAA,GAAAA,UAAAA,UAAAA,KAAmCxlD,KAAM+jB,a,0BAGlD,WACE,IAAM88B,EAAK7gD,KAAK8C,IAAM9C,KAAK8C,GAAGtB,IAAI,eAElC,OADAq/C,GAAMA,EAAG39C,OAAOlD,MACTwlD,EAAAA,GAAAA,UAAAA,aAAAA,KAAsCxlD,KAAM+jB,e,EA/BlCwsC,CAAyB/K,EAAAA,I,ykBAmC9C+K,GAAiBp7B,YAAc,kBAAM,GClCrC,IAAM7zB,GAAO,SAEb,SAAekkD,EAAAA,GAAAA,OACb,CACE/1C,SADF,WAEI,gBACK+1C,EAAAA,GAAAA,UAAAA,UADL,IAEElkD,KAAAA,GACAslB,QAAStlB,GACTga,WAAW,EACXm5B,WAAW,EACX2R,OAAQ,CAAC,KAAM,QAAS,OACxB/yC,WAAY,CAAEu0C,YAAa,SAIjC,CACEzyB,YAAa,SAAAtxB,GAAE,OAAIy1C,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAAatlB,M,cCjBnD,SAAeikD,EAAAA,EAAAA,OAAqB,CAClC3+B,QAAS,MAETya,WAHkC,WAGd,2BAANH,EAAM,yBAANA,EAAM,gBAClBqkB,EAAAA,EAAAA,UAAAA,WAAAA,MAAyCvlD,KAAMkhC,GAC/ClhC,KAAKgD,SAAShD,KAAKiD,MAAO,wBAAyBjD,KAAKioD,YAG1DA,UARkC,WAShC,IAAM7sC,GAAQtT,EAAAA,GAAAA,IAAK9H,KAAK6D,GAAI,UAAU,GACtCuX,IAASs1C,EAAAA,GAAAA,IAAOt1C,EAAO,CAAE7Z,IAAKvB,KAAK2wD,cAGrCnpD,OAbkC,WAalB,2BAAN05B,EAAM,yBAANA,EAAM,gBACdqkB,EAAAA,EAAAA,UAAAA,OAAAA,MAAqCvlD,KAAMkhC,GAC3C,IAAM9lB,GAAQyH,EAAAA,GAAAA,IAAS,SAAU,CAC/BhN,MAAO,GAAF,OAAK7V,KAAK4C,KAAV,cACL+T,MAAO,0CACPpV,IAAKvB,KAAK2wD,aAGZ,OADA3wD,KAAK6D,GAAG4D,YAAY2T,GACbpb,MAGT2wD,SAxBkC,WAyBhC,OAAO3wD,KAAKiD,MAAM2tD,gBAAgBrvD,KAAO,M,0mBCwE7C,oBACE,IACIuB,EAGA0jB,EAAWqqC,EAJXhoD,EAAI,GAEFioD,EAAiB,GAGnBC,EAAiB,CACnB,CACEprD,GAAI,OACJ1C,MAAO+tD,EACP7tD,KAAM8tD,GAER,CACEtrD,GAAI,MACJ1C,MAAOiuD,EACP/tD,KAAMguD,GAER,CACExrD,GAAI,QACJ1C,MAAOmuD,EACPjuD,KAAMkuD,GAER,CACE1rD,GAAI,QACJ1C,MAAOquD,EACPnuD,KAAMouD,GAER,CACE5rD,GAAI,QACJ1C,MAAO6iD,EACP3iD,KAAMquD,GAER,CACE7rD,GAAI,QACJ1C,MAAOwuD,EACPtuD,KAAMuuD,GAER,CACE/rD,GAAI,MACJ1C,MAAO0uD,GACPxuD,KAAMyuD,IAER,CACEjsD,GAAI,OACJ1C,MAAOsmD,GACPpmD,KAAMkpD,IAER,CACE1mD,GAAI,QACJ1C,MAAO4uD,GACP1uD,KAAM2uD,IAER,CACEnsD,GAAI,QACJ1C,MAAO8uD,GACP5uD,KAAM6uD,IAER,CACErsD,GAAI,QACJ1C,MAAOgvD,EACP9uD,KAAM+uD,IAER,CACEvsD,GAAI,SACJ1C,MAAOkvD,GACPhvD,KAAMivD,IAER,CACEzsD,GAAI,SACJ1C,MAAOovD,GACPlvD,KAAMmvD,IAER,CACE3sD,GAAI,MACJ1C,MAAOsvD,GACPpvD,KAAMmvD,IAER,CACE3sD,GAAI,SACJ1C,MAAOuvD,GACPrvD,KAAMsvD,IAER,CACE9sD,GAAI,UACJ1C,MAAOyvD,GACPvvD,KAAMwvD,IAER,CACEhtD,GAAI,WACJ1C,MAAO2vD,GACPzvD,KAAM0vD,IAER,CACEltD,GAAI,OACJ1C,MAAOqmD,GACPnmD,KAAM2vD,IAER,CACEntD,GAAI,UACJ1C,MAAOstD,GACPptD,KAAMmiD,GAER,CACE3/C,GAAI,UACJ1C,MAAOuiD,EAAAA,GACPriD,KAAMoiD,EAAAA,IAIV,gBACKv2C,GAAAA,GADL,IAGEw2C,UAAAA,EAAAA,GAEAuN,WAAAA,EAAAA,EAEAC,eAAAA,EAAAA,EAEAjC,eAAAA,EAEAD,eAAAA,EAOA3sD,KAAM,gBAEN8K,WAAY,aAOZiB,UA3BF,WA4BI,OAAOrH,GASTzF,KArCF,SAqCOV,GAAQ,WASX,IAAK,IAAIyB,KAPTrB,GADA+F,EAAInG,GAAU,IACPI,GACP9C,KAAK8C,GAAKA,EAENA,IACF+F,EAAE6L,WAAa5R,EAAGJ,OAAOgS,YAAc7L,EAAE6L,YAG1BjF,EACTtL,KAAQ0E,IAAIA,EAAE1E,GAAQsL,EAAStL,IAGvC,IAAIvB,EAAOiG,EAAEhG,aAIb,GAHID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAG/B2C,EAAI,CACN+F,EAAE4gC,MAAQ3mC,EAAGtB,IAAI,UAAY,GAC7BqH,EAAEvF,GAAKR,EAAGtB,IAAI,iBAAmB,GACjCsB,EAAGtB,IAAI,UAAUyxD,UAAYlC,EAC7BjuD,EAAG6M,GAAG,0BAA2B3P,KAAKkzD,iBAAkBlzD,MAExD,IAAMoU,EAAWtR,EAAGtB,IAAI,YACxBsB,EAAGE,SAASoR,EAAU,OAAO,SAACkhB,EAAKzsB,EAAGD,GAAT,OAAkB,EAAKuqD,UAAU/+C,EAAS0J,aAAawX,GAAM1sB,MAC1F9F,EAAGE,SAASoR,EAAU,UAAU,SAACkhB,EAAKzsB,EAAGD,GAAT,OAAkB,EAAKwqD,aAAah/C,EAAS0J,aAAawX,GAAM1sB,MAGlG,OAAO5I,MAGTiR,KApEF,SAoEOnH,GAAM,WACT,OAAO9J,KAAKkR,gBAAgBpH,EAAM,CAChCkyC,SAAU,SAAA/5C,GACR,IAAM2S,EAAU,EAAKC,aACrB,IAAImG,EAAAA,EAAAA,SAAQ/Y,GACVA,EAAOgF,QAAU2N,EAAQF,WAAWzS,OAC/B,CACL,MAAqCA,EAA7ByS,WAAAA,OAAR,MAAqB,GAArB,EAA4B2+C,GAA5B,OAAqCpxD,EAArC,IACA2S,EAAQjR,IAAI0vD,GACZz+C,EAAQF,WAAWA,QAM3B3D,MAnFF,WAoFI,MAAO,IAQT+M,aA5FF,WA6FI,IAAMwX,EAAMt1B,KAAK8C,GAAGtB,IAAI,eAAe4K,cACjCgP,EAAQka,GAAOA,EAAIjY,eACzB,OAAOjC,GAASA,EAAM0C,gBAaxBjJ,WA5GF,WA6GI,OAAO7U,KAAK8d,gBA8Bdw1C,cA3IF,WA4II,IAAMzvC,EAAM7jB,KAAK6U,aACjB,OAAOgP,GAAOA,EAAIriB,IAAI,eAgCxB+xD,aA7KF,SA6Ke/sC,GAAqB,IAAVqG,EAAU,uDAAJ,GAC5B,OAAO7sB,KAAKszD,gBAAgBzsD,IAAI2f,EAAWqG,IAU7CrlB,OAxLF,WAyLI,OAAOqpD,EAAcrpD,SAAS3D,IAOhCq+B,MAhMF,WAgMmB,IAAXt5B,EAAW,uDAAJ,GAIX,OAHA5I,KAAKszD,gBACF54C,KAAI,SAAAtQ,GAAC,OAAIA,KACTqC,SAAQ,SAAArC,GAAC,OAAIA,EAAElH,OAAO0F,MAClB5I,MAUTwzD,cA9MF,SA8MgB9+C,GAAsB,IAAVmY,EAAU,uDAAJ,GAC9B7sB,KAAKkiC,MAAMrV,GAAK0mC,aAAa7+C,EAAYmY,IAU3Cnb,QAzNF,SAyNUpQ,EAAM8c,GACZ,IAAQtb,EAAO9C,KAAP8C,GACR,EAAqGsb,EAA7Fnb,MAAAA,OAAR,MAAgB,GAAhB,IAAqGmb,EAAjFjb,KAAAA,OAApB,MAA2B,GAA3B,EAA+BgyB,EAAsE/W,EAAtE+W,YAAaoD,EAAyDna,EAAzDma,OAAQk7B,EAAiDr1C,EAAjDq1C,WAApD,EAAqGr1C,EAArCs1C,SAAAA,OAAhE,MAA2E,GAA3E,IAAqGt1C,EAAtBu1C,aAAAA,OAA/E,MAA8F,GAA9F,EACMC,EAAW5zD,KAAK4R,QAAQtQ,GACxBuyD,EAAa7zD,KAAK4R,QAAQ2mB,GAC1Bu7B,EAAiB9zD,KAAK4R,QAAQ6hD,GAC9BM,EAAeF,IAA0BD,GAAsB5zD,KAAK4R,QAAQ,YAC5EoiD,EAAaD,EAAa9wD,MAC1BgxD,EAAYH,EAAiBA,EAAe3wD,KAAO4wD,EAAa5wD,KAGhE+wD,EAAiB,SAACC,EAAKzwD,EAAQ0wD,GAAd,OACrBD,EAAI/X,QAAO,SAACjzC,EAAK6+B,GACf,IAAMnd,EAAKnnB,EAAOskC,GACZqsB,EAAWD,EAAStyD,UAAUkmC,GAOpC,OANInd,GAAMwpC,IACRlrD,EAAI6+B,GAAQ,WACVqsB,EAAShxD,KAAKrD,MAAd,wBACA6qB,EAAGxnB,KAAKrD,MAAR,0BAGGmJ,IACN,KAGgB,YAAjB,OAAOlG,KACTmb,EAAQnb,MAAQ+wD,EAAWz7B,OAAX,YAETt1B,GACAixD,EAAeR,EAAUzwD,EAAO+wD,IAHvB,IAIZvkD,SAAU,UACJxN,EAAAA,EAAAA,QAAO+xD,EAAWlyD,UAAW,aAAe,KAC5CG,EAAAA,EAAAA,QAAOgB,EAAO,aAAe,MAGrC,CACEkyB,aAAay+B,GAAaC,GAAe1+B,EAAuCA,GAAgB,kBAAM,GAA/C6+B,EAAW7+B,eAKpD,YAAhB,OAAOhyB,KACTib,EAAQjb,KAAO8wD,EAAU17B,OAAV,SACVp1B,GACA+wD,EAAeP,EAAcxwD,EAAM8wD,MAItCL,GACFA,EAAS3wD,MAAQmb,EAAQnb,MACzB2wD,EAASzwD,KAAOib,EAAQjb,OAExBib,EAAQzY,GAAKrE,EACbyvD,EAAehN,QAAQ3lC,IAGzB,IAAM9Q,EAAQ,kBAAH,OAAqBsmD,EAAW,SAAW,OAGtD,OAFA9wD,GAAMA,EAAG4B,QAAQ4I,EAAOsmD,GAAYx1C,GAE7Bpe,MAST4R,QA7RF,SA6RUtQ,GAGN,IAFA,IAAIgzD,EAAKvD,EAEAwD,EAAK,EAAGA,EAAKD,EAAGrtD,OAAQstD,IAAM,CAErC,GADWD,EAAGC,GAAI5uD,IACNrE,EACV,OAAOgzD,EAAGC,KAWhBC,WA9SF,SA8Sa7uD,GACT,IAAM2uD,EAAKvD,EACLzvD,EAAOtB,KAAK4R,QAAQjM,GAC1B,GAAKrE,EAAL,CACA,IAAMmuB,EAAQ6kC,EAAG3/C,QAAQrT,GAEzB,OADAgzD,EAAGp+B,OAAOzG,EAAO,GACVnuB,IAOTuQ,SA3TF,WA4TI,OAAOk/C,GAGToC,UA/TF,SA+TY3sC,GAAsB,WAAX5d,EAAW,uDAAJ,GACtB4d,IACFA,EAAU7iB,IAAI,CACZgH,OAAQ,aAEV,CAAC,qBAAsB,qBAAqB8B,SAAQ,SAAAa,GAAK,OAAI,EAAKxK,GAAG4B,QAAQ4I,EAAOkZ,EAAW5d,QAInGwqD,aAxUF,SAwUe5sC,GAAsB,WAAX5d,EAAW,uDAAJ,GAC7B,GAAI4d,EAAW,CACExmB,KAAP8C,GACR0jB,EAAU7iB,IAAI,CACZgH,OAAQ,GACR2oC,MAAO,KAET,CAAC,uBAAwB,qBAAqB7mC,SAAQ,SAAAa,GAAK,OAAI,EAAKxK,GAAG4B,QAAQ4I,EAAOkZ,EAAW5d,QAQrGsqD,iBAvVF,WAwVI,IAAMpwD,EAAK+F,EAAE/F,GACPG,EAAQH,EAAGtB,IAAI,oBACfkgB,EAAW5e,EAAG4e,SAAS,oBACvB4xB,EAAQ,UAGd5xB,GACEA,EAASlgB,IAAI,WAAa8xC,GAC1B5xB,EAAS/d,IAAI,CACXgH,OAAQ,GACR2oC,MAAO,KAGXrwC,IAASuzB,EAAAA,EAAAA,SAAQvzB,EAAMzB,IAAI,YAAcyB,EAAMU,IAAI,SAAU2vC,IAG/DmhB,kBAxWF,WAyWI,IAAMxW,EAAgBj+C,KAAhBi+C,QAASn7C,EAAO9C,KAAP8C,GAEf,IAAKm7C,GAAWn7C,EAAI,CAClB,IAAM4xD,EAAY5xD,EAAGtB,IAAI,WACzB,IAAKkzD,EAAW,OAChB,IAAM3/B,EAAO2/B,EAAUlzD,IAAI,iBAG3B,GAFAuzB,EAAKg8B,eAAiB/wD,KAAK+wD,eAC3B9S,EAAUlpB,EAAKlgB,aACF,CACX,IAAMzP,EAAS,CAACuvD,EAAAA,GAAWC,EAAAA,IAAiB7yC,KAAK,KACjDk8B,EAAQtuC,GACNvK,GACA2K,EAAAA,EAAAA,WAAS,kBAAMkuC,EAAQvpC,WAAW,MAAK,MAG3C1U,KAAKi+C,QAAUA,EAGjB,OAAOA,GAcT4W,QAzYF,SAyYUnxD,EAAQoxD,EAAQrlC,GACtB,IAAM3oB,EAAK2oB,GAAmB,IAAVA,EAAcA,EAAQ,KACpCxtB,EAAS,CACbA,QAAQ,EACR8yD,OAAQ,EACRrxD,OAAAA,EACAoxD,OAAQ,MAGV,IAAKA,EAAQ,OAAO7yD,EAEpB,IAAI+yD,EAAWF,MAAAA,GAAAA,EAAQh9B,OAASg9B,EAAS,KAEzC,IAAKE,EAAU,CACb,IAAMpgD,EAAU5U,KAAKy0D,oBACrBO,EAAWpgD,MAAAA,OAAH,EAAGA,EAAS5M,OAAO8sD,GAAQ,GAKrC,GAFA7yD,EAAO6yD,OAASE,GAEXA,EAAU,OAAO/yD,EAGtB,IAAIgT,EAAY+/C,EAASxzD,IAAI,aAE7B,IAAIqD,EAAAA,EAAAA,YAAWoQ,GACbA,IAAcA,EAAU+/C,EAAUtxD,EAAQoD,OACrC,CACL,IAAMjD,EAAKH,EAAO6Q,QAClBU,GAAY+F,EAAAA,EAAAA,SAAQ/F,GAAaA,EAAU8M,KAAK,KAAO9M,EACvDA,GAAYiE,EAAAA,EAAAA,UAASjE,GAAapR,MAAAA,OAAtB,EAAsBA,EAAImwB,QAAQ/e,GAAaA,EAG7D,IAAKA,EAAW,OAAO,SAAKhT,GAAZ,IAAoB8yD,OAAQ,IAG5C,IAAIz5C,EAAY5X,EAAOlC,IAAI,aAE3B,IAAIqD,EAAAA,EAAAA,YAAWyW,GACbA,IAAcA,EAAU05C,EAAUtxD,EAAQoD,QAE1C,IAAkB,IAAdwU,GAAuB5X,EAAO8mD,aAAa,SAAWwK,EAASxzD,IAAI,YACrE8Z,GAAY,MACP,CACL,IAAMzX,EAAKmxD,EAASzgD,QACpB+G,GAAYN,EAAAA,EAAAA,SAAQM,GAAaA,EAAUyG,KAAK,KAAOzG,EACvDA,GAAYpC,EAAAA,EAAAA,UAASoC,GAAazX,MAAAA,OAAtB,EAAsBA,EAAImwB,QAAQ1Y,GAAaA,EAI/D,OAEA,SAAYrZ,GAAZ,GAFKqZ,EAEL,CAAoBrZ,QAAQ,GAFZ,CAAoB8yD,OAAQ,KAK9CE,QAhcF,WAicI,OAAOnE,GAGTnR,QApcF,SAocUh6C,GACN,OAAOmrD,EAAenrD,IAAO,MAG/B6M,QAxcF,WAycI,IAAM3E,EAAM7N,KAAKi1D,UACjBrzC,OAAOC,KAAKhU,GAAKpB,SAAQ,SAAA9G,GAAE,OAAIkI,EAAIlI,IAAOkI,EAAIlI,GAAIzC,YAClD2tD,GAAiBA,EAAc3tD,SAC/B,CAAC2F,EAAG/F,EAAIguD,EAAgBtqC,EAAWqqC,GAAepkD,SAAQ,SAAArC,GAAC,MAAS,MACpEpK,KAAK8C,GAAK,Q,6uCClpBKoyD,EAAAA,SAAAA,I,2HACnB,WACE,MAAqCl1D,KAAKqT,WAAlC3P,EAAR,EAAQA,OAAQS,EAAhB,EAAgBA,KAAM4jD,EAAtB,EAAsBA,WAGtB,IAFC/nD,KAAKwB,IAAI,OAASxB,KAAK2D,IAAI,KAAMQ,GAE9BT,EAAQ,CACV1D,KAAK0D,OAASA,EACd1D,KAAK+Y,MAAM,UACX,IAAMo8C,EAAcpN,EAAa,UAAH,OAAa5jD,GAAb,4BAA2CA,GACzEnE,KAAKgD,SAASU,EAAQyxD,EAAan1D,KAAKo1D,kB,mBAQ5C,WACE,OAAOp1D,KAAKwB,IAAI,Q,qBAOlB,WACE,OAAOxB,KAAKwB,IAAI,U,qBAOlB,WACE,OAAOxB,KAAKwB,IAAI,U,sBASlB,WAAoB,MAAXoH,EAAW,uDAAJ,GACd,EAA0BA,EAAlBysD,OAAAA,OAAR,SACM1vD,EAAK3F,KAAKytB,QACVtpB,EAAOnE,KAAKwB,IAAI,UAAYxB,KAAKwpC,UACvC,OAAQ6rB,IAAM,UAAIr1D,KAAK8C,UAAT,aAAI,EAASkD,EAAT,qCAAyCL,MAAUxB,I,sBAQvE,WACE,OAAOnE,KAAKs1D,mB,sBAUd,SAASzvD,GAAkB,IAAX+C,EAAW,uDAAJ,GACf2sD,EAAY,GAEd3sD,EAAK4sD,UACPD,EAAUz/B,YAAa,GAGzB91B,KAAKy1D,eAAe5vD,EAAO0vD,IAEN,IAAjB3sD,EAAK4sD,UACPx1D,KAAKy1D,eAAe,IACpBz1D,KAAKy1D,eAAe5vD,M,mBAIxB,WACE,OAAO7F,KAAKqT,a,2BAGd,WAAgB,MACRxN,EAAQ7F,KAAKs1D,iBACnBt1D,KAAK2D,IAAI,CAAEkC,MAAAA,GAAS,CAAE6vD,WAAY,IAClC,UAAA11D,KAAK8C,UAAL,SAAS4B,QAAQ,eAAgB,CAC/BixD,MAAO31D,KACPwmB,UAAWxmB,KAAK0D,W,4BAIpB,WACE,IAEImC,EAFE1B,EAAOnE,KAAKwB,IAAI,QAChBkC,EAAS1D,KAAK0D,OASpB,OALEmC,EADE7F,KAAKwB,IAAI,cACHkC,EAAOlC,IAAI2C,GAEXT,EAAOktD,gBAAgBzsD,IAGzB2gB,EAAAA,EAAAA,aAAYjf,GAAiB,GAARA,I,4BAG/B,SAAeA,GAAkB,IAAX+C,EAAW,uDAAJ,GACrBlF,EAAS1D,KAAK0D,OACdS,EAAOnE,KAAKwB,IAAI,QACtB,KAAIsjB,EAAAA,EAAAA,aAAYjf,GAAhB,CACA,IAAI+vD,EAAa/vD,EAQjB,GANc,UAAVA,EACF+vD,GAAa,EACM,SAAV/vD,IACT+vD,GAAa,GAGX51D,KAAKwB,IAAI,cACXkC,EAAOC,IAAIQ,EAAMyxD,EAAYhtD,OACxB,CACL,IAAMivB,EAAQ,EAAH,GAAQn0B,EAAOlC,IAAI,eAC9Bq2B,EAAM1zB,GAAQyxD,EACdlyD,EAAOC,IAAI,aAAck0B,EAAOjvB,O,+BAIpC,SAAkB/C,GAA6B,IAAtBgwD,EAAsB,uDAAd,EAAGjtD,EAAW,uDAAJ,GACnCktD,EAAQ,CAAEjwD,MAAAA,GAChB7F,KAAK2D,IAAImyD,EAAT,OAAqBltD,GAArB,IAA2BktB,WAAY,KAGnC+/B,IACF71D,KAAK2D,IAAI,QAAS,GAAIiF,GACtB5I,KAAK2D,IAAImyD,EAAOltD,M,0BAIpB,WACE,IAEI/C,EAFEnC,EAAS1D,KAAK0D,OACdS,EAAOnE,KAAKwB,IAAI,QAGtB,GAAIkC,EAAQ,CACV,IAAMm0B,EAAQn0B,EAAOlC,IAAI,cACzBqE,EAAQ7F,KAAKwB,IAAI,cAAgBkC,EAAOlC,IAAI2C,GAAQ0zB,EAAM1zB,GAG5D,OAAO0B,GAAS7F,KAAKwB,IAAI,UAAYxB,KAAKwB,IAAI,e,EAtJ7B0zD,C,QAAcrzD,GA0JnCqzD,EAAMpzD,UAAU2N,SAAW,CACzBnO,KAAM,OACNwR,MAAO,GACP3O,KAAM,GACNmnB,IAAK,GACLD,IAAK,GACLjnB,KAAM,GACN2xD,KAAM,EACNlwD,MAAO,GACPnC,OAAQ,GACRs9B,QAAS,GACT8mB,YAAa,GACbC,WAAY,EACZvlD,QAAS,I,8bC9KUwzD,EAAAA,SAAAA,I,2HACnB,SAAWvxD,GAAoB,IAAdjC,EAAc,uDAAJ,GACzBxC,KAAK8C,GAAKN,EAAQM,GAClB9C,KAAKgD,SAAShD,KAAM,MAAOA,KAAKc,WAChCd,KAAKgD,SAAShD,KAAM,QAASA,KAAKi2D,e,yBAGpC,SAAYxxD,GAAoC,6DAAJ,GAAI,IAA5BkyB,eAAAA,OAA4B,MAAX,GAAW,EAC9CA,EAAelqB,SAAQ,SAAAxJ,GAAK,OAAIA,EAAMyB,QAAQ,e,uBAGhD,SAAUzB,GACRA,EAAMH,GAAK9C,KAAK8C,GAChB,IAAMY,EAAS1D,KAAK0D,OAEhBA,IACFT,EAAMS,OAASA,K,uBAInB,SAAUA,GACR1D,KAAK0D,OAASA,I,iBAGhB,SAAI4M,EAAQuc,GACV,IAAM/pB,EAAK9C,KAAK8C,GAGhB,IAAIoW,EAAAA,EAAAA,UAAS5I,KAAW0K,EAAAA,EAAAA,SAAQ1K,GAAS,CACvC,IAAMw+B,EAAKhsC,GAAMA,EAAGtB,KAAOsB,EAAGtB,IAAI,gBAE5B00D,ECpCZ,WAAe,IAACxzD,EAAD,uDAAU,GAAV,MAAkB,CAM/Bw1B,MAN+B,SAMzBtc,GACJ,IAAMu6C,EAAO,GAEQ,iBAAVv6C,IAAoBA,EAAQ,CAACA,IAExC,IAAK,IAAIxR,EAAI,EAAGA,EAAIwR,EAAM3U,OAAQmD,IAAK,CACrC,IAAMkH,EAAM,GACNilB,EAAO3a,EAAMxR,GACnBkH,EAAInN,KAAOoyB,EAGJ,WADCA,IAEJjlB,EAAIhQ,KAAO,SACXgQ,EAAI0vB,SAAU,EACd1vB,EAAI9O,QAAUE,EAAO0zD,eAIzBD,EAAKvoD,KAAK0D,GAGZ,OAAO6kD,IDSME,CADIvnB,GAAMA,EAAG5+B,cAGpBgJ,EAAAA,EAAAA,UAAS5I,KACXA,EAAS,CAACA,IAGZ,IAAK,IAAIlG,EAAI,EAAG89B,EAAM53B,EAAOrJ,OAAQmD,EAAI89B,EAAK99B,IAAK,CACjD,IAAM4yC,EAAM1sC,EAAOlG,GACbnH,GAAQiW,EAAAA,EAAAA,UAAS8jC,GAAOkZ,EAAGh+B,MAAM8kB,GAAK,GAAKA,EACjD/5C,EAAMS,OAAS1D,KAAK0D,OACpB4M,EAAOlG,GAAKnH,GAIhB,OAAOuC,EAAAA,WAAAA,UAAAA,IAAAA,MAA+BxF,KAAM,CAACsQ,EAAQuc,Q,EA7CpCmpC,CAAexwD,EAAAA,Y,6/BAiDpCwwD,EAAOl0D,UAAUmB,MAAQiyD,EEjCzB,IAAMoB,EAAe,SAAAtZ,GACnB,OAAOA,EAAIjxC,QAAQ,sBAAuB,SAGtC4wB,EAAc,SAAA75B,GAAE,OAAIA,GAAMA,EAAGoN,UAAU,qBAEhCmwB,EAAY,iBACZk2B,EAAa,YACbC,EAAY,WACZC,EAAgB,gBAChB9B,EAAY,mBACZC,EAAkB,GAAH,OAAMD,EAAN,WA6DPnP,EAAAA,SAAAA,I,qHAInB,c,qBAQA,SAAQkR,EAAU7wD,EAAO6b,M,qBAKzB,c,wBAEA,WAAiC,WAAtB9F,EAAsB,uDAAd,GAAIiR,EAAU,uDAAJ,IAC3B3V,EAAAA,EAAAA,SAAQlX,KAAM,gBAAiB,cAAe,iBAC9C,IAAM8C,EAAK+pB,EAAI/pB,GAGT2R,EAASzU,KAAKyU,SACdkiD,EAAaliD,GAAUA,EAAOpB,WAC9BupC,EAAY58C,KAAKwB,IAAI,aAG3B,GAFAo7C,GAAa58C,KAAK2D,IAAI,aAAaqX,EAAAA,EAAAA,SAAQ4hC,GAAaA,EAAY,CAACA,IAEjE+Z,GAAcA,EAAW/Z,YAAcA,EAAW,CACpD,IAAMga,EAAU,GACVC,EAAcF,EAAW/Z,UAC/Bia,EAAYpqD,SAAQ,SAAA8pB,GAAI,OAAKqgC,EAAQrgC,GAAQ9hB,EAAOjT,IAAI+0B,MACxDqgC,EAAQha,UAAYia,EACpB72D,KAAK2D,IAAL,OAAcizD,GAAYh7C,IAuC5B,GAnCIiR,GAAOA,EAAInqB,QAAUmqB,EAAInqB,OAAO2iD,aAAa1wC,QAAQ3U,KAAKwB,IAAI,aAAe,GAC/ExB,KAAK2D,IAAI,QAAQ,GAGnBkpB,EAAI/pB,GAAKA,EACT9C,KAAK6sB,IAAMA,EACX7sB,KAAK8C,GAAKA,EACV9C,KAAKob,MAAQyR,EAAIzR,MACjBpb,KAAK0C,OAASmqB,EAAInqB,QAAU,GAC5B1C,KAAK2D,IAAI,aAAT,QACM1B,EAAAA,EAAAA,QAAOjC,KAAM,YAAYqT,YAAc,IACvCrT,KAAKwB,IAAI,eAAiB,KAEhCxB,KAAK82D,KAAOtR,EAAUpI,SAASp9C,KAAM6sB,GACrC7sB,KAAKowD,cACLpwD,KAAK+2D,aACL/2D,KAAKqwD,iBACLrwD,KAAKsmD,cACLtmD,KAAKg3D,kBACLh3D,KAAKgD,SAAShD,KAAM,gBAAiBA,KAAKi3D,eAC1Cj3D,KAAKgD,SAAShD,KAAM,iBAAkBA,KAAKk3D,YAC3Cl3D,KAAKgD,SAAShD,KAAM,oBAAqBA,KAAKm3D,aAC9Cn3D,KAAKgD,SAAShD,KAAM,uBAAwBA,KAAKo3D,YACjDp3D,KAAK2P,GAAG,iBAAkB3P,KAAKq3D,iBAC/Br3D,KAAK2P,GAAG,SAAU3P,KAAKm+C,YACvBn+C,KAAK2P,GAAGilD,EAAiB50D,KAAKs3D,gBAC9Bt3D,KAAK2D,IAAI,SAAU,IACnB3D,KAAKyqB,MAAQ,GAGb,CAAC,UAAW,SAAU,cAAche,SAAQ,SAAAtI,GAC1C,IAAMiB,EAAS,cAAH,OAA0B,eAATjB,EAAwB,SAAW,IAChE,EAAKnB,SAAS,EAAKxB,IAAI2C,GAAOiB,EAAOqB,QAAQ,sCAAIy6B,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKZ,WAAL,QAAI,CAAYn8B,GAAZ,OAAqB+8B,WAGhFrU,EAAI+I,UAAW,CAElB,IAAMoH,EAAOl6B,GAAMA,EAAGtB,IAAI,eAC1B,EAAyBxB,KAAKqT,WAAtB8I,EAAR,EAAQA,OAAQ7a,EAAhB,EAAgBA,KACZ6a,GAAU6gB,GACZA,EAAKokB,cAAcjlC,EAAQ,GAAI,CAAE6hC,MAAO,OAAF,OAAS18C,KAGjDtB,KAAKu3D,YACLv3D,KAAKoD,OACLpD,KAAKw3D,oBAAsBx3D,KAAKy3D,aAChC30D,GAAMA,EAAG4B,QAAQ,mBAAoB1E,S,uBAIzC,WAAqB,IAAX4I,EAAW,uDAAJ,GACP9F,EAAO9C,KAAP8C,GACF+9C,EAAK/9C,GAAMA,EAAGtB,IAAI,eAClB82B,EAAQt4B,KAAK0U,aACfmsC,IAAO7gD,KAAKywD,UACd5P,EAAGh6C,IAAIyxB,GACPuoB,EAAGh6C,IAAI7G,KAAKw+C,gBACZx+C,KAAKywD,QAAU,GAEjB7nD,EAAK8uD,WAAap/B,EAAM5d,KAAI,SAAA7R,GAAC,OAAIA,EAAE0uD,UAAU3uD,Q,0BAG/C,WACE,IAAQ9F,EAAO9C,KAAP8C,GACF+9C,EAAK/9C,GAAMA,EAAGtB,IAAI,eACpBq/C,IACFA,EAAG39C,OAAOlD,KAAK0U,cACfmsC,EAAG39C,OAAOlD,KAAKw+C,uBACRx+C,KAAKywD,W,wBAIhB,SAAWt+C,EAAGvJ,GACZ,IAAMw1C,EAAUp+C,KAAKy8C,oBACrB,CAAC,SAAU,OAAQ,UAAW,UAAUhwC,SAAQ,SAAAtI,GAAI,cAAWi6C,EAAQj6C,OAElEk6C,EAAAA,EAAAA,YAAWD,KACdp+C,KAAK23D,YAAY/uD,GACjB5I,KAAK43D,mBAAmB,CAAEpxC,UAAWxmB,KAAMo+C,QAAAA,EAAS57C,QAASoG,O,yBAIjE,SAAYA,GACV,IAAQ9F,EAAc9C,KAAd8C,GACR,CADsB9C,KAAVob,MACJtY,GAAI2J,SAAQ,SAAA4b,GAAE,OAAIA,GAAMA,EAAGi2B,UAAU11C,Q,gCAG/C,SAAmBgT,GACjB5b,KAAK0E,QAAQiwD,EAAW/4C,GACxB5b,KAAKs3D,eAAe17C,K,4BAGtB,SAAeA,GACb,IAAMnH,EAASzU,KAAKyU,SACpBA,GAAUA,EAAO/P,QAAQkwD,EAAiBh5C,K,6BAG5C,WACE5b,KAAKsgC,WAAW,a,gBAWlB,SAAGh/B,GACD,QAAUtB,KAAKwB,IAAI,SAAWF,K,mBAOhC,WACE,OAAOtB,KAAKqT,a,mBAOd,WACE,IAAQ5Q,EAAezC,KAAfyC,WACR,OAAOA,EAAaA,EAAWkS,QAAQ3U,MAAQ,I,yBASjD,SAAY6F,GACV,OAAO7F,KAAK2D,IAAI,QAASkC,K,kBAY3B,SAAKmhD,GACH,IAAM/kD,EAAS,GACT41D,EAAO73D,KAAKmD,KAAKwB,IAAImD,KAAKk/C,GAOhC,OANA6Q,EAAKzvD,MAAK,SAAAgC,GACR,IACMnH,EADM40D,EAAKC,GAAG1tD,GACFN,KAAK,SACvB7G,GAAShB,EAAO2L,KAAK3K,MAGhBhB,I,sBAaT,SAASX,GACP,IAAMW,EAAS,GAOf,OANa,SAAP6F,EAAO4M,GAAU,OACrBA,EAAWjI,SAAQ,SAAAC,GACjBA,EAAKm/C,GAAGvqD,IAASW,EAAO2L,KAAKlB,GAC7B5E,EAAK4E,EAAKgI,iBAEd5M,CAAK9H,KAAK0U,cACHzS,I,qBAYT,SAAQ+kD,GACN,IAAM/kD,EAASjC,KAAKmD,KAAKwB,IAAIozD,QAAQ/Q,GACrC,OAAO/kD,EAAOgF,QAAUhF,EAAO6H,KAAK,W,yBAatC,SAAYxI,GAGV,IAFA,IAAImT,EAASzU,KAAKyU,SAEXA,IAAWA,EAAOo3C,GAAGvqD,IAC1BmT,EAASA,EAAOA,SAGlB,OAAOA,I,sBAST,SAAS+R,GACP,IAAIvkB,GAAS,EACb,IAAKukB,EAAW,OAAOvkB,EACvB,IAAMstC,EAAW,SAAXA,EAAW76B,IACdzS,GACCyS,EAAWjI,SAAQ,SAAAC,GACbA,IAAS8Z,IAAWvkB,GAAS,IAChCA,GAAUstC,EAAS7iC,EAAKgI,kBAI/B,OADA66B,EAASvvC,KAAK0U,cACPzS,I,wBAOT,WACEjC,KAAK0E,QAAQ,c,yBAWf,SAAYb,GACV,IAAMY,EAAOzE,KAAKyC,WACZqE,EAAKrC,EAAKkQ,QAAQ3U,MAExB,OADAyE,EAAKvB,OAAOlD,MACLyE,EAAKoC,IAAIhD,EAAI,CAAEiD,GAAAA,M,yBAOxB,SAAYqL,EAAG8lB,GAAc,WAAXrvB,EAAW,uDAAJ,GACjBivB,EAAQ73B,KAAKwB,IAAI,cAEjBq7B,EAAUhF,EAAMhiB,MACtBgnB,GAAW78B,KAAKg4D,SAASn7B,UAClBhF,EAAMhiB,MAGb,IAAMc,EAAQkhB,EAAMlhB,MACpBA,GAAS3W,KAAKkiD,SAASvrC,UAChBkhB,EAAMlhB,MAEb,IAAMshD,EAAW,KAAKj4D,KAAK0hB,SAAS,eAC9Bw2C,GAAOC,EAAAA,EAAAA,aAAYF,EAAUj4D,KAAKwB,IAAI,gBAC5CqgB,EAAAA,EAAAA,MAAKq2C,GAAMzrD,SAAQ,SAAAq3C,GAAE,OAAI,EAAKp/C,QAAL,4BAAkCo/C,GAAM,EAAMoU,EAAKpU,GAAKl7C,Q,2BAWnF,SAAcivB,GAAkB,IAAXjvB,EAAW,uDAAJ,GAE1B,OADA5I,KAAK2D,IAAI,aAAT,KAA4Bk0B,GAASjvB,GAC9B5I,O,2BAWT,SAAc63B,GAAkB,IAAXjvB,EAAW,uDAAJ,GAC1B,OAAO5I,KAAKo4D,cAAL,OAEAp4D,KAAK4wD,cAAc,CAAEyH,QAAS,KAC9BxgC,GAELjvB,K,8BAaJ,WAAwC,IAAvBivB,EAAuB,uDAAf,GAAIjvB,EAAW,uDAAJ,GAC5B0vD,EAAUt6C,MAAMhD,QAAQ6c,GAASA,EAAQ,CAACA,GAC1C0gC,EAAWv4D,KAAK4wD,gBAEtB,OADA0H,EAAQ59C,KAAI,SAAAtQ,GAAC,cAAWmuD,EAASnuD,MAC1BpK,KAAKo4D,cAAcG,EAAU3vD,K,sBAOtC,WAAqC,IAA5BpG,EAA4B,uDAAlB,GAAIg2D,EAAc,uDAAJ,GACzB11D,EAAK9C,KAAK8C,GACVyzB,GAAOrd,EAAAA,EAAAA,UAAS1W,GAAWA,EAAU,GACrCoG,EAAO2tB,EAAOiiC,EAAUh2D,EAE9B,GAAIM,GAAMA,EAAGoN,UAAU,sBAAwBtH,EAAK6vD,OAAQ,CAC1D,IAAMnlB,EAAQxwC,EAAGtB,IAAI,SACfk3D,EAAK51D,EAAGtB,IAAI,eACZi2B,EAAOihC,EAAGlW,UAAUxiD,KAAKytB,QAAlB,GAA6B6lB,MAAAA,GAAU1qC,IAGpD,GAFA5I,KAAKy3B,KAAOA,EAERA,EACF,OAAOA,EAAK3X,SAASyW,GAIzB,OAAO+pB,EAAAA,EAAAA,SAAAA,KAAwBtgD,KAAMu2B,K,sBAUvC,WAA+B,WAAtBA,EAAsB,uDAAf,GAAI3tB,EAAW,uDAAJ,GACnB9F,EAAK9C,KAAK8C,GACR+pB,EAAQ7sB,KAAR6sB,IAER,GAAI/pB,GAAMA,EAAGoN,UAAU,sBAAwB2c,EAAI+I,YAAchtB,EAAK6vD,OAAQ,CAC5E,IAAM9hD,EAAQ3W,KAAKwB,IAAI,UAAY,GAEnC+0B,EAAO,OADPA,GAAOrd,EAAAA,EAAAA,UAASqd,GAAQv2B,KAAK24D,WAAWpiC,GAAQA,GAC3B5f,GACrB,IAAM28B,EAAQxwC,EAAGtB,IAAI,SACfk3D,EAAK51D,EAAGtB,IAAI,eACZo3D,EAAW54D,KAAK8f,SAASlX,GAC/B5I,KAAKy3B,KAAOihC,EAAGrW,UAAUriD,KAAKytB,QAAS8I,EAA3B,OAAsC3tB,GAAtC,IAA4C0qC,MAAAA,KACxD,IAAM4kB,GAAOC,EAAAA,EAAAA,aAAYS,EAAUriC,GACnCv2B,KAAK2D,IAAI,QAAS,GAAI,CAAE6V,OAAQ,KAChCqI,EAAAA,EAAAA,MAAKq2C,GAAMzrD,SAAQ,SAAAq3C,GAAE,OAAI,EAAKp/C,QAAL,uBAA6Bo/C,YAEtDvtB,EAAO+pB,EAAAA,EAAAA,SAAAA,MAAyBtgD,KAAM+jB,WAGxC,OAAOwS,I,2BAOT,WAAyB,IAuBjBsiC,EAvBMjwD,EAAW,uDAAJ,GACX9F,EAAO9C,KAAP8C,GACF+5B,EAAU,GACVxpB,EAAa,KAAKrT,KAAKwB,IAAI,eAC3B6sC,EAAKvrC,GAAMA,EAAGtB,IAAI,mBAClBmE,EAAK3F,KAAKytB,QAShB,GANK7kB,EAAKyvD,UACRr4D,KAAKwB,IAAI,WAAWiL,SAAQ,SAAAmJ,GAAG,OAAIinB,EAAQjvB,MAAKsL,EAAAA,EAAAA,UAAStD,GAAOA,EAAMA,EAAIpU,IAAI,YAC9Eq7B,EAAQ51B,SAAWoM,EAAWwC,MAAQgnB,EAAQ9a,KAAK,QAIhDnZ,EAAKkwD,QAAS,CACjB,IAAMniD,EAAQ3W,KAAKwB,IAAI,UACnB2X,EAAAA,EAAAA,UAASxC,MAAW0nC,EAAAA,EAAAA,YAAW1nC,KACjCtD,EAAWsD,MAAQ3W,KAAK48B,cAAc,CAAE67B,OAAQ,MAK/Cj3B,EAAAA,EAAAA,KAAInuB,EAAY,QAKfspB,EAAY75B,GACd+1D,EAAQxqB,GAAMA,EAAG7sC,IAAImE,EAAI0oC,EAAGkU,SAASwW,UAC3BviC,EAAAA,EAAAA,SAAQx2B,KAAK8f,cACvB+4C,EAAQ,IAIN74D,KAAKg5D,eAAiBh5D,KAAKi5D,kBAC7BJ,EAAQ,GAGNA,IACFxlD,EAAW1N,GAAKA,IAIpB,OAAO0N,I,sBAaT,SAASwpB,GACP,IAAMsS,EAAQnvC,KAAK8C,GAAGtB,IAAI,mBAAmBoD,SAASi4B,GACtD,OAAO78B,KAAKwB,IAAI,WAAWqF,IAAIsoC,K,sBAajC,SAAStS,GAEP,OADA78B,KAAKwB,IAAI,WAAWiQ,QACbzR,KAAK4E,SAASi4B,K,yBAavB,SAAYA,GACV,IAAMhG,EAAU,GAChBgG,GAAU7hB,EAAAA,EAAAA,SAAQ6hB,GAAWA,EAAU,CAACA,GACxC,IAAMtH,EAAYv1B,KAAKwB,IAAI,WACrBF,EAAOihD,EAAAA,EAAAA,WAUb,OARA1lB,EAAQpwB,SAAQ,SAAAysD,GACEA,EAAOz3D,MAAM,KACrBgL,SAAQ,SAAAtI,GACd,IAAMk6B,EAAW9I,EAAU1kB,MAAM,CAAE1M,KAAAA,EAAM7C,KAAAA,IAAQ,GACjD+8B,GAAYxH,EAAQjpB,KAAK2nB,EAAUryB,OAAOm7B,UAIvCxH,I,wBAOT,WACE,IACMsiC,EADOn5D,KAAK4wD,gBACI/6C,MACtB,OAAOsjD,EAAWA,EAAS13D,MAAM,KAAO,K,yBAG1C,SAAYH,EAAM83D,GAAiB,IAAXxwD,EAAW,uDAAJ,GACvBywD,EAASr5D,KAAKg5D,cACdM,EAAUt5D,KAAKi5D,gBAChBI,GAAWC,IAChBt5D,KAAK8C,GAAGy2D,IAAIj4D,EAAM,CAAE2B,MAAOjD,KAAMo5D,KAAAA,EAAMI,QAAS,UAAW5wD,KAAAA,M,wBAG7D,WACM5I,KAAKy5D,cACTz5D,KAAK2P,GAAG,SAAU3P,KAAK05D,eACvB15D,KAAKy5D,YAAc,K,wBAGrB,WACE,OAAOz+C,EAAAA,EAAAA,SAAQhb,KAAKwB,IAAI+0D,M,8BAG1B,WACE,SAAUv2D,KAAK25D,eAAgB35D,KAAKwB,IAAIg1D,M,2BAG1C,WACE,IAAM/hD,EAASzU,KAAKyU,SAEpB,OADazU,KAAKw3D,sBACD/iD,GAAWA,IAAWA,EAAOklD,eAAiBllD,EAAOukD,iB,8BAGxE,WACE,IAAKh5D,KAAKw3D,oBAAsBx3D,KAAK45D,gBAAiB,OAAO,EAC7D,IAAMC,GAAe75D,KAAK25D,aAAe35D,KAAOA,KAAKg5D,eAAec,eAC9DC,EAAU/5D,KAAK85D,eAErB,OADoBC,EAAQJ,aAAeI,EAAUA,EAAQf,iBACtCa,I,0BAGzB,WACE,IAAQ/2D,EAAO9C,KAAP8C,GACR,OAAOA,EAAKA,EAAGtB,IAAI,iBAAiByzD,UAAY,K,yBAGlD,WACE,IAAI+E,EAAOh6D,KAAKwB,IAAIg1D,GACpB,GAAIwD,IAAQ9gD,EAAAA,EAAAA,UAAS8gD,GAAO,CAC1B,IAAMC,EAAMj6D,KAAKk6D,eAAeF,GAC5BC,GACFD,EAAOC,EACPj6D,KAAK2D,IAAI6yD,EAAWyD,IAEpBD,EAAO,EAGX,OAAOA,I,0BAGT,WAAe,WACTG,EAAQn6D,KAAKwB,IAAI+0D,GASrB,OARI4D,IAASn/C,EAAAA,EAAAA,SAAQm/C,KACnBA,EAAM1tD,SAAQ,SAACutD,EAAMI,GACfJ,IAAQ9gD,EAAAA,EAAAA,UAAS8gD,KACnBG,EAAMC,GAAO,EAAKF,eAAeF,OAGrCG,EAAQA,EAAMnkC,QAAO,SAAAgkC,GAAI,OAAIA,KAAS9gD,EAAAA,EAAAA,UAAS8gD,OAE1CG,I,0BAGT,WAAwB,IAAX5jC,EAAW,uDAAJ,GACZ8jC,EAAOr6D,KAAKwB,IAAIi1D,GACtB,EAAclgC,EAAK90B,MAAM,KAAzB,eAAOoa,EAAP,KACMD,EAAQ2a,IAAS1a,EAAM,CAAC0a,EAAM1a,GAAO,CAAC0a,GAC5C,OAAgB,IAAT8jC,IAAkBr/C,EAAAA,EAAAA,SAAQq/C,IAASz+C,EAAMuG,MAAK,SAAAyU,GAAC,OAAIyjC,EAAK1lD,QAAQiiB,IAAM,O,2BAG/E,WAAyB,WAAXhuB,EAAW,uDAAJ,GACf3G,EAAS,GACLa,EAAO9C,KAAP8C,GACAs7C,EAAYx1C,EAAZw1C,QACFkc,EAAcx3D,GAAMA,EAAGtB,IAAI,WAEjC,GACEoH,EAAK2xD,cACL3xD,EAAK4xD,aACL5xD,EAAKytB,WACJikC,GAEAlc,GAAWp+C,KAAKy6D,aAAarc,GAE9B,OAAOn8C,EAGT,IAAMq3D,EAAUt5D,KAAKi5D,gBAAkB,GACjCI,EAASr5D,KAAKg5D,cACdnrD,EAAMwrD,EAAS,CAACA,GAAJ,eAAgBA,EAAOJ,gBAAkB,KAAOK,EAMlE,OALAr3D,EAAS4L,EACNmoB,QAAO,SAAA5T,GAAC,OAAIA,IAAM,KAElB4T,QAAO,SAAA5T,GAAC,QAAMg8B,GAAWh8B,EAAEq4C,aAAarc,S,0BAK7C,SAAax1C,GAIX,IAHA,IAAI3G,EAASjC,KACTyU,EAASzU,KAAKyU,OAAO7L,GAElB6L,IAAWA,EAAOklD,cAAgBllD,EAAOukD,gBAC9C/2D,EAASwS,EACTA,EAASA,EAAOA,OAAO7L,GAGzB,OAAO3G,I,2BAGT,SAAckQ,GAAc,WAAXvJ,EAAW,uDAAJ,GAChBw1C,EAAUp+C,KAAKy8C,oBACf5kB,EAAQumB,EAAQ/qC,YAAc,GASpC,UARO+qC,EAAQzzC,cACRyzC,EAAQhvC,YACRgvC,EAAO,iBACPA,EAAO,gBACPA,EAAO,qBACPA,EAAQ/qC,kBACRwkB,EAAMlyB,IACR04C,EAAAA,EAAAA,YAAWxmB,KAAQumB,EAAQ/qC,WAAawkB,KACxCwmB,EAAAA,EAAAA,YAAWD,GAAU,CACxB,IAAMgb,EAAOp5D,KAAK06D,cAAc9xD,IAEhCiZ,EAAAA,EAAAA,MAAKu8B,GAAS1jC,KAAI,SAAA6b,GACZ,EAAKkkC,aAAalkC,WAAc6nB,EAAQ7nB,MAG9Cv2B,KAAK26D,YAAY,QAASvB,EAAM,CAAExwD,KAAAA,EAAMw1C,QAAAA,IACxCgb,EAAK3sD,SAAQ,SAAAg9C,GACX,IAAMmR,EAAe,KAAKxc,IAE1Bv8B,EAAAA,EAAAA,MAAK+4C,GAAclgD,KAAI,SAAA6b,GACjBkzB,EAAMgR,aAAalkC,WAAcqkC,EAAarkC,MAEpDkzB,EAAM9lD,IAAIi3D,EAAV,GAA0BL,aAAc,GAAS3xD,U,yBAKvD,SAAYuJ,EAAGtJ,GAAc,WAAXD,EAAW,uDAAJ,GACjBwwD,EAAOp5D,KAAK06D,cAAc9xD,GAChC5I,KAAK26D,YAAY,UAAWvB,EAAM,CAAExwD,KAAAA,IACpCwwD,EAAK3sD,SAAQ,SAAAg9C,GAEXA,EAAM9lD,IAAI,UAAW,EAAKnC,IAAI,WAAY,CAAE+4D,aAAc,OAE5Dv6D,KAAK23D,YAAY/uD,K,2BAGnB,SAAcuJ,EAAGtJ,EAAGtG,GAAG,WACfs4D,EAAQt4D,GAAKsG,GAAK,GAElBiyD,EAAW,CAAEP,aADgBM,EAA3BN,aACyBlkC,SADEwkC,EAAbxkC,UAEhB0kC,EAAS5oD,EAAE0a,IAAI+I,UAGrB,GAAKrzB,EAWE,GAAIA,EAAEsE,IAAK,CAChB,IAAIm0D,EAAiB,GACfC,IAAej7D,KAAKi5D,eACpBG,EAAOp5D,KAAK06D,cAAL,OACRI,GADQ,IAEX1c,QAAS,oBAEX,GAAIgb,EAAKnyD,OAAQ,CACf,IAAMi0D,EAAU/oD,EAAE6mD,cAClBgC,GAAkBE,EAAUA,EAAQjC,eAAiB9mD,EAAE8mD,iBAAmB,IAC1E+B,GAAiB,OAAIA,IACNptD,KAAKstD,GAAoB/oD,IAEzC4oD,GACC/6D,KAAK26D,YAAY,MAAOvB,EAAM,CAC5BxwD,KAAMrG,EACNy4D,eAAgBA,EAAetgD,KAAI,SAAA7R,GAAC,OAAIA,EAAEsyD,OAC1ChsB,MAAOh9B,EAAEgpD,MAIb/B,EAAK3sD,SAAQ,SAAAutD,GACX,IAAMD,EAAUC,EAAKF,eAKfsB,EAJWJ,EAAehlC,QAAO,SAAAqlC,GACrC,IAAMC,EAAWD,EAAUvB,aAAa,CAAEv8C,KAAM,IAChD,OAAOw8C,GAAWuB,GAAYA,IAAavB,KAC1C,IAC0B5nD,EAAEvO,MAAM,CAAEy1D,OAAQ,EAAGkC,UAAWN,IAC7DjB,EAAKhyD,OAAOozD,EAAZ,GAAwBb,aAAc,GAASh4D,WAG5C,CAEL,IAAMy3D,EAAO7nD,EAAE6mD,cASf,GARAgB,IACGz3D,EAAEqzB,WACHokC,EAAKr2D,IACH4yD,EACAyD,EAAKf,eAAejjC,QAAO,SAAA5rB,GAAC,OAAIA,IAAM+H,OAIrCA,EAAEynD,gBAAiB,CACtB,IAAMxb,EAAU,oBACR3uB,EAAUltB,EAAVktB,MACFhb,EAAStC,EAAEsC,SACX7L,EAAO,GAAE2xD,aAAcpoD,GAAM5P,GAC7Bi5D,EAAerpD,EAAEspD,mBACnBC,EAAS,SAAA1B,GACX,IAAM2B,EAAW3B,EAAKvlD,SACtBknD,IAAaA,EAASlB,aAAarc,IAAY4b,EAAK92D,OAAO0F,IAGzDwwD,EAAQ3kD,EAAOgmD,aAAarc,GAAuC,GAA5BjsC,EAAEuoD,cAAcI,GAEvDU,IACFpC,EAAO3kD,EAAOimD,cAAP,OAA0BI,GAA1B,IAAoC1c,QAAAA,KAC3Csd,EAAS,SAAA1B,GACP,IAAMz4C,EAAWy4C,EAAKtlD,aAAa5N,GAAG2oB,GACtClO,GAAYA,EAASre,OAAT,GAAkBq3D,aAAc9lD,GAAW7L,OAI1DmyD,GACC/6D,KAAK26D,YAAY,SAAUvB,EAAM,CAC/BxwD,KAAMrG,EACNs0B,QAAS1kB,EAAEgpD,IACXK,aAAAA,IAEJpC,EAAK3sD,QAAQivD,QAhFT,CACN,IAAMtC,EAAOp5D,KAAK06D,cAAL,OACRI,GADQ,IAEX1c,QAAS,sBAEXp+C,KAAK26D,YAAY,QAASvB,EAAM,CAAE1kD,WAAYvC,EAAE7B,SAChD8oD,EAAK3sD,SAAQ,SAAAutD,GACX,IAAM4B,EAAUzpD,EAAE7B,OAAOoK,KAAI,SAAAkd,GAAG,OAAIA,EAAIh0B,MAAM,CAAEy1D,OAAQ,OACxDW,EAAKtlD,aAAajD,MAAMmqD,EAAxB,GAAmCrB,aAAc,GAAS1xD,OA4E9D7I,KAAK23D,YAAYkD,K,yBAGnB,SAAY1oD,EAAGtJ,GAAc,IAAXD,EAAW,uDAAJ,GACjB0E,EAAQ,iBACRuuD,EAAU77D,KAAKwB,IAAI,cAAcqU,OAAS,GAC1C0oC,EAAW,CAACv+C,KAAMsN,EAAOtN,KAAKowD,aAC9Bx6C,EAAM5V,KAAKwB,IAAI,YAAcq6D,EAC7BC,GAAS5iD,EAAAA,EAAAA,UAAStD,GAAOA,EAAInU,MAAM,KAAOmU,EAChD5V,KAAKyS,cAAL,MAAAzS,KAAsBu+C,GACtB,IAAM1hB,EAAU78B,KAAK+7D,iBAAiBD,GAChCvmC,EAAY,IAAIkpB,EAAAA,EAAU,IAKhC,OAJAz+C,KAAK2D,IAAI,UAAW4xB,EAAW3sB,GAC/B2sB,EAAU1uB,IAAIg2B,GACdtH,EAAU5lB,GAAG,mBAAoB3P,KAAKg8D,aACtCh8D,KAAKgD,SAAL,MAAAhD,KAAiBu+C,GACVv+C,O,4BAGT,WACE,IACMu+C,EAAW,CAACv+C,KADJ,oBACiBA,KAAKqwD,gBACpCrwD,KAAKyS,cAAL,MAAAzS,KAAsBu+C,GAGtB,IAAMjmB,EAAQ,IAAIy6B,EAAAA,EAAW,KAAM/yD,KAAK6sB,KACxCyL,EAAM7jB,OAASzU,KACf,IAAM0U,EAAa1U,KAAKwB,IAAI,cACtBy6D,GAAYj8D,KAAK6sB,IAAIqvC,cAK3B,OAJAl8D,KAAK2D,IAAI,aAAc20B,GACvB2jC,GAAYvnD,GAAc4jB,EAAMzxB,KAAIhC,EAAAA,EAAAA,YAAW6P,GAAcA,EAAW1U,MAAQ0U,EAAY1U,KAAK6sB,KACjGyL,EAAM3oB,GAAG,mBAAoB3P,KAAKm8D,eAClCn8D,KAAKgD,SAAL,MAAAhD,KAAiBu+C,GACVv+C,O,wBAGT,SAAWo+C,GACT,IAAQt7C,EAAO9C,KAAP8C,GACFwK,EAAQ,gBACdtN,KAAKyV,IAAInI,EAAOtN,KAAK+2D,YACrB/2D,KAAKo8D,eACL,IAAMvkC,EAAQ,KAAK73B,KAAKwB,IAAI,eACtB4kD,EAASpmD,KAAKwB,IAAI,UAWxB,OAVA4kD,EAAOh+C,MAAK,SAAAutD,GACV,IAAKA,EAAMn0D,IAAI,cAAe,CAC5B,IAAM2C,EAAOwxD,EAAMn0D,IAAI,QACjBqE,EAAQ8vD,EAAM0G,eAChBl4D,GAAQ0B,IAAOgyB,EAAM1zB,GAAQ0B,OAGrCugD,EAAOn/C,QAAUjH,KAAK2D,IAAI,aAAck0B,GACxC73B,KAAK2P,GAAGrC,EAAOtN,KAAK+2D,YACpB3Y,GAAWt7C,GAAMA,EAAG4B,QAAQ,qBACrB1E,O,6BAGT,WACE,IAAIA,KAAK6sB,IAAI+I,UAAb,CACA,IAAMW,EAAO,eACPgoB,EAAW,CAAC,UAAD,OAAWhoB,GAAQv2B,KAAKg3D,iBACzCh3D,KAAKyV,IAAL,MAAAzV,KAAYu+C,GACZ,IAAM+d,EAAYt8D,KAAK0hB,SAAS6U,IAAS,GACnCgmC,EAAWv8D,KAAKwB,IAAI+0B,IAAS,GAC7BimC,EAAcF,EAAU5hD,KAAI,SAAAxV,GAAC,uBAAcA,MAAK6c,KAAK,KACrD06C,EAAaF,EAAS7hD,KAAI,SAAAxV,GAAC,uBAAcA,MAAK6c,KAAK,KACzDy6C,GAAex8D,KAAKyV,IAAI+mD,EAAax8D,KAAK08D,qBAC1CD,GAAcz8D,KAAK2P,GAAG8sD,EAAYz8D,KAAK08D,qBACvC18D,KAAK2P,GAAL,MAAA3P,KAAWu+C,M,iCAGb,SAAoBpsC,EAAG8lB,GAAc,IAAXrvB,EAAW,uDAAJ,GAC3BA,EAAKktB,YACT91B,KAAK0E,QAAQ,c,oBAmBf,SAAOgQ,GAAuB,IAAX9L,EAAW,uDAAJ,GAClB+zD,GAAU3hD,EAAAA,EAAAA,SAAQtG,GAAcA,EAAa,CAACA,GAC9C0mD,EAAWuB,EAAQjiD,KAAI,SAAAkF,GAC3B,OAAI1G,EAAAA,EAAAA,UAAS0G,IAIXA,EAAKnd,YAAcmd,EAAKnd,WAAWS,OAAO0c,EAAM,CAAEgW,UAAW,IAHtDhW,KAOL3d,EAASjC,KAAK0U,aAAa7N,IAAIu0D,EAAUxyD,GAC/C,OAAOoS,EAAAA,EAAAA,SAAQ/Y,GAAUA,EAAS,CAACA,K,wBAiBrC,SAAWyS,GAAuB,IAAX9L,EAAW,uDAAJ,GACtBnE,EAAOzE,KAAKwB,IAAI,cAEtB,OAAIsjB,EAAAA,EAAAA,aAAYpQ,GACPjQ,GAEPA,EAAKgN,MAAM,KAAM7I,GACV8L,EAAa1U,KAAKgI,OAAO0M,EAAY9L,GAAQ,M,wBAcxD,SAAW6mB,GACT,OAAOzvB,KAAK0U,aAAa5N,GAAG2oB,GAAS,IAAM,O,0BAS7C,WACE,IAAMsV,EAAW/kC,KAAK0U,aACtB,OAAOqwB,EAASj+B,GAAGi+B,EAAS99B,OAAS,IAAM,O,mBAO7C,WAAiB,IAAX2B,EAAW,uDAAJ,GAEX,OADA5I,KAAK0U,aAAajD,MAAM,KAAM7I,GACvB5I,O,oBAUT,WAAkB,IAAX4I,EAAW,uDAAJ,GACNnE,EAAOzE,KAAKyC,YAAemG,EAAK2U,MAAQvd,KAAK48D,SACnD,OAAOn4D,EAAOA,EAAKgQ,OAAS,O,2BAO9B,WACEzU,KAAK2D,IAAI,gBAAiB,K,yBAO5B,WACE,IAAQb,EAAO9C,KAAP8C,GACFG,EAAQjD,KACR4C,EAAQE,GAAMA,EAAGoN,UAAU,gBAAmB,GAEpD,IAAKjN,EAAMzB,IAAI,YAAcsB,EAAI,CAC/B,IAAM0jD,EAAK,GACXvjD,EAAMR,YACJ+jD,EAAG54C,KAAK,CACNkF,MAAOhQ,EAAGgxC,QAAQ,WAClBxS,QAAS,SAAAzH,GAAE,OAAIA,EAAGxtB,WAAW,sBAAuB,CAAEu1B,MAAO,OAEjE3+B,EAAMzB,IAAI,cACRglD,EAAG54C,KAAK,CACNyF,WAAY,CAAEwC,MAAO,GAAF,OAAKjT,EAAL,oBAA6BqS,WAAW,GAC3DnC,MAAOhQ,EAAGgxC,QAAQ,QAClBxS,QAAS,aAEbr+B,EAAMzB,IAAI,aACRglD,EAAG54C,KAAK,CACNkF,MAAOhQ,EAAGgxC,QAAQ,QAClBxS,QAAS,cAEbr+B,EAAMzB,IAAI,cACRglD,EAAG54C,KAAK,CACNkF,MAAOhQ,EAAGgxC,QAAQ,UAClBxS,QAAS,eAEbr+B,EAAMU,IAAI,UAAW6iD,M,0BAIzB,SAAaqW,GAAe,IAAXj0D,EAAW,uDAAJ,GAClBk0D,EAAUD,GAAM78D,KAAKwB,IAAI,UAE7B,KAAMs7D,aAAmB9G,GAAS,CAChC8G,GAAUj4D,EAAAA,EAAAA,YAAWi4D,GAAWA,EAAQ98D,MAAQ88D,EAChD,IAAM1W,EAAS,IAAI4P,EAAO,GAAIh2D,KAAK6sB,KACnCu5B,EAAO55C,UAAUxM,MAEb88D,EAAQ71D,SACV61D,EAAQrwD,SAAQ,SAAAowD,GAAE,OAAIA,EAAGxpD,mBAAqBwpD,EAAGxpD,WAAWxN,SAC5DugD,EAAOv/C,IAAIi2D,IAGb98D,KAAK2D,IAAI,CAAEyiD,OAAAA,GAAUx9C,GAGvB,OAAO5I,O,uBAWT,WAEE,OADAA,KAAKo8D,gBACL,OAAWp8D,KAAKwB,IAAI,UAAU8O,U,uBAYhC,SAAU81C,GACR,IAAMyW,GAAK7hD,EAAAA,EAAAA,SAAQorC,GAAUA,EAAS,CAACA,GAEvC,OADApmD,KAAK2D,IAAI,CAAEyiD,OAAQyW,IACZ78D,KAAK+8D,c,sBAWd,SAASp3D,GACP,OACE3F,KAAK+8D,YAAY/mC,QAAO,SAAA2/B,GACtB,OAAOA,EAAMn0D,IAAI,QAAUmE,GAAMgwD,EAAMn0D,IAAI,UAAYmE,KACtD,IAAM,O,yBAeb,SAAYA,EAAIiW,GAAO,MACf+5C,EAAQ31D,KAAKg9D,SAASr3D,GAG5B,OAFAgwD,GAASA,EAAMhyD,IAAIiY,GACnB,UAAA5b,KAAK8C,UAAL,SAAS4B,QAAQ,qBACV1E,O,2BAYT,SAAc2F,GACZ,IAAMgwD,EAAQ31D,KAAKg9D,SAASr3D,GAC5B,OAAOgwD,EAAQ31D,KAAKwB,IAAI,UAAUmT,QAAQghD,IAAU,I,yBAWtD,SAAYhwD,GAAI,aAER4b,IADMvG,EAAAA,EAAAA,SAAQrV,GAAMA,EAAK,CAACA,IACX+U,KAAI,SAAA/U,GAAE,OAAI,EAAKq3D,SAASr3D,MACvCygD,EAASpmD,KAAKwB,IAAI,UAClBq1B,EAAUtV,EAASta,OAASm/C,EAAOljD,OAAOqe,GAAY,GAE5D,OADA,UAAAvhB,KAAK8C,UAAL,SAAS4B,QAAQ,sBACVsW,EAAAA,EAAAA,SAAQ6b,GAAWA,EAAU,CAACA,K,sBAgBvC,SAAS8+B,GAAkB,MAAX/sD,EAAW,uDAAJ,GACrB5I,KAAKo8D,eACL,IAAMjtB,EAAQnvC,KAAKwB,IAAI,UAAUqF,IAAI8uD,EAAO/sD,GAE5C,OADA,UAAA5I,KAAK8C,UAAL,SAAS4B,QAAQ,sBACVsW,EAAAA,EAAAA,SAAQm0B,GAASA,EAAQ,CAACA,K,8BASnC,SAAiB8tB,GACf,IAAM9zD,EAAM,GACJrG,EAAO9C,KAAP8C,GACF+iD,EAAM/iD,GAAMA,EAAGtB,IAAI,mBACzB,GAAKqkD,EACL,OAAIoX,EAAI3sD,QAAe,OAAI2sD,EAAI3sD,SAC/B2sD,EAAIxwD,SAAQ,SAAArD,GAAG,OAAID,EAAIyE,KAAKi4C,EAAIh/C,IAAIuC,OAC7BD,K,mBAOT,WAAgB,IAAV0jB,EAAU,uDAAJ,GACJ/pB,EAAK9C,KAAK8C,GACV8J,EAAO,KAAK5M,KAAKqT,YACjBzK,EAAO,KAAK5I,KAAK6sB,KACjBlnB,EAAK3F,KAAKytB,QACVuP,EAAOl6B,GAAMA,EAAGtB,IAAI,eAC1BoL,EAAKyG,WAAL,KAAuBzG,EAAKyG,mBACrBzG,EAAKyG,WAAW1N,GACvBiH,EAAK8H,WAAa,GAClB9H,EAAKiwB,QAAU,GACfjwB,EAAKw5C,OAAS,GAEVpmD,KAAK45D,kBACP/sC,EAAIwsC,OAAS,GAGfr5D,KAAKwB,IAAI,cAAc4G,MAAK,SAACigB,EAAIje,GAC/BwC,EAAK8H,WAAWtK,GAAKie,EAAGzkB,MAAH,OAAcipB,GAAd,IAAmBqwC,OAAQ,QAElDl9D,KAAKwB,IAAI,UAAU4G,MAAK,SAACigB,EAAIje,GAC3BwC,EAAKw5C,OAAOh8C,GAAKie,EAAGzkB,WAEtB5D,KAAKwB,IAAI,WAAW4G,MAAK,SAACigB,EAAIje,GAC5BwC,EAAKiwB,QAAQzyB,GAAKie,EAAG7mB,IAAI,WAG3BoL,EAAKjC,OAAS,GACd/B,EAAKnG,WAAa,KAElB,IAAM06D,EAAS,IAAIn9D,KAAKgJ,YAAY4D,EAAMhE,GAGpCw0D,EAAQ,IAAH,OAAOD,EAAO1vC,SACnB4vC,EAAergC,EAAOA,EAAKolB,SAAL,WAAkBz8C,IAAQ,GACtD03D,EAAa5wD,SAAQ,SAAAgrB,GACnB,IAAM6lC,EAAU7lC,EAAK7zB,QACrB05D,EAAQ35D,IAAI,YAAa,CAACy5D,IAC1BpgC,EAAKntB,SAAShJ,IAAIy2D,MAKpBH,EAAOx5D,IAAI4yD,EAAY,GACvB,IAAM8C,EAASr5D,KAAKg5D,cACdM,EAAUt5D,KAAKi5D,eAEhBpsC,EAAIwsC,SAAWA,IAAUC,EAGnBD,GAETA,EAAO11D,IAAI4yD,EAAX,kBAA2B8C,EAAOJ,gBAAlC,CAAkDkE,KAClDA,EAAO1F,cACE5qC,EAAIwsC,SAETr5D,KAAK25D,cAEP35D,KAAK2D,IAAI4yD,EAAT,kBAAyB+C,GAAzB,CAAkC6D,KAClCA,EAAOx5D,IAAI6yD,EAAWx2D,MACtBm9D,EAAO1F,cACE5qC,EAAI0uC,WAEbv7D,KAAK2D,IAAI4yD,EAAY,CAAC4G,IACtBA,EAAOx5D,IAAI6yD,EAAWx2D,MACtB,CAACA,KAAMm9D,GAAQziD,KAAI,SAAAtQ,GAAC,OAAIA,EAAEqtD,kBAG1B0F,EAAOx5D,IAAI4yD,EAAY,CAACv2D,OACxB,CAACA,KAAMm9D,GAAQziD,KAAI,SAAAtQ,GAAC,OAAIA,EAAEqtD,gBAC1Bz3D,KAAK2D,IAAI6yD,EAAW2G,MAtBtBA,EAAOx5D,IAAI6yD,EAAW,GACtB2G,EAAOx5D,IAAI4yD,EAAY,IAyBzB,IAAMjpD,EAAQ,kBAId,OAHAxK,GAAMA,EAAG4B,QAAQ4I,EAAO6vD,GACxBn9D,KAAK0E,QAAQ4I,EAAO6vD,GAEbA,I,qBAOT,WACE,IAAQr6D,EAAO9C,KAAP8C,GACR,EAAgC9C,KAAKqT,WAA7B/R,EAAR,EAAQA,KAAMslB,EAAd,EAAcA,QAASziB,EAAvB,EAAuBA,KACjBo5D,EAAUj8D,GAAQslB,EAClB42C,GAAWl8D,GAAQslB,EACnB62C,EAAU,uBACVC,EAAWv5D,IAAQrB,MAAAA,OAAJ,EAAIA,EAAIkD,EAAJ,UAASy3D,GAAT,OAAmBt5D,KACtCw5D,EAAcH,IAAW16D,MAAAA,OAAJ,EAAIA,EAAIkD,EAAJ,UAASy3D,GAAT,OAAmBD,KAC5CI,EAAc96D,IAAOA,EAAGkD,EAAH,UAAQy3D,GAAR,OAAkBn8D,KAAWwB,EAAGkD,EAAH,UAAQy3D,GAAR,OAAkB72C,KAC1E,OACE5mB,KAAKwB,IAAI,gBACTk8D,GACAv5D,GACAw5D,IACAE,EAAAA,EAAAA,YAAWL,IACXI,IACAC,EAAAA,EAAAA,YAAWN,K,qBAQf,WACE,IAAI1pB,EAAO7zC,KAAKwB,IAAI,QACpB,OAAOqyC,EAAOA,EAAO,IAAM,K,oBAiC7B,WAAkB,IAAXjrC,EAAW,uDAAJ,GACN3F,EAAQjD,KACR63B,EAAQ,GACRimC,EAAYl1D,EAAKsZ,IACjBA,EAAM47C,GAAa76D,EAAMzB,IAAI,WAC7Bu8D,EAAO96D,EAAMzB,IAAI,QACjBw8D,EAAap1D,EAAKyK,WACpBA,EAAarT,KAAKymD,gBAYtB,UAXO79C,EAAKsZ,IAGR87C,KACEn5D,EAAAA,EAAAA,YAAWm5D,GACb3qD,EAAa2qD,EAAW/6D,EAAOoQ,IAAe,IACrC8F,EAAAA,EAAAA,UAAS6kD,KAClB3qD,EAAa2qD,IAIbp1D,EAAKq1D,UAAW,CAClB,IAAMriD,EAAQ5b,KAAKw3B,UAEnB/qB,EAAAA,EAAAA,SAAQmP,GAAO,SAAC/V,EAAOywB,GAEN,MAAXA,EAAI,IADU,CAAC,UAAW,aAAc,cACZ3hB,QAAQ2hB,GAAO,IAC7CjjB,EAAW,YAAD,OAAaijB,KAAStb,EAAAA,EAAAA,SAAQnV,KAAUsT,EAAAA,EAAAA,UAAStT,GAAS+D,KAAKqkB,UAAUpoB,GAASA,MAKlG,IAAK,IAAI+G,KAAQyG,EAAY,CAC3B,IAAMjK,EAAMiK,EAAWzG,GAEvB,KAAKkY,EAAAA,EAAAA,aAAY1b,IAAgB,OAARA,EACvB,IAAI80D,EAAAA,EAAAA,WAAU90D,GACZA,GAAOyuB,EAAMjqB,KAAKhB,OACb,CACL,IAAIuxD,EAAW,GACf,GAAIv1D,EAAKw1D,eAAgBllD,EAAAA,EAAAA,UAAS9P,IAAQA,EAAIuL,QAAQ,MAAQ,EAC5DwpD,EAAW,IAAH,OAAO/0D,EAAI2C,QAAQ,KAAM,UAAzB,SACH,CACL,IAAMlG,GAAQqT,EAAAA,EAAAA,UAAS9P,GAAOA,EAAI2C,QAAQ,KAAM,UAAY3C,EAC5D+0D,EAAW,KAAH,OAAOt4D,EAAP,MAGVgyB,EAAMjqB,KAAN,UAAchB,EAAd,YAAsBuxD,KAK5B,IAAME,EAAaxmC,EAAM5wB,OAAN,WAAmB4wB,EAAM9V,KAAK,MAAS,GACpDu8C,EAAQr7D,EAAMs7D,aAAa31D,GAC7ByvB,EAAO,IAAH,OAAOnW,GAAP,OAAam8C,GAAb,OAA0BN,EAAO,IAAM,GAAvC,YAA6CO,GAGrD,OAFCP,IAAS1lC,GAAQ,KAAJ,OAASnW,EAAT,MAEPmW,I,0BAQT,SAAazvB,GACX,OAAO5I,KAAKyvD,YAAY7mD,K,yBAG1B,WAAuB,IAAXA,EAAW,uDAAJ,GACXkjD,EAAO9rD,KAAK0U,aAClB,OAAQo3C,EAAK7kD,OAA+B6kD,EAAKpxC,KAAI,SAAA7R,GAAC,OAAIA,EAAEivB,OAAOlvB,MAAOmZ,KAAK,IAAzD/hB,KAAKwB,IAAI,a,2BAQjC,WACE,IAAIoL,EAAO5M,KAAK4wD,gBAEhB,cADOhkD,EAAK+J,MACL/J,I,oBAST,WAAkB,IAAXhE,EAAW,uDAAJ,GACN0I,EAAMzP,EAAAA,MAAAA,UAAAA,OAAAA,KAA4B7B,KAAM4I,GAQ9C,GAPA0I,EAAI+B,WAAarT,KAAK4wD,uBACft/C,EAAI+B,WAAWwC,aACfvE,EAAIklC,eACJllC,EAAI80C,cACJ90C,EAAI3G,cACJ2G,EAAIlC,MAENxG,EAAKytB,SAAU,CAClB,IAAMgjC,EAAS/nD,EAAG,SACZgoD,EAAUhoD,EAAG,UACfgoD,IAAWt+C,EAAAA,EAAAA,SAAQs+C,KACrBhoD,EAAG,UAAegoD,EAAQtjC,QAAO,SAAA5rB,GAAC,OAAIA,KAAGsQ,KAAI,SAAAtQ,GAAC,OAAKA,EAAEqjB,MAAQrjB,EAAEqjB,QAAUrjB,MAEvEivD,KAAWngD,EAAAA,EAAAA,UAASmgD,KACtB/nD,EAAG,SAAc+nD,EAAO5rC,SAQ5B,OAJIztB,KAAK8C,GAAGoN,UAAU,kBACpBlQ,KAAKw+D,gBAAgBltD,GAGhBA,I,6BAMT,SAAgBnI,GACd,IAAMmI,EAAMnI,GAAOtH,EAAAA,MAAAA,UAAAA,OAAAA,MAA6B7B,MAC1CyP,GAAWxN,EAAAA,EAAAA,QAAOjC,KAAM,YAwB9B,OAtBAyM,EAAAA,EAAAA,SAAQgD,GAAU,SAAC5J,EAAOywB,IACO,IAA3B,CAAC,QAAQ3hB,QAAQ2hB,IAAehlB,EAAIglB,KAASzwB,UACxCyL,EAAIglB,OAIXE,EAAAA,EAAAA,SAAQllB,EAAIhQ,cACPgQ,EAAIhQ,MAGbmL,EAAAA,EAAAA,SAAQ,CAAC,aAAc,UAAU,SAAA8pB,IAC3BC,EAAAA,EAAAA,SAAQ/mB,EAAS8mB,MAAUC,EAAAA,EAAAA,SAAQllB,EAAIilB,YAClCjlB,EAAIilB,OAIf9pB,EAAAA,EAAAA,SAAQ,CAAC,UAAW,eAAe,SAAA8pB,KAC5BjlB,EAAIilB,KAAUC,EAAAA,EAAAA,SAAQ/mB,EAAS8mB,MAAWjlB,EAAIilB,GAAMtvB,gBAChDqK,EAAIilB,MAIRjlB,I,mBAOT,WAEE,OADYtR,KAAKwB,IAAI,eAAiB,IACzBmE,IAAM3F,KAAK82D,MAAQ92D,KAAKm7D,M,mBAQvC,SAAMx1D,EAAIiD,GACR,IAAMivB,EAAQ,KAAK73B,KAAKwB,IAAI,eAG5B,OAFAq2B,EAAMlyB,GAAKA,EACX3F,KAAK2D,IAAI,aAAck0B,EAAOjvB,GACvB5I,O,mBAST,SAAMob,GACJ,IAAMjY,EAAOnD,KAAK4yC,QAAQx3B,GAC1B,OAAOjY,GAAQA,EAAKU,K,qBAStB,SAAQuX,GACN,IAAMjY,EAAgBnD,KAAhBmD,KAAMsnB,EAAUzqB,KAAVyqB,MAMZ,OAJIrP,IACFjY,EAAOsnB,EAAMuL,QAAO,SAAA7yB,GAAI,OAAIA,EAAKunB,cAAgBtP,EAAMjY,QAAM,IAGxDA,I,4BAGT,WACE,IAAMiY,GAASpb,KAAK8C,GAAGtB,IAAI,iBAAmB,IAAIyB,MAClD,OAAOjD,KAAK4yC,QAAQx3B,K,8BAGtB,WACE,IAAMqjD,EAAaz+D,KAAK4b,QAExB,OADiB5b,KAAKwB,IAAI,iBAAmB,IAC7B46C,QAAO,SAACC,EAAK9lB,GAE3B,OADA8lB,EAAI9lB,GAAQkoC,EAAWloC,GAChB8lB,IACN,M,6BAUL,SAAgB1uB,GAAQ,WAClBQ,EAAMR,GAAU3tB,KAAKwB,IAAI,UAE7B,IAAK2sB,EACH,OAAOA,EAGT,GAAInuB,KAAKwB,IAAI,gBACX2sB,EAAMA,EAAI2K,WAAWryB,WAChB,CAGL,GAAkB,mBAAP0nB,EAAmB,CAC5B,IAAIqK,EAASrK,EAAI2K,WAAWryB,OAE5B0nB,GADAqK,EAASA,EAAOzsB,QAAQ,4BAA6B,IAAIA,QAAQ,MAAO,KAC3DtF,OAGf,IAAI/D,EAAS1C,KAAK8C,GAAGoN,YACjBwuD,EAAcpI,EAAa5zD,EAAOg8D,aAAe,OACjDC,EAAYrI,EAAa5zD,EAAOi8D,WAAa,OAC7CC,EAAM,IAAIC,OAAJ,UAAcH,EAAd,uBAAwCC,GAAa,KAC/DxwC,EAAMA,EAAIpiB,QAAQ6yD,GAAK,SAACrxD,EAAO0qB,GAG7B,EAAKg/B,gBACL,IAAMh1D,EAAS,EAAKoR,WAAW4kB,IAAM,GACrC,OAAOjd,EAAAA,EAAAA,SAAQ/Y,IAA4B,WAAjB,OAAOA,GAAqB2H,KAAKqkB,UAAUhsB,GAAUA,KAGnF,OAAOksB,I,wBAGT,SAAWuoC,GAAmB,IAC5B,IAAQ5zD,EAAO9C,KAAP8C,GACFwK,EAAQqnD,GAAa+B,EAAW,IAAH,OAAOA,GAAa,IACjDhqD,EAAOgqD,GAAY12D,KAAKwB,IAAIk1D,GAHN,mBAANx1B,EAAM,iCAANA,EAAM,kBAI5Bw1B,GAAY12D,KAAK8+D,QAAL,MAAA9+D,KAAA,CAAa02D,EAAUhqD,EAAMgqD,GAAY12D,KAAK0hB,SAASg1C,IAAvD,OAAqEx1B,IACjFlhC,KAAK0E,QAAL,MAAA1E,KAAA,CAAasN,GAAb,OAAuB4zB,IACvBp+B,GAAMA,EAAG4B,QAAH,MAAA5B,EAAE,CAASwK,EAAOtN,MAAhB,OAAyBkhC,IACjC,CAAC,aAAc,WAAWvsB,QAAQ+hD,IAAa,GAC7C12D,KAAK43D,mBAAmB,CACtBpxC,UAAWxmB,KACXo+C,SAAS,UAAGsY,EAAWhqD,GACvBlK,QAAS0+B,EAAK,IAAMA,EAAK,IAAM,O,mBAarC,SAAMx3B,GAKJ,OAJI7E,EAAAA,EAAAA,YAAW6E,KACbA,EAAI1J,MACJA,KAAK0U,aAAajI,SAAQ,SAAAxJ,GAAK,OAAIA,EAAMgY,MAAMvR,OAE1C1J,O,oBAOT,WAAkB,WAAX4I,EAAW,uDAAJ,GACJ9F,EAAO9C,KAAP8C,GACF2B,EAAOzE,KAAKyC,WACZS,EAAS,WACbuB,GAAQA,EAAKvB,OAAO,EAAZ,OAAuB0F,GAAvB,IAA6B82B,OAAQ,sBAExCj7B,IACH,EAAKiQ,WAAW,GAAI9L,GACpB,EAAK8L,aAAaqqD,eAAe,EAAM,KAAMn2D,KAG3Co2D,EAAS,KAAKp2D,GAGpB,MAFA,CAAC5I,KAAM8C,GAAI4X,KAAI,SAAAtQ,GAAC,OAAIA,EAAE1F,QAAQ,0BAA2B,EAAMxB,EAAQ87D,OACtEA,EAAOl9B,OAAS5+B,IACVlD,O,kBAaT,SAAKwmB,GAAsB,IAAX5d,EAAW,uDAAJ,GAGrB,OAFA5I,KAAKkD,OAAO,CAAE0yB,UAAW,IACzBpP,GAAaA,EAAUxe,OAAOhI,KAAM4I,GAC7B5I,O,0BAeT,SAAasB,GAAM,QACXqZ,EAAG,UAAG3a,KAAK8C,UAAR,iBAAG,EAAStB,IAAI,iBAAiBoQ,QAAQtQ,UAAzC,aAAG,EAA6C2B,MAEzD,QAAK0X,GAEE3a,gBAAgB2a,I,uBAiBzB,SAAU6L,GAIR,IAHA,IAAMy4C,GAAS/lD,EAAAA,EAAAA,UAASsN,GACpB/R,EAASzU,KAAKyU,SAEXA,GAAQ,CACb,GAAIwqD,GACF,GAAIxqD,EAAO+1C,aAAahkC,GACtB,OAAO,OAGT,GAAI/R,IAAW+R,EACb,OAAO,EAIX/R,EAASA,EAAOA,SAGlB,OAAO,I,qBAST,WAAmB,IACT3R,EAAO9C,KAAP8C,GACFo8D,EAAQl/D,KAAKytB,QACnB,GAAKyxC,EAAL,CACA,IAAM9B,EAAQ5X,EAAUpI,SAASp9C,MACjCA,KAAKm/D,MAAM/B,GACX,IAAM3lC,EAAO30B,GAAMA,EAAGtB,IAAI,eAAeghD,UAAU0c,GAC7C7gC,EAAW5G,GAAQA,EAAKj2B,IAAI,aAAasF,GAAG,GAElD,OADAu3B,GAAYA,EAAS16B,IAAI,OAAQy5D,GAC1Bp9D,Q,2BAGT,WAA2B,6DAAJ,GAAP2F,EAAW,EAAXA,GACN7C,EAAO9C,KAAP8C,GACFs8D,EAAMz5D,GAAM3F,KAAKytB,QACvB,OAAO3qB,GAAMA,EAAGtB,IAAI,eAAeghD,UAAU4c,K,+BAG/C,SAAkBx2D,GAChB,IAAM6uB,EAAOz3B,KAAKq/D,cAAcz2D,GAChC,OAAO6uB,GAAQA,EAAKj2B,IAAI,aAAasF,GAAG,K,wBAG1C,SAAWqL,EAAG8lB,GAAc,IAAXrvB,EAAW,uDAAJ,GACtB,IAAIA,EAAK02D,SAAT,CAEA,IAAQxI,EAAS92D,KAAT82D,KACR,EAAe92D,KAAKwB,IAAI,eAAiB,GAAjCmE,EAAR,EAAQA,GACF45D,GAAUv/D,KAAK0hB,SAAS,eAAiB,IAAI/b,IAAMmxD,EACnD1J,EAAO5H,EAAUga,QAAQx/D,MAG/B,GAAIotD,EAAKznD,KAASA,GAAM45D,EACtB,OAAOv/D,KAAKm/D,MAAMI,EAAQ,CAAED,SAAU,WAIjClS,EAAKmS,GACZnS,EAAKznD,GAAM3F,KACXA,KAAK82D,KAAOnxD,EAGZ,IAAM04B,EAAWr+B,KAAKy/D,kBAAkB,CAAE95D,GAAI45D,IAC9ClhC,GAAYA,EAAS16B,IAAI,CAAEQ,KAAMwB,EAAImN,MAAOnN,S,EAtrD3B6/C,CAAkB3jD,EAAAA,MAAAA,OAAay+C,EAAAA,IAksDpDkF,EAAUrwB,YAAc,SAAAtxB,GACtB,MAAO,CAAE+iB,SAAS0yB,EAAAA,EAAAA,aAAYz1C,EAAG+iB,WAGnC4+B,EAAUka,aAAe,SAAAz8D,GACvB,IAAMmqD,EAAO5H,EAAUga,QAAQv8D,GACzB0C,EAAK1C,EAAMwqB,QACXhM,EAAU2rC,EAAKznD,GAErB,GAAK8b,GAGE,GAAIA,IAAYxe,EAAO,CAE5B,IAAM08D,EAASna,EAAUoa,eAAej6D,EAAIynD,GAC5CnqD,EAAMk8D,MAAMQ,GACZvS,EAAKuS,GAAU18D,QALfmqD,EAAKznD,GAAM1C,EAQbA,EAAMyR,aAAajI,SAAQ,SAAArC,GAAC,OAAIo7C,EAAUka,aAAat1D,OAUzDo7C,EAAUpI,SAAW,SAACn6C,GAAqB,IAIrC08D,EAJuB/2D,EAAc,uDAAP,GAC5BwkD,EAAO5H,EAAUga,QAAQv8D,GAC/B,EAAuB2F,EAAfqsB,MAAAA,OAAR,MAAgB,GAAhB,EACA,EAAahyB,EAAMzB,IAAI,cAAjBmE,EAAN,EAAMA,GAYN,OATIA,GACFg6D,EAASna,EAAUoa,eAAej6D,EAAIynD,EAAMxkD,GAC5C3F,EAAMk8D,MAAMQ,GACRh6D,IAAOg6D,IAAQ1qC,EAAMtvB,GAAMg6D,IAE/BA,EAASna,EAAUqa,SAASzS,GAG9BA,EAAKuS,GAAU18D,EACR08D,GAGTna,EAAUqa,SAAW,SAAAzS,GAOnB,IANA,IAEM0S,EAFQl+C,OAAOC,KAAKurC,GAAMnmD,OAEb6xB,WAAW7xB,OAAS,EACjC84D,GAAO30C,KAAK40C,SAAW,KAAKlnC,SAAS,IAAIsnB,OAAO0f,GAClD1C,EAAQ,IAAH,OAAO2C,GAET3S,EAAKgQ,IACVA,EAAQ5X,EAAUqa,SAASzS,GAG7B,OAAOgQ,GAGT5X,EAAUoa,eAAiB,SAACj6D,EAAIynD,GAAoB,IAAdxkD,EAAc,uDAAP,GAC3C,EAAyBA,EAAjBq3D,QAAAA,OAAR,MAAkB,GAAlB,EACIhiD,EAAU,EACVm/C,EAAQz3D,EAEZ,GAAIs6D,EAAQtrD,QAAQhP,GAAM,EACxB,KAAOynD,EAAKgQ,IACVn/C,IACAm/C,EAAQ,GAAH,OAAMz3D,EAAN,YAAYsY,GAIrB,OAAOm/C,GAST5X,EAAUga,QAAU,SAAAv8D,GAClB,MAAqBA,EAAb4pB,IAAAA,OAAR,MAAc,GAAd,EACQkI,EAAalI,EAAbkI,KAAMjyB,EAAO+pB,EAAP/pB,GACRo9D,EAAKnrC,GAASjyB,GAAMA,EAAGtB,IAAI,iBACjC,OAAO0+D,EAAKA,EAAGpP,eAAiB,IASlCtL,EAAU2a,QAAU,SAACzrD,GAAkD,IAAtCyH,EAAsC,uDAA7B,GAAIixC,EAAyB,uDAAlB,GAAIxkD,EAAc,uDAAP,GACxD0vB,GAAQtd,EAAAA,EAAAA,SAAQtG,GAAcA,EAAa,CAACA,GAClD,EAAyB9L,EAAjBq3D,QAAAA,OAAR,MAAkB,GAAlB,EACA3nC,EAAM7rB,SAAQ,SAAAmT,GACZ,MAAwCA,EAAhCvM,WAAAA,OAAR,MAAqB,GAArB,EAAyBqB,EAAekL,EAAflL,WACjB/O,EAAO0N,EAAP1N,GAGR,GAAIA,GAAMynD,EAAKznD,IAAOs6D,EAAQtrD,QAAQhP,GAAM,EAAG,CAC7C,IAAMy3D,EAAQ5X,EAAUoa,eAAej6D,EAAIynD,GAC3C/5C,EAAW1N,GAAKy3D,GAEhBpiD,EAAAA,EAAAA,SAAQmB,IACNA,EAAO1P,SAAQ,SAAAkK,GACb,IAAQ4e,EAAc5e,EAAd4e,UACRA,EAAU9oB,SAAQ,SAAC6oB,EAAK8kC,GAClB9kC,IAAQ,IAAL,OAAS3vB,KAAM4vB,EAAU6kC,GAAV,WAAqBgD,UAKnD1oD,GAAc8wC,EAAU2a,QAAQzrD,EAAYyH,EAAQixC,EAAMxkD,OAI9D48C,EAAUxjD,YAAc,WACtB,OAAOC,EAAAA,EAAAA,QAAOjC,KAAK8B,UAAW,aAGhC0jD,EAAU1jD,UAAU2N,UAApB,GACEmX,QAAS,MACTtlB,KAAM,GACN6C,KAAM,GACNqsD,WAAW,EACXv7C,WAAW,EACXqG,WAAW,EACX8kD,UAAU,EACVviB,UAAU,EACV,mBAAoB,GACpB,kBAAmB,GACnBwiB,WAAY,GACZna,eAAe,EACf7W,UAAU,EACVoF,WAAW,EACXwR,UAAU,EACViJ,WAAW,EACXU,YAAY,EACZC,WAAW,EACX7J,MAAM,EACN1S,MAAO,GACP3oC,OAAQ,GACRoI,QAAS,GACT8gC,KAAM,GACNl9B,MAAO,GACPwF,OAAQ,GACR0gB,QAAS,GACTlP,OAAQ,GACR,eAAgB,GAChB,gBAAiB,GACjBta,WAAY,GACZ+yC,OAAQ,CAAC,KAAM,SACfxJ,UAAW,GACX0jB,MAAO,GACP9pB,QAAS,OAlCX,SAmCGggB,EAAY,IAnCf,SAoCGD,EAAa,IApChB,SAqCGE,EAAgB,IArCnB,kBAsCS,IAtCT,oBAuCY,CAAC,SAAU,SAvCvB,I,8sBCv5DO,IAAM8J,EAAkB,SAAlBA,EAAmB5lD,GAAkB,IAAbxR,EAAa,uDAAP,GACzC,IAAKwR,EAAK,MAAO,GACjB,IAAMmxC,GAAO9wC,EAAAA,EAAAA,SAAQL,KAAQ9V,EAAAA,EAAAA,YAAW8V,EAAID,KAAOC,EAAM,CAACA,GAK1D,OAJAmxC,EAAKpxC,KAAI,SAAAC,GACPxR,EAAIyE,KAAK+M,EAAI8S,SACb8yC,EAAgB5lD,EAAIjG,aAAapE,OAAQnH,MAEpCA,GAGHq3D,EAAwB,SAAxBA,EAAyBx+C,GAA+B,IAAxBnU,EAAwB,uDAAlB,GAAIjF,EAAc,uDAAP,GAC/C63D,GAAOzlD,EAAAA,EAAAA,SAAQgH,GAASA,EAAQ,CAACA,GAEvC,OAAOy+C,EAAK/lD,KAAI,SAAAhO,GACd,MAAiDA,EAAzC2G,WAAAA,OAAR,MAAqB,GAArB,EAAyBqB,EAAwBhI,EAAxBgI,WAAYkS,EAAYla,EAAZka,QAC7BjhB,EAAO0N,EAAP1N,GACJ1D,EAASyK,EAOb,GALI/G,GAAMkI,EAAIlI,KACZ1D,EAAS4L,EAAIlI,GACbihB,GAAW3kB,EAAO0B,IAAI,CAAEijB,QAAAA,GAAb,OAA6Bhe,GAA7B,IAAmC4Q,QAAQ,MAGpD9E,EAAY,CACd,IAAMgsD,EAAgBF,EAAsB9rD,EAAY7G,GAExD,IAAIhJ,EAAAA,EAAAA,YAAW5C,EAAOyS,YAAa,CACjC,IAAMo3C,EAAO7pD,EAAOyS,aACpBo3C,EAAK7kD,OAAS,GAAK6kD,EAAKr6C,MAAMivD,EAAe93D,QAE7C3G,EAAOyS,WAAagsD,EAIxB,OAAOz+D,MAIX,QAAe0mC,IAAAA,WAAAA,OAA2B,CACxCtH,WADwC,SAC7B/wB,GAAkB,IAAVuc,EAAU,uDAAJ,GACvB7sB,KAAK6sB,IAAMA,EACX7sB,KAAKgD,SAAShD,KAAM,MAAOA,KAAKwgD,OAChCxgD,KAAKgD,SAAShD,KAAM,SAAUA,KAAK++D,gBACnC/+D,KAAKgD,SAAShD,KAAM,QAASA,KAAK2gE,eAClC,IAAQ79D,EAAe+pB,EAAf/pB,GAAIJ,EAAWmqB,EAAXnqB,OACZ1C,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV9C,KAAK+0B,KAAOlI,EAAIkI,MAASjyB,GAAMA,EAAGtB,IAAI,kBAGxCm/D,cAZwC,SAY1BrwD,GAAmB,WAAX1H,EAAW,uDAAJ,GACrBnE,EAAOzE,KACPud,EAAO3U,EAAK+tB,gBAAkB,GAC9BpV,EAAWhE,EAAKyY,QAAO,SAAAzY,GAAI,OAAKjN,EAAO9O,IAAI+b,EAAK49C,QAChDyF,EAASL,EAAgBjwD,GAC/B1H,EAAKq3D,QAAUM,EAAgBhjD,GAAMyY,QAAO,SAAA8tB,GAAE,OAAI8c,EAAOjsD,QAAQmvC,IAAO,KACxEviC,EAAS9U,SAAQ,SAAA4b,GAAE,OAAI,EAAK02C,eAAe12C,EAAI5jB,EAAMmE,MACrD0H,EAAOlI,MAAK,SAAAnF,GAAK,OAAI,EAAKu9C,MAAMv9C,OAGlCgoD,gBAtBwC,WAsBD,MAAvB3kD,EAAuB,uDAAf,GAAIsC,EAAW,uDAAJ,GACjCA,EAAKq3D,QAAUM,EAAgBvgE,MAC/B,IAAQ+0B,EAAS/0B,KAAT+0B,KACF8rC,GAAU9rC,MAAAA,OAAA,EAAAA,EAAMkgC,YAAa,GAC7B6L,EAAS9gE,KAAK+gE,YAAYz6D,EAAOsC,GACjCkjD,GAAO9wC,EAAAA,EAAAA,SAAQ8lD,GAAUA,EAAS,CAACA,GACnClV,EAAU4U,EAAsB1U,EAAM+U,EAASj4D,GACrD5I,KAAKyR,MAAMm6C,EAAShjD,GACpB,UAAA5I,KAAK8C,UAAL,SAAS4B,QAAQ,oBAAqB1E,KAAKyU,OAAQ7L,EAAMtC,IAG3Dy4D,eAjCwC,SAiCzBloC,EAASpyB,GAAiB,WAAXmE,EAAW,uDAAJ,GAGnC,GAAKiuB,EAAL,CAIA,IAAQ9B,EAAa/0B,KAAb+0B,KAAMjyB,EAAO9C,KAAP8C,GACRi4D,EAASnyD,EAAKgtB,WAAahtB,EAAKytB,SAGtC,GAFAQ,EAAQ+lC,SAAW58D,MAEd+6D,EAAQ,CAEX,IAAMp1D,EAAKkxB,EAAQpJ,QACbiK,EAAO50B,EAAGtB,IAAI,mBAAmBqO,SACjCynB,EAAQx0B,EAAGtB,IAAI,eAAeqO,SAC9BmxD,GAAkBp4D,EAAKq3D,SAAW,IAAItrD,QAAQhP,GAAM,EACpDk7D,EAAU9rC,EAAOA,EAAKkgC,UAAY,UACjC4L,EAAQl7D,GAGf,IAAMs7D,EAAeD,EACjB1pC,EAAMp0B,OACJo0B,EAAMtB,QAAO,SAAA8H,GAAC,OAAIA,EAAE0gB,eAAeO,kBAAjB,WAAyCp5C,MAC3DiD,GAEF,GAGJ8uB,EAAKx0B,OAAO+9D,EAAavmD,KAAI,SAAA+c,GAAI,OAAIA,EAAK+mB,eAAe13C,GAAG,OAEvD+vB,EAAQhK,IAAI+I,YACf9yB,EAAGtB,IAAI,YAAYkP,IAAI,6BAA8B,CACnDhN,OAAQmzB,IAEVA,EAAQA,UACRA,EAAQnyB,QAAQ,WAChB5B,EAAG4B,QAAQ,mBAAoBmyB,IAGjC,IAAMynC,EAAQznC,EAAQniB,aACtB4pD,EAAM7xD,SAAQ,SAAA8nD,GAAE,OAAI,EAAKwK,eAAexK,EAAI9vD,EAAMmE,MAIpD,IAAM01D,EAAQznC,EAAQniB,aACtB5R,EAAG2P,cAAc6rD,GACjBx7D,EAAG2P,cAAcokB,GACjB/zB,EAAG2P,cAAcokB,EAAQr1B,IAAI,YAC7Bq1B,EAAQqqC,iBAGVj+D,MArFwC,SAqFlC40B,EAAOr1B,GACX,IAEIS,EAFI4pB,EAAQrqB,EAAQC,WAAhBoqB,IACA/pB,EAAO+pB,EAAP/pB,GAEFwxD,EAAKxxD,EAAGtB,IAAI,iBAAiBuvD,eACnCvuD,EAAQM,GAAKA,EACbN,EAAQE,OAASmqB,EAAInqB,OACrBF,EAAQuuD,eAAiBuD,EACzB9xD,EAAQuyB,KAAOlI,EAAIkI,KAEnB,IAAK,IAAIw/B,EAAK,EAAGA,EAAKD,EAAGrtD,OAAQstD,IAAM,CAErC,GADaD,EAAGC,GAAI5uD,IACRkyB,EAAMv2B,KAAM,CACtB2B,EAAQqxD,EAAGC,GAAItxD,MACf,OAeJ,OAVKA,IACHA,EAAQqxD,EAAGA,EAAGrtD,OAAS,GAAGhE,MAC1BH,GACE+0B,EAAMv2B,MACNwB,EAAGm9B,WAAH,0BAAiCpI,EAAMv2B,KAAvC,eAA0D,CACxDu2B,MAAAA,EACAr1B,QAAAA,KAIC,IAAIS,EAAM40B,EAAOr1B,IAG1Bu+D,YArHwC,SAqH5Bl7D,GAAiB,IAAVgnB,EAAU,uDAAJ,GACf/pB,EAAa9C,KAAb8C,GAAIiyB,EAAS/0B,KAAT+0B,KACNiI,EAAOl6B,EAAGtB,IAAI,eACds/D,EAASh+D,EAAGtB,IAAI,UAAU2/D,UAAUt7D,GAI1C,GAFA2/C,EAAAA,GAAAA,QAAkBsb,EAAO58D,KAAM48D,EAAO/pD,IAAKge,EAAK+7B,eAAgBjkC,GAE5Di0C,EAAO/pD,KAAOimB,IAASnQ,EAAI+I,UAAW,CACV/I,EAAtB/lB,GAAR,IAAes6D,GAAf,OAA8Bv0C,EAA9B,GACAmQ,EAAKokB,cAAc0f,EAAO/pD,IAA1B,OACKqqD,GADL,IAEE7oC,OAAQ,KAIZ,OAAOuoC,EAAO58D,MAGhB2C,IAvIwC,SAuIpCyJ,GAAkB,WAAVuc,EAAU,uDAAJ,GAChBA,EAAIozC,QAAJ,kBAAmBpzC,EAAIozC,SAAW,KAAlC,OAA0CM,EAAgB1zC,EAAI8J,mBAE1Dzd,EAAAA,EAAAA,UAAS5I,GACXA,EAAStQ,KAAK+gE,YAAYzwD,EAAQuc,IACzB7R,EAAAA,EAAAA,SAAQ1K,KACjBA,GAAS,OAAIA,IACN7D,SAAQ,SAACC,EAAM+iB,GACpB,IAAIvW,EAAAA,EAAAA,UAASxM,GAAO,CAClB,IAAM20D,EAAQ,EAAKN,YAAYr0D,EAAMmgB,GACrCvc,EAAOmf,IAASzU,EAAAA,EAAAA,SAAQqmD,KAAWA,EAAMp6D,OAAS,KAAOo6D,MAK/D,IAAMC,GAAStmD,EAAAA,EAAAA,SAAQ1K,GACvBA,GAAUgxD,EAAShxD,EAAS,CAACA,IAAS0lB,QAAO,SAAA5rB,GAAC,OAAIA,KAAGsQ,KAAI,SAAAzX,GAAK,OAAI,EAAKs+D,WAAWt+D,MAClFqN,EAASgxD,GAAS94B,EAAAA,EAAAA,SAAQl4B,EAAQ,GAAKA,EAAO,GAE9C,IAAMrO,EAAS0mC,IAAAA,WAAAA,UAAAA,IAAAA,MAAwC3oC,KAAM,CAACsQ,EAAQuc,IAEtE,OADA7sB,KAAKwhE,WAAav/D,EACXA,GAMTs/D,WAlKwC,SAkK7BE,GAET,GAAIA,EAAItG,KAAOsG,EAAI3K,KAAM,OAAO2K,EAChC,IAAQ3+D,EAAoB9C,KAApB8C,GAAR,EAA4B9C,KAAhB0C,OACJ0iD,QADR,MAAqB,GAArB,GACQA,UACJniD,EAAQw+D,EAEZ,GAAIrc,EAAW,CAEb,IAAMsc,EAAUtc,EADhBniD,EAAQ,EAAH,GAAQA,IAETy+D,KACFt5D,EAAAA,EAAAA,MAAKnF,GAAO,SAACmG,EAAKktB,GAAN,cAAqBrzB,EAAMqzB,OACvCiC,EAAAA,EAAAA,QAAOt1B,EAAOy+D,IAKlB,GAAIz+D,EAAM0+D,UAAkC,WAAtB,OAAO1+D,EAAM2Y,OAAmB,EACpD3Y,EAAQ,EAAH,GAAQA,IACP2Y,MAAN,KAAmB3Y,EAAM2Y,OACzB,IAAMmZ,EAAOjyB,EAAGtB,IAAI,iBAEZogE,EADO9+D,EAAGtB,IAAI,UACdogE,YAERx5D,EAAAA,EAAAA,MAAKnF,GAAO,SAAC4C,EAAOywB,IACb8J,EAAAA,EAAAA,UAAS,CAAC,QAAS,QAAS9J,WAAarzB,EAAMqzB,MAEtD,IAAQ1a,EAAU3Y,EAAV2Y,MACF0c,EAAQ1c,EAAMmpB,gBACbnpB,EAAMmpB,gBACN9hC,EAAM2Y,MACb,IAAMzS,EAAMy4D,EAAWC,mBAAmBjmD,GAC1C3Y,EAAMoQ,WAAalK,EAAI0uB,MAEnBS,IACFr1B,EAAMyR,WAAa4jB,GAEhBr1B,EAAM3B,KAECyzB,EAAKnjB,QAAQ3O,EAAM3B,QAC7B2B,EAAM2jB,QAAU3jB,EAAM3B,YACf2B,EAAM3B,MAHb2B,EAAM3B,KAAO,YAMfi3B,EAAAA,EAAAA,QAAOt1B,EAAOkG,EAAIyS,OAGpB,OAAO3Y,GAGTu9C,MApNwC,SAoNlCv9C,EAAO4F,GAAc,IAAXD,EAAW,uDAAJ,GACbmsB,EAAa/0B,KAAb+0B,KAAMjyB,EAAO9C,KAAP8C,GACR6T,EAAQ1T,EAAM6c,WACd6c,EAAc75B,GAAMA,EAAGoN,UAAU,oBAGvC,GAFA6kB,GAAQA,EAAKywB,UAAUka,aAAaz8D,KAE/BuzB,EAAAA,EAAAA,SAAQ7f,KAAWgmB,GAAe75B,GAAMA,EAAGtB,KAAOsB,EAAGoN,UAAU,gBAAkBtH,EAAKgtB,UAAW,CACpG,IAAMzxB,EAAOlB,EAAMk4D,IACNr4D,EAAGtB,IAAI,eAAeihD,aAAat+C,EAAMwS,GACtD1T,EAAMi/C,SAAS,IACfj/C,EAAM2B,SAAST,GAGjBlB,EAAMs0D,UAAU,CAAEG,UAAW,IAC7B13D,KAAK8hE,cAGPA,YAAY/xD,EAAAA,EAAAA,WAAS,kB,6sBCvQvB,QAAe44B,IAAAA,KAAAA,OAAqB,CAClC5lC,UADkC,WAEhC,OAAO/C,KAAK+hE,cAGdn7C,QALkC,WAMhC,OAAO5mB,KAAKiD,MAAMzB,IAAI,YAGxB6/B,WATkC,WASb,IAAVxU,EAAU,uDAAJ,GACT5pB,EAAQjD,KAAKiD,MACbP,EAASmqB,EAAInqB,QAAU,GACvBI,EAAKJ,EAAOI,GACZ2lD,EAAWxlD,EAAM4pB,KAAO,GACtBloB,EAAY3E,KAAZ2E,IAAKd,EAAO7D,KAAP6D,GACb7D,KAAK4I,KAAOikB,EACZ7sB,KAAKyoD,SAAWA,EAChBzoD,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,GAAM,GAChB9C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK4M,KAAO3J,EAAMzB,IAAI,cACtBxB,KAAKk5D,OAASl5D,KAAK4M,KAAKiJ,OAAS,GACjC7V,KAAKgD,SAASC,EAAO,eAAgBjD,KAAK4hD,aAC1C5hD,KAAKgD,SAASC,EAAO,oBAAqBjD,KAAKgpD,kBAC/ChpD,KAAKgD,SAASC,EAAO,uBAAwBjD,KAAKgiE,iBAClDhiE,KAAKgD,SAASC,EAAO,gBAAiBjD,KAAKkwD,cAC3ClwD,KAAKgD,SAASC,EAAO,yBAA0BjD,KAAKyR,OACpDzR,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKiiE,eAC5CjiE,KAAKgD,SAASC,EAAO,SAAUjD,KAAKkiE,cACpCliE,KAAKgD,SAASC,EAAO,SAAUjD,KAAK4oD,UACpC5oD,KAAKgD,SAASC,EAAO,UAAWjD,KAAK6qD,WACrClmD,EAAImF,KAAK,QAAS7G,IAClBme,EAAAA,EAAAA,WAAUvd,EAAI7D,MACdiD,EAAME,KAAOnD,KACbA,KAAK0qB,aAAeznB,EAAMwnB,MAAM7c,KAAK5N,MACrCA,KAAKowD,cACLpwD,KAAKqwD,eAAe,CAAE8R,YAAa,IACnCniE,KAAKoF,OAAL,OACKpF,KAAKoF,QADV,IAEEwO,UAAW,oBAEb5T,KAAKiJ,kBACJw/C,EAAS7yB,WAAa51B,KAAKoD,KAAKpD,KAAKoiE,YAGxCC,cA9CkC,WA+ChC,IAAQp/D,EAAkBjD,KAAlBiD,MAAOP,EAAW1C,KAAX0C,OACPuS,EAAchS,EAAMoQ,WAApB4B,UACR,OAAOvS,EAAOyiD,qBAAuBlwC,GAGvCmtD,QApDkC,WAqDhC,IAAQt/D,EAAkB9C,KAAlB8C,GAAIG,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACnB,MAAO,CACL4H,OAAQ3I,GAAMA,EAAGkR,YACjB/Q,MAAAA,EACAY,GAAAA,IAOJT,KAhEkC,aAqElCyzB,QArEkC,aA0ElC+xB,SA1EkC,aA+ElCiC,UA/EkC,aAiFlC3nD,OAjFkC,WAiFzB,MACPylC,IAAAA,KAAAA,UAAAA,OAAAA,MAAqC3oC,KAAM+jB,WAC3C,IAAQ9gB,EAAejD,KAAfiD,MAAO0B,EAAQ3E,KAAR2E,IACP8lB,EAAUxnB,EAAVwnB,MACFrP,EAAQpb,KAAK0qB,aAAe,GAUlC,OATAznB,EAAMyR,aAAajI,SAAQ,SAAAmT,GACzB,IAAMzc,EAAOyc,EAAKgzB,QAAQx3B,EAAMnY,OAChCE,MAAAA,GAAAA,EAAMD,YAER,UAAAlD,KAAKsiE,oBAAL,SAAmBp/D,SACnBunB,EAAMyL,OAAOzL,EAAM9V,QAAQ3U,MAAO,GAClCA,KAAK62B,QAAQ72B,KAAKoiE,WAClBz9D,EAAImF,KAAK,CAAE7G,MAAO,GAAIR,WAAY,GAAIU,KAAM,KAErCnD,MAGTuiE,gBAlGkC,SAkGlBj1D,GACd,IAAKtN,KAAKqiE,gBAAiB,OAAO,EAClC/0D,EAAMnB,kBACNmB,EAAMjH,iBACNrG,KAAK8C,GAAGtB,IAAI,YAAYkP,IAAI,WAAY,CACtChN,OAAQ1D,KAAKiD,MACbqK,MAAAA,KAIJ8iD,YA5GkC,WA6GhC,IAAQntD,EAAUjD,KAAViD,MACFqK,EAAQ,iBACRuvB,EAAU55B,EAAMzB,IAAI,WAEtBq7B,aAAmB4hB,EAAAA,IACrBz+C,KAAKyS,cAAcxP,EAAOqK,EAAOtN,KAAKowD,aACtCpwD,KAAKgD,SAASC,EAAOqK,EAAOtN,KAAKowD,aACjCpwD,KAAKgD,SAAS65B,EAAS,oBAAqB78B,KAAKqpD,eACjDxsB,EAAQ51B,QAAUjH,KAAKwiE,kBAI3BnS,eAzHkC,WAyHR,IAAXznD,EAAW,uDAAJ,GACZ3F,EAA6BjD,KAA7BiD,MAAO0B,EAAsB3E,KAAtB2E,IAAK29D,EAAiBtiE,KAAjBsiE,aACdh1D,EAAQ,oBACRgrB,EAAQr1B,EAAMzB,IAAI,cAClB+8C,EAAW,CAACt7C,EAAOqK,EAAOtN,KAAKqwD,gBAEjC/3B,aAAiBy6B,EAAAA,IACnBpuD,EAAImF,KAAK,aAAcwuB,GACvBgqC,GAAgBA,EAAap/D,SAC7BlD,KAAKyS,cAAL,MAAAzS,KAAsBu+C,IACrB31C,EAAKu5D,aAAeniE,KAAKyiE,iBAC1BziE,KAAKgD,SAAL,MAAAhD,KAAiBu+C,KAQrB2jB,aA5IkC,WA6IhC,IAAQj/D,EAAUjD,KAAViD,MACFy/D,GAAS7gD,EAAAA,EAAAA,MAAK5e,EAAMm7C,SAC1B,GAAsB,IAAlBskB,EAAOz7D,QAA8B,WAAdy7D,EAAO,GAGlC,IAAK,IAAInsC,KAFTtzB,EAAMq9B,aAEWr9B,EAAMm7C,QACrBn7C,EAAMq9B,WAAW/J,IAQrBisC,cA3JkC,WA4JhC,IAAI3c,EAAM7lD,KAAK0C,OAAOI,GAAGtB,IAAI,mBAEzBqkD,GACF7lD,KAAKiD,MAAMzB,IAAI,WAAW4G,MAAK,SAAA+J,GAC7B0zC,EAAIh/C,IAAIsL,EAAE3Q,IAAI,aAUpB0uD,aA1KkC,WA0KV,IAAXtnD,EAAW,uDAAJ,GACV9F,EAAO9C,KAAP8C,GACR,EAAkBA,EAAKA,EAAGtB,IAAI,UAAU0O,YAAc,GAA9CoM,EAAR,EAAQA,MACFzY,EAAK7D,KAAK6D,GACV8G,EAAS3K,KAAKiD,MAAMzB,IAAI,UACxBoB,EAAO5C,KAAK4C,KACZ+/D,EAAc,GAAH,OAAM//D,EAAN,YACXggE,EAAoB,GAAH,OAAMD,EAAN,WACjBE,EAAa,GAAH,OAAMjgE,EAAN,WACVkgE,EAAa,GAAH,OAAMlgE,EAAN,WACV2e,EAAW,CAACohD,EAAaC,EAAmBC,EAAYC,GACxDC,EAASzmD,IAAU1T,EAAKo6D,QAAU,GAAKL,EAC7C3iE,KAAK2E,IAAIsD,YAAYsZ,EAASQ,KAAK,MACnC,IAAIkhD,EAAYp/D,EAAGq/D,aAAa,UAAY,GACxCttD,EAAM,GAEV,OAAQjL,GACN,IAAK,WACHiL,EAAM,GAAH,OAAMqtD,EAAN,YAAmBF,GACtB,MACF,IAAK,kBACHntD,EAAM,GAAH,OAAMqtD,EAAN,YAAmBL,GACtB,MACF,IAAK,UACHhtD,EAAM,GAAH,OAAMqtD,EAAN,YAAmBJ,GACtB,MACF,IAAK,mBACHjtD,EAAM,GAAH,OAAMqtD,EAAN,YAAmBJ,EAAnB,YAAiCE,GACpC,MACF,IAAK,UACHntD,EAAOhN,EAAKu6D,WAA4C,GAAlD,UAAsBF,EAAtB,YAAmCH,IAI7CltD,EAAMA,EAAInP,SACH5C,EAAGmS,aAAa,QAASJ,IAOlCosD,gBApNkC,WAqNhC,IAAQ/+D,EAAUjD,KAAViD,MACFmgE,EAAangE,EAAMzB,IAAI,YACvB6hE,EAAKpgE,EAAMzB,IAAI,mBAAqB4hE,IAAengE,EAAMywC,UAAU,SACzE1zC,KAAKgW,aAAa,2BAA0BqtD,GAAY,KAO1DzhB,YA/NkC,SA+NtBzvC,EAAG8lB,GAAc,IAAXrvB,EAAW,uDAAJ,GACf3F,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GAEf,GAAIA,GAAMA,EAAGoN,UAAU,sBAAwBtH,EAAK6vD,OAAQ,CAC1D,IAAM9hD,EAAQ1T,EAAM6c,aACnB0W,EAAAA,EAAAA,SAAQ7f,IAAU1T,EAAMi/C,SAASvrC,QAElC3W,KAAKgW,aAAa,QAAS/S,EAAM25B,cAAch0B,KAQnDygD,cA9OkC,WA+OhC,IAAMrM,EAAMh9C,KAAKiD,MAAMzB,IAAI,WAAWqiD,MAAM,QAAQ9hC,KAAK,KACzD/hB,KAAKgW,aAAa,QAASgnC,GAG3Bh9C,KAAKkwD,eACLlwD,KAAKsjE,gBAQPttD,aA5PkC,SA4PrB7R,EAAM0B,GACjB,IAAMhC,EAAK7D,KAAK2E,IAChBkB,EAAQhC,EAAG+I,KAAKzI,EAAM0B,GAAShC,EAAG0/D,WAAWp/D,IAU/C49D,WAxQkC,WAyQhC,OAAO/hE,KAAKiD,MAAM8+D,aAAahgD,KAAK,MAOtCouC,iBAhRkC,WAiRhC,IAAMt4B,EAAQ,GACN50B,EAAmBjD,KAAnBiD,MAAO0B,EAAY3E,KAAZ2E,IAAKd,EAAO7D,KAAP6D,GACpB,EAA2BZ,EAAMoQ,WAAzBmwD,EAAR,EAAQA,SAAUliE,EAAlB,EAAkBA,KAEZmiE,EAAc,EAAH,GACf99D,GAAI1C,EAAMwqB,QACV,gBAAiBnsB,GAAQ,WACrBtB,KAAKqiE,iBAAmB,CAAEptD,WAAW,IACrCuuD,GAAY,CAAEE,gBAAiB,WAIrCt7D,EAAAA,EAAAA,MAAKvE,EAAGwP,YAAY,SAAAzG,GAAI,OAAIirB,EAAMjqB,KAAKhB,EAAK+2D,aAC5C9rC,EAAMprB,SAAQ,SAAAG,GAAI,OAAIjI,EAAI4+D,WAAW32D,MACrC5M,KAAK4hD,cACL5hD,KAAKgiE,kBACL,IAAMp1D,EAAO,EAAH,KACL62D,GACAxgE,EAAM2tD,kBAIX/uC,EAAAA,EAAAA,MAAKjV,GAAMH,SAAQ,SAAA6pB,GAAG,OAAkB,IAAd1pB,EAAK0pB,WAAyB1pB,EAAK0pB,MAE7D3xB,EAAIiI,KAAKA,IAOXq1D,cAhTkC,WAiThC,IAAMlvD,EAAU/S,KAAKiD,MAAMzB,IAAI,WACzBoiE,EAAW5jE,KAAKiD,MAAMyR,aAAazN,OACzCjH,KAAK8qD,uBAAuBhnD,UAAY8/D,EAAW,GAAK7wD,GAQ1Dq5C,QA3TkC,SA2T1BlnD,GACNA,EAAEmB,kBAOJw9D,aAnUkC,WAoUhC,IAAQ5gE,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACVG,EAAMzB,IAAI,WACfsB,GAAMA,EAAGtB,IAAI,UAAU8tB,gBAAgBu0C,aAAa7jE,OA2BtD8qD,qBAjWkC,WAkWhC,IAAI76C,EAAYjQ,KAAK6D,GAQrB,MANuC,mBAA5B7D,KAAK8jE,oBACd7zD,EAAYjQ,KAAK6D,GAAGkD,cAAc/G,KAAK8jE,uBACvB9jE,KAAK+jE,YAIhB9zD,GAQT+zD,cAlXkC,WAmXhC,IAAM9gD,EAAO,GACPxf,EAAS1D,KAAK6D,GAChBogE,EAAO,EACPC,EAAQ,EAkBZ,OAhBmB,SAAbC,EAAatgE,GACjB,IAAQugE,EAAiBvgE,EAAjBugE,aAEJA,GACFH,GAAQG,EAAa7gD,UACrB2gD,GAASE,EAAa5gD,WACtB2gD,EAAWC,KAEXlhD,EAAKlD,IAAMtc,EAAO6f,UAAY0gD,EAC9B/gD,EAAKnD,KAAOrc,EAAO8f,WAAa0gD,EAChChhD,EAAKmhD,OAASnhD,EAAKlD,IAAMtc,EAAO2f,aAChCH,EAAK8b,MAAQ9b,EAAKnD,KAAOrc,EAAO4f,aAGpC6gD,CAAWzgE,GAEJwf,GAGTohD,aA3YkC,WA2YN,6DAAJ,GAATphD,EAAa,EAAbA,KACLrf,EAAO7D,KAAP6D,GACF0gE,EAAQ1gE,EAAG6a,cACTzU,EAASs6D,EAATt6D,KACA2U,EAAiB2lD,EAAM5lD,YAAvBC,aACR,EAAsBsE,GAAQljB,KAAKgkE,gBAA3BhkD,EAAR,EAAQA,IAAKD,EAAb,EAAaA,KACP3E,EAAQpb,KAAK0qB,YAAYs5C,gBAE/B,OACEhkD,GAAO5E,EAAMzU,WACboZ,GAAQ3E,EAAMgI,YACdpD,GAAO5E,EAAMqI,cACb1D,GAAQnB,EAAa0E,YAAcrZ,EAAKmZ,YAI5CuH,eA3ZkC,WA2ZR,IAAX/hB,EAAW,uDAAJ,GACdsa,EAAOljB,KAAKgkE,gBACZM,EAAetkE,KAAKskE,aAAa,CAAEphD,KAAAA,IAEzC,IAAKohD,GAAgB17D,EAAKg5B,MAAO,CAC/B,IAAQ/9B,EAAO7D,KAAP6D,GAGc,WAAlB+E,EAAK47D,SACP3gE,EAAG6a,cAAcC,YAAYqG,SAAS,EAAG9B,EAAKlD,KAE9Cnc,EAAG8mB,eAAH,GACE65C,SAAU,SACVtqD,MAAO,WACJtR,MASX6I,MAlbkC,WAmbhC,IAAQ5N,EAAO7D,KAAP6D,GACR7D,KAAK6D,GAAK,GACV7D,KAAKykE,iBACLzkE,KAAK0kE,YACLC,EAAAA,EAAAA,IAAY9gE,EAAI7D,KAAK6D,IACrB7D,KAAKwH,UAGPk9D,SA3bkC,WA4bhC,IAAQzhE,EAAUjD,KAAViD,MACFR,EAAaQ,EAAMyR,aAEzB1U,KAAK2E,IAAImF,KAAK,CAAE7G,MAAAA,EAAOR,WAAAA,EAAYU,KADtBnD,QAIf0qB,UAlckC,WAmchC,OAAO1qB,KAAK0C,OAAOoe,WAOrB2hD,eA1ckC,WA2chCziE,KAAKiiE,gBACL,IAAMhyD,EAAYjQ,KAAK8qD,uBACjB3nD,EACJnD,KAAKsiE,cACL,IAAItP,EAAAA,EAAe,CACjBvwD,WAAYzC,KAAKiD,MAAMzB,IAAI,cAC3BkB,OAAQ1C,KAAK0C,OACbquD,eAAgB/wD,KAAK4I,KAAKmoD,iBAG9B5tD,EAAKqE,OAAOyI,GACZjQ,KAAKsiE,aAAen/D,EAGpB,IAFA,IAAMi2C,EAAap7B,MAAMlc,UAAUs+C,MAAMwkB,KAAKzhE,EAAKU,GAAGu1C,YAE7ChvC,EAAI,EAAG89B,EAAMkR,EAAWnyC,OAAQmD,EAAI89B,EAAK99B,IAChD6F,EAAUxI,YAAY2xC,EAAWz3C,UAIrCqnD,iBA9dkC,WA+dhChpD,KAAKmwD,mBACLnwD,KAAKqpD,iBAGPia,aAnekC,aAqelC97D,OArekC,WAuehC,OADAxH,KAAKgpD,mBACDhpD,KAAKyoD,SAAS7yB,YAClB51B,KAAKyiE,iBACLziE,KAAK6jE,gBACLziD,EAAAA,EAAAA,WAAUphB,KAAK6D,GAAI7D,MACnBA,KAAKgS,cAJ+BhS,MAStCgS,WAhfkC,WAif3BhS,KAAKyoD,SAAS7yB,WACjB51B,KAAKkpB,SAASlpB,KAAKoiE,YAIvBl5C,SAtfkC,gB,uFCJpC,QAAeyf,IAAAA,KAAAA,OAAqB,CAClCtH,WADkC,SACvB9+B,GACTvC,KAAK4I,KAAOrG,GAAK,GACjBvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB,IAAM2B,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAK2gE,eAClC3gE,KAAKgD,SAASyB,EAAM,SAAUzE,KAAK++D,iBAGrCA,eAXkC,SAWnBloC,EAASpyB,GAAiB,WAAXmE,EAAW,uDAAJ,GACnCiuB,EAAQpM,MAAMhe,SAAQ,SAAAtJ,GACpB,GAAKA,EAAL,CACA,IAAQm/D,EAAkCn/D,EAAlCm/D,aAAc50C,EAAoBvqB,EAApBuqB,gBACtB40C,GAAgBA,EAAa7vD,iBAC7B0V,EAAAA,EAAAA,IAASuF,GACTvqB,EAAKD,OAAO0mD,MAAMzmD,OAGpB,IAAMm7D,EAAQznC,EAAQniB,aACtB4pD,EAAM7xD,SAAQ,SAAA8nD,GAAE,OAAI,EAAKwK,eAAexK,EAAI9vD,EAAMmE,OAUpD4O,MA/BkC,SA+B5BvU,GAA6B,IAAX2F,EAAW,uDAAJ,GACvB9F,EAAK9C,KAAK0C,OAAOI,GACjBsH,EAAIpK,KAAKyC,WAAWkS,QAAQ1R,GAGlC,GAFAjD,KAAKkjD,gBAAgBjgD,EAAO,KAAMmH,GAE9BtH,IAAO8F,EAAKgtB,UAAW,CACzB,IAAMivC,EAAa,SAAbA,EAAa5hE,GACjBH,EAAG4B,QAAQ,gBAAiBzB,GAC5BA,EAAMyR,aAAajI,SAAQ,SAAAmT,GAAI,OAAIilD,EAAWjlD,OAEhDilD,EAAW5hE,KAafigD,gBAtDkC,SAsDlBjgD,EAAOmE,EAAYqoB,GAC5BzvB,KAAK6vB,WAAU7vB,KAAK6vB,SAAWmJ,EAAAA,KAAAA,GASpC,IARA,IAAQt2B,EAAqB1C,KAArB0C,OAAQkG,EAAa5I,KAAb4I,KAAM9F,EAAO9C,KAAP8C,GAChBuE,EAAWD,GAAc,KAC/B,EAA2B1E,EAAnBoe,UAAAA,OAAR,MAAoB,GAApB,EACMgkD,EAAgBhkD,EAAU7d,OAASA,EAAM2vC,QAAQ9xB,EAAU7d,OAC3Dsc,EAAK3W,EAAKmoD,gBAAmBjuD,GAAMA,EAAGtB,IAAI,iBAAiBqQ,WAC3DvQ,EAAO2B,EAAMzB,IAAI,SAAW,UAC9BujE,EAAa/kE,KAAK6vB,SAEb0kC,EAAK,EAAGA,EAAKh1C,EAAGtY,OAAQstD,IAC/B,GAAIh1C,EAAGg1C,GAAI5uD,IAAMrE,EAAM,CACrByjE,EAAaxlD,EAAGg1C,GAAIpxD,KACpB,MAGJ,IAOImE,EAPEnE,EACJ2hE,GACA,IAAIC,EAAW,CACb9hE,MAAAA,EACAP,OAAAA,EACAquD,eAAgBxxC,IAIpB,IAEEjY,EAAWnE,EAAKqE,SAAS3D,GACzB,MAAO0F,GACPjC,EAAWY,SAAS86C,eAAe,IACnClgD,EAAG6nD,SAASphD,GAGd,GAAIlC,EACFA,EAASI,YAAYH,OAChB,CACL,IAAMmN,EAASzU,KAAKglE,SACdjgC,EAAWtwB,EAAO2kC,WAExB,IAAKt0B,EAAAA,EAAAA,aAAY2K,GAgBfhb,EAAOhN,YAAYH,OAhBI,CACvB,IAAM29D,EAAYlgC,EAAS99B,QAAUwoB,EAIjCw1C,GACFx1C,IAIEw1C,IAAclgC,EAAS99B,OACzBwN,EAAOhN,YAAYH,GAEnBmN,EAAO9M,aAAaL,EAAUy9B,EAAStV,KAW7C,OAJKxsB,EAAM4pB,IAAI+I,WACb9yB,MAAAA,GAAAA,EAAI4B,QAAQ,kBAAmBzB,GAG1BqE,GAGTq5D,cAxHkC,SAwHpBrwD,GAAsC,oEAAJ,GAAI,IAA5BqmB,eAAAA,OAA4B,MAAX,GAAW,EAClD32B,KAAKglE,SAASlhE,UAAY,GAC1B6yB,EAAelqB,SAAQ,SAAA4b,GAAE,OAAI,EAAK02C,eAAe12C,EAAI,EAAK5lB,eAC1D6N,EAAOlI,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,OAG5CuE,OA9HkC,SA8H3BiN,GAAQ,WACP5Q,EAAK7D,KAAK6D,GACVmV,EAAO9Q,SAASC,yBAKtB,OAJAnI,KAAKglE,SAAWvwD,GAAUzU,KAAK6D,GAC/B7D,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,EAAO+V,MAC1DnV,EAAGC,UAAY,GACfD,EAAG4D,YAAYuR,GACRhZ,S,opBCrIX,IAAM24D,GAAauM,E,QAAAA,KAAavM,WAEhC,SACEA,WAAAA,EAQAwM,YATa,SASD5uC,GACV,cAAYv2B,KAAK8f,YAAeyW,IAOlCzW,SAjBa,SAiBJyW,GACP,IACMt0B,EAAS,EAAH,GADEjC,KAAKwB,IAAI,UAAY,IAEnC,OAAO+0B,IAAQrd,EAAAA,EAAAA,UAASqd,GAAQt0B,EAAOs0B,GAAQt0B,GASjDigD,SA7Ba,WA6BkB,WAAtB3rB,EAAsB,uDAAf,GAAI3tB,EAAW,uDAAJ,IACrBsQ,EAAAA,EAAAA,UAASqd,KACXA,EAAOoiC,EAAWpiC,IAGpB,IAAMqiC,EAAW54D,KAAK8f,SAASlX,GACzBw8D,EAAU,EAAH,GAAQ7uC,GACrBv2B,KAAK2D,IAAI,QAASyhE,EAASx8D,GAC3B,IAAMsvD,GAAOC,EAAAA,EAAAA,aAAYS,EAAUwM,GAWnC,OAVAvjD,EAAAA,EAAAA,MAAKq2C,GAAMzrD,SAAQ,SAAAq3C,GACjB,IAAMhhD,EAAK,EAAKA,GACZ8F,EAAKy8D,UACT,EAAK3gE,QAAL,uBAA6Bo/C,IACzBhhD,IACFA,EAAG4B,QAAH,mBAA+B,EAAMo/C,EAAIl7C,GACzC9F,EAAG4B,QAAH,2BAA+Bo/C,GAAM,EAAMA,EAAIl7C,QAI5Cw8D,GAWTllD,SA3Da,SA2DJqW,GAA6B,IAAvB1wB,EAAuB,uDAAf,GAAI+C,EAAW,uDAAJ,GACb,iBAAR2tB,EACTA,EAAO,CACLA,KAAM1wB,GAGR+C,EAAO/C,GAAS,GAGlB0wB,EAAOv2B,KAAKmlE,YAAY5uC,GACxBv2B,KAAKkiD,SAAS3rB,EAAM3tB,IAOtB08D,YA5Ea,SA4ED/uC,GACV,IAAI5f,EAAQ3W,KAAK8f,kBACVnJ,EAAM4f,GACbv2B,KAAKkiD,SAASvrC,IAQhBimB,cAvFa,WAuFY,IAAXh0B,EAAW,uDAAJ,GACb3G,EAAS,GACT0U,EAAQ3W,KAAK8f,SAASlX,GAE5B,IAAK,IAAI2tB,KAAQ5f,EAAO,CACtB,IAAM4uD,EAAM38D,EAAKm1C,UACXA,GAAY/iC,EAAAA,EAAAA,SAAQuqD,GAAOA,EAAI5wD,QAAQ4hB,IAAS,EAAIgvC,EACpD1/D,EAAQ,GAAH,OAAM8Q,EAAM4f,IAAZ,OAAoBwnB,EAAY,cAAgB,IACrDynB,EAA+B,MAArBjvC,EAAKowB,OAAO,EAAG,GAC/B9gD,IAAU2/D,GAAWvjE,EAAO2L,KAAP,UAAe2oB,EAAf,YAAuB1wB,EAAvB,MAGvB,OAAO5D,EAAO8f,KAAK,KAGrBy8B,aAtGa,WAuGX,OAAOx+C,KAAKwB,IAAI,cAAgBxB,KAAKwB,IAAI,YAG3CohD,mBA1Ga,SA0GMh6C,GACjB,OAAO5I,KAAKi+B,kBAAoBj+B,KAAKi+B,kBAAkBr1B,GAAQ5I,KAAKw+C,eAAeO,iBAGrF0mB,UA9Ga,SA8GH74D,EAAMhE,GAAM,MACZ+N,EAAU/J,EAAV+J,MACF7T,EAAK9C,KAAK8C,IAAM8F,EAAK9F,GACrB26C,EAAgB36C,MAAAA,GAAH,UAAGA,EAAItB,IAAI,sBAAX,aAAG,EAAwB0O,YAAYutC,cAE1D,GAAI9mC,GAAS8mC,EAAe,CAC1B,IAAMioB,EAAWjoB,EAAc,EAAD,GAAM9mC,IACpC+uD,IACE7jD,EAAAA,EAAAA,MAAKlL,GAAO+D,KAAI,SAAA6b,IACVzR,EAAAA,EAAAA,aAAY4gD,EAASnvC,YAAe3pB,EAAK+J,MAAM4f,MAEvDmvC,IACE7jD,EAAAA,EAAAA,MAAK6jD,GAAUhrD,KAAI,SAAA6b,GACjB3pB,EAAK+J,MAAM4f,GAAQmvC,EAASnvC,MAIlC,OAAO,K,8pBClIX,SACE7wB,MAAO,GAEP27B,WAHa,SAGF/wB,GAAmB,WAAX1H,EAAW,uDAAJ,GAChB9F,EAAO8F,EAAP9F,GACR9C,KAAK8C,GAAKA,EACV9C,KAAK4I,KAAOA,EACZ5I,KAAKiD,MAAQ,WAA8B,IACrCpB,EAAOmC,EAAM1C,EADLu2B,EAA6B,uDAArB,GAAIr1B,EAAiB,uDAAP,GAGlC,GAAIq1B,GAASA,EAAMv2B,KAAM,CACvB,IAAMqkE,EAAW,EAAKC,cAEtB/jE,GADAP,EAAO,EAAKsQ,QAAQimB,EAAMv2B,OACXA,EAAK2B,MAAQ0iE,EAAS1iE,MACrCe,EAAO1C,EAAOA,EAAK6B,KAAOwiE,EAASxiE,SAC9B,CACL,IAAM0iE,EAAY,EAAKC,cAAcjuC,GAErCh2B,GADAP,EAAOukE,EAAUvkE,MACJ2B,MACbe,EAAO1C,EAAK6B,KACZ00B,EAAQguC,EAAUxyD,WAGpB,IAAMpQ,EAAQ,IAAIpB,EAAMg2B,EAAV,OAAsBr1B,GAAtB,IAA+BM,GAAAA,KAE7C,OADAG,EAAMsE,SAAWvD,EACVf,GAET,IAAMG,EAAOpD,KAAKoD,MAAQpD,KAAKoD,KAAKC,KAAKrD,MACzCoD,GAAQA,KAQV0iE,cApCa,SAoCCjgE,GAGZ,IAFA,IAAMH,EAAQ1F,KAAK6R,WAEVzH,EAAI,EAAGA,EAAI1E,EAAMuB,OAAQmD,IAAK,CACrC,IAAM9I,EAAOoE,EAAM0E,GACfy7D,EAAYvkE,EAAKsE,OAAOC,GAG5B,GAFAggE,EAAgC,kBAAbA,GAA0BA,EAAY,CAAEvkE,KAAMA,EAAKqE,IAAOkgE,EAG3E,MAAO,CACLvkE,KAAAA,EACA+R,WAAYwyD,GAMlB,MAAO,CACLvkE,KAAMtB,KAAK4lE,cACXvyD,WAAYxN,IAQhB+/D,YA/Da,WAgEX,IAAMlgE,EAAQ1F,KAAK6R,WACnB,OAAOnM,EAAMA,EAAMuB,OAAS,IAO9B4K,SAxEa,WAyEX,OAAO7R,KAAK0F,OAQdkM,QAjFa,SAiFLjM,GAGN,IAFA,IAAMD,EAAQ1F,KAAK6R,WAEVzH,EAAI,EAAGA,EAAI1E,EAAMuB,OAAQmD,IAAK,CACrC,IAAM9I,EAAOoE,EAAM0E,GACnB,GAAI9I,EAAKqE,KAAOA,EACd,OAAOrE,IAkBboQ,QAzGa,SAyGL/L,EAAIgM,GACV,IAAMrQ,EAAOtB,KAAK4R,QAAQjM,GACpBggE,EAAW3lE,KAAK4lE,cAChBG,EAAYzkE,EAAOA,EAAK2B,MAAQ0iE,EAAS1iE,MACzC+iE,EAAW1kE,EAAOA,EAAK6B,KAAOwiE,EAASxiE,KACvCF,EAAwB0O,EAAxB1O,MAAOE,EAAiBwO,EAAjBxO,KAAMyC,EAAW+L,EAAX/L,OACnB3C,EAAQA,aAAiBpB,EAAAA,IAASgD,EAAAA,EAAAA,YAAW5B,GAASA,EAAQ8iE,EAAUxtC,OAAOt1B,GAAS,IACxFE,EAAOA,aAAgBa,EAAAA,OAAQa,EAAAA,EAAAA,YAAW1B,GAAQA,EAAO6iE,EAASztC,OAAOp1B,GAAQ,KAG7EnD,KAAKimE,eAAkBt0D,EAAW1O,OAAU0O,EAAWxO,OACzDA,EAAOA,EAAKo1B,OAAO5mB,IAGjBrQ,GACFA,EAAK2B,MAAQA,EACb3B,EAAK6B,KAAOA,EACZ7B,EAAKsE,OAASA,GAAUtE,EAAKsE,SAE7B+L,EAAWhM,GAAKA,EAChBgM,EAAW1O,MAAQA,EACnB0O,EAAWxO,KAAOA,EAClBwO,EAAW/L,OACTA,GACA,SAAUC,GACR,GAAIA,GAASA,EAAMvE,MAAQqE,EACzB,OAAO,GAGb3F,KAAK6R,WAAWkyC,QAAQpyC,O,8iBCvI9B,IAAM+2B,EAAIC,IAAAA,EAEWu9B,EAAAA,SAAAA,I,uBAanB,aAAuB,MAAXt9D,EAAW,uDAAJ,IAAI,eACrB,cAAMA,GACN,IAAMhG,EAAOgG,EAAKhG,MAAQ,GAFL,OAGrB,EAAKgG,KAAOA,EACZ,EAAKhG,KAAOA,EACZ,EAAKE,GAAK8F,EAAKlF,QAAU,IACxBkF,EAAK8wB,UAAY,EAAK12B,SAAS,EAAKC,MAAO,eAAgB,EAAKkjE,mBAN5C,E,uCAZvB,WACE,8BAAuBnmE,KAAKomE,cAA5B,gB,wBAGF,WACE,gBAAUpmE,KAAK4C,KAAf,W,yBAGF,WACE,gBAAU5C,KAAK4C,KAAf,kB,4BAeF,WACE5C,KAAKiD,MAAMyB,QAAQ,e,sBAOrB,SAASmB,GACP,IAAM5C,EAAQjD,KAAKiD,MACfmG,EAAMvD,GAAS5C,EAAMzB,IAAI,YACvB8E,EAAQtG,KAAKqmE,aACnB//D,IAAUA,EAAMT,MAAQuD,K,+BAM1B,SAAkBnG,EAAO4C,EAAO+C,GAC9B5I,KAAK+5B,SAASl0B,EAAO+C,K,0BAMvB,SAAa1D,GACXA,EAAEiH,kBACF,IAAMtG,EAAQ7F,KAAKqmE,aAAaxgE,MAChC7F,KAAKsmE,gBAAgBzgE,GACrB7F,KAAKumE,mB,6BAGP,SAAgB1gE,GACd7F,KAAKiD,MAAMU,IAAI,CAAEkC,MAAAA,GAAS,CAAE2gE,UAAW,M,wBAOzC,WACE,IAAKxmE,KAAKymE,QAAS,CACjB,IAAQxjE,EAAgBjD,KAAhBiD,MACF3B,EADkBtB,KAAT4I,KACGtH,MAAQ,OACpBolE,EAAMzjE,EAAMzB,IAAI,gBAAkByB,EAAMzB,IAAI,aAAeyB,EAAMzB,IAAI,YAAc,GACzFxB,KAAKymE,QAAU/9B,EAAE,iBAAD,OAAiBpnC,EAAjB,4BAAuColE,EAAvC,QAGlB,OAAO1mE,KAAKymE,QAAQjlE,IAAI,K,oBAG1B,WACExB,KAAKymE,QAAU,KACf,IAAM5iE,EAAK7D,KAAK2E,IAIhB,OAHAd,EAAGe,SAAS5E,KAAK2mE,cACjB9iE,EAAGK,KAAKlE,KAAK+D,YACbF,EAAGiE,KAAH,WAAY9H,KAAKomE,gBAAiBp+D,OAAOhI,KAAKqmE,cACvCrmE,S,EAlFUkmE,CAAcv9B,IAAAA,MAsFnCu9B,EAAMpkE,UAAUsD,OAAS,CACvBk/C,OAAQ,iB,wqCCtFV,IAAQ5b,EAAMC,IAAAA,EACdD,GCEe,SAAUA,EAAG5/B,GAE1B,IAAKiwB,EAAAA,EAAAA,UAAL,CAEA,IAAI6tC,EAAc,CAEdC,WAAYC,EACZC,KAAMD,EACNxiB,OAAQwiB,EACRl4B,KAAMk4B,EACNj/D,KAAMi/D,EAGN3Z,OAAO,EACP6Z,MAAM,EACNC,WAAW,EACX/nB,YAAY,EACZgoB,aAAa,EACbC,qBAAqB,EACrBC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,wBAAwB,EACxBC,mBAAmB,EACnBC,sBAAsB,EACtBC,iBAAiB,EACjBh1D,SAAU,OACVi1D,iBAAkB,EAClBC,WAAY,SACZC,WAAY,SACZC,sBAAuB,OACvBC,sBAAuB,OACvBC,UAAW,wBACXC,oBAAqB,oBACrBC,iBAAiB,EACjBnlE,UAAW,GACXolE,mBAAoB,GACpBC,kBAAmB,GACnBC,WAAW,EACXlvC,MAAO,WACPmvC,QAAS,CAAC,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YACnGC,iBAAkB,GAClB5/D,UAAU,EACVikB,OAAQ,MAEV47C,EAAY,GACZC,IAAO,QAAQj7D,KAAKzN,OAAO2oE,UAAUC,WACrCC,EAAe,WACb,SAASr5B,EAASyN,EAAK2J,GACrB,UAAW,GAAK3J,GAAKroC,QAAQgyC,GAG/B,IACIhwC,EADOzO,SAAS0lB,cAAc,OACjBjX,MAEjB,OADAA,EAAMkyD,QAAU,kCACTt5B,EAAS54B,EAAMmyD,gBAAiB,SAAWv5B,EAAS54B,EAAMmyD,gBAAiB,QARrE,GAUfC,EAAe,CACb,4BACA,qEACA,mCACA,UACAhnD,KAAK,IACPinD,EAAU,WAGR,IAAIC,EAAc,GAClB,GAAIR,EACF,IAAK,IAAIr+D,EAAI,EAAGA,GAAK,EAAGA,IACtB6+D,GAAe,kBAAoB7+D,EAAI,WAI3C,MAAO,CACL,uCACA,qCACA,gDACA,kDACA,4DACA,SACA,SACA,oCACA,6BACA,8BACA,6BACA,yBACA,uBACA,uBACA,iCACA,SACA,SACA,SACA,0CACA,SACA,uBACA,gCACA6+D,EACA,SACA,SACA,oGACA,SACA,yCACA,6DACA,SACA,gDACA,0CACA,qCACA,oDACA,SACA,SACA,UACAlnD,KAAK,IAhDC,GAwjCRmnD,EAAS,cACbxgC,EAAE7d,GAAGs+C,SAAW,SAAUvgE,EAAMwgE,GAC9B,GAAmB,iBAARxgE,EAAkB,CAC3B,IAAIygE,EAAcrpE,KACdkhC,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK7gD,UAAW,GAyBjD,OAvBA/jB,KAAKoI,MAAK,WACR,IAAIkhE,EAAQd,EAAU9/B,EAAE1oC,MAAM8J,KAAKo/D,IACnC,GAAII,EAAO,CACT,IAAI9+D,EAAS8+D,EAAM1gE,GACnB,IAAK4B,EACH,MAAM,IAAIsD,MAAM,8BAAgClF,EAAO,KAG7C,OAARA,EACFygE,EAAcC,EAAM9nE,MACH,aAARoH,EACTygE,EAAcC,EAAMr5D,UACH,UAARrH,EACTygE,EAAcC,EAAMC,OAAO3f,MAAM0f,EAAOpoC,GACvB,WAARt4B,GACT0gE,EAAM92D,UACNk2B,EAAE1oC,MAAMwpE,WAAWN,IAEnB1+D,EAAOo/C,MAAM0f,EAAOpoC,OAKnBmoC,EAIT,OAAOrpE,KAAKmpE,SAAS,WAAW/gE,MAAK,WACnC,IACIkhE,EAAQH,EAASnpE,KADP0oC,EAAEnQ,OAAO,GAAI3vB,EAAM8/B,EAAE1oC,MAAM8J,SAEzC4+B,EAAE1oC,MAAM8J,KAAKo/D,EAAQI,EAAM3jE,QAI/B+iC,EAAE7d,GAAGs+C,SAASl4D,MAAO,EACrBy3B,EAAE7d,GAAGs+C,SAASM,SAAW,GACzB/gC,EAAE7d,GAAGs+C,SAASl0D,UAAYA,EAC1ByzB,EAAE7d,GAAGs+C,SAAS15D,SAAWm3D,EACzBl+B,EAAE7d,GAAGs+C,SAASO,sBAAwB,SAASA,IAC7C,QAAmD,IAAxCA,EAAsBC,cAA+B,CAC9D,IAAIC,EAAalhC,EAAE,yBAAyB,GAC5CghC,EAAsBC,cAAoC,UAApBC,EAAWtoE,MAAyC,KAArBsoE,EAAW/jE,MAElF,OAAO6jE,EAAsBC,eAG/BjhC,EAAEygC,SAAW,GACbzgC,EAAEygC,SAASU,aAAe,GAC1BnhC,EAAEygC,SAASW,SAAW,GAEtBphC,EAAE7d,GAAGs+C,SAASY,yBAA2B,WACvC,IAAIC,EAActhC,EAAE,qBAChBshC,EAAY/iE,SAAWyiE,KACzBM,EAAYb,SAAS,CACnBjB,gBAAiB,UAWvB,IAAI+B,EAAW,WACbC,EAAY,OACZC,EAAc,EACdC,EAAOh/C,KACPi/C,EAAYD,EAAKtiC,MACjBwiC,EAAUF,EAAK9+C,IACfi/C,EAAUH,EAAK/+C,IACfm/C,EAAaJ,EAAKpK,OAEhByK,EAAY,SAAZA,EAAsBtd,EAAOvkD,GAK/B,GAHAA,EAAOA,GAAQ,IADfukD,EAAQA,GAAgB,cAIHsd,EACnB,OAAOtd,EAGT,KAAMntD,gBAAgByqE,GACpB,OAAO,IAAIA,EAAUtd,EAAOvkD,GAG9B,IAAI8hE,EAkTN,SAAoBvd,GAClB,IAAIud,EAAM,CAAE5sC,EAAG,EAAG6sC,EAAG,EAAG/rC,EAAG,GACvBD,EAAI,EACJisC,GAAK,EACLC,GAAS,EAEO,iBAAT1d,IACTA,EA8vBJ,SAA6BA,GAC3BA,EAAQA,EAAMphD,QAAQk+D,EAAU,IAAIl+D,QAAQm+D,EAAW,IAAI5wB,cAC3D,IAYI/rC,EAZAu9D,GAAQ,EACZ,GAAIC,EAAM5d,GACRA,EAAQ4d,EAAM5d,GACd2d,GAAQ,OACH,GAAa,eAAT3d,EACT,MAAO,CAAErvB,EAAG,EAAG6sC,EAAG,EAAG/rC,EAAG,EAAGD,EAAG,EAAGksC,OAAQ,QAQ3C,GAAKt9D,EAAQy9D,EAASN,IAAIl9D,KAAK2/C,GAC7B,MAAO,CAAErvB,EAAGvwB,EAAM,GAAIo9D,EAAGp9D,EAAM,GAAIqxB,EAAGrxB,EAAM,IAE9C,GAAKA,EAAQy9D,EAASC,KAAKz9D,KAAK2/C,GAC9B,MAAO,CAAErvB,EAAGvwB,EAAM,GAAIo9D,EAAGp9D,EAAM,GAAIqxB,EAAGrxB,EAAM,GAAIoxB,EAAGpxB,EAAM,IAE3D,GAAKA,EAAQy9D,EAASE,IAAI19D,KAAK2/C,GAC7B,MAAO,CAAExX,EAAGpoC,EAAM,GAAI6U,EAAG7U,EAAM,GAAI8zC,EAAG9zC,EAAM,IAE9C,GAAKA,EAAQy9D,EAASG,KAAK39D,KAAK2/C,GAC9B,MAAO,CAAExX,EAAGpoC,EAAM,GAAI6U,EAAG7U,EAAM,GAAI8zC,EAAG9zC,EAAM,GAAIoxB,EAAGpxB,EAAM,IAE3D,GAAKA,EAAQy9D,EAASI,IAAI59D,KAAK2/C,GAC7B,MAAO,CAAExX,EAAGpoC,EAAM,GAAI6U,EAAG7U,EAAM,GAAI0qB,EAAG1qB,EAAM,IAE9C,GAAKA,EAAQy9D,EAASK,KAAK79D,KAAK2/C,GAC9B,MAAO,CAAExX,EAAGpoC,EAAM,GAAI6U,EAAG7U,EAAM,GAAI0qB,EAAG1qB,EAAM,GAAIoxB,EAAGpxB,EAAM,IAE3D,GAAKA,EAAQy9D,EAASM,KAAK99D,KAAK2/C,GAC9B,MAAO,CACLxuB,EAAG4sC,GAAoBh+D,EAAM,IAC7BuwB,EAAG0tC,EAAgBj+D,EAAM,IACzBo9D,EAAGa,EAAgBj+D,EAAM,IACzBqxB,EAAG4sC,EAAgBj+D,EAAM,IACzBs9D,OAAQC,EAAQ,OAAS,QAG7B,GAAKv9D,EAAQy9D,EAASS,KAAKj+D,KAAK2/C,GAC9B,MAAO,CACLrvB,EAAG0tC,EAAgBj+D,EAAM,IACzBo9D,EAAGa,EAAgBj+D,EAAM,IACzBqxB,EAAG4sC,EAAgBj+D,EAAM,IACzBs9D,OAAQC,EAAQ,OAAS,OAG7B,GAAKv9D,EAAQy9D,EAASU,KAAKl+D,KAAK2/C,GAC9B,MAAO,CACLrvB,EAAG0tC,EAAgBj+D,EAAM,GAAK,GAAKA,EAAM,IACzCo9D,EAAGa,EAAgBj+D,EAAM,GAAK,GAAKA,EAAM,IACzCqxB,EAAG4sC,EAAgBj+D,EAAM,GAAK,GAAKA,EAAM,IACzCs9D,OAAQC,EAAQ,OAAS,OAI7B,OAAO,EAzzBGa,CAAoBxe,IAGV,WAAhB,OAAOA,KACLA,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,MA8CrE7D,EA7CGqvB,EAAMrvB,EA6CN6sC,EA7CSxd,EAAMwd,EA6CZ/rC,EA7CeuuB,EAAMvuB,EAAvC8rC,EA8CG,CACL5sC,EAAqB,IAAlB8tC,EAAQ9tC,EAAG,KACd6sC,EAAqB,IAAlBiB,EAAQjB,EAAG,KACd/rC,EAAqB,IAAlBgtC,EAAQhtC,EAAG,MAhDZgsC,GAAK,EACLC,EAAwC,MAA/BgB,OAAO1e,EAAMrvB,GAAG6oB,QAAQ,GAAa,OAAS,OAC9CwG,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,MACxFwrB,EAAM/qC,EAAI0pD,GAAoB3e,EAAM/qC,GACpC+qC,EAAMl1B,EAAI6zC,GAAoB3e,EAAMl1B,GACpCyyC,EA+JN,SAAkB/0B,EAAGvzB,EAAG6V,GACtB0d,EAAsB,EAAlBi2B,EAAQj2B,EAAG,KACfvzB,EAAIwpD,EAAQxpD,EAAG,KACf6V,EAAI2zC,EAAQ3zC,EAAG,KAEf,IAAI7tB,EAAIggE,EAAK2B,MAAMp2B,GACjBvjC,EAAIujC,EAAIvrC,EACRwsB,EAAIqB,GAAK,EAAI7V,GACb+c,EAAIlH,GAAK,EAAI7lB,EAAIgQ,GACjBpc,EAAIiyB,GAAK,GAAK,EAAI7lB,GAAKgQ,GACvBwV,EAAMxtB,EAAI,EAKZ,MAAO,CAAE0zB,EAAO,IAJV,CAAC7F,EAAGkH,EAAGvI,EAAGA,EAAG5wB,EAAGiyB,GAAGL,GAIJ+yC,EAAO,IAHtB,CAAC3kE,EAAGiyB,EAAGA,EAAGkH,EAAGvI,EAAGA,GAAGgB,GAGQgH,EAAO,IAFlC,CAAChI,EAAGA,EAAG5wB,EAAGiyB,EAAGA,EAAGkH,GAAGvH,IA5Kfo0C,CAAS7e,EAAMxX,EAAGwX,EAAM/qC,EAAG+qC,EAAMl1B,GACvC2yC,GAAK,EACLC,EAAS,OACA1d,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,MAAQwrB,EAAMxrB,eAAe,OACxFwrB,EAAM/qC,EAAI0pD,GAAoB3e,EAAM/qC,GACpC+qC,EAAM9L,EAAIyqB,GAAoB3e,EAAM9L,GACpCqpB,EAmFN,SAAkB/0B,EAAGvzB,EAAGi/B,GACtB,IAAIvjB,EAAG6sC,EAAG/rC,EAMV,SAASqtC,EAAQr1C,EAAGuI,EAAGn5B,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAU4wB,EAAc,GAATuI,EAAIvI,GAAS5wB,EACpCA,EAAI,GAAcm5B,EAClBn5B,EAAI,EAAI,EAAU4wB,GAAKuI,EAAIvI,IAAM,EAAI,EAAI5wB,GAAK,EAC3C4wB,EAGT,GAbA+e,EAAIi2B,EAAQj2B,EAAG,KACfvzB,EAAIwpD,EAAQxpD,EAAG,KACfi/B,EAAIuqB,EAAQvqB,EAAG,KAWL,IAANj/B,EACF0b,EAAI6sC,EAAI/rC,EAAIyiB,MACP,CACL,IAAIliB,EAAIkiB,EAAI,GAAMA,GAAK,EAAIj/B,GAAKi/B,EAAIj/B,EAAIi/B,EAAIj/B,EACxCwU,EAAI,EAAIyqB,EAAIliB,EAChBrB,EAAImuC,EAAQr1C,EAAGuI,EAAGwW,EAAI,EAAI,GAC1Bg1B,EAAIsB,EAAQr1C,EAAGuI,EAAGwW,GAClB/W,EAAIqtC,EAAQr1C,EAAGuI,EAAGwW,EAAI,EAAI,GAG5B,MAAO,CAAE7X,EAAO,IAAJA,EAAS6sC,EAAO,IAAJA,EAAS/rC,EAAO,IAAJA,GA7G1BstC,CAAS/e,EAAMxX,EAAGwX,EAAM/qC,EAAG+qC,EAAM9L,GACvCupB,GAAK,EACLC,EAAS,OAGP1d,EAAMxrB,eAAe,OACvBhD,EAAIwuB,EAAMxuB,IA2BhB,IAAkBb,EAAG6sC,EAAG/rC,EArBtB,OAFAD,EAAIwtC,EAAWxtC,GAER,CACLisC,GAAIA,EACJC,OAAQ1d,EAAM0d,QAAUA,EACxB/sC,EAAGwsC,EAAQ,IAAKC,EAAQG,EAAI5sC,EAAG,IAC/B6sC,EAAGL,EAAQ,IAAKC,EAAQG,EAAIC,EAAG,IAC/B/rC,EAAG0rC,EAAQ,IAAKC,EAAQG,EAAI9rC,EAAG,IAC/BD,EAAGA,GA5VKytC,CAAWjf,GACpBntD,KAAKqsE,eAAiBlf,EACpBntD,KAAKssE,GAAK5B,EAAI5sC,EACd99B,KAAKusE,GAAK7B,EAAIC,EACd3qE,KAAKwsE,GAAK9B,EAAI9rC,EACd5+B,KAAKysE,GAAK/B,EAAI/rC,EACd3+B,KAAK0sE,QAAUrC,EAAU,IAAMrqE,KAAKysE,IAAM,IAC1CzsE,KAAK2sE,QAAU/jE,EAAKiiE,QAAUH,EAAIG,OACrC7qE,KAAK4sE,cAAgBhkE,EAAKikE,aAMtB7sE,KAAKssE,GAAK,IACZtsE,KAAKssE,GAAKjC,EAAUrqE,KAAKssE,KAEvBtsE,KAAKusE,GAAK,IACZvsE,KAAKusE,GAAKlC,EAAUrqE,KAAKusE,KAEvBvsE,KAAKwsE,GAAK,IACZxsE,KAAKwsE,GAAKnC,EAAUrqE,KAAKwsE,KAG3BxsE,KAAK8sE,IAAMpC,EAAIE,GACf5qE,KAAK+sE,OAAS5C,KAGhBM,EAAU3oE,UAAY,CACpBkrE,OAAQ,WACN,OAAOhtE,KAAKitE,gBAAkB,KAEhCC,QAAS,WACP,OAAQltE,KAAKgtE,UAEfG,QAAS,WACP,OAAOntE,KAAK8sE,KAEdM,iBAAkB,WAChB,OAAOptE,KAAKqsE,gBAEdgB,UAAW,WACT,OAAOrtE,KAAK2sE,SAEdW,SAAU,WACR,OAAOttE,KAAKysE,IAEdQ,cAAe,WACb,IAAIvC,EAAM1qE,KAAKutE,QACf,OAAgB,IAAR7C,EAAI5sC,EAAkB,IAAR4sC,EAAIC,EAAkB,IAARD,EAAI9rC,GAAW,KAErD4uC,SAAU,SAAU3nE,GAGlB,OAFA7F,KAAKysE,GAAKN,EAAWtmE,GACrB7F,KAAK0sE,QAAUrC,EAAU,IAAMrqE,KAAKysE,IAAM,IACnCzsE,MAETytE,MAAO,WACL,IAAIrC,EAAMsC,EAAS1tE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,IAC1C,MAAO,CAAE72B,EAAW,IAARy1B,EAAIz1B,EAASvzB,EAAGgpD,EAAIhpD,EAAG6V,EAAGmzC,EAAInzC,EAAG0G,EAAG3+B,KAAKysE,KAEvDkB,YAAa,WACX,IAAIvC,EAAMsC,EAAS1tE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,IACtC72B,EAAI00B,EAAkB,IAARe,EAAIz1B,GACpBvzB,EAAIioD,EAAkB,IAARe,EAAIhpD,GAClB6V,EAAIoyC,EAAkB,IAARe,EAAInzC,GACpB,OAAkB,GAAXj4B,KAAKysE,GACR,OAAS92B,EAAI,KAAOvzB,EAAI,MAAQ6V,EAAI,KACpC,QAAU0d,EAAI,KAAOvzB,EAAI,MAAQ6V,EAAI,MAAQj4B,KAAK0sE,QAAU,KAElEkB,MAAO,WACL,IAAI1C,EAAM2C,EAAS7tE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,IAC1C,MAAO,CAAE72B,EAAW,IAARu1B,EAAIv1B,EAASvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,EAAG1iB,EAAG3+B,KAAKysE,KAEvDqB,YAAa,WACX,IAAI5C,EAAM2C,EAAS7tE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,IACtC72B,EAAI00B,EAAkB,IAARa,EAAIv1B,GACpBvzB,EAAIioD,EAAkB,IAARa,EAAI9oD,GAClBi/B,EAAIgpB,EAAkB,IAARa,EAAI7pB,GACpB,OAAkB,GAAXrhD,KAAKysE,GACR,OAAS92B,EAAI,KAAOvzB,EAAI,MAAQi/B,EAAI,KACpC,QAAU1L,EAAI,KAAOvzB,EAAI,MAAQi/B,EAAI,MAAQrhD,KAAK0sE,QAAU,KAElEqB,MAAO,SAAUC,GACf,OAAOC,EAASjuE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,GAAIwB,IAE7CE,YAAa,SAAUF,GACrB,MAAO,IAAMhuE,KAAK+tE,MAAMC,IAE1BG,OAAQ,WACN,OAAOC,EAAUpuE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,GAAIxsE,KAAKysE,KAEnD4B,aAAc,WACZ,MAAO,IAAMruE,KAAKmuE,UAEpBZ,MAAO,WACL,MAAO,CACLzvC,EAAGusC,EAAUrqE,KAAKssE,IAClB3B,EAAGN,EAAUrqE,KAAKusE,IAClB3tC,EAAGyrC,EAAUrqE,KAAKwsE,IAClB7tC,EAAG3+B,KAAKysE,KAGZ6B,YAAa,WACX,OAAkB,GAAXtuE,KAAKysE,GACR,OAASpC,EAAUrqE,KAAKssE,IAAM,KAAOjC,EAAUrqE,KAAKusE,IAAM,KAAOlC,EAAUrqE,KAAKwsE,IAAM,IACtF,QACEnC,EAAUrqE,KAAKssE,IACf,KACAjC,EAAUrqE,KAAKusE,IACf,KACAlC,EAAUrqE,KAAKwsE,IACf,KACAxsE,KAAK0sE,QACL,KAER6B,gBAAiB,WACf,MAAO,CACLzwC,EAAGusC,EAAkC,IAAxBuB,EAAQ5rE,KAAKssE,GAAI,MAAc,IAC5C3B,EAAGN,EAAkC,IAAxBuB,EAAQ5rE,KAAKusE,GAAI,MAAc,IAC5C3tC,EAAGyrC,EAAkC,IAAxBuB,EAAQ5rE,KAAKwsE,GAAI,MAAc,IAC5C7tC,EAAG3+B,KAAKysE,KAGZ+B,sBAAuB,WACrB,OAAkB,GAAXxuE,KAAKysE,GACR,OACEpC,EAAkC,IAAxBuB,EAAQ5rE,KAAKssE,GAAI,MAC3B,MACAjC,EAAkC,IAAxBuB,EAAQ5rE,KAAKusE,GAAI,MAC3B,MACAlC,EAAkC,IAAxBuB,EAAQ5rE,KAAKwsE,GAAI,MAC3B,KACF,QACEnC,EAAkC,IAAxBuB,EAAQ5rE,KAAKssE,GAAI,MAC3B,MACAjC,EAAkC,IAAxBuB,EAAQ5rE,KAAKusE,GAAI,MAC3B,MACAlC,EAAkC,IAAxBuB,EAAQ5rE,KAAKwsE,GAAI,MAC3B,MACAxsE,KAAK0sE,QACL,KAER+B,OAAQ,WACN,OAAgB,IAAZzuE,KAAKysE,GACA,gBAGLzsE,KAAKysE,GAAK,KAIPiC,EAAST,EAASjuE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,IAAI,MAAU,IAEhEmC,SAAU,SAAUC,GAClB,IAAIC,EAAa,IAAMT,EAAUpuE,KAAKssE,GAAItsE,KAAKusE,GAAIvsE,KAAKwsE,GAAIxsE,KAAKysE,IAC7DqC,EAAmBD,EACnBhC,EAAe7sE,KAAK4sE,cAAgB,qBAAuB,GAE3DgC,IAEFE,EADQrE,EAAUmE,GACGP,gBAGvB,MACE,8CACAxB,EACA,iBACAgC,EACA,gBACAC,EACA,KAGJh2C,SAAU,SAAU+xC,GAClB,IAAIkE,IAAclE,EAClBA,EAASA,GAAU7qE,KAAK2sE,QAExB,IAAIqC,GAAkB,EAClBC,EAAWjvE,KAAKysE,GAAK,GAAKzsE,KAAKysE,IAAM,EAIzC,OAFGsC,IAAaE,GAAwB,QAAXpE,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAU5E,QAAXA,IACFmE,EAAkBhvE,KAAKsuE,eAEV,SAAXzD,IACFmE,EAAkBhvE,KAAKwuE,yBAEV,QAAX3D,GAA+B,SAAXA,IACtBmE,EAAkBhvE,KAAKkuE,eAEV,SAAXrD,IACFmE,EAAkBhvE,KAAKkuE,aAAY,IAEtB,SAAXrD,IACFmE,EAAkBhvE,KAAKquE,gBAEV,SAAXxD,IACFmE,EAAkBhvE,KAAKyuE,UAEV,QAAX5D,IACFmE,EAAkBhvE,KAAK8tE,eAEV,QAAXjD,IACFmE,EAAkBhvE,KAAK2tE,eAGlBqB,GAAmBhvE,KAAKkuE,eA9Bd,SAAXrD,GAAiC,IAAZ7qE,KAAKysE,GACrBzsE,KAAKyuE,SAEPzuE,KAAKsuE,eA8BhBY,mBAAoB,SAAUrkD,EAAIqW,GAChC,IAAIisB,EAAQtiC,EAAG++B,MAAM,KAAM,CAAC5pD,MAAMy+B,OAAO,GAAG2hB,MAAMwkB,KAAK1jC,KAKvD,OAJAlhC,KAAKssE,GAAKnf,EAAMmf,GAChBtsE,KAAKusE,GAAKpf,EAAMof,GAChBvsE,KAAKwsE,GAAKrf,EAAMqf,GAChBxsE,KAAKwtE,SAASrgB,EAAMsf,IACbzsE,MAETmvE,QAAS,WACP,OAAOnvE,KAAKkvE,mBAAmBC,EAASprD,YAE1CqrD,SAAU,WACR,OAAOpvE,KAAKkvE,mBAAmBE,EAAUrrD,YAE3CsrD,OAAQ,WACN,OAAOrvE,KAAKkvE,mBAAmBG,EAAQtrD,YAEzCurD,WAAY,WACV,OAAOtvE,KAAKkvE,mBAAmBI,EAAYvrD,YAE7CwrD,SAAU,WACR,OAAOvvE,KAAKkvE,mBAAmBK,EAAUxrD,YAE3CyrD,UAAW,WACT,OAAOxvE,KAAKkvE,mBAAmBM,EAAWzrD,YAE5C0rD,KAAM,WACJ,OAAOzvE,KAAKkvE,mBAAmBO,EAAM1rD,YAGvC2rD,kBAAmB,SAAU7kD,EAAIqW,GAC/B,OAAOrW,EAAG++B,MAAM,KAAM,CAAC5pD,MAAMy+B,OAAO,GAAG2hB,MAAMwkB,KAAK1jC,MAEpDyuC,UAAW,WACT,OAAO3vE,KAAK0vE,kBAAkBC,EAAW5rD,YAE3C6rD,WAAY,WACV,OAAO5vE,KAAK0vE,kBAAkBE,EAAY7rD,YAE5C8rD,cAAe,WACb,OAAO7vE,KAAK0vE,kBAAkBG,EAAe9rD,YAE/C+rD,gBAAiB,WACf,OAAO9vE,KAAK0vE,kBAAkBI,EAAiB/rD,YAEjDgsD,MAAO,WACL,OAAO/vE,KAAK0vE,kBAAkBK,EAAOhsD,YAEvCisD,OAAQ,WACN,OAAOhwE,KAAK0vE,kBAAkBM,EAAQjsD,aAM1C0mD,EAAUwF,UAAY,SAAU9iB,EAAOvkD,GACrC,GAAoB,WAAhB,OAAOukD,GAAmB,CAC5B,IAAI+iB,EAAW,GACf,IAAK,IAAI9lE,KAAK+iD,EACRA,EAAMxrB,eAAev3B,KAErB8lE,EAAS9lE,GADD,MAANA,EACY+iD,EAAM/iD,GAEN0hE,GAAoB3e,EAAM/iD,KAI9C+iD,EAAQ+iB,EAGV,OAAOzF,EAAUtd,EAAOvkD,IAyP1B6hE,EAAU0F,OAAS,SAAUC,EAAQC,GACnC,SAAKD,IAAWC,IAGT5F,EAAU2F,GAAQ9B,eAAiB7D,EAAU4F,GAAQ/B,eAE9D7D,EAAUzK,OAAS,WACjB,OAAOyK,EAAUwF,UAAU,CACzBnyC,EAAG0sC,IACHG,EAAGH,IACH5rC,EAAG4rC,OA4IPC,EAAU6F,IAAM,SAAUF,EAAQC,EAAQE,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GAEtC,IAOIC,EAPAC,EAAOhG,EAAU2F,GAAQ7C,QACzBmD,EAAOjG,EAAU4F,GAAQ9C,QAEzB32C,EAAI25C,EAAS,IACb76B,EAAQ,EAAJ9e,EAAQ,EACZ+H,EAAI+xC,EAAK/xC,EAAI8xC,EAAK9xC,EAYlBgyC,EAAK,GAFTH,IALEA,EADE96B,EAAI/W,IAAM,EACP+W,GAECA,EAAI/W,IAAM,EAAI+W,EAAI/W,IAGf,GAAK,GAIZssC,EAAO,CACTntC,EAAG4yC,EAAK5yC,EAAI0yC,EAAKC,EAAK3yC,EAAI6yC,EAC1BhG,EAAG+F,EAAK/F,EAAI6F,EAAKC,EAAK9F,EAAIgG,EAC1B/xC,EAAG8xC,EAAK9xC,EAAI4xC,EAAKC,EAAK7xC,EAAI+xC,EAC1BhyC,EAAG+xC,EAAK/xC,EAAI/H,EAAI65C,EAAK9xC,GAAK,EAAI/H,IAGhC,OAAO6zC,EAAUQ,IAWnBR,EAAUmG,YAAc,SAAUR,EAAQC,GACxC,IAAIQ,EAAKpG,EAAU2F,GACfU,EAAKrG,EAAU4F,GACfI,EAAOI,EAAGtD,QACVmD,EAAOI,EAAGvD,QACVwD,EAAcF,EAAG5D,gBACjB+D,EAAcF,EAAG7D,gBACjBgE,EACF7lD,KAAKC,IAAIolD,EAAK3yC,EAAG4yC,EAAK5yC,GACtB1S,KAAKE,IAAImlD,EAAK3yC,EAAG4yC,EAAK5yC,GACtB1S,KAAKC,IAAIolD,EAAK9F,EAAG+F,EAAK/F,GACtBv/C,KAAKE,IAAImlD,EAAK9F,EAAG+F,EAAK/F,GACtBv/C,KAAKC,IAAIolD,EAAK7xC,EAAG8xC,EAAK9xC,GACtBxT,KAAKE,IAAImlD,EAAK7xC,EAAG8xC,EAAK9xC,GAExB,MAAO,CACLsyC,WAAY9lD,KAAK+lD,IAAIJ,EAAcC,GACnC7jB,MAAO8jB,IASXxG,EAAU2G,WAAa,SAAUhB,EAAQC,GACvC,IAAIO,EAAcnG,EAAUmG,YAAYR,EAAQC,GAChD,OAAOO,EAAYM,WAAa,KAAON,EAAYzjB,MAAQ,KAQ7Dsd,EAAU4G,aAAe,SAAUC,EAAWC,GAI5C,IAHA,IAAIC,EAAY,KACZC,EAAY,EACZC,GAAiB,EACZtnE,EAAI,EAAGA,EAAImnE,EAAUtqE,OAAQmD,IAAK,CAIzC,IAAIwmE,EAAcnG,EAAUmG,YAAYU,EAAWC,EAAUnnE,IACzDunE,EAAWf,EAAYM,WAAa,KAAON,EAAYzjB,MAAQ,IAC/DykB,EAAahB,EAAYM,WAAa,IAA9B,EAAqCN,EAAYzjB,MAAQ,KAGlEwkB,IAAaD,GACbC,GAAYD,GAAkBE,EAAQH,IACrCE,IAAaD,GAAkBE,EAAQH,KAEzCC,EAAiBC,EACjBF,EAAYG,EACZJ,EAAY/G,EAAU8G,EAAUnnE,KAGpC,OAAOonE,GAMT,IA+PMK,EAKAC,EACAC,EArQFhH,EAASN,EAAUM,MAAQ,CAC7BiH,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChBC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,MACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIX1M,EAAYjE,EAAUiE,SAM1B,SAAcnsE,GACZ,IAAI84E,EAAU,GACd,IAAK,IAAIjxE,KAAK7H,EACRA,EAAEo/B,eAAev3B,KACnBixE,EAAQ94E,EAAE6H,IAAMA,GAGpB,OAAOixE,EAb4BC,CAAKvQ,GA8FtCC,GAaE8G,EAAoB,eALpBD,EAAW,8CAKoC,aAAeA,EAAW,aAAeA,EAAW,YACnGE,EACF,cACAF,EACA,aACAA,EACA,aACAA,EACA,aACAA,EACA,YAEK,CACLnH,IAAK,IAAI7L,OAAO,MAAQiT,GACxB7G,KAAM,IAAIpM,OAAO,OAASkT,GAC1B7G,IAAK,IAAIrM,OAAO,MAAQiT,GACxB3G,KAAM,IAAItM,OAAO,OAASkT,GAC1B3G,IAAK,IAAIvM,OAAO,MAAQiT,GACxBzG,KAAM,IAAIxM,OAAO,OAASkT,GAC1BrG,KAAM,qDACND,KAAM,qDACNH,KAAM,uEAqEVvrE,OAAO0qE,UAAYA,EAGnB/hC,GAAE,WACIA,EAAE7d,GAAGs+C,SAASl4D,MAChBy3B,EAAE7d,GAAGs+C,SAASY,8BA5tElB,SAASwR,EAAgB3kD,EAAGu2B,EAAOpqD,EAAW6F,GAE5C,IADA,IAAI1E,EAAO,GACFkG,EAAI,EAAGA,EAAIwsB,EAAE3vB,OAAQmD,IAAK,CACjC,IAAIqX,EAAUmV,EAAExsB,GAChB,GAAIqX,EAAS,CACX,IAAI+5D,EAAO/Q,EAAUhpD,GACjB5Y,EAAI2yE,EAAK5N,QAAQvsB,EAAI,GAAM,4BAA8B,6BAC7Dx4C,GAAK4hE,EAAU0F,OAAOhjB,EAAO1rC,GAAW,mBAAqB,GAC7D,IAAIutD,EAAkBwM,EAAK1iD,SAASlwB,EAAKs/D,iBAAmB,OACxDuT,EAAc7S,EAAc,oBAAsB4S,EAAKlN,cAAgB,UAAYkN,EAAK7M,WAC5FzqE,EAAK0J,KACH,gBACEohE,EACA,iBACAwM,EAAKlN,cACL,YACAzlE,EACA,yCACA4yE,EACA,yBAEC,CAELv3E,EAAK0J,KACH86B,EAAE,WACC1gC,OACC0gC,EAAE,oGAAyF97B,KACzF,QACAhE,EAAKq/D,sBAGR/jE,SAIT,MAAO,qBAAuBnB,EAAY,KAAOmB,EAAK6d,KAAK,IAAM,SAuBnE,SAASonD,EAASl4C,EAAS1uB,GACzB,IAq7BgB8P,EAAMqpE,EAAM3rE,EACxB4rE,EAt7BA/yE,EAbN,SAAyBrG,EAAGq5E,GAC1B,IAAIhzE,EAAO8/B,EAAEnQ,OAAO,GAAIquC,EAAarkE,GAQrC,OAPAqG,EAAKizE,UAAY,CACf9U,KAAM1jE,EAAKuF,EAAKm+D,KAAM6U,GACtBt3B,OAAQjhD,EAAKuF,EAAK07C,OAAQs3B,GAC1BhtC,KAAMvrC,EAAKuF,EAAKgmC,KAAMgtC,GACtB/zE,KAAMxE,EAAKuF,EAAKf,KAAM+zE,GACtB/U,WAAYxjE,EAAKuF,EAAKi+D,WAAY+U,IAE7BhzE,EAIIkzE,CAAgBv5E,EAAG0uB,GAC5B+1C,EAAOp+D,EAAKo+D,KACZS,EAAuB7+D,EAAK6+D,qBAC5BC,EAAkB9+D,EAAK8+D,gBACvBvuC,EAAQvwB,EAAKuwB,MACb0iD,EAAYjzE,EAAKizE,UACjBE,GA+6Bc1pE,EA/6BI2pE,GA+6BEN,EA/6BM,GAi7BrB,WACL,IAAIliB,EAAUx5D,KACZkhC,EAAOnd,UACLk4D,EAAY,WACdN,EAAU,KACVtpE,EAAKu3C,MAAM4P,EAASt4B,IAElBnxB,GAAU+b,aAAa6vD,IACvB5rE,GAAa4rE,IAASA,EAAU13D,WAAWg4D,EAAWP,MAx7B1DQ,GAAU,EACVC,GAAa,EACbC,GAAY,EACZC,EAAY,EACZC,EAAa,EACbC,EAAmB,EACnBC,EAAc,EAEdC,EAAa,EACbC,EAAwB,EACxBC,EAAoB,EACpBC,EAAa,EACbC,EAAoB,EACpBC,EAAe,EACfC,EAAe,EACfzU,EAAU,GACV0U,EAAe,GACfC,EAAgB,GAChB1U,EAAmB3/D,EAAK2/D,iBAAiBnoB,MAAM,GAC/CunB,EAAmB/+D,EAAK++D,iBACxBuV,EAAgB,cAChBC,EAAyB,KAEvB1+D,EAAMwS,EAAQvS,cAEhB0+D,GADO3+D,EAAIxU,KACIy+B,EAAEzX,IACjBtoB,GAAW,EACXsH,EAAYy4B,EAAEsgC,EAAQvqD,GAAK7Z,SAASu0B,GACpCkkD,EAAkBptE,EAAUnI,KAAK,wBACjC2X,EAAUxP,EAAUnI,KAAK,aACzBw1E,GAAartE,EAAUnI,KAAK,eAC5By1E,GAASttE,EAAUnI,KAAK,WACxB01E,GAAcvtE,EAAUnI,KAAK,cAC7B21E,GAAmBxtE,EAAUnI,KAAK,mBAClC41E,GAAcztE,EAAUnI,KAAK,aAC7B61E,GAAmB1tE,EAAUnI,KAAK,oBAClC81E,GAAY3tE,EAAUnI,KAAK,aAC3B+1E,GAAmB5tE,EAAUnI,KAAK,eAClCg2E,GAAwB7tE,EAAUnI,KAAK,eACvCi2E,GAAe9tE,EAAUnI,KAAK,cAC9Bk2E,GAAc/tE,EAAUnI,KAAK,aAC7Bm2E,GAAehuE,EAAUnI,KAAK,cAC9Bo2E,GAAejuE,EAAUnI,KAAK,sBAC9Bq2E,GAAUf,EAAavxB,GAAG,SAC1BuyB,GAAmBD,IAAyC,UAA9Bf,EAAaxwE,KAAK,SAAuB88D,IACvE2U,GAAgBF,KAAYnX,EAC5BsX,GAAWD,GACP31C,EAAEqgC,GAAcnkE,SAASu0B,GAAOv0B,SAASgE,EAAK7F,WAAW6B,SAASgE,EAAKw/D,mBACvE1/B,EAAE,IACN61C,GAAgBF,GAAgBC,GAAWlB,EAC3CoB,GAAiBF,GAASx2E,KAAK,qBAC/B22E,GAAe71E,EAAKukD,OAAUgxB,IAAWf,EAAah0E,MACtDs1E,IAAc,EACdC,GAAyB/1E,EAAKs/D,gBAC9Bf,IAAuBv+D,EAAKs+D,aAAet+D,EAAKu+D,oBAChD3wC,IAAWioD,GACXv/B,GAAat2C,EAAKs2C,aAAek/B,GAEnC,SAASQ,KAOP,GANIh2E,EAAK0+D,kBACP1+D,EAAKy+D,aAAc,GAGrB6W,GAAaz0E,KAAKb,EAAK0+D,gBAAkB1+D,EAAKk/D,sBAAwBl/D,EAAKm/D,uBAEvEn/D,EAAK0/D,QAAS,CAChBA,EAAU1/D,EAAK0/D,QAAQloB,MAAM,GAC7B48B,EAAet0C,EAAE1tB,QAAQstD,EAAQ,IAAMA,EAAU,CAACA,GAClD2U,EAAgB,GAChB,IAAK,IAAI7yE,EAAI,EAAGA,EAAI4yE,EAAa/1E,OAAQmD,IACvC,IAAK,IAAIo3C,EAAI,EAAGA,EAAIw7B,EAAa5yE,GAAGnD,OAAQu6C,IAAK,CAC/C,IAAIkpB,EAAMD,EAAUuS,EAAa5yE,GAAGo3C,IAAI8sB,cACxC2O,EAAcvS,IAAO,GAK3Bz6D,EAAU4uE,YAAY,UAAW7X,GACjC/2D,EAAU4uE,YAAY,qBAAsBj2E,EAAKq+D,WACjDh3D,EAAU4uE,YAAY,mBAAoBj2E,EAAKy/D,WAC/Cp4D,EAAU4uE,YAAY,mBAAoB3/B,IAC1CjvC,EAAU4uE,YAAY,uBAAwBj2E,EAAKs+D,aACnDj3D,EAAU4uE,YAAY,+BAAgCj2E,EAAK4+D,mBAC3Dv3D,EAAU4uE,YAAY,uBAAwBj2E,EAAKy+D,aACnDp3D,EAAU4uE,YAAY,kBAAmBj2E,EAAK0+D,iBAC9Cr3D,EAAU4uE,YAAY,uBAAwBj2E,EAAKw+D,aACnDn3D,EAAUrL,SAASgE,EAAK7F,WAAW6B,SAASgE,EAAKu/D,oBAEjD6T,KAyNF,SAAS8C,KACP,GAAIpX,GAAmB3nE,OAAOg/E,aAAc,CAE1C,IACE,IAAIC,EAAaj/E,OAAOg/E,aAAarX,GAAiBjmE,MAAM,MACxDu9E,EAAW/3E,OAAS,WACflH,OAAOg/E,aAAarX,GAC3Bh/B,EAAEtgC,KAAK42E,GAAY,SAAU50E,EAAGvB,GAC9Bo2E,GAA2Bp2E,OAG/B,MAAO3D,IAET,IACEqjE,EAAmBxoE,OAAOg/E,aAAarX,GAAiBjmE,MAAM,KAC9D,MAAOyD,MAIb,SAAS+5E,GAA2B9xB,GAClC,GAAIsa,EAAsB,CACxB,IAAIiD,EAAMD,EAAUtd,GAAOmhB,cAC3B,IAAK2O,EAAcvS,KAA8C,IAAtChiC,EAAEw2C,QAAQxU,EAAKnC,GAExC,IADAA,EAAiB36D,KAAK88D,GACfnC,EAAiBthE,OAAS0gE,GAC/BY,EAAiB5mE,QAIrB,GAAI+lE,GAAmB3nE,OAAOg/E,aAC5B,IACEh/E,OAAOg/E,aAAarX,GAAmBa,EAAiBxmD,KAAK,KAC7D,MAAO7c,MAoBf,SAASi6E,KACP,IAAIC,EAAe59E,KAEf0C,EAAOwkC,EAAEhuB,IAAIsiE,GAAc,SAAU1U,EAASl+D,GAChD,OAAOmxE,EAAgBjT,EAAS8W,EAAc,iCAAmCh1E,EAAGxB,MAGtFk2E,KAEIvW,GACFrkE,EAAK0J,KACH2tE,EA1BN,WACE,IAAI8D,EAAS,GACb,GAAIz2E,EAAKy+D,YACP,IAAK,IAAIj9D,EAAI,EAAGA,EAAIm+D,EAAiBthE,OAAQmD,IAAK,CAChD,IAAIsgE,EAAMD,EAAUlC,EAAiBn+D,IAAIkkE,cAEpC2O,EAAcvS,IACjB2U,EAAOzxE,KAAK26D,EAAiBn+D,IAKnC,OAAOi1E,EAAOC,UAAUl/B,MAAM,EAAGx3C,EAAK++D,kBAclB4X,GAA6BH,EAAc,0CAA2Cx2E,IAI1Gi1E,GAAiB35E,KAAKA,EAAK6d,KAAK,KAGlC,SAASy9D,KACP,GAAI52E,EAAKw+D,YAAa,CACpB,IAAIqY,EAAUf,GACVj9D,EAAUjgB,KACds8E,GAAsB55E,KAAKq3E,EAAgB,CAACkE,EAASh+D,GAAUA,EAAS,yBAA0B7Y,KAItG,SAASmR,MACHuiE,GAAc,GAAKD,GAAa,GAAKG,GAAe,IACtDR,KAEFG,GAAa,EACblsE,EAAUrL,SAASs4E,GACnBC,EAAyB,KACzBC,EAAa14E,QAAQ,qBAAsB,CAAClD,OAG9C,SAAS4Y,KACP+hE,GAAa,EACblsE,EAAUhI,YAAYi1E,GACtBE,EAAa14E,QAAQ,oBAAqB,CAAClD,OAG7C,SAASk+E,KACP,IAAI75E,EAAQ+3E,GAAUx0E,MAEtB,GAAe,OAAVvD,GAA4B,KAAVA,IAAiBq5C,GAGjC,CACL,IAAIs8B,EAAO/Q,EAAU5kE,GACjB21E,EAAKrO,WACPxpE,GAAI63E,GACJmE,IAAoB,IAEpB/B,GAAUh5E,SAAS,4BARrBjB,GAAI,MACJg8E,IAAoB,GAYxB,SAASC,KACH1D,EACFr0E,KAEA+mC,KAIJ,SAASA,KACP,IAAIthC,EAAQo7B,EAAEm3C,MAAM,uBAEpB,GAAI3D,EACFF,UAMF,GAFAoB,EAAa14E,QAAQ,sBAAuB,CAAClD,QAET,IAAhCq6E,EAAUhV,WAAWrlE,QAAoB8L,EAAMwyE,qBAAnD,EA9cJ,WACE,IAAK,IAAI11E,EAAI,EAAGA,EAAIo+D,EAAUvhE,OAAQmD,IAChCo+D,EAAUp+D,IACZo+D,EAAUp+D,GAAGvC,OA+cfk4E,GACA7D,GAAU,EAEV,IAAI8D,EAAOt3C,EAAEjqB,GACbuhE,EAAK38E,KAAK,mBAAoB48E,IAC9BD,EAAK38E,KAAK,iBAAkB68E,IAC5Bx3C,EAAE3oC,QAAQsD,KAAK,kBAAmB04E,GAClCuC,GAAS15E,SAAS,aAClBqL,EAAUhI,YAAY,aAEtB+zE,KACAmE,KAEAzB,GAAcl9E,KAEdg+E,KACA3D,EAAUjtC,KAAK8vC,IACftB,EAAa14E,QAAQ,gBAAiB,CAACg6E,MAGzC,SAASuB,GAAU/6E,GAEC,KAAdA,EAAEsnC,SACJ3kC,KAIJ,SAASq4E,GAASh7E,GAEA,GAAZA,EAAE8P,SAMFmnE,IAIAhV,GACFwY,IAAoB,GAEpBS,KAEFv4E,OAGF,SAASA,KAEFq0E,IAAWlV,IAGhBkV,GAAU,EAEVxzC,EAAEjqB,GAAKmuB,OAAO,mBAAoBqzC,IAClCv3C,EAAEjqB,GAAKmuB,OAAO,iBAAkBszC,IAChCx3C,EAAE3oC,QAAQ6sC,OAAO,kBAAmBmvC,GAEpCuC,GAASr2E,YAAY,aACrBgI,EAAUrL,SAAS,aAEnBi3E,EAAUh0E,KAAKrG,MACf47E,EAAa14E,QAAQ,gBAAiB,CAAClD,QAGzC,SAAS4+E,KACPz8E,GAAI+6E,IAAa,GAGnB,SAAS/6E,GAAIwpD,EAAOkzB,GAQlB,IAAInQ,EAAUoQ,EAPV7V,EAAU0F,OAAOhjB,EAAO3rD,MAG1B2+E,OAKGhzB,GAASjO,GACZ1oB,IAAU,GAEVA,IAAU,EACV4lD,GAAajvB,EAEbmzB,GADApQ,EAAWzF,EAAUtd,IACHsgB,QAElBmP,EAAc0D,EAAO3qC,EAAI,IAAO,IAChCknC,EAAoByD,EAAOl+D,EAC3B06D,EAAewD,EAAOroD,EACtB8kD,EAAeuD,EAAO3hD,GAExBwhD,KAEIjQ,GAAYA,EAAS/C,YAAckT,IACrC1B,GAAyB/1E,EAAKs/D,iBAAmBgI,EAAS7C,cAI9D,SAAS7rE,GAAIoH,GAGX,OAFAA,EAAOA,GAAQ,GAEXs2C,IAAc1oB,GACT,KAGFi0C,EAAUwF,UACf,CACEt6B,EAAGinC,EACHx6D,EAAGy6D,EACH5kD,EAAG6kD,EACHn+C,EAAGvT,KAAK0c,MAAqB,IAAfi1C,GAAsB,KAEtC,CAAElS,OAAQjiE,EAAKiiE,QAAU8T,KAQ7B,SAAS5X,KACPoZ,KAEAtE,EAAU9U,KAAKvlE,MACf47E,EAAa14E,QAAQ,gBAAiB,CAAClD,OAGzC,SAAS2+E,KACPvC,GAAU31E,YAAY,uBAEtBs4E,KAGA,IAAIC,EAAY/V,EAAUwF,UAAU,CAAEt6B,EAAGinC,EAAYx6D,EAAG,EAAG6V,EAAG,IAC9DxY,EAAQ1I,IAAI,mBAAoBypE,EAAUtS,eAG1C,IAAIrD,EAAS8T,GACT5B,EAAe,IAAwB,IAAjBA,GAAiC,SAAXlS,KAC/B,QAAXA,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,IAChEA,EAAS,QAIb,IAAI4V,EAAYj/E,GAAI,CAAEqpE,OAAQA,IAC5B6V,EAAe,GAMjB,GAHAlC,GAAev2E,YAAY,oBAC3Bu2E,GAAeznE,IAAI,mBAAoB,gBAElC0pE,GAAavhC,GAEhBs/B,GAAe55E,SAAS,wBACnB,CACL,IAAI+7E,EAAUF,EAAUvS,cACtB0S,EAAUH,EAAUnS,cAUtB,GAPI1F,GAAmC,IAApB6X,EAAUI,MAC3BrC,GAAeznE,IAAI,mBAAoB6pE,IAEvCpC,GAAeznE,IAAI,mBAAoB,eACvCynE,GAAeznE,IAAI,SAAU0pE,EAAU9R,aAGrC/lE,EAAKy/D,UAAW,CAClB,IAAIqC,EAAM+V,EAAUlT,QACpB7C,EAAI/rC,EAAI,EACR,IAAImiD,EAAYrW,EAAUC,GAAK4D,cAC3ByS,EAAW,yBAA2BD,EAAY,KAAOH,EAAU,IAEnElY,EACFgV,GAAiB1mE,IAAI,SAAU0zD,EAAUqW,GAAWnS,SAAS,CAAE9B,aAAc,GAAK8T,KAElFlD,GAAiB1mE,IAAI,aAAc,WAAagqE,GAChDtD,GAAiB1mE,IAAI,aAAc,QAAUgqE,GAC7CtD,GAAiB1mE,IAAI,aAAc,OAASgqE,GAE5CtD,GAAiB1mE,IAAI,aAAc,6BAA+B+pE,EAAY,KAAOH,EAAU,MAInGD,EAAeD,EAAU3nD,SAAS+xC,GAIhCjiE,EAAKq+D,WACP2W,GAAUx0E,IAAIs3E,GAGZ93E,EAAKy+D,aACP8X,KAGFK,KAGF,SAASe,KACP,IAAIn+D,EAAIy6D,EACJ5kD,EAAI6kD,EAER,GAAI59B,IAAc1oB,GAEhBmnD,GAAiB91E,OACjB21E,GAAY31E,OACZy1E,GAAWz1E,WACN,CAEL81E,GAAiB/uC,OACjB4uC,GAAY5uC,OACZ0uC,GAAW1uC,OAGX,IAAIjnB,EAAQvF,EAAIi6D,EACZz0D,EAAQ00D,EAAarkD,EAAIqkD,EAC7B30D,EAAQyD,KAAKC,KAAKkxD,EAAkBnxD,KAAKE,IAAI+wD,EAAYE,EAAkB50D,EAAQ40D,IACnF30D,EAAQwD,KAAKC,KAAKkxD,EAAkBnxD,KAAKE,IAAIgxD,EAAaC,EAAkB30D,EAAQ20D,IACpFe,GAAWvmE,IAAI,CACbiJ,IAAK4H,EAAQ,KACb7H,KAAM4H,EAAQ,OAGhB,IAAIq5D,EAASjE,EAAeN,EAC5BkB,GAAiB5mE,IAAI,CACnBgJ,KAAMihE,EAAStE,EAAwB,EAAI,OAI7C,IAAIuE,EAASrE,EAAaJ,EAC1BgB,GAAYzmE,IAAI,CACdiJ,IAAKihE,EAAStE,EAAoB,QAKxC,SAASgD,GAAoBuB,GAC3B,IAAI/zB,EAAQ3rD,KACVk/E,EAAe,GACfS,IAAa/E,IAAoB3R,EAAU0F,OAAOhjB,EAAOuxB,IAEvDvxB,IACFuzB,EAAevzB,EAAMr0B,SAAS6lD,KAE7BzC,GAAW+C,GAA2B9xB,IAGrCgxB,IACFf,EAAah0E,IAAIs3E,GAGfQ,GAAgBC,IAClBtF,EAAUv3B,OAAO6I,GACjBiwB,EAAa14E,QAAQ,SAAU,CAACyoD,KAIpC,SAAS6uB,KACFE,IAGLG,EAAY58D,EAAQpd,QACpBi6E,EAAa78D,EAAQrd,SACrBm6E,EAAmBe,GAAWl7E,SACjBm7E,GAAOl7E,QACpBm6E,EAAce,GAAOn7E,SACrBu6E,EAAoBa,GAAYp7E,SAChCq6E,EAAaiB,GAAYr7E,QACzBq6E,EAAwBiB,GAAiBt7E,QAEpC2kE,IACH/2D,EAAU8G,IAAI,WAAY,YACtBnO,EAAKgkB,OACP3c,EAAU2c,OAAOhkB,EAAKgkB,QAEtB3c,EAAU2c,OAoFlB,SAAmBw0D,EAAQ96E,GACzB,IAAI+6E,EAAS,EACTC,EAAUF,EAAOG,aACjBC,EAAWJ,EAAOK,cAClBC,EAAcp7E,EAAMm7E,cACpBhjE,EAAM2iE,EAAO,GAAG1iE,cAChBijE,EAAUljE,EAAImjE,gBACdC,EAAKF,EAAQG,YACbC,EAAKJ,EAAQK,aACbC,EAAMv5C,EAAEjqB,GAAK2E,aACb8+D,EAAMx5C,EAAEjqB,GAAK9X,YACbw7E,EAAYN,EAAKI,EACjBG,EAAaL,EAAKG,EAClBt1D,EAAStmB,EAAMsmB,SAcnB,OAZAA,EAAO5M,KAAO0hE,EAEd90D,EAAO7M,MAAQqL,KAAKE,IAClBsB,EAAO7M,KACP6M,EAAO7M,KAAOuhE,EAAUa,GAAaA,EAAYb,EAAUl2D,KAAK+lD,IAAIvkD,EAAO7M,KAAOuhE,EAAUa,GAAa,GAG3Gv1D,EAAO5M,KAAOoL,KAAKE,IACjBsB,EAAO5M,IACP4M,EAAO5M,IAAMwhE,EAAWY,GAAcA,EAAaZ,EAAWp2D,KAAK+lD,IAAIqQ,EAAWE,EAAcL,GAAUA,GAGrGz0D,EA/GgB2D,CAAUtgB,EAAWsuE,MAI1CgC,KAEI33E,EAAKy+D,aACP8X,KAGF/B,EAAa14E,QAAQ,oBAiCvB,SAAS0O,KACPvL,KACAc,GAAW,EACXy0E,EAAaxwE,KAAK,YAAY,GAC9B2xE,GAAc35E,SAAS,gBA7pBzB,WAeE,GAdI6jE,GACFx4D,EAAUnI,KAAK,gBAAgB8E,KAAK,eAAgB,MAGtDgyE,KAEIP,IACFjB,EAAaiF,MAAM/D,IAAUz2E,OAG1Bq3C,IACH8+B,GAAYn2E,OAGVm/D,EACFoW,EAAaiF,MAAMpyE,GAAWpI,WACzB,CACL,IAAI6K,EAA6B,WAAlB9J,EAAK8J,SAAwB0qE,EAAa3oE,SAAWi0B,EAAE9/B,EAAK8J,UACnD,IAApBA,EAASzL,SACXyL,EAAWg2B,EAAE,SAGfh2B,EAAS1K,OAAOiI,GA0KlB,SAASqyE,EAAoBp9E,GAa3B,OAZIA,EAAE4E,MAAQ5E,EAAE4E,KAAKy4E,QACnB5+E,GAAI+kC,EAAExjC,EAAExB,QAAQq0D,QAAQ,gBAAgBjuD,KAAK,UAC7Ci9D,OAEApjE,GAAI+kC,EAAExjC,EAAExB,QAAQq0D,QAAQ,gBAAgBjuD,KAAK,UAC7Ci9D,KACIn+D,EAAK2+D,yBACPoY,IAAoB,GACpB93E,QAIG,EApLTi3E,KAEAP,GAAcl7E,KAAK,sCAAsC,SAAU6B,GAC5DyD,GACHi3E,KAGF16E,EAAEiH,kBAEGu8B,EAAExjC,EAAExB,QAAQmoD,GAAG,UAClB3mD,EAAEmB,qBAIF+2E,EAAavxB,GAAG,eAAkC,IAAlBjjD,EAAKD,WACvCyK,KAIFnD,EAAU5K,MAAM8G,GAGhByxE,GAAUt5B,OAAOo7B,IACjB9B,GAAUv6E,KAAK,SAAS,WACtB4gB,WAAWy7D,GAAkB,MAE/B9B,GAAU4E,SAAQ,SAAUt9E,GACT,IAAbA,EAAEsnC,SACJkzC,QAIJ3B,GAAat0E,KAAKb,EAAKg/D,YACvBmW,GAAa16E,KAAK,kBAAkB,SAAU6B,GAC5CA,EAAEiH,kBACFjH,EAAEmB,iBACF+5E,KACAv4E,QAGFm2E,GAAYpxE,KAAK,QAAShE,EAAKo/D,WAC/BgW,GAAY36E,KAAK,kBAAkB,SAAU6B,GAC3CA,EAAEiH,kBACFjH,EAAEmB,iBACFmwB,IAAU,EACVuwC,KAEIC,GAEF2Y,IAAoB,MAIxB1B,GAAax0E,KAAKb,EAAKi/D,YACvBoW,GAAa56E,KAAK,kBAAkB,SAAU6B,GAC5CA,EAAEiH,kBACFjH,EAAEmB,iBAEEoiE,GAAMmV,GAAU/xB,GAAG,WACrB+xB,GAAUl5E,QAAQ,UA2Xdk5E,GAAU6E,SAAS,yBAvXvB9C,IAAoB,GACpB93E,SAIJq2E,GAAaz0E,KAAKb,EAAK0+D,gBAAkB1+D,EAAKk/D,sBAAwBl/D,EAAKm/D,uBAC3EmW,GAAa76E,KAAK,kBAAkB,SAAU6B,GAC5CA,EAAEiH,kBACFjH,EAAEmB,iBAEFuC,EAAK0+D,iBAAmB1+D,EAAK0+D,gBAOxB1+D,EAAK0+D,iBAAoBN,GAC5B/2D,EAAU8G,IAAI,OAAQ,MAAQsmE,EAAgBkE,YAAW,GAAQ,IAEnE3C,QAGF3pE,EACEyoE,IACA,SAAU/1D,EAAOC,EAAO1iB,GACtB63E,EAAep1D,EAAQ80D,EACvBjmD,IAAU,EACNtxB,EAAEw9E,WACJ3F,EAAe3xD,KAAK0c,MAAqB,GAAfi1C,GAAqB,IAGjDhW,OAEFhtD,GACAK,IAGFnF,EACEsoE,IACA,SAAU51D,EAAOC,GACfg1D,EAAavvD,WAAWzF,EAAQ40D,GAChChmD,IAAU,EACL5tB,EAAKy/D,YACR0U,EAAe,GAEjBhW,OAEFhtD,GACAK,IAGFnF,EACEwK,GACA,SAAUkI,EAAOC,EAAO1iB,GAEtB,GAAKA,EAAEw9E,UAEA,IAAKvF,EAAwB,CAClC,IAAIwF,EAAW9F,EAAoBR,EAC/BuG,EAAWtG,EAAaQ,EAAeR,EACvCuG,EAAez3D,KAAK+lD,IAAIxpD,EAAQg7D,GAAYv3D,KAAK+lD,IAAIvpD,EAAQg7D,GAEjEzF,EAAyB0F,EAAe,IAAM,UAN9C1F,EAAyB,KAS3B,IACIpjD,GAAYojD,GAAqD,MAA3BA,IADrBA,GAAqD,MAA3BA,KAI7CN,EAAoBxvD,WAAW1F,EAAQ00D,IAErCtiD,IACF+iD,EAAezvD,YAAYivD,EAAa10D,GAAS00D,IAGnD9lD,IAAU,EACL5tB,EAAKy/D,YACR0U,EAAe,GAGjBhW,OAEFhtD,GACAK,IAGIqkE,IACJ96E,GAAI86E,IAIJ0B,KACAxB,GAAyB/1E,EAAKs/D,iBAAmBuC,EAAUgU,IAAcpR,YAEzE4R,GAA2BR,KAE3B0B,KAGEnZ,GACFp4B,KAmBF,IAAIk0C,EAAera,EAAK,qBAAuB,qCAC/CoV,GAAiB1zB,SAAS,eAAgB24B,EAAcR,GACxDxE,GAAsB3zB,SAAS,4BAA6B24B,EAAc,CAAEP,QAAQ,GAAQD,GAkd9FjhD,GAEA,IAAIioC,GAAQ,CACV16B,KAAMA,GACN/mC,KAAMA,GACN+3E,OAAQA,GACR5D,OAAQA,GACRzS,OAzCF,SAAgBwZ,EAAYC,GAC1B,OAAID,IAAej6E,EACV4/B,EAAEnQ,OAAO,GAAI3vB,GAElBo6E,IAAgBl6E,EACXF,EAAKm6E,IAGdn6E,EAAKm6E,GAAcC,EAEA,oBAAfD,IACFpE,GAAyB/1E,EAAKs/D,sBAEhC0W,OA6BAzgE,OA1BF,WACExV,GAAW,EACXy0E,EAAaxwE,KAAK,YAAY,GAC9B2xE,GAAct2E,YAAY,gBAwB1BmL,QAASA,GACTwZ,OAfF,SAAmBq2D,GACjBr6E,EAAKgkB,OAASq2D,EACdjH,MAcAr4E,IAAK,SAAUkF,GACblF,GAAIkF,GACJ82E,MAEFn+E,IAAKA,GACLgR,QA1DF,WACE4qE,EAAaxuC,OACb2vC,GAAc3xC,OAAO,sCACrB38B,EAAU/M,SACVo7E,GAASp7E,SACTslE,EAAUc,GAAM3jE,IAAM,MAsDtBsK,UAAWA,GAKb,OAFAq5D,GAAM3jE,GAAK6iE,EAAU56D,KAAK07D,IAAS,EAE5BA,GAwCT,SAASxC,KAKT,SAAS36D,EAAgBjH,GACvBA,EAAEiH,kBAOJ,SAAS9I,EAAKgP,EAAMf,GAClB,IAAI8uC,EAAQpiC,MAAMlc,UAAUs+C,MACxBlf,EAAOkf,EAAMwkB,KAAK7gD,UAAW,GACjC,OAAO,WACL,OAAO1R,EAAKu3C,MAAMt4C,EAAK4vB,EAAKzC,OAAO2hB,EAAMwkB,KAAK7gD,cAQlD,SAAS9O,EAAUgc,EAASiyD,EAAQC,EAASC,GAC3CF,EAASA,GAAU,aACnBC,EAAUA,GAAW,aACrBC,EAASA,GAAU,aACnB,IAAI3kE,EAAMvW,SACNmc,GAAW,EACXuI,EAAS,GACTy2D,EAAY,EACZC,EAAW,EACXC,EAAW,iBAAkBxjF,OAE7ByjF,EAAmB,GAMvB,SAASC,EAAQv+E,GACXA,EAAEiH,iBACJjH,EAAEiH,kBAEAjH,EAAEmB,gBACJnB,EAAEmB,iBAEJnB,EAAEmkE,aAAc,EAGlB,SAAStC,EAAK7hE,GACZ,GAAImf,EAAU,CAEZ,GAAIokD,GAAMhqD,EAAIilE,aAAe,IAAMx+E,EAAE8P,OACnC,OAAOrE,IAGT,IAAIgzE,EAAKz+E,GAAKA,EAAE0+E,SAAW1+E,EAAE0+E,QAAQ,GACjCC,EAASF,GAAMA,EAAGE,OAAU3+E,EAAE2+E,MAC9BC,EAASH,GAAMA,EAAGG,OAAU5+E,EAAE4+E,MAE9Bn8D,EAAQyD,KAAKC,IAAI,EAAGD,KAAKE,IAAIu4D,EAAQj3D,EAAO7M,KAAMujE,IAClD17D,EAAQwD,KAAKC,IAAI,EAAGD,KAAKE,IAAIw4D,EAAQl3D,EAAO5M,IAAKqjE,IAEjDE,GAEFE,EAAQv+E,GAGVg+E,EAAOt5B,MAAM34B,EAAS,CAACtJ,EAAOC,EAAO1iB,KAwBzC,SAASyL,IACH0T,IACFqkB,EAAEjqB,GAAKmuB,OAAO42C,GACd96C,EAAEjqB,EAAIxU,MAAMhC,YAAY,eAIxBgc,YAAW,WACTm/D,EAAOx5B,MAAM34B,EAASlN,aACrB,IAELM,GAAW,EArEbm/D,EAAgB,YAAkBC,EAClCD,EAAgB,UAAgBC,EAChCD,EAAiB,uBAAyBzc,EAC1Cyc,EAAiB,oBAAsB7yE,EAqEvC+3B,EAAEzX,GAAS5tB,KAAK,wBAlChB,SAAe6B,GACb,IAAI6+E,EAAa7+E,EAAEqnC,MAAmB,GAAXrnC,EAAEqnC,MAAyB,GAAZrnC,EAAE8P,OAEvC+uE,GAAe1/D,IACwB,IAAtC8+D,EAAQv5B,MAAM34B,EAASlN,aACzBM,GAAW,EACXg/D,EAAY36C,EAAEzX,GAAS7uB,SACvBkhF,EAAW56C,EAAEzX,GAAS5uB,QACtBuqB,EAAS8b,EAAEzX,GAASrE,SAEpB8b,EAAEjqB,GAAKpb,KAAKmgF,GACZ96C,EAAEjqB,EAAIxU,MAAMrF,SAAS,eAErBmiE,EAAK7hE,GAELu+E,EAAQv+E,OAoChB,SAASwkE,IACP,OAAOhhC,EAAE7d,GAAGs+C,SAASO,wBA0dvB,SAASmE,EAAS/vC,EAAG6sC,EAAG/rC,GACtBd,EAAI8tC,EAAQ9tC,EAAG,KACf6sC,EAAIiB,EAAQjB,EAAG,KACf/rC,EAAIgtC,EAAQhtC,EAAG,KAEf,IAEI+W,EACFvzB,EAHEiJ,EAAMk/C,EAAQzsC,EAAG6sC,EAAG/rC,GACtBtT,EAAMg/C,EAAQxsC,EAAG6sC,EAAG/rC,GAGpByiB,GAAKh2B,EAAMC,GAAO,EAEpB,GAAID,GAAOC,EACTqqB,EAAIvzB,EAAI,MACH,CACL,IAAImoB,EAAIlf,EAAMC,EAEd,OADAlJ,EAAIi/B,EAAI,GAAM9W,GAAK,EAAIlf,EAAMC,GAAOif,GAAKlf,EAAMC,GACvCD,GACN,KAAKyS,EACH6X,GAAKg1B,EAAI/rC,GAAK2L,GAAKogC,EAAI/rC,EAAI,EAAI,GAC/B,MACF,KAAK+rC,EACHh1B,GAAK/W,EAAId,GAAKyM,EAAI,EAClB,MACF,KAAK3L,EACH+W,GAAK7X,EAAI6sC,GAAKpgC,EAAI,EAItBoL,GAAK,EAGP,MAAO,CAAEA,EAAGA,EAAGvzB,EAAGA,EAAGi/B,EAAGA,GAwC1B,SAASqsB,EAAS5vC,EAAG6sC,EAAG/rC,GACtBd,EAAI8tC,EAAQ9tC,EAAG,KACf6sC,EAAIiB,EAAQjB,EAAG,KACf/rC,EAAIgtC,EAAQhtC,EAAG,KAEf,IAEI+W,EACFvzB,EAHEiJ,EAAMk/C,EAAQzsC,EAAG6sC,EAAG/rC,GACtBtT,EAAMg/C,EAAQxsC,EAAG6sC,EAAG/rC,GAGpB3G,EAAI5M,EAEFkf,EAAIlf,EAAMC,EAGd,GAFAlJ,EAAY,IAARiJ,EAAY,EAAIkf,EAAIlf,EAEpBA,GAAOC,EACTqqB,EAAI,MACC,CACL,OAAQtqB,GACN,KAAKyS,EACH6X,GAAKg1B,EAAI/rC,GAAK2L,GAAKogC,EAAI/rC,EAAI,EAAI,GAC/B,MACF,KAAK+rC,EACHh1B,GAAK/W,EAAId,GAAKyM,EAAI,EAClB,MACF,KAAK3L,EACH+W,GAAK7X,EAAI6sC,GAAKpgC,EAAI,EAGtBoL,GAAK,EAEP,MAAO,CAAEA,EAAGA,EAAGvzB,EAAGA,EAAG6V,EAAGA,GA6B1B,SAASg2C,EAASnwC,EAAG6sC,EAAG/rC,EAAGovC,GACzB,IAAIgW,EAAM,CAACC,GAAK5Z,EAAUvsC,GAAGhF,SAAS,KAAMmrD,GAAK5Z,EAAUM,GAAG7xC,SAAS,KAAMmrD,GAAK5Z,EAAUzrC,GAAG9F,SAAS,MAGxG,OACEk1C,GACAgW,EAAI,GAAGr0B,OAAO,IAAMq0B,EAAI,GAAGr0B,OAAO,IAClCq0B,EAAI,GAAGr0B,OAAO,IAAMq0B,EAAI,GAAGr0B,OAAO,IAClCq0B,EAAI,GAAGr0B,OAAO,IAAMq0B,EAAI,GAAGr0B,OAAO,GAE3Bq0B,EAAI,GAAGr0B,OAAO,GAAKq0B,EAAI,GAAGr0B,OAAO,GAAKq0B,EAAI,GAAGr0B,OAAO,GAGtDq0B,EAAIjiE,KAAK,IAMlB,SAASqsD,EAAUtwC,EAAG6sC,EAAG/rC,EAAGD,GAC1B,IAyf2B4L,EAlf3B,MAPU,CACR05C,IAwfyB15C,EAxfA5L,EAyfpBvT,KAAK0c,MAAsB,IAAhBza,WAAWkd,IAAUzR,SAAS,MAxf9CmrD,GAAK5Z,EAAUvsC,GAAGhF,SAAS,KAC3BmrD,GAAK5Z,EAAUM,GAAG7xC,SAAS,KAC3BmrD,GAAK5Z,EAAUzrC,GAAG9F,SAAS,MAGlB/W,KAAK,IAwBlB,SAASutD,EAAWniB,EAAOojB,GACzBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIrF,EAAMT,EAAUtd,GAAOygB,QAG3B,OAFA1C,EAAI9oD,GAAKmuD,EAAS,IAClBrF,EAAI9oD,EAAI8hE,EAAQhZ,EAAI9oD,GACbqoD,EAAUS,GAGnB,SAASqE,EAASpiB,EAAOojB,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIrF,EAAMT,EAAUtd,GAAOygB,QAG3B,OAFA1C,EAAI9oD,GAAKmuD,EAAS,IAClBrF,EAAI9oD,EAAI8hE,EAAQhZ,EAAI9oD,GACbqoD,EAAUS,GAGnB,SAASsE,EAAUriB,GACjB,OAAOsd,EAAUtd,GAAOmiB,WAAW,KAGrC,SAASH,EAAQhiB,EAAOojB,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIrF,EAAMT,EAAUtd,GAAOygB,QAG3B,OAFA1C,EAAI7pB,GAAKkvB,EAAS,IAClBrF,EAAI7pB,EAAI6iC,EAAQhZ,EAAI7pB,GACbopB,EAAUS,GAGnB,SAASkE,EAASjiB,EAAOojB,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI7F,EAAMD,EAAUtd,GAAOogB,QAI3B,OAHA7C,EAAI5sC,EAAIysC,EAAQ,EAAGD,EAAQ,IAAKI,EAAI5sC,EAAIusC,GAAkBkG,EAAS,IAAjB,OAClD7F,EAAIC,EAAIJ,EAAQ,EAAGD,EAAQ,IAAKI,EAAIC,EAAIN,GAAkBkG,EAAS,IAAjB,OAClD7F,EAAI9rC,EAAI2rC,EAAQ,EAAGD,EAAQ,IAAKI,EAAI9rC,EAAIyrC,GAAkBkG,EAAS,IAAjB,OAC3C9F,EAAUC,GAGnB,SAAS2E,EAAOliB,EAAOojB,GACrBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIrF,EAAMT,EAAUtd,GAAOygB,QAG3B,OAFA1C,EAAI7pB,GAAKkvB,EAAS,IAClBrF,EAAI7pB,EAAI6iC,EAAQhZ,EAAI7pB,GACbopB,EAAUS,GAKnB,SAASuE,EAAKtiB,EAAOojB,GACnB,IAAIrF,EAAMT,EAAUtd,GAAOygB,QACvBuW,GAAO9Z,EAAUa,EAAIv1B,GAAK46B,GAAU,IAExC,OADArF,EAAIv1B,EAAIwuC,EAAM,EAAI,IAAMA,EAAMA,EACvB1Z,EAAUS,GAQnB,SAAS0E,EAAWziB,GAClB,IAAI+d,EAAMT,EAAUtd,GAAOygB,QAE3B,OADA1C,EAAIv1B,GAAKu1B,EAAIv1B,EAAI,KAAO,IACjB80B,EAAUS,GAGnB,SAAS6E,EAAM5iB,GACb,IAAI+d,EAAMT,EAAUtd,GAAOygB,QACvBj4B,EAAIu1B,EAAIv1B,EACZ,MAAO,CACL80B,EAAUtd,GACVsd,EAAU,CAAE90B,GAAIA,EAAI,KAAO,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,IACjDopB,EAAU,CAAE90B,GAAIA,EAAI,KAAO,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,KAIrD,SAAS2uB,EAAO7iB,GACd,IAAI+d,EAAMT,EAAUtd,GAAOygB,QACvBj4B,EAAIu1B,EAAIv1B,EACZ,MAAO,CACL80B,EAAUtd,GACVsd,EAAU,CAAE90B,GAAIA,EAAI,IAAM,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,IAChDopB,EAAU,CAAE90B,GAAIA,EAAI,KAAO,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,IACjDopB,EAAU,CAAE90B,GAAIA,EAAI,KAAO,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,KAIrD,SAASyuB,EAAgB3iB,GACvB,IAAI+d,EAAMT,EAAUtd,GAAOygB,QACvBj4B,EAAIu1B,EAAIv1B,EACZ,MAAO,CACL80B,EAAUtd,GACVsd,EAAU,CAAE90B,GAAIA,EAAI,IAAM,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,IAChDopB,EAAU,CAAE90B,GAAIA,EAAI,KAAO,IAAKvzB,EAAG8oD,EAAI9oD,EAAGi/B,EAAG6pB,EAAI7pB,KAIrD,SAASsuB,EAAUxiB,EAAOi3B,EAASC,GACjCD,EAAUA,GAAW,EACrBC,EAASA,GAAU,GAEnB,IAAInZ,EAAMT,EAAUtd,GAAOygB,QACvB0W,EAAO,IAAMD,EACbE,EAAM,CAAC9Z,EAAUtd,IAErB,IAAK+d,EAAIv1B,GAAKu1B,EAAIv1B,GAAM2uC,EAAOF,GAAY,GAAK,KAAO,MAAOA,GAC5DlZ,EAAIv1B,GAAKu1B,EAAIv1B,EAAI2uC,GAAQ,IACzBC,EAAI32E,KAAK68D,EAAUS,IAErB,OAAOqZ,EAGT,SAAS1U,EAAc1iB,EAAOi3B,GAC5BA,EAAUA,GAAW,EAQrB,IAPA,IAAIhZ,EAAMX,EAAUtd,GAAOsgB,QACvB93B,EAAIy1B,EAAIz1B,EACVvzB,EAAIgpD,EAAIhpD,EACR6V,EAAImzC,EAAInzC,EACNssD,EAAM,GACNC,EAAe,EAAIJ,EAEhBA,KACLG,EAAI32E,KAAK68D,EAAU,CAAE90B,EAAGA,EAAGvzB,EAAGA,EAAG6V,EAAGA,KACpCA,GAAKA,EAAIusD,GAAgB,EAG3B,OAAOD,EAwRT,SAASpY,EAAWxtC,GAOlB,OANAA,EAAItR,WAAWsR,IAEXrW,MAAMqW,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAGCA,EAIT,SAASitC,EAAQ6Y,EAAGp5D,IAkCpB,SAAwBo5D,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAE9vE,QAAQ,MAAgC,IAAlB0Y,WAAWo3D,IAlC9DC,CAAeD,KACjBA,EAAI,QAGN,IAAIE,EAkCN,SAAsBF,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAE9vE,QAAQ,KAnCrBiwE,CAAaH,GASlC,OARAA,EAAIna,EAAQj/C,EAAKk/C,EAAQ,EAAGl9C,WAAWo3D,KAGnCE,IACFF,EAAI72B,SAAS62B,EAAIp5D,EAAK,IAAM,KAI1B++C,EAAK+G,IAAIsT,EAAIp5D,GAAO,KACf,EAIDo5D,EAAIp5D,EAAOgC,WAAWhC,GAIhC,SAAS64D,EAAQ96E,GACf,OAAOkhE,EAAQ,EAAGC,EAAQ,EAAGnhE,IAI/B,SAASoiE,EAAgBpiE,GACvB,OAAOwkD,SAASxkD,EAAK,IAevB,SAAS66E,GAAKp7E,GACZ,OAAmB,GAAZA,EAAE5B,OAAc,IAAM4B,EAAI,GAAKA,EAIxC,SAASijE,GAAoB2Y,GAK3B,OAJIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAGTA,EAQT,SAASlZ,GAAoB51B,GAC3B,OAAO61B,EAAgB71B,GAAK,KDjuE3BkvC,CAAYn8C,GAEjB,IAAMo8C,EAAW,SAAA33B,GACf,IAAMhpD,EAA6B,SAAtBgpD,EAAMkgB,aAA0BlgB,EAAMshB,SAC7CsW,EAAyB,GAApB53B,EAAMmgB,WAAkBngB,EAAM+gB,cAAgB/gB,EAAMmhB,cAC/D,OAAOnqE,GAAQ4gF,EAAGh5E,QAAQ,KAAM,KAGbi5E,EAAAA,SAAAA,I,yHACnB,WACE,IAAMpiF,EAAO5C,KAAK4C,KAClB,qCACgB5C,KAAKomE,cADrB,yCAEgBxjE,EAFhB,iDAGkBA,EAHlB,mEAIoBA,EAJpB,6D,wBAUF,WACE,IAAMA,EAAO5C,KAAK4C,KAClB,gBAAUA,EAAV,iBAAuBA,EAAvB,iB,yBAGF,WACE,gBAAU5C,KAAK4C,KAAf,kB,oBAGF,WACEsjE,EAAAA,EAAAA,UAAAA,OAAAA,MAA6BlmE,KAAM+jB,WACnC/jB,KAAKilF,QAAQ9b,SAAS,a,0BAGxB,SAAajkE,GACXA,EAAEiH,kBACF,IAAQtG,EAAUX,EAAExB,OAAZmC,OACJif,EAAAA,EAAAA,aAAYjf,IAChB7F,KAAKsmE,gBAAgBzgE,K,6BAGvB,SAAgBuD,GACd,IAAQnG,EAAgBjD,KAAhBiD,MACAy2B,EADgB15B,KAAT4I,KACP8wB,SACJ7zB,EAAQuD,EACN67E,EAAUjlF,KAAKklF,aAGrB,GAAID,EAAS,CACXA,EAAQ9b,SAAS,MAAOtjE,GACxB,IAAMs/E,EAAKF,EAAQ9b,SAAS,OACtBhc,EAAQtnD,GAASi/E,EAASK,GAChCh4B,IAAUtnD,EAAQsnD,GAGpBzzB,EAAWA,EAAS7zB,GAAS5C,EAAMU,IAAI,CAAEkC,MAAAA,GAAS,CAAE2gE,UAAW,M,sBAQjE,SAASp9D,GAAgB,IAAXR,EAAW,uDAAJ,GACX3F,EAAUjD,KAAViD,MACFs5C,GAAOz3B,EAAAA,EAAAA,aAAYlc,EAAK2zC,KAAkBt5C,EAAMzB,IAAI,YAArBoH,EAAK2zC,IACpC12C,GAASif,EAAAA,EAAAA,aAAY1b,IAAc0b,EAAAA,EAAAA,aAAYy3B,GAAa,GAANA,EAA1BnzC,EAC5Bq9D,EAAUzmE,KAAKqmE,aACf4e,EAAUjlF,KAAKklF,aACfE,EAAoB,QAATv/E,EAAkBA,EAAQ,GAC3C4gE,EAAQ5gE,MAAQA,EAChBo/E,EAAQzjF,IAAI,GAAGmV,MAAMmyD,gBAAkBsc,GAGnCx8E,EAAK8sD,YAAe9sD,EAAK49D,YAAc59D,EAAKktB,cAC9CmvD,EAAQ9b,SAAS,MAAOic,GACxBplF,KAAKqlF,UAAqB,QAATx/E,K,wBAQrB,WACE,IAAK7F,KAAKilF,QAAS,CACjB,IAWIK,EAXIxiF,EAAoB9C,KAApB8C,GAAIG,EAAgBjD,KAAhBiD,MAAO2F,EAAS5I,KAAT4I,KACb28E,EAAOvlF,KACP4C,EAAO5C,KAAK4C,KACV82B,EAAa9wB,EAAb8wB,SAEJurD,EAAUv8C,EAAE,gBAAD,OAAgB1oC,KAAK4C,KAArB,gCACX4iF,EAAUP,EAAQzjF,IAAI,GAAGmV,MACzB8uE,EAAa3iF,GAAMA,EAAGJ,OAASI,EAAGJ,OAAOmB,GAAK,GAC9C6hF,EAAqB5iF,GAAMA,EAAGoN,WAAapN,EAAGoN,UAAU,gBAAmB,GAE3EkuC,EAAU,EAEdp+C,KAAK2E,IAAImD,KAAT,mBAAiCE,OAAOi9E,GACxCA,EAAQ9b,SAAR,OACEhc,MAAOlqD,EAAM62B,aAAc,EAC3BquC,mBAAoB,GAAF,OAAKvlE,EAAL,kBAAmBA,EAAnB,aAClB8P,SAAU+yE,GAAc,OACxB9d,iBAAkB,EAClBN,aAAa,EACbgB,WAAW,EACXR,WAAY,KACZD,WAAY,IACZU,QAAS,IAGNod,GACCziF,EAAMzB,IAAI,gBAAkB,IAblC,IAeEulE,KAfF,SAeO5Z,GACH,IAAM43B,EAAKD,EAAS33B,GACpBq4B,EAAQ1c,gBAAkBic,EAC1BrrD,EAAWA,EAASqrD,GAAI,GAAQ9hF,EAAM0iF,kBAAkBZ,EAAI,IAE9DzgC,OApBF,SAoBS6I,GACL/O,EAAU,EACV,IAAM2mC,EAAKD,EAAS33B,GACpBq4B,EAAQ1c,gBAAkBic,EACtBrrD,EACFA,EAASqrD,IAET9hF,EAAM0iF,kBAAkB,EAAG,GAC3B1iF,EAAM0iF,kBAAkBZ,IAE1BQ,EAAKF,UAAY,GAEnBz2C,KAhCF,SAgCOue,GACH/O,EAAU,EACVknC,EAAgB5rD,EAAWz2B,EAAM62B,SAAS,CAAE8rD,WAAW,IAAUd,EAAS33B,IAE5EtlD,KApCF,SAoCOslD,GACE/O,IAAYknC,IAAiB5rD,IAC5B6rD,EAAKF,YACPC,EAAgB,IAElBE,EAAQ1c,gBAAkBwc,EAC1BL,EAAQ9b,SAAS,MAAOmc,GACxB5rD,EAAWA,EAAS4rD,GAAe,GAAQriF,EAAM0iF,kBAAkBL,EAAe,QAKpFxiF,GAAMA,EAAG6M,IACX3P,KAAKgD,SAASF,EAAI,sBAAsB,WACtCs7C,EAAU,EACV6mC,EAAQ9b,SAAS,WAIrBnpE,KAAKilF,QAAUA,EAEjB,OAAOjlF,KAAKilF,U,oBAGd,WAIE,OAHA/e,EAAAA,EAAAA,UAAAA,OAAAA,KAA4BlmE,MAE5BA,KAAKklF,aACEllF,S,EA5JUglF,CAAmB9e,EAAAA,I,slBET9Bv9B,IAAAA,EAAV,IAEqBk9C,EAAAA,SAAAA,I,uBAkBnB,aAAuB,MAAXj9E,EAAW,uDAAJ,GAAI,sBACrB,cAAMA,IACNsO,EAAAA,EAAAA,UAAQ,UAAM,gBAAiB,eAC/B,EAAKuH,IAAMvW,SACX,EAAKlF,SAAS,EAAKC,MAAO,cAAe,EAAKkjE,mBAJzB,E,uCAjBvB,WACE,IAAMvjE,EAAO5C,KAAK4C,KAClB,sCACiBA,EADjB,uDAEiBA,EAFjB,qDAGgBA,EAHhB,6DAIkBA,EAJlB,sEAKkBA,EALlB,gE,wBAUF,WACE,IAAMA,EAAO5C,KAAK4C,KAClB,OAAO5C,KAAK4I,KAAKk9E,WAAV,UAA0BljF,EAA1B,iBAAuCA,EAAvC,mB,sBAeT,SAASiD,EAAO+C,GACd,IAAIikB,EAAMjkB,GAAQ,GACd4L,EAAQxU,KAAK+lF,mBAAmBlgF,EAAO,CAAEmgF,UAAW,IACpDC,EAAW,CAAEpgF,MAAO2O,EAAM3O,QAG1B2O,EAAMpQ,MAAQoQ,EAAMotB,SACtBqkD,EAAS7hF,KAAOoQ,EAAMpQ,MAGxBpE,KAAKiD,MAAMU,IAAIsiF,EAAUp5D,GAIrBA,EAAIrT,QACNxZ,KAAKmmE,sB,0BAOT,SAAajhE,GACXA,EAAEiH,kBACFnM,KAAK+5B,SAAS/5B,KAAKqmE,aAAaxgE,OAChC7F,KAAKumE,mB,8BAMP,SAAiBrhE,GACfA,EAAEiH,kBACF,IAAItG,EAAQ7F,KAAKkmF,YAAYrgF,MAC7B7F,KAAKiD,MAAMU,IAAI,OAAQkC,GACvB7F,KAAKumE,mB,2BAMP,SAAcrhE,GACE,YAAVA,EAAEoxB,MACJpxB,EAAEmB,iBACFrG,KAAKmmF,gBAGO,cAAVjhF,EAAEoxB,MACJpxB,EAAEmB,iBACFrG,KAAKomF,oB,4BAOT,WACEpmF,KAAKiD,MAAMyB,QAAQ,e,+BAMrB,WACE,IAAMzB,EAAQjD,KAAKiD,MACnBjD,KAAKqmE,aAAaxgE,MAAQ5C,EAAMzB,IAAI,SACpC,IAAM6kF,EAASrmF,KAAKkmF,YACpBG,IAAWA,EAAOxgF,MAAQ5C,EAAMzB,IAAI,SAAW,M,uBAOjD,WACE,IAAKxB,KAAKqmF,OAAQ,CAChB,IAAMpjF,EAAQjD,KAAKiD,MACbqjF,EAAQrjF,EAAMzB,IAAI,UAAY,GAEpC,GAAI8kF,EAAMr/E,OAAQ,CAChB,IAAMzE,EAAU,CAAC,+CAEjB8jF,EAAM75E,SAAQ,SAAArI,GACZ,IAAMgQ,EAAWhQ,GAAQnB,EAAMzB,IAAI,QAAU,WAAa,GAC1DgB,EAAQoL,KAAR,kBAAwBwG,EAAxB,YAAoChQ,EAApC,iBAGF,IAAMmiF,EAAOr+E,SAAS0lB,cAAc,OACpC24D,EAAKziF,UAAL,0BAAmC9D,KAAK4C,KAAxC,wBAA2DJ,EAAQuf,KAAK,IAAxE,aACA/hB,KAAKqmF,OAASE,EAAK3+E,YAIvB,OAAO5H,KAAKqmF,S,0BAMd,WACE,IAAQpjF,EAAUjD,KAAViD,MACF8yD,EAAO9yD,EAAMzB,IAAI,QACnBqE,EAAQwnB,WAAWpqB,EAAMzB,IAAI,UACjCxB,KAAK+5B,SAAS/5B,KAAKwmF,eAAe3gF,EAAQkwD,IAC1C/1D,KAAKumE,mB,4BAMP,WACE,IAAQtjE,EAAUjD,KAAViD,MACF8yD,EAAO9yD,EAAMzB,IAAI,QACjBqE,EAAQwnB,WAAWpqB,EAAMzB,IAAI,UACnCxB,KAAK+5B,SAAS/5B,KAAKwmF,eAAe3gF,EAAQkwD,IAC1C/1D,KAAKumE,mB,2BASP,SAAcrhE,GACZA,EAAEmB,iBACFrG,KAAK0V,MAAQ,EACb,IAAI7P,EAAQ7F,KAAKiD,MAAMzB,IAAI,UAAY,EACvCqE,EAAQ7F,KAAKwmF,eAAe3gF,GAC5B7F,KAAKyhB,QAAU,CAAE5E,EAAG3X,EAAE4+E,MAAO16E,IAAKvD,IAClC8J,EAAAA,EAAAA,IAAG3P,KAAKye,IAAK,YAAaze,KAAKymF,gBAC/B92E,EAAAA,EAAAA,IAAG3P,KAAKye,IAAK,UAAWze,KAAK0mF,e,2BAQ/B,SAAcp7E,GACZtL,KAAK0V,MAAQ,EACb,IAAMzS,EAAQjD,KAAKiD,MACb8yD,EAAO9yD,EAAMzB,IAAI,QACjBsI,EAAO9J,KAAKyhB,QACd0P,EAAMnxB,KAAKwmF,eAAe18E,EAAKV,KAAOU,EAAK+S,EAAIvR,EAAGw4E,OAAS/tB,GAC/D,EAAwB/1D,KAAK+lF,mBAAmB50D,GAAxCtrB,EAAR,EAAQA,MAAOzB,EAAf,EAAeA,KAGf,OAFApE,KAAK2mF,QAAU9gF,EACf5C,EAAMU,IAAI,CAAEkC,MAAAA,EAAOzB,KAAAA,GAAQ,CAAE0xB,WAAY,KAClC,I,yBAMT,WACE,IAAM7yB,EAAQjD,KAAKiD,MACb8yD,EAAO9yD,EAAMzB,IAAI,QAIvB,IAHAiU,EAAAA,EAAAA,KAAIzV,KAAKye,IAAK,UAAWze,KAAK0mF,cAC9BjxE,EAAAA,EAAAA,KAAIzV,KAAKye,IAAK,YAAaze,KAAKymF,eAE5BzmF,KAAK2mF,SAAW3mF,KAAK0V,MAAO,CAC9B,IAAI7P,EAAQ7F,KAAK2mF,QAAU5wB,EAC3B9yD,EAAMU,IAAI,QAASkC,EAAO,CAAEiwB,WAAY,IAAKnyB,IAAI,QAASkC,EAAQkwD,GAClE/1D,KAAKumE,oB,4BAIT,SAAe1gE,GAAqB,IAAd+gF,EAAc,uDAAH,EACzB3jF,EAAQjD,KAAKiD,MACb8yD,EAAO9yD,EAAMzB,IAAI,QACnBqlF,EAAe,EAEnB,GAAIv+D,MAAMziB,GACR,OAAO+gF,EAKT,GAFA/gF,EAAQwnB,WAAWxnB,GAEfulB,KAAK2gD,MAAMlmE,KAAWA,EAAO,CAC/B,IAAMysB,EAAOyjC,EAAKj9B,WAAWr3B,MAAM,KAAK,GACxColF,EAAev0D,EAAOA,EAAKrrB,OAAS,EAGtC,OAAO4/E,EAAex5D,WAAWxnB,EAAMihF,QAAQD,IAAiBhhF,I,gCASlE,SAAmBA,GAAkB,IAAX+C,EAAW,uDAAJ,GAC3Bg5B,EAAQ,EACR/U,EAAMjkB,GAAQ,GACd3F,EAAQjD,KAAKiD,MACX2jF,EAAW,GACbx9E,GAAO0b,EAAAA,EAAAA,aAAYjf,GAAiB+gF,EAAR/gF,EAC5BygF,EAAQ19E,EAAK09E,OAASrjF,EAAMzB,IAAI,UAAY,GAC5C4C,EAAOnB,EAAMzB,IAAI,SAAY8kF,EAAMr/E,QAAUq/E,EAAM,IAAO,GAC1Dj7D,GAAOvG,EAAAA,EAAAA,aAAYlc,EAAKyiB,KAAkBpoB,EAAMzB,IAAI,OAArBoH,EAAKyiB,IACpCC,GAAOxG,EAAAA,EAAAA,aAAYlc,EAAK0iB,KAAkBroB,EAAMzB,IAAI,OAArBoH,EAAK0iB,IACpCy7D,IAAiB9jF,EAAMzB,IAAI,gBAC3BwlF,IAAiB/jF,EAAMzB,IAAI,gBAE/B,GAAIqrB,EAAIm5D,UAAW,CACjB,IAAIiB,EAAQhkF,EAAMzB,IAAI,gBAAkB,GAIxC,GAFY,KAAR4H,IAAYhF,EAAO,IAEnBgF,EAAK,CAEP,IAAI89E,EAAW,IAAIroB,OAAO,IAAMooB,EAAMllE,KAAK,KAAM,KACjD,GAAIklE,EAAMhgF,QAAUigF,EAAS5+B,KAAKl/C,GAChCA,EAAMA,EAAImE,MAAM25E,GAAU,GAC1B9iF,EAAO,GACPw9B,EAAQ,MACH,CACL,IAAIulD,EAAU/9E,EAAM,GACpBA,GAAO,GACPA,EAAMikB,WAAWjkB,EAAI2C,QAAQ,IAAK,MAClC3C,EAAOkf,MAAMlf,GAAaw9E,EAANx9E,EACpB,IAAIg+E,EAAKD,EAAQp7E,QAAQ3C,EAAK,KAE1BuL,EAAAA,EAAAA,SAAQ2xE,EAAOc,IAAO,IAAGhjF,EAAOgjF,KAQ1C,OAHKL,IAAiBjiE,EAAAA,EAAAA,aAAYuG,IAAgB,KAARA,IAAYjiB,EAAMA,EAAMiiB,EAAMA,EAAMjiB,GACzE49E,IAAiBliE,EAAAA,EAAAA,aAAYwG,IAAgB,KAARA,IAAYliB,EAAMA,EAAMkiB,EAAMA,EAAMliB,GAEvE,CACLw4B,MAAAA,EACA/7B,MAAOuD,EACPhF,KAAAA,K,oBAIJ,WACE8hE,EAAAA,EAAAA,UAAAA,OAAAA,KAA4BlmE,MAC5BA,KAAKqmF,OAAS,KACd,IAAMjiF,EAAOpE,KAAKkmF,YAElB,OADA9hF,GAAQpE,KAAK2E,IAAImD,KAAT,WAAkB9H,KAAK4C,KAAvB,gBAA0CpB,IAAI,GAAGiG,YAAYrD,GAC9DpE,S,EAlRU6lF,CAAoB3f,EAAAA,GAsRzC2f,EAAY/jF,UAAUsD,OAAS,CAC7B,eAAgB,eAChB,gBAAiB,mBACjB,wBAAyB,eACzB,0BAA2B,iBAC3B,0BAA2B,gBAC3Bo9E,QAAS,kB,glBChSU54D,EAAAA,SAAAA,I,uBAQnB,aAAgD,MAApChhB,EAAoC,uDAA7B,GAAIlG,EAAyB,uCAAjBhC,EAAiB,8EAC9C,cAAMkI,IADwC,8BANpC,KAMoC,6BAJrC,SAIqC,+BAFpC,GAIV,EAAKlG,OAASA,GAAUkG,EAAKlG,QAAU,GACvChC,GAAW,EAAKsC,SAAS,EAAKP,WAAY,MAAO,EAAK+U,OACtD,EAAKwK,MAAQ,GAJiC,E,oCAYhD,SAAM/e,GACJjD,KAAK6G,IAAI5D,K,8BAGX,SAAiB3B,GACf,IAAQoB,EAAe1C,KAAf0C,OAAQ2kF,EAAOrnF,KAAPqnF,GACRvkF,EAAOJ,EAAPI,GACFioC,EAAO,GAAH,OAAMs8C,EAAK,IAAH,OAAOA,EAAP,OAAiB,GAAzB,YAA+B/lF,EAA/B,oBACVwB,GAAMA,EAAGm9B,WAAW8K,K,iBAStB,SAAI9nC,EAAOoE,GACT,IA4BIlE,EA5BIT,EAA6C1C,KAA7C0C,OAAQ4kF,EAAqCtnF,KAArCsnF,UAAWtlE,EAA0BhiB,KAA1BgiB,MAA3B,EAAqDhiB,KAAnBunF,UAAAA,OAAlC,MAA8C,GAA9C,EAyBIvuE,EAAO3R,GAAY,KACnBwiB,EAAW7pB,KAAK6pB,SAChB29D,EAAYvkF,EAAMzB,IAAIxB,KAAKynF,UAG3BF,EAAUC,GACZ39D,EAAW09D,EAAUC,IACZA,GAAcD,EAAUC,KAAepnD,EAAAA,EAAAA,UA/B/B,CACjB,SACA,WACA,QACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA,QASqEonD,IACrExnF,KAAK0nF,iBAAiBF,GAItBrkF,EADEF,EAAME,MAAQmkF,EACTrkF,EAAME,KAEN,IAAI0mB,EAAS,CAAE5mB,MAAAA,EAAOP,OAAAA,GAAUA,GAGzCsf,GAASA,EAAMpU,KAAKzK,GACpB,IAAMmE,EAAWnE,EAAKqE,SAAS3D,GAE3BmV,EAAMA,EAAKvR,YAAYH,GACtBtH,KAAK2E,IAAIqD,OAAOV,K,oBAGvB,WACE,IAAI0R,EAAO9Q,SAASC,yBAWpB,OAVAnI,KAAK2nF,aACL3nF,KAAK2E,IAAIoD,QAEL/H,KAAKyC,WAAWwE,QAClBjH,KAAKyC,WAAW2F,MAAK,SAAUnF,GAC7BjD,KAAK6G,IAAI5D,EAAO+V,KACfhZ,MAELA,KAAK2E,IAAIqD,OAAOgR,GAChBhZ,KAAKkpB,WACElpB,O,sBAGT,c,4BAEA,c,sBACA,c,oBAEA,WAAkB,IAAX4I,EAAW,uDAAJ,GACJoZ,EAAUhiB,KAAVgiB,MACRhiB,KAAK4nF,eAAe5lE,EAAOpZ,GAC3B5I,KAAK2nF,aACLh/C,IAAAA,KAAAA,UAAAA,OAAAA,MAAqC3oC,KAAM+jB,WAC3C/jB,KAAK02B,SAAS1U,EAAOpZ,K,wBAGvB,WACgB5I,KAAKgiB,U,EApHF4H,CAAoB+e,IAAAA,MA4HzC/e,EAAY9nB,UAAU+nB,SAAW,I,sGC/H3Bg+D,EAAiB,CAAE//B,YAAa,iBAEtC,MCAA,GAEEuN,OAAQ,KAGRyyB,eAAgB,KAGhBC,cAAc,EAGdljD,OAAO,EAGPmjD,SAAU,CACRjiD,GDfJ,CACEkiD,aAAc,CACZC,UAAW,YACXC,SAAU,+BACVp7C,WAAY,eACZq7C,YAAa,sCAIfC,aAAc,CACZC,OAAQ,GAGRnxE,WAAY,IAIdoxE,cAAe,CACbxd,MAAO,CACL,GAAI,MACJn2D,QAAS,OACTnL,KAAM,OACN++E,QAAS,UACT/6E,MAAO,QACPg7E,MAAO,QACP31E,MAAO,QACP41E,KAAM,OACNhuE,IAAK,MACLiuE,MAAO,aACPC,MAAO,aACPC,MAAO,aACPC,MAAO,QACPC,IAAK,YACLC,KAAM,eAGVC,cAAe,CACbzrE,OAAQ,SACR2hC,QAAS,CACP+pC,QAAS,UACTC,OAAQ,SACRC,gBAAiB,mBACjBC,eAAgB,oBAGpB57C,OAAQ,CACN67C,QAAS,CACPC,OAAQ,CACNC,QAAS,UACTC,WAAY,aACZ,gBAAiB,kBACjB,kBAAmB,YACnB,UAAW,qBACX,UAAW,WACX,cAAe,qBACf,cAAe,iBAIrBC,gBAAiB,CACf52E,MAAO,UACPsB,SAAU,WACVu1E,WAAY,YACZC,OAAQ,CACNC,MAAO,QACPtqD,OAAQ,QACR,kBAAmB,aAGvBuqD,aAAc,CACZ/hF,MAAO,+CACPgiF,MAAO,QACPC,WAAY,SACZC,QAAS,CACPC,QAAS,UACTC,OAAQ,SACRC,WAAY,aACZC,YAAa,cACbjhB,MAAO,QACPkhB,KAAM,OACNC,UAAW,aAIbC,WAAY,CACV,gBAAiB,IACjB,gBAAiB,IACjB,mBAAoB,OACpB,oBAAqB,QACrB,eAAgB,IAChB,eAAgB,IAChB,kBAAmB,OACnB,oBAAqB,SACrB,mBAAoB,QACpB,kBAAmB,OACnB,iBAAkB,MAClB,mBAAoB,QACpB,oBAAqB,SACrB,kBAAmB,OACnB,kBAAmB,MACnB,oBAAqB,QACrB,qBAAsB,SACtB,mBAAoB,OACpB,mBAAoB,QACpB,mBAAoB,QACpB,mBAAoB,QACpB,6BAA8B,WAC9B,8BAA+B,YAC/B,iCAAkC,eAClC,gCAAiC,cACjC,qBAAsB,WACtB,qBAAsB,WACtB,qBAAsB,WACtB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,0BAA2B,WAC3B,0BAA2B,WAC3B,iCAAkC,SAClC,uBAAwB,QACxB,wBAAyB,SACzB,0BAA2B,WAC3B,4BAA6B,aAC7B,sBAAuB,SAU3BC,aAAc,CACZ1iF,MAAO,+CACP+K,MAAO,qBACPszC,OAAQ,CAENkiC,OAAQ,GAORj1E,WAAY,CACV1N,GAAIkiF,EACJpnE,IAAKonE,EACLp/E,MAAOo/E,EACPnnE,KAAM,CAAEonC,YAAa,2BAGvBtlD,QAAS,CACPkB,OAAQ,CACNgnF,MAAO,cACPC,OAAQ,iBAKhBC,eAAgB,CACdC,QAAS,6CC9IXC,YAAa,M,qkBCWf,IAAMC,EAAQ,SAAAlnF,GAAE,OAAKma,MAAMhD,QAAQnX,IAAc,OAAPA,GAA6B,YAAd,OAAOA,IAE1DmnF,EAAa,SAAbA,IAGJ,IAFA,IAAMtnF,EAAS,EAAH,4CAEH0G,EAAI,EAAGA,EAAI,UAAKnD,OAAQmD,IAAK,CACpC,IAAM0qD,EAAS,EAAH,GAAa1qD,EAAb,qBAAaA,OAAb,YAAaA,IAEzB,IAAK,IAAIksB,KAAOw+B,EAAQ,CACtB,IAAMm2B,EAAYvnF,EAAO4yB,GACnB40D,EAAWp2B,EAAOx+B,GAEpBy0D,EAAME,IAAcF,EAAMG,GAC5BxnF,EAAO4yB,GAAO00D,EAAWC,EAAWC,GAEpCxnF,EAAO4yB,GAAO40D,GAKpB,OAAOxnF,GAGT,mBACE,MAAO,CACLS,KAAM,OAENzB,OAAAA,EAOAU,KAVK,WAUW,IAAXwF,EAAW,uDAAJ,GACV5I,KAAK0C,OAAL,SACKA,GACAkG,GAFL,IAGEo/E,SAAU,EAAF,KACHtlF,EAAOslF,UACNp/E,EAAKo/E,UAAY,MAGzB,IAAMnhF,EAAM7G,KAAK0C,OAAOooF,YAQxB,OAPAjkF,GAAO7G,KAAKmrF,YAAYtkF,GAEpB7G,KAAK0C,OAAOqlF,eACd/nF,KAAK0C,OAAO2yD,OAASr1D,KAAKorF,cAG5BprF,KAAK8C,GAAK8F,EAAK9F,GACR9C,MAOTkQ,UAlCK,WAmCH,OAAOlQ,KAAK0C,QAUd2oF,UA7CK,SA6CKh2B,GACR,IAAQvyD,EAAe9C,KAAf8C,GAAIJ,EAAW1C,KAAX0C,OACN4oF,EAAQ,CAAEzlF,MAAOwvD,EAAQk2B,UAAW7oF,EAAO2yD,QAGjD,OAFAvyD,GAAMA,EAAG4B,QAAQ,cAAe4mF,GAChC5oF,EAAO2yD,OAASA,EACTr1D,MAOTwrF,UAzDK,WA0DH,OAAOxrF,KAAK0C,OAAO2yD,QAerBo2B,YAzEK,SAyEOC,GAAiB,IAAX9iF,EAAW,uDAAJ,GACfo/E,EAAahoF,KAAK0C,OAAlBslF,SAER,OADA0D,IAAS1D,EAAS0D,IAAS1rF,KAAK2rF,OAAL,WAAgBD,EAAhB,yBAA6C9iF,GACjE8iF,EAAO1D,EAAS0D,GAAQ1D,GAejC4D,YA3FK,SA2FOC,GACV,IAAQ/oF,EAAe9C,KAAf8C,GAGR,OAHuB9C,KAAX0C,OACLslF,SAAW6D,EAClB/oF,GAAMA,EAAG4B,QAAQ,cAAemnF,GACzB7rF,MAeTmrF,YA9GK,SA8GOU,GACV,IAAQ/oF,EAAO9C,KAAP8C,GACAklF,EAAahoF,KAAK0C,OAAlBslF,SAIR,OAHAllF,GAAMA,EAAG4B,QAAQ,WAAYmnF,GAC7B7rF,KAAK4rF,YAAYZ,EAAWhD,EAAU6D,IAE/B7rF,MAsBTgG,EA1IK,SA0IHswB,GAAgB,IAAX1tB,EAAW,uDAAJ,GACJlG,EAAW1C,KAAX0C,OACFyH,EAAQvB,EAAKrI,QAAU,GACvB80D,EAASzsD,EAAKy4C,GAAKrhD,KAAKwrF,YACxBM,EAAYljF,EAAKmjF,MAAQrpF,EAAOolF,eAClC7lF,EAASjC,KAAKgsF,QAAQ11D,EAAK++B,EAAQzsD,GAQvC,OALK3G,IAAQA,EAASjC,KAAKgsF,QAAQ11D,EAAKw1D,EAAWljF,KAElD3G,GAAUjC,KAAK2rF,OAAL,WAAgBr1D,EAAhB,oCAA+C++B,EAA/C,UAA+DzsD,GAC1E3G,EAASA,IAAUiX,EAAAA,EAAAA,UAASjX,GAAUjC,KAAKisF,WAAWhqF,EAAQkI,GAASlI,GAKzEmpF,WA1JK,WA2JH,IAAMc,GAAOnzD,EAAAA,EAAAA,WAAYh5B,OAAO2oE,WAAc,GACxCgjB,EAAOQ,EAAIC,UAAYD,EAAIE,aACjC,OAAOV,EAAOA,EAAKjqF,MAAM,KAAK,GAAK,MAGrCwqF,WAhKK,SAgKMjvC,EAAKz8C,GACd,IAAMq+D,EAAM,IAAIC,OAAJ,iBAA+B,KAC3C,OAAO7hB,EAAIjxC,QAAQ6yD,GAAK,SAACzsD,EAAG/I,GAAJ,OAAY7I,EAAO6I,IAAQ,MAAI3C,QAGzDulF,QArKK,SAqKG11D,EAAK++B,GAAmB,IAAXzsD,EAAW,uDAAJ,GACpByjF,EAASrsF,KAAKyrF,YAAYp2B,EAAQzsD,GAGxC,GAAKyjF,EAAL,CAEA,IAAIpqF,EAASoqF,EAAO/1D,GAUpB,OAPKr0B,GAAUq0B,EAAI3hB,QAAQ,KAAO,IAChC1S,EAASq0B,EAAI70B,MAAM,KAAK26C,QAAO,SAACsvC,EAAMp1D,GACpC,KAAIxR,EAAAA,EAAAA,aAAY4mE,GAChB,OAAOA,EAAKp1D,KACX+1D,IAGEpqF,IAGT0pF,OAxLK,SAwLE3uC,GAAgB,IAAXp0C,EAAW,uDAAJ,GACT9F,EAAe9C,KAAf8C,GAAIJ,EAAW1C,KAAX0C,QACXkG,EAAKi8B,OAASniC,EAAOmiC,QAAU/hC,GAAMA,EAAGm9B,WAAW+c,IAGtDxqC,QA7LK,WA8LHxS,KAAK0C,OAASA,EACd1C,KAAK8C,GAAK,O,8DCpPZ28B,E,wCACF6sD,EAAY,GACZC,EAAQ,CACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,GAENC,EAAS,MAETC,EAAa,CACX,IAAK,GACL9qF,MAAO,GACP,IAAK,GACL8e,IAAK,GACL8oD,OAAQ,GACR,IAAK,GACLmjB,KAAM,GACNC,QAAS,GACT,IAAK,GACLrrD,QAAS,IAGXsrD,EAAO,CACLC,UAAW,EACXC,IAAK,EACL5qD,MAAO,GACP6qD,MAAO,GACPC,OAAQ,GACRC,IAAK,GACLnuC,OAAQ,GACRouC,MAAO,GACPntE,KAAM,GACNotE,GAAI,GACJnuD,MAAO,GACPouD,KAAM,GACNC,IAAK,GACLC,OAAQ,GACRC,KAAM,GACNznD,IAAK,GACL0nD,OAAQ,GACRC,SAAU,GACV,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,KAERp1D,EAAO,SAAUzb,GACf,OAAOgwE,EAAKhwE,IAAMA,EAAEgpB,cAAc8nD,WAAW,IAE/CC,EAAY,GAEd,IAAKluD,EAAI,EAAGA,EAAI,GAAIA,IAAKmtD,EAAK,IAAMntD,GAAK,IAAMA,EAG/C,SAAShQ,EAAMysB,EAAOxvC,GAEpB,IADA,IAAItC,EAAI8xC,EAAMj1C,OACPmD,KAAK,GAAI8xC,EAAM9xC,KAAOsC,EAAM,OAAOtC,EAC1C,OAAQ,EAIV,SAASwjF,EAAa3tC,EAAIC,GACxB,GAAID,EAAGh5C,QAAUi5C,EAAGj5C,OAAQ,OAAO,EACnC,IAAK,IAAImD,EAAI,EAAGA,EAAI61C,EAAGh5C,OAAQmD,IAC7B,GAAI61C,EAAG71C,KAAO81C,EAAG91C,GAAI,OAAO,EAE9B,OAAO,EAGT,IAAIyjF,EAAc,CAChB,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WAGN,SAASC,EAAkBxgF,GACzB,IAAKmyB,KAAK8sD,EAAOA,EAAM9sD,GAAKnyB,EAAMugF,EAAYpuD,IAwDhD,SAASsuD,EAAczgF,GACrB,IACEmyB,EADEnJ,EAAMhpB,EAAMk/B,QAEdpiC,EAAIqlB,EAAMk+D,EAAWr3D,GAQvB,GALIlsB,GAAK,GACPujF,EAAUz3D,OAAO9rB,EAAG,GAGX,IAAPksB,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAOi2D,EAET,IAAK9sD,KADL8sD,EAAMj2D,IAAO,EACHm2D,EAAgBA,EAAWhtD,IAAMnJ,IAAK03D,EAAUvuD,IAAK,GAInE,SAASwuD,IACP,IAAKxuD,KAAK8sD,EAAOA,EAAM9sD,IAAK,EAC5B,IAAKA,KAAKgtD,EAAYuB,EAAUvuD,IAAK,EAIvC,SAASuuD,EAAU13D,EAAK43D,EAAO1jF,GAC7B,IAAIqX,EAAMssE,EACVtsE,EAAOusE,EAAQ93D,QACAxtB,IAAX0B,IACFA,EAAS0jF,EACTA,EAAQ,OAIV,IAAK,IAAI9jF,EAAI,EAAGA,EAAIyX,EAAK5a,OAAQmD,IAE/B+jF,EAAO,IACP73D,EAAMzU,EAAKzX,GAAG3I,MAAM,MACZwF,OAAS,IACfknF,EAAOE,EAAQ/3D,GACfA,EAAM,CAACA,EAAIA,EAAIrvB,OAAS,KAG1BqvB,EAAMA,EAAI,IACVA,EAAM+B,EAAK/B,MAEEg2D,IAAYA,EAAUh2D,GAAO,IAC1Cg2D,EAAUh2D,GAAK1oB,KAAK,CAClB0gF,SAAUzsE,EAAKzX,GACf8jF,MAAOA,EACP1jF,OAAQA,EACR8rB,IAAKzU,EAAKzX,GACV+jF,KAAMA,IA8DZ,IAAK1uD,KAAKgtD,EAAYuB,EAAUvuD,IAAK,EAOrC,SAAS8uD,IACP,OAAO/B,GAAU,MAiBnB,SAAS4B,EAAQ93D,GACf,IAAIzU,EAMJ,MAH6B,KAD7BA,GADAyU,EAAMA,EAAIvqB,QAAQ,MAAO,KACdtK,MAAM,MACRogB,EAAK5a,OAAS,KACrB4a,EAAKA,EAAK5a,OAAS,IAAM,KAEpB4a,EAIT,SAASwsE,EAAQ/3D,GAEf,IADA,IAAI63D,EAAO73D,EAAI8pB,MAAM,EAAG9pB,EAAIrvB,OAAS,GAC5BunF,EAAK,EAAGA,EAAKL,EAAKlnF,OAAQunF,IAAML,EAAKK,GAAM/B,EAAW0B,EAAKK,IACpE,OAAOL,EAIT,SAASM,EAASC,EAAQphF,EAAO9C,GAC3BkkF,EAAOrhF,iBAAkBqhF,EAAOrhF,iBAAiBC,EAAO9C,GAAQ,GAC3DkkF,EAAOC,aACdD,EAAOC,YAAY,KAAOrhF,GAAO,WAC/B9C,EAAOzK,OAAOuN,UAKpB0gF,EAAUY,SAjDV,SAAkBV,GAChB1B,EAAS0B,GAAS,OAiDpBF,EAAUO,SAAWA,EACrBP,EAAUa,YA1CV,SAAqBX,GACnB,IAAI53D,EAAKw4D,EAAU1kF,EAEnB,IAAKksB,KAAOg2D,EAEV,IADAwC,EAAWxC,EAAUh2D,GAChBlsB,EAAI,EAAGA,EAAI0kF,EAAS7nF,QACnB6nF,EAAS1kF,GAAG8jF,QAAUA,EAAOY,EAAS54D,OAAO9rB,EAAG,GAC/CA,KAoCX4jF,EAAUh4D,OA9DV,SAAgB1oB,GACd,IAAIsZ,GAAWtZ,EAAM5J,QAAU4J,EAAMyhF,YAAYnoE,QAEjD,QAAoB,SAAXA,GAAiC,UAAXA,GAAkC,YAAXA,IA4DxDonE,EAAUgB,UA1EV,SAAmBxiD,GAIjB,MAHsB,iBAAXA,IACTA,EAAUnU,EAAKmU,KAEoB,GAA9B/c,EAAMk+D,EAAWnhD,IAuE1BwhD,EAAUiB,mBApEV,WACE,OAAOtB,EAAUvtC,MAAM,IAoEzB4tC,EAAUphD,OAlHV,SAAmBtW,EAAK43D,GACtB,IAAIgB,EACFrtE,EAEAzX,EACAo3C,EACAlwC,EAHA68E,EAAO,GAOT,IAFAe,EAAed,EAAQ93D,GAElBkrB,EAAI,EAAGA,EAAI0tC,EAAajoF,OAAQu6C,IAAK,CAaxC,IAZA3/B,EAAOqtE,EAAa1tC,GAAG//C,MAAM,MAEpBwF,OAAS,IAChBknF,EAAOE,EAAQxsE,IAGjByU,EAAMzU,EAAKA,EAAK5a,OAAS,GACzBqvB,EAAM+B,EAAK/B,QAEGxtB,IAAVolF,IACFA,EAAQK,MAELjC,EAAUh2D,GACb,OAEF,IAAKlsB,EAAI,EAAGA,EAAIkiF,EAAUh2D,GAAKrvB,OAAQmD,KACrCkH,EAAMg7E,EAAUh2D,GAAKlsB,IAEb8jF,QAAUA,GAASN,EAAat8E,EAAI68E,KAAMA,KAChD7B,EAAUh2D,GAAKlsB,GAAK,MAqF5B4jF,EAAUc,SAAWxC,EACrB0B,EAAU5qF,KAAO,SAAAmhB,GAGfkqE,EAASlqE,EAAIrc,SAAU,WAAW,SAAUoF,IAnO9C,SAAkBA,GAChB,IAAIgpB,EAAK64D,EAAS1vD,EAAGr1B,EAAGglF,EAAgBlB,EASxC,GARA53D,EAAMhpB,EAAMk/B,SAEkB,GAA1B/c,EAAMk+D,EAAWr3D,IACnBq3D,EAAU//E,KAAK0oB,GAIN,IAAPA,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAOi2D,EAGT,IAAK9sD,KAFL8sD,EAAMj2D,IAAO,EAEHm2D,EAAgBA,EAAWhtD,IAAMnJ,IAAK03D,EAAUvuD,IAAK,QAOjE,GAJAquD,EAAkBxgF,GAIb0gF,EAAUh4D,OAAO4uC,KAAK5kE,KAAMsN,IAG3BgpB,KAAOg2D,EAKb,IAHA4B,EAAQK,IAGHnkF,EAAI,EAAGA,EAAIkiF,EAAUh2D,GAAKrvB,OAAQmD,IAIrC,IAHA+kF,EAAU7C,EAAUh2D,GAAKlsB,IAGb8jF,OAASA,GAA0B,OAAjBiB,EAAQjB,MAAgB,CAGpD,IAAKzuD,KADL2vD,EAAiBD,EAAQhB,KAAKlnF,OAAS,EAC7BslF,IACFA,EAAM9sD,IAAMhQ,EAAM0/D,EAAQhB,MAAO1uD,IAAM,GAAO8sD,EAAM9sD,KAAkC,GAA5BhQ,EAAM0/D,EAAQhB,MAAO1uD,MACnF2vD,GAAiB,IAEO,GAAvBD,EAAQhB,KAAKlnF,QAAgBslF,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,OAAQ6C,IACjD,IAAnCD,EAAQ3kF,OAAO8C,EAAO6hF,KACpB7hF,EAAMjH,eAAgBiH,EAAMjH,iBAC3BiH,EAAM+7D,aAAc,EACrB/7D,EAAMnB,iBAAiBmB,EAAMnB,kBAC7BmB,EAAM+hF,eAAc/hF,EAAM+hF,cAAe,KAwLnDC,CAAShiF,MAEXmhF,EAASlqE,EAAIrc,SAAU,QAAS6lF,GAChCU,EAASlqE,EAAK,QAAS0pE,IAGzB,U,skBCrRAl1D,EAAAA,EAAAA,WAAYw2D,EAAUnsF,KAAKrD,QAE3B,mBACE,IAAMyvF,EAAY,CAChB//E,SAAU,CACR,YAAa,CACXoS,KAAM,cACNstE,QAAS,aAEX,YAAa,CACXttE,KAAM,0BACNstE,QAAS,aAEX,YAAa,CACXttE,KAAM,cACNstE,QAAS,aAEX,aAAc,CACZttE,KAAM,cACNstE,QAAS,cAEX,sBAAuB,CACrBttE,KAAM,IACNstE,QAAS,uBAEX,sBAAuB,CACrBttE,KAAM,IACNstE,QAAS,uBAEX,uBAAwB,CACtBttE,KAAM,IACNstE,QAAS,wBAEX,sBAAuB,CACrBttE,KAAM,IACNstE,QAAS,uBAEX,wBAAyB,CACvBttE,KAAM,oBACNstE,QAAS,wBACTvmF,KAAM,CAAE66E,QAAS,MAKvB,MAAO,CACL8L,UAAAA,EAEAprF,KAAM,UAMN+L,UATK,WAUH,OAAOlQ,KAAK0C,QAQdU,KAlBK,WAkBW,IAAXwF,EAAW,uDAAJ,GAIV,OAHA5I,KAAK0C,OAAL,OAAmB8sF,GAAc5mF,GACjC5I,KAAK8C,GAAK9C,KAAK0C,OAAOI,GACtB9C,KAAKyvF,QAAU,GACRzvF,MAGT+R,OAzBK,WA0BH,IAAM29E,EAAU1vF,KAAK0C,OAAO+M,SAE5B,IAAK,IAAI9J,KAAM+pF,EAAS,CACtB,IAAM7pF,EAAQ6pF,EAAQ/pF,GACtB3F,KAAK6G,IAAIlB,EAAIE,EAAMgc,KAAMhc,EAAMspF,QAAStpF,EAAM+C,MAAQ,MAyB1D/B,IAvDK,SAuDDlB,EAAIkc,EAAMstE,GAAoB,IAAXvmF,EAAW,uDAAJ,GACpB9F,EAAO9C,KAAP8C,GACF2N,EAAM3N,EAAGtB,IAAI,YACbiK,EAAS3I,EAAGkR,YACZ2D,EAAS7U,EAAGtB,IAAI,UAChBmuF,EAAS,CAAEhqF,GAAAA,EAAIkc,KAAAA,EAAMstE,QAAAA,GACrBS,EAAK5vF,KAAKyvF,QAAQ9pF,GAiBxB,OAhBAiqF,GAAM5vF,KAAKkD,OAAOyC,GAClB3F,KAAKyvF,QAAQ9pF,GAAMgqF,EACnBJ,EAAU1tE,GAAM,SAAC3c,EAAGywC,GAElB,IAAM9oB,EAAM,CAAEvf,MAAOpI,EAAGywC,EAAAA,GAGxB,GAFAw5C,GAAUj2E,EAAAA,EAAAA,UAASi2E,GAAW1+E,EAAIjP,IAAI2tF,GAAWA,GAC9BrsF,EAAG2wC,cAAgBhoC,EAAO+Q,OAAOwO,kBACnCpiB,EAAKg5B,MAAO,CAC3Bh5B,EAAK66E,SAAW9rE,EAAO2X,gBAAgBjpB,eAAenB,GACpC,WAAlB,OAAOiqF,GAAsB1+E,EAAIpE,WAAW8iF,EAAStiE,GAAOsiE,EAAQ1jF,EAAQ,EAAGohB,GAC/E,IAAMqU,EAAO,CAACv7B,EAAIgwC,EAAE24C,SAAUppF,GAC9BpC,EAAG4B,QAAH,MAAA5B,EAAE,CAAS,eAAT,OAA2Bo+B,IAC7Bp+B,EAAG4B,QAAH,MAAA5B,EAAE,uBAAwB6C,IAAxB,OAAiCu7B,QAGvCp+B,EAAG4B,QAAQ,aAAcirF,GAClBA,GAWTnuF,IAzFK,SAyFDmE,GACF,OAAO3F,KAAKyvF,QAAQ9pF,IAUtBkK,OApGK,WAqGH,OAAO7P,KAAKyvF,SAWdvsF,OAhHK,SAgHEyC,GACL,IAAM7C,EAAK9C,KAAK8C,GACV6sF,EAAS3vF,KAAKwB,IAAImE,GAExB,GAAIgqF,EAIF,cAHO3vF,KAAKyvF,QAAQ9pF,GACpBgqF,EAAO9tE,KAAKpgB,MAAM,MAAMgL,SAAQ,SAAAgzB,GAAC,OAAI8vD,EAAU3iD,OAAOnN,EAAEh5B,WACxD3D,GAAMA,EAAG4B,QAAQ,gBAAiBirF,GAC3BA,GAQXE,UAhIK,WAgIO,WAGV,OAFAjuE,OAAOC,KAAK7hB,KAAKyvF,SAAShjF,SAAQ,SAAAkjF,GAAM,OAAI,EAAKzsF,OAAOysF,MACxDJ,EAAUT,SAAW,GACd9uF,MAGTwS,QAtIK,WAuIHxS,KAAK6vF,YACL7vF,KAAKyvF,QAAU,GACfzvF,KAAK8C,GAAK,O,2FCvOhB,SACE3C,YAAa,OAEbsI,MAAO,GAEPsK,QAAS,GAET+8E,UAAU,EAGV7uF,QAAQ,EAWRs3B,OAAQ,I,kfCnBWjsB,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL7D,MAAO,GACPsK,QAAS,GACTM,WAAY,GACZjE,MAAM,K,kBAIV,WACEpP,KAAK2D,IAAI,QAAQ,K,mBAGnB,WACE3D,KAAK2D,IAAI,QAAQ,O,EAfA2I,C,QAAczK,G,igCCAdkuF,EAAAA,SAAAA,I,yHACnB,YAAwC,IAA7BptF,EAA6B,EAA7BA,IAAKC,EAAwB,EAAxBA,KAAMmQ,EAAkB,EAAlBA,QAAStK,EAAS,EAATA,MAC7B,6BAAsB9F,EAAtB,kBAAmCC,EAAnC,kBAAiDA,EAAjD,4CACgBD,EADhB,2CAEkBA,EAFlB,mBAE+B8F,EAF/B,wCAGkB9F,EAHlB,wFAKgBA,EALhB,yCAMeA,EANf,eAMwBoQ,EANxB,wGAUcpQ,EAVd,gD,oBAaF,WACE,MAAO,CACL0C,MAAO,UACP,2BAA4B,U,wBAIhC,SAAW9C,GACT,IAAMU,EAAQjD,KAAKiD,MACbP,EAASH,EAAEG,QAAU,GACrBC,EAAMD,EAAOvC,aAAe,GAClCH,KAAK0C,OAASA,EACd1C,KAAK2C,IAAMA,EACX3C,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAKgD,SAASC,EAAO,cAAejD,KAAKgwF,YACzChwF,KAAKgD,SAASC,EAAO,eAAgBjD,KAAKiwF,aAC1CjwF,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKiiE,iB,qBAG9C,SAAQ/8D,GACMlF,KAAK0C,OAAOotF,UACjB5qF,EAAExB,SAAW1D,KAAK6D,IAAM7D,KAAK6H,S,0BAQtC,WAEE,OADK7H,KAAKkwF,aAAYlwF,KAAKkwF,WAAalwF,KAAK2E,IAAImD,KAAK,IAAM9H,KAAK2C,IAAM,cAChE3C,KAAKkwF,a,wBAQd,WACE,IAAMvtF,EAAM3C,KAAK2C,IAMjB,OAJK3C,KAAKmwF,WACRnwF,KAAKmwF,SAAWnwF,KAAK2E,IAAImD,KAAT,WAAkBnF,EAAlB,oBAAiCA,EAAjC,OAGX3C,KAAKmwF,W,sBAQd,WAAoB,IAAXvnF,EAAW,uDAAJ,GAEd,OADK5I,KAAKowF,SAAQpwF,KAAKowF,OAASpwF,KAAK2E,IAAImD,KAAK,IAAM9H,KAAK2C,IAAM,UACxDiG,EAAK8/B,EAAI1oC,KAAKowF,OAASpwF,KAAKowF,OAAO5uF,IAAI,K,2BAOhD,WACE,IAAIuR,EAAU/S,KAAKsa,aACbyqB,EAAWhyB,EAAQgyB,WACnBtgC,EAAOzE,KAAKqwF,eACZpmF,EAAOjK,KAAKiD,MAAMzB,IAAI,WAC5BujC,EAAS99B,QAAUxC,EAAKuD,OAAO+8B,GAC/BhyB,EAAQhL,QAAQC,OAAOiC,K,yBAOzB,WACE,IAAMxB,EAAQzI,KAAKswF,SAAS,CAAE5nD,GAAG,IACjCjgC,GAASA,EAAMV,QAAQC,OAAOhI,KAAKiD,MAAMzB,IAAI,Y,wBAO/C,WACExB,KAAK6D,GAAG8S,MAAMC,QAAU5W,KAAKiD,MAAMzB,IAAI,QAAU,GAAK,S,kBAOxD,WACExB,KAAKiD,MAAMgC,U,kBAOb,WACEjF,KAAKiD,MAAMmM,S,wBAGb,SAAWxC,GACT,IAAQjK,EAAiB3C,KAAjB2C,IAAKgC,EAAY3E,KAAZ2E,IAAKd,EAAO7D,KAAP6D,GACZ0sF,EAAW,GAAGnwC,MAAMwkB,KAAK/gE,EAAGwP,YAAYqH,KAAI,SAAAtQ,GAAC,OAAIA,EAAEjG,QACzDQ,EAAI4+D,WAAWgtB,EAASxuE,KAAK,MAC7Bpd,EAAIiI,KAAJ,OACMA,GAAQ,IADd,IAEEiJ,MAAO,UAAGlT,EAAH,qBAAoBiK,GAAQA,EAAKiJ,OAAU,IAAKpP,Y,oBAI3D,WACE,IAAM5C,EAAK7D,KAAK2E,IACV2M,EAAMtR,KAAKiD,MAAMu0B,SAMvB,OALAlmB,EAAI3O,IAAM3C,KAAK2C,IACf2O,EAAI1O,KAAO5C,KAAK4C,KAChBiB,EAAGK,KAAKlE,KAAK+D,SAASuN,IACtBtR,KAAKwwF,aACLxwF,KAAKgwF,aACEhwF,S,EA1IU+vF,C,QAAkB/rF,M,qkBCuCvC,mBACE,IACIf,EAAOwmC,EADP5gC,EAAI,GAGF4nF,EAAe,SAACtyE,EAAQrb,GAC5BA,GAAMA,EAAG4B,QAAH,gBAAoByZ,EAAS,OAAS,WAG9C,MAAO,CAMLha,KAAM,QAEN+L,UARK,WASH,OAAOrH,GAQTzF,KAjBK,WAiBa,WAAbV,EAAa,uDAAJ,GAMNI,GALN+F,EAAI,OACC4G,GACA/M,IAGQI,GACb9C,KAAK8C,GAAKA,EACV,IAAIF,EAAOiG,EAAEhG,aAeb,OAdID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,cAEnC8C,EAAQ,IAAIytF,EAAO7nF,IACb8G,GAAG,eAAe,SAACwC,EAAGw+E,GAAJ,OAAYF,EAAaE,EAAK7tF,MACtDG,EAAM0M,GACJ,UACAI,EAAAA,EAAAA,WAAS,WACP,IAAMjG,EAAO,EAAK8mF,UACV3vF,EAAW,EAAKiP,YAAhBjP,QACR4D,EAAAA,EAAAA,YAAW5D,IAAWA,EAAO6I,GAC7BhH,EAAG4B,QAAQ,QAASoF,OAIjB9J,MAGT4wF,QA3CK,WA2CK,WACFC,EAAO7wF,KAAKswF,WACZlwE,EAAMpgB,KAAKsa,aACjB,EAA6BrX,EAAMoQ,WACnC,MAAO,CACLjE,KAFF,EAAQA,KAGNiE,WAHF,EAAcA,WAIZ5K,OAAOyQ,EAAAA,EAAAA,UAAS23E,IAAQC,EAAAA,EAAAA,IAAWD,GAAQA,EAC3C99E,SAASmG,EAAAA,EAAAA,UAASkH,IAAO0wE,EAAAA,EAAAA,IAAW1wE,GAAOA,EAAI5e,IAAM4e,EAAI5e,IAAI,GAAK4e,EAClEnb,MAAO,kBAAM,EAAKA,WAItB+M,WAxDK,SAwDM7O,GACT,IAAMU,EAAKV,EAAKF,MAAMiN,YAAYrM,IAAMV,EAAKU,GACvCsF,EAAMnJ,KAAKwH,SACjB2B,GAAOA,EAAIuJ,SAAS7O,IAiBtBuL,KA5EK,WA4EW,IAAXxG,EAAW,uDAAJ,GACJgE,EAAOhE,EAAKyK,YAAc,GAMhC,OALAzK,EAAKH,OAASzI,KAAK+wF,SAASnoF,EAAKH,OACjCG,EAAKmK,SAAW/S,KAAKi8B,WAAWrzB,EAAKmK,SACrC9P,EAAMU,IAAI,aAAciJ,GACxB3J,EAAMmM,OACNq6B,GAASA,EAAM+mD,WAAW5jF,GACnB5M,MASTiF,MA5FK,WA8FH,OADAhC,EAAMgC,QACCjF,MAaT6sC,UA3GK,SA2GKnjC,GAER,OADA1J,KAAK8C,GAAGynB,KAAK,cAAe7gB,GACrB1J,MAaTgxF,SA1HK,SA0HItnF,GAEP,OADA1J,KAAK8C,GAAGynB,KAAK,aAAc7gB,GACpB1J,MASTqQ,OArIK,WAsIH,QAASpN,EAAMzB,IAAI,SAerBuvF,SArJK,SAqJItoF,GAEP,OADAxF,EAAMU,IAAI,QAAS8E,GACZzI,MASTswF,SAhKK,WAiKH,OAAOrtF,EAAMzB,IAAI,UAenBy6B,WAhLK,SAgLMlpB,GAGT,OAFA9P,EAAMU,IAAI,UAAW,KACrBV,EAAMU,IAAI,UAAWoP,GACd/S,MASTsa,WA5LK,WA6LH,OAAOrX,EAAMzB,IAAI,YAQnByvF,aArMK,WAsMH,OAAOxnD,EAAMnvB,aAAa9Y,IAAI,IAQhCihB,SA9MK,WA+MH,OAAOxf,GAQTuE,OAvNK,WAwNH,IAAIxH,KAAKkQ,YAAYjP,OAArB,CACA,IAAM+C,EAAO+rF,EAAUx3D,OAAO1vB,EAAE0vB,QAC1B10B,EAAK4lC,GAASA,EAAM5lC,GAM1B,OALA4lC,EAAQ,IAAIzlC,EAAK,CACfH,GAAAA,EACAZ,MAAAA,EACAP,OAAQmG,KAEGrB,SAAS7C,MAGxB6N,QAnOK,WAoOHi3B,GAASA,EAAMvmC,SACf,CAAC2F,EAAG5F,EAAOwmC,GAAOh9B,SAAQ,SAAArC,GAAC,MAAS,MACpCpK,KAAK8C,GAAK,O,kFCvRhB,SACE3C,YAAa,GAIbuS,SAAU,GAGVw+E,SAAU,EAGVC,QAAS,EAGTC,aAAc,EAId5xF,KAAM,GAGN6xF,YAAa,EAGbC,UAAW,EAKXC,aAAc,CAAE/sB,SAAU,SAAUtqD,MAAO,WAI3Cs3E,aAAc,CAAEhtB,SAAU,OAAQtqD,MAAO,WAGzCu3E,eAAgB,EAWhBC,OAAQ,aAaRxoE,SAAU,aAYVqP,OAAQ,I,qhBClEV,IAKIo5D,EALEC,EAAY,kBACZC,EAAY,CAAEj0C,UAAW,IACzBk0C,EAAgB,WAAgB,IAAfn7E,EAAe,uDAAP,GAC7B,OAAwD,KAAhDA,EAAMC,SAAW,IAAInQ,OAAOkO,QAAQ,SAIzBo9E,EAAAA,SAAAA,I,uHACnB,WACE,MAAO,CACL,+BAAgC,YAChC,gCAAiC,YACjC,8BAA+B,mBAC/B,2BAA4B,gBAC5B,6BAA8B,eAC9B,iCAAkC,cAClC,gCAAiC,iBACjC,uBAAwB,aACxB,sBAAuB,gBACvB,uBAAwB,mB,sBAI5B,SAAS9uF,GACP,IAAQN,EAAiC3C,KAAjC2C,IAAKC,EAA4B5C,KAA5B4C,KAAMF,EAAsB1C,KAAtB0C,OAAQsvF,EAAchyF,KAAdgyF,UACnBb,EAAYzuF,EAAZyuF,QACFc,EAAQjyF,KAAKkyF,cAAcjvF,GAC3B2B,EAAYqtF,EAA0B,GAAlBjyF,KAAKmyF,WACzBC,EAAW,GAAH,OAAMpyF,KAAKoyF,SAAX,YAAuBxtF,GAC/BytF,EAAY,GAAH,OAAMryF,KAAKqyF,UAAX,YAAwBzvF,EAAxB,UACT0vF,EAAW,GAAH,OAAMtyF,KAAKsyF,SAAX,wBACRC,EAAW,GAAH,OAAMvyF,KAAKwyF,aAAX,YAA2BR,EAA3B,YAAwCpvF,EAAxC,UACR6vF,EAAQzyF,KAAKyyF,MAAQ,EACrBC,EAAM,GAAH,OAAM,GAAa,GAARD,EAAX,MACHtuF,EAAOlB,EAAMumC,UACbqK,EAAO5wC,EAAM6wC,UACb6+C,EAAU,GAAH,OAAMhwF,EAAN,SAEb,wBAEIwuF,EAAO,qBACUxuF,EADV,+BACoC3C,KAAK6yC,YAAc,GAAK,eAD5D,+BAEH,GAJR,gCAMgBw/C,EANhB,qCAOkBD,EAPlB,oCAOoDM,EAPpD,0DAQoB/vF,EARpB,qCAQkDwB,EARlD,uCASoBmuF,EATpB,iDAUUz+C,EAAO,iBAAH,OAAmB8+C,EAAnB,oBAAqC9+C,EAArC,WAAqD,GAVnE,uCAWuB0+C,EAXvB,wBAW8CpuF,EAX9C,uFAegBnE,KAAK4yF,SAfrB,yBAe6CX,GAAS,GAftD,sCAgBgBjyF,KAAK6yF,QAhBrB,0GAmBgB7yF,KAAK8yF,YAnBrB,e,wBAsBF,WAAmB,WAARvwF,EAAQ,uDAAJ,IACb2U,EAAAA,EAAAA,SAAQlX,KAAM,YACdA,KAAK6sB,IAAMtqB,EACXvC,KAAKyyF,MAAQlwF,EAAEkwF,MACf,IAAM/vF,EAASH,EAAEG,QAAU,GACnBgvF,EAAWhvF,EAAXgvF,OACR1xF,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKP,EAAEG,OAAOI,GACnB9C,KAAK4C,KAAO5C,KAAK8C,GAAGtB,IAAI,UAAUrB,YAClCH,KAAKkU,OAAS3R,EAAE2R,QAAU,GAC1BlU,KAAK2C,IAAM3C,KAAK0C,OAAOvC,YACvBH,KAAK+yF,WAAaxwF,EAAEwwF,WACpB,IAAMpwF,EAAM3C,KAAK2C,IACXC,EAAO5C,KAAK4C,KACZK,EAAQjD,KAAKiD,MACbyR,EAAazR,EAAMzB,IAAI,cACvBF,EAAO2B,EAAMzB,IAAI,SAAW,UAClCyB,EAAMU,IAAI,QAAQ,GAClB3D,KAAKgD,SAAS0R,EAAY,mBAAoB1U,KAAKgzF,eACnD,CACE,CAAC,gBAAiBhzF,KAAKkwD,cACvB,CAAC,cAAelwD,KAAKizF,eACrB,CAAC,mBAAoBjzF,KAAKkzF,iBAC1B,CAAC,uBAAwBlzF,KAAKwW,kBAC9B,CAAC,iBAAkBxW,KAAKwH,QACxB,CAAC,iCAAkCxH,KAAKmzF,aACxC1mF,SAAQ,SAAAC,GAAI,OAAI,EAAK1J,SAASC,EAAOyJ,EAAK,GAAIA,EAAK,OACrD1M,KAAK+C,UAAL,UAAoBJ,EAApB,iBAAgCA,EAAhC,oBAA+CrB,EAA/C,sBAAiEsB,EAAjE,aACA5C,KAAKwyF,aAAL,UAAuB5vF,EAAvB,cACA5C,KAAKqyF,UAAL,UAAoB1vF,EAApB,iBACA3C,KAAKoyF,SAAL,UAAmBzvF,EAAnB,eACA3C,KAAKsyF,SAAL,UAAmB3vF,EAAnB,eACA3C,KAAK4yF,SAAL,UAAmBjwF,EAAnB,eACA3C,KAAK6yF,QAAL,UAAkBlwF,EAAlB,cACA3C,KAAK8yF,YAAL,UAAsBnwF,EAAtB,kBACA3C,KAAKmyF,WAAL,UAAqBxvF,EAArB,iBACA3C,KAAKozF,QAAL,UAAkBpzF,KAAKwyF,aAAvB,UACAxyF,KAAKgyF,UAAL,UAAoBhyF,KAAKwyF,aAAzB,aACAxyF,KAAK2E,IAAImF,KAAK,QAAS7G,GACvBjD,KAAK2E,IAAImF,KAAK,aAAc4K,GAC5BzR,EAAMowF,UAAYrzF,KAClB0xF,EAAOruF,KAAKrD,KAAZ0xF,CAAkB,CAChBlrE,UAAWvjB,EACXuE,OAAQxH,KAAKszF,SACbtwF,SAAUhD,KAAKgD,a,wBAInB,WACEhD,KAAKuzF,eAAeC,UAAYxzF,KAAKiD,MAAMumC,Y,6BAG7C,WAKE,OAJKxpC,KAAKyzF,QACRzzF,KAAKyzF,MAAQzzF,KAAK2E,IAAIogC,SAAT,WAAsB/kC,KAAK2C,IAA3B,eAGR3C,KAAKyzF,Q,8BAGd,WACE,IAAM9wF,EAAM3C,KAAK2C,IACXM,EAAQjD,KAAKiD,MACbywF,EAAS,GAAH,OAAM/wF,EAAN,gBAGN6H,EADSsnF,EAAc7uF,EAAM6c,SAAS+xE,IACpB,WAAa,cACrC7xF,KAAK2E,IAAI6F,GAAQkpF,GACjB1zF,KAAK2zF,kBAAkBnpF,GAJN,kB,8BAanB,SAAiBtF,GACfA,GAAKA,EAAEiH,kBACP,IAAQlJ,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACT8wF,EAAa,iBACbC,EAAc5wF,EAAMzB,IAAIoyF,GACxBj9E,EAAQ1T,EAAM6c,SAAS+xE,GACrBj7E,EAAYD,EAAZC,QACOk7E,EAAcn7E,WAGpBA,EAAMC,QAETi9E,IACFl9E,EAAMC,QAAUi9E,EAChB5wF,EAAM8V,MAAM66E,MAGdh9E,GAAW3T,EAAMU,IAAIiwF,EAAYh9E,GACjCD,EAAMC,QAAU,QAGlB3T,EAAMi/C,SAASvrC,EAAOk7E,GACtB/uF,GAAMA,EAAG4B,QAAQ,uB,wBAMnB,SAAWQ,GACTA,GAAKA,EAAEiH,kBACP,IAAQrJ,EAAgC9C,KAAhC8C,GAAI6B,EAA4B3E,KAA5B2E,IAAKqtF,EAAuBhyF,KAAvBgyF,UAAWoB,EAAYpzF,KAAZozF,QACtB3sB,EAAUzmE,KAAKuzF,eACrB9sB,EAAQmrB,IAAa,EACrBnrB,EAAQ7sC,QACR1xB,SAAS8oC,YAAY,aAAa,EAAO,MACzCluC,GAAMA,EAAGopD,WAAW,GACpBvnD,EAAImD,KAAJ,WAAa9H,KAAKwyF,eAAgBvqF,YAAY+pF,GAAWptF,SAASwuF,K,2BAGpE,SAAc9nF,GACZA,EAAGa,oBACF2nF,EAAAA,EAAAA,UAASxoF,KAAOyoF,EAAAA,EAAAA,YAAWzoF,KAAQtL,KAAKg0F,cAAc1oF,K,2BAMzD,SAAcpG,GACZA,GAAKA,EAAEiH,kBACP,IAAQrJ,EAAgC9C,KAAhC8C,GAAI6B,EAA4B3E,KAA5B2E,IAAKqtF,EAAuBhyF,KAAvBgyF,UAAWoB,EAAYpzF,KAAZozF,QACtB3sB,EAAUzmE,KAAKuzF,eACfpvF,EAAOsiE,EAAQ1wD,YACrB0wD,EAAQrjD,WAAa,EACrBqjD,EAAQmrB,IAAa,EACrB5xF,KAAKi0F,QAAQ9vF,EAAM,CAAEqiB,UAAWxmB,KAAKiD,MAAOixF,SAAU,gBACtDpxF,GAAMA,EAAGopD,WAAW,GACpBvnD,EAAImD,KAAJ,WAAa9H,KAAKwyF,eAAgB5tF,SAASotF,GAAW/pF,YAAYmrF,K,qBAGpE,SAAQjvF,EAAR,GAA4B,IAAZ+vF,EAAY,EAAZA,SACdl0F,KAAKiD,MAAMU,IAAIuwF,EAAU/vF,K,0BAO3B,WAIE,OAHKnE,KAAKm0F,YACRn0F,KAAKm0F,UAAYn0F,KAAK6D,GAAGkD,cAAR,WAA0B/G,KAAKwyF,gBAE3CxyF,KAAKm0F,Y,2BAQd,WACE,IAAIC,EAASp0F,KAAK6sB,IAAIunE,QAAU,GAC5BnxF,EAAQjD,KAAKiD,MACXoxF,EAAU,kBAEZpxF,EAAMzB,IAAI,SACZxB,KAAK2E,IAAIC,SAAS,QAClB5E,KAAKs0F,WAAW1vF,SAASyvF,GACzBD,EAAOnxF,EAAMk4D,KAAOl4D,IAEpBjD,KAAK2E,IAAIsD,YAAY,QACrBjI,KAAKs0F,WAAWrsF,YAAYosF,UACrBD,EAAOnxF,EAAMk4D,Q,2BAUxB,SAAcj2D,GACZ,IAAQjC,EAAUjD,KAAViD,MACRiC,EAAEC,2BAEGlC,EAAMzB,IAAI,cAAcyF,QAE7BhE,EAAMU,IAAI,QAASV,EAAMzB,IAAI,W,0BAM/B,SAAa0D,GACXA,EAAEiH,kBACF,IAAQrJ,EAAsB9C,KAAtB8C,GAAIJ,EAAkB1C,KAAlB0C,OAAQO,EAAUjD,KAAViD,MAEpB,GAAIH,EAAI,CACNA,EAAGgS,YAAY7R,EAAO,CAAEsxF,WAAY,EAAGjnF,MAAOpI,IAC9C,IAAM6P,EAASrS,EAAO6uF,aACtBx8E,GAAU9R,EAAMwnB,MAAMhe,SAAQ,SAAAtJ,GAAI,OAAIA,EAAKwnB,eAAe5V,S,yBAO9D,SAAY7P,GACVA,EAAEiH,kBACF,IAAQrJ,EAAsB9C,KAAtB8C,GAAIJ,EAAkB1C,KAAlB0C,OAAQO,EAAUjD,KAAViD,MACpBH,GAAMJ,EAAO4uF,WAAaxuF,EAAGuvC,WAAWpvC,EAAO,CAAEsxF,WAAY,M,4BAG/D,SAAejpF,GACbA,EAAGa,kBACH,IAAQrJ,EAAe9C,KAAf8C,GAAIJ,EAAW1C,KAAX0C,OACZI,GAAMJ,EAAO4uF,WAAaxuF,EAAGuvC,WAAW,EAAG,CAAEkiD,WAAY,M,uBAO3D,SAAUrvF,GACRA,EAAEiH,kBACF,IAAQrJ,EAAe9C,KAAf8C,GAAIoR,EAAWlU,KAAXkU,OAERhP,EAAE8P,QAAuB,IAAb9P,EAAE8P,QAEdd,IACFA,EAAOgE,QAAU,SAAApO,GAAI,OAAIhH,EAAG4B,QAAH,UAAc27B,EAAAA,GAAd,UAAiCv2B,IAC1DoK,EAAOo4B,UAAY,SAAAxiC,GAAI,OAAIhH,EAAG4B,QAAQ27B,EAAAA,GAAWv2B,IACjDoK,EAAOkB,UAAUlQ,EAAExB,W,oBAQvB,WACE1D,KAAK2E,IAAIC,SAAS5E,KAAK2C,IAAM,UAC7B3C,KAAKiD,MAAMU,IAAI,OAAQ,K,sBAOzB,WACE3D,KAAK2E,IAAIsD,YAAYjI,KAAK2C,IAAM,Y,0BAOlC,SAAauC,GACXqgD,EAAAA,EAAAA,UAAAA,aAAAA,MAA2CvlD,KAAM,CAC/C,CACEmjE,YAAanjE,KAAK0C,OAAO+uF,eACzBzuB,QAAS,O,uBAUf,WACE,OAAQ8uB,EAAc9xF,KAAKiD,MAAM6c,c,2BAQnC,WACE,IAAQ7c,EAAsBjD,KAAtBiD,MAAOkvF,EAAenyF,KAAfmyF,WACTF,EAAQjyF,KAAKkyF,cAAcjvF,GAC3BwF,EAAQzI,KAAK2E,IAAIogC,SAAT,WAAsB/kC,KAAKqyF,YAAattD,SAAxC,WAAqD/kC,KAAKoyF,WAClEhyE,EAAQpgB,KAARogB,IAEDA,IACHA,EAAMpgB,KAAK2E,IAAIogC,SAAS,gBAAgBvjC,IAAI,GAC5CxB,KAAKogB,IAAMA,GAGb3X,EAAMwpF,EAAQ,cAAgB,YAAYE,GACtC/xE,IAAKA,EAAItc,UAAYmuF,GAAS,KACjCA,GAAShvF,EAAMU,IAAI,OAAQ,K,2BAS9B,SAAcV,GACZ,IAAIgvF,EAAQ,EAOZ,OANAhvF,EAAMzB,IAAI,cAAc4G,MAAK,SAAU+J,GACrC,IAAIqiF,EAAcx0F,KAAK6sB,IAAI2nE,YACvB3sF,EAAO7H,KAAK0C,OAAO0uF,aACnBoD,IAAgBA,EAAYriF,EAAGtK,IACnCoqF,MACCjyF,MACIiyF,I,sBAGT,WACE,IAAKjyF,KAAKy0F,QAAUz0F,KAAKy0F,MAAMxtF,OAAQ,CACzBjH,KAAK2C,IACjB3C,KAAKy0F,MAAQz0F,KAAK2E,IAAIogC,SAAT,WAAsB/kC,KAAKqyF,YAAavqF,KAAxC,WAAiD9H,KAAKsyF,WAGrE,OAAOtyF,KAAKy0F,Q,qBAGd,SAAQ5wF,GACNA,GAAKqV,EAAAA,EAAAA,UAASrV,GAAM7D,KAAK8C,GAAG+R,aAAa/M,KAAKjE,GAAI,GAAKA,EACvD,IAAMZ,GAAQwf,EAAAA,EAAAA,UAAS5e,GAClBZ,IACLjD,KAAKyS,gBACLzS,KAAKiD,MAAQA,EACbjD,KAAKqhC,WAAWrhC,KAAK6sB,KACrB7sB,KAAK00F,WAAa10F,KAAKwH,Y,6BAGzB,YACyBxH,KAAf+yF,YACyB/yF,MACtBwH,W,0BAGb,WACE,IAAQwa,EAAUhiB,KAAVgiB,MACRA,GAASA,EAAM9e,W,oBAGjB,WACEc,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC/jB,KAAK20F,iB,oBAGP,WACE,IAAQ1xF,EAAkCjD,KAAlCiD,MAAOP,EAA2B1C,KAA3B0C,OAAQC,EAAmB3C,KAAnB2C,IAAKC,EAAc5C,KAAd4C,KAAMiqB,EAAQ7sB,KAAR6sB,IAClC7sB,KAAK20F,eACL,IAAQH,EAAgB3nE,EAAhB2nE,YACFI,EAASJ,IAAgBA,EAAYvxF,EAAOP,EAAO0uF,cACnDyD,EAAM70F,KAAK6yC,YACXhvC,EAAK7D,KAAK2E,IAAIoD,QACd0qF,EAAQzyF,KAAKyyF,MAAQ,EAC3BzyF,KAAKm0F,UAAY,GAEbrvE,EAAAA,EAAAA,aAAY6sE,KACdA,EAAY34D,EAAAA,MAAAA,GAGdh5B,KAAKgiB,MAAQ,IAAI2vE,EAAU,CACzBI,SAAUllE,EAAIklE,SACdtvF,WAAYQ,EAAMzB,IAAI,cACtBkB,OAAQ1C,KAAK0C,OACbwR,OAAQlU,KAAKkU,OACbkgF,OAAQp0F,KAAK6sB,IAAIunE,OACjBrB,WAAY/yF,KACZyU,OAAQxR,EACRwvF,MAAAA,IAEF,IAAM1tD,EAAW/kC,KAAKgiB,MAAMxa,SAAS7C,IAqBrC,OAnBK3E,KAAK0C,OAAO2uF,aAAyB,IAAVoB,GAG9B5uF,EAAGK,KAAKlE,KAAK+D,SAASd,IACtBY,EAAGiE,KAAH,WAAY9H,KAAK8yF,cAAe9qF,OAAO+8B,IAHvClhC,EAAGmE,OAAO+8B,GAMP9hC,EAAMzB,IAAI,cAAiBxB,KAAK0C,OAAOwuF,UAC1CrtF,EAAGkhC,SAAH,WAAgB/kC,KAAK6yF,UAAW3vF,UAGjC2xF,IAAQ70F,KAAK+C,WAAL,WAAsBJ,EAAtB,SACTiyF,IAAW50F,KAAK+C,WAAL,WAAsBH,EAAtB,WACXiB,EAAG+I,KAAK,QAAS5M,KAAK+C,WACtB/C,KAAKizF,gBACLjzF,KAAKkwD,eACLlwD,KAAKwW,mBACLxW,KAAKszF,WACLtzF,KAAK00F,UAAY,EACV10F,O,sBAGT,WACE,IAAQiD,EAAsBjD,KAAtBiD,MAAOP,EAAe1C,KAAf0C,OAETmqB,EAAM,CAAErG,UAAWvjB,EAAOY,GAFF7D,KAAP6D,IACFnB,EAAbwmB,SAEC7lB,KAAKrD,KAAdkpB,CAAoB2D,GACpB7sB,KAAK8C,GAAG4B,QAAQ,eAAgBmoB,O,EAncfklE,CAAiB/tF,EAAAA,M,qkBCTtC,mBACE,IAAIlB,EACA0qC,EACA9qC,EAAS,GAEb,MAAO,CACLyB,KAAM,eAENf,KAHK,WAGW,IAAXwF,EAAW,uDAAJ,GAIV,OAHAlG,EAAS,EAAH,KAAQ+M,GAAa7G,IACpBzI,YAAcyI,EAAK/F,aAC1BC,EAAKJ,EAAOI,GACL9C,MAGTkQ,UAVK,WAWH,OAAOxN,GAGTqP,OAdK,WAeHjP,GAAMA,EAAG6M,GAAG,qBAAsB3P,KAAK80F,kBACvC90F,KAAK80F,oBAGP9iF,WAnBK,WAoBH,IAAMyJ,EAAO/Y,EAAOgQ,SACdlT,EAAOkD,EAAOlD,MACpBA,GAAQQ,KAAK+0F,QAAQv1F,GAEjBic,MACSC,EAAAA,EAAAA,WAAUD,GAAQA,EAAOvT,SAASnB,cAAc0U,IACxDhU,YAAYzH,KAAKwH,WASxButF,QAnCK,SAmCGlxF,GAEN,OADA2pC,GAAUA,EAAOunD,QAAQlxF,GAClB7D,MAOTg1F,QA5CK,WA6CH,OAAOxnD,GAAUA,EAAOvqC,OAO1B4M,OApDK,WAqDH,OAAO29B,GAOTsnD,iBA5DK,SA4DY1gF,GAAqB,IAAXxL,EAAW,uDAAJ,GAChC,IAAIA,EAAK2rF,WAAT,CACA,IAAMH,EAAStxF,EAAGtB,IAAI,UAChByB,EAAQH,EAAGsJ,cACX2I,EAASrS,EAAO8uF,aAClB/8E,EAASxR,GAASA,EAAMR,WAAaQ,EAAMR,WAAWgS,OAAS,KACnE,IAAK,IAAI0mD,KAAOi5B,EAAQA,EAAOj5B,GAAKx3D,IAAI,OAAQ,GAEhD,KAAO8Q,GACLA,EAAO9Q,IAAI,OAAQ,GACnBywF,EAAO3/E,EAAO0mD,KAAO1mD,EACrBA,EAASA,EAAOhS,WAAagS,EAAOhS,WAAWgS,OAAS,KAG1D,GAAIxR,GAAS8R,EAAQ,CACnB,IAAMlR,EAAKZ,EAAMowF,WAAapwF,EAAMowF,UAAUxvF,GAC9CA,GAAMA,EAAG8mB,eAAe5V,MAI5BvN,OAhFK,WAiFH,IAAMuqF,EAAW/tF,EAAAA,OAAYtB,EAAO61B,QASpC,OARAiV,GAAUA,EAAOtqC,UACjBsqC,EAAS,IAAIukD,EAAS,CACpBA,SAAAA,EACAU,MAAO,EACP/vF,OAAAA,EACA0xF,OAAQ1xF,EAAO0xF,QAAU,GACzBnxF,MAAOH,EAAGtB,IAAI,iBAAiBqT,gBAEnBrN,SAAS3D,IAGzB2O,QA7FK,WA8FHg7B,GAAUA,EAAOtqC,SACjB,CAACJ,EAAI0qC,EAAQ9qC,GAAQ+J,SAAQ,SAAArC,GAAC,MAAS,U,mjBCrGxBunF,EAAAA,SAAAA,I,2HACnB,WAAmB,IAARpvF,EAAQ,uDAAJ,GACbvC,KAAKgiB,MAAQ,GACbhiB,KAAK6sB,IAAMtqB,EACX,IAAMG,EAASH,EAAEG,QAAU,GAC3B1C,KAAKyyF,MAAQlwF,EAAEkwF,MACfzyF,KAAK0C,OAASA,EACd1C,KAAKwpF,QAAUjnF,EAAEinF,QACjBxpF,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAKyU,OAASlS,EAAEkS,OAChBzU,KAAK+yF,WAAaxwF,EAAEwwF,WACpB,IAAMpwF,EAAM3C,KAAK2C,IACXC,EAAO5C,KAAK4C,KACZ6R,EAASzU,KAAKyU,OACdhQ,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,uBAAwBzE,KAAKwH,QACjDxH,KAAKgD,SAASyB,EAAM,SAAUzE,KAAK++D,gBACnC/+D,KAAK+C,UAAL,UAAoBJ,EAApB,UACA,IAAMG,EAAKJ,EAAOI,GAElB,GAAIJ,EAAOwuF,WAAalxF,KAAK6sB,IAAI3Y,OAAQ,CACvC,IAAM0D,EAAQ9U,EAAGtB,IAAI,SACrBxB,KAAK6sB,IAAI3Y,OAAS,IAAI0D,EAAMC,OAAO,CACjC5H,UAAWvN,EAAOuyF,eAAiBj1F,KAAK6D,GACxCmU,aAAc,IAAF,OAAMhY,KAAK+C,WACvBkV,QAAS,IAAF,OAAMtV,EAAN,SACPuyF,mBAAoB,EACpB98E,UALiC,SAKvB+8E,EAASjhF,EAAQpK,GACzB,IAAMkrD,EAAW9gD,EAAOkhF,iBACxBtyF,EAAGgS,YAAYkgD,EAAU,CAAEqgC,YAAa,IACxCvyF,EAAG4B,QAAH,UAAc27B,EAAAA,GAAd,QAA+Bv2B,IAEjCwrF,iBAAkB,EAClB58E,OAAQ,EACR9V,KAAAA,EACAD,IAAAA,IAIJ3C,KAAKkU,OAASlU,KAAK6sB,IAAI3Y,QAAU,GAGjClU,KAAK2E,IAAImF,KAAK,aAAcrF,GAC5BgQ,GAAUzU,KAAK2E,IAAImF,KAAK,QAAS2K,K,4BAGnC,SAAeoiB,GACb,IAAM1zB,EAAO0zB,EAAQw8D,UAChBlwF,IACLA,EAAKD,SACL2zB,EAAQw8D,UAAY,K,mBAStB,SAAMpwF,GACJ,IAAImH,EAAIpK,KAAKyC,WAAWkS,QAAQ1R,GAChCjD,KAAKkjD,gBAAgBjgD,EAAO,KAAMmH,K,6BAWpC,SAAgBnH,EAAOmE,EAAYqoB,GACjC,IAAQgjE,EAA2BzyF,KAA3ByyF,MAAOM,EAAoB/yF,KAApB+yF,WACPhB,EAD2B/xF,KAAR6sB,IACnBklE,SACF1qF,EAAWD,GAAc,KACzBsF,EAAO,IAAIqlF,EAAS,CACxBA,SAAAA,EACAU,MAAAA,EACAxvF,MAAAA,EACA8vF,WAAAA,EACArwF,OAAQ1C,KAAK0C,OACbwR,OAAQlU,KAAKkU,OACbsgF,YAAax0F,KAAKw0F,YAClBJ,OAAQp0F,KAAK6sB,IAAIunE,SAEb9sF,EAAWoF,EAAKlF,SAAS3D,GAE/B,GAAIwD,EACFA,EAASI,YAAYH,QAErB,QAAoB,IAATmoB,EAAsB,CAC/B,IAAIjlB,EAAS,SAGTxK,KAAK2E,IAAIogC,WAAW99B,QAAUwoB,IAChCA,IACAjlB,EAAS,SAGPilB,EAAQ,EACVzvB,KAAK2E,IAAIqD,OAAOV,GACXtH,KAAK2E,IAAIogC,WAAW+yB,GAAGroC,GAAOjlB,GAAQlD,QACxCtH,KAAK2E,IAAIqD,OAAOV,GAGzB,OADAtH,KAAKgiB,MAAMpU,KAAKlB,GACTpF,I,oBAGT,WACEtD,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC/jB,KAAKgiB,MAAMtH,KAAI,SAAAtQ,GAAC,OAAIA,EAAElH,c,yBASxB,SAAYD,EAAO4E,GACjB,IAAIvG,EAAO2B,EAAMzB,IAAI,QACjB0gB,EAAMjf,EAAMzB,IAAI,WACpB,SAAc,YAARF,GAA6B,MAAP4gB,IAAgBra,IAAU5E,EAAMzB,IAAI,gB,oBAMlE,WAAS,WACDwX,EAAO9Q,SAASC,yBAChBtE,EAAK7D,KAAK6D,GAKhB,OAJAA,EAAGC,UAAY,GACf9D,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,EAAO+V,MAC1DnV,EAAG4D,YAAYuR,GACfnV,EAAGd,UAAY/C,KAAK+C,UACb/C,S,EA1IU2xF,CAAkB3tF,EAAAA,O,qyBCClBuxF,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACL94E,OAAQ,GACRoY,OAAO,K,wBAIX,SAAWjZ,GAAkB,WAAXhT,EAAW,uDAAJ,GACvB,EAAwBA,EAAhBlG,OAAAA,OAAR,MAAiB,GAAjB,EACQI,EAAOJ,EAAPI,GACF0yF,EAAW,GACjBx1F,KAAK8C,GAAKA,EACL8Y,EAAMa,SACT+4E,EAAShvE,UAAY5K,EAAM4K,UAC3BgvE,EAASr5E,OAASP,EAAMO,OACxB,CAAC,YAAa,UAAUzB,KAAI,SAAAtQ,GAAC,OAAI,EAAK2O,MAAM3O,OAE9C,IAAMkkB,EAAO1S,EAAMa,QAAU,CAAC+4E,GACxB/4E,EAAS,IAAIK,EAAAA,EAAOwR,EAAM5rB,GAChC+Z,EAAOa,KAAOtd,KACdA,KAAK2D,IAAI,SAAU8Y,GACnB,IAAMokC,EAAK/9C,GAAMA,EAAGtB,IAAI,eACxBq/C,GAAMA,EAAGh6C,IAAI4V,K,sBAGf,WACEzc,KAAKwB,IAAI,UAAUiQ,U,uBAGrB,WACE,OAAOzR,KAAKwB,IAAI,Y,mBAOlB,WACE,OAAOxB,KAAK2F,K,qBAOd,WACE,OAAO3F,KAAKwB,IAAI,U,qBASlB,SAAQ2C,GACN,OAAOnE,KAAKwB,IAAI,CAAE2C,KAAAA,M,0BASpB,WACE,OAAOnE,KAAKmb,YAAY7K,QAAU,K,0BASpC,WACE,OAAOtQ,KAAKmb,YAAYrU,GAAG,K,8BAU7B,WACE,IAAMsU,EAAQpb,KAAKqd,eACnB,OAAOjC,GAASA,EAAM0C,iB,oBAGxB,WAAkB,IAAXlV,EAAW,uDAAJ,GACN0I,EAAMzP,EAAAA,EAAAA,UAAAA,OAAAA,KAA4B7B,KAAM4I,GACxC6G,GAAWxN,EAAAA,EAAAA,QAAOjC,KAAM,YAW9B,OARAyM,EAAAA,EAAAA,SAAQ6E,GAAK,SAACzL,EAAOywB,GACE,IAArBA,EAAI3hB,QAAQ,aAAqBrD,EAAIglB,OAGvC7pB,EAAAA,EAAAA,SAAQgD,GAAU,SAAC5J,EAAOywB,GACpBhlB,EAAIglB,KAASzwB,UAAcyL,EAAIglB,MAG9BhlB,M,EAzGUikF,CAAa1zF,EAAAA,G,igCCDbymC,EAAAA,SAAAA,I,2HACnB,SAAWh4B,GAAqB,IAAb5N,EAAa,uDAAJ,GAC1B1C,KAAK0C,OAASA,EACd1C,KAAK2P,GAAG,QAAS3P,KAAKy2B,SACtBz2B,KAAK2P,GAAG,SAAU3P,KAAK02B,Y,qBAGzB,SAAQvkB,GAAc,WAAXvJ,EAAW,uDAAJ,GACV2U,EAAO3U,EAAK+tB,gBAAkB,GACpCpZ,EAAK7C,KAAI,SAAAkc,GAAC,OAAI,EAAKF,SAASE,Q,sBAG9B,SAASC,GACPA,GAAWA,EAAQH,a,iBAGrB,SAAIvkB,GAAW,IAAR5P,EAAQ,uDAAJ,GACDG,EAAW1C,KAAX0C,OACR,OAAO8C,EAAAA,WAAAA,UAAAA,IAAAA,KAA8BxF,KAAMmS,EAApC,OAA4C5P,GAA5C,IAA+CG,OAAAA,S,EAlBrC4lC,CAAc9iC,EAAAA,Y,qkBAsBnC8iC,EAAMxmC,UAAUmB,MAAQsyF,EC2BjB,IAAMxnF,EAAQ,OACRC,EAAQ,GAAH,OAAMD,EAAN,KACLkP,EAAe,GAAH,OAAMjP,EAAN,UACZynF,EAAqB,GAAH,OAAMx4E,EAAN,WAClBy4E,EAAe,GAAH,OAAM1nF,EAAN,UACZ2nF,EAAY,GAAH,OAAM3nF,EAAN,OACT4nF,EAAkB,GAAH,OAAMD,EAAN,WACfE,EAAe,GAAH,OAAM7nF,EAAN,UACZ8nF,EAAqB,GAAH,OAAMD,EAAN,WACzB/wC,EAAS,kBACTixC,EAAW,OAEjB,mBACE,cACK/mF,EAAAA,GADL,IAGE7K,KAAM,cAEN8K,WAAY,QAEZsmF,KAAAA,EAEAjtD,MAAAA,EAEAljC,OAAQ,CACNyI,IAAKE,EACLzJ,OAAQ2Y,EACR+4E,aAAcP,EACdvmF,OAAQwmF,EACR7uF,IAAK8uF,EACLM,UAAWL,EACX1yF,OAAQ2yF,EACR1mF,aAAc2mF,GAQhB1yF,KA3BF,WA2BkB,WAAXwF,EAAW,uDAAJ,IACVsO,EAAAA,EAAAA,SAAQlX,KAAM,iBACd,IAAQ8C,EAAO8F,EAAP9F,GACFozF,EAAM,KAAKttF,GACjB5I,KAAK0C,OAASwzF,EACdl2F,KAAK8C,GAAKA,EACV,IAAMqzF,EAAQ,IAAI7tD,EAAM,GAAI4tD,GAC5Bl2F,KAAKm2F,MAAQA,EACbn2F,KAAK6N,IAAMsoF,EACX,IAAMlzF,EAAQ,IAAIpB,EAAAA,EAAM,CAAEgzB,OAAO,IAWjC,OAVA70B,KAAKiD,MAAQA,EACbkzF,EAAMxmF,GAAG,OAAO,SAACinB,EAAG/tB,EAAGtG,GAAP,OAAaO,EAAG4B,QAAQixF,EAAW/+D,EAAGr0B,MACtD4zF,EAAMxmF,GAAG,UAAU,SAACinB,EAAG/tB,EAAGtG,GAAP,OAAaO,EAAG4B,QAAQmxF,EAAcj/D,EAAGr0B,MAC5D4zF,EAAMxmF,GAAG,UAAU,SAACinB,EAAG/tB,GACrB/F,EAAG4B,QAAQgxF,EAAc9+D,EAAGA,EAAE6lB,oBAAqB5zC,MAErDstF,EAAMxmF,GAAG,SAAS,SAAAlL,GAAI,OAAIA,EAAKqC,GAAG,IAAM,EAAKxC,OAAOG,EAAKqC,GAAG,OAC5DqvF,EAAMxmF,GAAG,MAAO3P,KAAKm+C,WAAYn+C,MACjCiD,EAAM0M,GAAGm1C,EAAQ9kD,KAAKo2F,eAEfp2F,MAGTm+C,WAlDF,SAkDa7wC,EAAOgQ,EAAM7Y,EAAMmE,GAC5B,IAAMpG,EAAUoG,GAAQnE,EACxBzE,KAAK8C,GAAG4B,QAAQqJ,EAAO,CAAET,MAAAA,EAAOgQ,KAAAA,EAAM9a,QAAAA,KAGxCuP,OAvDF,WAwDI,IAAQokF,EAAUn2F,KAAVm2F,MACFtpE,EAAM,CAAErT,QAAQ,GACtB28E,EAAMtvF,IAAI7G,KAAK0C,OAAOyzF,OAAS,GAAItpE,GACnC,IAAM1P,EAAYg5E,EAAMlvF,OAA6CjH,KAAKod,UAAzCpd,KAAK6G,IAAI,CAAEvF,KAAMy0F,GAAYlpE,GAC9D7sB,KAAKsE,OAAO6Y,EAAU0P,IAGxBupE,cA/DF,SA+DgBjkF,EAAGmL,EAAM1U,GACrB,IAAQ9F,EAAO9C,KAAP8C,GACFwqC,EAAKxqC,EAAGtB,IAAI,gBACZ60F,EAAW/4E,EAAKg5E,mBACtBhpD,GAAM+oD,GAAY/oD,EAAGynD,QAAQsB,GAC7BvzF,EAAG4B,QAAQuY,EAAcK,EAAMnL,EAAEuP,SAAS,aAC1C1hB,KAAKm+C,WAAW2G,EAAQxnC,EAAM1U,IAGhCg4C,SAxEF,WAyEI,IAAQ99C,EAAc9C,KAAd8C,GAAIG,EAAUjD,KAAViD,MACN49C,EAAK/9C,EAAGtB,IAAI,eAClBq/C,GAAMA,EAAGh6C,IAAI5D,GACb49C,GAAMA,EAAGh6C,IAAI7G,KAAKm2F,QAepBtvF,IA3FF,SA2FM+U,GAAkB,WAAXhT,EAAW,uDAAJ,GACR9F,EAAO9C,KAAP8C,GACR8Y,EAAMjW,GAAKiW,EAAMjW,IAAM3F,KAAKi9C,YAC5B,IAAMp2C,EAAM,WACV,IAAMyW,EAAO,EAAK64E,MAAMtvF,IAAI+U,EAAOhT,GAEnC,OADAA,EAAKtE,QAAU,EAAKA,OAAOgZ,GACpBA,GAGT,OADC1U,EAAK4Q,QAAU1W,EAAG4B,QAAQkxF,EAAiBh6E,EAAO/U,EAAK+B,IAChDA,EAAKk5B,OAASj7B,KAaxB3D,OAjHF,SAiHSoa,GAAiB,WAAX1U,EAAW,uDAAJ,GACV9F,EAAO9C,KAAP8C,GACFyzF,GAAKr9E,EAAAA,EAAAA,UAASoE,GAAQtd,KAAKwB,IAAI8b,GAAQA,EACvCw/B,EAAK,WAET,OADAy5C,GAAM,EAAKJ,MAAMjzF,OAAOqzF,EAAI3tF,GACrB2tF,GAGT,OADC3tF,EAAK4Q,QAAU1W,EAAG4B,QAAQoxF,EAAoBS,EAAIz5C,EAAIl0C,IAC/CA,EAAKk5B,OAASgb,KAUxBt7C,IAnIF,SAmIMmE,GACF,OAAO3F,KAAKm2F,MAAMngE,QAAO,SAAAY,GAAC,OAAIA,EAAEp1B,IAAI,QAAUmE,KAAI,IASpDyX,QA7IF,WA8II,IAAQ+4E,EAAUn2F,KAAVm2F,MACR,OAAOA,EAAMngE,QAAO,SAAAY,GAAC,OAAIA,EAAEp1B,IAAI,UAAYu0F,KAAU,IAAMI,EAAMrvF,GAAG,IAStE+I,OAxJF,WAyJI,cAAW7P,KAAKm2F,MAAM7lF,SAWxBi4B,eApKF,WAqKI,IAAM4tD,EAAQn2F,KAAK6P,SACnB,OAAOwvE,EAAAA,EAAAA,SAAO72C,EAAAA,EAAAA,SAAQ2tD,EAAMz7E,KAAI,SAAA4C,GAAI,OAAIA,EAAKk5E,eAAe97E,KAAI,SAAAU,GAAK,OAAIA,EAAM0C,wBAGjFq+B,UAzKF,WA0KI,OAAOn8C,KAAK6P,SAASusC,QAAO,SAACC,EAAKjyC,GAEhC,OADAiyC,EAAIjyC,EAAE5I,IAAI,OAAS4I,EACZiyC,IACN,KAaL/3C,OA1LF,SA0LSgZ,GAAiB,IAAX1U,EAAW,uDAAJ,GACZ2tF,GAAKr9E,EAAAA,EAAAA,UAASoE,GAAQtd,KAAKwB,IAAI8b,GAAQA,EAK7C,OAJIi5E,IACFv2F,KAAK8C,GAAG4B,QAAQ+wF,EAAoBc,EAAI3tF,GACxC5I,KAAKiD,MAAMU,IAAI,WAAY4yF,EAAI3tF,IAE1B5I,MASToM,YAzMF,WA0MI,OAAOpM,KAAKiD,MAAMzB,IAAI,aAGxBgR,QA7MF,WA6MY,WACRxS,KAAKm2F,MAAM1gF,MAAMhE,QACjBzR,KAAKiD,MAAMwP,gBACXzS,KAAKiD,MAAMi/B,MAAM,CAAE1oB,QAAQ,IAC3B,CAAC,WAAY,SAAU,KAAM,QAAS,SAASkB,KAAI,SAAAtQ,GAAC,OAAK,EAAKA,GAAK,MAGrE2G,MApNF,WAqNI,OAAO/Q,KAAKgR,kBAGdC,KAxNF,SAwNOnH,GACH,OAAO9J,KAAKkR,gBAAgBpH,EAAM,CAAE+D,IAAK7N,KAAKm2F,MAAO1kF,OAAO,KAG9DwrC,UA5NF,WA6NI,IAGIt3C,EAFEuiC,EADQloC,KAAK6P,SACD5I,OAAS,GACrBwvF,EAAWz2F,KAAKm8C,YAGtB,GACEx2C,GAAKy3C,EAAAA,EAAAA,UAASlV,SACPuuD,EAAS9wF,IAElB,OAAOA,O,0DCvSb,IAAM+wF,EAAM,gBACNC,EAAO,kBACPC,EAAM,UACNC,EAAM,UACNC,EAAM,cACNC,EAAM,cACNC,EAAM,aACNC,EAAM,UAEZ,SACE92F,YAAa,MAGbsP,SAAU,CACR,CACE9J,GAAI,WACJ2jF,QAAS,CAAC,KAEZ,CACE3jF,GAAI,UACJ2jF,QAAS,CACP,CACE/pD,QAAQ,EACR55B,GAAI+wF,EACJ3zF,UAAW,iBACXu+B,QAASo1D,EACTl9B,QAASk9B,EACTrjF,WAAY,CAAE5K,MAAO,oBAEvB,CACE9C,GAAIsxF,EACJl0F,UAAW,YACXu+B,QAAS21D,EACTz9B,QAASy9B,EACT5jF,WAAY,CAAE5K,MAAO,YAEvB,CACE9C,GAAIqxF,EACJj0F,UAAW,mBACXu+B,QAAS01D,EACTx9B,QAASw9B,EACT3jF,WAAY,CAAE5K,MAAO,eAEvB,CACE9C,GAAIgxF,EACJ5zF,UAAW,aACXu+B,QAASq1D,EACTtjF,WAAY,CAAE5K,MAAO,gBAI3B,CACE9C,GAAI,QACJ2jF,QAAS,CACP,CACE3jF,GAAIixF,EACJ7zF,UAAW,oBACXu+B,QAASs1D,EACTr3D,QAAQ,EACR23D,UAAW,EACX7jF,WAAY,CAAE5K,MAAO,uBAEvB,CACE9C,GAAIkxF,EACJ9zF,UAAW,YACXu+B,QAASu1D,EACTK,UAAW,EACX7jF,WAAY,CAAE5K,MAAO,aAEvB,CACE9C,GAAImxF,EACJ/zF,UAAW,aACXu+B,QAASw1D,EACTI,UAAW,EACX7jF,WAAY,CAAE5K,MAAO,uBAEvB,CACE9C,GAAIoxF,EACJh0F,UAAW,iBACXu+B,QAASy1D,EACTG,UAAW,EACX7jF,WAAY,CAAE5K,MAAO,mBAO7B3F,GAAI,KAGJq0F,cAAe,K,sgBCxFIC,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLzxF,GAAI,GACJoN,QAAS,GACTmpE,SAAS,EACToN,QAAS,GACTj2E,WAAY,M,wBAIhB,SAAW7Q,GACTxC,KAAKq3F,IAAMr3F,KAAKwB,IAAI,YAAc,GAClCxB,KAAKspF,QAAU,IAAIgO,EAAAA,EAAQt3F,KAAKq3F,KAChCr3F,KAAK2D,IAAI,UAAW3D,KAAKspF,a,EAdR8N,CAAcv1F,EAAAA,G,scCAdsrC,EAAAA,SAAAA,I,mGAAAA,CAAe3nC,EAAAA,YAEpC2nC,EAAOrrC,UAAUmB,MAAQm0F,E,yhCCFJG,EAAAA,SAAAA,I,wHACnB,WACE,OAAOv3F,KAAKiD,MAAMzB,IAAI,a,oBAGxB,WACE,MAAO,CACL6D,MAAO,a,wBAIX,SAAW9C,GACT,IAAQU,EAAUjD,KAAViD,MACF2S,EAAM3S,EAAMzB,IAAI,aACtB,EAA4ByB,EAAMoQ,WAA1BiuB,EAAR,EAAQA,QAASk2D,EAAjB,EAAiBA,OACX90F,EAASH,EAAEG,QAAU,GACnBI,EAAOJ,EAAPI,GACR9C,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV,IAAMH,EAAM3C,KAAK0C,OAAOvC,aAAe,GACjCyC,EAAO5C,KAAK0C,OAAOG,cAAgB,GAgBzC,GAfA7C,KAAK2C,IAAMA,EACX3C,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAK2F,GAAKhD,EAAMM,EAAMzB,IAAI,MAC1BxB,KAAKy3F,UAAL,UAAoB90F,EAApB,kBAAiCC,EAAjC,cACA5C,KAAK03F,WAAL,UAAqB90F,EAArB,YACA5C,KAAK23F,WAAL,UAAqBh1F,EAArB,WACA3C,KAAK+C,UAAYJ,EAAM,OAASiT,EAAM,IAAMA,EAAM,IAClD5V,KAAKgD,SAASC,EAAO,SAAUjD,KAAKwH,QACpCxH,KAAKgD,SAASC,EAAO,6BAA8BjD,KAAK43F,cACxD53F,KAAKgD,SAASC,EAAO,cAAejD,KAAK63F,aACzC73F,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAK83F,eAC5C93F,KAAKgD,SAASC,EAAO,oBAAqBjD,KAAKmwD,kBAC/CnwD,KAAKgD,SAASC,EAAO,mBAAoBjD,KAAK+3F,iBAC9C/3F,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKg4F,eAExCl1F,IAAMoW,EAAAA,EAAAA,UAASooB,IAAYk2D,EAAQ,CACrC,IAAMS,EAAS,CAAEC,WAAY,GAC7Bl4F,KAAKgD,SAASF,EAAd,cAAyBw+B,IAAW,kBAAMr+B,EAAMU,IAAI,UAAU,EAAMs0F,MACpEj4F,KAAKgD,SAASF,EAAd,eAA0Bw+B,IAAW,kBAAMr+B,EAAMU,IAAI,UAAU,EAAOs0F,MAGpEn1F,GAAMA,EAAGtB,MAAKxB,KAAKi6B,SAAWn3B,EAAGtB,IAAI,e,6BAQ3C,WACE,IAAQyB,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACTiT,EAAM3S,EAAMzB,IAAI,aAChBq6D,EAAU54D,EAAMzB,IAAI,cAAcqU,MAClCsjD,EAAW,GAAH,OAAM0C,GAAoB,GAA1B,YAAgCl5D,EAAhC,eAA0CiT,GAAY,IACpE5V,KAAK2E,IAAIiI,KAAK,QAASusD,EAAS1yD,U,8BAQlC,WACE,IAAQ3D,EAAmB9C,KAAnB8C,GAAIG,EAAejD,KAAfiD,MAAO0B,EAAQ3E,KAAR2E,IACbiI,EAAO3J,EAAMzB,IAAI,eAAiB,GAClCiH,EAAQ3F,GAAMA,EAAGkD,GAAKlD,EAAGkD,EAAH,gCAA8B/C,EAAM0C,KAChEhB,EAAIiI,KAAKA,GACTnE,GAAS9D,EAAIiI,KAAK,CAAEnE,MAAAA,IAEpBzI,KAAK+3F,oB,2BAQP,WACO/3F,KAAKm4F,WAENn4F,KAAKiD,MAAMzB,IAAI,WAAYxB,KAAKm4F,SAASvzF,SAAS5E,KAAK23F,YACtD33F,KAAKm4F,SAASlwF,YAAYjI,KAAK23F,e,0BAQtC,SAAaxlF,EAAG8lB,GAAc,IAAXrvB,EAAW,uDAAJ,GAChB3F,EAAoCjD,KAApCiD,MAAOg3B,EAA6Bj6B,KAA7Bi6B,SAAUt1B,EAAmB3E,KAAnB2E,IAAK8yF,EAAcz3F,KAAdy3F,UACtBW,EAA+BxvF,EAA/BwvF,eAAgBF,EAAetvF,EAAfsvF,WAClB1+B,EAAUv2D,EAAMzB,IAAI,WACpBgB,EAAUS,EAAMzB,IAAI,WACpB62F,EAAcp1F,EAAMzB,IAAI,WAC1B8/B,EAAU,GAET+2D,IAEDp+D,IAAY/gB,EAAAA,EAAAA,UAASm/E,GACvB/2D,EAAUrH,EAASz4B,IAAI62F,IAAgB,IAC9BxzF,EAAAA,EAAAA,YAAWwzF,GACpB/2D,EAAUrH,EAAS+H,OAAO,CAAEtxB,IAAK2nF,IACR,OAAhBA,IAAwBl/E,EAAAA,EAAAA,UAASk/E,KAC1C/2D,EAAUrH,EAAS+H,OAAOq2D,IAGxBp1F,EAAMzB,IAAI,YACX42F,GAAkBn1F,EAAMR,WAAW61F,cAAc9+B,EAASv2D,GAC3DA,EAAMU,IAAI,UAAU,EAAM,CAAE6V,QAAQ,IAAQ9U,QAAQ,gBACnDwzF,GAAcj+D,EAAS5tB,WAAWi1B,EAApB,OAAkC9+B,GAAlC,IAA2Cm9B,OAAQ18B,KAGlEq+B,EAAQF,QAAUn+B,EAAMU,IAAI,UAAU,KAEtCgB,EAAIsD,YAAYwvF,IACfS,GAAcj+D,EAASwH,YAAYH,EAArB,OAAmC9+B,GAAnC,IAA4Cm9B,OAAQ18B,EAAO2+B,MAAO,S,2BAIrF,WACE,IAAQ81D,EAAsB13F,KAAtB03F,WACFtkF,EADwBpT,KAAViD,MACEzB,IAAI,WAC1BxB,KAAK2E,IAAIyO,EAAU,WAAa,eAAeskF,K,yBAQjD,WACE,IAAQz0F,EAA0BjD,KAA1BiD,MAAO0B,EAAmB3E,KAAnB2E,IAAK8yF,EAAcz3F,KAAdy3F,UACpBx0F,EAAMzB,IAAI,UAAYmD,EAAIC,SAAS6yF,GAAa9yF,EAAIsD,YAAYwvF,K,qBASlE,SAAQvyF,GACN,IAAQjC,EAAUjD,KAAViD,MAEJA,EAAMzB,IAAI,YAAcyB,EAAMzB,IAAI,aAAeyB,EAAMzB,IAAI,YAE/DxB,KAAKu4F,iB,0BAGP,WACE,IAAQt1F,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACf,EAA8BG,EAAMoQ,WAA5BksB,EAAR,EAAQA,OAAQ23D,EAAhB,EAAgBA,UAEZ33D,IAAW23D,IAEfj0F,EAAMU,IAAI,UAAW47B,GAGjBA,EACEt8B,EAAMzB,IAAI,sBAAsBsB,EAAG+V,aAEnC5V,EAAMzB,IAAI,uBAAuBsB,EAAG8V,iB,oBAI5C,WACE,IAAQ3V,EAAUjD,KAAViD,MACF6P,EAAQ7P,EAAMzB,IAAI,SAChBmD,EAAQ3E,KAAR2E,IAOR,OANC1B,EAAMzB,IAAI,OAASmD,EAAIoD,QACxB/H,KAAKmwD,mBACLr9C,GAASnO,EAAIqD,OAAO8K,GACpB9S,KAAK63F,cACL73F,KAAKg4F,gBAEEh4F,S,EAjLUu3F,CAAmBvzF,EAAAA,M,4bCCnBw0F,EAAAA,SAAAA,I,2HACnB,SAAWj2F,GACTvC,KAAK6sB,IAAMtqB,GAAK,GAChBvC,KAAK0C,OAAS1C,KAAK6sB,IAAInqB,QAAU,GACjC1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtCH,KAAKy4F,QAAUz4F,KAAK6sB,IAAI4rE,SAAW,KACnCz4F,KAAKgD,SAAShD,KAAKyC,WAAY,MAAOzC,KAAKwX,OAC3CxX,KAAKgD,SAAShD,KAAKyC,WAAY,eAAgBzC,KAAKwH,QACpDxH,KAAK+C,UAAY/C,KAAK2C,IAAM,Y,mBAS9B,SAAMM,GACJjD,KAAKkjD,gBAAgBjgD,K,6BAUvB,SAAgBA,EAAOmE,GACrB,IAAMC,EAAWD,GAAc,KASzBE,EANO,IAFMiwF,EAES,CAC1B1zF,GAFSZ,EAAMzB,IAAI,MAGnByB,MAAAA,EACAP,OAAQ1C,KAAK0C,OACb+1F,QAASz4F,KAAKy4F,UAEMjxF,SAAS3D,GAQ/B,OANIwD,EACFA,EAASI,YAAYH,GAErBtH,KAAK2E,IAAIqD,OAAOV,GAGXA,I,oBAGT,WACE,IAAID,EAAWa,SAASC,yBASxB,OARAnI,KAAK2E,IAAIoD,QAET/H,KAAKyC,WAAW2F,MAAK,SAAUnF,GAC7BjD,KAAKkjD,gBAAgBjgD,EAAOoE,KAC3BrH,MAEHA,KAAK2E,IAAIqD,OAAOX,GAChBrH,KAAK2E,IAAIiI,KAAK,SAAS3K,EAAAA,EAAAA,QAAOjC,KAAM,cAC7BA,S,EA3DUw4F,CAAoBx0F,EAAAA,M,0pBCDpB00F,EAAAA,SAAAA,I,2HACnB,SAAWn2F,GACT,IAAMG,EAASH,EAAEG,QAAU,GACrBO,EAAQjD,KAAKiD,MACnBjD,KAAK0C,OAASA,EACd1C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAKspF,QAAUrmF,EAAMzB,IAAI,WACzBxB,KAAK+C,UAAY/C,KAAK2C,IAAM,QAC5B3C,KAAK2F,GAAK3F,KAAK2C,IAAMM,EAAMzB,IAAI,MAC/BxB,KAAKgD,SAASC,EAAO,uBAAwBjD,KAAK24F,eAClD34F,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKiiE,eAC5CjiE,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAK44F,eAC5C31F,EAAME,KAAOnD,O,2BAMf,WACEA,KAAK2E,IAAIqD,OAAOhI,KAAKiD,MAAMzB,IAAI,oB,2BAMjC,WACExB,KAAK2E,IAAIT,KAAKlE,KAAKiD,MAAMzB,IAAI,c,2BAG/B,WACOxB,KAAKiD,MAAMzB,IAAI,WAIpBxB,KAAK2E,IAAIsD,YAAT,UAAwBjI,KAAK4C,KAA7B,WAHE5C,KAAK2E,IAAIC,SAAT,UAAqB5E,KAAK4C,KAA1B,a,wBAMJ,WACE,OAAO5C,KAAKiD,MAAMzB,IAAI,gB,wBAGxB,WACE,IAAMsB,EAAK9C,KAAK0C,OAAOI,GACjB2I,EAAS3I,EAAKA,EAAGtB,IAAI,UAAY,GACjCizC,EAAYz0C,KAAKiD,MAAMzB,IAAI,aAEjC,GAAIiK,GAAUgpC,EAAW,CACvB,IAEI0wC,EACF0T,EACAC,EAJEC,GAAqB,IAAdtkD,EAAqB,CAAC,EAAG,EAAG,EAAG,GAAKA,EAC3CukD,EAASD,EAAK9xF,OAIhB89E,EAAK,EAGO,GAAViU,GACF7T,EAAK4T,EAAK,GACVD,EAAKC,EAAK,GACVF,EAAKE,EAAK,GACVhU,EAAKgU,EAAK,IACS,GAAVC,IACT7T,EAAK4T,EAAK,GACVF,EAAKE,EAAK,GACVD,EAAKC,EAAK,GACVhU,EAAKgU,EAAK,IAGZ,IAAInkD,EAAUnpC,EAAOklC,MAAMC,QAAQxtC,K,qWAArB,EACZ+hF,GAAAA,EACA0T,GAAAA,EACAC,GAAAA,EACA/T,GAAAA,EACAkU,GAAI,EACJp8B,GAAI,EACJq8B,GAAI,EACJC,GAAI,EACJzmF,SAAU1S,KAAK6D,GACfu1F,aAAc,EACdC,qBAAsB,EACtBnjF,OAAQzK,EAAOyE,YAAY/P,YAC3B2e,MAbY,WAcVhc,GAAMA,EAAG4B,QAAQ,wBAEnB6rC,WAAY,SAAC1sC,EAAD,GAAoB,IAAbH,EAAa,EAAbA,OACXiT,EAAQ9S,EAAG8S,MACXjU,EAASkyC,EAAQ1kC,YACjB4kC,EAAWpyC,EAAOoyC,SAClBD,EAAYnyC,EAAOmyC,UACnB3xB,EAAOrf,EAAGsf,wBACVm2E,EAAyB,aAAV51F,EACf61F,EAAa5iF,EAAMm+B,GACnB0kD,EAAc7iF,EAAMk+B,GAG1B,MAAO,CACL90B,KAAM,EACNC,IAAK,EACL3d,MALYk3F,IAAeD,EAAejsE,WAAWksE,GAAcr2E,EAAK7gB,MAMxED,OALao3F,IAAgBF,EAAejsE,WAAWmsE,GAAet2E,EAAK9gB,UAQ5EqyC,IAELG,EAAQ/D,KAAO,aACf+D,EAAQhb,MAAM55B,KAAK6D,O,oBAIvB,WACE,IAAMc,EAAM3E,KAAK2E,IACX/B,EAAO5C,KAAK4C,KACZgT,EAAM,GAAH,OAAM5V,KAAK+C,UAAX,YAAwB/C,KAAK2F,GAA7B,YAAmC/C,EAAnC,kBAAiDA,EAAjD,aAKT,GAJA+B,EAAIC,SAASgR,GAEb5V,KAAK44F,gBAED54F,KAAKspF,QAAQriF,OAAQ,CACvB,IAAIqiF,EAAU,IAAIkP,EAAY,CAC5B/1F,WAAYzC,KAAKspF,QACjB5mF,OAAQ1C,KAAK0C,SAEfiC,EAAIqD,OAAOshF,EAAQ9hF,SAAS3D,IAI9B,OADAc,EAAIqD,OAAOhI,KAAKiD,MAAMzB,IAAI,YACnBxB,S,EA9HU04F,CAAkB10F,EAAAA,M,4bCAlBy1F,EAAAA,SAAAA,I,2HACnB,SAAWl3F,GACTvC,KAAK6sB,IAAMtqB,GAAK,GAChBvC,KAAK0C,OAAS1C,KAAK6sB,IAAInqB,QAAU,GACjC1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtC,IAAM6hB,EAAQhiB,KAAKyC,WACnBzC,KAAKgD,SAASgf,EAAO,MAAOhiB,KAAKwX,OACjCxX,KAAKgD,SAASgf,EAAO,QAAShiB,KAAKwH,QACnCxH,KAAKgD,SAASgf,EAAO,SAAUhiB,KAAK02B,UACpC12B,KAAK+C,UAAY/C,KAAK2C,IAAM,W,sBAG9B,SAASM,GACP,IAAME,EAAOF,EAAME,KACnBA,GAAQA,EAAKD,W,mBAUf,SAAMD,GACJjD,KAAKkjD,gBAAgBjgD,K,6BAYvB,SAAgBA,EAAOmE,GACrB,IAAMC,EAAWD,GAAc,KACzB1E,EAAS1C,KAAK0C,OACdmB,EAAKZ,EAAMzB,IAAI,MACf2B,EAAO,IAAIu1F,EAAU,CACzB70F,GAAAA,EACAZ,MAAAA,EACAP,OAAAA,IAEI4E,EAAWnE,EAAKqE,SAAS3D,GACzB6O,EAAWzP,EAAMzB,IAAI,YAG3B,GAAIqC,QACG,GAAI6O,EAAU,CACJxK,SAASnB,cAAc2L,GAC7BjL,YAAYH,QAEjBD,EACFA,EAASI,YAAYH,GAErBtH,KAAK2E,IAAIqD,OAAOV,GAKpB,OADAnE,EAAK6vC,aACE1rC,I,oBAGT,WAAS,WACD3C,EAAM3E,KAAK2E,IACXqU,EAAO9Q,SAASC,yBAKtB,OAJAxD,EAAIoD,QACJ/H,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,EAAO+V,MAC1DrU,EAAIqD,OAAOgR,GACXrU,EAAIiI,KAAK,QAAS5M,KAAK+C,WAChB/C,S,EAzEUy5F,CAAmBz1F,EAAAA,MC6BxC,mBACE,IACIypC,EAAQisD,EADR7wF,EAAI,GAGR,MAAO,CAML1E,KAAM,SAONf,KAbK,SAaAV,GAEH,IAAK,IAAIyB,KADT0E,EAAInG,GAAU,GACG+M,EACTtL,KAAQ0E,IAAIA,EAAE1E,GAAQsL,EAAStL,IAGvC,IAAIvB,EAAOiG,EAAEhG,aAIb,OAHID,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aAEnCstC,EAAS,IAAIN,EAAOtkC,EAAE4G,UACfzP,MAOTyvC,UA9BK,WA+BH,OAAOhC,GAOTksD,YAtCK,WAuCH,OAAOD,GAAiBA,EAAc71F,IAcxCwpC,SArDK,SAqDIqB,GACP,OAAOjB,EAAO5mC,IAAI6nC,IAiBpBkrD,YAvEK,SAuEOlrD,GACV,OAAOjB,EAAOvqC,OAAOwrC,IAUvBtB,SAlFK,SAkFIznC,GACP,IAAIwD,EAAMskC,EAAO58B,MAAM,CAAElL,GAAAA,IACzB,OAAOwD,EAAIlC,OAASkC,EAAI,GAAK,MAiC/B++E,UArHK,SAqHK2R,EAAS7kF,GACjB,IAAIk4B,EAAKltC,KAAKotC,SAASysD,GACvB,OAAO3sD,EAAKA,EAAG1rC,IAAI,WAAWqF,IAAImO,GAAU,MAoB9C8kF,aA3IK,SA2IQD,EAAS7kF,GACpB,IAAIk4B,EAAKltC,KAAKotC,SAASysD,GACvB,OAAO3sD,GAAMA,EAAG1rC,IAAI,WAAW0B,OAAO8R,IAWxC+kF,UAxJK,SAwJKF,EAASl0F,GACjB,IAAIunC,EAAKltC,KAAKotC,SAASysD,GACvB,GAAI3sD,EAAI,CACN,IAAI/jC,EAAM+jC,EAAG1rC,IAAI,WAAWqP,MAAM,CAAElL,GAAAA,IACpC,OAAOwD,EAAIlC,OAASkC,EAAI,GAAK,KAE/B,OAAO,MAQT3B,OAtKK,WA4KH,OALAkyF,GAAiBA,EAAcx2F,UAC/Bw2F,EAAgB,IAAID,EAAW,CAC7Bh3F,WAAYgrC,EACZ/qC,OAAQmG,KAEWrB,SAAS3D,IAOhC07B,OAnLK,WAoLHv/B,KAAKyvC,YAAYrnC,MAAK,SAAAwuB,GACpBA,EAAEp1B,IAAI,WAAW4G,MAAK,SAAAivF,GACpBA,EAAI71F,IAAI,WAAa61F,EAAI3yF,QAAQ,uBASvCs1F,eA/LK,WAgMHh6F,KAAKyvC,YAAYrnC,MAAK,SAAAwuB,GACpBA,EAAEp1B,IAAI,WAAW4G,MAAK,SAAAivF,GAChBA,EAAI71F,IAAI,YAAY61F,EAAI3yF,QAAQ,yBAK1C8N,QAvMK,WAwMHi7B,EAAOh8B,QACPg8B,EAAOh7B,gBACPinF,GAAiBA,EAAcx2F,SAC/B,CAAC2F,EAAG4kC,EAAQisD,GAAejtF,SAAQ,SAAArC,GAAC,MAAS,OAG/CgtF,MAAAA,K,yiBChPiB6C,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLt0F,GAAI,GACJmN,MAAO,GACP8T,QAAS,OACT7jB,UAAW,GACXu+B,QAAS,GACTk4B,QAAS,GACT8vB,QAAS,GACTj2E,WAAY,GACZ7Q,QAAS,GACT+8B,QAAQ,EACRhG,UAAU,EACV29D,WAAW,EACXgD,mBAAmB,EACnBC,oBAAoB,EACpB/mF,SAAS,K,wBAIb,SAAW5Q,GACT,GAAIxC,KAAKwB,IAAI,WAAWyF,OAAQ,CAC9B,IAAIqwF,EAAUt+D,EAAAA,MAAAA,EACdh5B,KAAK2D,IAAI,UAAW,IAAI2zF,EAAQt3F,KAAKwB,IAAI,kB,EAxB1By4F,C,QAAep4F,G,4bCCfy1F,EAAAA,SAAAA,I,uIAQnB,SAAuB8C,EAAQt8D,GAC7B99B,KAAKyM,SAAQ,SAACxJ,EAAOwsB,GACfxsB,IAAUm3F,IACZn3F,EAAMU,IAAI,UAAU,GAChBm6B,GAAK76B,EAAMzB,IAAI,WAAWyF,QAAQhE,EAAMzB,IAAI,WAAW64F,uBAAuBD,EAAQt8D,S,2BAWhG,SAAcw8D,EAAK36D,GACjB,IAAM65B,EAAU8gC,GAAO,GACvBt6F,KAAKyM,SAAQ,SAAAxJ,GACPA,EAAMzB,IAAI,YAAcg4D,GAAWv2D,IAAU08B,GAC/C18B,EAAMU,IAAI,UAAU,EAAO,CAAEy0F,eAAgB,S,+BAWnD,SAAkBkC,GAChB,IAAI9gC,EAAU8gC,GAAO,GACrBt6F,KAAKyM,SAAQ,SAACxJ,EAAOwsB,GACfxsB,EAAMzB,IAAI,YAAcg4D,GAC1Bv2D,EAAMU,IAAI,WAAW,Q,wCAY3B,SAA2By2F,EAAQt8D,GACjC99B,KAAKyM,SAAQ,SAACxJ,EAAOwsB,GACfxsB,IAAUm3F,IACZn3F,EAAMU,IAAI,WAAW,GACjBm6B,GAAK76B,EAAMzB,IAAI,WAAWyF,QAAQhE,EAAMzB,IAAI,WAAW+4F,2BAA2BH,EAAQt8D,W,EA1DjFw5D,CAAgB9xF,EAAAA,YAgErC8xF,EAAQx1F,UAAUmB,MAAQg3F,G,wECnE1B,SACEzwC,SAAU,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,MAI3CvI,UAAW,KASX2gB,WAAY,KAGZ44B,YAAa,CAIXC,SAAU,KAGVC,cAAc,EAGdC,iBAAiB,I,cCvBfx9D,EAAU,CACd,EAAG,QACH,EAAG,YACH,EAAG,OACH,EAAG,YACH,GAAI,gBACJ,GAAI,WACJ,GAAI,WACJ,GAAI,sBACJ,GAAI,YAEAy9D,GAAa/4E,EAAAA,EAAAA,MAAKsb,GAClB09D,EAAgB,CAAC,IAAK,IAAK,KAAM,MACjCC,EAAqB,CAAC,YAAa,OAAQ,gBAAiB,YAiBrDC,EAAgB,WAK3B,IALyC,IAAb/9C,EAAa,uDAAP,GAC5Bn2C,EAAM,GACN5E,EAAS,GACTy1B,EAAOslB,EAAIv7C,MAAM,KAEd2I,EAAI,EAAG89B,EAAMxQ,EAAKzwB,OAAQmD,EAAI89B,EAAK99B,IAAK,CAC/C,IAAIkrB,EAAMoC,EAAKttB,GAAG3D,OAMlB,GACE,wCAAwC6hD,KAAKhzB,IAC7C,yCAAyCgzB,KAAKhzB,GAC9C,CACA,IAAI1f,EAAM0f,EAAI7zB,MAAM,KAAKu0B,OAAOoN,SAChCnhC,EAAO2L,KAAKgI,QAEZ/O,EAAI+G,KAAK0nB,GAIb,MAAO,CACLrzB,OAAAA,EACA4E,IAAAA,IASS8xD,EAAa,SAAA3X,GAIxB,IAHA,IAAM3+B,EAAM2+B,EAAKrqC,MACXA,EAAQ,GAELvM,EAAI,EAAG89B,EAAM7lB,EAAIpb,OAAQmD,EAAI89B,EAAK99B,IAAK,CAC9C,IAAM8pF,EAAW7xE,EAAIjY,GACf4wF,EAAY34E,EAAI44E,iBAAiB/G,GACjCn2C,EAAY17B,EAAI64E,oBAAoBhH,GAC1Cv9E,EAAMu9E,GAAN,UAAqB8G,GAArB,OAAiCj9C,EAAY,KAAH,OAAQA,GAAc,IAGlE,OAAOpnC,GAQIwkF,EAAiB,SAAAn6C,GAO5B,OALEA,EAAKo6C,eACJp6C,EAAKhuC,OAASguC,EAAKhuC,MAAM4qC,WAC1BoD,EAAK78C,MACL68C,EAAKq6C,cACL,IACe50F,QASN60F,EAAa,SAAC/lE,GAAqC,IAA1B5e,EAA0B,uDAAlB,GAAI/N,EAAc,uDAAP,GACjDo4C,EAAO,GACPu6C,EAAShmE,EAAUtuB,OACnBu0F,EAAYjmE,EAAUgmE,EAAS,GAC/BE,EAAWD,EAAYA,EAAU/5F,MAAM,SAAW,GAClD6xC,EAAQmoD,EAAS,GACfl+D,EAAoC30B,EAApC20B,OAAQY,EAA4Bv1B,EAA5Bu1B,aAAcyf,EAAch1C,EAAdg1C,UACxBxf,EAAe08D,EAAmBnmF,QAAQ4oB,IAAW,EAgB3D,OAfAa,IAAiB4iB,EAAK5iB,aAAe,GACrCb,IAAWyjB,EAAKlD,WAAavgB,GAC7BY,IAAiB6iB,EAAK7iB,aAAeA,GACrCyf,IAAcoD,EAAKpD,UAAYA,GAG3BtK,IACF/d,EAAUgmE,EAAS,GAAKE,EAAS,GACjCz6C,EAAK1N,MAAQA,EACbmoD,EAASvlE,OAAOulE,EAASx0F,OAAS,EAAG,IAGvC+5C,EAAKzrB,UAAYA,EACjByrB,EAAKrqC,MAAQA,EAENqqC,GAQI06C,EAAY,SAAZA,EAAY73F,GAIvB,IAHA,IAAI5B,EAAS,GACTo/D,EAAQx9D,EAAG83F,UAAY,GAElBvxF,EAAI,EAAG89B,EAAMm5B,EAAMp6D,OAAQmD,EAAI89B,EAAK99B,IAAK,CAChD,IAAM42C,EAAOqgB,EAAMj3D,GACb9I,EAAO0/C,EAAK1/C,KAAKw3B,WACnBsF,EAAe,EACf0f,EAAa,GACbY,EAAY,GAEZhnB,EAAOspB,EAAKq6C,cAAgBr6C,EAAK46C,QAC/BC,EAAiBhB,EAAclmF,QAAQrT,IAAS,EAGtD,GAAIu6F,EACFz9D,EAAe,EACf0f,EAAa3gB,EAAQ77B,GACrBo9C,EAAYy8C,EAAen6C,QACtB,GAAI45C,EAAWjmF,QAAQrT,IAAS,EAAG,CACxC,IAAIw6F,EAAWJ,EAAU16C,GACzBtC,EAAYy8C,EAAen6C,GAE3B,IAAK,IAAI5+B,EAAI,EAAG25E,EAAOD,EAAS70F,OAAQmb,EAAI25E,EAAM35E,IAAK,CACrD,IAAI45E,EAAUF,EAAS15E,GACvBs8B,IAAcs9C,EAAQp+C,UAAYc,GAClCs9C,EAAQl+C,WAAa3gB,EAAQ77B,GAE/BW,EAASA,EAAOw8B,OAAOq9D,GAGzB,GAAKpkE,GAASmkE,EAAd,CAQA,IAPA,IAAMllF,EAAQgiD,EAAW3X,GACnBi7C,EAAalB,EAAcrjE,GAC3BwkE,EAAUD,EAAWp1F,IAGvBs1F,OAAQ,EAEH18D,EAAI,EAAG28D,GAJhB1kE,EAAOukE,EAAWh6F,QAIUgF,OAAQw4B,EAAI28D,EAAM38D,IAAK,CACjD,IAAMx8B,EAAQq4F,EAAW5jE,EAAK+H,GAAI9oB,EAAO,CACvC4mB,OAAQJ,EAAQ77B,KAElBW,EAAO2L,KAAK3K,GACZk5F,EAAWl5F,EAKb,GAAIi5F,EAAQj1F,OAAQ,CAClB,IAAIo1F,EAAaH,EAAQn6E,KAAK,MAC9B,GAAIo6E,EACFA,EAASh+D,aAAek+D,MACnB,CACL,IAAMp5F,EAAQ,CACZsyB,UAAW,GACX4I,aAAck+D,EACd1lF,MAAAA,GAEFynB,IAAiBn7B,EAAMm7B,aAAeA,GACtC0f,IAAe76C,EAAM66C,WAAaA,GAClCY,IAAcz7C,EAAM26C,UAAYc,GAChCz8C,EAAO2L,KAAK3K,MAKlB,OAAOhB,GAQT,iBAAe+6C,GACb,IAAMn5C,EAAKqE,SAAS0lB,cAAc,SAClC/pB,EAAGC,UAAYk5C,EAGf90C,SAAS2d,KAAKpe,YAAY5D,GAC1B,IAAMy4F,EAAQz4F,EAAGy4F,MAGjB,OAFAp0F,SAAS2d,KAAKtD,YAAY1e,GAEnB63F,EAAUY,ICpNnB,aAAe,IAAC55F,EAAD,uDAAU,GAAV,MAAkB,CAM/BmH,MAN+B,SAMzBmzC,GAAK,WACL/6C,EAAS,GACLg/C,EAAkBv+C,EAAlBu+C,UAAWn+C,EAAOJ,EAAPI,GACb2I,EAAS3I,GAAMA,EAAGtB,KAAOsB,EAAGtB,IAAI,UAKtC,OAJcy/C,EAAYA,EAAUjE,EAAKvxC,GAAU8wF,EAAiBv/C,IAC9DvwC,SAAQ,SAAAu0C,GAAI,OAAK/+C,EAASA,EAAOw8B,OAAO,EAAKyiB,UAAUF,OAC7Dl+C,GAAMA,EAAG4B,QAAQ,YAAa,CAAE4B,MAAO02C,EAAKw/C,OAAQv6F,IAE7CA,GAQTi/C,UAtB+B,SAsBrBF,GACR,MAA6BA,EAArBzrB,EAAR,EAAQA,UAAW5e,EAAnB,EAAmBA,MAEnB,IAAIuC,EAAAA,EAAAA,UAASqc,GAAY,CACvB,IAAM8rC,EAAQ,GACR46B,EAAalB,EAAcxlE,GAC3BknE,EAAYR,EAAWh6F,OACvBk8B,EAAe89D,EAAWp1F,IAAIkb,KAAK,MACnCnZ,EAAO,CACX20B,OAAQyjB,EAAKzjB,OACbqgB,UAAWoD,EAAKzgD,QAWlB,GARIk8F,EAAUx1F,OACZw1F,EAAUhwF,SAAQ,SAAAiwF,GAChBr7B,EAAMzzD,KAAK0tF,EAAWoB,EAAU/lF,EAAO/N,OAGzCy4D,EAAMzzD,KAAK0tF,EAAW,GAAI3kF,EAAO/N,IAG/Bu1B,EACekjC,EAAMA,EAAMp6D,OAAS,GAC7Bk3B,aAAeA,EAG1B6iB,EAAOqgB,EAGT,OAAOrgB,K,mlBC3BX,mBACE,IACI27C,EAAOC,EADPz2E,EAAO,GAGX,MAAO,CACL8sC,UAAW,GAEXhS,UAAW,KAEX2gB,WAAY,KAEZz9D,KAAM,SAENf,KATK,WASa,IAAbV,EAAa,uDAAJ,GAQZ,OAPAyjB,EAAO,EAAH,KAAQ1W,GAAa/M,IACpBm6F,OAAS78F,KACd28F,EAAQ,IAAI/6B,EAAAA,EAAWz7C,GACvBy2E,EAAO,IAAI37C,EAAU96B,GACrBnmB,KAAK8C,GAAKqjB,EAAKrjB,GACf9C,KAAKihD,UAAY27C,EACjB58F,KAAK4hE,WAAa+6B,EACX38F,MASTkQ,UA1BK,WA2BH,OAAOiW,GAsBTg7C,UAjDK,SAiDK76D,GAAqB,IAAd9D,EAAc,uDAAJ,GACjBM,EAAkB9C,KAAlB8C,GAAImwD,EAAcjzD,KAAdizD,UAEZ,OADA0pC,EAAM1pC,UAAYnwD,EAAKA,EAAGtB,IAAI,iBAAiBqQ,WAAaohD,EACrD0pC,EAAM9yF,MAAMvD,EAAOs2F,EAAMp6F,IAWlCi+C,SA/DK,SA+DIn6C,GACP,OAAOs2F,EAAK/yF,MAAMvD,IAGpBkM,QAnEK,WAmEK,WACR,CAAC2T,EAAMw2E,EAAOC,GAAMnwF,SAAQ,SAAArC,GAAC,MAAS,MACtC,CAAC,KAAM,YAAa,cAAcqC,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,U,+ECrG1DqwF,EAAW,YACXqC,EAAcrC,EAEpB,iBAAgBz9C,GAAqB,IAM/B7zC,EANezG,EAAgB,uDAAP,GACtBq6F,EAAS,IAAIC,UACbC,EAAWv6F,EAAO+3F,UAAYqC,EAC9BhlE,EAASmlE,IAAaxC,EACtByC,EAAOplE,EAASklB,EAAH,eAAiBA,EAAjB,UACbv+B,EAAMs+E,EAAOI,gBAAgBD,EAAMD,GAGzC,GAAInlE,EAAQ,CAEV,IAAQjS,EAAepH,EAAfoH,KAAM5b,EAASwU,EAATxU,KAERiS,EAAU2J,EAAKkqB,iBAAiB,WACtC3nC,EAAAA,EAAAA,MAAK8T,GAAS,SAAA8kC,GAAI,OAAI/2C,EAAKxC,YAAYu5C,MAEvC,IAAMo8C,EAAO,IACbh1F,EAAAA,EAAAA,MAAKyd,EAAKkf,UAAU,SAAA0/C,GAAC,OAAI2Y,EAAKxvF,KAAK62E,OACnCr8E,EAAAA,EAAAA,MAAKg1F,GAAM,SAACp8C,EAAM52C,GAAP,OAAaH,EAAKtC,aAAaq5C,EAAM/2C,EAAK86B,SAAS36B,OAC9DjB,EAAMc,OAENd,EAAMsV,EAAI7W,WAGZ,OAAOuB,G,qkBCzBT,iBAAezG,GACb,IAAImG,EAAInG,EACF26F,EAAiB,YACjB/vF,EAAQ,aAEd,MAAO,CACL2lD,UAAW,GAEXoqC,eAAAA,EAOAx7B,mBAVK,WAUyB,WAAXj1D,EAAW,uDAAJ,GAClBgP,EAAQ,GACRic,EAAQ,GA4Bd,OA1BAzvB,EAAAA,EAAAA,MAAKwE,GAAM,SAAC/G,EAAOywB,GACjB,GAAyC,IAArCA,EAAI3hB,QAAQ,EAAK0oF,gBAAuB,CAC1C,IAAMC,EAAYhnE,EAAIvqB,QAAQsxF,EAAgB,IACxCE,EAAW13F,EAAMoB,OACjBu2F,EAAS33F,IAASqT,EAAAA,EAAAA,UAASrT,GAC3B43F,EAAYD,GAAU33F,EAAM8gD,OAAO,EAAG,GACtC+2C,EAAWF,GAAU33F,EAAM8gD,OAAO42C,EAAW,GAEnD13F,EAAkB,WADlBA,EAAkB,SAAVA,GAA0BA,IACEA,EAKpC,IACEA,EACgB,KAAb43F,GAAgC,KAAZC,GAAkC,KAAbD,GAAgC,KAAZC,EAC1D9zF,KAAKC,MAAMhE,GACXA,EACN,MAAOX,IAET0W,EAAM0hF,GAAaz3F,OAEnBgyB,EAAMvB,GAAOzwB,KAIV,CACL+V,MAAAA,EACAic,MAAAA,IAaJ8gC,WAvDK,SAuDM3b,GAGT,IAFA,IAAI/6C,EAAS,GACT07F,EAAQ3gD,EAAIv7C,MAAM,KACb2I,EAAI,EAAG89B,EAAMy1D,EAAM12F,OAAQmD,EAAI89B,EAAK99B,IAAK,CAChD,IAAIwzF,EAAOD,EAAMvzF,GAAG3D,OACpB,GAAKm3F,EAAL,CACA,IAAIrnE,EAAOqnE,EAAKn8F,MAAM,KACtBQ,EAAOs0B,EAAK,GAAG9vB,QAAU8vB,EAAK6pB,MAAM,GAAGr+B,KAAK,KAAKtb,QAEnD,OAAOxE,GAYT47F,WA5EK,SA4EM7gD,GAGT,IAFA,IAAM/6C,EAAS,GACT2T,EAAMonC,EAAIv7C,MAAM,KACb2I,EAAI,EAAG89B,EAAMtyB,EAAI3O,OAAQmD,EAAI89B,EAAK99B,IAAK,CAC9C,IAAM26E,EAAKnvE,EAAIxL,GAAG3D,OACbs+E,GACL9iF,EAAO2L,KAAKm3E,GAEd,OAAO9iF,GAQTy5F,UA5FK,SA4FK73F,GAIR,IAJuB,IAAX+E,EAAW,uDAAJ,GACb3G,EAAS,GACTo/D,EAAQx9D,EAAGu1C,WAERhvC,EAAI,EAAG89B,EAAMm5B,EAAMp6D,OAAQmD,EAAI89B,EAAK99B,IAAK,CAChD,IAAM42C,EAAOqgB,EAAMj3D,GACbytB,EAAQmpB,EAAK3tC,YAAc,GAC3ByqF,EAAWjmE,EAAM5wB,OACjB82F,EAAW97F,EAAOA,EAAOgF,OAAS,GAClC+2F,EAAYh9C,EAAK5H,WAAWnyC,OAC5Bg3F,EAAKj+F,KAAKizD,UACZhwD,EAAQ,GAGZ,GAAIg7F,EAAI,CACN,IAAI3sF,EAAM,GACNhQ,EAAO0/C,EAAKkiB,cAAgBliB,EAAKkiB,aAAL,UAAqBm6B,EAArB,SAGhC,GAAI/7F,EACF2B,EAAQ,CAAE3B,KAAAA,OACL,CAGL,IAAK,IAAIizD,EAAK,EAAGA,EAAK0pC,EAAGh3F,OAAQstD,IAAM,CACrC,IAAMX,EAAWqqC,EAAG1pC,GAGpB,GAFAjjD,EAAMsiD,EAAS3wD,MAAMkyB,YAAY6rB,EAAMp4C,GAE9B,CACY,YAAf,OAAO0I,KACTA,EAAM,CAAEhQ,KAAMsyD,EAASjuD,KAEzB,OAIJ1C,EAAQqO,GAKZ,IAAKrO,EAAM2jB,QAAS,CAClB,IAAM1E,EAAM8+B,EAAKp6B,SAAW,GACtBygE,EAAKrmC,EAAKk9C,cAAgB,GAChCj7F,EAAM2jB,QAAU1E,GAAc,iCAAPmlE,EAAwCnlE,EAAIo3B,cAAgBp3B,EAGjF47E,IACF76F,EAAMoQ,WAAa,IAIrB,IAAK,IAAImuC,EAAI,EAAGA,EAAIs8C,EAAUt8C,IAAK,CACjC,IAAMmiB,EAAW9rC,EAAM2pB,GAAGmiB,SACtBw6B,EAAYtmE,EAAM2pB,GAAG28C,UAGzB,GAAgB,SAAZx6B,EACF1gE,EAAM0T,MAAQ3W,KAAK24D,WAAWwlC,QACzB,GAAgB,SAAZx6B,EACT1gE,EAAM45B,QAAU78B,KAAK69F,WAAWM,OAC3B,IAAgB,mBAAZx6B,EACT,SACK,GAAyC,IAArCA,EAAShvD,QAAQ0oF,GAAuB,CACjD,IAAMC,EAAY35B,EAAS53D,QAAQsxF,EAAgB,IAC7CE,EAAWY,EAAUl3F,OACrBw2F,EAAYU,GAAaA,EAAUx3C,OAAO,EAAG,GAC7C+2C,EAAWS,GAAaA,EAAUx3C,OAAO42C,EAAW,GAE1DY,EAA0B,WAD1BA,EAA0B,SAAdA,GAA8BA,IACEA,EAK5C,IACEA,EACgB,KAAbV,GAAgC,KAAZC,GAAkC,KAAbD,GAAgC,KAAZC,EAC1D9zF,KAAKC,MAAMs0F,GACXA,EACN,MAAOj5F,IAETjC,EAAMq6F,GAAaa,MAGD,KAAdA,IAAuC,IAAnBn9C,EAAK2iB,KAC3Bw6B,GAAY,GAGdl7F,EAAMoQ,WAAWswD,GAAYw6B,GAKjC,GAAIH,IAAc/6F,EAAMyR,WAAY,CAElC,IAAM9M,EAAao5C,EAAK5H,WAAW,GAIjB,IAAd4kD,GAA2C,IAAxBp2F,EAAW8hD,WAC/BzmD,EAAM3B,OAAS2B,EAAM3B,KAAO,QAC7B2B,EAAMyR,WAAa,CACjBpT,KAAM,WACNyR,QAASnL,EAAWu2F,YAGtBl7F,EAAMyR,WAAa1U,KAAK07F,UAAU16C,EAAf,OACdp4C,GADc,IAEjBknD,MAAOlnD,EAAKknD,OAAwB,QAAf7sD,EAAM3B,QAMjC,GAAkB,YAAd2B,EAAM3B,KAAoB,CAC5B,GAAIy8F,GAA6B,YAAjBA,EAASz8F,KAAoB,CAC3Cy8F,EAAShrF,SAAW9P,EAAM8P,QAC1B,SAIF,IAAKrQ,EAAO07F,mBAAoB,CAC9B,IAAMrrF,EAAUiuC,EAAKm9C,UACrB,GAAe,KAAXprF,IAAmBA,EAAQtM,OAC7B,UAMDu3F,GAA+C,OAAlC,UAAGh9C,EAAKq9C,WAAYj+C,OAAO,KAC3Cn9C,EAAM+iD,MAAO,GAKf,IAAM1tB,EAAQr1B,EAAMyR,WACpB,IAAKzR,EAAM3B,MAAQg3B,EAAO,CAIxB,IAHA,IAAIgmE,EAAS,EACTC,EAAgB,EAEXC,EAAK,EAAGA,EAAKlmE,EAAMrxB,OAAQu3F,IAAM,CACxC,IAAM5+E,EAAO0Y,EAAMkmE,GACbC,EAAQ7+E,EAAKte,KAEnB,GAAI,CAAC,OAAQ,YAAYqT,QAAQ8pF,GAAS,GAAK51F,EAAE2gD,SAAS70C,QAAQiL,EAAKgH,SAAW,EAAG,CACnF03E,EAAS,EACT,MAGW,YAATG,IACFF,EAAgB,GAIhBD,GAAUC,IACZt7F,EAAM3B,KAAO,SAKZ2B,EAAM2jB,SAAyB,YAAd3jB,EAAM3B,OAI5BW,EAAO2L,KAAK3K,GAGd,OAAOhB,GAST4H,MA7QK,SA6QCmzC,EAAKiE,GAAsB,MAAXr4C,EAAW,uDAAJ,GACnB9F,EAAO+F,EAAP/F,GACFqjB,EAAQrjB,GAAMA,EAAGtB,IAAI,WAAc,GACnC2H,EAAM,CAAEjF,KAAM,KAAM6S,IAAK,MACzB2nF,EAAK,EAAH,KAAQh8F,GAAWkG,GACrBpG,EAAU,EAAH,KACRE,EAAO83F,aADC,IAGXC,UAAU,UAAA/3F,EAAO83F,mBAAP,eAAoBC,WAAY/3F,EAAO+3F,UAC9C7xF,GAEC/E,GAAKgB,EAAAA,EAAAA,YAAW65F,EAAG98B,YAAc88B,EAAG98B,WAAW5kB,EAAKx6C,GAAWm8F,EAAkB3hD,EAAKx6C,GACtF0Z,EAAUrY,EAAGksC,iBAAiB,UAChC3lC,EAAI8R,EAAQjV,OAGVyzF,GAAgB51E,EAAAA,EAAAA,aAAYqB,EAAKu0E,cAAoCl4F,EAAQk4F,aAA5Bv0E,EAAKu0E,aAG5D,IAAKA,EACH,KAAOtwF,KAAK8R,EAAQ9R,GAAGkY,WAAWC,YAAYrG,EAAQ9R,IASxD,GALK5H,EAAQm4F,iBACX36F,KAAK4+F,kBAAkB/6F,GAIrBo9C,EAAW,CAKb,IAJA,IAAM9kC,EAAStY,EAAGksC,iBAAiB,SAC/ByR,EAAIrlC,EAAOlV,OACX43F,EAAW,GAERr9C,KACLq9C,EAAW1iF,EAAOqlC,GAAG19C,UAAY+6F,EACjC1iF,EAAOqlC,GAAGl/B,WAAWC,YAAYpG,EAAOqlC,IAGtCq9C,IAAU11F,EAAI4N,IAAMkqC,EAAUp3C,MAAMg1F,IAG1C/7F,GAAMA,EAAG4B,QAAH,UAAc4I,EAAd,SAA4B,CAAEhH,MAAO02C,EAAKx9C,KAAMqE,IACtD,IAAM5B,EAASjC,KAAK07F,UAAU73F,EAAI66F,GAE5BI,EAA4B,IAAlB78F,EAAOgF,QAAiB4B,EAAEk2F,YAA0B98F,EAAZA,EAAO,GAI/D,OAHAkH,EAAIjF,KAAO46F,EACXh8F,GAAMA,EAAG4B,QAAQ4I,EAAO,CAAEhH,MAAO02C,EAAKw/C,OAAQrzF,IAEvCA,GAGTy1F,kBAjUK,SAiUa59C,GAAM,WAChBnpB,EAAQmpB,EAAK3tC,YAAc,GAC3BguD,EAAQrgB,EAAK5H,YAAc,GAC3B73B,EAAW,IACjBnZ,EAAAA,EAAAA,MAAKyvB,GAAO,SAAAjrB,GACV,IAAMzI,EAAOyI,EAAK+2D,UAAY,GACP,IAAvBx/D,EAAKwQ,QAAQ,OAAe4M,EAAS3T,KAAKzJ,MAE5Cod,EAAS7G,KAAI,SAAAvW,GAAI,OAAI68C,EAAKg+C,gBAAgB76F,OAC1CiE,EAAAA,EAAAA,MAAKi5D,GAAO,SAAArgB,GAAI,OAAI,EAAK49C,kBAAkB59C,U,4tBC5UjD,IAEMi+C,EACI,EADJA,EAEM,EAFNA,GAGO,EAEPC,EAAa,SAACn1C,GAAuB,IAAlBnjC,EAAkB,uDAAR,IACjC,EAAkCmjC,EAAIoB,YAA9Bg0C,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,UACdC,EAAeF,MAAAA,OAAH,EAAGA,EAAY78E,WAC3Bg9E,EAAcF,MAAAA,OAAH,EAAGA,EAAW98E,WAC/B,OAAO+8E,MAAAA,OAAA,EAAAA,EAAc17B,WAAY/8C,IAAW04E,MAAAA,OAAA,EAAAA,EAAa37B,WAAY/8C,GAGjE24E,EAAe,gBAEfC,EAAa,CACjBC,KAAM,CACJt7F,KAAM,OACN0vC,KAAM,WACNxgC,WAAY,CAAE5K,MAAO,QACrBxG,OAAQ,SAAA8nD,GAAG,OAAIA,EAAIv8C,KAAK,UAE1BkyF,OAAQ,CACNv7F,KAAM,SACN0vC,KAAM,WACNxgC,WAAY,CAAE5K,MAAO,UACrBxG,OAAQ,SAAA8nD,GAAG,OAAIA,EAAIv8C,KAAK,YAE1BmyF,UAAW,CACTx7F,KAAM,YACN0vC,KAAM,WACNxgC,WAAY,CAAE5K,MAAO,aACrBxG,OAAQ,SAAA8nD,GAAG,OAAIA,EAAIv8C,KAAK,eAE1BoyF,cAAe,CACbz7F,KAAM,gBACN0vC,KAAM,WACNxgC,WAAY,CAAE5K,MAAO,kBACrBxG,OAAQ,SAAA8nD,GAAG,OAAIA,EAAIv8C,KAAK,mBAE1Bk7E,KAAM,CACJ70C,KAAM,4UAGN1vC,KAAM,OACNkP,WAAY,CACVsD,MAAO,sCACPlO,MAAO,QAET6qC,MAAO,SAAAyW,GACL,OAAOA,GAAOA,EAAIoB,aAAe+zC,EAAWn1C,GAAOk1C,EAAkBA,GAEvEh9F,OAAQ,SAAA8nD,GACFm1C,EAAWn1C,GACbA,EAAIv8C,KAAK,UAETu8C,EAAI81C,WAAJ,uBAA6BN,EAA7B,YAA6Cx1C,EAAIoB,YAAjD,QAAoE,CAAE7mD,QAAQ,MAIpFw7F,KAAM,CACJjsD,KAAM,2SAGNxgC,WAAY,CAAE5K,MAAO,kBACrB6qC,MAAO,SAAAyW,GACL,OAAOA,MAAAA,GAAAA,EAAKoB,aAAe+zC,EAAWn1C,EAAK,QAAUk1C,EAAoBA,GAE3Eh9F,OAAQ,SAAA8nD,IACLm1C,EAAWn1C,EAAK,SAAWA,EAAI81C,WAAJ,gBAAwBN,EAAxB,YAAwCx1C,EAAIoB,YAA5C,WAAkE,CAAE7mD,QAAQ,OAKzFy7F,EAAAA,WACnB,aAA2B,WAAfC,EAAe,uDAAJ,IAAI,eACzB,IAAQn8F,EAAWm8F,EAAXn8F,GAAIf,EAAOk9F,EAAPl9F,GAGZ,GAFA9C,KAAK8C,GAAKA,EAENe,EAAE,KACJ,OAAOA,EAAE,KAGXA,EAAE,KAAY7D,KACdA,KAAKigG,MAAMp8F,GACX7D,KAAKkgG,oBAAsBlgG,KAAKkgG,oBAAoB78F,KAAKrD,MACzDA,KAAKmgG,YAAcngG,KAAKmgG,YAAY98F,KAAKrD,MACzCA,KAAKogG,UAAYpgG,KAAKogG,UAAU/8F,KAAKrD,MAErC,IAAMqgG,GAAQL,EAASM,SAAW,IAAI5lF,KAAI,SAAAglB,GACxC,IAAIz9B,EAASy9B,EAMb,MALsB,iBAAXA,EACTz9B,EAAS,EAAH,GAAQu9F,EAAW9/D,IAChB8/D,EAAW9/D,EAAOv7B,QAC3BlC,EAAS,EAAH,KAAQu9F,EAAW9/D,EAAOv7B,OAAUu7B,IAErCz9B,KAEHq+F,EAAUD,EAAKp5F,OAASo5F,EAAOz+E,OAAOC,KAAK29E,GAAY9kF,KAAI,SAAAikB,GAAC,OAAI6gE,EAAW7gE,MAEjFqhE,EAASnjE,QAAT,OACK,CACD0jE,UAAW,YACXvrF,OAAQ,SACRuqB,OAAQ,SACR52B,SAAU,WACV63F,SAAU,aAETR,EAASnjE,SAGd,IAAMA,EAAUmjE,EAASnjE,QACrB0jE,EAAYP,EAASO,UAMzB,GALAvgG,KAAKugG,UAAYA,EACjBvgG,KAAKggG,SAAWA,EAChBhgG,KAAK68B,QAAUA,EACf78B,KAAKsgG,QAAUA,GAEVC,EAAW,CACd,IAAME,EAAgBT,EAASU,oBAC/BH,EAAYr4F,SAAS0lB,cAAc,QACzB7qB,UAAY85B,EAAQ0jE,UAC9BE,EAAch5F,YAAY84F,GAC1BvgG,KAAKugG,UAAYA,EACjBD,EAAQ7zF,SAAQ,SAAAizB,GAAM,OAAI,EAAKihE,UAAUjhE,MAI3C,OADAsgE,EAASY,cAAgB5gG,KAAKwN,KAAK,gBAC5BxN,K,sCAGT,WACEA,KAAK6D,GAAK,EACV7D,KAAKye,IAAM,EACXze,KAAKugG,UAAY,EACjBvgG,KAAKggG,SAAW,GAChBhgG,KAAK68B,QAAU,GACf78B,KAAKsgG,QAAU,K,mBAGjB,SAAMz8F,GACJ7D,KAAK6D,GAAKA,EACV7D,KAAKye,IAAM5a,EAAG6a,gB,iCAGhB,WAAsB,WACpB1e,KAAK6gG,aAAap0F,SAAQ,SAAAizB,GACxB,IAAM23D,EAAM33D,EAAO23D,IACbnoF,EAASwwB,EAAOxwB,OACtB,OAA4C,EAAK2tB,SAAzC0C,EAAR,EAAQA,OAAQihE,EAAhB,EAAgBA,SAAU73F,EAA1B,EAA0BA,SACpB2qC,EAAQ5T,EAAO4T,MACfnvC,EAAOu7B,EAAOv7B,KACdsa,EAAM,EAAKA,IAOjB,GANA44E,EAAIt0F,UAAYs0F,EAAIt0F,UAAUgJ,QAAQwzB,EAAQ,IAAI94B,OAClD4wF,EAAIt0F,UAAYs0F,EAAIt0F,UAAUgJ,QAAQy0F,EAAU,IAAI/5F,OACpD4wF,EAAIt0F,UAAYs0F,EAAIt0F,UAAUgJ,QAAQpD,EAAU,IAAIlC,OAIhD6sC,EACF,OAAQA,EAAM,EAAM70B,IAClB,KAAKwgF,EACH5H,EAAIt0F,WAAJ,WAAqBw8B,GACrB,MACF,KAAK0/D,EACH5H,EAAIt0F,WAAJ,WAAqBy9F,GACrB,MACF,KAAKvB,EACH5H,EAAIt0F,WAAJ,WAAqB4F,QAKrB8V,EAAIqiF,sBAAsB38F,IAASsa,EAAIsiF,kBAAkB58F,KAC3DkzF,EAAIt0F,WAAJ,WAAqBw8B,IAGzBrwB,GAAUA,EAAO,EAAMwwB,Q,oBAI3B,SAAO92B,GACL,OAAI5I,KAAKghG,QAAgBhhG,KAClBA,KAAKihG,iBAAgB,EAAMr4F,K,qBAGpC,WACE,OAAO5I,KAAKihG,iBAAgB,K,6BAG9B,WAA2C,IAA3B9iF,EAA2B,wDAAXvV,EAAW,uDAAJ,GAC/B4B,EAAS2T,EAASxO,EAAAA,GAAK8F,EAAAA,IACrB5R,EAAY7D,KAAZ6D,GAAI4a,EAAQze,KAARye,IAQZ,GAPAze,KAAKkhG,cAAcvqF,MAAMC,QAAUuH,EAAS,GAAK,OACjDta,EAAGs9F,kBAAoBhjF,EACvB3T,EAAO3G,EAAI,gBAAiB7D,KAAKkgG,qBACjC11F,EAAOiU,EAAK,UAAWze,KAAKmgG,aAC5B31F,EAAOiU,EAAK,QAASze,KAAKogG,WAC1BpgG,KAAKghG,QAAU7iF,EAEXA,EAAQ,CACV,IAAQ7Q,EAAU1E,EAAV0E,MAIR,GAHAtN,KAAKohG,cACLphG,KAAKkgG,sBAED5yF,EAAO,CACT,IAAIg+C,EAAQ,KAEZ,GAAI7sC,EAAI4iF,oBAAqB,CAC3B,IAAMC,GAASr8E,EAAAA,EAAAA,iBAAgB3X,GAC/Bg+C,EAAQ7sC,EAAI4iF,oBAAoBC,EAAOriF,QAASqiF,EAAOpiF,cAC9C5R,EAAMi0F,cACfj2C,EAAQ7sC,EAAI+iF,eACNC,SAASn0F,EAAMi0F,YAAaj0F,EAAMo0F,aAG1C,IAAMpsE,EAAM7W,EAAI2sC,eAChB91B,EAAIqsE,kBACJr2C,GAASh2B,EAAIssE,SAASt2C,GAGxBznD,EAAG+1B,QAGL,OAAO55B,O,yBAGT,SAAYsN,GACQ,UAAdA,EAAMgpB,MACRt2B,KAAKye,IAAIuyB,YAAY,mBACrB1jC,EAAMjH,oB,uBAIV,SAAUiF,GACR,IAAMu2F,EAAgBv2F,EAAGu2F,eAAiB9hG,OAAO8hG,cAC3Cp4F,EAAOo4F,EAAcrhF,QAAQ,QAC7BshF,EAAWD,EAAcrhF,QAAQ,aAEvC,GAAI/W,IAASq4F,EAAU,CACrBx2F,EAAGjF,iBACH,IAAMnC,EAAOuF,EAAKsC,QAAQ,kBAAmB,SAC7C/L,KAAKye,IAAIuyB,YAAY,cAAc,EAAO9sC,M,yBAO9C,WAAc,WACZlE,KAAK6gG,aAAap0F,SAAQ,SAAAizB,GACxB,GAAI,EAAK6gE,aACF7gE,EAAO4T,OAAU5T,EAAO4T,OAAS5T,EAAO4T,MAAM,EAAM,EAAK70B,MAAQ,GAAI,CACxE,IAAMnR,EAAQoyB,EAAOpyB,OAAS,QAC9BoyB,EAAO23D,IAAP,YAAgB/pF,IAAW,SAAApI,GACzBw6B,EAAOz9B,OAAO,EAAMy9B,GACpB,EAAKwgE,6B,uBAYf,SAAUxgE,GAAmB,IAAX92B,EAAW,uDAAJ,GACjBm5F,EAAOn5F,EAAKm5F,KACZ1K,EAAMnvF,SAAS0lB,cAAc,QAC7BimB,EAAOnU,EAAOmU,KACdjnC,EAAO8yB,EAAOrsB,YAAc,GAIlC,IAAK,IAAIijB,KAHT+gE,EAAIt0F,UAAY/C,KAAK68B,QAAQ7nB,OAC7B0qB,EAAO23D,IAAMA,EAEGzqF,EACdyqF,EAAIrhF,aAAasgB,EAAK1pB,EAAK0pB,IAGV,iBAARud,EACTwjD,EAAIvzF,UAAY+vC,EAEhBwjD,EAAI5vF,YAAYosC,GAGlB7zC,KAAKkhG,cAAcz5F,YAAY4vF,GAE3B0K,IACF/hG,KAAKsgG,QAAQ1yF,KAAK8xB,GAClB1/B,KAAKohG,iB,wBAQT,WACE,OAAOphG,KAAKsgG,U,uBAOd,WACE,OAAOtgG,KAAKye,IAAI2sC,iB,kBAQlB,SAAK9pB,GAAuB,IAAdz7B,EAAc,uDAAN,KACpB7F,KAAKye,IAAIuyB,YAAY1P,GAAS,EAAOz7B,K,yBAOvC,WACE,OAAO7F,KAAKugG,Y,wBAQd,SAAW16F,GAAwB,6DAAJ,GAAXvB,EAAe,EAAfA,OACVxB,EAAgB9C,KAAhB8C,GAAI2b,EAAYze,KAAZye,IAAK5a,EAAO7D,KAAP6D,GACXyxB,EAAM7W,EAAI2sC,eAEhB,GAAI91B,GAAOA,EAAI+1B,WAAY,CACzB,IAAMpoD,GAAQwf,EAAAA,EAAAA,UAAS5e,GACjBm9C,EAAOviC,EAAImP,cAAc,OACzB09B,EAAQh2B,EAAIi2B,WAAW,GAC7BD,EAAM02C,kBAEF9oF,EAAAA,EAAAA,UAASrT,GACXm7C,EAAKl9C,UAAY+B,EACRA,GACTm7C,EAAKv5C,YAAY5B,GAGnBmY,MAAMlc,UAAUs+C,MAAMwkB,KAAK5jB,EAAK5H,YAAY3sC,SAAQ,SAAAw1F,GAClD32C,EAAM42C,WAAWD,MAGnB3sE,EAAIqsE,kBACJrsE,EAAIssE,SAASt2C,GACbznD,EAAG+1B,QAECt1B,GAAUrB,IACZA,EAAMsnB,KAAK,eAAe,WACxB,IAAM43E,EAAQl/F,EAAM6E,KAAN,WAAey3F,EAAf,MAAgC,GACzC4C,IACLr/F,EAAGgS,YAAYqtF,GACfA,EAAMC,iBAAiB7C,OAEzBt8F,EAAMyB,QAAQ,iB,EAjSDq7F,GCjFrB,SACE5/F,YAAa,OAIbkiG,cAAe,EAGf/B,QAAS,CAAC,OAAQ,SAAU,YAAa,gBAAiB,OAAQ,S,qkBCkCpE,IAAMgC,EAAW,oDAEjB,mBACE,IAAI9rD,EAEE+rD,EAAc,WAClB,IAAM5rF,EAAQ6/B,EAAQ7/B,MAChBixB,EAAO,UACbjxB,EAAMqJ,IAAM4nB,EACZjxB,EAAMoJ,KAAO6nB,EACbjxB,EAAMC,QAAU,QAGlB,MAAO,CACLo0C,UAAW,KAOX7mD,KAAM,iBAEN+L,UAVK,WAWH,OAAOlQ,KAAK0C,QAQdU,KAnBK,WAmBW,IAAXwF,EAAW,uDAAJ,GACJlG,EAAS,OAAK+M,GAAa7G,GAC3BhG,EAAOF,EAAOG,aAUpB,OARID,IACFF,EAAOvC,YAAcyC,EAAOF,EAAOvC,aAGrCH,KAAK0C,OAASA,EACd1C,KAAK2C,IAAMD,EAAOvC,YAClBH,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAKsgG,QAAU59F,EAAO49F,SAAW,IAC5BvnE,EAAAA,EAAAA,YACLyd,EAAUtuC,SAAS0lB,cAAc,QACzB7qB,UAAR,UAAuBH,EAAvB,uBAA0CA,EAA1C,UACA5C,KAAKwiG,QAAQt6F,SAAS0lB,cAAc,SAGpCje,EAAAA,EAAAA,IAAG6mC,EAAS,aAAa,SAAAtxC,GAAC,OAAIA,EAAEiH,qBACzBnM,MAPeA,MAUxBwS,QAzCK,WAyCK,iBACR,UAAAxS,KAAKyiG,iBAAL,SAAgBjwF,UAChB,UAAAxS,KAAKgrD,iBAAL,mBAAgBx4C,eAAhB,iBACAgkC,EAAU,EACV,CAAC,YAAa,UAAW,KAAM,SAAU,YAAa,UAAU97B,KAAI,SAAAtQ,UAC3D,EAAKA,OAShB4H,WAvDK,SAuDM1G,GACT,IAAMqM,EAASrM,EAAGrI,MAAMzB,IAAI,UAC5Bg1C,EAAQ7/B,MAAM4d,cAAgB,MAC9BguE,IACA5qF,EAAOiM,aAAanc,YAAY+uC,IASlCgsD,QApEK,SAoEG3+F,GACN,IAAM4+F,EAAcziG,KAAdyiG,UACE3/F,EAA+B9C,KAA/B8C,GAAIH,EAA2B3C,KAA3B2C,IAAK49F,EAAsBvgG,KAAtBugG,UAAW79F,EAAW1C,KAAX0C,OACtBg+F,EAAqBlqD,EACrB8pD,EAAUtgG,KAAKsgG,UAAL,OAAoB59F,EAAO49F,SACrCzjE,EAAU,CACd0jE,UAAW,GAAF,OAAK59F,EAAL,aACTqS,OAAQ,GAAF,OAAKrS,EAAL,UACN48B,OAAQ,GAAF,OAAK58B,EAAL,UACN69F,SAAU,GAAF,OAAK79F,EAAL,YACRgG,SAAU,GAAF,OAAKhG,EAAL,aA0BV,OAvBK8/F,GAWHA,EAAU3/F,GAAKA,EACf2/F,EAAUxC,MAAMp8F,KAXhB4+F,EAAY,IAAI1C,EAAe,CAC7Bj9F,GAAAA,EACAe,GAAAA,EACAg5B,QAAAA,EACAyjE,QAAAA,EACAC,UAAAA,EACAG,mBAAAA,IAEF1gG,KAAKyiG,UAAYA,GAMfA,EAAUlC,YACZvgG,KAAKugG,UAAYkC,EAAUlC,WAGzBkC,EAAUnC,UACZtgG,KAAKsgG,QAAUmC,EAAUnC,SAGpBmC,GAgET57F,IAxKK,SAwKD1C,GAAmB,MAAbu7B,EAAa,uDAAJ,GACjBA,EAAOv7B,KAAOA,EACd,UAAAnE,KAAKyiG,iBAAL,SAAgB9B,UAAUjhE,EAAQ,CAAEqiE,KAAM,KAW5CvgG,IArLK,SAqLD2C,GAAM,MACJlC,EAMJ,OALA,UAAAjC,KAAKyiG,iBAAL,SAAgB5B,aAAap0F,SAAQ,SAAAizB,GAC/BA,EAAOv7B,MAAQA,IACjBlC,EAASy9B,MAGNz9B,GAOT4N,OAnMK,WAmMI,MACP,iBAAO7P,KAAKyiG,iBAAZ,aAAO,EAAgB5B,cAWzB39F,OA/MK,SA+MEiB,GACL,IAAMm8F,EAAUtgG,KAAK6P,SACf6vB,EAAS1/B,KAAKwB,IAAI2C,GAExB,GAAIu7B,EAAQ,CACV,IAAM23D,EAAM33D,EAAO23D,IACb5nE,EAAQ6wE,EAAQ3rF,QAAQ+qB,GAC9B23D,EAAI/0E,WAAWC,YAAY80E,GAC3BiJ,EAAQpqE,OAAOzG,EAAO,GAGxB,OAAOiQ,GAOTvP,aAjOK,WAkOH,OAAOqmB,GAOTksD,eAzOK,WA0OH,IAEM/qF,EAFS3X,KAAP8C,GAEUtB,IAAI,UACdmV,EAAU6/B,EAAV7/B,MACFwa,EAAMxZ,EAAO4a,wBAAwBvyB,KAAKilC,OAAQuR,EAAS,CAC/DlpC,MAAO,sBACPyS,KAAM,IAERpJ,EAAMqJ,KAAOmR,EAAInR,KAAO,GAPb,KAQXrJ,EAAMoJ,MAAQoR,EAAIpR,MAAQ,GARf,MAiBP5B,OA5PD,SA4PQhb,EAAM4mD,EAAKnhD,GAAM,oIAC5B,EAAKq8B,OAAS9hC,EAAKU,GACXmnD,EAAkB,EAAlBA,UAAWloD,EAAO,EAAPA,GACbe,EAAKV,EAAK2nD,uBAEhBtU,EAAQ7/B,MAAMC,QAAU,GALI,SAMLo0C,EAAYA,EAAU7sC,OAAOta,EAAIkmD,GAAO,EAAKy4C,QAAQ3+F,GAAIsa,OAAOvV,GAN3D,cAMtB+5F,EANsB,OAQxB7/F,IACFmhB,WAAW,EAAKy+E,eAAer/F,KAAK,GAAO,GAC3CP,EAAG2S,IAAI6sF,EAAU,EAAKI,eAAgB,GACtC5/F,EAAG6M,GAAG2yF,EAAU,EAAKI,eAAgB,GACrC5/F,EAAG4B,QAAQ,aAAcvB,EAAMw/F,IAZL,kBAerBA,GAfqB,8CAwB9BvvF,QApRK,SAoRGjQ,EAAM4mD,GACZ,IAAQjnD,EAAO9C,KAAP8C,GACFkoD,EAAYhrD,KAAKgrD,UACnBnnD,EAAKV,EAAK2nD,uBAEVE,EACFA,EAAU53C,QAAQvP,EAAIkmD,GAEtBA,GAAOA,EAAI32C,UAGbmvF,IACIz/F,IACFA,EAAG2S,IAAI6sF,EAAUtiG,KAAK0iG,eAAgB1iG,MACtC8C,EAAG4B,QAAQ,cAAevB,EAAM4mD,Q,wPCzVxC,SAEE5pD,YAAa,OAIbuS,SAAU,GAGV6iB,UAAW,GAGXq0D,OAAQ,CAAC,CAAEzlF,KAAM,SAAW,CAAEA,KAAM,UAAY,CAAEA,KAAM,oBAIxDy+F,WAAY,EAMZC,aAAc,EAGdC,QACE,uFAGFC,SACE,qQAGFC,UACE,+LAGFC,WACE,+IAGFC,cACE,iKAgDF17F,OAAQ,EAUR27F,eAAgB,EAGhBliG,QAAQ,G,sgBChGWmiG,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLj/F,KAAM,GACN2O,MAAO,M,qBAQX,WACE,OAAO9S,KAAKwB,IAAI,U,sBAOlB,WACE,OAAOxB,KAAKwB,IAAI,UAAYxB,KAAKwpC,c,EArBhB45D,CAAcvhG,EAAAA,GAyBnCuhG,EAAMthG,UAAUC,YAAc,O,qcC9B9B,I,QAAM6vF,EAAY,kBAEGyR,EAAAA,SAAAA,I,yHACnB,WACE,IAAQ1gG,EAAuB3C,KAAvB2C,IAAKM,EAAkBjD,KAAlBiD,MAAOP,EAAW1C,KAAX0C,OACdoQ,EAAQ7P,EAAMzB,IAAI,UAAY,GAEpC,mCACcmB,EADd,8BACqCA,EADrC,kEAEcA,EAFd,qCAE6CmQ,EAF7C,qCAGcnQ,EAHd,2BAGkCA,EAHlC,iDAIMD,EAAOwgG,cAJb,2B,oBASF,WACE,MAAO,CACL,0BAA2B,YAC3B,0BAA2B,eAC3B,2BAA4B,eAC5B,2BAA4B,gB,wBAIhC,WAAmB,IAAR3gG,EAAQ,uDAAJ,GACPG,EAASH,EAAEG,QAAU,GAC3B1C,KAAK0C,OAASA,EACd1C,KAAKL,OAAS4C,EAAE5C,OAChBK,KAAKyE,KAAOlC,EAAEkC,MAAQ,KACtBzE,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAKgD,SAAShD,KAAKiD,MAAO,gBAAiBjD,KAAKkwD,gB,wBAOlD,WAKE,OAJKlwD,KAAKymE,UACRzmE,KAAKymE,QAAUzmE,KAAK6D,GAAGkD,cAAc,oBAGhC/G,KAAKymE,U,0BAOd,WACE,IAAQ3jE,EAAO9C,KAAP8C,GACF2jE,EAAUzmE,KAAKqmE,aACrBI,EAAQmrB,IAAa,EACrBnrB,EAAQ7sC,QACR92B,GAAMA,EAAGopD,WAAW,K,wBAQtB,WACE,IAAMjpD,EAAQjD,KAAKiD,MACbwjE,EAAUzmE,KAAKqmE,aACfvzD,EAAQ2zD,EAAQ1wD,YAChBjT,EAAK9C,KAAK8C,GACVurC,EAAKvrC,GAAMA,EAAGtB,IAAI,mBAIxB,GAHAilE,EAAQmrB,IAAa,EACrB9uF,GAAMA,EAAGopD,WAAW,GAEhB7d,EAAI,CACN,IAAMlqC,EAAOkqC,EAAGu0D,WAAW9vF,GAEvBu7B,EAAG7sC,IAAI2C,GACTsiE,EAAQ+sB,UAAYvwF,EAAMzB,IAAI,SAE9ByB,EAAMU,IAAI,CAAEQ,KAAAA,EAAM2O,MAAAA,O,0BASxB,WACE,IAAQ7P,EAAUjD,KAAViD,MACRA,EAAMU,IAAI,UAAWV,EAAMzB,IAAI,a,uBAQjC,WACExB,KAAKL,OAAO2jG,eAAetjG,KAAKiD,S,0BAOlC,WACE,IAAQA,EAAuBjD,KAAvBiD,MAAO0B,EAAgB3E,KAAhB2E,IAAKjC,EAAW1C,KAAX0C,OACZsgG,EAA0BtgG,EAA1BsgG,UAAWC,EAAevgG,EAAfugG,WACbM,EAAO5+F,EAAImD,KAAK,qBAElB7E,EAAMzB,IAAI,WACZ+hG,EAAKr/F,KAAK8+F,GACVr+F,EAAIsD,YAAY,YAEhBs7F,EAAKr/F,KAAK++F,GACVt+F,EAAIC,SAAS,a,oBAIjB,WACE,IAAMjC,EAAM3C,KAAK2C,IACXC,EAAO5C,KAAK4C,KAIlB,OAHA5C,KAAK2E,IAAIT,KAAKlE,KAAK+D,YACnB/D,KAAK2E,IAAIiI,KAAK,QAAd,UAA0BjK,EAA1B,eAAoCC,EAApC,aACA5C,KAAKkwD,eACElwD,S,EA7HUqjG,CAAqBr/F,EAAAA,M,scCCrBw/F,EAAAA,SAAAA,I,yHACnB,YAAiE,IAAtDC,EAAsD,EAAtDA,UAAWC,EAA2C,EAA3CA,UAAWX,EAAgC,EAAhCA,SAAUD,EAAsB,EAAtBA,QAASngG,EAAa,EAAbA,IAAKC,EAAQ,EAARA,KACvD,gCACWD,EADX,wBAC4BA,EAD5B,sCAEaA,EAFb,2BAEiCA,EAFjC,0BAEqD+gG,EAFrD,mCAGa/gG,EAHb,8BAGoCA,EAHpC,gDAIgBA,EAJhB,4DAKoBC,EALpB,iBAKiCA,EALjC,6CAMoBA,EANpB,uDAOwBD,EAPxB,yFASsBC,EATtB,oDAUwBA,EAVxB,8HAgBWD,EAhBX,gCAgBoCC,EAhBpC,qCAiBaD,EAjBb,6DAkBeA,EAlBf,gDAmBcA,EAnBd,6BAmBoCA,EAnBpC,oBAmBmDA,EAnBnD,8CAoBMmgG,EApBN,gDAsBiBngG,EAtBjB,oBAsBgCA,EAtBhC,8EAuBMogG,EAvBN,yDA0BcpgG,EA1Bd,4CA2BgBA,EA3BhB,uBA2BiC8gG,EA3BjC,uCA4BgB9gG,EA5BhB,6C,oBAgCF,WACE,MAAO,CACL,uBAAwB,eACxB,mBAAoB,cACpB,wBAAyB,YACzB,qBAAsB,eACtB,0BAA2B,e,wBAI/B,WAAmB,WAARJ,EAAQ,uDAAJ,GACbvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtCH,KAAK4C,KAAO5C,KAAK0C,OAAOG,cAAgB,GACxC7C,KAAK+C,UAAY/C,KAAK2C,IAAM,OAC5B3C,KAAK2jG,aAAe3jG,KAAK2C,IAAM,SAC/B3C,KAAK4jG,YAAc5jG,KAAK2C,IAAM,UAC9B3C,KAAK4pF,OAAS5pF,KAAK0C,OAAOknF,QAAU,GACpC,IAAQ9mF,EAAO9C,KAAK0C,OAAZI,GACF2B,EAAOzE,KAAKyC,WAClBzC,KAAK0D,OAAS1D,KAAK0C,OAAOI,GAC1B,IAAMulB,EAAK9lB,EAAE5C,OACbK,KAAKL,OAAS0oB,EACdroB,KAAK8C,GAAKA,EACV9C,KAAK80F,kBAAmB/kF,EAAAA,EAAAA,UAAS/P,KAAK80F,iBAAiBzxF,KAAKrD,OAC5DA,KAAK6jG,WAAY9zF,EAAAA,EAAAA,UAAS/P,KAAK6jG,UAAUxgG,KAAKrD,OAC9C,IAAM8jG,EAAS,6CACTC,EAAY,wCAClB/jG,KAAKgD,SAASF,EAAIghG,EAAQ9jG,KAAK80F,kBAC/B90F,KAAKgD,SAASF,EAAI,sBAAuB9C,KAAK80F,kBAC9C90F,KAAKgD,SAASF,EAAIihG,EAAW/jG,KAAKgkG,qBAClChkG,KAAKgD,SAASF,EAAI,iCAAkC9C,KAAK6jG,WACzD7jG,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKikG,QAChCjkG,KAAKgD,SAASyB,EAAM,QAASzE,KAAKkkG,eAClClkG,KAAKgD,SAASyB,EAAM,SAAUzE,KAAKmkG,YACnCnkG,KAAKgD,SACHqlB,EAAGxY,SACHwY,EAAGjjB,OAAOkuC,OACVvjC,EAAAA,EAAAA,WAAS,kBAAM,EAAKq0F,mBAEtBpkG,KAAKiJ,mB,uBAGP,WACE,IASI0N,EATI7T,EAAO9C,KAAP8C,GACFY,EAAS1D,KAAKqkG,YACdC,EAAOxhG,EAAGtB,IAAI,eAEd+zB,EAAYv1B,KAAKukG,mBAAmB,CAAE37F,KAD/B,CAAE47F,WAAY,KAErBlxD,EAAQxwC,EAAGtB,IAAI,SACfo8C,EAAY96C,EAAGw/C,kBACfmiD,EAAiB,GACjBhtE,EAAO6sE,EAAK9iG,IAAI+zB,EAAW+d,EAAOsK,IAAc0mD,EAAKz9F,IAAI0uB,EAAW+d,EAAOsK,GAGjF59C,KAAK0kG,aAAaj4F,SAAQ,SAAA/I,GACxB,IAAMihG,EAAgBL,EAAK9hD,UAAU9+C,EAAO+pB,QAAS,CACnD6lB,MAAAA,EACAsK,UAAAA,IAEFjnC,EAAQguF,EAAc7kF,WACtB6kF,EAAcziD,SAAS,IACvBuiD,EAAe72F,KAAK+2F,MAGtBhuF,GAAS8gB,EAAKvX,SAASvJ,GACvB7T,EAAG4B,QAAQ,qBACX5B,EAAG4B,QAAQ,uBAAwB,CACjC8hB,UAAW9iB,EACX6xB,UAAAA,EACAqoB,UAAAA,EACAnmB,KAAAA,EACAgtE,eAAAA,EACAnxD,MAAAA,M,wBASJ,SAAWrwC,GACTjD,KAAK4kG,mB,oBAQP,SAAO3hG,GACLjD,KAAK6kG,aAAa5hG,K,yBAQpB,WACEjD,KAAK8kG,QAAQ/tF,IAAI,CAAEH,QAAS,SAC5B5W,KAAK+kG,OAAOn2D,OAAOhV,U,uBAQrB,WACE55B,KAAK8kG,QAAQ/tF,IAAI,CAAEH,QAAS,KAC5B5W,KAAK+kG,OAAOl9F,OAAOuB,IAAI,M,0BAQzB,SAAalE,GACO,KAAdA,EAAEsnC,SACJtnC,EAAEmB,iBACFrG,KAAKglG,UAAUhlG,KAAK+kG,OAAO37F,QACJ,KAAdlE,EAAEsnC,SACXxsC,KAAKilG,c,yBAIT,WACE,IAAM3xD,EAAQtzC,KAAK8C,GAAGoiG,WAChBC,EAAWnlG,KAAKw/C,YACtB2lD,GAAYA,EAAS/7F,IAAIkqC,K,8BAQ3B,WAAmC,6DAAJ,GAAZ8xD,EAAgB,EAAhBA,QACjBplG,KAAKqlG,gBAAgBD,K,6BAGvB,SAAgBA,GACd,IAAIE,EAAOF,GAAWplG,KAAK0kG,aAEvBnvE,EAAY,GAUhB,OAXA+vE,GAAOtqF,EAAAA,EAAAA,SAAQsqF,GAAQA,EAAO,CAACA,KAGnBA,EAAKr+F,SACfsuB,EAAYv1B,KAAKukG,mBAAmB,CAAEa,QAASE,IAC/CtlG,KAAK6jG,UAAU,CAAE0B,eAAgBhwE,KAGnCv1B,KAAKyC,WAAWgP,MAAM8jB,GACtBv1B,KAAK4kG,eAAeU,GACpBtlG,KAAKL,OAAOqQ,cACLulB,I,gCAGT,WAAgD,6DAAJ,GAAvB6vE,EAA2B,EAA3BA,QAA2B,IAAlBx8F,KAAAA,OAAkB,MAAX,GAAW,EACxC08F,EAAOF,GAAWplG,KAAK0kG,aAC7B,OAAO1kG,KAAKL,OAAO6lG,qBAAqBF,EAAM18F,K,8BAGhD,WAA0B,MACxB,OAAO,EAAA5I,KAAKL,QAAO8lG,SAAZ,qB,uBAGT,WACE,IAEIC,EAFIC,EAAmC3lG,KAAnC2lG,WAAYjjG,EAAuB1C,KAAvB0C,OAAQD,EAAezC,KAAfyC,WACtBiB,EAAS1D,KAAKqkG,YAGpB,GAAI3gG,GAAUhB,EAAOygG,gBAAkB1gG,EAAWwE,OAAQ,CACxD,IAAM0P,EAAQjT,EAAOoc,WACrB4lF,IAAYlvE,EAAAA,EAAAA,SAAQ7f,GAGtBgvF,GAAcA,EAAWD,EAAW,OAAS,Y,uBAG/C,WACE,OAAO1lG,KAAK0D,OAAO0I,gB,wBAGrB,WACE,OAAOpM,KAAK0D,OAAOm8B,mB,4BAQrB,SAAen8B,GACb,IAAMZ,EAAK9C,KAAK8C,GACV65B,EAAc75B,GAAMA,EAAGoN,UAAU,oBACjC0G,EAAU5W,KAAKyC,WAAWwE,QAAU01B,EAAc,GAAK,OAC7D38B,KAAK4lG,aAAa7uF,IAAI,UAAWH,GACjC5W,KAAK6lG,eAAeniG,K,iCAGtB,WACE1D,KAAK6lG,eAAe7lG,KAAK0kG,gB,4BAQ3B,SAAeU,GAAS,WAChBU,EAAQ9lG,KAAK6D,GAAGkD,cAAc,mBAC9B9E,EAAS,GACXqjG,EAAOF,GAAWplG,KAAK0kG,cAC3BY,GAAOtqF,EAAAA,EAAAA,SAAQsqF,GAAQA,EAAO,CAACA,IAE1B74F,SAAQ,SAAA/I,GAAM,OAAIzB,EAAO2L,KAAK,EAAKm4F,UAAUriG,OAClDoiG,IAAUA,EAAMhiG,UAAY7B,EAAO8f,KAAK,OACxC/hB,KAAKgmG,gB,uBAGP,SAAUtiG,GACR,IAEIzB,EAFIU,EAAoB3C,KAApB2C,IAAKD,EAAe1C,KAAf0C,OAAQI,EAAO9C,KAAP8C,GACb+/F,EAAiCngG,EAAjCmgG,aAAcM,EAAmBzgG,EAAnBygG,eAGtB,IAAIjqF,EAAAA,EAAAA,UAASxV,GACXzB,GAASiC,EAAAA,EAAAA,GAAH,0DAAuBvB,EAAee,OACvC,CACL,IAAM4xB,EAAM5xB,GAAUA,EAAOlC,KAAOkC,EAAO86C,eAC3C,IAAKlpB,EAAK,OACV,IAAMC,EAAYD,EAAI2wE,eAChB3yD,EAAQxwC,EAAGtB,IAAI,SACf0kG,EAAQxiG,EAAO+pB,OACjBvpB,EAAAA,EAAAA,GADU,6GACUvB,EAAee,EAAO8lC,UACzB7mC,EAAee,EAAO+pB,SACvC,GAEJxrB,GADAA,EAASjC,KAAKyC,WAAWs8C,cAAcxpB,KACrBrxB,EAAAA,EAAAA,GAAH,2DAAuBvB,EAAgBV,GAAkByB,EAAOlC,IAAI,iBAAmB0kG,EACtGjkG,EAASkhG,GAAkB+C,EAAQA,EAAQjkG,EAC3CA,GAAUqxC,GAAQpvC,EAAAA,EAAAA,GAAH,6DAAuBvB,EAAkB2wC,GAAiB,GACzErxC,EAAS4gG,EAAeA,EAAa,CAAE5gG,OAAAA,EAAQqxC,MAAAA,EAAO5vC,OAAAA,IAAYzB,EAGpE,OAAOA,GAAU,iBAAJ,OAAoBU,EAApB,iBAA+BV,EAA/B,a,0BAQf,SAAaqJ,GACX,IAAQxI,EAAO9C,KAAP8C,GACA+C,EAAUyF,EAAG5H,OAAbmC,MACR/C,EAAGa,IAAI,QAASkC,K,uBAQlB,SAAUA,GACR,IAAMiN,EAAQjN,EAAMY,OACfqM,IACL9S,KAAKL,OAAOwmG,YAAY,CAAErzF,MAAAA,IAC1B9S,KAAKilG,e,0BAWP,SAAahiG,GAA0B,IAAnBmE,EAAmB,uDAAN,KACzBC,EAAWD,EACXy1B,EAAU78B,KAAK+hE,aACfz6D,EAAW,IAAI+7F,EAAa,CAChCpgG,MAAAA,EACAP,OAAQ1C,KAAK0C,OACb+B,KAAMzE,KAAKyC,WACX9C,OAAQK,KAAKL,SACZ6H,SAAS3D,GAIZ,OAFAwD,EAAWA,EAASI,YAAYH,GAAYu1B,EAAQ70B,OAAOV,GAEpDA,I,2BAOT,WAAgB,WACR0R,EAAO9Q,SAASC,yBAChB00B,EAAU78B,KAAK+hE,aACrBllC,EAAQ90B,QACR/H,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAK4hG,aAAa5hG,EAAO+V,MACvD6jB,EAAQ70B,OAAOgR,K,wBAQjB,WACE,OAAOhZ,KAAK2E,IAAImD,KAAK,sB,uBAQvB,WACE,IAAK9H,KAAKomG,QAAS,CACjB,IAAMviG,EAAK7D,KAAK2E,IAAImD,KAAK,iBACzB9H,KAAKomG,QAAUviG,EAAG,IAAMA,EAE1B,OAAO7D,KAAKomG,U,wBAQd,WAEE,OADKpmG,KAAKqmG,WAAUrmG,KAAKqmG,SAAWrmG,KAAK2E,IAAImD,KAAK,IAAM9H,KAAK4jG,cACtD5jG,KAAKqmG,W,0BAGd,WACE,IAAQ1mG,EAAeK,KAAfL,OAAQmD,EAAO9C,KAAP8C,GACVwjG,EAAcxjG,EAAGkD,EAAE,8BACnBxD,EAAU7C,EACb6/C,YACA9kC,KAAI,SAAA44B,GACH,IAAMxgC,EAAQhQ,EAAGkD,EAAH,iCAA+BstC,EAAM3tC,MAAS2tC,EAAMizD,YAAcjzD,EAAM3tC,GACtF,gCAAyB2tC,EAAM3tC,GAA/B,cAAsCmN,EAAtC,gBAEDiP,KAAK,IAEFojF,EAAWnlG,KAAKw/C,YACtB2lD,GAAYA,EAASjhG,KAAT,6BAAkCoiG,EAAlC,oBAAyD9jG,IACrExC,KAAKgmG,gB,oBAGP,WACE,IAAQljG,EAAmC9C,KAAnC8C,GAAIH,EAA+B3C,KAA/B2C,IAAKC,EAA0B5C,KAA1B4C,KAAMF,EAAoB1C,KAApB0C,OAAQiC,EAAY3E,KAAZ2E,IAAKd,EAAO7D,KAAP6D,GAC5B2D,EAA8B9E,EAA9B8E,OACFg/F,EAAU,CACdzD,SAFoCrgG,EAAtBqgG,SAGdD,QAHoCpgG,EAAZogG,QAIxBY,UAAW5gG,EAAGkD,EAAE,yBAChBy9F,UAAW3gG,EAAGkD,EAAE,4BAChBpD,KAAAA,EACAD,IAAAA,EACAkB,GAAAA,GAEFc,EAAIT,KAAKlE,KAAK+D,SAASyiG,IACvB,IAAMC,EAAYj/F,GAAUA,EAAOg/F,GAUnC,OATAC,GAAaA,IAAc5iG,GAAMc,EAAIoD,QAAQC,OAAOy+F,GACpDzmG,KAAK+kG,OAASpgG,EAAImD,KAAK,gBACvB9H,KAAK8kG,QAAUngG,EAAImD,KAAK,cACxB9H,KAAK0mG,SAAW/hG,EAAImD,KAAK,IAAMnF,EAAM,UACrC3C,KAAK2lG,WAAahhG,EAAImD,KAAK,qBAC3B9H,KAAK+kG,OAAOl9F,OACZ7H,KAAKokG,eACLpkG,KAAKkkG,gBACLv/F,EAAIiI,KAAK,QAAT,UAAqB5M,KAAK+C,UAA1B,YAAuCH,EAAvC,kBAAqDA,EAArD,cACO5C,S,EA5ZUwjG,CAAsBx/F,EAAAA,M,qkBC8E3C,IAAM2zB,EAAO,SAAAqlB,GAAG,OAAI9jC,EAAAA,EAAAA,UAAS8jC,IAAkB,KAAVA,EAAI,IACnC2pD,EAAU,SAAA3pD,GAAG,OAAI9jC,EAAAA,EAAAA,UAAS8jC,IAAkB,KAAVA,EAAI,IAE/BjvC,EAAQ,WACRC,EAAQ,GAAH,OAAMD,EAAN,KACLI,EAAQ,GAAH,OAAMH,EAAN,OACLE,EAAW,GAAH,OAAMF,EAAN,UACRI,EAAW,GAAH,OAAMJ,EAAN,UACRK,EAAiB,GAAH,OAAMD,EAAN,WACdE,EAAW,GAAH,OAAMN,EAAN,UACR44F,EAAU,GAAH,OAAM54F,EAAN,SAEpB,mBACE,cACKgB,EAAAA,GADL,IAGE7K,KAAM,kBAENo+C,SAAAA,EAAAA,EAEA9D,UAAAA,EAAAA,EAEAr5C,OAAQ,CACNyI,IAAKE,EACLmB,OAAQhB,EACRrH,IAAKsH,EACLjL,OAAQkL,EACRe,aAAcd,EACdilC,MAAOszD,EACP3lG,OAAQqN,GAUVlL,KA1BF,WA0BkB,WAAX+iB,EAAW,uDAAJ,GACVnmB,KAAKs8C,aAAa7sC,EAAU0W,GAC5B,IAAMzjB,EAAS1C,KAAKkQ,YACdpN,EAAKJ,EAAOI,GACZF,EAAOF,EAAOG,aAEhBD,IACFF,EAAOvC,YAAcyC,EAAOF,EAAOvC,aAIrCH,KAAK6N,IAAM,IAAI4wC,EAAAA,EAAU/7C,EAAO6yB,WAChCv1B,KAAKoU,SAAW,IAAIqqC,EAAAA,EAAU,GAAI,CAAE37C,GAAAA,EAAIJ,OAAAA,IACxC1C,KAAK4pF,OAAS,IAAIpkF,EAAAA,WAAW9C,EAAOknF,OAAQ,CAAE3mF,MAAOmgG,IACrDpjG,KAAKiD,MAAQ,IAAIpB,EAAAA,EAAM,CAAEglG,OAAQnkG,EAAOygG,eAAgBtuE,OAAO,IAC/D70B,KAAK0P,aAAa,CAChBitC,YAAa,CAAC38C,KAAK4pF,OAAQ5pF,KAAKoU,UAChCwoC,UAAW,CAAC,CAAEC,OAAQ78C,KAAK4pF,OAAQt8E,MAAOtN,KAAKoF,OAAOkuC,UAExDxwC,EAAG6M,GAAG,gBAAgB,SAACwC,EAAGtM,GAAJ,OAAc/C,EAAG4B,QAAQkiG,EAAS/gG,MACxD7F,KAAKiD,MAAM0M,GAAG,iBAAiB,SAACwC,EAAGtM,GAAJ,OAAc/C,EAAG4B,QAAQ,gBAAiBmB,MACzE,IAAM7C,EACJ,4GAGF,OAFAhD,KAAKiD,MAAMD,SAASF,EAAIE,GAAU,kBAAM,EAAK8jG,cAEtC9mG,MAGT8mG,UAAU/2F,EAAAA,EAAAA,WAAS,WACjB/P,KAAKgQ,iBAGPA,YA1DF,SA0DcpH,GACV5I,KAAK8C,GAAG4B,QAAQ1E,KAAKoF,OAAOnE,OAAQjB,KAAKmQ,aAAavH,KAGxDuH,aA9DF,WA8D0B,IAAXvH,EAAW,uDAAJ,GACVqH,EAAcrH,EAAdqH,UACR,MAAO,CACL25E,OAAQ5pF,KAAKw/C,YACbprC,SAAUpU,KAAKoM,cACf6D,UAAAA,IAYJ+B,WA/EF,WAgFIhS,KAAK+8C,aACL/8C,KAAKgQ,eAGP1L,OApFF,SAoFSuB,GAAkB,IAAX+C,EAAW,uDAAJ,GACbw8F,EAAUpnF,MAAMhD,QAAQnV,GAASA,EAAQ,CAACA,GAC1CiV,EAAW9a,KAAK8C,GAAGtB,IAAI,gBAAgB8C,OAAO8gG,EAASx8F,GACvDm+F,EAAU/mG,KAAKgnG,aACf79F,EAAM2R,EACTkb,QAAO,SAAA5rB,GAAC,OAAIA,KACZsQ,KAAI,SAAA4a,GAAG,OACNH,EAAAA,EAAAA,aAAYG,KAAa2xE,EAAAA,EAAAA,QAAO3xE,KAASA,EAAI9zB,IAAI,gBAA9B8zB,EAAsDA,EAAIstB,wBAGjF,OADAmkD,GAAWA,EAAQjS,iBAAiB,CAAEsQ,QAASj8F,IACxCnJ,MAGT4+C,YAjGF,SAiGcz6C,GAA6B,IAAvByE,EAAuB,uDAAhB,GAAIs+F,EAAY,uDAAJ,GAC/BtrF,EAAQ,EAAH,GAAQhT,IAEbuQ,EAAAA,EAAAA,UAAShV,GACXyX,EAAQzX,EAERyX,EAAMzX,KAAOA,EAGXwzB,EAAK/b,EAAMzX,OACbyX,EAAMzX,KAAOyX,EAAMzX,KAAKwiD,OAAO,GAC/B/qC,EAAMta,KAAOihD,EAAAA,EAAAA,SACJokD,EAAQ/qF,EAAMzX,QACvByX,EAAMzX,KAAOyX,EAAMzX,KAAKwiD,OAAO,IAG7B/qC,EAAM9I,QAAU8I,EAAMzX,OACxByX,EAAMzX,KAAOnE,KAAK4iG,WAAWhnF,EAAM9I,QAGrC,IAAMq0F,EAAQvrF,EAAMzX,KACdzB,EAAS1C,KAAKkQ,YACdrC,EAAM7N,KAAK6P,SACXwuB,EAAW8oE,EAAQnnG,KAAKwB,IAAI2lG,EAAOvrF,EAAMta,MAAQuM,EAAIgD,MAAM+K,GAAO,GAExE,OAAKyiB,GACIxwB,EAAIhH,IAAI+U,EAAR,OAAoBsrF,GAApB,IAA2BxkG,OAAAA,MAMtC0kG,YAjIF,SAiIcjjG,GAAkC,IAA5B7C,EAA4B,uDAArBihD,EAAAA,EAAAA,WAQvB,OAPI5qB,EAAKxzB,IACPA,EAAOA,EAAKwiD,OAAO,GACnBrlD,EAAOihD,EAAAA,EAAAA,SACEokD,EAAQxiG,KACjBA,EAAOA,EAAKwiD,OAAO,IAGd3mD,KAAK6P,SAASgB,MAAM,CAAE1M,KAAAA,EAAM7C,KAAAA,IAAQ,IAgB7CuF,IAzJF,SAyJM+U,GAAkB,WAAXhT,EAAW,uDAAJ,GACVs+F,GAAQhuF,EAAAA,EAAAA,UAAS0C,GAAS,GAAKhT,EAErC,OAAIoS,EAAAA,EAAAA,SAAQY,GACHA,EAAMlB,KAAI,SAAAhO,GAAI,OAAI,EAAKkyC,YAAYlyC,EAAM9D,EAAMs+F,MAE/ClnG,KAAK4+C,YAAYhjC,EAAOhT,EAAMs+F,IAezCtiG,SA9KF,SA8KWi4B,GAAS,WACVsS,EAAQ,GAOd,OALIj2B,EAAAA,EAAAA,UAAS2jB,KACXA,EAAUA,EAAQp2B,OAAOhF,MAAM,MAGjCo7B,EAAQpwB,SAAQ,SAAAtI,GAAI,OAAIgrC,EAAMvhC,KAAK,EAAKgxC,YAAYz6C,OAC7CgrC,GAYT3tC,IAlMF,SAkMM2C,EAAM7C,GAAM,WAEd,IAAI0Z,EAAAA,EAAAA,SAAQ7W,GAAO,CACjB,IAAMlC,EAAS,GAGf,OAFkBkC,EAAKuW,KAAI,SAAAhO,GAAI,OAAI,EAAK06F,YAAY16F,MAAOspB,QAAO,SAAAtpB,GAAI,OAAIA,KAChED,SAAQ,SAAAC,GAAI,OAAIzK,EAAO0S,QAAQjI,GAAQ,GAAKzK,EAAO2L,KAAKlB,MAC3DzK,EAEP,OAAOjC,KAAKonG,YAAYjjG,EAAM7C,IAAS,MAa3C4B,OAvNF,SAuNSm7B,EAAUz1B,GACf,OAAO5I,KAAK8Q,SAASutB,EAAUz1B,IAUjCy+F,SAlOF,SAkOWxhG,GAEP,OADA7F,KAAK8C,GAAGukG,SAASxhG,GACV7F,MAOTklG,SA3OF,WA4OI,OAAOllG,KAAK8C,GAAGoiG,YAOjB1lD,UAnPF,WAoPI,cAAWx/C,KAAK4pF,OAAOt5E,SAazBg3F,UAjQF,SAiQY1d,EAAQhhF,GAChB,OAAO5I,KAAK4pF,OAAOn4E,MAAMm4E,EAAQhhF,IAUnCwD,YA5QF,WA6QI,OAAOpM,KAAKunG,eASdpB,YAtRF,SAsRcvqF,GACV,IAAMuzB,EAAQnvC,KAAK6G,IAAI+U,GAEvB5b,KAAK8C,GAAG+8B,iBAAiBpzB,SAAQ,SAAA/I,GAC/BA,EAAO86C,eAAe33C,IAAIsoC,OAW9Bm0D,eArSF,SAqSiBjlE,GACbr+B,KAAK8C,GAAG+8B,iBAAiBpzB,SAAQ,SAAAylC,IAC9B7T,EAAS78B,IAAI,cAAgB0wC,GAAOA,EAAIsM,eAAet7C,OAAOm7B,OAWnEmpE,mBAlTF,WAmTI,OAAOxnG,KAAK8C,GAAGtB,IAAI,gBAAgBq+B,kBASrC4nE,kBA5TF,SA4ToB5hG,GAChB7F,KAAKkQ,YAAYizF,eAAiBt9F,EAClC7F,KAAKiD,MAAMU,IAAI,CAAEkjG,OAAQhhG,KAO3B6hG,kBArUF,WAsUI,OAAO1nG,KAAKkQ,YAAYizF,gBAgB1BP,WAtVF,SAsVaz+F,GACT,IAAQy+F,EAAe5iG,KAAKkQ,YAApB0yF,WACR,OAAOA,EAAaA,EAAWz+F,GAAQo+C,EAAAA,EAAAA,WAAoBp+C,IAS7DqD,OAjWF,SAiWS+tB,GACwBv1B,KAArB8C,GAAR,IAAYkkG,EAAiBhnG,KAAjBgnG,aACNtkG,EAAS1C,KAAKkQ,YACdrM,EAAKmjG,GAAgBA,EAAanjG,GASxC,OARA7D,KAAKoU,SAAS3C,MAAM8jB,GACpBv1B,KAAKgnG,aAAe,IAAIxD,EAAc,CACpC3/F,GAAAA,EACApB,WAAYzC,KAAKoU,SACjBzU,OAAQK,KACR0C,OAAAA,IAGK1C,KAAKgnG,aAAax/F,SAAS3D,IAGpC2O,QAhXF,WAiXI,IAAQw0F,EAAwBhnG,KAAxBgnG,aAAwBhnG,KAAViD,MAChBwP,gBACNzS,KAAKw9C,YACLwpD,GAAgBA,EAAa9jG,SAC7BlD,KAAKgnG,aAAe,IAQtBO,YA7XF,WA8XI,OAAOvnG,KAAKwlG,qBAAqBxlG,KAAK8C,GAAG+8B,mBAG3C2lE,qBAjYF,SAiYuB9wF,GAAuB,IAAX9L,EAAW,uDAAJ,GAChC2sB,EAAY7gB,EAAWgG,KAAI,SAAAC,GAAG,OAAIA,EAAI6jC,cAAgB7jC,EAAI6jC,eAAempD,SAAS/+F,MAAOotB,OAAOoN,SACtG,OAAOpjC,KAAKylG,SAAL,MAAAzlG,MAAA,OAAiBu1B,KAG1BkwE,SAtYF,WAsYoB,kCAANvkE,EAAM,yBAANA,EAAM,gBAChB,OAAKA,EAAKj6B,OACU,IAAhBi6B,EAAKj6B,OAAqBi6B,EAAK,GACf,IAAhBA,EAAKj6B,OAAqBi6B,EAAK,GAAGlL,QAAO,SAAAtpB,GAAI,OAAIw0B,EAAK,GAAGvsB,QAAQjI,IAAS,KAEvEw0B,EAAKkf,MAAM,GAAGhE,QAAO,SAACC,EAAK3vC,GAAN,OAAe,EAAK+4F,SAASppD,EAAK3vC,KAAOw0B,EAAK,IAJjD,Q,+iBCpe/B,IAYqBqhB,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLp+C,KAAM,GACN2O,MAAO,GACPxR,KAjBa,EAkBbi+B,QAAQ,EACRqoE,SAAS,EACTC,WAAW,EACXhzE,OAAO,K,wBAIX,SAAWjZ,GAAkB,IAAXhT,EAAW,uDAAJ,GACvB,EAAwBA,EAAhBlG,OAAAA,OAAR,MAAiB,GAAjB,EACMyB,EAAOnE,KAAKwB,IAAI,QAChBsR,EAAQ9S,KAAKwB,IAAI,SAElB2C,EAEO2O,GACV9S,KAAK2D,IAAI,QAASQ,GAFlBnE,KAAK2D,IAAI,OAAQmP,GAKnB,IAAMg1F,EAAa9nG,KAAKwB,IAAI,QACpBohG,EAAelgG,EAAfkgG,WACFmF,EAAUnF,EAAaA,EAAWkF,GAAcvlD,EAASqgD,WAAWkF,GAC1E9nG,KAAK2D,IAAI,OAAQokG,GACjB/nG,KAAK8C,GAAKJ,EAAOI,K,kBAGnB,WACE,OA3CY,IA2CL9C,KAAKwB,IAAI,U,qBAGlB,WACE,OAhDe,IAgDRxB,KAAKwB,IAAI,U,yBAGlB,WAAuB,IAAXoH,EAAW,uDAAJ,GACTk2C,EAAWl2C,EAAXk2C,OACF36C,EAAOnE,KAAKwB,IAAI,QAClBmB,EAAM,GAEV,OAAQ3C,KAAKwB,IAAI,SACf,KAzDa,EA0DXmB,EAAM,IACN,MACF,KA3DU,EA4DRA,EAAM,IAIV,OAAOA,GAAOm8C,EAASA,EAAO36C,GAAQA,K,sBAWxC,WACE,OAAOnE,KAAK88B,gB,sBAWd,WACE,OAAO98B,KAAKwB,IAAI,W,sBAYlB,SAASsR,GACP,OAAO9S,KAAK2D,IAAI,QAASmP,K,uBAO3B,WACE,OAAO9S,KAAKwB,IAAI,Y,uBAOlB,SAAUqE,GACR,OAAO7F,KAAK2D,IAAI,SAAUkC,K,oBAG5B,WAAkB,IAAX+C,EAAW,uDAAJ,GACJ9F,EAAO9C,KAAP8C,GACJwO,EAAMzP,EAAAA,EAAAA,UAAAA,OAAAA,KAA4B7B,KAAM,CAAC4I,IACvC6G,GAAWxN,EAAAA,EAAAA,QAAOjC,KAAM,YAE9B,GAAI8C,GAAMA,EAAGoN,UAAU,iBAAkB,EACvCzD,EAAAA,EAAAA,SAAQgD,GAAU,SAAC5J,EAAOywB,GACpBhlB,EAAIglB,KAASzwB,UACRyL,EAAIglB,MAIXhlB,EAAIwB,QAAUxB,EAAInN,aACbmN,EAAIwB,MAGb,IAAMk1F,GAASnmF,EAAAA,EAAAA,MAAKvQ,GAAKrK,OAEV,IAAX+gG,GAAgB12F,EAAInN,OACtBmN,EAAMA,EAAInN,MAGG,IAAX6jG,GAAgB12F,EAAInN,MAAQmN,EAAIhQ,OAClCgQ,EAAMtR,KAAK88B,eAIf,OAAOxrB,M,EAxIUixC,CAAiB1gD,EAAAA,GA4ItC0gD,EAASzgD,UAAUC,YAAc,OAGjCwgD,EAAS0lD,WA3JU,EA4JnB1lD,EAASwW,QA3JO,EAmKhBxW,EAASqgD,WAAa,SAAAz+F,GACpB,MAAO,UAAGA,GAAOsC,OAAOsF,QAAQ,sBAAuB,O,yjBCpKzD,IAAMm8F,EAAU,SAAVA,EAAWC,EAAMC,GACrB,OAAOD,EAAK/rD,QACV,SAACC,EAAK3vC,EAAM+3E,GACV,OAAOpoC,EAAI5d,OAAOypE,EAAQC,EAAK/nD,MAAMqkC,EAAI,GAAhB,UAAuB2jB,GAAvB,OAA8B17F,OAEzD,CAAC07F,KAIgB3pD,EAAAA,SAAAA,I,wHACnB,SAAQ7xC,GACN,gBAAUA,EAAKzI,KAAf,YAAuByI,EAAKtL,MAAQihD,EAAAA,EAAAA,c,0BAGtC,WACE,OAAOvsB,EAAAA,EAAAA,QAAOh2B,KAAKsQ,QAAQ,SAAA5D,GAAI,OAAIA,EAAKlL,IAAI,YAAckL,EAAKlL,IAAI,gB,sBAGrE,WAA8B,6DAAJ,GAAfgjG,EAAmB,EAAnBA,WACT,OAAOxuE,EAAAA,EAAAA,QAAOh2B,KAAKsQ,QAAQ,SAAA5D,GAAI,OAAKA,EAAKlL,IAAI,cAAYw0B,QAAO,SAAAtpB,GAAI,OAAK83F,EAAa93F,EAAKlL,IAAI,UAAY,O,2BAG7G,SAAciB,GAAuB,IAAXmG,EAAW,uDAAJ,GACzB3G,EAAS,GACTwC,EAAOhC,GAAczC,KAE3B,OADAyE,EAAKgI,SAAQ,SAAA4xB,GAAQ,OAAIp8B,EAAO2L,KAAKywB,EAASvB,YAAYl0B,OACnD3G,EAAO8f,KAAK,IAAItb,S,yBAGzB,WAAuB,IAAXmC,EAAW,uDAAJ,GACTy/F,EAAuBz/F,EAAvBy/F,YAAansD,EAAUtzC,EAAVszC,MACjBj6C,EAAS,GACPy1B,EAAO13B,KAAK0a,KAAI,SAAA0H,GAAC,OAAIA,EAAE0a,YAAYl0B,MAAOkZ,OAUhD,OARIumF,EACF3wE,EAAKjrB,SAAQ,SAAC6oB,EAAKmvD,GACjBxiF,EAASA,EAAOw8B,OAAOypE,EAAQxwE,EAAK0oB,MAAMqkC,EAAI,GAAInvD,OAGpDrzB,EAASy1B,EAGJwkB,EAAQj6C,EAASomG,EAAcpmG,EAAO8f,KAAK,KAAO9f,EAAO8f,KAAK,Q,EAjCpD08B,CAAkBj5C,EAAAA,YAqCvCi5C,EAAU38C,UAAUmB,MAAQs/C,EAAAA,G,+GClD5B,SAGE58C,GAAI,OAGJrE,KAAM,QAGNgnG,UAAU,EAGVC,UAAU,EAgBVC,UAAU,EAIVC,gBAAiB,EAMjBC,QAAS,SAAA5+F,GAAI,OAAIA,GAKjBiI,OAAQ,SAAAjI,GAAI,OAAIA,GAGhBtH,QAAS,CACPmmG,MAAO,CACLryE,IAAK,aAGLsyE,YAAY,GAEdC,OAAQ,CAENvoG,QAAS,GAGTwoG,SAAU,GAGVC,QAAS,GAKTC,iBAAiB,EAQjBC,aAAc,GAEdzoG,YAAa,UAObkoG,QAAS,SAAA5+F,GAAI,OAAIA,GAMjBiI,OAAQ,SAAA9P,GAAM,OAAIA,M,kCCvFHinG,EAAAA,W,8FACnB,WAAYp/F,GAAZ,mFAAkBlB,EAAlB,+BAAyB,GACnB5I,KAAKmpG,SAASvgG,GAAM,IACtBm2E,aAAaqqB,QAAQxgG,EAAK0tB,IAAK1sB,KAAKqkB,UAAUnkB,IAFlD,gD,qFAMA,yGAAWlB,EAAX,+BAAkB,GACZ3G,EAAS,GAETjC,KAAKmpG,SAASvgG,GAAM,KACtB3G,EAAS2H,KAAKC,MAAMk1E,aAAasqB,QAAQzgG,EAAK0tB,MAAQ,OAJ1D,kBAOSr0B,GAPT,gD,mEAUA,WAAyB,IAAhB2G,EAAgB,uDAAT,GAAI0gG,EAAK,uCACvB,GAAI1gG,EAAKggG,eAAgB7vE,EAAAA,EAAAA,YAAagmD,cAAe,CACnD,GAAIuqB,EAAK,MAAM,IAAIx7F,MAAM,8BACzB,OAAO,EAGT,OAAO,M,EAvBUo7F,G,6lBCCAK,EAAAA,W,8FACnB,WAAYz/F,GAAZ,0FAAkBlB,EAAlB,+BAAyB,GAAzB,SACQ5I,KAAKwpG,QAAQ5gG,EAAKkgG,SAAU9oG,KAAKypG,QAAQ7gG,EAAMkB,GAAOlB,GAD9D,gD,qFAIA,WAAWA,GAAX,iFACe5I,KAAKwpG,QAAQ5gG,EAAKmgG,QAAS/oG,KAAKypG,QAAQ7gG,GAAOA,GAD9D,wF,mEAIA,SAAQpC,GAA4B,IAAvBoV,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC9B,OAAO6B,EAAAA,EAAAA,GAAMjE,EAAKoV,GACflR,MAAK,SAAAvB,GACJ,IAAMlH,EAASkH,EAAIM,OAEnB,OAD0C,IAA3BN,EAAIwB,OAAS,IAAO,GACrB1I,EAASA,EAAOyI,KAAKE,QAAQC,WAE5CH,MAAK,SAAAjB,GACJ,IAAMigG,EAAWjgG,IAAQyP,EAAAA,EAAAA,UAASzP,GAClC,OAAOb,EAAKogG,iBAAmBU,EAAW9/F,KAAKC,MAAMJ,GAAQA,O,qBAInE,WAAyB,IAMnBQ,EANErB,EAAiB,uDAAV,GAAIkB,EAAM,uCACjB6/F,EAAW/gG,EAAKogG,gBAChB1oG,EAAUsI,EAAKtI,SAAW,GAC1BiK,EAAY3B,EAAKqgG,cAAgB,GACjC5+F,EAAU,mBACVu/F,EAAW,eAWjB,IARI9kF,EAAAA,EAAAA,aAAYxkB,EAAQ+J,MACtB/J,EAAQ+J,GAAW,mBAGjBya,EAAAA,EAAAA,aAAYxkB,EAAQspG,KAAcD,IACpCrpG,EAAQspG,GAAY,mCAGlB9/F,EACF,GAAI6/F,EACF1/F,EAAOL,KAAKqkB,UAAUnkB,QAItB,IAAK,IAAIwsB,KAFTrsB,EAAO,IAAIC,SAEKJ,EACdG,EAAKjC,OAAOsuB,EAAKxsB,EAAKwsB,IAK5B,IAAMr0B,EAAS,CACbuI,OAAQP,EAAO,OAAS,MACxBzJ,YAAaoI,EAAKpI,YAClBF,QAAAA,EACA2J,KAAAA,GAGF,cACKhI,IACC4C,EAAAA,EAAAA,YAAW0F,GAAaA,EAAUtI,GAAUsI,O,EA3DjCg/F,G,qkBCwDrB,IAAMM,EAAa,gBACbC,EAAa,gBACbC,EAAW,cACXC,EAAa,gBAEbC,EAAgB,QAChBC,EAAiB,SAEvB,mBACE,cACKl7F,EAAAA,GADL,IAGE7K,KAAM,iBAcNf,KAjBF,WAiBoB,IAAbV,EAAa,uDAAJ,GACZ1C,KAAKs8C,aAAa7sC,EAAU/M,GAC5B,IAAMmG,EAAI7I,KAAKkQ,YAMf,OALIrH,EAAEshG,WAAUthG,EAAEvH,KAAO,GACzBtB,KAAKoqG,SAAW,GAChBpqG,KAAK6G,IAAIojG,EAAe,IAAIf,EAAargG,IACzC7I,KAAK6G,IAAIqjG,EAAgB,IAAIX,EAAc1gG,IAC3C7I,KAAKqqG,WAAWxhG,EAAEvH,MACXtB,MAOTsqG,WAhCF,WAiCI,QAAStqG,KAAKkQ,YAAYo4F,UAO5BiC,YAxCF,SAwCc1kG,GAEV,OADA7F,KAAKkQ,YAAYo4F,WAAaziG,EACvB7F,MAOTwqG,mBAjDF,WAkDI,OAAOxqG,KAAKkQ,YAAYu4F,iBAO1BgC,mBAzDF,SAyDqB5kG,GAEjB,OADA7F,KAAKkQ,YAAYu4F,gBAAkB5iG,EAC5B7F,MAmBT6G,IA9EF,SA8EMvF,EAAMopG,GAER,OADA1qG,KAAKoqG,SAAS9oG,GAAQopG,EACf1qG,MAQTwB,IAxFF,SAwFMF,GACF,OAAOtB,KAAKoqG,SAAS9oG,IAAS,MAOhCqpG,YAhGF,WAiGI,OAAO3qG,KAAKoqG,UAOdQ,WAxGF,WAyGI,OAAO5qG,KAAKkQ,YAAY26F,gBAO1BR,WAhHF,SAgHa/oG,GAET,OADAtB,KAAKkQ,YAAY26F,eAAiBvpG,EAC3BtB,MAGT8qG,kBArHF,WAsHI,OAAO9qG,KAAKwB,IAAIxB,KAAK4qG,eAQvBG,kBA9HF,SA8HoBzpG,GAChB,OAAOtB,KAAKgrG,kBAAkB1pG,IAY1ByP,MA3IR,SA2IcjH,GAAoB,kJAAdtH,EAAc,+BAAJ,GACpBs9C,EAAK,EAAKgrD,oBACVliG,EAFwB,OAEZ,EAAKoiG,qBAAwBxoG,GACzCgmG,EAAW,EAAKyC,qBAChBC,EAAe,EAAKF,kBAAkBf,GAJd,kBAOtB,EAAKkB,OAAOrrD,EAAIl3C,EAAMkB,GAPA,eAQ5B0+F,GAR4B,uCAQT,EAAK2C,OAAO3C,EAAU0C,EAAc,IAR3B,sEAUxB1C,EAVwB,kCAWpB,EAAK2C,OAAO3C,EAAU0C,EAAcphG,GAXhB,oDAiBvBA,GAjBuB,6DA4B1BmH,KAvKR,WAuK2B,gJAAdzO,EAAc,+BAAJ,GACbs9C,EAAK,EAAKgrD,oBACVliG,EAFiB,OAEL,EAAKoiG,qBAAwBxoG,KACzC4oG,EAAkB,EAAKH,sBAHN,iCAOM,EAAKE,OAAOC,EAAiB,EAAKJ,kBAAkBf,IAP1D,UAOfoB,EAPe,QAQhB70E,EAAAA,EAAAA,SAAQ60E,GARQ,2CAUX,EAAKC,gBAVM,QAWjBrpG,EAASopG,EAXQ,6DAgBlBppG,EAhBkB,kCAiBN,EAAKkpG,OAAOrrD,EAAIl3C,GAjBV,QAiBrB3G,EAjBqB,wCAoBhBA,GAAU,IApBM,6DAuBzBqpG,cA9LF,WA+LI,IAAQxoG,EAAO9C,KAAP8C,GACF0lG,EAAWxoG,KAAKurG,cAEtB,OAAO,IAAI3gG,SAAQ,SAACzB,EAAKqiG,IACnB3mG,EAAAA,EAAAA,YAAW2jG,GACbA,EAASr/F,EAAKqiG,EAAK1oG,MAAAA,OAAX,EAAWA,EAAIkR,aAEvBy3F,QAAQ3oG,MAAAA,OAAD,EAACA,EAAIkD,EAAE,2BAA6BmD,IAAQqiG,QAKzDD,YA3MF,WA4MI,OAAOvrG,KAAKkQ,YAAYs4F,UAG1ByC,mBA/MF,WAiNI,OADiBjrG,KAAKurG,eACHvrG,KAAK4qG,eAAiBV,GAAkBlqG,KAAKwB,IAAIyoG,IAGhEkB,OApNR,SAoNeT,EAAS9hG,EAAMkB,GAAM,wIAC1BwB,EAAKxB,EAAO,QAAU,OADI,EAEJ,EAAKoG,YAAzBw4F,EAFwB,EAExBA,QAAS32F,EAFe,EAEfA,OAGjB,EAAKmG,QAAQ5M,EAAIxB,GAEZ4gG,EAP2B,yCAQvB5gG,GAAQ,IARe,mBAYxB2B,EAZwB,UAYf,EAAK3I,UAZU,aAYf,EAASkR,aAEpBlK,EAd0B,yBAeb4+F,GAfa,uCAeKA,EAAQ5+F,EAAM2B,GAfnB,oEAegC3B,EAfhC,WAexB4hG,EAfwB,UAgBjB9iG,EAAK8/F,SAhBY,uCAgBM9/F,EAAK8/F,QAAQgD,EAASjgG,GAhB5B,oEAgByCigG,EAhBzC,eAgB5BA,EAhB4B,eAiBtBhB,EAAQ35F,MAAM26F,EAAS9iG,GAjBD,QAkB5B3G,EAAS6H,EAlBmB,yCAoBb4gG,EAAQz5F,KAAKrI,GApBA,WAoB5B3G,EApB4B,OAqB5BA,EAAS,EAAK0pG,YAAY1pG,GArBE,KAsBlB2G,EAAKmJ,QAtBa,uCAsBInJ,EAAKmJ,OAAO9P,EAAQwJ,GAtBxB,oEAsBqCxJ,EAtBrC,WAsB5BA,EAtB4B,UAuBlB8P,GAvBkB,uCAuBDA,EAAO9P,EAAQwJ,GAvBd,oEAuB2BxJ,EAvB3B,QAuB5BA,EAvB4B,aAyB9B,EAAK2pG,QAAQtgG,EAAIrJ,GACjB,EAAK6c,MAAMxT,EAAIrJ,GA1Be,wDA4B9B,EAAK6mD,QAAQx9C,EAAb,MA5B8B,sCAgCzBrJ,GAhCyB,6DAmClC0pG,YAvPF,WAuPyB,IAAX7hG,EAAW,uDAAJ,GACXpH,EAAS1C,KAAKkQ,YACd0uD,EAAM,IAAIC,OAAJ,WAAen8D,EAAOiD,KAC5B1D,EAAS,GAEf,IAAK,IAAI4pG,KAAW/hG,EAAM,CACxB,IAAMgiG,EAAWD,EAAQ9/F,QAAQ6yD,EAAK,IACtC38D,EAAO6pG,GAAYhiG,EAAK+hG,GAG1B,OAAO5pG,GAGT+oG,kBApQF,SAoQoB1pG,GAChB,IAAMoB,EAAS1C,KAAKkQ,YACduR,EAAUngB,GAAQtB,KAAK4qG,aAC7B,OAAOloG,EAAOF,QAAQif,IAAY,IAOpCvJ,QA9QF,SA8QUoiF,EAAKxwF,GACX,IAAQhH,EAAO9C,KAAP8C,GACJA,IACFA,EAAG4B,QAAQmlG,GACXvP,GAAOx3F,EAAG4B,QAAH,UAAcmlG,EAAd,YAA4BvP,GAAOxwF,KAQ9C8hG,QA1RF,SA0RUtR,EAAKxwF,GACX,IAAQhH,EAAO9C,KAAP8C,GACJA,IACFA,EAAG4B,QAAQolG,GACXhnG,EAAG4B,QAAH,UAAcolG,EAAd,YAA4BxP,GAAOxwF,GACnChH,EAAG4B,QAAH,kBAAsB41F,GAAOxwF,KAQjCgV,MAvSF,SAuSQw7E,EAAKxwF,GACT,IAAQhH,EAAO9C,KAAP8C,GACJA,IACFA,EAAG4B,QAAQqlG,GACXzP,GAAOx3F,EAAG4B,QAAH,UAAcqlG,EAAd,YAA0BzP,GAAOxwF,KAQ5Cg/C,QAnTF,SAmTUwxC,EAAKxwF,GACX,IAAQhH,EAAO9C,KAAP8C,GACJA,IACFA,EAAG4B,QAAQslG,EAAYlgG,GACvBwwF,GAAOx3F,EAAG4B,QAAH,UAAcslG,EAAd,YAA4B1P,GAAOxwF,GAC1C9J,KAAK8e,MAAMw7E,EAAKxwF,KASpBiiG,YAjUF,WAmUI,OADgB/rG,KAAK8qG,qBACH9qG,KAAKkQ,YAAYq4F,UAGrC/1F,QAtUF,WAuUIxS,KAAKw9C,YACLx9C,KAAKoqG,SAAW,Q,4VC5YtB,SAEEngB,QAAS,CACP,CACE9lF,KAAM,UACNiL,MAAM,EACNo7E,WAAY,CAAC,UAAW,QAAS,WAAY,MAAO,QAAS,OAAQ,WAEvE,CACErmF,KAAM,OACNiL,MAAM,EACNo7E,WAAY,CACV,iBACA,YACA,kBACA,cACA,gBACA,QACA,aACA,YACA,cACA,eAGJ,CACErmF,KAAM,YACNiL,MAAM,EACNo7E,WAAY,CAAC,QAAS,SAAU,YAAa,aAAc,SAAU,YAEvE,CACErmF,KAAM,aACNiL,MAAM,EACNo7E,WAAY,CACV,cACA,YACA,cACA,iBACA,QACA,cACA,aACA,gBAGJ,CACErmF,KAAM,cACNiL,MAAM,EACNo7E,WAAY,CAAC,mBAAoB,gBAAiB,SAAU,aAAc,eAE5E,CACErmF,KAAM,QACNiL,MAAM,EACNo7E,WAAY,CAAC,UAAW,gBAM5B93E,SAAU,GAGVvS,YAAa,MAGbc,QAAQ,EAKR+qG,iBAAiB,EAIjBC,kBAAkB,EAIlBC,mBAAmB,EAKnBC,cAAc,EAIdC,iBAAiB,EAIjBC,cAAe,CAAC,QAAS,W,4mCCtENC,EAAAA,SAAAA,I,2HACnB,WAAkC,IAAvB1wF,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC5B5I,KAAK8C,GAAK8F,EAAK9F,GACf,IAAM6C,EAAK3F,KAAKwB,IAAI,OAAS,GACvB2C,EAAOnE,KAAKwB,IAAI,SAAWxB,KAAKwB,IAAI,UAAY,IACrDxB,KAAKwB,IAAI,aAAexB,KAAK2D,IAAI,YAAaQ,GAAQwB,GAAIoG,QAAQ,KAAM,MACzE,IAAMwqB,EAAOv2B,KAAKwB,IAAI,aACrBxB,KAAKwB,IAAI,OAASxB,KAAK2D,IAAI,KAAM4yB,IACjCpyB,GAAQnE,KAAK2D,IAAI,QAAQk6D,EAAAA,EAAAA,YAAWtnC,GAAMxqB,QAAQ,KAAM,MACzD/L,KAAK2P,GAAG,SAAU3P,KAAKusG,aACvBD,EAASE,SAASxsG,KAAM4b,EAAOhT,K,6BAGjC,WAAkB,QAChB,iBAAO5I,KAAKyC,kBAAZ,iBAAO,EAAiBmG,YAAxB,aAAO,EAAuB6jG,a,yBAGhC,SAAY71E,GAAc,WAAXhuB,EAAW,uDAAJ,GACZ9F,EAAO9C,KAAP8C,GACFurC,EAAKvrC,EAAGtB,IAAI,gBACZ2C,EAAOnE,KAAKwpC,UACZkjE,EAAU9jG,EAAKwf,QACfviB,EAAQ6mG,EAAU,GAAK1sG,KAAK2sG,eAAe/jG,GAC3C6jG,EAAazsG,KAAK4sG,kBAElBC,EAAK7sG,KAAKy8C,oBACVqwD,GAAOjrF,EAAAA,EAAAA,MAAKgrF,GAAIzwD,QAAO,SAACzd,EAAGv0B,GAE/B,OADAu0B,EAAEv0B,GAAK,EAAKsX,SAAStX,GACdu0B,IACN,IAEGouE,EAAS,GAAH,gBAAOlrF,EAAAA,EAAAA,MAAK7hB,KAAKgtG,oBAAjB,CAAqC,QAC3CC,GAAUprF,EAAAA,EAAAA,MAAKgrF,GACfK,GAActkG,EAAKukG,OAASV,IAAeC,GAAWK,EAAO5qF,MAAK,SAAAsd,GAAC,OAAIwtE,EAAQt4F,QAAQ8qB,IAAM,MAC7F/F,EAAW15B,KAAKwB,IAAI,YACpBgkB,EAAS,CAAEkxC,SAAU12D,KAAM8sG,KAAAA,EAAMD,GAAAA,EAAIhnG,MAAAA,EAAO+C,KAAAA,GAClDylC,EAAG++D,QAAQ/+D,EAAGjpC,OAAOioG,eAAgB7nF,GACrCkU,GAAYA,EAASlU,GACrB0nF,GAAcltG,KAAKstG,kBAAL,UAAyBnpG,EAAO0B,GAAS+C,K,8BAGzD,SAAiB+N,EAAO/N,GAAM,MACtBylC,EAAE,UAAGruC,KAAK8C,UAAR,aAAG,EAAStB,IAAI,gBACxB6sC,MAAAA,GAAAA,EAAIk/D,gBAAJ,OAAyB52F,GAAzB,IAAgCipC,MAAOh3C,EAAKktB,aAAcltB,K,iBAG5D,SAAIgT,GAAkB,IAAXhT,EAAW,uDAAJ,GACZA,EAAK4kG,WAAU5kG,EAAKukG,MAAO,GAC/B,IAAQ33C,EAAqB5sD,EAArB4sD,QAAYnC,GAApB,OAA6BzqD,EAA7B,GAEA,OADAgT,EAAMgkC,OAASyT,EAAKv9B,aAAc0/B,GAC3Bx1D,KAAK2D,IAAIiY,EAAT,OAAqBy3C,GAArB,IAA2Bv9B,WAAYla,EAAMgkC,S,gBAGtD,SAAGhkC,GAAkB,IAAXhT,EAAW,uDAAJ,GACf5I,KAAK2D,IAAIiY,EAAT,OAAqBhT,GAArB,IAA2BukG,MAAM,O,kBAGnC,c,mBAMA,WACE,OAAOntG,KAAKwB,IAAI,Q,qBASlB,WACE,OAAOxB,KAAKwB,IAAI,U,qBAOlB,WACE,OAAOxB,KAAKwB,IAAI,c,sBASlB,WAAoB,MAAXoH,EAAW,uDAAJ,GACd,EAA0BA,EAAlBysD,OAAAA,OAAR,SACM1vD,EAAK3F,KAAKytB,QACVtpB,EAAOnE,KAAKwB,IAAI,SAAWxB,KAAKwB,IAAI,SAC1C,OAAQ6zD,IAAM,UAAIr1D,KAAK8C,UAAT,aAAI,EAASkD,EAAT,kCAAsCL,MAAUxB,I,sBASpE,WAAoB,IAAXyE,EAAW,uDAAJ,GACNg9E,EAAch9E,EAAdg9E,UACFx8E,EAAMpJ,KAAKwB,IAAI,SACrB,OAAQxB,KAAKytG,YAAe7nB,EAAqCx8E,EAAzBpJ,KAAK0tG,oB,sBAS/C,WAAoB,IAAX9kG,EAAW,uDAAJ,GACN+kG,EAAa/kG,EAAb+kG,SACFC,EAAcD,GAAY3tG,KAAK6tG,kBAC/BzkG,EAAMpJ,KAAKwB,IAAI,SACrB,QAAQsjB,EAAAA,EAAAA,aAAY1b,IAAgB,KAARA,IAAewkG,I,4BAO7C,WACE,OAAO5tG,KAAKytG,aAAeztG,KAAKytG,SAAS,CAAEE,UAAU,M,sBAavD,WAAoB,IAAX/kG,EAAW,uDAAJ,GACRzE,EAAOnE,KAAKwpC,UACZlT,EAAM1tB,EAAKklG,WAAYA,EAAAA,EAAAA,WAAU3pG,GAAQA,EAC/C,iBAAUmyB,EAAMt2B,KAAK2sG,eAAe/jG,M,6BAOtC,WACE,IAAM2zC,EAAMv8C,KAAKwB,IAAI,WACrB,iBAAWsjB,EAAAA,EAAAA,aAAYy3B,GAAav8C,KAAKwB,IAAI,YAAf+6C,K,qBAWhC,SAAQ12C,GAAkB,IAAX+C,EAAW,uDAAJ,GACdk4D,EAAmB,OAAVj7D,GAA4B,KAAVA,EAAe7F,KAAKgtG,kBAAoBhtG,KAAK+tG,aAAaloG,EAAO+C,GAClG,OAAO5I,KAAKguG,IAAIltC,EAAQl4D,K,uBAO1B,WACE,QAAS5I,KAAKwB,IAAI,a,mBASpB,WAAiB,IAAXoH,EAAW,uDAAJ,GACX5I,KAAKguG,IAAIhuG,KAAKgtG,kBAAd,OAAsCpkG,GAAtC,IAA4Cwf,SAAS,O,sBAOvD,WACE,IAAM3T,EAASzU,KAAKiuG,YACpB,OAAOx5F,EAASA,EAAOy5F,eAAeluG,MAAQA,KAAKytG,SAAS,CAAEE,UAAU,M,uBAO1E,WACE,OAAO3tG,KAAK4sG,mBAAqB,O,oBAOnC,WACE,QAAS5sG,KAAKwB,IAAI,U,0BAGpB,SAAaqE,EAAO+C,GAClB,OAAO5I,KAAKmuG,WAAWtoG,EAAO+C,K,6BAGhC,WACE,MAAO,CAAE/C,MAAO,M,sBAUlB,SAASA,GAAgC,IAAzB2K,EAAyB,uDAAd,EAAG5H,EAAW,uDAAJ,GAC7Bk4D,EAAS9gE,KAAKmuG,WAAWtoG,GACzBiwB,GAActlB,GACnBslB,GAAc91B,KAAK2D,IAAI,CAAEkC,WAAOiD,GAAa,CAAEgtB,WAAAA,EAAYtc,QAAQ,IACpExZ,KAAK2D,IAAIm9D,EAAT,GAAmBhrC,WAAAA,GAAeltB,M,+BAapC,SAAkB/C,EAAO2K,GAAqB,IAAX5H,EAAW,uDAAJ,GACxC5I,KAAK+5B,SAASl0B,EAAO2K,EAArB,OAAoC5H,GAApC,IAA0C49D,UAAW,O,wBAcvD,SAAW3gE,GAAkB,IAAX+C,EAAW,uDAAJ,GACjB3G,EAAS,CAAE4D,MAAAA,GACX0/D,EAAM,aAOZ,IALIrsD,EAAAA,EAAAA,UAASrT,KAAkC,IAAxBA,EAAM8O,QAAQ4wD,KACnCtjE,EAAO4D,MAAQA,EAAMkG,QAAQw5D,EAAK,IAAI9+D,OACtCxE,EAAO87C,UAAY,IAGhB/9C,KAAKwB,IAAI,kBAAoBoH,EAAK4H,SACrC,OAAOvO,EAGT,IAAMi/B,EAAO,GACTktE,EAAW,GAAH,OAAMnsG,EAAO4D,OACrBqiB,EAAQkmF,EAASz5F,QAAQ,KAAO,EAChCmxB,EAAMsoE,EAASC,YAAY,KACzBC,EAAeF,EAASz4E,UAAU,EAAGzN,EAAQ,GAWnD,GAVIomF,IAAcrsG,EAAOqsG,aAAeA,GACxCptE,EAAKtzB,KAAKsa,GAGN4d,GAAO,GACT5E,EAAKtzB,KAAKk4B,GAGZ7jC,EAAO4D,MAAQgmE,OAAO/pE,UAAU6zB,UAAUi0B,MAAMwkD,EAAUltE,GAEtDt4B,EAAK2lG,QAAS,CAChB,IAAMC,EAAMnhF,WAAWprB,EAAO4D,OAC9B5D,EAAOmC,KAAOnC,EAAO4D,MAAMkG,QAAQyiG,EAAK,IACxCvsG,EAAO4D,MAAQ2oG,EAGjB,OAAOvsG,I,4BAwCT,WAAqC,6DAAJ,GAAhBwsG,EAAoB,EAApBA,YACf,OAAQzuG,KAAKytG,YAAcgB,EAAczuG,KAAK0tG,kBAAoB1tG,KAAK0uG,iB,0BAWzE,SAAatlG,GACX,IAAMyhB,EAAK7qB,KAAKwB,IAAI,gBACd+6C,EAAMv8C,KAAK0tG,kBACb7nG,GAAQif,EAAAA,EAAAA,aAAY1b,GAAOpJ,KAAKwB,IAAI,SAAW4H,EAC7CqkG,IAAY3oF,EAAAA,EAAAA,aAAYjf,IAAoB,KAAVA,EAExC,GAAIA,GAAS02C,GAAO12C,IAAU02C,EAC5B,OAAOA,EAGT,GAAI1xB,GAAM4iF,EAAU,CAClB,IAAMkB,EAAqB,QAAP9jF,EAAA,WAAmBhlB,EAAMkG,QAAQ,KAAM,IAAvC,KAAgDlG,EACpEA,EAAQ,GAAH,OAAMglB,EAAN,YAAY8jF,EAAZ,KAOP,OAJIlB,GAAYztG,KAAKwB,IAAI,eACvBqE,EAAQ,GAAH,OAAMA,EAAN,gBAGAA,GAAS,K,+BAGlB,SAAkBA,GAChB7F,KAAK4uG,eAAiB/oG,I,6BAGxB,WACE,OAAO7F,KAAK4uG,gBAAkB,O,uBAGhC,WAAsB,IAAZtoG,EAAY,uDAAJ,GACV4hB,EAAQ5hB,EAAMqO,QAAQ,KAAO,EAC7BmxB,EAAMx/B,EAAM+nG,YAAY,KAE9B,MAAO,CACLlqG,KAAMmC,EAAMqvB,UAAU,EAAGzN,EAAQ,GAAGzhB,OACpCZ,MAAOgmE,OAAO/pE,UAAU6zB,UAAUi0B,MAAMtjD,EAAO,CAAC4hB,EAAO4d,GAAO,EAAIA,OAAMh9B,IAAYrC,U,+BAIxF,YAAkD,IAA9B/C,EAA8B,EAA9BA,OAAQ8iB,EAAsB,EAAtBA,UAAWyjE,EAAW,EAAXA,QAC/B/3C,EAAM1rB,GAAa9iB,EACzB,IAAKwuC,EAAK,OAAO,EAEjB,IAAMvsC,EAAK3F,KAAKytB,QACVipC,EAAW12D,KAAKwpC,UAChBqlE,EAAY7uG,KAAKwB,IAAI,aACrBstG,EAAW9uG,KAAKwB,IAAI,YACpButG,EAAiB/uG,KAAKwB,IAAI,kBAC1B6+D,EAAanuB,EAAI1wC,IAAI,cACrBwtG,EAAc98D,EAAI1wC,IAAI,oBACxBq8C,EAAW3L,EAAI1wC,IAAI,YAmBvB,IAfIwZ,EAAAA,EAAAA,SAAQ6iC,KACVA,EAAWA,EAASlpC,QAAQ+hD,IAAa,IAIvC17C,EAAAA,EAAAA,SAAQqlD,KACVxiB,EAAWwiB,EAAW1rD,QAAQ+hD,GAAY,GAIxCm4C,IACFhxD,GAAYn6C,GAAWsrG,IAAgBA,EAAYr6F,QAAQhP,IAAO,GAAKqpG,EAAYr6F,QAAQ+hD,IAAa,IAItGuzB,GAAW6kB,EAAU,CACvB,IAAMtkB,GAAa3oE,EAAAA,EAAAA,MAAKitF,GACxB7kB,EAAQx9E,SAAQ,SAAAwiG,GACdA,EAAOC,gBAAgBziG,SAAQ,SAAAxJ,GAC7B,IAAIm9B,EAAAA,EAAAA,UAASoqD,EAAYvnF,EAAM0C,IAAK,CAClC,IAAMwpG,EAASL,EAAS7rG,EAAM0C,IAC9Bk4C,EAAWA,IAAYzd,EAAAA,EAAAA,UAAS+uE,EAAQlsG,EAAMzB,IAAI,iBAO1D,GAAIutG,EAAgB,CAClB,IAAMt6F,EAAS+R,GAAaA,EAAU/R,SAChCuwD,EAAWvwD,GAAUA,EAAOF,QAClC,GAAIywD,EAAU,CACZ,IAAM7oD,GAAS4c,EAAAA,EAAAA,UAAWh5B,OAAOqtB,iBAAiB43C,GAAY,IAC9D58D,EAAAA,EAAAA,MAAK2mG,GAAgB,SAACI,EAAQz4C,GAC5B7Y,EAAWA,GAAY1hC,EAAOu6C,KAAat2B,EAAAA,EAAAA,UAAS+uE,EAAQhzF,EAAOu6C,YAGrE7Y,GAAW,EAIf,QAASA,M,EAzbQyuD,CAAiBzqG,EAAAA,G,6/BA6btCyqG,EAAS8C,eAAiB,SAAU14C,EAAU4jC,EAAK1+E,GAAkB,IAAXhT,EAAW,uDAAJ,GAC/D8tD,EAAS50D,UAAUu/B,WAAWuoB,MAAM0wC,EAAK,CACvC1+E,EADuC,OAGlChT,GAHkC,IAIrCymG,SAAU,OAKhB/C,EAASE,SAAW,SAAUhzC,EAAS59C,GAAkB,IAAXhT,EAAW,uDAAJ,IAClDA,EAAKymG,UAAY71C,EAAQp2D,KAAKwY,EAAOhT,IAGxC0jG,EAAStqG,YAAc,WACrB,OAAOC,EAAAA,EAAAA,QAAOjC,KAAK8B,UAAW,aAGhCwqG,EAASxqG,UAAU2N,SAAW,CAC5BtL,KAAM,GACNuyD,SAAU,GACVp1D,KAAM,GACNmO,SAAU,GACV6/F,KAAM,GACNzpG,MAAO,GACPguC,KAAM,GACNy6D,aAAc,GACd3jG,OAAQ,GACRuxE,SAAS,EACTqzB,YAAa,CAAC,UAAW,WACzB71E,SAAU,KAGV81E,KAAM,EAGNzxD,UAAW,EAOX8wD,UAAW,EAQXC,SAAU,KAIVC,eAAgB,MCngBX,IAAMU,EAAe,SAAAnuG,GAAI,MAAa,YAATA,GAA+B,WAATA,GAoCrCouG,EAAAA,SAAAA,I,yHACnB,WACE,cACKpD,EAAStqG,eADd,IAEE2tG,UAAU,EACVnlB,WAAY,GACZolB,UAAW,IACX7tF,KAAM,KACN8tF,UAAW,KACXC,QAAS,KACTN,MAAM,M,wBAIV,WAAkC,IAAvB5zF,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC5B0jG,EAAS8C,eAAe9C,EAAUtsG,KAAM4b,EAAOhT,GAC/C,IAAQ9F,EAAO9C,KAAP8C,GACF0nF,EAAa,IAAIulB,GAAW/vG,KAAKwB,IAAI,eAAiB,GAAI,CAAEsB,GAAAA,EAAI2pG,WAAYzsG,OAClFA,KAAK2D,IAAI,aAAc6mF,EAAY,CAAEhxE,OAAQ,IAC7CxZ,KAAKgD,SAASwnF,EAAY,SAAUxqF,KAAKgwG,gBACzC1D,EAASE,SAASxsG,KAAM4b,EAAOhT,K,2BAOjC,WACE,cAAW5I,KAAKwB,IAAI,cAAc8O,U,yBAQpC,SAAY3K,GACV,OAAO3F,KAAKwB,IAAI,cAAcw0B,QAAO,SAAAO,GAAI,OAAIA,EAAK9I,UAAY9nB,GAAM4wB,EAAKiT,YAAc7jC,KAAI,IAAM,O,2BAQnG,SAAc8pB,GACZ,OAAOzvB,KAAKwB,IAAI,cAAcsF,GAAG2oB,K,wBAOnC,WACE,QAASzvB,KAAKwB,IAAI,c,uBAapB,WAA2B,6DAAJ,GAAXyuG,EAAe,EAAfA,OACV,OAAOjwG,KAAKkvG,gBAAgB9yD,QAAO,SAACjzC,EAAKotB,GAGvC,OADAptB,EADY8mG,EAAS15E,EAAKiT,UAAYjT,EAAK9I,SAC3C,UAAc8I,EAAKo2E,kBACZxjG,IACN,M,0BAOL,WACE,OAAOnJ,KAAKkwG,sB,qBAOd,WACE,OAAOlwG,KAAKmwG,c,+BAUd,WAA6B,IAAXvnG,EAAW,uDAAJ,GACjBzE,EAAOnE,KAAKwpC,UACZznB,EAAO/hB,KAAKmwG,YACZL,EAAU9vG,KAAKwB,IAAI,WACrB2tG,EAASnvG,KAAKowG,YACdz5F,EAAQ,GAEZ,GAAIm5F,EACFn5F,EAAQm5F,EAAQX,EAAQ,CAAEptF,KAAAA,EAAM5d,KAAAA,EAAMuyD,SAAU12D,YAIhD,GAFAmvG,EAASnvG,KAAKowG,UAAU,CAAEH,QAAQ,IAE9BjwG,KAAKqwG,aACP15F,EAAQw4F,MACH,CACL,IAAMtpG,EAAQ7F,KAAKkvG,gBAChBx0F,KAAI,SAAAkc,GAAC,OAAIA,EAAE+1E,eAAe,CAAE8B,YAAa,OACzCz4E,OAAOoN,SACPrhB,KAAKA,GACRpL,GAAQ,UAAGxS,EAAO0B,GAiBtB,OAbI7F,KAAKqwG,aACP15F,EAAMxS,GAAQ,IAEdwS,EAAMxS,GAAQwS,EAAMxS,IAAS,GAC7BwS,EAAQ,OACHA,GACA3W,KAAKkvG,gBAAgB9yD,QAAO,SAACC,EAAK9lB,GAEnC,OADA8lB,EAAI9lB,EAAKiT,WAAa,GACf6S,IACN,MAIAzzC,EAAKklG,UACRlsF,OAAOC,KAAKlL,GAAOylC,QAAO,SAACjzC,EAAKmtB,GAE9B,OADAntB,EAAI2kG,UAAUx3E,IAAQ3f,EAAM2f,GACrBntB,IACN,IACHwN,I,+BAGN,WACE,OAAO,IAAIkoD,OAAJ,UAAc7+D,KAAKwB,IAAI,aAAvB,qB,4BAGT,SAAeo1B,GAAc,IAAXhuB,EAAW,uDAAJ,GACvB,IAAIA,EAAKukG,OAAQvkG,EAAK0nG,UAAtB,CAEA,IAAM7D,EAAazsG,KAAK4sG,kBACxB,GAAIH,EAAY,OAAOA,EAAWuD,eAAehwG,KAAM4I,GAEvD5I,KAAKuwG,sBAAsB3nG,EAAMguB,M,mCAGnC,WAAuC,IAAjBhuB,EAAiB,uDAAV,GAAI2tB,EAAM,uCACjC5f,EAAQ3W,KAAKwwG,oBAEjB,GAAIxwG,KAAKqwG,cAAgB95E,EAAM,CAC7B,IAAMpyB,EAAOoyB,EAAKiT,UAClB7yB,GAAQ,UAAGxS,EAAOwS,EAAMxS,IAG1BnE,KAAKstG,iBAAiB32F,EAAO/N,K,iBAG/B,SAAIgT,GAAkB,IAAXhT,EAAW,uDAAJ,GAEhB,OADA5I,KAAKywG,gBAAgBzwG,KAAK0wG,gBAAgB90F,EAAM/V,OAAQ+C,GACjD0jG,EAASxqG,UAAUksG,IAAIppC,KAAK5kE,KAAM4b,EAAOhT,K,sBAGlD,SAASA,GACP,OAAO5I,KAAKwwG,kBAAkB5nG,K,4BAGhC,WAA0B,IAAXA,EAAW,uDAAJ,GACpB,OAAI5I,KAAKqwG,cAAgBznG,EAAKwf,QAAgB,GAEvCpoB,KAAKwwG,oBAAoBxwG,KAAKwpC,YAAc,K,uBAGrD,WACE,IAAMznB,EAAO/hB,KAAKwB,IAAI,QACtB,OAAO0X,EAAAA,EAAAA,UAAS6I,GAAQA,EAAO/hB,KAAKwB,IAAI,e,6BAG1C,WAA4B,IAAZmV,EAAY,uDAAJ,GAChBxS,EAAOnE,KAAKwpC,UACZ5tB,EAAQ5b,KAAKkvG,gBACbyB,EAAY/0F,EAAMlB,KAAI,SAAA6b,GAAI,OAAIA,EAAKiT,aACnConE,EAAe,CAACzsG,GAAJ,eAAawsG,IAC/B,OAAOC,EAAazuF,MAAK,SAAAoU,GAAI,QAAKzR,EAAAA,EAAAA,aAAYnO,EAAM4f,KAA0B,KAAhB5f,EAAM4f,Q,0BAGtE,SAAa1wB,EAAOgrG,GAClB,OAAOhrG,EACJpE,MAAMovG,GACNn2F,KAAI,SAAA7U,GAAK,OAAIA,EAAMY,UACnBuvB,OAAOoN,W,8BAGZ,SAAiBzsB,EAAOxS,EAAM0sG,GAC5B,OAAO7wG,KAAK8wG,aAAan6F,EAAMxS,IAAS,GAAI0sG,K,6BAG9C,WAA6C,IAA7BhrG,EAA6B,uDAArB,GAAqB,yDAAJ,GAAXoqG,EAAe,EAAfA,OACtBr0F,EAAQ5b,KAAKkvG,gBACb6B,EAA8B,IAAjBn1F,EAAM3U,QAAgB2U,EAAMkjB,OAAM,SAAAvI,GAAI,OAAIk5E,EAAal5E,EAAK3kB,cACzEu9F,EAASnvG,KAAK8wG,aAAajrG,EAAO7F,KAAKkwG,qBACvCjuG,EAAS,GAkBf,OAhBA2Z,EAAMnP,SAAQ,SAAC8pB,EAAMnsB,GACnB,IAAMvE,EAAQspG,EAAO/kG,GACjBjB,GAAO2b,EAAAA,EAAAA,aAAYjf,GAAiB,GAARA,EAEhC,GAAIkrG,EAAY,CAId,IAAM7oE,EAAMinE,EAAOloG,OACnBkC,EAAMgmG,EAAO/kG,IAAM+kG,EAAQ/kG,EAAI89B,GAAe,GAAPA,GAAYA,EAAM,EAAI,EAAI,KAAO/+B,EAG1E,IAAMmtB,EAAM25E,EAAS15E,EAAKiT,UAAYjT,EAAK9I,QAC3CxrB,EAAOq0B,GAAOntB,GAAO,MAGhBlH,I,iCAGT,WAA2C,IAAvB0U,EAAuB,uDAAf,GAAI/N,EAAW,uDAAJ,GACrC,IAAK5I,KAAKgxG,gBAAgBr6F,GAAQ,OAAO,KAEzC,IAAQs5F,EAAWrnG,EAAXqnG,OACF9rG,EAAOnE,KAAKwpC,UACZ5tB,EAAQ5b,KAAKkvG,gBACb2B,EAAM7wG,KAAKkwG,oBACXL,EAAY7vG,KAAKwB,IAAI,aACvBS,EAAS4tG,EAAYA,EAAUl5F,EAAO,CAAE+/C,SAAU12D,KAAMmE,KAAAA,EAAMyrG,UAAWiB,IAAS,GActF,OAZKhB,IAEH5tG,EAASjC,KAAK0wG,gBAAgB/5F,EAAMxS,IAAS,GAAI,CAAE8rG,OAAAA,IAGnDr0F,EAAMnP,SAAQ,SAAA8pB,GACZ,IAAM1wB,EAAQ8Q,EAAM4f,EAAKiT,WACnBlT,EAAM25E,EAAS15E,EAAKiT,UAAYjT,EAAK9I,SACtC3I,EAAAA,EAAAA,aAAYjf,IAAoB,KAAVA,IAAc5D,EAAOq0B,GAAOzwB,OAIpD5D,I,6BAGT,WAAwC,IAAxBktG,EAAwB,uDAAf,GAAIvmG,EAAW,uDAAJ,GAClC5I,KAAKkvG,gBAAgBziG,SAAQ,SAAA8pB,GAC3B,IAAM1wB,EAAQspG,EAAO54E,EAAK9I,SAC1B8I,EAAKo2E,mBAAqB9mG,GAAS0wB,EAAK06E,QAAQprG,EAAO+C,MAIzD,IAAMsoG,GAAYrvF,EAAAA,EAAAA,MAAKstF,GACpBz0F,KAAI,SAAA+kB,GAAC,OAAI0vE,EAAO1vE,MAChB1d,KAAK,KACR/hB,KAAK2D,IAAI,QAASutG,EAAW,CAAE13F,QAAQ,M,mBAGzC,WAAQ,WAEN,OADAxZ,KAAKkvG,gBAAgBx0F,KAAI,SAAAkc,GAAC,OAAIA,EAAEsL,MAAM,CAAEouE,WAAY,EAAKD,kBAClD/D,EAASxqG,UAAUogC,MAAM0iC,KAAK5kE,Q,sBAGvC,SAAS4I,GACP,OAAO5I,KAAKkvG,gBAAgB/sF,MAAK,SAAAoU,GAAI,OAAIA,EAAKk3E,SAAS7kG,Q,0BAGzD,WACE,OAAO5I,KAAK2sG,mB,4BAGd,SAAep2E,GACb,OAAOv2B,KAAKqwG,cAAgB95E,EAAKk3E,SAAS,CAAEE,UAAU,Q,EA1RrC+B,CAA0BpD,G,igCCrC1B6E,EAAAA,SAAAA,I,yHACnB,WACE,MAAO,CACLhC,OAAQ,M,wBAIZ,WACE,IAAMpqB,EAAK/kF,KAAKyC,WAChBzC,KAAKu2B,KAAOwuD,MAAAA,OAAZ,EAAYA,EAAIxuD,O,mBAOlB,WACE,OAAOv2B,KAAKm7D,M,sBAOd,WACE,IAAM12D,EAAOzE,KAAKyC,WAClB,OAAOgC,EAAOA,EAAKkQ,QAAQ3U,OAAS,I,uBAStC,WAAqB,IAAX4I,EAAW,uDAAJ,GACTumG,EAASnvG,KAAKwB,IAAI,UAExB,OAAOoH,EAAKklG,UACRlsF,OAAOC,KAAKstF,GAAQ/yD,QAAO,SAACjzC,EAAKmtB,GAE/B,OADAntB,GAAI2kG,EAAAA,EAAAA,WAAUx3E,IAAQ64E,EAAO74E,GACtBntB,IACN,IACHgmG,I,sBAON,WAAW,MACT,iBAAOnvG,KAAKu2B,YAAZ,aAAO,EAAW66E,cAAcpxG,Q,wBAOlC,WAAa,MACX,OAAO,UAAAA,KAAKu2B,YAAL,eAAW86E,sBAAuBrxG,O,oBAM3C,WAAS,MACP,iBAAOA,KAAKu2B,YAAZ,aAAO,EAAW+6E,YAAYtxG,Q,oBAMhC,WAAS,MACP,iBAAOA,KAAKu2B,YAAZ,aAAO,EAAWg7E,YAAYvxG,Q,kBAOhC,SAAKyvB,GAAO,MACV,iBAAOzvB,KAAKu2B,YAAZ,aAAO,EAAWi7E,UAAUxxG,KAAMyvB,K,6BAQpC,WAA2B,MAAX7mB,EAAW,uDAAJ,GACrB,iBAAO5I,KAAKu2B,YAAZ,aAAO,EAAWk7E,gBAAgBzxG,KAAM4I,K,wBAO1C,WAAa,MACX,QAAQ,UAAC5I,KAAKu2B,YAAN,QAAC,EAAW/0B,IAAI,c,sBAG1B,WAAqB,IAAZoa,EAAY,uDAAJ,GACf,OAAO5b,KAAK2D,IAAI,SAAT,OACF3D,KAAKowG,aACLx0F,Q,EAxGYu1F,CAActvG,EAAAA,G,4bCAd6vG,EAAAA,SAAAA,I,2HACnB,SAAW96E,GAAc,IAAXhuB,EAAW,uDAAJ,GACnB5I,KAAKu2B,KAAO3tB,EAAK2tB,S,EAFAm7E,CAAelsG,EAAAA,YAMpCksG,EAAO5vG,UAAUmB,MAAQkuG,E,ghCCHzB,IAAMQ,EAAa,gBACbC,EAAY,gBAqBGC,EAAAA,SAAAA,I,yHACnB,WACE,cACKnC,EAAkB1tG,eADvB,IAEEwrC,OAAQ,GACRskE,eAAgB,KAChBC,UAAW,GACXC,QAAS,EACTxoB,SAAS,EACTyoB,WAAY,KACZC,cAAe,S,wBAInB,WAAkC,IAAvBt2F,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC5B8mG,EAAkBN,eAAeM,EAAmB1vG,KAAM4b,EAAOhT,GACjE,IAAM4kC,EAASxtC,KAAKwB,IAAI,UAClB2wG,EAAa,IAAIT,EAAOlkE,EAAQ,CAAEjX,KAAMv2B,OAC9CmyG,EAAWz7C,SAAW12D,KACtBmyG,EAAW3nB,WAAaxqF,KAAKwB,IAAI,cACjCxB,KAAK2D,IAAI,SAAUwuG,EAAY,CAAE34F,QAAQ,IACzCxZ,KAAK2P,GAAG,uBAAwB3P,KAAKoyG,cACrCpyG,KAAKgD,SAASmvG,EAAY,aAAcnyG,KAAKqyG,YAC7C3C,EAAkBlD,SAASxsG,KAAM4b,EAAOhT,K,uBAO1C,WACE,OAAO5I,KAAKsyG,cAAchiG,S,yBAG5B,WACE,OAAOtQ,KAAKwB,IAAI,Y,sBAclB,WAAoB,IAAXiuB,EAAW,uDAAH,EACf,OAAOzvB,KAAKsyG,cAAcxrG,GAAG2oB,IAAU,O,8BAOzC,WACE,IAAMs6D,EAAQ/pF,KAAKwB,IAAI,iBACvB,OAAOuoF,GAASA,EAAMwoB,YAAc,EAAIxoB,EAAQ,O,yBAWlD,SAAYA,GACV,OAAO/pF,KAAK2D,IAAI,gBAAiBomF,EAAO,CAAEyoB,UAAU,M,2BAStD,WAAyB,IAAX/iF,EAAW,uDAAH,EACds6D,EAAQ/pF,KAAKyyG,SAAShjF,GAC5B,OAAOs6D,GAAS/pF,KAAKsxG,YAAYvnB,K,uBAWnC,SAAUA,GAAkB,IAAXt6D,EAAW,uDAAH,EACjBijF,EAAY3oB,EAAQA,EAAMwoB,YAAc,EAE1CG,GAAa,IAAKzpF,EAAAA,EAAAA,UAASwG,IAAUA,GAAS,GAAKA,EAAQzvB,KAAK2yG,YAAY1rG,QAAUyrG,IAAcjjF,IACtGzvB,KAAKuxG,YAAYxnB,GACjB/pF,KAAKsyG,cAAczrG,IAAIkjF,EAAO,CAAEjjF,GAAI2oB,O,sBAcxC,WAAgC,IAAvB7T,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GACpBumG,EAAS,GACfnvG,KAAKkvG,gBAAgBziG,SAAQ,SAAA8pB,GAC3B,IAAMD,EAAMC,EAAK9I,QACX5nB,EAAQ+V,EAAM0a,GACpB64E,EAAO74E,IAAOxR,EAAAA,EAAAA,aAAYjf,GAAS0wB,EAAKm3E,kBAAoB7nG,KAE9D,IAAMkkF,EAAQ/pF,KAAKwB,IAAI,UAAUoM,KAAK,CAAEuhG,OAAAA,GAAUvmG,GAElD,OAAOmhF,I,yBAWT,SAAYA,GACV,OAAO/pF,KAAKwB,IAAI,UAAU0B,OAAO6mF,K,2BAUnC,WAAyB,IAAXt6D,EAAW,uDAAH,EACds6D,EAAQ/pF,KAAKyyG,SAAShjF,GAC5B,OAAOs6D,EAAQ/pF,KAAKuxG,YAAYxnB,GAAS,O,2BAW3C,SAAcA,GACZ,IAAI9nF,EAAS,GAEb,GAAI8nF,EAAO,CACT,IAAMkoB,EAAajyG,KAAKwB,IAAI,cACtB2tG,EAASplB,EAAMqmB,YACf3gF,EAAQs6D,EAAMwoB,WAEpB,GAAIN,EACFhwG,EAASgwG,EAAWloB,EAAO,CAAEt6D,MAAAA,EAAO0/E,OAAAA,EAAQz4C,SAAU12D,WACjD,CACL,IAAM4yG,EAAQ,GACd5yG,KAAKkvG,gBAAgBx0F,KAAI,SAAA6b,GACvBq8E,EAAMhlG,KAAKuhG,EAAO54E,EAAK9I,aAEzBxrB,EAAS2wG,EAAM58E,OAAOoN,SAASrhB,KAAK,MAIxC,OAAO9f,I,+BAWT,SAAkB8nF,GAAkB,IAM9BpzE,EANmB/N,EAAW,uDAAJ,GACxBmZ,EAAO/hB,KAAKmwG,YACZ0C,EAAa7yG,KAAK8yG,kBAClBhD,EAAU9vG,KAAKwB,IAAI,WACnB2C,EAAOnE,KAAKwpC,UACZ2lE,EAASplB,EAAMqmB,YAGrB,GAAIN,EACFn5F,EAAQm5F,EAAQX,EAAQ,CAAEptF,KAAAA,EAAM8wF,WAAAA,EAAY1uG,KAAAA,EAAM4lF,MAAAA,EAAOrzB,SAAU12D,WAC9D,CACL,IAAMiC,EAASjC,KAAKkvG,gBAAgBx0F,KAAI,SAAA6b,GACtC,IAAMpyB,EAAOoyB,EAAKiT,UACZpgC,EAAM+lG,EAAO54E,EAAK9I,SACpB5nB,GAAQif,EAAAA,EAAAA,aAAY1b,GAAOmtB,EAAKm3E,kBAAoBtkG,EAGxD,GAAIR,EAAKmqG,QAAUtD,EAAal5E,EAAK3kB,WAAY,CAC/C,IAAMohG,EAASz8E,EAAK43E,WAAW/kG,EAAKR,EAAKmqG,QACzCltG,EAAQ,GAAH,OAAMmtG,EAAOntG,OAAb,OAAqBmtG,EAAO5uG,MAGnC,MAAO,CAAED,KAAAA,EAAM0B,MAAAA,MAEjB8Q,EAAQ3W,KAAKqwG,aACTpuG,EAAOm6C,QAAO,SAACC,EAAK3vC,GAElB,OADA2vC,EAAI3vC,EAAKvI,MAAQuI,EAAK7G,MACfw2C,IACN,KAJC,UAMDr8C,KAAKwpC,UAAYvnC,EAAOyY,KAAI,SAAAojB,GAAC,OAAIA,EAAEj4B,SAAOkc,KAAKA,IAIxD,OAAOnZ,EAAKklG,UACRlsF,OAAOC,KAAKlL,GAAOylC,QAAO,SAACjzC,EAAKmtB,GAE9B,OADAntB,GAAI2kG,EAAAA,EAAAA,WAAUx3E,IAAQ3f,EAAM2f,GACrBntB,IACN,IACHwN,I,6BAUN,SAAgBozE,GAAkB,IAAXnhF,EAAW,uDAAJ,GACxB3G,EAAS,GACPunF,EAAUxpF,KAAKwB,IAAI,WAMzB,OAJIgoF,IACFvnF,EAASjC,KAAKizG,kBAAkBlpB,EAAOnhF,IAGlC3G,I,+BAOT,WACE,IAAM4uG,EAAM7wG,KAAKwB,IAAI,kBACrB,OAAO0X,EAAAA,EAAAA,UAAS23F,GAAO,IAAIhyC,OAAJ,UAAcgyC,EAAd,mBAAqCA,I,4BAG9D,SAAet6E,GAAiB,IAAX3tB,EAAW,uDAAJ,GACpBmhF,EAAQ/pF,KAAKqxG,mBACdtnB,IACLA,EAAMmpB,UAAN,UAAkB38E,EAAK9I,QAAU8I,EAAKo2E,mBAClC/jG,EAAKukG,MACTntG,KAAKuwG,sBAAsB3nG,M,wBAG7B,SAAWuJ,EAAGtJ,EAAGtG,GACfvC,KAAKuwG,sBAAsBhuG,GAAKsG,K,yBAGlC,SAAY+tB,GAAc,IAAXhuB,EAAW,uDAAJ,GACpB,IAAIA,EAAK4pG,SACT,OAAOW,EAAAA,UAAAA,YAAAA,KAAwCnzG,KAAM42B,EAAGhuB,K,mCAG1D,WAAiC,IAAXA,EAAW,uDAAJ,GAC3B5I,KAAKstG,iBAAiBttG,KAAKozG,qBAAsBxqG,K,8BAGnD,SAAiB+N,EAAO/N,GACtB,OAAOuqG,EAAAA,UAAAA,iBAAAA,KAA6CnzG,KAAM2W,EAAO/N,K,0BAGnE,WAA0C,6DAAf,GAAZy8D,EAA2B,EAA3BA,QAAgBz8D,EAAW,uDAAJ,GAC9BylC,EAAKruC,KAAK8C,GAAGtB,IAAI,gBACjB4S,EAAWpU,KAAKqxG,mBAChBlC,EAAS/6F,MAAAA,OAAH,EAAGA,EAAUg8F,YAGzBjB,GACEnvG,KAAKkvG,gBAAgBziG,SAAQ,SAAA8pB,GAC3B,IAAM1wB,EAAQspG,EAAO54E,EAAK9I,SAC1B8I,EAAKo2E,mBAAqB9mG,GAAS0wB,EAAK06E,QAAQprG,EAAb,OAAyB+C,GAAzB,IAA+BukG,MAAM,SAG3E9nC,GAAWh3B,EAAG++D,QAAQ/+D,EAAGjpC,OAAOiuG,YAAa,CAAE38C,SAAU12D,S,iBAG5D,SAAI4b,GAAkB,IAAXhT,EAAW,uDAAJ,GAChB,EAAmCgT,EAA3B03F,SAAAA,OAAR,MAAmB,GAAnB,EAA0BjgD,GAA1B,OAAmCz3C,EAAnC,GAIA,OAFC5b,KAAKqwG,cAAgBrwG,KAAKuzG,YAAYD,GACvCtzG,KAAKoyG,aAAa,CAAE/sC,SAAS,GAAQz8D,GAC9BuqG,EAAAA,UAAAA,IAAAA,KAAgCnzG,KAAMqzD,EAAMzqD,K,yBAGrD,WAA4B,IAAhB4qG,EAAgB,uDAAJ,GAChBhmE,EAASxtC,KAAKsyG,cACdmB,EAAYD,EAAU94F,KAAI,SAAAy0F,GAAM,MAAK,CAAEA,OAAAA,MAEzC3hE,EAAOvmC,SAAWwsG,EAAUxsG,OAC9BwsG,EAAU/4F,KAAI,SAACqvE,EAAOtF,GAAR,uBAAcj3C,EAAO1mC,GAAG29E,UAAxB,aAAc,EAAcyuB,SAASnpB,EAAMolB,WAEzDnvG,KAAKsyG,cAAc7gG,MAAMgiG,GAG3BzzG,KAAKoyG,aAAa,CAAE/sC,SAAS,M,0BAG/B,SAAax/D,GAAO,WACZ5D,EAASjC,KAAKmuG,WAAWtoG,GAO/B,OANA5D,EAAOqxG,SAAWztG,EACfpE,MAAMkwG,GACNj3F,KAAI,SAAAud,GAAC,OAAIA,EAAExxB,UACXiU,KAAI,SAAAud,GAAC,OAAI,EAAKy7E,aAAaz7E,MAC3BjC,OAAOoN,SAEHnhC,I,0BAGT,SAAa4D,GACX,IAAM8tG,EAAU3zG,KAAKwB,IAAI,cACnB2tG,EAAStpG,EAAMpE,MAAMmwG,GACrBpnB,EAAaxqF,KAAKkvG,gBACxB,OAAOyE,EACHA,EAAQ,CAAE9tG,MAAAA,EAAOspG,OAAAA,IACjB3kB,EAAWpuC,QAAO,SAACC,EAAK9lB,EAAMnsB,GAC5B,IAAMvE,EAAQspG,EAAO/kG,GAErB,OADAiyC,EAAI9lB,EAAK9I,UAAY3I,EAAAA,EAAAA,aAAYjf,GAAiB0wB,EAAKm3E,kBAAb7nG,EACnCw2C,IACN,M,kCAGT,WAAiC,WAAZ1lC,EAAY,uDAAJ,GAC3B,IAAK3W,KAAKgxG,gBAAgBr6F,GAAQ,OAAO,KAEzC,IAAMxS,EAAOnE,KAAKwpC,UACZ5tB,EAAQ5b,KAAKkvG,gBACb2B,EAAM7wG,KAAK4zG,oBACX/D,EAAY7vG,KAAKwB,IAAI,aACvBS,EAAS4tG,EAAYA,EAAUl5F,EAAO,CAAE+/C,SAAU12D,KAAMmE,KAAAA,EAAM0vG,gBAAiBhD,IAAS,GAE5F,IAAKhB,EAAW,CAEd,IAAMriE,EAASxtC,KAAK8zG,iBAAiBn9F,EAAOxS,EAAM0sG,GAC/Cn2F,KAAI,SAAA7U,GAAK,OAAIA,EAAMpE,MAAM,EAAKyuG,wBAC9Bx1F,KAAI,SAAAk4F,GACH,IAAM3wG,EAAS,GAKf,OAJA2Z,EAAMnP,SAAQ,SAAC8pB,EAAMnsB,GACnB,IAAMvE,EAAQ+sG,EAAMxoG,GACpBnI,EAAOs0B,EAAK9I,UAAY3I,EAAAA,EAAAA,aAAYjf,GAAiB0wB,EAAKm3E,kBAAb7nG,KAExC5D,KAGX2Z,EAAMnP,SAAQ,SAAA8pB,GACZ,IAAM5wB,EAAK4wB,EAAK9I,QAChB,EAAKqmF,iBAAiBn9F,EAAO4f,EAAKiT,UAAWqnE,GAC1Cn2F,KAAI,SAAA7U,GAAK,iBAAQF,EAAKE,GAAS0wB,EAAKm3E,sBACpCjhG,SAAQ,SAACsnG,EAAS3pG,GACjBojC,EAAOpjC,GAAKojC,EAAOpjC,GAAP,OAAiBojC,EAAOpjC,IAAO2pG,GAAYA,QAG7D9xG,EAASurC,EAGX,OAAOxyB,EAAAA,EAAAA,SAAQ/Y,GAAUA,EAAS,CAACA,K,sBAGrC,SAAS2G,GACP,OAAO5I,KAAKozG,mBAAmBxqG,K,gCAGjC,SAAmBA,GAAM,WACnB3G,EAAS,GACPkC,EAAOnE,KAAKwpC,UACZgE,EAASxtC,KAAK2yG,YACd/2F,EAAQ5b,KAAKkvG,gBAYnB,GAXe1hE,EAAO9yB,KAAI,SAAA2mC,GAAC,OAAI,EAAK4xD,kBAAkB5xD,EAAGz4C,MAClD6D,SAAQ,SAAAkK,IACbkL,EAAAA,EAAAA,MAAKlL,GAAO+D,KAAI,SAAA4b,GACTr0B,EAAOq0B,KAAMr0B,EAAOq0B,GAAO,IAChCr0B,EAAOq0B,GAAK1oB,KAAK+I,EAAM2f,WAG3BzU,EAAAA,EAAAA,MAAK5f,GAAQyY,KAAI,SAAA4b,GACfr0B,EAAOq0B,GAAOr0B,EAAOq0B,GAAKvU,KAAK,EAAK+wF,sBAGlC9yG,KAAKqwG,aACPpuG,EAAOkC,GAAQ,IACdqpC,EAAOvmC,QACN2U,EAAMlB,KAAI,SAAA6b,GACRt0B,EAAOs0B,EAAKiT,WAAa,UAExB,CACL,IAAM7yB,EAAQiF,EAAMwgC,QAAO,SAACC,EAAK9lB,GAE/B,OADA8lB,EAAI9lB,EAAKiT,WAAa,GACf6S,IACN,IACHp6C,EAAOkC,GAAQlC,EAAOkC,IAAS,GAC/BlC,EAAS,OAAKA,GAAW0U,GAG3B,OAAO1U,I,6BAGT,WACE,IAAM8f,EAAO/hB,KAAKwB,IAAI,aAChBqvG,EAAM7wG,KAAKwB,IAAI,kBAErB,OAAOugB,KAAS7I,EAAAA,EAAAA,UAAS23F,GAAOA,EAAM9uF,K,4BAGxC,WACE,OAAI/hB,KAAKwB,IAAI,YAAoB,GACnBxB,KAAKozG,qBAENpzG,KAAKwpC,a,sBAOpB,WAAoB,IAAX5gC,EAAW,uDAAJ,GACN+kG,EAAa/kG,EAAb+kG,SACFC,EAAcD,GAAY3tG,KAAK6tG,kBACrC,OAAO7tG,KAAK2yG,YAAY1rG,OAAS,IAAM2mG,I,mBAOzC,WAAiB,IAAXhlG,EAAW,uDAAJ,GAGX,OAFA5I,KAAKsyG,cAAc7gG,QACnBzR,KAAKuwG,sBAAsB3nG,GACpBuqG,EAAAA,UAAAA,MAAAA,KAAkCnzG,Q,4BAG3C,WACE,OAAO,M,EAjcU6xG,CAAsBnC,G,shCCxB3C,IAAMsE,EAAY,mBAEG1H,EAAAA,SAAAA,I,yHACnB,WACE,IAAQ3pG,EAAc3C,KAAd2C,IAAKC,EAAS5C,KAAT4C,KACb,qCACgBD,EADhB,4DAEgBC,EAFhB,0C,2BAMF,SAAcK,GACZ,IAAQN,EAAY3C,KAAZ2C,IAAKG,EAAO9C,KAAP8C,GACL2R,EAAWxR,EAAXwR,OACR,EAAiCxR,EAAMoQ,WAAvC,IAAQwgC,KAAAA,OAAR,MAAe,GAAf,MAAmBy7D,KAAAA,OAAnB,MAA0B,GAA1B,EACM2E,EAAQnxG,MAAAA,OAAH,EAAGA,EAAIoN,UAAU,SACtBgkG,GAAYD,MAAAA,OAAA,EAAAA,EAAOhvG,QAAS,GAElC,sCACiBtC,EADjB,gBAC4BkxC,EAD5B,sBAC4Cy7D,EAD5C,wBAEMrsG,EAAMsjG,WAFZ,kCAIK9xF,EAA4F,GAA7F,uBAAyB9R,EAAzB,2CAA4DqxG,EAA5D,YAAyEE,EAAzE,UAJJ,Y,2BAQF,SAAcjxG,GACZ,qCACgBjD,KAAK4C,KADrB,kDAE0BK,EAAMyqG,kBAFhC,8B,wBAOF,WAAmB,IAARnrG,EAAQ,uDAAJ,IACb2U,EAAAA,EAAAA,SAAQlX,KAAM,WAAY,iBAC1B,IAAM0C,EAASH,EAAEG,QAAU,GACnBI,EAAOJ,EAAPI,GACR9C,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV9C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAKm0G,YAAcn0G,KAAKwS,QAAUxS,KAAKwS,QAAQnP,KAAKrD,MAAQ,aAC5D,IAAQiD,EAAUjD,KAAViD,MACRA,EAAME,KAAOnD,KAIbA,KAAKo0G,eAAgBrkG,EAAAA,EAAAA,UAAS/P,KAAKo0G,cAAc/wG,KAAKrD,MAAO,IAC7DA,KAAKkwD,cAAengD,EAAAA,EAAAA,UAAS/P,KAAKkwD,aAAa7sD,KAAKrD,OAEpDA,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKwW,kBAC5CxW,KAAKgD,SAASC,EAAO,2CAA4CjD,KAAKwH,QACtExH,KAAKgD,SAASC,EAAO,eAAgBjD,KAAKo0G,eAC1Cp0G,KAAKgD,SAASF,EAAI,gBAAiB9C,KAAKo0G,eAExC,IAAMhxG,EAAOpD,KAAKoD,MAAQpD,KAAKoD,KAAKC,KAAKrD,MACzCoD,GAAQA,M,oBAGV,WAAS,WACPY,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC,CAAC,KAAM,QAAS,SAAU,QAAQtX,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,QAC1DpK,KAAKm0G,YAAYn0G,KAAKq0G,iB,0BAQxB,WAAe,MACLpxG,EAA6BjD,KAA7BiD,MAAON,EAAsB3C,KAAtB2C,IAAKC,EAAiB5C,KAAjB4C,KAAMF,EAAW1C,KAAX0C,OACpBkJ,EAAa,GAAH,OAAMhJ,EAAN,cACV0xG,EAAc,GAAH,OAAM1xG,EAAN,cACX2xG,EAAUv0G,KAAK2E,IAAIogC,SAAT,WAAsBpiC,EAAtB,UACV6xG,EAAex0G,KAAKy0G,aACpBC,EAAaF,EAAeA,EAAa79F,MAAQ,GACvD49F,EAAQtsG,YAAR,UAAuB2D,EAAvB,YAAqC0oG,IACrCI,EAAW99F,QAAU,OAEjB3T,EAAMwqG,SAAS,CAAEE,UAAU,KAAWjrG,EAAOupG,kBAC/CsI,EAAQ3vG,SAASgH,GACjBlJ,EAAO0pG,kBAAoBsI,EAAW99F,QAAU,KACvC3T,EAAMwqG,YAAc/qG,EAAOwpG,mBACpCqI,EAAQ3vG,SAAS0vG,GAGnB,UAAAt0G,KAAKyU,cAAL,SAAay7C,iB,mBAMf,SAAM5kD,GACJA,GAAMA,EAAGa,kBACTnM,KAAKiD,MAAMi/B,U,wBAOb,WAKE,OAJKliC,KAAK20G,UACR30G,KAAK20G,QAAU30G,KAAK6D,GAAGkD,cAAR,WAA0BitG,EAA1B,OAGVh0G,KAAK20G,U,+BAOd,SAAkBrpG,GAChBA,GAAMA,EAAGa,kBAELnM,KAAK40G,MACT50G,KAAKiD,MAAMguG,QAAQ3lG,EAAG5H,OAAOmC,S,2BAG/B,SAAcsM,EAAG/I,GACfpJ,KAAK+5B,SAAS/5B,KAAKiD,MAAMyrG,gBACzB1uG,KAAKkwD,iB,sBAQP,SAASrqD,GACP,IAAQ5C,EAAUjD,KAAViD,MACFhB,GAAS6iB,EAAAA,EAAAA,aAAYjf,IAAoB,KAAVA,EAAe5C,EAAMyqG,kBAAoB7nG,EAC9E,GAAI7F,KAAKkP,OAAQ,OAAOlP,KAAK8mG,SAAS7kG,GACtCjC,KAAK60G,gBAAgB5yG,K,6BAGvB,SAAgB4D,GACd,IAAMS,EAAQtG,KAAKqmE,aACnB//D,IAAUA,EAAMT,MAAQA,K,wBAG1B,WAKE,OAJK7F,KAAKsG,QACRtG,KAAKsG,MAAQtG,KAAK6D,GAAGkD,cAAc,UAG9B/G,KAAKsG,Q,8BAGd,WACEtG,KAAK6D,GAAG8S,MAAMC,QAAU5W,KAAKiD,MAAM4vC,YAAc,GAAK,S,yBAGxD,WACE7yC,KAAK20G,QAAU,KACf30G,KAAKsG,MAAQ,KACbtG,KAAK+kG,OAAS,O,qBAGhB,WACE,IAAMhsF,EAAQ/Y,KAAK+Y,OAAS/Y,KAAK+Y,MAAM1V,KAAKrD,MAC5C+Y,GAASA,EAAM/Y,KAAKq0G,iB,sBAGtB,SAASxuG,GACP,IAAMqJ,EAASlP,KAAKkP,QAAUlP,KAAKkP,OAAO7L,KAAKrD,MAC/CkP,GACEA,EAAO,OACFlP,KAAKq0G,eADJ,IAEJxuG,MAAAA,O,sBAIN,WAAkB,IAChB,IAAM+uG,EAAO50G,KAAK40G,MAAQ50G,KAAK40G,KAAKvxG,KAAKrD,MADzB,mBAANkhC,EAAM,yBAANA,EAAM,gBAEhB0zE,GAAQA,EAAI,WAAJ,GAAK50G,KAAKq0G,eAAV,OAA4BnzE,M,2BAGtC,SAAcr7B,GAA4C,6DAAJ,GAA/B2K,EAAmC,EAAnCA,SAAUglD,EAAyB,EAAzBA,QACvBvyD,IADgD,YACtCjD,KAAViD,OACF4yD,GAAqB,IAAbrlD,IAAkC,IAAZglD,GAEhCr8C,EAAAA,EAAAA,UAAStT,GACX5C,EAAMqqG,iBAAiBznG,EAAO,CAAEiwB,YAAa+/B,IAE7C5yD,EAAMguG,QAAQprG,EAAO,CAAE2vD,SAAUK,M,yBAIrC,WACE,IAAQ5yD,EAAyBjD,KAAzBiD,MACR,MAAO,CACLY,GAF+B7D,KAAlB6D,GAGbixG,UAH+B90G,KAAd80G,UAIjBp+C,SAAUzzD,EACV2Y,MAAO3Y,EAAMoQ,WACbixC,OAAQtkD,KAAK+0G,SACbnzD,YAAa5hD,KAAKg1G,iB,oBAItB,WACEh1G,KAAKi1G,cACL,IAAQtyG,EAAwB3C,KAAxB2C,IAAKM,EAAmBjD,KAAnBiD,MAAOY,EAAY7D,KAAZ6D,GAAIc,EAAQ3E,KAAR2E,IAClBR,EAAOlB,EAAMumC,UACbloC,EAAO2B,EAAM2O,UACbgE,EAAM3S,EAAMzB,IAAI,cAAgB,GAChCuB,EAAY,GAAH,OAAMJ,EAAN,YAETuyG,EAAmB,WAAT5zG,EAAA,UAAuBqB,GAAvB,OAA6BrB,EAA7B,YAAqCqB,EAArC,qBAAuDA,GAAvD,OAA6DrB,GAE7EtB,KAAK80G,WAAa90G,KAAKm0G,YAAYn0G,KAAKq0G,eACxC1vG,EAAIoD,QAAQC,OAAOhI,KAAK+D,SAASd,IACjC0B,EAAImD,KAAK,mBAAmBE,OAAOhI,KAAKm1G,cAAclyG,IACtD,IAAM++B,EAAShiC,KAAKgiC,QAAUhiC,KAAKgiC,OAAO3+B,KAAKrD,MAC/CA,KAAK80G,UAAY9yE,GAAUA,EAAOhiC,KAAKq0G,eACvC1vG,EAAImD,KAAK,oBAAoBE,OAAOhI,KAAK80G,WAAa90G,KAAKo1G,cAAcnyG,IAEzEY,EAAGd,UAAY,UAAGA,EAAH,YAAgBmyG,EAAhB,YAA2BnyG,EAA3B,aAAyCoB,EAAzC,YAAiDyR,GAAMnP,OACtE5C,EAAGd,WAAaE,EAAMoyG,SAAN,WAAqBtyG,EAArB,UAAyC,GAEzD,IAAMmmB,EAAWlpB,KAAKkpB,UAAYlpB,KAAKkpB,SAAS7lB,KAAKrD,MACrDkpB,GAAYA,IACZlpB,KAAK+5B,SAAS92B,EAAM62B,gB,EAjOHwyE,CAAiBtoG,EAAAA,MAqOtCsoG,EAASxqG,UAAUsD,QAAnB,QACEk/C,OAAQ,qBADV,iBAEa0vD,EAFb,KAE4B,S,ycC1OPsB,EAAAA,SAAAA,I,2HACnB,SAAW/yG,GACTvC,KAAK0C,OAASH,EAAEG,QAAU,GAC1B1C,KAAK2C,IAAM3C,KAAK0C,OAAOvC,aAAe,GACtCH,KAAKwqF,WAAa,GAClBxqF,KAAKyU,OAASlS,EAAEkS,OAChB,IAAMhQ,EAAOzE,KAAKyC,WAClBzC,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAKwH,U,mBAGpC,SAAMvE,EAAOwB,EAAMmE,GACjB5I,KAAK6G,IAAI5D,EAAO,KAAM2F,K,iBAGxB,SAAI3F,EAAO+V,GAAiB,IAAXpQ,EAAW,uDAAJ,GACd6L,EAAmBzU,KAAnByU,OAAQ/R,EAAW1C,KAAX0C,OACVgQ,EAAWsG,GAAQhZ,KAAK6D,GACxBV,EAAO,IAAIF,EAAMsE,SAAS,CAAEtE,MAAAA,EAAOP,OAAAA,IACzC+R,IAAWtR,EAAKsR,OAASA,GACzBtR,EAAKqE,SACL,IAAMF,EAAWnE,EAAKU,GACtB7D,KAAKwqF,WAAW58E,KAAKzK,IACrBoyG,EAAAA,EAAAA,IAAc7iG,EAAUpL,EAAUsB,EAAK9B,M,oBAGzC,WACE9C,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC/jB,KAAK2nF,e,wBAGP,WACE3nF,KAAKwqF,WAAW/9E,SAAQ,SAAAC,GAAI,OAAIA,EAAKxJ,YACrClD,KAAKwqF,WAAa,K,oBAGpB,WAAS,WACC7lF,EAAa3E,KAAb2E,IAAKhC,EAAQ3C,KAAR2C,IACb3C,KAAK2nF,aACL,IAAMtgF,EAAWa,SAASC,yBAK1B,OAJAnI,KAAKyC,WAAWgK,SAAQ,SAAAxJ,GAAK,OAAI,EAAK4D,IAAI5D,EAAOoE,MACjD1C,EAAIoD,QACJpD,EAAIqD,OAAOX,GACX1C,EAAIiI,KAAK,QAAT,UAAqBjK,EAArB,eACO3C,S,EA5CUs1G,CAAuBtxG,EAAAA,M,igCCAvBwxG,GAAAA,SAAAA,I,8HACnB,WACE,IAAQ7yG,EAAQ3C,KAAR2C,IACR,qCACgBA,EADhB,iBAC4BA,EAD5B,4CAEgBA,EAFhB,gD,oBAOF,WAAS,MACP,UAAA3C,KAAK4b,aAAL,SAAY1Y,SACZuyG,EAAAA,UAAAA,OAAAA,MAAoCz1G,KAAM+jB,a,2BAG5C,c,sBAEA,WACE,IAAQ9gB,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACTiZ,EAAQ3Y,EAAMzB,IAAI,cAExB,GAAIoa,EAAM3U,SAAWjH,KAAK4b,MAAO,CAC/B,IAAM+zF,EAAW1sG,EAAMotG,aACjBqF,EAAY,IAAIJ,EAAe,CACnC5yG,OAAQ,OACH1C,KAAK0C,QADJ,IAEJwpG,kBAAmByD,EACnB1D,iBAAkB0D,IAEpBltG,WAAYmZ,EACZnH,OAAQzU,OAEV01G,EAAUluG,SACVxH,KAAK2E,IAAImD,KAAT,WAAkBnF,EAAlB,iBAAqCqF,OAAO0tG,EAAU7xG,IACtD7D,KAAK4b,MAAQ85F,K,yBAIjB,WACED,EAAAA,UAAAA,YAAAA,MAAyCz1G,KAAM+jB,WAC/C/jB,KAAK4b,MAAQ,S,EAxCI45F,CAA8BC,G,6bCA9BE,GAAAA,SAAAA,I,wHACnB,WACE,MAAO,CACLtwG,MAAO,SACP,2BAA4B,aAC5B,8BAA+B,aAC/B,+BAAgC,gB,sBAIpC,WACE,IAAQ1C,EAAkB3C,KAAlB2C,IAAKC,EAAa5C,KAAb4C,KAAME,EAAO9C,KAAP8C,GACbmxG,EAAQnxG,MAAAA,OAAH,EAAGA,EAAIoN,UAAU,SACtBgkG,GAAYD,MAAAA,OAAA,EAAAA,EAAOhvG,QAAS,GAC5B2wG,GAAW3B,MAAAA,OAAA,EAAAA,EAAOltC,OAAQ,GAEhC,qCACgBpkE,EADhB,2CAEeA,EAFf,0BAEkCC,EAFlC,0DAGQgzG,EAHR,+CAKejzG,EALf,wDAMeA,EANf,iCAMyCA,EANzC,0FAOiBA,EAPjB,6BAOuCA,EAPvC,sFASeA,EATf,iCASyCA,EATzC,oDAUQuxG,EAVR,2DAaavxG,EAbb,2C,wBAiBF,WAAmB,IAARJ,EAAQ,uDAAJ,GACLU,EAAUjD,KAAViD,MACFP,EAASH,EAAEG,QAAU,GAC3B1C,KAAK8C,GAAKJ,EAAOI,GACjB9C,KAAK0C,OAASA,EACd1C,KAAKkU,OAAS3R,EAAE2R,OAChBlU,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK61G,aAAetzG,EAAEszG,aACtB,IAAMC,EAAS91G,KAAK61G,aAAa5yG,MACjCjD,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKgD,SAASC,EAAO,gBAAiBjD,KAAK+1G,aAC3C/1G,KAAKgD,SAAS8yG,EAAQ,uBAAwB91G,KAAKwW,kBAGnDvT,EAAME,KAAOnD,KACbiD,EAAMU,IAAI,CAAE2X,UAAW,EAAGrG,UAAW,IACrCjV,KAAK2E,IAAImF,KAAK,QAAS7G,K,wBAGzB,WAAa,MACX,UAAAjD,KAAKkU,cAAL,SAAakB,UAAUpV,KAAK6D,M,wBAG9B,SAAWyH,GACTA,GAAMA,EAAGa,kBACTnM,KAAKiD,MAAMC,W,oBAGb,WACElD,KAAKiD,MAAMqB,W,kCAGb,WAEE,OADKtE,KAAKg2G,cAAah2G,KAAKg2G,YAAch2G,KAAK6D,GAAGkD,cAAc,sBACzD/G,KAAKg2G,c,0BAGd,WAEE,OADKh2G,KAAKi2G,YAAWj2G,KAAKi2G,UAAYj2G,KAAK6D,GAAGkD,cAAc,mBACrD/G,KAAKi2G,Y,wBAGd,WAEE,OADKj2G,KAAKu0G,UAASv0G,KAAKu0G,QAAUv0G,KAAK6D,GAAGkD,cAAc,iBACjD/G,KAAKu0G,U,yBAGd,WACE,IAAQtxG,EAAUjD,KAAViD,MACF6P,EAAQ7P,EAAMsjG,WAGpB,GAFAvmG,KAAKk2G,aAAapyG,UAAYgP,EAE1B7P,EAAMkzG,aAAc,CACtB,IAAMC,EAAQp2G,KAAKq2G,eACb1/F,EAAQ1T,EAAMwuG,gBAAgB,CAAEsB,OAAQ,CAAEznF,KAAM,EAAGD,IAAK,KACxDwzE,GAAWh9E,EAAAA,EAAAA,MAAKlL,GACnB+D,KAAI,SAAA+kB,GAAC,gBAAOA,EAAP,YAAY9oB,EAAM8oB,OACvB1d,KAAK,KACRq0F,EAAMpgG,aAAa,QAAS6oF,M,8BAIhC,WACE,IAAQl8F,EAA6B3C,KAA7B2C,IAAKM,EAAwBjD,KAAxBiD,MAAO4yG,EAAiB71G,KAAjB61G,aACdS,EAASt2G,KAAKu2G,uBACdC,EAAavzG,EAAMuzG,aACzBF,EAAO3/F,MAAMC,QAAU4/F,EAAa,GAAK,OACzCx2G,KAAK2E,IAAI6xG,EAAa,WAAa,eAAnC,UAAqD7zG,EAArD,WACA6zG,GAAcF,EAAO7uG,YAAYouG,EAAaj6F,MAAM/X,M,oBAGtD,WACE,IAAQA,EAAmB7D,KAAnB6D,GAAIlB,EAAe3C,KAAf2C,IAAKM,EAAUjD,KAAViD,MAQjB,OAPAY,EAAGC,UAAY9D,KAAK+D,WACpBF,EAAGd,UAAH,UAAkBJ,EAAlB,SACIM,EAAMkzG,eACRtyG,EAAGkD,cAAH,sBAAuC4P,MAAMC,QAAU,IAEzD5W,KAAK+1G,cACL/1G,KAAKwW,mBACExW,S,EAlHU21G,CAAkB3xG,EAAAA,M,6bCAlByyG,GAAAA,SAAAA,I,4HACnB,SAAWl0G,GACT,IAAMkC,EAAOzE,KAAKyC,WACZC,EAASH,EAAEG,QAAU,GACrBI,EAAKJ,EAAOI,GACZH,EAAMD,EAAOvC,aAAe,GAC5ByC,EAAOF,EAAOG,cAAgB,GACpC7C,KAAK0C,OAASA,EACd1C,KAAK2C,IAAMA,EACX3C,KAAK4C,KAAOA,EACZ5C,KAAK61G,aAAetzG,EAAEszG,aACtB71G,KAAK+C,UAAL,UAAoBJ,EAApB,kBAAiCC,EAAjC,SACA5C,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAKyR,OAClCzR,KAAKgiB,MAAQ,GAGb,IAAMpK,EAAQ9U,EAAKA,EAAGtB,IAAI,SAAW,GACrCxB,KAAKkU,OAAS0D,EACV,IAAIA,EAAMC,OAAO,CACf5H,UAAWjQ,KAAK6D,GAChBqxF,mBAAoB,EACpBl9E,aAAc,IAAF,OAAMrV,EAAN,UACZsV,QAAS,IAAF,OAAMtV,EAAN,SACPA,IAAKD,EAAOG,eAEd,GACJ4B,EAAKtB,KAAOnD,KACZA,KAAK2E,IAAImF,KAAK,QAASrF,GACvBzE,KAAK2E,IAAImF,KAAK,aAAcrF,K,mBAG9B,SAAMxB,GACJ,IAAMmH,EAAIpK,KAAKyC,WAAWkS,QAAQ1R,GAClCjD,KAAKkjD,gBAAgBjgD,EAAO,KAAMmH,K,6BAGpC,SAAgBnH,EAAOmE,EAAYqoB,GACjC,IAAMpoB,EAAWD,GAAc,KACvByuG,EAAsC71G,KAAtC61G,aAAcnzG,EAAwB1C,KAAxB0C,OAAQwR,EAAgBlU,KAAhBkU,OAAQvP,EAAQ3E,KAAR2E,IAChCxB,EAAO,IAAIwyG,GAAU,CAAE1yG,MAAAA,EAAOP,OAAAA,EAAQwR,OAAAA,EAAQ2hG,aAAAA,IAC9CvuG,EAAWnE,EAAKqE,SAAS3D,GAG/B,GAFA7D,KAAKgiB,MAAMpU,KAAKzK,GAEZkE,EACFA,EAASI,YAAYH,QAErB,QAAoB,IAATmoB,EAAsB,CAC/B,IAAIjlB,EAAS,SAET7F,EAAIogC,WAAW99B,SAAWwoB,IAC5BA,IACAjlB,EAAS,SAGPilB,EAAQ,EACV9qB,EAAIqD,OAAOV,GAEX3C,EAAIogC,WAAW+yB,GAAGroC,GAAOjlB,GAAQlD,QAGnC3C,EAAIqD,OAAOV,GAIf,OAAOA,I,mBAGT,SAAM7C,EAAMmE,GACV5I,KAAK2nF,WAAW/+E,GAChB5I,KAAKwH,W,oBAGP,WACExH,KAAK2nF,aACL3jF,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,a,wBAGpC,WACE/jB,KAAKgiB,MAAMvV,SAAQ,SAAAC,GAAI,OAAIA,EAAKxJ,YAChClD,KAAKgiB,MAAQ,K,oBAGf,WAAS,WACCrd,EAAgB3E,KAAhB2E,IAAKuP,EAAWlU,KAAXkU,OACP8E,EAAO9Q,SAASC,yBAOtB,OANAxD,EAAIoD,QACJ/H,KAAKyC,WAAWgK,SAAQ,SAAA0F,GAAC,OAAI,EAAK+wC,gBAAgB/wC,EAAG6G,MACrDrU,EAAIqD,OAAOgR,GACXrU,EAAIiI,KAAK,QAAS5M,KAAK+C,WACnBmR,IAAQA,EAAOwyD,IAAM,MAElB1mE,S,EA5FUy2G,CAAmBzyG,EAAAA,M,sgCCCnB0yG,GAAAA,SAAAA,I,wHACnB,WACE,gBACKlB,GAAsB1zG,UAAUsD,QADrC,IAEE,yBAA0B,WAC1Bk/C,OAAQ,O,2BAIZ,WACE,IAAQ3hD,EAAY3C,KAAZ2C,IAAKG,EAAO9C,KAAP8C,GACPmxG,EAAQnxG,MAAAA,OAAH,EAAGA,EAAIoN,UAAU,SACtBymG,GAAW1C,MAAAA,OAAA,EAAAA,EAAO2C,OAAQ,IAChC,qCACgBj0G,EADhB,iBAC4BA,EAD5B,0DAEgCA,EAFhC,4CAGQg0G,EAHR,sF,kBAUF,WACE,IAAQ1zG,EAAUjD,KAAViD,MACRjD,KAAKgD,SAASC,EAAMqvG,cAAe,eAAgBtyG,KAAKkwD,gB,sBAG1D,WACElwD,KAAKiD,MAAM4zG,SAAS,GAAI,CAAE/vG,GAAI,M,sBAQhC,c,oBAEA,WAAS,MACP,UAAA9G,KAAK82G,kBAAL,SAAiB5zG,SACjBsyG,GAAsB1zG,UAAUoB,OAAO0mD,MAAM5pD,KAAM+jB,a,yBAGrD,WACEyxF,GAAsB1zG,UAAUmzG,YAAYrrD,MAAM5pD,KAAM+jB,WACxD/jB,KAAK82G,WAAa,O,sBAGpB,WACE,IAAQ7zG,EAAsBjD,KAAtBiD,MAAOY,EAAe7D,KAAf6D,GAAInB,EAAW1C,KAAX0C,OACbkZ,EAAQ3Y,EAAMzB,IAAI,cAExB,GAAIoa,EAAM3U,SAAWjH,KAAK4b,MAAO,CAC/B,IAAM85F,EAAY,IAAIJ,EAAe,CACnC5yG,OAAQ,SACHA,GADC,IAEJwpG,mBAAmB,EACnBD,kBAAkB,IAEpBxpG,WAAYmZ,EACZnH,OAAQzU,OAEV01G,EAAUluG,SAEV,IAAMsvG,EAAa,IAAIL,GAAW,CAChCh0G,WAAYQ,EAAMqvG,cAClB5vG,OAAAA,EACAmzG,aAAc71G,OAEhB82G,EAAWtvG,SAEK3D,EAAGkD,cAAc,yBACzBU,YAAYqvG,EAAWjzG,IAC/B7D,KAAK4b,MAAQ85F,EACb11G,KAAK82G,WAAaA,O,EA3EHJ,CAA0BlB,I,sgCCD1BuB,GAAAA,SAAAA,I,wHACnB,WACE,gBACKtB,EAAAA,UAAAA,QADL,IAEE,2BAA4B,QAC5B,2BAA4B,uB,2BAIhC,WAAgB,MACN9yG,EAAY3C,KAAZ2C,IAAKG,EAAO9C,KAAP8C,GACPmxG,EAAK,UAAGj0G,KAAK8C,UAAR,aAAG,EAASoN,UAAU,SAC3BgkG,EAAYD,MAAAA,OAAH,EAAGA,EAAOhvG,MAEzB,qCACgBtC,EADhB,iBAC4BA,EAD5B,qCAEeA,EAFf,kDAGoBA,EAHpB,iDAIyBA,EAJzB,sBAIwCA,EAJxC,qEAKYG,EAAGkD,EAAE,2BALjB,qIAUerD,EAVf,iCAUyCA,EAVzC,iEAWiBA,EAXjB,kCAW4CA,EAX5C,uEAYiBA,EAZjB,2BAYqCA,EAZrC,iDAYgFuxG,EAZhF,gD,6BAkBF,SAAgBruG,GACd,IAAQ5C,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GACTmzG,EAAW/zG,EAAMyqG,kBACjBuJ,EAAWpzG,EAAGkD,cAAc,sBAC5BqvG,EAAQvyG,EAAGkD,cAAc,kBAC/BkwG,EAAStgG,MAAMC,QAAW/Q,GAASA,IAAUmxG,EAAoB,GAAT,OACxDZ,EAAMz/F,MAAMugG,gBAAkBrxG,GAAS5C,EAAMyqG,oB,8BAG/C,WAAmB,aACXpqG,EAAE,UAAGtD,KAAK8C,UAAR,aAAG,EAAStB,IAAI,gBAExB8B,MAAAA,GAAAA,EAAI8L,KAAK,CACP9K,OAAQ,SAACiM,EAAOC,GACd,IAAMhK,GAAM0S,EAAAA,EAAAA,UAAS3I,GAASA,EAAQA,EAAM/O,IAAI,OAChD,EAAKyB,MAAMguG,QAAQzqG,EAAK,CAAEgvD,SAAUhlD,IACpCA,GAAYlN,EAAG2B,SAEjBS,MAAO,CAAC,SACRonC,OAAQ,gB,EAnDOiqE,CAAyBtB,G,6bCDzB0B,GAAAA,SAAAA,I,+HACnB,WACE,MAAO,K,kBAGT,WACE,IAAMl0G,EAAQjD,KAAKiD,MACnBjD,KAAKgD,SAASC,EAAO,cAAejD,KAAKo0G,eACzCp0G,KAAKgD,SAASC,EAAO,eAAgBjD,KAAKwH,U,sBAG5C,c,sBAIA,WACE,IAAQ5E,EAAoB5C,KAApB4C,KAAMK,EAAcjD,KAAdiD,MAAOY,EAAO7D,KAAP6D,GAErB,IAAK7D,KAAKo3G,UAAW,CACnB,IAAQ9wG,EAAUrD,EAAVqD,MACRA,EAAM1D,KAAOA,EACb0D,EAAMkB,SACS3D,EAAGkD,cAAH,WAAqBnE,EAArB,WACR6E,YAAYnB,EAAMzC,IACzB7D,KAAKsG,MAAQA,EAAMmgE,QAAQjlE,IAAI,GAC/BxB,KAAKo3G,UAAY9wG,K,yBAIrB,WACEmvG,EAAAA,UAAAA,YAAAA,MAAyCz1G,KAAM+jB,WAC/C/jB,KAAKo3G,UAAY,S,EA/BAD,CAA2B1B,G,ucCC3B4B,GAAAA,SAAAA,I,0HACnB,SAASxxG,GAAO,MACd,UAAA7F,KAAKo3G,iBAAL,SAAgBr9E,SAASl0B,EAAO,CAAE6vD,WAAY,EAAGnZ,IAAKv8C,KAAKiD,MAAMyqG,sB,oBAGnE,WAAS,WACPyJ,GAAmBr1G,UAAUoB,OAAO0mD,MAAM5pD,KAAM+jB,WAChD,IAAMuzF,EAAMt3G,KAAKo3G,UACjBE,GAAOA,EAAIp0G,QAAUo0G,EAAIp0G,SACzB,CAAC,YAAa,UAAUuJ,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,U,4BAGlD,SAAevE,EAAO2vD,GACpBx1D,KAAKiD,MAAMguG,QAAQprG,EAAO,CAAE2vD,QAAAA,M,sBAG9B,WACE,IAAKx1D,KAAKo3G,UAAW,CACnBp3G,KAAKu3G,eAAiBv3G,KAAKu3G,eAAel0G,KAAKrD,MAC/C,IAAQ4C,EAAwB5C,KAAxB4C,KAAMK,EAAkBjD,KAAlBiD,MAAOH,EAAW9C,KAAX8C,GAAIe,EAAO7D,KAAP6D,GAEnByC,EADa,IAAI0+E,GAAAA,EAAW,CAAEthF,OAAQZ,EAAIG,MAAAA,EAAOL,KAAAA,EAAM82B,SAAU15B,KAAKu3G,iBACnD/vG,SACzB3D,EAAGkD,cAAH,WAAqBnE,EAArB,WAAmC6E,YAAYnB,EAAMzC,IACrD7D,KAAKsG,MAAQA,EAAMmgE,QAAQjlE,IAAI,GAC/BxB,KAAKo3G,UAAY9wG,O,EAxBF+wG,CAA0BF,I,sgCCY1BK,GAAAA,SAAAA,I,0HACnB,WACE,gBACKlL,EAAStqG,eADd,IAEEQ,QAAS,GACTgtG,KAAM,M,wBAQV,WAEE,MAA0BxvG,KAAKqT,WAAvB7Q,EAAR,EAAQA,QAAS4qD,EAAjB,EAAiBA,KACjB,OAAQ5qD,GAAWA,EAAQyE,OAASzE,EAAU4qD,IAAS,K,uBAQzD,SAAUznD,GAAI,WACN8vB,EAAQ9vB,GAAM3F,KAAK85B,WACzB,OAAO95B,KAAK2kD,aAAa3uB,QAAO,SAAAzzB,GAAC,OAAI,EAAKk1G,YAAYl1G,KAAOkzB,KAAO,IAAM,O,wBAO5E,WAAuB,IAAZ5vB,EAAY,uDAAJ,GAEjB,OADA7F,KAAK2D,IAAI,UAAWkC,GACb7F,O,uBAOT,SAAU6F,GACR,GAAIA,EAAO,CACT,IAAM+C,EAAO5I,KAAK2kD,aAClB3kD,KAAK+jC,WAAL,kBAAoBn7B,GAApB,CAA0B/C,KAE5B,OAAO7F,O,yBAQT,SAAYupE,GACV,OAAOttB,EAAAA,EAAAA,OAAMstB,EAAO5jE,IAAM4jE,EAAO5jE,GAAK4jE,EAAO1jE,Q,4BAU/C,SAAeF,GAAe,MAAXiD,EAAW,uDAAJ,GACxB,EAA0BA,EAAlBysD,OAAAA,OAAR,SACMkU,IAAUrwD,EAAAA,EAAAA,UAASvT,GAAM3F,KAAK03G,UAAU/xG,GAAMA,IAAO,GACrDgyG,EAAQ33G,KAAKy3G,YAAYluC,GACzBz2D,EAAQy2D,EAAOz2D,OAASy2D,EAAOplE,MAAQwzG,EACvCC,EAAS53G,KAAKytB,QACpB,OAAQ4nC,IAAM,UAAIr1D,KAAK8C,UAAT,aAAI,EAASkD,EAAT,+BAAmC4xG,EAAnC,YAA6CD,MAAa7kG,I,wBAG9E,WAAoB,2BAANouB,EAAM,yBAANA,EAAM,gBAClBorE,EAASxqG,UAAUu/B,WAAWuoB,MAAM5pD,KAAMkhC,GAC1ClhC,KAAKgD,SAAShD,KAAM,iBAAkBA,KAAK63G,oB,8BAG7C,WACE73G,KAAK2D,IAAI,OAAQ3D,KAAKwB,IAAI,gB,EAjFTg2G,CAAuBlL,G,6bCbvBwL,GAAAA,SAAAA,I,+HACnB,WACE,IAAMn1G,EAAM3C,KAAK2C,IACXC,EAAO5C,KAAK4C,KAClB,qCACgBA,EADhB,iBAC6BA,EAD7B,yCAEgBD,EAFhB,wDAGkBC,EAHlB,gDAIoBA,EAJpB,4D,wBAUF,WAAoB,2BAANs+B,EAAM,yBAANA,EAAM,gBAClBu0E,EAAAA,UAAAA,WAAAA,MAAwCz1G,KAAMkhC,GAC9ClhC,KAAKgD,SAAShD,KAAKiD,MAAO,iBAAkBjD,KAAK+3G,iB,2BAGnD,WACE/3G,KAAKsG,MAAQ,KACbtG,KAAKkpB,a,sBAGP,WACE,IAAQjmB,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACTH,EAAUS,EAAM0hD,aAEtB,IAAK3kD,KAAKsG,MAAO,CACf,IAAM0xG,EAAa,GAEnBx1G,EAAQiK,SAAQ,SAAA88D,GACd,IAAM5jE,EAAK1C,EAAMw0G,YAAYluC,GACvBplE,EAAOlB,EAAMg1G,eAAetyG,GAC5BgR,EAAQ4yD,EAAO5yD,MAAQ4yD,EAAO5yD,MAAM5K,QAAQ,KAAM,UAAY,GAC9DmsG,EAAYvhG,EAAQ,WAAH,OAAaA,EAAb,MAAwB,GACzC9Q,EAAQF,EAAGoG,QAAQ,KAAM,UAC/BisG,EAAWpqG,KAAX,0BAAkC/H,EAAlC,cAA4CqyG,EAA5C,YAAyD/zG,EAAzD,iBAGF,IAAMg0G,EAASn4G,KAAK6D,GAAGkD,cAAR,WAA0BpE,EAA1B,iBACfw1G,EAAOr0G,UAAP,kBAA8Bk0G,EAAWj2F,KAAK,IAA9C,aACA/hB,KAAKsG,MAAQ6xG,EAAOvwG,c,6BAIxB,SAAgB/B,GACd,IAAQ5C,EAAUjD,KAAViD,MACFqD,EAAQtG,KAAKqmE,aACb+xC,EAAWn1G,EAAM0hD,aAAa,GAC9B0zD,EAAUD,EAAWn1G,EAAMw0G,YAAYW,GAAY,GACzD9xG,IAAUA,EAAMT,MAAQA,GAASwyG,O,EAnDhBP,CAA2BrC,G,sgCCA3B6C,GAAAA,SAAAA,I,0HACnB,WACE,gBACKhM,GAAAA,eADL,IAEEkD,KAAM,Q,EAJS8I,CAAsBhM,I,6bCAtBiM,GAAAA,SAAAA,I,+HACnB,WACE,IAAQ31G,EAAS5C,KAAT4C,KACR,6BAAsBA,EAAtB,iBAAmCA,EAAnC,0B,sBAGF,WACE,IAAQD,EAAqB3C,KAArB2C,IAAKC,EAAgB5C,KAAhB4C,KAAMK,EAAUjD,KAAViD,MACbu1G,EAAU,GAAH,OAAM51G,EAAN,oBACP2zB,EAAOtzB,EAAMumC,UACbhnC,EAAUS,EAAM0hD,aAChB4tC,EAAW,GAAH,OAAM5vF,EAAN,iBAAkBA,EAAlB,iBAA8B4zB,GACpC4kC,EAAQl4D,EAARk4D,IAER,IAAKn7D,KAAKsG,MAAO,CACf,IAAM0xG,EAAa,GAEnBx1G,EAAQiK,SAAQ,SAAAogB,GACd,IAAMjX,EAAMiX,EAAI9pB,UAAJ,UAAmB8pB,EAAI9pB,UAAvB,YAAoCJ,EAApC,gBAA+C61G,GAAY,GACjE7yG,EAAK1C,EAAMw0G,YAAY5qF,GACvB4rF,EAAO,GAAH,OAAMliF,EAAN,YAAc5wB,EAAd,YAAoBw1D,GACxBo5C,EAAU3+F,EAAM,GAAK3S,EAAMg1G,eAAetyG,GAC1C+yG,EAAY7rF,EAAIpkB,MAAJ,kBAAsBokB,EAAIpkB,MAA1B,MAAqC,GACjDkwG,EAAU11G,EAAM62B,aAAen0B,EAAK,UAAY,GACtDqyG,EAAWpqG,KAAX,mCACgBhL,EADhB,oEAEiC2vF,EAFjC,mBAEkDkmB,EAFlD,qBAEiEliF,EAFjE,YAEyE4kC,EAFzE,sBAEwFx1D,EAFxF,cAE+FgzG,EAF/F,0CAGoB/iG,GAAO4iG,EAH3B,cAGuCE,EAHvC,kBAGyDD,EAHzD,cAGkElE,EAHlE,4CAQF,IAAMqE,EAAW54G,KAAK6D,GAAGkD,cAAR,WAA0BnE,EAA1B,UACjBg2G,EAAS90G,UAAT,uBAAoClB,EAApC,yBAAwDo1G,EAAWj2F,KAAK,IAAxE,UACA/hB,KAAKsG,MAAQsyG,EAAShxG,c,6BAI1B,SAAgB/B,GAAO,MACb5C,EAAUjD,KAAViD,MACF0C,EAAKE,GAAS5C,EAAMyqG,kBACpBmL,EAAO,UAAG74G,KAAKqmE,oBAAR,aAAG,EAAmBt/D,cAAnB,mBAA4CpB,EAA5C,QAChBkzG,IAAYA,EAAQF,SAAU,O,EA1CbJ,CAA0BT,I,ihCCW1BgB,GAAAA,SAAAA,I,0HACnB,WACE,gBACKxM,EAAStqG,eADd,IAEEskF,MAAO,GACPliF,KAAM,GACNknB,IAAK,GACLD,IAAK,GACL0qC,KAAM,M,sBAQV,WACE,OAAO/1D,KAAKwB,IAAI,UAAY,K,qBAO9B,WACE,OAAOxB,KAAKwB,IAAI,U,oBAOlB,WACE,OAAOxB,KAAKwB,IAAI,S,oBAOlB,WACE,OAAOxB,KAAKwB,IAAI,S,qBAOlB,WACE,OAAOxB,KAAKwB,IAAI,U,oBAWlB,SAAO4C,EAAMwE,GACX,OAAO5I,KAAKguG,IAAI,CAAE5pG,KAAAA,GAAQwE,K,wBAG5B,WAAkC,IAAvBgT,EAAuB,uDAAf,GAAIhT,EAAW,uDAAJ,GAC5B0jG,EAAS8C,eAAe9C,EAAUtsG,KAAM4b,EAAOhT,GAC/C,IAAMxE,EAAOpE,KAAKwB,IAAI,QAChB8kF,EAAQtmF,KAAKwB,IAAI,SACvBxB,KAAKsG,OAAQyyB,EAAAA,EAAAA,WAAY,IAAI8sD,GAAAA,EAAY,CAAE5iF,MAAOjD,OAE9CsmF,EAAMr/E,SAAW7C,GACnBpE,KAAK2D,IAAI,OAAQ2iF,EAAM,GAAI,CAAE9sE,OAAQ,IAEvC8yF,EAASE,SAASxsG,KAAM4b,EAAOhT,K,6BAGjC,WACE,gBACK0jG,EAASxqG,UAAUkrG,mBADxB,IAEE5oG,KAAM,O,wBAIV,SAAWgF,GAAgB,IAAXR,EAAW,uDAAJ,GACfk4D,EAASwrC,EAASxqG,UAAUqsG,WAAWvkD,MAAM5pD,KAAM+jB,WACzD,EAAwB/jB,KAAKsG,MAAMy/E,mBAAmBjlB,EAAOj7D,MAArC,IACtBmgF,UAAW,GACRp9E,IAFG/C,EAAR,EAAQA,MAAOzB,EAAf,EAAeA,KAMf,OAFA08D,EAAOj7D,MAAQA,EACfi7D,EAAO18D,KAAOA,EACP08D,I,0BAGT,WACE,IAAIj7D,EAAQ7F,KAAKwB,IAAI,SACjB4C,EAAOpE,KAAKwB,IAAI,QAIpB,OAHAqE,GAASif,EAAAA,EAAAA,aAAYjf,GAAiB,GAARA,EAC9BzB,IAAQ0gB,EAAAA,EAAAA,aAAY1gB,IAASyB,EAAQzB,EAAO,GAC5CyB,EAAQ,GAAH,OAAMA,GAAN,OAAczB,GACZkoG,EAASxqG,UAAU4sG,aAAa9kD,MAAM5pD,KAAM,CAAC6F,Q,EApGnCizG,CAAuBxM,G,sgCCXvByM,GAAAA,SAAAA,I,0HACnB,WACE,gBACKzM,GAAAA,eADL,IAEErlC,UAAW,Q,EAJI8xC,CAAuBzM,I,sgCCAvB0M,GAAAA,SAAAA,I,wHACnB,WACE,gBACK1M,GAAAA,UAAAA,QADL,IAEE,sBAAuB,oBACvB,qBAAsB,wBACtBhoD,OAAQ,O,2BAIZ,SAAcrhD,GACZ,IAAQL,EAAS5C,KAAT4C,KACR,qCACgBA,EADhB,iBAC6BA,EAD7B,+DAE+BK,EAAMzB,IAAI,OAFzC,oBAEyDyB,EAAMzB,IAAI,OAFnE,qBAEoFyB,EAAMzB,IAAI,QAF9F,8B,yBAOF,WAKE,OAJKxB,KAAKu9E,SACRv9E,KAAKu9E,OAASv9E,KAAK6D,GAAGkD,cAAc,sBAG/B/G,KAAKu9E,S,+BAGd,WACEv9E,KAAKiD,MAAMguG,QAAQjxG,KAAKi5G,cAAcpzG,S,mCAGxC,WACE7F,KAAKiD,MAAMguG,QAAQjxG,KAAKi5G,cAAcpzG,MAAO,CAAE2vD,SAAS,M,sBAG1D,SAAS3vD,GACP,IAAQ5C,EAAUjD,KAAViD,MACF69D,EAAS79D,EAAMkrG,WAAWtoG,GAChC7F,KAAKi5G,cAAcpzG,MAAkB,KAAVA,EAAe5C,EAAMyqG,kBAAoBrgF,WAAWyzC,EAAOj7D,OACtFymG,GAAAA,UAAAA,SAAAA,MAAkCtsG,KAAM+jB,a,sBAG1C,WACEuoF,GAAAA,UAAAA,SAAAA,MAAkCtsG,KAAM+jB,WAEnC/jB,KAAKiD,MAAMzB,IAAI,eAClBxB,KAAKo3G,UAAUvzG,GAAG8S,MAAMC,QAAU,U,yBAItC,WACE01F,GAAAA,UAAAA,YAAAA,MAAqCtsG,KAAM+jB,WAC3C/jB,KAAKu9E,OAAS,S,EApDGy7B,CAA2B1M,ICiBhD,SAAe3jE,IAAAA,WAAAA,OAA2BljC,EAAAA,GAAoB8yB,OAAO,CACnE0tC,cAAe,EAEf7iE,KAHmE,WAIjE,IAAQwF,EAAa5I,KAAb4I,KAAM9F,EAAO9C,KAAP8C,GACRurC,EAAKzlC,EAAKjJ,SAAUmD,MAAAA,OAAf,EAAeA,EAAItB,IAAI,iBAC9B6sC,IACFA,EAAGgP,YAAYr9C,KAAMquC,EAAGjpC,OAAO8zG,aAC/B7qE,EAAGiP,eAAet9C,KAAMquC,EAAGjpC,OAAO+zG,kBAItCzzG,MAAO,CACL,CACEC,GAAI,QACJ1C,MAAO4uG,EACP1uG,KAAMuzG,GACN9wG,OAJF,SAISC,GACL,GAAIA,GAAuB,SAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,YACJ1C,MAAOysG,EACPvsG,KAAMqyG,GACN5vG,OAJF,SAISC,GACL,GAAIA,GAAuB,aAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,OACJ1C,MAAOqpG,EACPnpG,KAAM4zG,GACNnxG,OAJF,SAISC,GACL,GAAIA,GAAuB,QAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,QACJ1C,MAAOqpG,EACPnpG,KAAMk0G,GACNzxG,OAJF,SAISC,GACL,GAAIA,GAAuB,SAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,SACJ1C,MAAOu0G,GACPr0G,KAAM20G,GACNlyG,OAJF,SAISC,GACL,GAAIA,GAAuB,UAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,QACJ1C,MAAOq1G,GACPn1G,KAAMo1G,GACN3yG,OAJF,SAISC,GACL,GAAIA,GAAuB,SAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,SACJ1C,MAAO81G,GACP51G,KAAM61G,GACNpzG,OAJF,SAISC,GACL,GAAIA,GAAuB,UAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,UACJ1C,MAAO61G,GACP31G,KAAMg0G,GACNvxG,OAJF,SAISC,GACL,GAAIA,GAAuB,WAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,SACJ1C,MAAO61G,GACP31G,KAAMg0G,GACNvxG,OAJF,SAISC,GACL,GAAIA,GAAuB,UAAdA,EAAMvE,KACjB,OAAOuE,IAIb,CACEF,GAAI,OACJ1C,MAAOqpG,EACPnpG,KAAMsyG,EACN7vG,OAJF,SAISC,GAEL,OADAA,EAAMvE,KAAO,OACNuE,O,whCClHMuzG,GAAAA,SAAAA,I,0HACnB,WACE,MAAO,CACLzzG,GAAI,GACJxB,KAAM,GACNiL,MAAM,EACN8sE,SAAS,EACTm9B,WAAY,GACZC,cAAe,EACf9uB,WAAY,M,wBAIhB,SAAW3uE,GAAgB,WAAXjT,EAAW,uDAAJ,GACb9F,EAAO8F,EAAP9F,GACR9C,KAAK8C,GAAKA,EACV,IAAMP,EAAIsZ,GAAO,GACX09F,EAAUv5G,KAAKw5G,gBAAgBj3G,EAAE82G,YACjCl1G,EAAOnE,KAAKwB,IAAI,SAAW,GAC7Boa,EAAQ,IACX5b,KAAKwB,IAAI,OAASxB,KAAK2D,IAAI,KAAMQ,EAAK4H,QAAQ,KAAM,KAAKutC,eAU1D19B,GAHEA,EALG29F,EAKKv5G,KAAKy5G,iBAAiBF,GAJtBv5G,KAAKwB,IAAI,cACdkZ,KAAI,SAAA6b,GAAI,OAAKrd,EAAAA,EAAAA,UAASqd,GAAQ,EAAKijF,gBAAgBjjF,GAAM,GAAKA,KAC9DP,OAAOoN,UAKE1oB,KAAI,SAAA6b,GAAI,OAAI,EAAKmjF,YAAYnjF,MAE3C,IAAMojF,EAAa,IAAI5J,GAAWn0F,EAAO,CAAE9Y,GAAAA,IAC3C62G,EAAW1K,OAASjvG,KACpBA,KAAK2D,IAAI,aAAcg2G,K,mBAOzB,WACE,OAAO35G,KAAKwB,IAAI,Q,qBAOlB,WAAU,MACFmE,EAAK3F,KAAKytB,QAChB,OAAO,UAAAztB,KAAK8C,UAAL,eAASkD,EAAT,+BAAmCL,MAAS3F,KAAKwB,IAAI,U,qBAO9D,SAAQqE,GACN,OAAO7F,KAAK2D,IAAI,OAAQkC,K,oBAO1B,WACE,QAAS7F,KAAKwB,IAAI,U,qBAOpB,SAAQqE,GACN,OAAO7F,KAAK2D,IAAI,OAAQkC,K,uBAO1B,WACE,QAAS7F,KAAKwB,IAAI,a,2BAUpB,WAAyB,IAAXoH,EAAW,uDAAJ,GACbgT,EAAQ5b,KAAKwB,IAAI,cACjB2H,EAAMyS,EAAMtL,QAAN,OAAmBsL,EAAMtL,QAAUsL,EAC/C,OAAOzS,EAAI6sB,QAAO,SAAAO,GAChB,IAAIt0B,GAAS,GAET2G,EAAKgxG,YACP33G,EAASs0B,EAAKk3E,SAAS,CAAEE,UAAU,KAGjC/kG,EAAKixG,mBAEP53G,GADes0B,EAAKk3E,SAAS,CAAEE,UAAU,KACrBp3E,EAAKk3E,YAG3B,OAAOxrG,O,yBAIX,SAAY0D,GACV,OAAO3F,KAAKkvG,gBAAgBl5E,QAAO,SAAAO,GAAI,OAAIA,EAAK/0B,IAAI,QAAUmE,KAAI,IAAM,O,yBAG1E,SAAY+wD,EAAU9tD,GACpB,OAAO5I,KAAKwB,IAAI,cAAcqF,IAAI7G,KAAK05G,YAAYhjD,GAAW9tD,K,8BAWhE,SAAiBgT,EAAOk+F,EAASC,GAM/B,IALA,IAAIC,EAAOp+F,EAAM3U,OACbgzG,EAASH,GAAW95G,KAAKwB,IAAI,cAC7B04G,EAAMl6G,KAAKwB,IAAI,iBACf24G,EAAW,GAEN/vG,EAAI,EAAG89B,EAAM+xE,EAAOhzG,OAAQmD,EAAI89B,EAAK99B,IAAK,CAIjD,IAHA,IAAIgwG,EAAQH,EAAO7vG,GACf2zB,EAAQ,EAEHyjB,EAAI,EAAGA,EAAIw4D,EAAMx4D,IAAK,CAC7B,IAAIjrB,EAAO3a,EAAM4lC,GACjB,GAAI44D,EAAM1jD,UAAYngC,EAAKmgC,UAAY0jD,EAAMz0G,IAAM4wB,EAAKmgC,cAAxD,CAEE,IAAI2jD,EAAUD,EAAM5vB,WAChB6vB,GAAWA,EAAQpzG,SACrBmzG,EAAM5vB,WAAaxqF,KAAKy5G,iBAAiBljF,EAAKi0D,YAAc,GAAI6vB,EAAS,IAE3Ez+F,EAAM4lC,GAAK04D,GAAM3hF,EAAAA,EAAAA,QAAOhC,EAAM6jF,GAASA,EACvCD,EAAS34D,GAAK5lC,EAAM4lC,GACpBzjB,EAAQ,GAKPA,IACHniB,EAAMhO,KAAKwsG,GACXD,EAASvsG,KAAKwsG,IAIlB,OAAOL,EAAKI,EAASnkF,QAAO,SAAA5rB,GAAC,OAAIA,KAAKwR,I,yBAGxC,SAAY2a,GACV,QAA6Brd,EAAAA,EAAAA,UAASqd,GAAQ,CAAEgC,OAAQhC,GAASA,IAAS,GAAlEgC,EAAR,EAAQA,OAAW86B,GAAnB,aACA,OAAI96B,EACF,SACMv4B,KAAKw5G,gBAAgB,CAACjhF,IAAS,IAAM,IACtC86B,GAGE98B,I,6BAUX,SAAgB3a,GAAO,MACf0+F,EAAS1+F,GAAS,GAExB,IAAK0+F,EAAOrzG,OAAQ,MAAO,GAE3B,IAAMszG,EAAO,UAAGv6G,KAAK8C,UAAR,aAAG,EAAStB,IAAI,gBAAgB+4G,QAE7C,OAAOA,MAAAA,OAAP,EAAOA,EAASriF,MAAMoiF,O,EA3LLlB,CAAev3G,EAAAA,G,sgCCXf24G,GAAAA,SAAAA,I,4HACnB,SAAWjkF,GAAiB,IAAX3tB,EAAW,uDAAJ,GACdjJ,EAAeiJ,EAAfjJ,OAAQmD,EAAO8F,EAAP9F,GAChB9C,KAAK8C,GAAKA,EACV9C,KAAKL,OAASA,EACdK,KAAKgD,SAAShD,KAAM,QAASA,KAAKy2B,W,mBAGpC,SAAM7a,GAAkB,IAAXhT,EAAW,uDAAJ,GACV9F,EAAO8F,EAAKnG,WAAZK,GACR,OAAO,IAAIs2G,GAAOx9F,EAAX,SAAuBhT,GAAvB,IAA6B9F,GAAAA,O,qBAGtC,SAAQwN,GAAmB,IAAX1H,EAAW,uDAAJ,GACf2U,EAAO3U,EAAK+tB,gBAAkB,GACpCpZ,EAAK9Q,SAAQ,SAAAguG,GAAI,OAAIA,EAAKj5G,IAAI,cAAciQ,e,EAf3B+oG,CAAgBh1G,EAAAA,Y,imBCDrC,I,GAAMm/C,GAAa,SAAA3iC,GAAK,OAAIA,EAAMtH,KAAI,SAAAhO,GAAI,MAAK,CAAE/G,GAAI+G,OAEhCguG,GAAAA,WACnB,cAAc,eACZ16G,KAAK26G,WAAa,SAClB36G,KAAK46G,UAAY,QACjB56G,KAAK66G,UAAY,QACjB76G,KAAK86G,WAAa,SAClB96G,KAAK+6G,SAAW,OAChB/6G,KAAKg7G,WAAa,SAClBh7G,KAAKi7G,cAAgB,YACrBj7G,KAAKk7G,UAAY,QACjBl7G,KAAKm7G,UAAY,CAAC,KAAM,IAAK,KAAM,MAAO,KAAM,MAChDn7G,KAAKo7G,gBAAkB,CAAC,KAAM,KAAM,MAAO,KAAM,MACjDp7G,KAAKq7G,UAAY,CAAC,IAAK,MACvBr7G,KAAKs7G,WAAa,CAAC,MAAO,MAAO,QACjCt7G,KAAKuvG,YAAc,CAAC,UAAW,UAAW,QAC1C,IAAMgM,EAAK,eACLC,EAAW,CAAC,aAAc,WAAY,UACtCC,EAAgB,GAAH,OAAOD,EAAP,CAAiB,WAAY,YAEhDx7G,KAAK07G,WAAa/2D,GAAW,CAAC,OAAQ,QAAS,YAC/C3kD,KAAK27G,aAAeh3D,GAAW,CAAC,SAAU,QAAS,UACnD3kD,KAAK47G,aAAej3D,GAAW,CAAC,SAAU,WAAY,WAAY,cAClE3kD,KAAK67G,SAAWl3D,GAAW,CAAC,SAAU,OAAQ,iBAC9C3kD,KAAK87G,aAAen3D,GAAW,CAAC,UAAW,SAAU,SAAU,SAC/D3kD,KAAK+7G,QAAUp3D,GAAW,CAAC,MAAO,cAAe,SAAU,mBAC3D3kD,KAAKg8G,YAAcr3D,GAAW,CAAC,QAAS,SAAU,eAAgB,OAAQ,SAC1E3kD,KAAKi8G,cAAgBt3D,GAAW,CAAC,SAAU,OAAQ,UAAW,WAAY,gBAC1E3kD,KAAKk8G,WAAav3D,GAAW,CAAC,OAAQ,UAAW,OAAQ,YAAa,OAAQ,WAAY,OAAQ,OAAQ,SAC1G3kD,KAAKm8G,UAAYx3D,GAAW,CAAC,OAAQ,OAAQ,UAC7C3kD,KAAKo8G,QAAUz3D,GAAW,CAAC,SAAU,WAAY,WAAY,UAC7D3kD,KAAKq8G,cAAgB13D,GAAW,CAAC,OAAQ,SAAU,QAAS,YAC5D3kD,KAAKy7G,cAAgB92D,GAAW82D,GAChCz7G,KAAKs8G,aAAe33D,GAAW,GAAD,OAAK62D,EAAL,CAAe,gBAAiB,eAAgB,kBAC9Ex7G,KAAKu8G,cAAgB53D,GAAW,GAAD,OAAK62D,EAAL,CAAe,gBAAiB,eAAgB,aAC/Ex7G,KAAKw8G,cAAgB73D,GAAW,CAAC,QAAF,eAAa82D,KAC5Cz7G,KAAKy8G,gBAAkB93D,GAAW,CAChC,MACA,QACA,SACA,mBACA,YACA,aACA,YAEF3kD,KAAK08G,gBAAkB/3D,GAAW,CAChC,OACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,WAEF3kD,KAAK28G,UAAYh4D,GAAW,CAC1B,WACA,cACA,cACA,YACA,eACA,eACA,aACA,gBACA,kBAEF3kD,KAAK48G,WAAa,CAChB,CAAEj3G,GAAI,MAAOmN,MAAO,QACpB,CAAEnN,GAAI,MAAOmN,MAAO,eACpB,CAAEnN,GAAI,MAAOmN,MAAO,SACpB,CAAEnN,GAAI,MAAOmN,MAAO,UACpB,CAAEnN,GAAI,MAAOmN,MAAO,UACpB,CAAEnN,GAAI,MAAOmN,MAAO,aACpB,CAAEnN,GAAI,MAAOmN,MAAO,QACpB,CAAEnN,GAAI,MAAOmN,MAAO,cACpB,CAAEnN,GAAI,MAAOmN,MAAO,eAEtB9S,KAAK68G,eAAiB,CACpB,CAAEl3G,GAAI,GAAImN,MAAO,WACjB,CAAEnN,GAAI,QAASmN,MAAO,WAExB9S,KAAK88G,UAAY,CACf,mBAAqBvB,EACrB,sBAAwBA,EACxB,kBAAoBA,EACpB,yBAA2BA,EAC3B,kCACA,iBACA,YAAcA,EACd,mBAAqBA,EACrB,qCAAuCA,EACvC,iBAAmBA,EACnB,gCACA,0BAA4BA,EAC5B,kBAAoBA,GACpB7gG,KAAI,SAAAqiG,GACJ,MAAO,CAAEp3G,GAAIo3G,EAAMjqG,MAAOiqG,EAAKt7G,MAAM,KAAK,OAI5CzB,KAAKg9G,eAAiB,CACpB,SACA,WACA,UACA,QACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,WAEFh9G,KAAKi9G,cAAgB,CAAC,SAAU,UAAW,WAC3Cj9G,KAAKk9G,YAAc,CAAEtmG,QAAS,CAAC,SAE/B5W,KAAKoD,O,oCAGP,SAAM4e,GAAO,WACX,OAAO,kBACLA,EAAMtH,KAAI,SAAAkc,GACR,IAAI1d,EAAAA,EAAAA,UAAS0d,GAAI,OAAO,EAAKp1B,IAAIo1B,GACjC,IAAQ2B,EAAoB3B,EAApB2B,OAAW86B,GAAnB,OAA4Bz8B,EAA5B,IACA,gBACK,EAAKp1B,IAAI+2B,IACT86B,S,kBAKX,WAAO,WACGk8C,EAAyCvvG,KAAzCuvG,YAAa2N,EAA4Bl9G,KAA5Bk9G,YAAavC,EAAe36G,KAAf26G,WAuOlC,OAtOA36G,KAAK4b,MAAQ,GAIb,CAEE,CAAC,gBAAiB,CAAEta,KAAMq5G,EAAY35E,QAAS,IAAKslD,MAAOtmF,KAAKo7G,kBAChE,CAAC,MAAO,CAAEp6E,QAAS,OAAQslD,MAAOtmF,KAAKm7G,UAAW5L,YAAAA,GAAe,iBACjE,CAAC,QAAS,GAAI,OACd,CAAC,SAAU,GAAI,OACf,CAAC,OAAQ,GAAI,OACb,CAAC,aAAc,CAAEvuE,QAAS,KAAO,OACjC,CAAC,eAAgB,GAAI,cACrB,CAAC,gBAAiB,GAAI,cACtB,CAAC,cAAe,GAAI,cACpB,CAAC,cAAe,CAAE1V,IAAK,GAAK,cAC5B,CAAC,gBAAiB,GAAI,eACtB,CAAC,iBAAkB,GAAI,eACvB,CAAC,eAAgB,GAAI,eACrB,CAAC,QAAS,CAAEA,IAAK,GAAK,OACtB,CAAC,YAAa,GAAI,SAClB,CAAC,YAAa,GAAI,SAClB,CAAC,SAAU,GAAI,SACf,CAAC,aAAc,GAAI,SACnB,CAAC,aAAc,GAAI,SACnB,CAAC,aAAc,CAAEyjF,eAAgBmO,GAAe,SAChD,CAAC,YAAa,CAAEl8E,QAAS,SAAUuuE,YAAavvG,KAAKg9G,gBAAkB,SACvE,CAAC,iBAAkB,CAAEh8E,QAAS,SAAUuuE,YAAavvG,KAAKi9G,eAAiB,OAC3E,CAAC,cAAe,GAAI,kBACpB,CAAC,gBAAiB,GAAI,iBACtB,CAAC,mBAAoB,CAAE3xF,IAAK,GAAK,iBACjC,CAAC,kBAAmB,CAAEorC,SAAU,gBAAiB64C,iBAAazmG,GAAa,eAC3E,CAAC,yBAA0B,GAAI,mBAC/B,CAAC,0BAA2B,GAAI,mBAChC,CAAC,4BAA6B,GAAI,mBAClC,CAAC,6BAA8B,GAAI,mBACnC,CAAC,eAAgB,CAAEw9E,MAAOtmF,KAAKo7G,iBAAmB,mBAClD,CAAC,eAAgB,GAAI,iBACrB,CAAC,eAAgB,GAAI,iBACrB,CAAC,kBAAmB,CAAEp6E,QAAS,OAAS,oBACxC,CAAC,oBAAqB,GAAI,iBAC1B,CAAC,sBAAuB,CAAEA,QAAS,KAAMslD,MAAOtmF,KAAKq7G,WAAa,mBAClE,CAAC,cAAe,GAAI,mBACpB,CAAC,qBAAsB,CAAE/M,aAAc,UAAWhoB,MAAOtmF,KAAKs7G,WAAYt6E,QAAS,IAAK1/B,KAAMq5G,IAC9F,CAAC,qBAAsB,CAAErM,aAAc,WAAa,sBACpD,CAAC,qBAAsB,CAAEA,aAAc,WAAa,sBACpD,CAAC,oBAAqB,CAAEttE,QAAS,IAAKstE,aAAc,SAAUhoB,WAAOx9E,GAAa,sBAClF,CAAC,oBAAqB,CAAEwlG,aAAc,UAAY,qBAClD,CAAC,oBAAqB,CAAEA,aAAc,UAAY,qBAClD,CAAC,QAAS,CAAEhtG,KAAMq5G,EAAY35E,QAAS,IAAK+tE,eAAgBmO,IAC5D,CAAC,YAAa,GAAI,SAClB,CAAC,cAAe,CAAEl8E,QAAS,KAAO,SAGlC,CAAC,QAAS,CAAE1/B,KAAMtB,KAAK66G,UAAW75E,QAAS,OAAQx+B,QAASxC,KAAKm8G,YACjE,CAAC,WAAY,CAAEn7E,QAAS,SAAUx+B,QAASxC,KAAKo8G,SAAW,SAC3D,CAAC,aAAc,CAAEp7E,QAAS,OAAQx+B,QAASxC,KAAKq8G,eAAiB,SAGjE,CAAC,QAAS,CAAE/6G,KAAMtB,KAAK46G,UAAW55E,QAAS,UAC3C,CAAC,oBAAqB,GAAI,SAC1B,CAAC,eAAgB,GAAI,SACrB,CAAC,mBAAoB,GAAI,SACzB,CAAC,mBAAoB,CAAEA,QAAS,QAAU,SAG1C,CAAC,mBAAoB,CAAE1/B,KAAMtB,KAAK+6G,SAAUzM,aAAc,MAAOttE,QAAS,OAAQwuE,MAAM,IAGxF,CAAC,UAAW,CAAEluG,KAAMtB,KAAKg7G,WAAYh6E,QAAS,IAAK1V,IAAK,EAAGD,IAAK,EAAG0qC,KAAM,MAGzE,CAAC,UAAW,CAAEz0D,KAAMtB,KAAK86G,WAAY95E,QAAS,QAASx+B,QAASxC,KAAKg8G,cACrE,CAAC,iBAAkB,CAAEh7E,QAAS,MAAOx+B,QAASxC,KAAK+7G,QAASjN,SAAUoO,GAAe,WACrF,CAAC,YAAa,CAAEl8E,QAAS,SAAUx+B,QAASxC,KAAK67G,UAAY,kBAC7D,CAAC,kBAAmB,CAAE76E,QAAS,aAAcx+B,QAASxC,KAAKs8G,cAAgB,aAC3E,CAAC,cAAe,CAAEt7E,QAAS,UAAWx+B,QAASxC,KAAKy7G,eAAiB,aACrE,CAAC,gBAAiB,CAAEj5G,QAASxC,KAAKu8G,eAAiB,eACnD,CAAC,aAAc,CAAEv7E,QAAS,OAAQx+B,QAASxC,KAAKw8G,cAAezN,eAAgBmO,GAAe,WAC9F,CAAC,cAAe,CAAEl8E,QAAS,+BAAgCx+B,QAASxC,KAAK88G,WAAa,WACtF,CAAC,cAAe,CAAE97E,QAAS,MAAOx+B,QAASxC,KAAK48G,YAAc,WAC9D,CAAC,eAAgB,CAAE57E,QAAS,QAASx+B,QAASxC,KAAK08G,iBAAmB,WACtE,CAAC,kBAAmB,CAAE17E,QAAS,GAAIx+B,QAASxC,KAAK68G,gBAAkB,WACnE,CAAC,oBAAqB,CAAE77E,QAAS,SAAUx+B,QAASxC,KAAK47G,cAAgB,WACzE,CAAC,sBAAuB,CAAE56E,QAAS,WAAYx+B,QAASxC,KAAK28G,WAAa,WAC1E,CAAC,wBAAyB,CAAE37E,QAAS,SAAUx+B,QAASxC,KAAK27G,cAAgB,WAC7E,CAAC,kBAAmB,CAAE36E,QAAS,OAAQx+B,QAASxC,KAAK07G,YAAc,WACnE,CAAC,sBAAuB,CAAE16E,QAAS,QAASx+B,QAASxC,KAAKy8G,iBAAmB,WAC7E,CAAC,6BAA8B,CAAEz7E,QAAS,OAAQx+B,QAASxC,KAAKi8G,eAAiB,WACjF,CAAC,SAAU,CAAEj7E,QAAS,OAAQx+B,QAASxC,KAAKk8G,YAAc,WAC1D,CAAC,WAAY,CAAEl7E,QAAS,UAAWx+B,QAASxC,KAAK87G,cAAgB,WACjE,CAAC,aAAc,GAAI,YACnB,CAAC,aAAc,GAAI,YAGnB,CACE,SACA,CACEx6G,KAAMtB,KAAKi7G,cACXzwB,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,aAAc5yB,GAAI,kBAC5B,CAAE4yB,OAAQ,eAAgB5yB,GAAI,oBAC9B,CAAE4yB,OAAQ,gBAAiB5yB,GAAI,qBAC/B,CAAE4yB,OAAQ,cAAe5yB,GAAI,uBAInC,CACE,UACA,CACE6kF,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,cAAe5yB,GAAI,mBAC7B,CAAE4yB,OAAQ,gBAAiB5yB,GAAI,qBAC/B,CAAE4yB,OAAQ,iBAAkB5yB,GAAI,sBAChC,CAAE4yB,OAAQ,eAAgB5yB,GAAI,uBAGlC,UAEF,CACE,SACA,CACE6kF,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,eAAgB5yB,GAAI,oBAC9B,CAAE4yB,OAAQ,eAAgB5yB,GAAI,oBAC9B,CAAE4yB,OAAQ,eAAgB5yB,GAAI,uBAGlC,UAEF,CACE,gBACA,CACE6kF,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,yBAA0B5yB,GAAI,8BACxC,CAAE4yB,OAAQ,0BAA2B5yB,GAAI,+BACzC,CAAE4yB,OAAQ,6BAA8B5yB,GAAI,kCAC5C,CAAE4yB,OAAQ,4BAA6B5yB,GAAI,oCAG/C,UAEF,CACE,YACA,CACE6kF,WAAYxqF,KAAKm9G,MAAM,CACrB,qBACA,qBACA,qBACA,oBACA,oBACA,uBAGJ,UAIF,CACE,aACA,CACE77G,KAAMtB,KAAKk7G,UACX1wB,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,sBAAuB5yB,GAAI,2BACrC,CAAE4yB,OAAQ,sBAAuB5yB,GAAI,2BACrC,CAAE4yB,OAAQ,6BAA8B5yB,GAAI,sCAIlD,CACE,aACA,CACE6jF,SAAS,EACTyoB,WAAY,SAAC5wD,EAAD,GAAmB,IAAb8tD,EAAa,EAAbA,OACVvyF,EAAIuyF,EAAO,gBACXtyF,EAAIsyF,EAAO,gBACXt+D,EAAOs+D,EAAO,mBACdiO,EAASjO,EAAO,qBACtB,gBAAUvyF,EAAV,YAAeC,EAAf,YAAoBg0B,EAApB,YAA4BusE,IAE9B5yB,WAAYxqF,KAAKm9G,MAAM,CACrB,eACA,eACA,kBACA,oBACA,mBACA,qBAGJ,cAEF,CACE,cACA,CACEn8E,QAAS,OACTixE,WAAY,SAAC5wD,EAAD,GAAmB,IAAb8tD,EAAa,EAAbA,OACVvyF,EAAIuyF,EAAO,iBACXtyF,EAAIsyF,EAAO,iBACXt+D,EAAOs+D,EAAO,oBACpB,gBAAUvyF,EAAV,YAAeC,EAAf,YAAoBg0B,IAEtB25C,WAAYxqF,KAAKm9G,MAAM,CAAC,gBAAiB,gBAAiB,mBAAoB,uBAEhF,cAEF,CACE,aACA,CACExN,UAAU,EACVsC,WAAY,SAAC5wD,EAAD,GAAmB,IAAb8tD,EAAa,EAAbA,OACVkO,EAASlO,EAAO,yBAChBh+E,EAAMg+E,EAAO,2BACbmO,EAAMnO,EAAO,6BACbvnE,EAAOunE,EAAO,uBACpB,gBAAUkO,EAAV,YAAoBlsF,EAApB,YAA2BmsF,EAA3B,YAAkC11E,IAEpC4iD,WAAYxqF,KAAKm9G,MAAM,CACrB,CAAE5kF,OAAQ,mBAAoB5yB,GAAI,wBAClC,CAAE4yB,OAAQ,oBAAqB5yB,GAAI,yBACnC,CAAE4yB,OAAQ,sBAAuB5yB,GAAI,2BACrC,CAAE4yB,OAAQ,wBAAyB5yB,GAAI,6BACvC,CAAE4yB,OAAQ,kBAAmB5yB,GAAI,0BAGrC,eAEF8G,SAAQ,YAAuB,oBAArB8pB,EAAqB,KAAfgmB,EAAe,KAAVuwD,EAAU,KAC/B,EAAKjmG,IAAI0vB,EAAMgmB,GAAO,GAAI,CAAEuwD,KAAAA,OAGvB9sG,O,iBAGT,SAAI02D,GAA+B,IAArBna,EAAqB,uDAAf,GAAI3zC,EAAW,uDAAJ,GACvBkkG,EAAOlkG,EAAKkkG,MAAQ,GACpByQ,EAAUv9G,KAAK4b,MAAMkxF,GAAQp2C,IAAa,GAC1Cz0D,EAAS,SAAKs7G,GAAR,IAAiB7mD,SAAAA,GAAana,GAK1C,OAJIt6C,EAAOuoF,aAAc3lF,EAAAA,EAAAA,YAAW5C,EAAOuoF,cACzCvoF,EAAOuoF,WAAavoF,EAAOuoF,cAE7BxqF,KAAK4b,MAAM86C,GAAYz0D,EAChBA,I,iBAGT,SAAIs0B,GACF,OAAOv2B,KAAK4b,MAAM2a,IAAS,O,mBAQ7B,SAAM3a,GAAO,WACL3Z,EAAS,GAOf,QANiBiX,EAAAA,EAAAA,UAAS0C,GAAS,CAACA,GAASA,GAEpCnP,SAAQ,SAAA8pB,GACft0B,EAAO2L,KAAK,EAAKpM,IAAI+0B,IAAS,CAAEmgC,SAAUngC,OAGrCt0B,M,EA3YUy4G,G,kdCAA8C,GAAAA,SAAAA,I,0HACnB,YAAyB,MAAd76G,EAAc,EAAdA,IAAKmQ,EAAS,EAATA,MACRmhG,EAAK,UAAGj0G,KAAK8C,UAAR,aAAG,EAASoN,UAAU,SAC3ButG,GAAYxJ,MAAAA,OAAA,EAAAA,EAAOxf,QAAS,GAC5BipB,EAAS,GAAH,OAAM/6G,EAAN,WAEZ,OAAOuB,EAAAA,GAAAA,GAAP,qLACgBw5G,EACEA,EAAiBD,EACjBC,EAAgB5qG,K,oBAKpC,WACE,MAAO,CACL,4BAA6B,Y,wBAIjC,SAAWvQ,GACT,IAAMG,EAASH,EAAEG,QAAU,GACnBO,EAAUjD,KAAViD,MACAH,EAAOJ,EAAPI,GACR9C,KAAK0C,OAASA,EACd1C,KAAK8C,GAAKA,EACV9C,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKkD,QAC5ClD,KAAKgD,SAASC,EAAO,cAAejD,KAAKgwF,YACzChwF,KAAKgD,SAASC,EAAO,iBAAkBjD,KAAKwW,oB,wBAG9C,WACE,IAAQ7R,EAAoB3E,KAApB2E,IAAK1B,EAAejD,KAAfiD,MAAON,EAAQ3C,KAAR2C,IACd0N,EAASpN,EAAMoN,SACrB1L,EAAI0L,EAAS,WAAa,eAA1B,UAA4C1N,EAA5C,SACA3C,KAAK29G,kBAAkBhnG,MAAMC,QAAUvG,EAAS,GAAK,S,8BAGvD,WACErQ,KAAK6D,GAAG8S,MAAMC,QAAU5W,KAAKiD,MAAM4vC,YAAc,GAAK,S,6BAGxD,WACE,IAAQluC,EAAa3E,KAAb2E,IAAKhC,EAAQ3C,KAAR2C,IACb,OAAOgC,EAAImD,KAAJ,WAAanF,EAAb,eAA8BnB,IAAI,K,oBAG3C,WACE,IAAQyB,EAAUjD,KAAViD,MACRA,EAAM26G,SAAS36G,EAAMzB,IAAI,W,8BAG3B,WACE,IAAQyB,EAAkBjD,KAAlBiD,MAAOP,EAAW1C,KAAX0C,OACTyzD,EAAOlzD,EAAMzB,IAAI,cAEvB,GAAI20D,EAAM,CACR,IAAMhzD,EAAO,IAAImyG,EAAe,CAAE7yG,WAAY0zD,EAAMzzD,OAAAA,IACpD1C,KAAK2E,IAAIqD,OAAO7E,EAAKqE,SAAS3D,O,oBAIlC,WACE,IAAQlB,EAAoB3C,KAApB2C,IAAKM,EAAejD,KAAfiD,MAAO0B,EAAQ3E,KAAR2E,IACdgB,EAAK1C,EAAMwqB,QACX3a,EAAQ7P,EAAMumC,UAKpB,OAJA7kC,EAAIT,KAAKlE,KAAK+D,SAAS,CAAEpB,IAAAA,EAAKmQ,MAAAA,KAC9B9S,KAAK69G,mBACLl5G,EAAIiI,KAAK,QAAT,UAAqBjK,EAArB,kBAAkCA,EAAlC,mBAAgDgD,EAAhD,eACA3F,KAAKgwF,aACEhwF,S,EAvEUw9G,CAAmBx5G,EAAAA,M,6bCAnB85G,GAAAA,SAAAA,I,4HACnB,WAAmB,IAARv7G,EAAQ,uDAAJ,GACL5C,EAAwB4C,EAAxB5C,OAAR,EAAgC4C,EAAhBG,OAAAA,OAAhB,MAAyB,GAAzB,EACM+B,EAAOzE,KAAKyC,WAClBzC,KAAK2C,IAAMD,EAAOvC,aAAe,GACjCH,KAAK4C,KAAOF,EAAOG,cAAgB,GACnC7C,KAAK0C,OAASA,EACd1C,KAAKL,OAASA,EACdK,KAAKgD,SAASyB,EAAM,MAAOzE,KAAKwX,OAChCxX,KAAKgD,SAASyB,EAAM,QAASzE,KAAKwH,U,oBAGpC,WAAS,WACPxD,EAAAA,KAAAA,UAAAA,OAAAA,MAA4BhE,KAAM+jB,WAClC,CAAC,SAAU,SAAU,MAAMtX,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,Q,mBAGrD,SAAMnH,EAAO4F,GAAc,IAAXD,EAAW,uDAAJ,GACrB5I,KAAKkjD,gBAAgBjgD,EAAO,KAAM2F,K,6BAGpC,SAAgB3F,EAAOmE,GAAuB,IAAXwB,EAAW,uDAAJ,GAChClG,EAAe1C,KAAf0C,OAAQmB,EAAO7D,KAAP6D,GACV6O,EAAWtL,GAAcvD,EACzByD,EAAW,IAAIk2G,GAAW,CAAEv6G,MAAAA,EAAOP,OAAAA,IAAU8E,SAAS3D,GAG5D,OAFA0xG,EAAAA,EAAAA,IAAc7iG,EAAUpL,EAAUsB,EAAK9B,IAEhCQ,I,oBAGT,WAAS,WACC3C,EAAmB3E,KAAnB2E,IAAKhC,EAAc3C,KAAd2C,IAAKC,EAAS5C,KAAT4C,KAClB+B,EAAIoD,QACJ,IAAMiR,EAAO9Q,SAASC,yBAItB,OAHAnI,KAAKyC,WAAW2F,MAAK,SAAAnF,GAAK,OAAI,EAAKigD,gBAAgBjgD,EAAO+V,MAC1DrU,EAAIqD,OAAOgR,GACXrU,EAAIC,SAAJ,UAAgBjC,EAAhB,mBAA8BC,EAA9B,kBAA4CA,EAA5C,cACO5C,S,EArCU89G,CAAoB95G,EAAAA,M,ykBCuElC,IAAM+J,GAAQ,QACRC,GAAQ,GAAH,OAAMD,GAAN,KACLgwG,GAAW,GAAH,OAAM/vG,GAAN,UACRgwG,GAAc,GAAH,OAAMD,GAAN,QACXE,GAAiB,GAAH,OAAMF,GAAN,WACdG,GAAiB,GAAH,OAAMH,GAAN,WACdI,GAAS,GAAH,OAAMnwG,GAAN,YACNowG,GAAY,GAAH,OAAMD,GAAN,QACTE,GAAe,GAAH,OAAMF,GAAN,WACZG,GAAW,GAAH,OAAMH,GAAN,WACRI,GAAgB,GAAH,OAAMvwG,GAAN,gBACbwwG,GAAW,GAAH,OAAMxwG,GAAN,UACRM,GAAW,GAAH,OAAMN,GAAN,UAEfywG,GAAU,SAAA54G,GAAK,OAAIA,GAAmB,IAAVA,GAElC,oBACE,IAAI2kF,EACAP,EAASy0B,EAEb,gBACK1vG,EAAAA,GADL,IAGEoqG,OAAAA,GAEAh0G,OAAQ,CACNyI,IAAKE,GACL4wG,UAAWX,GACXY,aAAcX,GACdY,aAAcX,GACdhF,YAAakF,GACbjF,eAAgBkF,GAChBhR,eAAgBiR,GAChBjL,YAAakL,GACb76G,OAAQ86G,GACRv9G,OAAQqN,IAGVnK,KAAM,eAcNf,KAhCF,WAgCoB,WAAbV,EAAa,uDAAJ,IACZwU,EAAAA,EAAAA,SAAQlX,KAAM,sBACdA,KAAKs8C,aAAa7sC,EAAU/M,GAC5B,IAAMmG,EAAI7I,KAAK0C,OACPI,EAAO+F,EAAP/F,GACFF,EAAOiG,EAAEhG,aACXD,IAAMiG,EAAE1I,YAAcyC,EAAOiG,EAAE1I,aACnCH,KAAKu6G,QAAU,IAAIG,GACnBlwB,EAAa,IAAIulB,GAAW,GAAI,CAAEjtG,GAAAA,EAAInD,OAAQK,OAC9CiqF,EAAU,IAAIuwB,GAAQ,GAAZ,SAAqB3xG,GAArB,IAAwBlJ,OAAQK,QAC1C,IAAMiD,EAAQ,IAAIpB,EAAAA,EAAM,CAAEujG,QAAS,KACnCplG,KAAKiD,MAAQA,EACbjD,KAAKq9C,YAAY4sC,EAAS+zB,IAC1Bh+G,KAAKs9C,eAAe2sC,EAASg0B,IAC7Bj+G,KAAKu9C,eAAe0sC,EAASi0B,IAG7B,IAAM5yG,EAAK,oGACLwzG,GAAQ/uG,EAAAA,EAAAA,WAAS,kBAAM,EAAKgvG,aAClC97G,EAAMD,SAASF,EAAIwI,EAAIwzG,GAEvB77G,EAAMD,SAASF,EAAI,oBAAqB9C,KAAKg/G,oBAG7C,IAAMC,GAAUlvG,EAAAA,EAAAA,WAAS,WACvB,EAAKmvG,YACL,EAAKlvG,iBAEP/M,EAAMD,SAASF,EAAI,6BAA8Bm8G,GAGjD,IAAME,GAAYpvG,EAAAA,EAAAA,WAAS,kBAAM,EAAKC,iBAMtC,OALA/M,EAAMD,SAASF,EAAf,UAAsBy7G,GAAtB,YAAuCC,IAAYW,GAGnDl8G,EAAM0M,GAAG,qBAAqB,kBAAM7M,EAAG4B,QAAQ85G,GAAU,EAAKpyG,kBAEvDpM,MAGT++G,QAxEF,WAyEI/+G,KAAKsE,OAAOtE,KAAK8C,GAAG+8B,mBAGtB7vB,YA5EF,WA4EyB,IAAXpH,EAAW,uDAAJ,GACjB5I,KAAKo/G,MAAQp/G,KAAKo/G,OAASx2G,EAAKqH,UAChCjQ,KAAK8C,GAAG4B,QAAQ1E,KAAKoF,OAAOnE,OAAQ,CAAEgP,UAAWjQ,KAAKo/G,SAGxDhS,QAjFF,SAiFU9/F,GAAgB,6BAANxD,EAAM,iCAANA,EAAM,mBACtB,EAAA9J,KAAK8C,IAAG4B,QAAR,SAAgB4I,GAAhB,OAA0BxD,KAG5Bk1G,mBArFF,WAqFuB,WACXl8G,EAAO9C,KAAP8C,GACFu8G,EAAcr/G,KAAKs/G,mBACzBD,IACEv8G,MAAAA,GAAAA,EAAIy8G,MAAK,WACPz8G,EAAGtB,IAAI,eAAe0B,OAAOm8G,GAC7B,EAAKp8G,MAAMU,IAAI,CAAE07G,YAAa,YAIpCttG,OA/FF,WAiGIk4E,EAAQpjF,IAAI7G,KAAK0C,OAAOunF,QAAS,CAAEzwE,QAAQ,KAG7CxH,WApGF,WAqGIhS,KAAK+8C,cAkBPyiE,UAvHF,SAuHY75G,EAAIspG,GAAsB,IAAdzsG,EAAc,uDAAJ,GAC1BP,EAASjC,KAAKy/G,UAAU95G,GAO5B,OALK1D,IACHgtG,EAAOtpG,GAAKA,EACZ1D,EAASgoF,EAAQpjF,IAAIooG,EAAQzsG,IAGxBP,GAUTw9G,UAzIF,SAyIY95G,GAAe,IAAXiD,EAAW,uDAAJ,GACbO,EAAM8gF,EAAQp5E,MAAM,CAAElL,GAAAA,IAAM,GAElC,OADCwD,GAAOP,EAAKmiC,MAAQ/qC,KAAK0/G,aAAa/5G,GAChCwD,GAAO,MAWhBw2G,WAvJF,WAuJwB,IAAX/2G,EAAW,uDAAJ,GACVO,EAAM8gF,GAAWA,EAAQ35E,OAAU1H,EAAKszC,OAAL,OAAiB+tC,EAAQ35E,QAAU25E,EAAW,GACvF,OAAOrhF,EAAKszE,QAAU/yE,EAAI6sB,QAAO,SAAA5T,GAAC,OAAIA,EAAEywB,eAAe1pC,GAUzDy2G,aAnKF,SAmKej6G,GACX,OAAO3F,KAAK2/G,aAAaz8G,OAAOlD,KAAKy/G,UAAU95G,EAAI,CAAEolC,KAAM,MAsB7D80E,YA1LF,SA0LcC,EAAUppD,GAAqB,IAAX9tD,EAAW,uDAAJ,GAC/BqmG,EAASjvG,KAAKy/G,UAAUK,EAAU,CAAE/0E,KAAM,IAC5CxU,EAAO,KAGX,OAFI04E,IAAQ14E,EAAO04E,EAAO4Q,YAAYnpD,EAAU9tD,IAEzC2tB,GAWTwpF,YA1MF,SA0McD,EAAUn6G,GACpB,IACI4wB,EADE04E,EAASjvG,KAAKy/G,UAAUK,EAAU,CAAE/0E,KAAM,IAOhD,OAJIkkE,IACF14E,EAAO04E,EAAOztG,IAAI,cAAcw0B,QAAO,SAAAO,GAAI,OAAIA,EAAK/0B,IAAI,cAAgBmE,GAAM4wB,EAAK/0B,IAAI,QAAUmE,KAAI,IAGhG4wB,GAAQ,MAUjB24E,cA5NF,SA4NgB4Q,GACZ,IAAIlkG,EAAQ,KACNqzF,EAASjvG,KAAKy/G,UAAUK,EAAU,CAAE/0E,KAAM,IAGhD,OAFIkkE,IAAQrzF,EAAQqzF,EAAOztG,IAAI,eAExBoa,GAWTokG,eA5OF,SA4OiBF,EAAUn6G,GACvB,IAAMiW,EAAQ5b,KAAKkvG,cAAc4Q,GACjC,OAAOlkG,EAAQA,EAAM1Y,OAAOlD,KAAK+/G,YAAYD,EAAUn6G,IAAO,MAiBhErB,OA/PF,SA+PSZ,GAAmB,WAAXkF,EAAW,uDAAJ,GACZ9F,EAAO9C,KAAP8C,GACFwiG,GAAOtqF,EAAAA,EAAAA,SAAQtX,GAAUA,EAAS,CAACA,GACjCm6C,EAAaj1C,EAAbi1C,SACF7gB,EAAOl6B,EAAGtB,IAAI,eAChB4jG,EAAU,GAEdE,EAAKtvE,OAAOoN,SAAS32B,SAAQ,SAAA/I,GAC3B,IAAIT,EAAQS,EAEZ,IAAIwV,EAAAA,EAAAA,UAASxV,GAAS,CACpB,IAAM+zB,EAAOuF,EAAKmlB,QAAQz+C,IAAWs5B,EAAKglB,QAAQt+C,KACjDohB,EAAAA,EAAAA,aAAY+4B,IAAapmB,EAAK9zB,IAAI,CAAEk6C,SAAAA,IACrC56C,EAAQw0B,EAGV2tE,EAAQx3F,KAAK3K,MAGf,IAAMujB,EAAY5d,EAAK4d,WAAa4+E,EAAQpvE,QAAO,SAAAhwB,GAAC,OAAImvB,EAAAA,EAAAA,aAAYnvB,MAAIs5E,UAAU,GAClF8lB,EAAUA,EAAQ1qF,KAAI,SAAA1U,GAAC,OAAI,EAAKkvC,gBAAgBlvC,MAChD,IAAMstC,EAAQxwC,EAAGoiG,WACX+a,EAAa7a,EAAQhlD,QAAQk/B,UAAU,GACvC4gC,EAAoBlgH,KAAKmgH,eAAeF,EAAY,CAAE3sE,MAAAA,EAAO9sB,UAAAA,IAC/D64F,EAAcr/G,KAAKs/G,mBAoBvB,OAjBAx8G,EAAGy8G,MAAK,WAAM,MACZ,GAAIjsE,GAAAA,MAAS2sE,GAAJ,UAAIA,EAAY/a,gBAAhB,OAAI,OAAA+a,GAA0B,CACrC,IAAMtpG,EAAQspG,EAAWngG,WACpBu/F,EAGHA,EAAYn9D,SAASvrC,GAFrB0oG,EAAcriF,EAAKntB,SAAShJ,IAAI,CAAE0uB,UAAW,eAAgB5e,MAAAA,EAAOsnC,SAAS,EAAMF,WAAW,SAIvFshE,IACTriF,EAAK95B,OAAOm8G,GACZA,EAAc,SAIlBr/G,KAAKiD,MAAMU,IAAI,CAAEyhG,QAAAA,EAAS6a,WAAAA,EAAYC,kBAAAA,EAAmBb,YAAAA,EAAa74F,UAAAA,IACtExmB,KAAKk/G,UAAUt2G,GAERw8F,GAQTh5F,YAnTF,WAoTI,OAAOpM,KAAKiD,MAAMzB,IAAI,eAAiB,MAOzCq+B,eA3TF,WA4TI,OAAO7/B,KAAKiD,MAAMzB,IAAI,YAOxB4+G,mBAnUF,WAoUI,OAAOpgH,KAAKiD,MAAMzB,IAAI,sBAAwB,IAGhD89G,iBAvUF,WAwUI,OAAOt/G,KAAKiD,MAAMzB,IAAI,gBAAkB,MAU1C+rG,gBAlVF,SAkVkB52F,EAAO/N,GACrB5I,KAAK6/B,iBAAiBnlB,KAAI,SAAA1U,GAAC,OAAIA,EAAEka,SAASvJ,EAAO/N,MAGjD,IAAMlF,EAAS1D,KAAKoM,cACdi0G,EAAcrgH,KAAKs/G,mBACzB57G,IAAU28G,MAAAA,GAAAA,EAAan+D,SAASx+C,EAAOoc,WAAYlX,KAUrD03G,WAlWF,SAkWa/pF,GACT,OAAOv2B,KAAKu6G,QAAQ/4G,IAAI+0B,IAO1BgqF,cA1WF,WA2WI,OAAOvgH,KAAKu6G,QAAQ3+F,OAgBtB4kG,WA3XF,SA2XajqF,EAAM5kB,GACf,OAAO3R,KAAKu6G,QAAQ1zG,IAAI0vB,EAAM5kB,IAYhCujC,gBAxYF,SAwYkBjyC,GAAqB,MAAdT,EAAc,uDAAJ,GACvBM,EAAO9C,KAAP8C,GACAo7B,EAAY17B,EAAZ07B,QAER,GAAIp7B,GAAE,UAAIG,SAAJ,OAAI,EAAO60B,OAAQ,CACvB,IAYIL,EAZE/0B,EAASI,EAAGoN,YACZ2wC,EAAK/9C,EAAGtB,IAAI,eACZ8iG,EAAOxhG,EAAGtB,IAAI,eACd6sC,EAAKvrC,EAAGtB,IAAI,mBACZi/G,EAASpyE,EAAKA,EAAGn+B,YAAc,GAC/BojC,EAAS5wC,EAAOg+G,kBAAsC,GAAlB59G,EAAGtB,IAAI,SAC3Cq7B,EAAU55B,EAAMzB,IAAI,WACpBgT,EAAQqoB,EAAQopE,eAChB0a,EAAansG,EAAMvN,OACnB25G,GAAcH,EAAOtd,gBAAkB3gG,EAAQo+G,WAC/CxxE,EAAU,CAAEvZ,QAAS,GACrBjtB,EAAO,CAAE0qC,MAAAA,EAAOlE,QAAAA,GAStB,GAFAyR,EAAGlwC,OAECgwG,GAAcC,EAAY,CAC5B,IAAMC,EAAU/9G,EAAGw/C,mBACnB7qB,EAAO6sE,EAAK9iG,IAAIgT,EAAO8+B,EAAOutE,KAEhB3iF,IACZzG,EAAO6sE,EAAKz9F,IAAI2N,EAAO8+B,EAAOutE,EAAS,GAAIzxE,SAExC,GAAI1sC,EAAOo+G,iBAAkB,CAClC,IAAMn7G,EAAK1C,EAAMwqB,UACjBgK,EAAO6sE,EAAK9hD,UAAU78C,EAAIiD,MAChBs1B,IAAYzG,EAAO6sE,EAAKjiD,UAAU18C,EAAI,GAAIiD,IAChD3F,EAAM4oD,GAAG,YAAYp0B,EAAK9zB,IAAI,UAAW,EAAGyrC,GAGlD3X,IAASx0B,EAAQw0B,GACjBopB,EAAG34B,QAGL,OAAOjlB,GAGTk9G,eAtbF,SAsbiBz8G,GAAmC,6DAAJ,GAArB4vC,EAAyB,EAAzBA,MAAO9sB,EAAkB,EAAlBA,UACtB1jB,EAAO9C,KAAP8C,GACJb,EAAS,GAEb,GAAIa,GAAMY,EAAQ,CAChB,IAAM4xB,EAAM9O,EACN89E,EAAOxhG,EAAGtB,IAAI,eACdu/G,EAASj+G,EAAGtB,IAAI,eAAe85B,aAAa,OAC5C3gB,EAAMjX,EAAOo0B,OAASp0B,EAASA,EAAOoa,eACtCkjG,EAAU,CAAE3Y,aAAa,EAAMnsD,OAAO,GACxC+kE,EAAW,GACXC,EAAa,GACb5pF,EAAQ,GAGR3c,GACFsmG,EAAW3c,EAAKliD,SAAL,WAAkBznC,EAAI8S,UAEjC6J,GADA4pF,EAAa5rF,EAAMgvE,EAAKliD,SAAS9sB,EAAIkpB,eAAe1hB,YAAYkkF,IAAY,IACzDviF,OAAOwiF,KAE1BA,EAAW3rF,EAAMgvE,EAAKliD,SAAL,WAAkB9sB,EAAI7H,UAAa,GACpDyzF,EAAa5c,EAAKliD,SAAS1+C,EAAO86C,eAAe1hB,YAAYkkF,IAC7D1pF,EAAQ2pF,EAASxiF,OAAOyiF,IAG1B,IAAMrzG,EAAMypB,EACTtB,QAAO,SAAAyB,GAAI,OAAM3S,EAAAA,EAAAA,aAAYwuB,GAAuC,EAA9B7b,EAAKj2B,IAAI,WAAa8xC,KAC5DxxB,KAAKi/F,EAAOI,WACZ7hC,UAGHr9E,EAAS4L,EAAIuyC,MAAMvyC,EAAI8G,QAAQjR,GAAU,GAG3C,OAAOzB,GA+BTyP,QAvfF,SAufU/L,EAAIgM,GACV64E,EAAW94E,QAAQ/L,EAAIgM,IAQzBC,QAhgBF,SAggBUjM,GACN,OAAO6kF,EAAW54E,QAAQjM,IAO5BkM,SAxgBF,WAygBI,OAAO24E,EAAW34E,YAmBpBuvG,WA5hBF,SA4hBaz7G,GAAoC,6DAAJ,GAAI,IAA9B1C,MAAAA,OAA8B,MAAtB,GAAsB,MAAlBE,KAAAA,OAAkB,MAAX,GAAW,EACrCT,EAAW1C,KAAX0C,OACFpB,EAAOtB,KAAK4R,QAAQjM,GAE1B,GAAIrE,EACF,OAAO,IAAIA,EAAK6B,KAAT,IACLF,MAAO,IAAI3B,EAAK2B,MAAMA,GACtBP,OAAAA,GACGS,KAUTqE,OA9iBF,WA+iBI,IAAQ9E,EAAe1C,KAAf0C,OAAQI,EAAO9C,KAAP8C,GACVe,EAAK66G,GAAYA,EAAS76G,GAQhC,OAPA66G,EAAW,IAAIZ,GAAY,CACzBj6G,GAAAA,EACAf,GAAAA,EACAJ,OAAAA,EACAD,WAAYwnF,EACZtqF,OAAQK,QAEMwH,SAAS3D,IAG3B67G,aA3jBF,SA2jBeI,GACX,IAAQh9G,EAAO9C,KAAP8C,GACRA,GAAMA,EAAGm9B,WAAH,WAAkB6/E,EAAlB,wBAGRZ,UAhkBF,SAgkBYt2G,GAAM,WACRq3G,EAAajgH,KAAKoM,cACxB,GAAK6zG,EAAL,CAEA,IAAMz5F,EAAYxmB,KAAKiD,MAAMzB,IAAI,aAC3B0+G,EAAoBlgH,KAAKogH,qBACzBzpG,EAAQspG,EAAWngG,WACnBuhG,EAAenB,EAAkBxlG,KAAI,SAAAkc,GAAC,MAAK,CAC/ClzB,OAAQkzB,EACRjgB,MAAOigB,EAAE9W,eAGXmqE,EAAQvvE,KAAI,SAAAu0F,GACVA,EAAOC,gBAAgBx0F,KAAI,SAAA6b,GACzB,EAAK+qF,SAAS/qF,EAAM5f,EAAO0qG,EAAcz4G,SAK7CqhF,EAAQx9E,SAAQ,SAAAwiG,GACd,IAAMrzF,EAAQqzF,EAAOC,gBACrBtzF,EAAMnP,SAAQ,SAAA8pB,GACZ,IAAMsc,EAAYtc,EAAKgrF,kBAAkB,CAAE79G,OAAQu8G,EAAYz5F,UAAAA,EAAWyjE,QAAAA,IAC1E1zD,EAAK5yB,IAAI,UAAWkvC,MAEtB,IAAM2uE,EAAgB5lG,EAAMuG,MAAK,SAAAyU,GAAC,OAAIA,EAAEic,eACxCo8D,EAAOtrG,IAAI,UAAW69G,QAI1BF,SA9lBF,SA8lBW/qF,EAAM5f,EAAO0qG,EAAcz4G,GAAM,WAClCzE,EAAOoyB,EAAKiT,UACZ3jC,EAAQ8Q,EAAMxS,GACds9G,EAAShD,GAAQ54G,GACjB67G,EAA6B,UAAnBnrF,EAAK3kB,UACf+vG,EAAiC,cAAnBprF,EAAK3kB,UACnBib,EAAM,SAAKjkB,GAAR,IAAcukG,MAAM,IACvByU,GAAaD,IAAgBD,EAC/BlO,EAAYkO,EAAUnrF,EAAKsrF,qBAAqBlrG,GAAS,GACzD4lD,EAAWolD,EAAcprF,EAAKurF,oBAAoBnrG,GAAS,GAC3DorG,EAAWN,EAAS57G,EAAQ,KAC5Bm8G,EAAe,KAEnB,GAAKN,GAAyB,OAAdlO,GAAwBmO,GAA4B,OAAbplD,EAAoB,CACzE,IAAM/xD,EAASk3G,EAAU,uBAAyB,sBAC5CO,EAAaZ,EAAarrF,QAAO,SAAAY,GAAC,OAA8B,OAA1BL,EAAK/rB,GAAQosB,EAAEjgB,UAAiB,GAE5E,GAAIsrG,EAAY,CACdF,EAAWE,EAAWtrG,MAAMxS,GAC5B69G,EAAeC,EAAWv+G,OAC1B,IAAM0F,EAAMmtB,EAAK/rB,GAAQy3G,EAAWtrG,OAChC+qG,EACFlO,EAAYpqG,EAEZmzD,EAAWnzD,QAGV,IAAKq4G,EAAQ,CAClBM,EAAW,KACX,IAAME,EAAaZ,EAAarrF,QAAO,SAAAY,GAAC,OAAI6nF,GAAQ7nF,EAAEjgB,MAAMxS,OAAQ,GAEhE89G,IACFF,EAAWE,EAAWtrG,MAAMxS,GAC5B69G,EAAeC,EAAWv+G,QAO9B,GAHA6yB,EAAK2rF,kBAAkBF,GACvBJ,GAAarrF,EAAKo2E,mBAAqBoV,GAAYxrF,EAAK06E,QAAQ8Q,EAAUl1F,GAC1E60F,GAAWnrF,EAAKg9E,YAAYC,GAAa,IACrCmO,EAAa,CACf,IAAM/lG,EAAQ2a,EAAK24E,gBAGnB,GAAI34E,EAAK85E,aAAc,CACrB,IAAM3qC,EAAWnvC,EAAKurF,oBAAoBnrG,EAAO,CAAEs5F,QAAQ,KAAW,GAChEkS,EAAkBd,EAAa3mG,KAAI,SAAAkc,GAAC,gBACrCA,GADqC,IAExCjgB,MAAO4f,EAAKurF,oBAAoBlrF,EAAEjgB,MAAO,CAAEs5F,QAAQ,KAAW,QAEhEr0F,EAAMlB,KAAI,SAAAopC,GAAE,OAAI,EAAKw9D,SAASx9D,EAAI4hB,EAAUy8C,EAAiBv5G,WAE7D2tB,EAAKk6E,gBAAgBl0C,GAAY,GAAI1vC,GACrC0J,EAAK24E,gBAAgBx0F,KAAI,SAAAopC,GAAE,OAAIA,EAAGo+D,kBAAkBF,QAK1DxvG,QAxpBF,WAypBI,CAACg4E,EAAYP,GAASx9E,SAAQ,SAAAhI,GAC5BA,EAAKgN,QACLhN,EAAKgO,mBAEPisG,GAAYA,EAASx7G,SACrB,CAACsnF,EAAYP,EAASy0B,GAAUjyG,SAAQ,SAAArC,GAAC,MAAS,MAClDpK,KAAK8C,GAAK,GACV9C,KAAK0C,OAAS,GACd1C,KAAKu6G,QAAU,GACfv6G,KAAKiD,MAAQ,Q,6ICjwBnB,SACE9C,YAAa,OAIbuS,SAAU,GAGV0jD,cAAe,CAAC,CAAEvwD,OAAO,GAAS,CAAEA,MAAO,Y,6mCCJ7C,IAAM6iC,EAAIC,IAAAA,EAEWy5E,EAAAA,SAAAA,I,uBAqBnB,aAAoB,MAAR7/G,EAAQ,uDAAJ,IAAI,eAClB,cAAMA,IADY,2BApBX,KAoBW,iCAjBN,GAmBZ,MAAwBA,EAAhBG,OAAAA,OAAR,MAAiB,GAAjB,EACA,aAAQO,EAAR,EAAQA,MAAOo/G,EAAf,EAAeA,aACP3+G,EAAWT,EAAXS,OACApC,EAAS2B,EAAMoQ,WAAf/R,KACR,EAAKoB,OAASA,EACd,EAAKI,GAAKJ,EAAOI,GACjB,EAAKH,IAAMD,EAAOvC,aAAe,GACjC,EAAKyC,KAAOF,EAAOG,cAAgB,GACnC,EAAKa,OAASA,EACd,iBAAQd,EAAR,EAAQA,KAXU,OAYlB,EAAK0/G,SAAL,UAAmB1/G,EAAnB,iBAAgCA,EAAhC,iBAA6CtB,GAC7C,CACE,CAAC,eAAgB,EAAK8yG,eACtB,CAAC,SAAU,EAAKmO,aAChB91G,SAAQ,YAAkB,mBAAhBa,EAAgB,KAAT5D,EAAS,KAC1BzG,EAAMwS,IAAInI,EAAO5D,GACjB,EAAK1G,SAASC,EAAOqK,EAAO5D,MAE9BzG,EAAME,MAAN,UACA,EAAKH,SAASC,EAAO,eAAgB,EAAKuE,QAC1C,EAAKxE,SAASC,EAAO,qBAAsB,EAAKu/G,UAChD,EAAKp9G,OAAS,GACdi9G,EAAa51G,SAAQ,SAAAa,GAAK,OAAK,EAAKlI,OAAOkI,GAAS,cACpD,EAAKrE,iBACL,EAAK7F,OA1Ba,E,yCAfpB,WACE,OAAOpD,KAAKiD,MAAMzB,IAAI,gB,2BAGxB,WACE,IAAQoB,EAAS5C,KAAT4C,KACFkQ,EAAQ9S,KAAKumG,WACnB,6BAAsB3jG,EAAtB,2BAA2CkQ,EAA3C,cAAqDA,EAArD,Y,2BAGF,WACE,IAAQwvG,EAAatiH,KAAbsiH,SACR,6BAAsBA,EAAtB,0B,wBAgCF,WACE,MAAO,CACL97F,UAAWxmB,KAAK0D,OAChBiyD,MAAO31D,KAAKiD,MACZw/G,QAASziH,KAAK0iH,kB,wBAIlB,WACE1iH,KAAKkD,SACLlD,KAAK62B,Y,kBAGP,c,qBACA,c,sBACA,c,sBACA,c,qBACA,c,sBAMA,SAASvpB,GACP,IAAMzJ,EAAK7D,KAAK0iH,eACZ7+G,KAAOihB,EAAAA,EAAAA,aAAYjhB,EAAGgC,QACxB7F,KAAKiD,MAAMU,IAAI,QAASE,EAAGgC,OAE7B7F,KAAK2iH,QAAL,OACK3iH,KAAK4iH,cADV,IAEEt1G,MAAAA,O,+BAIJ,WACE,OAAOtN,KAAKiD,MAAMzB,IAAI,W,2BAGxB,SAAcqE,GACZ,IAAMhC,EAAK7D,KAAK0iH,eAChB7+G,IAAOA,EAAGgC,MAAQA,K,2BAOpB,SAAc5C,EAAO4C,GAAkB,IAAX+C,EAAW,uDAAJ,GACjC,GAAIA,EAAK8sD,WACP11D,KAAK6iH,cAAc5/G,EAAMzB,IAAI,UAC7BxB,KAAK8iH,iBACA,CACL,IAAM15G,EAAMpJ,KAAK+iH,oBACjB9/G,EAAMwyD,eAAersD,EAAKR,M,yBAQ9B,WACE,IAAQjE,EAAgB3E,KAAhB2E,IAAKjB,EAAW1D,KAAX0D,OACPoP,EAAQ9S,KAAKumG,WACfyc,EAAMhjH,KAAKm1G,cAAczxG,GAEzB1D,KAAKijH,cACPD,EACEhjH,KAAKijH,YAAY,CACfnwG,MAAAA,EACA0T,UAAW9iB,EACXiyD,MAAO31D,QACH,IAGV2E,EAAImD,KAAK,gBAAgBE,OAAOg7G,K,sBAQlC,WACE,IAAQlgH,EAAO9C,KAAP8C,GACR,EAAwB9C,KAAKiD,MAAMoQ,WAA3BP,EAAR,EAAQA,MAAO3O,EAAf,EAAeA,KACf,OAAOrB,EAAGkD,EAAH,qCAAmC7B,MAAW05D,EAAAA,EAAAA,YAAW/qD,GAAS3O,GAAM4H,QAAQ,KAAM,O,0BAM/F,WACE,OAAO/L,KAAK0D,S,wBAQd,WACE,IAAK1D,KAAK+kG,OAAQ,CAChB,IAAQjiG,EAAc9C,KAAd8C,GAAIG,EAAUjD,KAAViD,MACNolB,EAAKplB,EACHkB,EAASlB,EAAMoQ,WAAflP,KACFuiE,EAAMr+C,EAAG7mB,IAAI,gBAAkB6mB,EAAG7mB,IAAI,YAAc,GACpDF,EAAO+mB,EAAG7mB,IAAI,SAAW,OACzB8pB,EAAMjD,EAAG7mB,IAAI,OACb6pB,EAAMhD,EAAG7mB,IAAI,OACbqE,EAAQ7F,KAAKkjH,gBACb58G,EAAQoiC,EAAE,iBAAD,OAAiBpnC,EAAjB,4BAAuColE,EAAvC,QACTy8C,EAAWrgH,EAAGkD,EAAH,yCAAuC7B,KAAW,GACnEmC,EAAMsG,KAAKu2G,IAENr+F,EAAAA,EAAAA,aAAYjf,KACfwiB,EAAG1kB,IAAI,CAAEkC,MAAAA,GAAS,CAAE2T,QAAQ,IAC5BlT,EAAMiwB,KAAK,QAAS1wB,IAGlBylB,GACFhlB,EAAMiwB,KAAK,MAAOjL,GAGhBD,GACF/kB,EAAMiwB,KAAK,MAAOlL,GAGpBrrB,KAAK+kG,OAASz+F,EAEhB,OAAOtG,KAAK+kG,OAAOvjG,IAAI,K,0BAGzB,WACE,IAAQ8E,EAAkBtG,KAAlBsG,MAAOy+F,EAAW/kG,KAAX+kG,OACf,OAAOz+F,GAAUy+F,GAAUA,EAAOvjG,KAAOujG,EAAOvjG,IAAI,IAAOxB,KAAKojH,e,2BAGlE,WACE,IAAIv9G,EACE5C,EAAQjD,KAAKiD,MACbS,EAAS1D,KAAK0D,OACdS,EAAOlB,EAAMzB,IAAI,QAEvB,GAAIyB,EAAMzB,IAAI,cACZqE,EAAQnC,EAAOlC,IAAI2C,OACd,CACL,IAAM0zB,EAAQn0B,EAAOlC,IAAI,cACzBqE,EAAQ5C,EAAMzB,IAAI,UAAYq2B,EAAM1zB,GAGtC,OAAQ2gB,EAAAA,EAAAA,aAAYjf,GAAiB,GAARA,I,wBAG/B,WACE,OAAO7F,KAAKyiH,U,yBAOd,WACE,IAAQ99G,EAA4B3E,KAA5B2E,IAAK0+G,EAAuBrjH,KAAvBqjH,YAAapgH,EAAUjD,KAAViD,MACpBqgH,EAAS3+G,EAAImD,KAAK,gBAClBjE,EAAKy/G,EAAOA,EAAOr8G,OAAS,GAC9B+7G,EAAM//G,EAAMY,GAEXm/G,IACHA,EAAMhjH,KAAKujH,YAAcvjH,KAAKujH,YAAYvjH,KAAK4iH,cAAgB5iH,KAAKqmE,eAGlEntD,EAAAA,EAAAA,UAAS8pG,IACXn/G,EAAGC,UAAYk/G,EACfhjH,KAAKyiH,QAAU5+G,EAAG+D,aAElBy7G,EAAcx/G,EAAG4D,YAAYu7G,GAAOn/G,EAAG8D,aAAaq7G,EAAKn/G,EAAG+D,YAC5D5H,KAAKyiH,QAAUO,GAGjB//G,EAAMY,GAAK7D,KAAKyiH,U,sBAGlB,WACE,IAAQ3vG,EAAU9S,KAAKiD,MAAMoQ,WAArBP,MACR,OAAQ9S,KAAKwjH,UAAqB,IAAV1wG,I,sBAG1B,WACE9S,KAAKiD,MAAMY,GAAK,KAChB7D,KAAKwH,W,wBAGP,WACExH,KAAKyjH,SAASzjH,KAAK4iH,gB,oBAGrB,WACE,IAAQj+G,EAA0B3E,KAA1B2E,IAAKhC,EAAqB3C,KAArB2C,IAAKC,EAAgB5C,KAAhB4C,KAClB,EADkC5C,KAAViD,MACGoQ,WAAnB/R,EAAR,EAAQA,KAAMqE,EAAd,EAAcA,GACR+9G,EAAW1jH,KAAK0jH,UAAY1jH,KAAK0jH,WACjC9tG,EAAM,GAAH,OAAMjT,EAAN,SACT3C,KAAK+kG,OAAS,KACd,IAAI4e,EAAO,gBAAH,OAAkB/tG,EAAlB,YAAyBA,EAAzB,aAAiCtU,EAAjC,sBACJoiH,EAAW,gBAAH,OAAkB9gH,EAAlB,iCAAuD,GAD3D,gCAEQA,EAFR,qBAEyBA,EAFzB,sBAE2CtB,EAF3C,mCAIFtB,KAAKo1G,eACDvwG,EAAAA,EAAAA,YAAW7E,KAAKo1G,eACdp1G,KAAKo1G,cAAcp1G,KAAK4iH,cACxB5iH,KAAKo1G,cACP,GARF,8BAkBR,OANAzwG,EAAIoD,QAAQC,OAAO27G,GACnBD,GAAY1jH,KAAK4jH,cACjB5jH,KAAK6jH,cACL7jH,KAAK6D,GAAGd,UAAR,UAAuB6S,EAAvB,iBAAmCA,EAAnC,iBAA+CjQ,GAC/C3F,KAAK8iH,aACL9iH,KAAKkpB,SAASlpB,KAAK4iH,cACZ5iH,S,EA/QUoiH,CAAkBz5E,IAAAA,M,wbAkRvCy5E,EAAUtgH,UAAUugH,aAAe,CAAC,U,ICrRfyB,EAAAA,SAAAA,I,uBAGnB,aAA+B,MAAnBvhH,EAAmB,uDAAf,GAAIglF,EAAW,uDAC7B,cAAMhlF,IADuB,+BAFnB,GAIV,EAAKglF,UAAYA,EACjB,IAAM7kF,EAASH,EAAEG,QAAU,GACrBC,EAAMD,EAAOvC,aAAe,GAC5B2C,EAAKP,EAAEkJ,OALgB,OAM7B,EAAK/I,OAASA,EACd,EAAKI,GAAKA,EACV,EAAKH,IAAMA,EACX,EAAKC,KAAOF,EAAOG,cAAgB,GACnC,EAAKE,UAAL,UAAoBJ,EAApB,UACA,EAAKK,SAASF,EAAI,oBAAqB,EAAKihH,mBAC5C,EAAKA,oBAZwB,E,gDAmB/B,WACE,IAAQnhH,EAAwB5C,KAAxB4C,KAAMG,EAAkB/C,KAAlB+C,UACR6c,EAD0B5f,KAAP8C,GACTsJ,cAChBpM,KAAK6D,GAAGd,UAAR,UAAuBA,EAAvB,YAAoCH,EAApC,kBAAkDA,EAAlD,aACA5C,KAAKyC,WAAamd,EAAOA,EAAKpe,IAAI,UAAY,GAC9CxB,KAAKwH,a,EA3BYs8G,CAAmBl6F,EAAAA,G,wbA+BxCw4F,EAAUtgH,UAAU+nB,SAAWu4F,EC9B/B,IAAM15E,EAAIC,IAAAA,EAEWq7E,EAAAA,SAAAA,I,uBACnB,aAAoB,MAARzhH,EAAQ,uDAAJ,GAAI,uBAClB,cAAMA,IACDS,SAAS,EAAKC,MAAO,iBAAkB,EAAKu/G,UAF/B,E,4CAKpB,WACE,IAAQ5/G,EAAmB5C,KAAnB4C,KAAM0/G,EAAatiH,KAAbsiH,SACd,6BAAsBA,EAAtB,iEAEgB1/G,EAFhB,8CAGkBA,EAHlB,kD,wBAaF,WACE,IAAK5C,KAAK+kG,OAAQ,CAChB,IAAQ9hG,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACToxF,EAAWjxF,EAAMzB,IAAI,QACrBoH,EAAO3F,EAAMzB,IAAI,YAAc,GAC/B2tG,EAAS,GACX7oG,EAAQ,WAEZsC,EAAK6D,SAAQ,SAAA5I,GACX,IACIM,EAAM0B,EAAO8Q,EADbkhB,EAAQ,IAGR3e,EAAAA,EAAAA,UAASrV,IACXM,EAAON,EACPgC,EAAQhC,IAERM,EAAON,EAAGM,MAAQN,EAAGiP,OAASjP,EAAGgC,MACjCA,EAAQ,WAAGif,EAAAA,EAAAA,aAAYjhB,EAAGgC,OAAShC,EAAG8B,GAAK9B,EAAGgC,OAAQkG,QAAQ,KAAM,UAEpE8rB,IADAlhB,EAAQ9S,EAAG8S,MAAQ9S,EAAG8S,MAAM5K,QAAQ,KAAM,UAAY,IACrC,YAAH,OAAc4K,EAAd,MAAyB,IAEzC,IAAMstG,EAAanhH,EAAGkD,EAAH,sCAAoCkuF,EAApC,YAAgDruF,KAAY1B,EAC/EmC,GAAS,mBAAJ,OAAsBT,EAAtB,aAA+BgyB,EAA/B,YAAwCosF,EAAxC,aACL9U,EAAOvhG,KAAK/H,MAGdS,GAAS,YACTtG,KAAK+kG,OAASr8D,EAAEpiC,GAChB,IAAM8C,EAAMnG,EAAMqyD,iBACZ4uD,EAAY/U,EAAOx6F,QAAQvL,IAAQ,EAAIA,EAAMnG,EAAMzB,IAAI,aAC5DsjB,EAAAA,EAAAA,aAAYo/F,IAAclkH,KAAK+kG,OAAO37F,IAAI86G,GAG7C,OAAOlkH,KAAK+kG,OAAOvjG,IAAI,O,EAtDNwiH,CAAwB5B,G,4bCHxB+B,EAAAA,SAAAA,I,8MACL,G,8CAEd,WACE,IAAQvhH,EAAmB5C,KAAnB4C,KAAM0/G,EAAatiH,KAAbsiH,SACd,+BAAwBA,EAAxB,0CACY1/G,EADZ,iC,sBASF,WACE,IAAMiD,EAAQ7F,KAAK0iH,eAAe/J,QAClC34G,KAAKiD,MAAMU,IAAI,QAAS3D,KAAKokH,gBAAgBv+G,M,6BAG/C,SAAgB8yG,GACd,IAAI12G,EAAS02G,EACb,EAAkC34G,KAAKiD,MAAMoQ,WAArCgxG,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,WAUnB,OARIriH,KAAW6iB,EAAAA,EAAAA,aAAYu/F,KACzBpiH,EAASoiH,GAGNpiH,IAAW6iB,EAAAA,EAAAA,aAAYw/F,KAC1BriH,EAASqiH,GAGJriH,I,wBAQT,WAAoB,IAClB,IAAMsiH,GAAUvkH,KAAK+kG,OADH,mBAAN7jE,EAAM,yBAANA,EAAM,gBAElB,IAAMr9B,EAAKu+G,EAAUtgH,UAAUukE,WAAWzc,MAAM5pD,KAAMkhC,GAEtD,GAAIqjF,EAAQ,CACV,IAAI5L,EAAS6L,EACLvhH,EAAkBjD,KAAlBiD,MAAOS,EAAW1D,KAAX0D,OACf,EAAkCT,EAAMoQ,WAArBixG,GAAnB,EAAQD,UAAR,EAAmBC,YACbngH,EAAOlB,EAAMzB,IAAI,QAEnByB,EAAMzB,IAAI,cAEZgjH,EADA7L,EAAUj1G,EAAOlC,IAAI2C,GAIrBw0G,MADA6L,EAAc9gH,EAAOlC,IAAI,cAAc2C,KACE,KAAhBqgH,IAGtB1/F,EAAAA,EAAAA,aAAYw/F,IAAeE,IAAgBF,IAC9C3L,GAAU,GAGZ90G,EAAG80G,QAAUA,EAGf,OAAO90G,M,EAhEUsgH,CAA0B/B,G,scCC1BqC,EAAAA,SAAAA,I,kIACnB,WACE,IAAQxhH,EAAUjD,KAAViD,MACR,EAAwBA,EAAMoQ,WAAtBxN,EAAR,EAAQA,MAAOzB,EAAf,EAAeA,KACf,OAAQ0gB,EAAAA,EAAAA,aAAYjf,IAAoB,KAAVA,EAA8B5C,EAAMzB,IAAI,WAAzBqE,EAAQzB,I,wBAQvD,WACE,IAAKpE,KAAKsG,MAAO,CACf,IAAQ1D,EAAgB5C,KAAhB4C,KAAMK,EAAUjD,KAAViD,MACR4C,EAAQ7F,KAAKkjH,gBACbwB,EAAc,IAAI7+B,EAAAA,EAAY,CAClCC,UAAW,GAAF,OAAKljF,EAAL,aACTtB,KAAM,SACN2B,MAAOA,EACPL,KAAAA,IAEF5C,KAAKsG,MAAQo+G,EAAYl9G,SACzBxH,KAAK+kG,OAAS/kG,KAAKsG,MAAMmgE,QACzBzmE,KAAK2kH,MAAQ3kH,KAAKsG,MAAM+/E,OACxBpjF,EAAMU,IAAI,QAASkC,EAAO,CAAE6vD,WAAY,IACxC11D,KAAK+kG,OAAO37F,IAAIvD,GAChB7F,KAAKsG,MAAQo+G,EAAY7gH,GAE3B,OAAO7D,KAAKsG,U,EA7BKm+G,CAAwBrC,G,qcCDxBwC,EAAAA,SAAAA,I,+MACH,I,2CAOhB,WACE,IAAK5kH,KAAKsG,MAAO,CACf,IAAMrD,EAAQjD,KAAKiD,MACb4C,EAAQ7F,KAAKkjH,gBAOb58G,EANa,IAAI0+E,EAAAA,EAAW,CAChC/hF,MAAAA,EACAS,OAAQ1D,KAAK0C,OAAOI,GACpBgjF,UAAW9lF,KAAK4C,KAAO,cACvBA,KAAM5C,KAAK4C,OAEY4E,SACzBlB,EAAMyzB,SAASl0B,EAAO,CAAE6vD,WAAY,IACpC11D,KAAKsG,MAAQA,EAAMzC,GAGrB,OAAO7D,KAAKsG,U,EAvBKs+G,CAAuBxC,G,4bCAvByC,EAAAA,SAAAA,I,8MACJ,CAAC,kB,kCAEA,I,yCAEhB,WACE7kH,KAAK8wC,gB,yBAGP,WACE,IAAQ7tC,EAAcjD,KAAdiD,MAAOH,EAAO9C,KAAP8C,GACTw+B,EAAUr+B,EAAMzB,IAAI,WAEtB8/B,KACEpoB,EAAAA,EAAAA,UAASooB,GACXx+B,EAAGtB,IAAI,YAAYkP,IAAI4wB,GAEvBA,EAAQx+B,EAAGtB,IAAI,UAAWyB,M,yBAKhC,WACMjD,KAAKiD,MAAMzB,IAAI,UACjB4gH,EAAUtgH,UAAU8hH,YAAYh6D,MAAM5pD,KAAM+jB,a,wBAIhD,WACE,IAAQ9gB,EAAgBjD,KAAhBiD,MAAOL,EAAS5C,KAAT4C,KACf,EAAoCK,EAAM2Y,QAAlCkpG,EAAR,EAAQA,YAAar7G,EAArB,EAAqBA,KAAM+lG,EAA3B,EAA2BA,KACrB18F,EAAQgyG,GAAer7G,EACvB1G,EAAY,GAAH,OAAMH,EAAN,OAIf,MAHc,mCAAH,OAAmCG,EAAnC,gBACTysG,EAAO,IAAH,OAAOzsG,EAAP,UAA2B,GADtB,cAEN+P,EAFM,iB,EAjCM+xG,CAAwBzC,G,qkBCQtC,IAAMr0G,EAAQ,QACRC,EAAQ,GAAH,OAAMD,EAAN,KACLO,EAAW,GAAH,OAAMN,EAAN,UAErB,mBACE,IAAM+2G,EAAW,CACft7G,KAAM24G,EACNrP,OAAQ0R,EACRngH,OAAQ0/G,EACRgB,SAAUb,EACVh3D,MAAOy3D,EACP5vG,OAAQ6vG,GAGV,cACK71G,EAAAA,GADL,IAGE80G,WAAAA,EAEA1+G,OAAQ,CACNyI,IAAKE,EACL9M,OAAQqN,GAQVnK,KAAM,eAcNf,KA7BF,WA6BoB,WAAbV,EAAa,uDAAJ,GACZ1C,KAAKs8C,aAAa7sC,EAAU/M,GAC5B,IAAMmG,EAAI7I,KAAK0C,OACTO,EAAQ,IAAIpB,EAAAA,EAClB7B,KAAKiD,MAAQA,EACb,IAAQH,EAAO9C,KAAP8C,GACFF,EAAOiG,EAAEhG,aACf7C,KAAK0F,MAAL,KAAkBq/G,GAClBniH,IAASiG,EAAE1I,YAAF,UAAmByC,GAAnB,OAA0BiG,EAAE1I,cAErC,IAAM2+G,GAAQ/uG,EAAAA,EAAAA,WAAS,kBAAM,EAAKgvG,aAClC97G,EAAMD,SAASF,EAAI,oBAAqBg8G,GAExC,IAAM5vG,GAASa,EAAAA,EAAAA,WAAS,kBAAM,EAAKk1G,YAGnC,OAFAhiH,EAAMD,SAASF,EAAI,eAAgBoM,GAE5BlP,MAGT++G,QAhDF,WAiDI/+G,KAAKsE,OAAOtE,KAAK8C,GAAGsJ,gBAGtB64G,OApDF,WAqDIjlH,KAAKsE,OAAOtE,KAAKoM,gBAGnB9H,OAxDF,SAwDSkiB,GACL,IAAM4/B,EAAS5/B,EAAYA,EAAUu2C,YAAc,GACnD/8D,KAAKiD,MAAMU,IAAI,CAAE6iB,UAAAA,EAAW4/B,OAAAA,IAC5BpmD,KAAKgQ,eAGP5D,YA9DF,WA+DI,OAAOpM,KAAKiD,MAAMzB,IAAI,cAAgB,MAGxCopG,WAlEF,WAmEI,OAAO5qG,KAAKiD,MAAMzB,IAAI,WAAa,IAGrCwO,YAtEF,WAsEyB,IAAXpH,EAAW,uDAAJ,GACjB5I,KAAKo/G,MAAQp/G,KAAKo/G,OAASx2G,EAAKqH,UAChCjQ,KAAK8C,GAAG4B,QAAQ1E,KAAKoF,OAAOnE,OAAQ,CAAEgP,UAAWjQ,KAAKo/G,SAGxDptG,WA3EF,WA4EIhS,KAAK+8C,cAQPmoE,gBApFF,WAqFI,OAAOllH,KAAKmD,MAQduO,QA7FF,SA6FUvN,EAAMwxD,GACZ,IAAMwvD,EAAWnlH,KAAK4R,QAAQ,QAC9B5R,KAAK0F,MAAMvB,GAAQghH,EAAS5sF,OAAOo9B,IAQrC/jD,QAvGF,SAuGUzN,GACN,OAAOnE,KAAK6R,WAAW1N,IAOzB0N,SA/GF,WAgHI,OAAO7R,KAAK0F,OAGd8B,OAnHF,WAoHI,IAAMrE,EAASnD,KAATmD,KACAT,EAAS1C,KAAKkQ,YACdrM,EAAKV,GAAQA,EAAKU,GAWxB,OAVAV,EAAO,IAAI2gH,EACT,CACEjgH,GAAAA,EACApB,WAAY,GACZgJ,OAAQ/I,EAAOI,GACfJ,OAAAA,GAEF1C,KAAK6R,YAEP7R,KAAKmD,KAAOA,EACLA,EAAKU,IAGd2O,QApIF,WAqIIxS,KAAKw9C,iB,orBCjIX,mBACE,IAAI16C,EACA+9C,EACAn+C,EACA0iH,EACE51B,EAAY,CAChB61B,mBAAoB,IACpBC,eAAgB,GAEZC,EAAU,SAAA38G,GAAI,OAAIA,EAAKktB,YAAcltB,EAAK+U,QAC1C6nG,EAAa,SAAAl0G,GAAG,OAAIsQ,OAAOC,KAAKvQ,EAAImrC,sBAE1C,MAAO,CACLt4C,KAAM,cAONf,KARK,WAQW,WAAXwF,EAAW,uDAAJ,GACVlG,EAAS,EAAH,KAAQ8sF,GAAc5mF,GAC5B9F,EAAKJ,EAAOI,GACZ9C,KAAK8C,GAAKA,EACNJ,EAAOynG,WACTznG,EAAS,EAAH,KAAQA,GAAR,IAAgB2iH,mBAAoB,KAE5C,IAAMhvF,GAAW,EAuFjB,OAtFAwqB,EAAK,IAAIjgB,IAAJ,IAAkB6kF,OAAO,EAAMC,SAAU,IAAOhjH,KAClDijH,eAAe,SAAU,CAC1BjnE,UAAW,SAAAgwC,GACT,IAAMk3B,EAAUl3B,EAAOltF,IAAI,SAC3B,GAAIokH,EAAS,CACX,IAAMC,EAAUn3B,EAAOltF,IAAI,YAC3B,IAAIwZ,EAAAA,EAAAA,SAAQ6qG,IACNL,EAAW92B,GAAQvsE,MAAK,SAAA2jG,GAAG,OAAID,EAAQlxG,QAAQmxG,IAAQ,KAAI,OAAO,EAExE,IAAI5nD,EAAAA,EAAAA,WAAU0nD,GAAU,OAAO,EAC/B,IAAI5qG,EAAAA,EAAAA,SAAQ4qG,IACNJ,EAAW92B,GAAQvsE,MAAK,SAAA2jG,GAAG,OAAIF,EAAQjxG,QAAQmxG,IAAQ,KAAI,OAAO,EAG1E,OAAO,GAETn2G,GAf0B,SAevB++E,EAAQz2D,EAAGrvB,IACXw8G,IAAgBA,EAAc12B,EAAOq3B,sBACtC,IAAMl5F,EAAMjkB,GAAQqvB,GAAK,GAKzB,GAJApL,EAAIlP,QACFsG,YAAW,WACTmhG,EAAc,SAEdG,EAAQ14F,GAAZ,CAGE,IAAMw1D,EAAQqM,EAAOl3D,OAAO,CAAEnB,SAAAA,IACxBp0B,EAAS,CACbysF,OAAAA,EACAs3B,OAAQZ,EACR/iC,MAAAA,GAIF,GAFA+iC,EAAc,OAEV5uF,EAAAA,EAAAA,SAAQ6rD,GAEZ,OAAOpgF,MAIb4+C,EAAG8kE,eAAe,MAAO,CACvBh2G,GAAI,SAAC1M,EAAOR,GAA6B,IAAjBD,EAAiB,uDAAP,GAChC,IAAI+iH,EAAQ/iH,IAAa,EAAKyjH,aAAaxjH,GAC3C,MAAO,CACLisF,OAAQjsF,EACRujH,YAAQl9G,EACRu5E,MAAOp/E,EACPT,QAAS,EAAF,KAAOA,GAAP,IAAgB6zB,SAAAA,QAI7BwqB,EAAG8kE,eAAe,SAAU,CAC1Bh2G,GAAI,SAAC1M,EAAOR,GAA6B,IAAjBD,EAAiB,uDAAP,GAChC,IAAI+iH,EAAQ/iH,IAAa,EAAKyjH,aAAaxjH,GAC3C,MAAO,CACLisF,OAAQjsF,EACRujH,OAAQ/iH,EACRo/E,WAAOv5E,EACPtG,QAAS,EAAF,KAAOA,GAAP,IAAgB6zB,SAAAA,QAI7BwqB,EAAG8kE,eAAe,QAAS,CACzB9kF,KAAM,SAACp+B,EAAYujH,GACjBvjH,EAAWgP,MAAMu0G,EAAQ,CAAE3vF,SAAAA,KAE7ByK,KAAM,SAACr+B,EAAYm8B,EAAGyjD,GACpB5/E,EAAWgP,MAAM4wE,EAAO,CAAEhsD,SAAAA,KAE5B1mB,GAAI,SAAClN,GAA6B,IAAjBD,EAAiB,uDAAP,GACzB,IAAI+iH,EAAQ/iH,IAAa,EAAKyjH,aAAaxjH,GAC3C,MAAO,CACLisF,OAAQjsF,EACRujH,OAAQxjH,EAAQm0B,eAChB0rD,OAAO,OAAI5/E,EAAW6N,QACtB9N,QAAS,EAAF,KAAOA,GAAP,IAAgB6zB,SAAAA,QAK7BwqB,EAAGlxC,GAAG,aAAa,WACjB7M,EAAG4B,QAAQ,uBACX5B,EAAG+8B,iBAAiBnlB,KAAI,SAAA7R,GAAC,OAAIA,EAAEnE,QAAQ,wBAEzC,CAAC,OAAQ,QAAQ+H,SAAQ,SAAAnB,GAAE,OAAIu1C,EAAGlxC,GAAGrE,GAAI,kBAAMxI,EAAG4B,QAAQ4G,SAEnDtL,MAGT4gD,SAzGK,WA0GHl+C,EAAO4iH,gBAAkBxiH,GAAM9C,KAAK6G,IAAI/D,EAAGtB,IAAI,cAUjD0O,UApHK,WAqHH,OAAOxN,GAWTmE,IAhIK,SAgIDg2C,GAEF,OADAgE,EAAG6kE,SAAS7oE,GACL78C,MAUTkD,OA5IK,SA4IE25C,GAEL,OADAgE,EAAGqlE,WAAWrpE,GACP78C,MAST6vF,UAvJK,WAyJH,OADAhvC,EAAGslE,gBACInmH,MASTkoB,MAlKK,WAoKH,OADA24B,EAAGulE,gBACIpmH,MAST2Q,KA7KK,WA+KH,OADAkwC,EAAGwlE,eACIrmH,MAST6gC,KAxLK,WAwLY,IAAZhzB,IAAY,yDAEf,OADC/K,EAAG2wC,aAAeoN,EAAGhgB,KAAKhzB,GACpB7N,MASTsmH,QAnMK,WAqMH,OADAzlE,EAAGylE,UACItmH,MAST8gC,KA9MK,WA8MY,IAAZjzB,IAAY,yDAEf,OADC/K,EAAG2wC,aAAeoN,EAAG/f,KAAKjzB,GACpB7N,MASTumH,QAzNK,WA2NH,OADA1lE,EAAG0lE,UACIvmH,MAST4lH,QApOK,WAqOH,OAAO/kE,EAAG2lE,YAAY,SASxBC,QA9OK,WA+OH,OAAO5lE,EAAG2lE,YAAY,SASxBP,aAxPK,SAwPQ30G,GACX,QAAStR,KAAK0mH,cAAcC,eAAeV,aAAa30G,IAU1Ds1G,SAnQK,WAoQH,OAAO/lE,EAAG5+B,OAaZ4kG,cAjRK,WAkRH,IAAM5kH,EAAS,GACT6kH,EAAW,GAUjB,OARA9mH,KAAK4mH,WAAWn6G,SAAQ,SAAAC,GACtB,IAAM+iB,EAAQ/iB,EAAKlL,IAAI,oBACnBslH,EAASnyG,QAAQ8a,GAAS,IAC5Bq3F,EAASl5G,KAAK6hB,GACdxtB,EAAO2L,KAAKlB,OAITzK,GAGTs9G,KAhSK,SAgSA71G,GACH1J,KAAK2Q,OACLjH,IACA1J,KAAKkoB,SAGP6+F,gBAtSK,WAuSH,IAAM9kH,EAAS,GACTggB,EAAQjiB,KAAK4mH,WAgBnB,OAXA3kG,EAAMxV,SAAQ,SAACC,EAAMtC,GACnB,IAAMqlB,EAAQ/iB,EAAKlL,IAAI,oBACjBqE,EANW,SAAC6G,EAAM+iB,GACxB,MAAsD/iB,EAAK2G,WAAnD/R,EAAR,EAAQA,KAAM+gF,EAAd,EAAcA,MAAO2jC,EAArB,EAAqBA,OAAQt3B,EAA7B,EAA6BA,OAA7B,IAAqClsF,QACrC,MAAO,CAAEitB,MAAAA,EAAOnuB,KAAAA,EAAM+gF,MAAAA,EAAO2jC,OAAAA,EAAQt3B,OAAAA,EAAQlsF,aAD7C,MAA+C,GAA/C,GAKcwkH,CAAWt6G,EAAMtC,GAE1BnI,EAAOwtB,GAGVxtB,EAAOwtB,GAAO7hB,KAAK/H,GAFnB5D,EAAOwtB,GAAS,CAAC5pB,MAMd+b,OAAOC,KAAK5f,GAAQyY,KAAI,SAAA+U,GAC7B,IAAM6wE,EAAUr+F,EAAOwtB,GACvB,MAAO,CACLA,MAAO6wE,EAAQA,EAAQr5F,OAAS,GAAGwoB,MACnC6wE,QAAAA,EACAhY,QAAQjJ,EAAAA,EAAAA,QACNihB,EAAQlkD,QAAO,SAACjzC,EAAKuD,GAAS,MACtBoG,EAAK,UAAGpG,EAAKlK,eAAR,aAAG,EAAck9B,OAE5B,OADA5sB,GAAS3J,EAAIyE,KAAKkF,GACX3J,IACN,UAMX89G,UAxUK,SAwUKjpE,GAAO,WACf,GAAKA,EAAL,CACA,IAAMv8B,EAAUzhB,KAAKknH,aACfC,EAAOnpE,EAAMvuB,MAAQhO,GAC3B2lG,EAAAA,EAAAA,OAAMh8F,KAAK+lD,IAAIg2C,IAAO,WACpB,EAAKA,EAAO,EAAI,OAAS,SAAQ,QAIrCD,WAjVK,WAkVH,OAAOlnH,KAAK4mH,WAAWS,SASzBnlF,MA3VK,WA6VH,OADA2e,EAAG3e,QACIliC,MAGT0mH,YAhWK,WAiWH,OAAO7lE,GAGTruC,QApWK,WAqWHxS,KAAKkiC,QAAQ2tD,YACb,CAAC/sF,EAAI+9C,EAAIn+C,EAAQ0iH,GAAa34G,SAAQ,SAAArC,GAAC,MAAS,MAChDpK,KAAK8C,GAAK,O,wqBC7YhB,IAEqBglB,EAAAA,WAKnB,aAAuB,IAAXlf,EAAW,uDAAJ,GA0DjB,OA1DqB,eACrB5I,KAAK4I,KAAO,CAIVqH,UAAW,KAOXiI,QAAS,KAOTC,OAAQ,KAOR2G,MAAO,KAIPkJ,YAAa,KAQb6I,YAAa,KAGbyS,aAAc,KAGdC,aAAc,KAGd+jF,WAAY,EAGZ7oG,IAAK,EAGLi5B,MAAO,IAETxgC,EAAAA,EAAAA,SAAQlX,KAAM,OAAQ,OAAQ,YAAa,gBAC3CA,KAAK+jC,WAAWn7B,GAChB5I,KAAKmrB,MAhEe,CAAEvO,EAAG,EAAGC,EAAG,GAiExB7c,K,yCAOT,WAAsB,IAAX4I,EAAW,uDAAJ,GAChB5I,KAAK4I,KAAL,OACK5I,KAAK4I,MACLA,K,wBAIP,SAAWuV,GACT,IAAMw2B,EAAO30C,KAAKunH,gBACZt3G,EAAYjQ,KAAKwnH,iBACjBjjG,EAAMvkB,KAAKynH,cACXj9G,EAAS2T,EAAS,KAAO,MACzBC,EAAU,CAAEzO,GAAAA,EAAAA,GAAI8F,IAAAA,EAAAA,KACtB2I,EAAQ5T,GAAQyF,EAAW,qBAAsBjQ,KAAK6T,MACtDuK,EAAQ5T,GAAQmqC,EAAM,2BAA4B30C,KAAK2Q,MACvDyN,EAAQ5T,GAAQmqC,EAAM,UAAW30C,KAAK0nH,WACtCtpG,EAAQ5T,GAAQ+Z,EAAK,SAAUvkB,KAAK2nH,gB,0BAGtC,WACE,IAAQC,EAAsB5nH,KAAtB4nH,WAAYz8F,EAAUnrB,KAAVmrB,MACd08F,EAAe7nH,KAAK8nH,gBACpBC,EAAa,CACjBnrG,EAAGirG,EAAajrG,EAAIgrG,EAAWhrG,EAC/BC,EAAGgrG,EAAahrG,EAAI+qG,EAAW/qG,GAEjC7c,KAAK+mE,KAAK57C,EAAMvO,EAAImrG,EAAWnrG,EAAGuO,EAAMtO,EAAIkrG,EAAWlrG,GACvD7c,KAAKgoH,eAAiBD,I,mBAOxB,SAAMz8G,GACJ,IAAQ1C,EAAS5I,KAAT4I,KACAsP,EAAYtP,EAAZsP,QACRlY,KAAKgkC,WAAW,GAChBhkC,KAAKioH,aAAejoH,KAAKkoH,cAAc58G,GACvCtL,KAAKsjC,cAAerhC,EAAAA,EAAAA,QAAO2G,EAAM,iBAAmB,GACpD5I,KAAKujC,cAAethC,EAAAA,EAAAA,QAAO2G,EAAM,iBAAmB,IACpD/D,EAAAA,EAAAA,YAAWqT,IAAYA,EAAQ5M,EAAItL,MACnCA,KAAKmoH,cAAgBnoH,KAAKooH,mBAC1BpoH,KAAKgoH,eAnHe,CAAEprG,EAAG,EAAGC,EAAG,GAoH/B7c,KAAKqoH,eApHe,CAAEzrG,EAAG,EAAGC,EAAG,GAqH/B7c,KAAK6T,KAAKvI,K,kBAOZ,SAAKA,GAAI,WACC1C,EAAyC5I,KAAzC4I,KAAMo/G,EAAmChoH,KAAnCgoH,eAAgBK,EAAmBroH,KAAnBqoH,eACtBlwG,EAAWvP,EAAXuP,OACA8vG,EAAiBjoH,KAAjBioH,aACFK,EAAatoH,KAAKkoH,cAAc58G,GAChCi9G,EAAS,CACb3rG,EAAGyrG,EAAezrG,EAAIorG,EAAeprG,EACrCC,EAAGwrG,EAAexrG,EAAImrG,EAAenrG,GAEvC7c,KAAKqoH,eAAiBE,EACtB,IAAMp9F,EAAQ,CACZvO,EAAG0rG,EAAW1rG,EAAIqrG,EAAarrG,EAAI2rG,EAAO3rG,EAC1CC,EAAGyrG,EAAWzrG,EAAIorG,EAAaprG,EAAI0rG,EAAO1rG,GAE5C7c,KAAKgoH,eA1Ie,CAAEprG,EAAG,EAAGC,EAAG,GA2I/B,IAAM2rG,EAAexoH,KAAfwoH,WASa,OALjBA,EADEl9G,EAAGo3E,UACS8lC,GAAcxoH,KAAKyoH,eAAet9F,EAAMvO,EAAGuO,EAAMtO,GAElD,MAIbsO,EAAMvO,EAAIqrG,EAAarrG,EACC,MAAf4rG,IACTr9F,EAAMtO,EAAIorG,EAAaprG,GAGzB,IAAM6rG,EAAY,SAAAv9F,GAChB,CAAC,IAAK,KAAK1e,SAAQ,SAAA+gB,GAAE,OAAKrC,EAAMqC,GAAMrC,EAAMqC,IAAMvrB,EAAAA,EAAAA,QAAO2G,EAAM,YAC/D,EAAKuiB,MAAQA,EACb,EAAK47C,KAAK57C,EAAMvO,EAAGuO,EAAMtO,IACzBhY,EAAAA,EAAAA,YAAWsT,IAAWA,EAAO7M,EAAI,IAE7Bq9G,EAAW,EAAH,GAAQx9F,GAMtB,GALAnrB,KAAK4oH,eAAiBN,EACtBtoH,KAAKwoH,WAAaA,EAClBxoH,KAAK4nH,WAAa5nH,KAAK8nH,gBACvBY,EAAUv9F,GAENnrB,KAAKujC,aAAat8B,OAAQ,CAC5B,MAAiCjH,KAAK6oH,WAAWF,GAAzCG,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,KAAMC,EAAxB,EAAwBA,MACvBD,GAAQC,IAASN,EAAUI,GAIjB,IAAbx9G,EAAGihC,OAAevsC,KAAK2Q,KAAKrF,K,wBAM9B,SAAW6f,GAAO,WACV29F,EAAW39F,EACX49F,EAAe/oH,KAAf+oH,KAAMC,EAAShpH,KAATgpH,KA0CZ,OAxCAhpH,KAAKujC,aAAa92B,SAAQ,SAAAylC,GAEnBA,EAAIt1B,GAAK,EAAKmsG,MAAU72E,EAAIr1B,GAAK,EAAKmsG,OAC3C92E,EAAI3S,OAAS,EAEb,EAAK+D,aAAa72B,SAAQ,SAAAy6B,GACxB,KAAKgL,EAAIr1B,GAAKqqB,EAAKtqB,GAAOs1B,EAAIt1B,GAAKsqB,EAAKrqB,GAAxC,CACA,IAAM6pB,EAAMwL,EAAIr1B,GAAKqqB,EAAKrqB,EACpBosG,EAAMviF,EAAM,IAAM,IAClBwiF,EAAWh3E,EAAI+2E,GACfE,EAAYjiF,EAAK+hF,GACjBG,EAAaj+F,EAAM89F,GACnBI,EAAW3iF,EAAMsiF,EAAOD,EAE9B,GAAI,EAAKO,UAAUJ,EAAUC,KACvBrkG,EAAAA,EAAAA,aAAYukG,GAAW,CACzB,IAAME,EAAWH,GAAcF,EAAWC,GAC1C,EAAKK,aAAat3E,EAAKq3E,YAM/BR,EAAO/oH,KAAK+oH,KACZC,EAAOhpH,KAAKgpH,KAEZ,CAAC,IAAK,KAAKv8G,SAAQ,SAAA+gB,GACjB,IAAMkY,EAAOlY,EAAGoY,cACZsM,EAAM,EAAK,MAAD,OAAOxM,IAEjBwM,IAAQ,EAAKo3E,UAAUn+F,EAAMqC,GAAK0kB,EAAIu3E,QACxC,EAAKD,aAAat3E,EAAK,MACvBA,EAAM,MAGJA,KAAQptB,EAAAA,EAAAA,aAAYotB,EAAIu3E,QAC1BX,EAASt7F,GAAM0kB,EAAIu3E,SAIhB,CACLX,SAAAA,EACAC,KAAM/oH,KAAK+oH,KACXC,KAAMhpH,KAAKgpH,Q,uBAIf,SAAUznH,EAAK2wC,GAAsB,6DAAJ,GAAXtlB,EAAe,EAAfA,OACd88F,EAAO98F,GAAU5sB,KAAK4I,KAAK0+G,WACjC,OAAQ/lH,GAAO2wC,GAAO3wC,GAAO2wC,EAAMw3E,GAAUnoH,GAAO2wC,GAAO3wC,GAAO2wC,EAAMw3E,I,0BAG1E,SAAavlF,EAAOt+B,GAClB,IAAM6/B,GAAQ5gB,EAAAA,EAAAA,aAAYqf,EAAMvnB,GAAW,IAAN,IAC/B+sG,EAAU,MAAH,OAASjkF,GAYtB,OAVc,OAAV7/B,GACFs+B,EAAM5E,OAAS,EACf4E,EAAMslF,KAAO5jH,EACb7F,KAAK2pH,GAAWxlF,WAETA,EAAM5E,cACN4E,EAAMslF,YACNzpH,KAAK2pH,IAGPxlF,I,kBAMT,SAAK74B,GAAe,IAAX1C,EAAW,uDAAJ,GACNuiB,EAAUnrB,KAAVmrB,MACFtL,EAAYjX,EAAKyR,OACjBuC,EAAIiD,EAAY,EAAIsL,EAAMvO,EAC1BC,EAAIgD,EAAY,EAAIsL,EAAMtO,EAChC7c,KAAKgkC,aACLhkC,KAAKwoH,WAAa,KAClBxoH,KAAK+mE,KAAKnqD,EAAGC,EAAG,GAChB,IAAQiC,EAAU9e,KAAK4I,KAAfkW,OACRja,EAAAA,EAAAA,YAAWia,IAAUA,EAAMxT,EAAItL,KAAM,CAAE6f,UAAAA,M,uBAGzC,SAAUvU,IACJwoF,EAAAA,EAAAA,UAASxoF,IACXtL,KAAK2Q,KAAKrF,EAAI,CAAE+O,OAAQ,M,kBAS5B,SAAKuC,EAAGC,EAAGipB,GACT,IAAQjiC,EAAa7D,KAAb6D,GAAI+E,EAAS5I,KAAT4I,KACNuoB,EAAMnxB,KAAKmoH,cACjB,GAAKh3F,EAAL,CACA,IAAQnJ,EAAgBpf,EAAhBof,YACF4hG,EAAOz4F,EAAIvU,EAAIA,EACfitG,EAAO14F,EAAItU,EAAIA,EACrB7c,KAAKigB,SAAW,CACdrD,EAAGgtG,EACH/sG,EAAGgtG,EACH/jF,IAAAA,IAGFjhC,EAAAA,EAAAA,YAAWmjB,IAAgBA,EAAYhoB,KAAKigB,UAExCpc,IACFA,EAAG8S,MAAMoJ,KAAT,UAAmB6pG,EAAnB,MACA/lH,EAAG8S,MAAMqJ,IAAT,UAAkB6pG,EAAlB,U,4BAIJ,WACE,IAAQ55G,EAAcjQ,KAAK4I,KAAnBqH,UACR,OAAOA,EAAY,CAACA,GAAajQ,KAAKunH,kB,yBAGxC,WAEE,OADavnH,KAAKwnH,iBACN9sG,KAAI,SAAAhO,GACd,IAAM+R,EAAM/R,EAAKgS,eAAiBhS,EAClC,OAAO+R,EAAIE,aAAeF,EAAI6U,kB,2BAOlC,SAAczvB,GACZ,IAAQ4a,EAAQze,KAAK4I,KAAb6V,IAGR,GAFA5a,EAAKA,GAAM7D,KAAK6D,IAEX7D,KAAK20C,KAAM,CACd,IAAMA,EAAO,CAACzsC,UACdrE,GAAM8wC,EAAK/mC,KAAK/J,EAAG6a,eACnBD,GAAOk2B,EAAK/mC,KAAK6Q,GACjBze,KAAK20C,KAAOA,EAGd,OAAO30C,KAAK20C,O,2BAQd,SAAcrpC,GACZ,IAAMw+G,EAAS9pH,KAAK4I,KAAKmhH,mBACnBC,GAAM/kG,EAAAA,EAAAA,iBAAgB3Z,GAE5B,OAAOw+G,EACHA,EAAOx+G,GACP,CACEsR,EAAGotG,EAAI/qG,QACPpC,EAAGmtG,EAAI9qG,W,8BAIf,WACE,IAAQrb,EAAa7D,KAAb6D,GACFimH,EADe9pH,KAAT4I,KACQioB,YAChB5uB,EA5VgB,CAAE2a,EAAG,EAAGC,EAAG,GAuW/B,OATIhY,EAAAA,EAAAA,YAAWilH,GACb7nH,EAAS6nH,IACAjmH,IACT5B,EAAS,CACP2a,EAAGyQ,WAAWxpB,EAAG8S,MAAMoJ,MACvBlD,EAAGwQ,WAAWxpB,EAAG8S,MAAMqJ,OAIpB/d,I,2BAGT,WACE,IAAQwc,EAAQze,KAAK4I,KAAb6V,IACFxU,EAAOwU,GAAOA,EAAIxU,KAExB,MAAO,CACL4S,EAAG5S,EAAOA,EAAKtD,UAAY,EAC3BiW,EAAG3S,EAAOA,EAAKmZ,WAAa,K,4BAIhC,SAAexG,EAAGC,GAChB,IAAMotG,EAAOrtG,EACPstG,EAAOrtG,EACPstG,EAAO/+F,KAAK+lD,IAAI84C,GAChBG,EAAOh/F,KAAK+lD,IAAI+4C,GAGtB,OAAIA,GAAQC,GAAQD,IAASC,EACpB,IACEF,EAAOG,GAAQH,GAAQG,EACzB,SADF,M,EA3XUtiG,I,0DCDrB,IAAIrJ,EAA0B,oBAAbvW,SAA2BA,SAAW,KACrDqc,EAAwB,oBAAXxkB,OAAyBA,OAAS,KAC/CsqH,EAAmBrsG,MAAMlc,UACzBk0B,EAASq0F,EAAiBr0F,OAC1BrhB,EAAU01G,EAAiB11G,QAC3B+F,EAAM2vG,EAAiB3vG,IACvB9M,EAAOy8G,EAAiBz8G,KACxB0xE,EAAU+qC,EAAiB/qC,QAC3Bl/B,EAAQiqE,EAAiBjqE,MACzBlqB,EAASm0F,EAAiBn0F,OACxBo0F,EAAO,YACTC,EAAU,aACVC,EAAS,OACTC,EAAQ,QAEV,SAAS3iH,EAAKu2B,EAAUm7B,GAKtB,YAJgB,IAAZA,IACFA,EAAU/6C,GAGL8rG,EAAQjiE,KAAKjqB,GAChBm7B,EAAQkxD,uBAAuBrsF,EAAS+hB,MAAM,IAC9CqqE,EAAMniE,KAAKjqB,GACXm7B,EAAQmxD,qBAAqBtsF,GAC7Bm7B,EAAQzpB,iBAAiB1R,GAI/B,SAASusF,EAAKvsF,EAAUm7B,GAKtB,QAJgB,IAAZA,IACFA,EAAU/6C,GAGP4f,EAAL,CACA,GAAIA,EAASwsF,OAAQ,OAAOxsF,EAC5B,IAAIysF,EAAOzsF,EAEX,GAAInlB,EAASmlB,IAOX,GANIm7B,EAAQqxD,SAAQrxD,EAAUA,EAAQ,MACtCsxD,EAAOR,EAAKhiE,KAAKjqB,GACbm7B,EAAQuxD,eAAe1sF,EAAS+hB,MAAM,IACtCoqE,EAAOliE,KAAKjqB,GACZ2sF,GAAU3sF,GACVv2B,EAAKu2B,EAAUm7B,IACR,YACN,GAAI30D,EAAWw5B,GACpB,OAAOr+B,KAAKquB,MAAMgQ,IAGhBysF,EAAKphE,UAAYohE,IAASvmG,KAAKumG,EAAO,CAACA,IAC3C9qH,KAAKiH,OAAS6jH,EAAK7jH,OAEnB,IAAK,IAAImD,EAAI,EAAGi3C,EAAIrhD,KAAKiH,OAAQmD,EAAIi3C,EAAGj3C,IACtCpK,KAAKoK,GAAK0gH,EAAK1gH,IAInB,SAAS6gH,EAAK5sF,EAAUm7B,GACtB,OAAO,IAAIoxD,EAAKvsF,EAAUm7B,GAI5B,IAAI3uC,EAAMogG,EAAKpgG,GAAKogG,EAAKnpH,UAAY8oH,EAAK9oH,UAAY,CACpDkH,YAAaiiH,EACbJ,QAAQ,EACR5jH,OAAQ,EACRivB,OAAQA,GAIVrL,EAAGrpB,IAAM,SAASiuB,GAChB,YAAc3mB,IAAV2mB,EAA4B2wB,EAAMwkB,KAAK5kE,MACpCA,KAAKyvB,EAAQ,EAAIA,EAAQzvB,KAAKiH,OAASwoB,IAIhD5E,EAAGitC,GAAK,SAASroC,GACf,OAAOw7F,EAAKjrH,KAAKwB,IAAIiuB,KAIvB5E,EAAG9P,MAAQ,WACT,OAAO/a,KAAK83D,GAAG,IAIjBjtC,EAAGqgG,KAAO,WACR,OAAOlrH,KAAK83D,IAAI,IAIlBjtC,EAAGnQ,IAAM,SAASywG,GAChB,OAAOF,EACLvwG,EAAIkqD,KAAK5kE,MAAM,SAASorH,EAAKhhH,GAC3B,OAAO+gH,EAASvmD,KAAKwmD,EAAKhhH,EAAGghH,QAMnCvgG,EAAGu1B,MAAQ,WACT,OAAO6qE,EAAK7qE,EAAMwJ,MAAM5pD,KAAM+jB,aAGhC,IAAIsnG,EAAc,sBAChBC,EAAwB,WAE1B,SAASxd,EAAU9wD,GACjB,OAAOA,EACJjxC,QAAQs/G,GAAa,SAASE,EAAQ97F,GACrC,OAAO87F,EAAQ97F,EAAwB,cAAhB,oBAExB1jB,QAAQu/G,EAAuB,IAKpC,SAASljH,EAAK60D,EAAKkuD,GACjB,IAAK,IAAI/gH,EAAI,EAAGi3C,EAAI4b,EAAIh2D,OAAQmD,EAAIi3C,IACY,IAA1C8pE,EAASvmD,KAAK3H,EAAI7yD,GAAI6yD,EAAI7yD,GAAIA,EAAG6yD,GADA7yD,MAHzC6gH,EAAKnd,UAAYA,EAQjBmd,EAAK7iH,KAAOA,EAGZyiB,EAAGziB,KAAO,SAAS+iH,GAIjB,OAHA/iH,EAAKpI,MAAM,SAASorH,EAAKhhH,GACvB,OAAO+gH,EAASvmD,KAAKwmD,EAAKhhH,EAAGghH,MAExBprH,MAIT6qB,EAAG2gG,WAAa,SAASj1F,GACvB,OAAOv2B,KAAKoI,MAAK,SAASgC,EAAGghH,UACpBA,EAAI70F,OAqBf00F,EAAK1yF,OAAS1N,EAAG0N,OAjBjB,SAAgB70B,QACC,IAAXA,IACFA,EAAS1D,MAMX,IAHA,IAAIkhC,EAAOnd,UACT9c,EAASi6B,EAAKj6B,OAEPmD,EAAInD,EAAS,EAAI,EAAI,EAAGmD,EAAInD,EAAQmD,IAC3C,IAAK,IAAIksB,KAAO4K,EAAK92B,GACnB1G,EAAO4yB,GAAO4K,EAAK92B,GAAGksB,GAI1B,OAAO5yB,GAKT,IAAI+nH,EAAO,EAGX,SAASz3F,EAAQo3F,EAAK/sF,GACpB,IAAIrK,EACFo3F,IACCA,EAAIp3F,SACHo3F,EAAIM,uBACJN,EAAIO,oBACJP,EAAIQ,mBACJR,EAAIS,kBACR,QAAS73F,GAAWA,EAAQ4wC,KAAKwmD,EAAK/sF,GAKxC,SAASx5B,EAAW+X,GAClB,MAAoB,mBAANA,EAKhB,SAAS1D,EAAS0D,GAChB,MAAoB,iBAANA,EAKhB,SAASkvG,EAAUlvG,GACjB,OAAQ0L,MAAM+E,WAAWzQ,KAAOmvG,SAASnvG,GA5B3CquG,EAAKQ,KAAOA,EAaZR,EAAKj3F,QAAUA,EAMfi3F,EAAKpmH,WAAaA,EAMlBomH,EAAK/xG,SAAWA,EAMhB+xG,EAAKa,UAAYA,EACjB,IAAI9wG,EAAUgD,MAAMhD,QAuBpB,SAASgxG,EAAmB3tF,GAC1B,OAAOnlB,EAASmlB,GACZ,SAASj0B,EAAGghH,GACV,OAAOp3F,EAAQo3F,EAAK/sF,IAEtBA,EAASwsF,OACT,SAASzgH,EAAGghH,GACV,OAAO/sF,EAASwtB,GAAGu/D,IAErB,SAAShhH,EAAGghH,EAAK/sF,GACf,OAAO+sF,IAAQ/sF,GAhCvB4sF,EAAKjwG,QAAUA,EAIf6P,EAAG0L,KAAO,SAASA,EAAM1wB,GACvB,GAAK0wB,EAAL,CAEA,GAAIrd,EAASqd,GACX,OAAIxS,UAAU9c,OAAS,EAAUjH,KAAK,IAAMA,KAAK,GAAGu2B,GAC7Cv2B,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BA,EAAI70F,GAAQ1wB,KAIhB,IAAK,IAAIywB,KAAOC,EACdv2B,KAAKu2B,KAAKD,EAAKC,EAAKD,IAGtB,OAAOt2B,OAsBT6qB,EAAGmL,OAAS,SAASqI,GACnB,IAAKA,EAAU,OAAO4sF,IACtB,IAAIgB,EAAapnH,EAAWw5B,GACxBA,EACA2tF,EAAmB3tF,GACvB,OAAO4sF,EACLj1F,EAAO4uC,KAAK5kE,MAAM,SAASorH,EAAKhhH,GAC9B,OAAO6hH,EAAWrnD,KAAKwmD,EAAKhhH,EAAGghH,EAAK/sF,QAK1C,IAAI6tF,EAAgB,OAEpB,SAASC,EAAenvE,GACtB,OAAO9jC,EAAS8jC,IAAOA,EAAIzvC,MAAM2+G,IAAuB,GAkG1D,SAAS7sC,EAAOpiB,GACd,OAAOA,EAAIjnC,QAAO,SAAStpB,EAAM+iB,EAAO81D,GACtC,OAAOA,EAAK5wE,QAAQjI,KAAU+iB,KAYlC,SAAS28F,EAAahB,EAAK70F,EAAM81F,GAC/B,GAAqB,IAAjBjB,EAAI1hE,SAAR,CACA,IAAI/yC,EAAQ4N,EAAI6I,iBAAiBg+F,EAAK,MACtC,OAAO70F,EACH81F,EACE11G,EAAMskF,iBAAiB1kE,GACvB5f,EAAM4f,GACR5f,GAGN,SAAS21G,EAAgBlB,EAAK70F,GAC5B,OAAOq3B,SAASw+D,EAAahB,EAAK70F,GAAO,KAAO,EAtHlD1L,EAAG43D,SAAW,SAAS7sE,GACrB,IAAIinB,EAAUsvF,EAAev2G,GACzB22G,GAAQ,EASZ,OAPI1vF,EAAQ51B,QACVjH,KAAKoI,MAAK,SAASgC,EAAGghH,GAEpB,QADAmB,EAAQnB,EAAIxoF,UAAU2M,SAAS1S,EAAQ,QAKpC0vF,GAKT1hG,EAAG04C,WAAa,SAAS32D,GACvB,IAAIirB,EAAQs0F,EAAev/G,GAC3B,OAAKirB,EAAM5wB,OACJjH,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BhjH,EAAKyvB,GAAO,SAAS8G,GACnBysF,EAAIpsB,gBAAgBrgE,SAHE3+B,MAW5B6qB,EAAGje,KAAO,SAASA,EAAM/G,GACvB,GAAK+G,EAAL,CAEA,GAAIsM,EAAStM,GAAO,CAClB,GAAImX,UAAU9c,OAAS,EAAG,CACxB,IAAKjH,KAAK,GAAI,OAEd,IAAIwsH,EAASxsH,KAAK,GAAGkjE,aAAat2D,GAElC,OAAkB,OAAX4/G,OAAkB1jH,EAAY0jH,EAGvC,OAAc,OAAV3mH,EAAuB7F,KAAKujE,WAAW32D,GACpC5M,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BA,EAAIp1G,aAAapJ,EAAM/G,MAI3B,IAAK,IAAIywB,KAAO1pB,EACd5M,KAAK4M,KAAK0pB,EAAK1pB,EAAK0pB,IAGtB,OAAOt2B,OAMT6qB,EAAGg0D,YAAc,SAASjpE,EAAKgsB,GAC7B,IAAI/E,EAAUsvF,EAAev2G,GAC3B62G,OAAoB3jH,IAAV84B,EACZ,OAAK/E,EAAQ51B,OACNjH,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BhjH,EAAKy0B,GAAS,SAASh0B,GACjB4jH,EACF7qF,EAAQwpF,EAAIxoF,UAAU/7B,IAAIgC,GAAKuiH,EAAIxoF,UAAU1/B,OAAO2F,GAEpDuiH,EAAIxoF,UAAUg9C,OAAO/2E,SANC7I,MAa9B6qB,EAAGjmB,SAAW,SAASgR,GACrB,OAAO5V,KAAK6+E,YAAYjpE,GAAK,IAK/BiV,EAAG5iB,YAAc,SAAS2N,GACxB,OAAQmO,UAAU9c,OAEdjH,KAAK6+E,YAAYjpE,GAAK,GADtB5V,KAAK4M,KAAK,QAAS,KAkBzBq+G,EAAK5rC,OAASA,EAIdx0D,EAAGhkB,IAAM,SAASw3B,EAAUm7B,GAC1B,OAAOyxD,EAAK5rC,EAAOr/E,KAAKwB,MAAMi9B,OAAOwsF,EAAK5sF,EAAUm7B,GAASh4D,UAiB/D,IAAIkrH,EAAgB,MAEpB,SAASC,EAAcp2F,GACrB,OAAOm2F,EAAcpkE,KAAK/xB,GAO5B,IAAIq2F,EAAgB,GAClBC,EAAQpuG,GAAOA,EAAImP,cAAc,OACjCjX,EAAQk2G,EAAQA,EAAMl2G,MAAQ,GAC9Bm2G,EAAkB,CAAC,SAAU,MAAO,KAAM,KAE5C,SAASC,EAAgBx2F,EAAM81F,GAK7B,QAJmB,IAAfA,IACFA,EAAaM,EAAcp2F,IAGzB81F,EAAY,OAAO91F,EAEvB,IAAKq2F,EAAcr2F,GAAO,CACxB,IAAIy2F,EAASlf,EAAUv3E,GACrB02F,EAAS,GAAKD,EAAOr9D,OAAO,GAAG/pB,cAAgBonF,EAAO5sE,MAAM,GAO9Dh4C,GALI4kH,EACA,IACAF,EAAgB/qG,KAAKkrG,EAAS,KAC9BA,GACAxrH,MAAM,MACE,SAASm1B,GACnB,GAAIA,KAAKjgB,EAEP,OADAi2G,EAAcr2F,GAAQK,GACf,KAKb,OAAOg2F,EAAcr2F,GAGvB00F,EAAKiC,aAAeH,EAGpB,IAAII,EAAe,CACjBC,yBAAyB,EACzBC,aAAa,EACbC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,YAAY,EACZ1oG,SAAS,EACT/N,OAAO,EACP02G,SAAS,EACTC,QAAQ,EACRC,QAAQ,GAGV,SAASC,EAAiBt3F,EAAM1wB,EAAOwmH,GAKrC,YAJmB,IAAfA,IACFA,EAAaM,EAAcp2F,IAGrB81F,GAAec,EAAa52F,KAASu1F,EAAUjmH,GAEnDA,EADAA,EAAQ,KAUdglB,EAAG9T,IAAM,SAASwf,EAAM1wB,GACtB,GAAIqT,EAASqd,GAAO,CAClB,IAAI81F,EAAaM,EAAcp2F,GAE/B,OADAA,EAAOw2F,EAAgBx2F,EAAM81F,GACzBtoG,UAAU9c,OAAS,EACdjH,KAAK,IAAMosH,EAAapsH,KAAK,GAAIu2B,EAAM81F,GAC3C91F,GACL1wB,EAAQgoH,EAAiBt3F,EAAM1wB,EAAOwmH,GAC/BrsH,KAAKoI,MAAK,SAASgC,EAAGghH,GACN,IAAjBA,EAAI1hE,WAEJ2iE,EACFjB,EAAIz0G,MAAMm3G,YAAYv3F,EAAM1wB,GAE5BulH,EAAIz0G,MAAM4f,GAAQ1wB,OARJ7F,KAapB,IAAK,IAAIs2B,KAAOC,EACdv2B,KAAK+W,IAAIuf,EAAKC,EAAKD,IAGrB,OAAOt2B,MAGT,IAAI+tH,EAAgB,aAClBC,EAAkB,aAOpB,SAASC,EAAa7C,GACpB,OAAQA,EAAG,WAAkBA,EAAG,YAAmB,GAIrD,SAAS5qG,EAAQ4qG,EAAK90F,GACpB,IAAI43F,EAAQD,EAAa7C,GAEzB,GAAI90F,EAAK,CACP,KAAMA,KAAO43F,GAAQ,CACnB,IAAIroH,EAAQulH,EAAI+C,QACZ/C,EAAI+C,QAAQ73F,IAAQ80F,EAAI+C,QAAQrgB,EAAUx3E,IAC1C20F,EAAKG,GAAKx+G,KAAK,QAAU0pB,GAE7B,QAAcxtB,IAAVjD,EAAqB,CACvB,IACEA,EAAQ+D,KAAKC,MAAMhE,GACnB,MAAOX,IAETgpH,EAAM53F,GAAOzwB,GAIjB,OAAOqoH,EAAM53F,GAGf,OAAO43F,EA2DT,SAASE,EAAchD,EAAKiD,GAC1B,OACE/B,EAAgBlB,EAAK,UAAYiD,EAAQ,OAAS,OAAS,SAC3D/B,EAAgBlB,EAAK,WAAaiD,EAAQ,OAAS,QACnD/B,EAAgBlB,EAAK,WAAaiD,EAAQ,QAAU,WACpD/B,EAAgBlB,EAAK,UAAYiD,EAAQ,QAAU,UAAY,SA8DnE,SAASC,EAAcC,EAAKC,GAC1B,IAAK,IAAIpkH,EAAI,EAAGi3C,EAAImtE,EAAIvnH,OAAQmD,EAAIi3C,EAAGj3C,IACrC,GAAImkH,EAAI55G,QAAQ65G,EAAIpkH,IAAM,EAAG,OAAO,EAGtC,OAAO,EAGT,SAASqkH,EAAqBP,EAAO9C,EAAKjnH,GACxCiE,EAAK8lH,EAAM/pH,IAAO,SAASuqH,GACRA,EAAK,GAAtB,IACEvD,EAAWuD,EAAK,GAClBtD,EAAI//E,oBAAoBlnC,EAAMgnH,aAEzB+C,EAAM/pH,GA1Kf8mH,EAAK0D,QAAU,SAASvD,GACtB,OAAO2C,KAAiB3C,GAkD1BvgG,EAAG/gB,KAAO,SAAS3F,EAAM0B,GACvB,IAAI+oH,EAAQ5uH,KAEZ,IAAKmE,EAAM,CACT,IAAKnE,KAAK,GAAI,OAOd,OANAoI,EAAKpI,KAAK,GAAGqT,YAAY,SAASzG,GAChC,IAAIW,EAAQX,EAAKzI,KAAKoJ,MAAMygH,GACvBzgH,GAELqhH,EAAM9kH,KAAKyD,EAAM,OAEZiT,EAAQxgB,KAAK,IAGtB,GAAIkZ,EAAS/U,GACX,YAAc2E,IAAVjD,EAA4B7F,KAAK,IAAMwgB,EAAQxgB,KAAK,GAAImE,GACrDnE,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3B,OA1BN,SAAiBA,EAAK90F,EAAKzwB,GACzBooH,EAAa7C,GAAK90F,GAAOzwB,EAyBdgpH,CAAQzD,EAAKjnH,EAAM0B,MAI9B,IAAK,IAAIywB,KAAOnyB,EACdnE,KAAK8J,KAAKwsB,EAAKnyB,EAAKmyB,IAGtB,OAAOt2B,MAKT6qB,EAAG2+C,WAAa,SAASlzC,GACvB,OAAOt2B,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3B,OAjDJ,SAAoBA,EAAK90F,QACXxtB,IAARwtB,SACK80F,EAAG,kBAEH6C,EAAa7C,GAAK90F,GA6ClBkzC,CAAW4hD,EAAK90F,OAiB3BluB,EAAK,CAAC,QAAS,WAAW,SAASmuB,GACjC1L,EAAG,QAAU0L,GAAQ,WACnB,GAAKv2B,KAAK,GACV,OAAIA,KAAK,KAAOukB,EAAYA,EAAI,QAAUgS,GACnCv2B,KAAK,GAAG,SAAWu2B,OAU9BnuB,EAAK,CAAC,QAAS,WAAW,SAASmuB,EAAM9G,GACvC5E,EAAG0L,GAAQ,SAAS1wB,GAClB,OAAK7F,KAAK,GAEL+jB,UAAU9c,QAOfpB,EAAQ+nD,SAAS/nD,EAAO,IACjB7F,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3B,GAAqB,IAAjBA,EAAI1hE,SAAR,CACA,IAAIolE,EAAY1C,EAAahB,EAAK,aAClCA,EAAIz0G,MAAM4f,GAAQs3F,EAChBt3F,EACA1wB,GAAuB,eAAdipH,EAA6BV,EAAchD,GAAM37F,GAAS,SAZjEzvB,KAAK,KAAOukB,EAAYvkB,KAAK,GAAG8tG,EAAU,SAAWv3E,IAEvDv2B,KAAK,GAAGmjB,wBAAwBoT,GAAQ63F,EAAcpuH,KAAK,IAAKyvB,QALrC3mB,IAAVjD,OAAsBiD,EAAY9I,SAwB3DoI,EAAK,CAAC,QAAS,WAAW,SAASmuB,EAAM9G,GACvC5E,EAAG,QAAU0L,GAAQ,SAASw4F,GAC5B,GAAK/uH,KAAK,GACV,OAAIA,KAAK,KAAOukB,EAAYA,EAAI,QAAUgS,GAExCv2B,KAAK,GAAG,SAAWu2B,IAClBw4F,EACGzC,EAAgBtsH,KAAK,GAAI,UAAayvB,EAAiB,MAAT,SAC9C68F,EAAgBtsH,KAAK,GAAI,UAAayvB,EAAkB,SAAV,UAC9C,OA2BV,SAASu/F,EAAe5D,GACtB,OAAQA,EAAG,aAAoBA,EAAG,cAAqB,GAYzD,SAAS6D,GAAeC,GACtB,IAAItc,EAAQsc,EAAUztH,MAhBM,KAiB5B,MAAO,CAACmxG,EAAM,GAAIA,EAAMxyD,MAAM,GAAGt+B,QAOnC,SAASqtG,GAAY/D,EAAKjnH,EAAMirH,EAAYjE,GAC1C,IAAI+C,EAAQc,EAAe5D,GAE3B,GAAKjnH,EAUE,CACL,IAAIkrH,EAAanB,EAAM/pH,GACvB,IAAKkrH,EAAY,OACblE,IAAUA,EAASM,KAAON,EAASM,MAAQA,KAC/CyC,EAAM/pH,GAAQkrH,EAAWr5F,QAAO,SAASs5F,GACvC,IAAIjoC,EAAKioC,EAAM,GACbC,EAAKD,EAAM,GACb,GACGnE,GAAYoE,EAAG9D,OAASN,EAASM,OACjC6C,EAAcjnC,EAAI+nC,GAEnB,OAAO,EACThE,EAAI//E,oBAAoBlnC,EAAMorH,WArBhC,GAAKH,GAAeA,EAAWnoH,OAK7B,IAAK9C,KAAQ+pH,EACXiB,GAAY/D,EAAKjnH,EAAMirH,EAAYjE,QALrC,IAAKhnH,KAAQ+pH,EACXO,EAAqBP,EAAO9C,EAAKjnH,GA4BzC0mB,EAAGpV,IAAM,SAAS+5G,EAAerE,GAC/B,IAAIsE,EAASzvH,KAkBb,YAhBsB8I,IAAlB0mH,EACFxvH,KAAKoI,MAAK,SAASgC,EAAGghH,GACpB,OAAO+D,GAAY/D,MAGrBhjH,EAAK+jH,EAAeqD,IAAgB,SAASA,GAC3C,IAAIE,EAAkBT,GAAeO,GACnCrrH,EAAOurH,EAAgB,GACvBN,EAAaM,EAAgB,GAE/BD,EAAOrnH,MAAK,SAASgC,EAAGghH,GACtB,OAAO+D,GAAY/D,EAAKjnH,EAAMirH,EAAYjE,SAKzCnrH,MAaT6qB,EAAGlb,GAAK,SAAS6/G,EAAenxF,EAAU8sF,EAAUwE,GAClD,IAAIC,EAAS5vH,KAEb,IAAKkZ,EAASs2G,GAAgB,CAC5B,IAAK,IAAIl5F,KAAOk5F,EACdxvH,KAAK2P,GAAG2mB,EAAK+H,EAAUmxF,EAAcl5F,IAGvC,OAAOt2B,KAsDT,OAnDI6E,EAAWw5B,KACb8sF,EAAW9sF,EACXA,GAAW,GAGbj2B,EAAK+jH,EAAeqD,IAAgB,SAASA,GAC3C,IAAIK,EAAmBZ,GAAeO,GACpCrrH,EAAO0rH,EAAiB,GACxBT,EAAaS,EAAiB,GAEhCD,EAAOxnH,MAAK,SAASgC,EAAGghH,GACtB,IAAI0E,EAAgB,SAASA,EAAcxiH,GACzC,IACEA,EAAMyiH,WACLzB,EACCc,EACA9hH,EAAMyiH,UAAUtuH,MArHE,MAiHtB,CAQA,IAAIuuH,EAAU5E,EAEd,GAAI/sF,EAAU,CAGZ,IAFA,IAAI36B,EAAS4J,EAAM5J,QAEXswB,EAAQtwB,EAAQ26B,IAAW,CACjC,GAAI36B,IAAW0nH,EAAK,OAEpB,KADA1nH,EAASA,EAAO4e,YACH,OAGf0tG,EAAUtsH,EAGZ4J,EAAMyiH,UAAYziH,EAAMyiH,WAAa,GACrC,IAAI1mD,EAAc8hD,EAASvmD,KAAKorD,EAAS1iH,EAAOA,EAAMxD,MAElD6lH,GACFR,GAAY/D,EAAKjnH,EAAMirH,EAAYU,IAGjB,IAAhBzmD,IACF/7D,EAAMjH,iBACNiH,EAAMnB,qBAIV2jH,EAAcrE,KAAON,EAASM,KAAON,EAASM,MAAQA,IA7I5D,SAAkBL,EAAKjnH,EAAMirH,EAAYjE,GACvCA,EAASM,KAAON,EAASM,MAAQA,IACjC,IAAI4D,EAAaL,EAAe5D,GAChCiE,EAAWlrH,GAAQkrH,EAAWlrH,IAAS,GACvCkrH,EAAWlrH,GAAMyJ,KAAK,CAACwhH,EAAYjE,IACnCC,EAAI/9G,iBAAiBlJ,EAAMgnH,GAyIvB18B,CAAS28B,EAAKjnH,EAAMirH,EAAYU,SAG7B9vH,MAIT6qB,EAAGolG,IAAM,SAAST,EAAerlE,EAAUghE,GACzC,OAAOnrH,KAAK2P,GAAG6/G,EAAerlE,EAAUghE,GAAU,IAIpDtgG,EAAGwD,MAAQ,SAAS88F,GAClB,IAAI2E,EAAgB,WAClB,OAAO3E,EAASF,IASlB,MANuB,YAAnBxsG,EAAIyxG,WACNjsG,WAAW6rG,GAEXrxG,EAAIpR,iBAAiB,mBAAoByiH,GAGpC9vH,MAQT6qB,EAAGnmB,QAAU,SAAS8qH,EAAe1lH,GACnC,IAAIqmH,EAAMX,EAEV,GAAIt2G,EAASs2G,GAAgB,CAC3B,IAAIY,EAAmBnB,GAAeO,GACpCrrH,EAAOisH,EAAiB,GACxBhB,EAAagB,EAAiB,IAEhCD,EAAM1xG,EAAI4xG,YAAY,eAClBC,UAAUnsH,GAAM,GAAM,GAC1BgsH,EAAIJ,UAAYX,EAAWrtG,KA9LD,KAkM5B,OADAouG,EAAIrmH,KAAOA,EACJ9J,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BA,EAAIvkG,cAAcspG,OAwBtB,IAAII,GAAc,cAChBC,GAAmB,mBAErB,SAAS12F,GAASsxF,GAChB,IAAI9pH,EAAO8pH,EAAI9pH,KACf,OAAIivH,GAAYjoE,KAAKhnD,GAVvB,SAA8B8pH,GAC5B,OAAOA,EAAIqF,cAAgB,EAAI,KAAOrF,EAAI5oH,QAAQ4oH,EAAIqF,eAAe5qH,MASlC6qH,CAAqBtF,GACpDoF,GAAiBloE,KAAKhnD,GArB5B,SAAgC8pH,GAC9B,IAAIjc,EAAS,GAMb,OALA/mG,EAAKgjH,EAAI5oH,SAAS,SAAS+mE,IACrBA,EAAOn1D,UAAam1D,EAAO5gE,UAAa4gE,EAAOjnD,WAAW3Z,UAC5DwmG,EAAOvhG,KAAK27D,EAAO1jE,UAGhBspG,EAciCwhB,CAAuBvF,GACxDA,EAAIvlH,MAGb,IAAI+qH,GAAqB,OAezB,IAAIC,GAAc,kCAChBC,GAAc,kBAEhBjmG,EAAGkmG,UAAY,WACb,IAAI/pE,EAAQ,GAcZ,OAbAhnD,KAAKoI,MAAK,SAASgC,EAAGghH,GACpBhjH,EAAKgjH,EAAI4F,UAAY,CAAC5F,IAAM,SAASA,GACnC,IAAIA,EAAIziH,UAAayiH,EAAIjnH,MAAwB,aAAhBinH,EAAIxkG,UACjCiqG,GAAYvoE,KAAK8iE,EAAI9pH,SACrBwvH,GAAYxoE,KAAK8iE,EAAI9pH,OAAU8pH,EAAIzS,SAAvC,CACA,IAAI9yG,EAAQi0B,GAASsxF,GACrB,QAActiH,IAAVjD,EAEJuC,EADa4S,EAAQnV,GAASA,EAAQ,CAACA,IAC1B,SAASA,GACpBmhD,GA3BR,SAAqBzwB,EAAM1wB,GACzB,MACE,IACAorH,mBAAmB16F,GACnB,IACA06F,mBAAmBprH,GAAOkG,QAAQ6kH,GAAoB,KAsBzCM,CAAY9F,EAAIjnH,KAAM0B,aAI9BmhD,EAAML,OAAO,IAOtB97B,EAAGzhB,IAAM,SAASvD,GAChB,YAAciD,IAAVjD,EAA4B7F,KAAK,IAAM85B,GAAS95B,KAAK,IAClDA,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3B,IAAI+F,EAAaX,GAAiBloE,KAAK8iE,EAAI9pH,MACzC8vH,EAAqB,OAAVvrH,EAAkBsrH,EAAa,GAAK,GAAMtrH,EAEnDsrH,GAAcn2G,EAAQo2G,GACxBhpH,EAAKgjH,EAAI5oH,SAAS,SAAS+mE,GACzBA,EAAOn1D,SAAWg9G,EAASz8G,QAAQ40D,EAAO1jE,QAAU,KAGtDulH,EAAIvlH,MAAQurH,MAQlBvmG,EAAGjnB,MAAQ,WACT,OAAO5D,KAAK0a,KAAI,SAAStQ,EAAGghH,GAC1B,OAAOA,EAAIiG,WAAU,OAKzBxmG,EAAGymG,OAAS,WACV,OAAOtxH,KAAKoI,MAAK,SAASgC,EAAGghH,GACvBA,EAAI9oG,YACN8oG,EAAI9oG,WAAWC,YAAY6oG,OASjC,IAEImG,GAFAC,GAAa,mBACfC,GAAc,mCAkBhB,SAASzG,GAAU9mH,GAEjB,GAjBF,WACE,IAAIqtH,GAAJ,CACA,IAAIzoC,EAAQrqE,EAAImP,cAAc,SAC5BivC,EAAKp+C,EAAImP,cAAc,MACzB2jG,GAAa,CACX,IAAK9yG,EAAImP,cAAc,OACvBivC,GAAIp+C,EAAImP,cAAc,SACtB8jG,GAAI70D,EACJ80D,GAAI90D,EACJgsB,MAAOC,EACPF,MAAOE,EACPH,MAAOG,IAKT8oC,IACK14G,EAAShV,GAAO,MAAO,GAC5B,GAAIutH,GAAYnpE,KAAKpkD,GAAO,MAAO,CAACua,EAAImP,cAAcixC,OAAOgzD,KAC7D,IAAIxqH,EAAWmqH,GAAWlpE,KAAKpkD,IAAS26D,OAAOgzD,GAC7C5hH,EAAYshH,GAAWlqH,IAAakqH,GAAW,KAEjD,OADAthH,EAAUnM,UAAYI,EACf+mH,EAAKh7G,EAAUmpC,YACnBk4E,SACA9vH,MAyCL,SAASswH,GAAcr9G,EAAQg1C,EAAOuoD,GACpC,QAAclpG,IAAV2gD,EAAJ,CACA,IAAIsoE,EAAQ74G,EAASuwC,IAEhBsoE,GAAStoE,EAAMxiD,OAClBmB,EAAKqhD,GAAO,SAAS2hE,GACnB,OAAO0G,GAAcr9G,EAAQ22G,EAAKpZ,MAGpC5pG,EACEqM,EACAs9G,EACI,SAAS3G,GACPA,EAAI4G,mBAAmBhgB,EAAU,aAAe,YAAavoD,IAE/D,SAAS2hE,EAAK37F,GACZ,OA1BZ,SAAuB27F,EAAK3hE,EAAOuoD,GAC7BA,EACFoZ,EAAIzjH,aAAa8hD,EAAO2hE,EAAIhyE,WAAW,IAEvCgyE,EAAI3jH,YAAYgiD,GAsBDwoE,CACL7G,EACC37F,EAAgBg6B,EAAM4nE,WAAU,GAAxB5nE,EACTuoD,MAzDdiZ,EAAKD,UAAYA,GAgBjBngG,EAAG9iB,MAAQ,WACT,IAAIqjH,EAAMprH,KAAK,GAEf,GAAIorH,EACF,KAAOA,EAAIxjH,YACTwjH,EAAI7oG,YAAY6oG,EAAIxjH,YAIxB,OAAO5H,MAyCT6qB,EAAG7iB,OAAS,WACV,IAAIkqH,EAASlyH,KAKb,OAHAoI,EAAK2b,WAAW,SAAShR,GACvB++G,GAAcI,EAAQn/G,MAEjB/S,MAIT6qB,EAAGnY,SAAW,SAAS+B,GAErB,OADAq9G,GAAc7G,EAAKx2G,GAASzU,MACrBA,MAIT6qB,EAAG3mB,KAAO,SAAS6O,GACjB,QAAgBjK,IAAZiK,EAAuB,OAAO/S,KAAK,IAAMA,KAAK,GAAG8D,UACrD,IAAIgxD,EAAS/hD,EAAQ22C,SAAW32C,EAAQ,GAAGsrF,UAAYtrF,EACvD,OAAO/S,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BA,EAAItnH,UAAYgxD,MAKpBjqC,EAAGsnG,YAAc,SAASp/G,GACxB,IAAIq/G,EAASpyH,KASb,OAPAirH,EAAKl4G,GAAS3K,MAAK,SAASqnB,EAAO27F,GACjC,IAAI32G,EAAS22G,EAAI9oG,WAEjB8vG,EAAOhqH,MAAK,SAASgC,EAAGlF,GACtBuP,EAAO9M,aAAc8nB,EAAYvqB,EAAEmsH,WAAU,GAAhBnsH,EAAuBkmH,EAAIiH,mBAGrDryH,MAOT6qB,EAAGw3D,MAAQ,WACT,IAAIiwC,EAAStyH,KAKb,OAHAoI,EAAKk3E,EAAQ11B,MAAM7lC,YAAY,SAAShR,GACtCusE,EAAQ11B,MAAMqhE,EAAKl4G,GAASqtC,SAAS+xE,YAAYG,MAE5CtyH,MAIT6qB,EAAGljB,aAAe,SAAS02B,GACzB,IAAIk0F,EAASvyH,KASb,OAPAirH,EAAK5sF,GAAUj2B,MAAK,SAASqnB,EAAO27F,GAClC,IAAI32G,EAAS22G,EAAI9oG,WAEjBiwG,EAAOnqH,MAAK,SAASgC,EAAGlF,GACtBuP,EAAO9M,aAAc8nB,EAAYvqB,EAAEmsH,WAAU,GAAhBnsH,EAAuBkmH,SAGjDprH,MAKT6qB,EAAGm7F,OAAS,WACV,IAAIwM,EAASxyH,KAKb,OAHAoI,EAAK2b,WAAW,SAAShR,GACvBk4G,EAAKl4G,GAASpL,aAAa6qH,MAEtBxyH,MAKT6qB,EAAGmnF,QAAU,WACX,IAAIygB,EAASzyH,KAKb,OAHAoI,EAAK2b,WAAW,SAAShR,GACvB++G,GAAcW,EAAQ1/G,GAAS,MAE1B/S,MAMT6qB,EAAG6nG,UAAY,SAASj+G,GAEtB,OADAq9G,GAAc7G,EAAKx2G,GAAS6qE,EAAQ11B,MAAM5pD,KAAKogD,UAAU,GAClDpgD,MAKT6qB,EAAG3nB,OAAS,WACV,OAAOlD,KAAKsxH,SAAS77G,OAOvBoV,EAAG85C,YAAc,SAAS5xD,GACxB,IAAI4/G,EAAU3yH,KAEd,OAAOA,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3B,IAAI32G,EAAS22G,EAAI9oG,WACjB,GAAK7N,EAAL,CACA,IAAIm+G,EAAQxoH,EAAI6gH,EAAKl4G,GAASnP,QAAUqnH,EAAKl4G,GAE7C,IAAK6/G,EAAM,GAGT,OAFAD,EAAQzvH,UAED,EAGTuR,EAAOo+G,aAAaD,EAAM,GAAIxH,GAC9BH,EAAK2H,EAAM,IAAIvwC,MAAMuwC,EAAMxyE,MAAM,SAKrCv1B,EAAGioG,WAAa,SAAS//G,GAEvB,OADAk4G,EAAKl4G,GAAS4xD,YAAY3kE,MACnBA,MAIT6qB,EAAGphB,KAAO,SAASsJ,GACjB,YAAgBjK,IAAZiK,EAA8B/S,KAAK,GAAKA,KAAK,GAAG+V,YAAc,GAC3D/V,KAAKoI,MAAK,SAASgC,EAAGghH,GAC3BA,EAAIr1G,YAAchD,MAqBtB,IAAIggH,GAASt0G,GAAOA,EAAImjE,gBAExB/2D,EAAG+B,OAAS,WACV,IAAIw+F,EAAMprH,KAAK,GACf,GAAKorH,EAAL,CACA,IAAIloG,EAAOkoG,EAAIjoG,wBACf,MAAO,CACLnD,IAAKkD,EAAKlD,IAAMuE,EAAIiP,YAAcu/F,GAAOC,UACzCjzG,KAAMmD,EAAKnD,KAAOwE,EAAImP,YAAcq/F,GAAOE,cAI/CpoG,EAAGu5C,aAAe,WAChB,OAAO6mD,EAAKjrH,KAAK,IAAMA,KAAK,GAAGokE,eAGjCv5C,EAAG5K,SAAW,WACZ,IAAImrG,EAAMprH,KAAK,GACf,GAAKorH,EACL,MAAO,CACLrrG,KAAMqrG,EAAI5nG,WACVxD,IAAKorG,EAAI7nG,YAWbsH,EAAGka,SAAW,SAAS1G,GACrB,IAAIp8B,EAAS,GAKb,OAJAjC,KAAKoI,MAAK,SAASgC,EAAGghH,GACpBx9G,EAAKg8C,MAAM3nD,EAAQmpH,EAAIrmF,aAEzB9iC,EAASgpH,EAAK5rC,EAAOp9E,IAChBo8B,EACEp8B,EAAO+zB,QAAO,SAAS5rB,EAAGghH,GAC/B,OAAOp3F,EAAQo3F,EAAK/sF,MAFAp8B,GAQxB4oB,EAAGqoG,SAAW,WACZ,IAAIjxH,EAAS,GAOb,OANAjC,KAAKoI,MAAK,SAASgC,EAAGghH,GACpBx9G,EAAKg8C,MACH3nD,EACgB,WAAhBmpH,EAAIxkG,QAAuB,CAACwkG,EAAI7yG,iBAAmB6yG,EAAIhyE,eAGpD6xE,EAAKhpH,EAAOgF,QAAUo4E,EAAOp9E,KAMtC4oB,EAAG/iB,KAAO,SAASu2B,GAGjB,IAFA,IAAIp8B,EAAS,GAEJmI,EAAI,EAAGi3C,EAAIrhD,KAAKiH,OAAQmD,EAAIi3C,EAAGj3C,IAAK,CAC3C,IAAI2zB,EAAQj2B,EAAKu2B,EAAUr+B,KAAKoK,IAE5B2zB,EAAM92B,QACR2G,EAAKg8C,MAAM3nD,EAAQ87B,GAIvB,OAAOktF,EAAKhpH,EAAOgF,QAAUo4E,EAAOp9E,KAMtC4oB,EAAG2W,IAAM,SAASnD,GAChB,IAAI4tF,EAAa/yG,EAASmlB,GACtB,SAASj0B,EAAGghH,GACV,QAAStjH,EAAKu2B,EAAU+sF,GAAKnkH,QAE/B,SAASmD,EAAGghH,GACV,OAAOA,EAAI77E,SAASlR,IAE1B,OAAOr+B,KAAKg2B,OAAOi2F,IAKrBphG,EAAGghC,GAAK,SAASxtB,GACf,IAAKA,IAAar+B,KAAK,GAAI,OAAO,EAClC,IAAIisH,EAAaD,EAAmB3tF,GAChCkuF,GAAQ,EAKZ,OAJAvsH,KAAKoI,MAAK,SAASgC,EAAGghH,GAEpB,QADAmB,EAAQN,EAAW7hH,EAAGghH,EAAK/sF,OAGtBkuF,GAGT1hG,EAAGmd,KAAO,WACR,OAAOijF,EAAKjrH,KAAK,IAAMA,KAAK,GAAGmzH,qBAKjCtoG,EAAGuoG,IAAM,SAAS/0F,GAChB,IAAKA,IAAar+B,KAAK,GAAI,OAAOA,KAClC,IAAIisH,EAAaD,EAAmB3tF,GACpC,OAAOr+B,KAAKg2B,QAAO,SAAS5rB,EAAGghH,GAC7B,OAAQa,EAAW7hH,EAAGghH,EAAK/sF,OAM/BxT,EAAGpW,OAAS,WACV,IAAIxS,EAAS,GAMb,OALAjC,KAAKoI,MAAK,SAASgC,EAAGghH,GAChBA,GAAOA,EAAI9oG,YACbrgB,EAAO2L,KAAKw9G,EAAI9oG,eAGb2oG,EAAK5rC,EAAOp9E,KAQrB4oB,EAAG4E,MAAQ,SAAS27F,GAClB,IAAI3hE,EAAQ2hE,EAAMH,EAAKG,GAAK,GAAKprH,KAAK,GACpCyC,EAAa2oH,EACTprH,KACAirH,EAAKxhE,GACFh1C,SACAswB,WACT,OAAOpwB,EAAQiwD,KAAKniE,EAAYgnD,IAgBlC5+B,EAAGktC,QAAU,SAAS15B,GACpB,OAAKA,GAAar+B,KAAK,GACnBA,KAAK6rD,GAAGxtB,GAAkBr+B,KAAKg2B,OAAOqI,GACnCr+B,KAAKyU,SAASsjD,QAAQ15B,GAFK4sF,KASpCpgG,EAAGwoG,QAAU,SAASh1F,GACpB,IACI6sF,EADAjpH,EAAS,GAab,OAXAjC,KAAKoI,MAAK,SAASgC,EAAGghH,GAGpB,IAFAF,EAAOE,EAEAF,GAAQA,EAAK5oG,YAAc4oG,IAASzsG,EAAIxU,KAAKqY,YAClD4oG,EAAOA,EAAK5oG,aAEP+b,GAAaA,GAAYrK,EAAQk3F,EAAM7sF,KAC1Cp8B,EAAO2L,KAAKs9G,MAIXD,EAAK5rC,EAAOp9E,KAGrB4oB,EAAGtN,KAAO,WACR,OAAO0tG,EAAKjrH,KAAK,IAAMA,KAAK,GAAGszH,yBAMjCzoG,EAAG0oG,SAAW,WACZ,IAAInI,EAAMprH,KAAK,GACf,OAAOA,KAAKyU,SACTswB,WACA/O,QAAO,SAAS5rB,EAAGq/C,GAClB,OAAOA,IAAU2hE,MAyBvB,Y,uKCv5CMoI,EAAW,aAGJzsG,EACX,iEAEWorB,EAAQ,SAAAtuC,GAAE,OAAIA,GAAsB,IAAhBA,EAAG6lD,UAEvBvhC,EAAW,SAAAtkB,GACtB,IAAM4Q,EAAS5Q,GAAMA,EAAGye,WACxB7N,GAAUA,EAAO8N,YAAY1e,IAGlBiE,EAAO,SAACjE,EAAImjD,GAAL,OAAenjD,EAAGksC,iBAAiBiX,IAE1C0J,EAAS,SAAC7sD,GAAD,IAAKg0B,EAAL,uDAAa,GAAb,OACpBh0B,GACAA,EAAGmS,eACH5N,EAAAA,EAAAA,MAAKyvB,GAAO,SAAChyB,EAAOywB,GAAR,OAAgBzyB,EAAGmS,aAAasgB,EAAKzwB,OAEtCgtC,EAAY,SAAAhvC,GACvB,OACEA,MAASA,EAAGyf,aAAezf,EAAGwf,cAAgBxf,EAAG4vH,iBAAiBxsH,SAQzD09D,EAAc,SAAC+uD,EAAOC,GACjCD,EAAMpxG,WAAWuwG,aAAac,EAAOD,IAG1Bne,EAAgB,SAAC9gG,EAAQg1C,EAAOh6B,GAC3C,IAAQ2pB,EAAe3kC,EAAf2kC,WACFw6E,EAAQx6E,EAAWnyC,OACnBH,GAAKge,EAAAA,EAAAA,aAAY2K,GAASmkG,EAAQnkG,GAEpCvW,EAAAA,EAAAA,UAASuwC,KACXh1C,EAAOu9G,mBAAmB,YAAavoE,GACvCA,EAAQh1C,EAAOo/G,UACfp/G,EAAO8N,YAAYknC,IAGjB3iD,GAAM8sH,EACRn/G,EAAOhN,YAAYgiD,GAEnBh1C,EAAO9M,aAAa8hD,EAAOrQ,EAAWtyC,KAI7BkB,EAAS,SAACyM,EAAQg1C,GAAT,OAAmB8rD,EAAc9gG,EAAQg1C,IAElD5mC,EAAW,SAACX,GAA2B,IAAtB2V,EAAsB,uDAAd,GAAI4xB,EAAU,uCAC5C5lD,EAAKqE,SAAS0lB,cAAc1L,GAQlC,OAPA2V,IAASzvB,EAAAA,EAAAA,MAAKyvB,GAAO,SAAChyB,EAAOywB,GAAR,OAAgBzyB,EAAGmS,aAAasgB,EAAKzwB,MAEtD4jD,KACEvwC,EAAAA,EAAAA,UAASuwC,GAAQ5lD,EAAGC,UAAY2lD,EAC/B5lD,EAAG4D,YAAYgiD,IAGf5lD,GAGIitF,EAAa,SAAA9zC,GAAG,OAAI90C,SAAS86C,eAAehG,IAM5Cl2B,EAAoB,SAAC5hB,EAAG0Q,GACnC,IAAIk+G,EACIxyH,EAAS4D,EAAT5D,KACR,IACEwyH,EAAS,IAAI/zH,OAAO6V,GAAKtU,EAAM4D,GAC/B,MAAOmE,IACPyqH,EAAS5rH,SAASmoH,YAAYz6G,IACvB06G,UAAUhvH,GAAM,GAAM,GAa/B,OAXAwyH,EAAOlpG,aAAe1lB,EACM,IAAxB5D,EAAKqT,QAAQ,SACfm/G,EAAOC,WAAa7uH,EAAEsnC,QACtB,CAAC,UAAW,SAAS//B,SAAQ,SAAA8pB,GAC3B3U,OAAOoyG,eAAeF,EAAQv9F,EAAM,CAClC/0B,IADkC,WAEhC,OAAOxB,KAAK+zH,kBAKbD,GAQItxG,EAAe,SAACw+B,GAAsB,IAAhBizE,EAAgB,uDAAP,GACpCC,EAAYl2G,MAAMhD,QAAQi5G,GAAUA,EAAS,CAACA,GACpDC,EAAUznH,SAAQ,SAAA0nH,GAChB,IAAMjyG,EAAMiyG,EAAK,KAAa,MACxBvnH,EAAOunH,EAAMX,IAAa,GAC1B3vH,EAAKqE,SAAS0lB,cAAc1L,IAElC9Z,EAAAA,EAAAA,MAAKwE,GAAM,SAAC/G,EAAOywB,GACjBzyB,EAAGmS,aAAasgB,EAAKzwB,MAGvBm7C,EAAKv5C,YAAY5D,Q,2DC7FrB,QAnBA,SAA4BsnH,GAC1B,IAAIniH,EAAchJ,KAAKgJ,YACvB,OAAOhJ,KAAK0K,MACV,SAAS7E,GAEP,OAAOmD,EAAYmE,QAAQg+G,KAAYzgH,MAAK,WAC1C,OAAO7E,QAGX,SAASkvD,GAEP,OAAO/rD,EAAYmE,QAAQg+G,KAAYzgH,MAAK,WAE1C,OAAO1B,EAAY6B,OAAOkqD,UCgClC,QAhDA,SAAoBkI,GAElB,OAAO,IADCj9D,MACK,SAASmN,EAAStC,GAC7B,IAAMoyD,QAA6B,IAAfA,EAAIh2D,OACtB,OAAO4D,EACL,IAAIupH,WACF,OAAOn3D,GACL,IACAA,EACA,mEAIR,IAAI/7B,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK3H,GACtC,GAAoB,IAAhB/7B,EAAKj6B,OAAc,OAAOkG,EAAQ,IACtC,IAAIknH,EAAYnzF,EAAKj6B,OAErB,SAASkC,EAAIiB,EAAGhB,GACd,GAAIA,IAAuB,YAAf,OAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAIsB,EAAOtB,EAAIsB,KACf,GAAoB,mBAATA,EAaT,YAZAA,EAAKk6D,KACHx7D,GACA,SAASA,GACPD,EAAIiB,EAAGhB,MAET,SAASlE,GACPg8B,EAAK92B,GAAK,CAAEO,OAAQ,WAAYoqD,OAAQ7vD,GACpB,KAAdmvH,GACJlnH,EAAQ+zB,MAOlBA,EAAK92B,GAAK,CAAEO,OAAQ,YAAa9E,MAAOuD,GACpB,KAAdirH,GACJlnH,EAAQ+zB,GAIZ,IAAK,IAAI92B,EAAI,EAAGA,EAAI82B,EAAKj6B,OAAQmD,IAC/BjB,EAAIiB,EAAG82B,EAAK92B,QCtClB,IAAIkqH,EAAiBrwG,WAErB,SAASjJ,EAAQ4B,GACf,OAAOwmB,QAAQxmB,QAAyB,IAAbA,EAAE3V,QAG/B,SAAS6/D,KAaT,SAASl8D,EAAQigB,GACf,KAAM7qB,gBAAgB4K,GACpB,MAAM,IAAIwpH,UAAU,wCACtB,GAAkB,mBAAPvpG,EAAmB,MAAM,IAAIupG,UAAU,kBAElDp0H,KAAKu0H,OAAS,EAEdv0H,KAAKw0H,UAAW,EAEhBx0H,KAAKwsH,YAAS1jH,EAEd9I,KAAKy0H,WAAa,GAElBC,EAAU7pG,EAAI7qB,MAGhB,SAAS20H,EAAOpvC,EAAMqvC,GACpB,KAAuB,IAAhBrvC,EAAKgvC,QACVhvC,EAAOA,EAAKinC,OAEM,IAAhBjnC,EAAKgvC,QAIThvC,EAAKivC,UAAW,EAChB5pH,EAAQiqH,cAAa,WACnB,IAAItF,EAAqB,IAAhBhqC,EAAKgvC,OAAeK,EAASE,YAAcF,EAASG,WAC7D,GAAW,OAAPxF,EAAJ,CAIA,IAAIhrC,EACJ,IACEA,EAAMgrC,EAAGhqC,EAAKinC,QACd,MAAOtnH,GAEP,YADA2F,EAAO+pH,EAAS1nH,QAAShI,GAG3BiI,EAAQynH,EAAS1nH,QAASq3E,QAVP,IAAhBgB,EAAKgvC,OAAepnH,EAAUtC,GAAQ+pH,EAAS1nH,QAASq4E,EAAKinC,YAPhEjnC,EAAKkvC,WAAW7mH,KAAKgnH,GAqBzB,SAASznH,EAAQo4E,EAAMw8B,GACrB,IAEE,GAAIA,IAAax8B,EACf,MAAM,IAAI6uC,UAAU,6CACtB,GACErS,IACqB,YAApB,OAAOA,IAA6C,mBAAbA,GACxC,CACA,IAAIr3G,EAAOq3G,EAASr3G,KACpB,GAAIq3G,aAAoBn3G,EAItB,OAHA26E,EAAKgvC,OAAS,EACdhvC,EAAKinC,OAASzK,OACdiT,EAAOzvC,GAEF,GAAoB,mBAAT76E,EAEhB,YADAgqH,GApEM7pG,EAoESngB,EApELslH,EAoEWjO,EAnEpB,WACLl3F,EAAG++B,MAAMomE,EAASjsG,aAkEkBwhE,GAIpCA,EAAKgvC,OAAS,EACdhvC,EAAKinC,OAASzK,EACdiT,EAAOzvC,GACP,MAAOrgF,GACP2F,EAAO06E,EAAMrgF,GA5EjB,IAAc2lB,EAAImlG,EAgFlB,SAASnlH,EAAO06E,EAAMw8B,GACpBx8B,EAAKgvC,OAAS,EACdhvC,EAAKinC,OAASzK,EACdiT,EAAOzvC,GAGT,SAASyvC,EAAOzvC,GACM,IAAhBA,EAAKgvC,QAA2C,IAA3BhvC,EAAKkvC,WAAWxtH,QACvC2D,EAAQiqH,cAAa,WACdtvC,EAAKivC,UACR5pH,EAAQqqH,sBAAsB1vC,EAAKinC,WAKzC,IAAK,IAAIpiH,EAAI,EAAG89B,EAAMq9C,EAAKkvC,WAAWxtH,OAAQmD,EAAI89B,EAAK99B,IACrDuqH,EAAOpvC,EAAMA,EAAKkvC,WAAWrqH,IAE/Bm7E,EAAKkvC,WAAa,KAMpB,SAASS,EAAQJ,EAAaC,EAAY7nH,GACxClN,KAAK80H,YAAqC,mBAAhBA,EAA6BA,EAAc,KACrE90H,KAAK+0H,WAAmC,mBAAfA,EAA4BA,EAAa,KAClE/0H,KAAKkN,QAAUA,EASjB,SAASwnH,EAAU7pG,EAAI06D,GACrB,IAAI4vC,GAAO,EACX,IACEtqG,GACE,SAAShlB,GACHsvH,IACJA,GAAO,EACPhoH,EAAQo4E,EAAM1/E,OAEhB,SAASkvD,GACHogE,IACJA,GAAO,EACPtqH,EAAO06E,EAAMxwB,OAGjB,MAAOglD,GACP,GAAIob,EAAM,OACVA,GAAO,EACPtqH,EAAO06E,EAAMw0B,IAIjBnvG,EAAQ9I,UAAR,MAA6B,SAASizH,GACpC,OAAO/0H,KAAK0K,KAAK,KAAMqqH,IAGzBnqH,EAAQ9I,UAAU4I,KAAO,SAASoqH,EAAaC,GAE7C,IAAIK,EAAO,IAAIp1H,KAAKgJ,YAAY89D,GAGhC,OADA6tD,EAAO30H,KAAM,IAAIk1H,EAAQJ,EAAaC,EAAYK,IAC3CA,GAGTxqH,EAAQ9I,UAAR,QAA+BuzH,EAE/BzqH,EAAQiD,IAAM,SAASovD,GACrB,OAAO,IAAIryD,GAAQ,SAASuC,EAAStC,GACnC,IAAKmQ,EAAQiiD,GACX,OAAOpyD,EAAO,IAAIupH,UAAU,iCAG9B,IAAIlzF,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK3H,GACtC,GAAoB,IAAhB/7B,EAAKj6B,OAAc,OAAOkG,EAAQ,IACtC,IAAIknH,EAAYnzF,EAAKj6B,OAErB,SAASkC,EAAIiB,EAAGhB,GACd,IACE,GAAIA,IAAuB,YAAf,OAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAIsB,EAAOtB,EAAIsB,KACf,GAAoB,mBAATA,EAQT,YAPAA,EAAKk6D,KACHx7D,GACA,SAASA,GACPD,EAAIiB,EAAGhB,KAETyB,GAKNq2B,EAAK92B,GAAKhB,EACU,KAAdirH,GACJlnH,EAAQ+zB,GAEV,MAAO64E,GACPlvG,EAAOkvG,IAIX,IAAK,IAAI3vG,EAAI,EAAGA,EAAI82B,EAAKj6B,OAAQmD,IAC/BjB,EAAIiB,EAAG82B,EAAK92B,QAKlBQ,EAAQ0qH,WAAaA,EAErB1qH,EAAQuC,QAAU,SAAStH,GACzB,OAAIA,GAA0B,YAAjB,OAAOA,IAAsBA,EAAMmD,cAAgB4B,EACvD/E,EAGF,IAAI+E,GAAQ,SAASuC,GAC1BA,EAAQtH,OAIZ+E,EAAQC,OAAS,SAAShF,GACxB,OAAO,IAAI+E,GAAQ,SAASuC,EAAStC,GACnCA,EAAOhF,OAIX+E,EAAQ2qH,KAAO,SAASt4D,GACtB,OAAO,IAAIryD,GAAQ,SAASuC,EAAStC,GACnC,IAAKmQ,EAAQiiD,GACX,OAAOpyD,EAAO,IAAIupH,UAAU,kCAG9B,IAAK,IAAIhqH,EAAI,EAAG89B,EAAM+0B,EAAIh2D,OAAQmD,EAAI89B,EAAK99B,IACzCQ,EAAQuC,QAAQ8vD,EAAI7yD,IAAIM,KAAKyC,EAAStC,OAM5CD,EAAQiqH,aAEmB,mBAAjBW,cACN,SAAS3qG,GAEP2qG,aAAa3qG,KAEjB,SAASA,GACPypG,EAAezpG,EAAI,IAGvBjgB,EAAQqqH,sBAAwB,SAA+B5rH,GACtC,oBAAZC,SAA2BA,SACpCA,QAAQyhC,KAAK,wCAAyC1hC,IAI1D,WC3PI0vB,E,QAAAA,YACFh5B,OAAO6K,QAAU7K,OAAO6K,SAAWA,GAGrC,QAA+B,mBAATH,MAClBA,MAAMpH,OACN,SAACmD,EAAKhE,GACJ,OAAO,IAAIoI,GAAQ,SAACzB,EAAKqiG,GACvB,IAAMiqB,EAAM,IAAIC,eAIhB,IAAK,IAAIj2F,KAHTg2F,EAAIrmH,KAAK5M,EAAQgI,QAAU,MAAOhE,GAClCivH,EAAIE,gBAAyC,WAAvBnzH,EAAQhC,YAEhBgC,EAAQlC,SAAW,GAC/Bm1H,EAAIG,iBAAiBn2F,EAAGj9B,EAAQlC,QAAQm/B,IAG1Cg2F,EAAI7vG,OAAS,SAAA1gB,GAAC,OACZiE,EAAI,CACFwB,OAAQ8qH,EAAI9qH,OACZkrH,WAAYJ,EAAII,WAChBpsH,KAAM,kBAAMmB,EAAAA,QAAgB6qH,EAAIK,kBAEpCL,EAAI9vG,QAAU6lF,EAGViqB,EAAIr1H,QAAUoC,EAAQuzH,aACxBN,EAAIr1H,OAAO41H,WAAaxzH,EAAQuzH,YAIlCvzH,EAAQyH,KAAOwrH,EAAIQ,KAAKzzH,EAAQyH,MAAQwrH,EAAIQ,Y,2DCtBrC,SAAS/xH,EAAKgyH,GAAqB,2BAARC,EAAQ,iCAARA,EAAQ,kBAChD,IAAQC,EAAQF,EAARE,IAER,OAAOA,EAAIh6E,QAAO,SAACC,EAAKg6E,EAAKjsH,GAC3B,IAAIksH,EAAQH,EAAO/rH,EAAI,GACjB8gH,EAAOkL,EAAIhsH,EAAI,GAWrB,OATI4T,MAAMhD,QAAQs7G,GAChBA,EAAQA,EAAMv0G,KAAK,IACVmpG,GAA2B,MAAnBA,EAAK9qE,OAAO,GAE7B/D,EAAMA,EAAI+D,MAAM,GAAI,GAEpBk2E,GAAQx3E,EAAAA,EAAAA,QAAOw3E,GAGVj6E,EAAMi6E,EAAQD,O,6rBCtBzB,IAAM3tF,EAAIC,IAAAA,EAEJm+B,EAAO,aAEb,QAAen+B,IAAAA,KAAAA,OAAqB,CAClCtH,WADkC,SACvBxU,GACT7sB,KAAK6sB,IAAMA,GAAO,IAClB3V,EAAAA,EAAAA,SAAQlX,KAAM,YAAa,SAAU,UAAW,WAAY,eAAgB,kBAC5E,IAAIuC,EAAIsqB,GAAO,GACf7sB,KAAKu2H,IAAM,EACXv2H,KAAKw2H,IAAM,EACXx2H,KAAKy2H,aAAel0H,EAAEk0H,cAAgB,GAEtC,IAAI5yH,EAAKtB,EAAE0N,UACXjQ,KAAK6D,GAAmB,iBAAPA,EAAkBqE,SAASnB,cAAclD,GAAMA,EAChE7D,KAAK2E,IAAM+jC,EAAE1oC,KAAK6D,IAElB7D,KAAKgY,aAAezV,EAAEyV,cAAgB,MACtChY,KAAKiY,QAAU1V,EAAE0V,SAAW,MAC5BjY,KAAKiV,UAAY1S,EAAE0S,YAAa,EAChCjV,KAAK0Y,OAASnW,EAAEmW,QAAU,EAC1B1Y,KAAK2C,IAAMJ,EAAEI,KAAO,GACpB3C,KAAK4C,KAAOL,EAAEK,MAAQ,GACtB5C,KAAK02H,YAAcn0H,EAAEm0H,aAAe12H,KAAK2C,IAAM,UAC/C3C,KAAKkY,QAAU3V,EAAE2V,SAAW4uD,EAC5B9mE,KAAKoY,UAAY7V,EAAE6V,WAAa,GAChCpY,KAAK+e,aAAexc,EAAEwc,aACtB/e,KAAK8e,MAAQvc,EAAEuc,MACf9e,KAAKwY,UAAYjW,EAAEiW,WAAa,IAChCxY,KAAKssC,UAAY/pC,EAAE8V,QAAU,GAC7BrY,KAAK22H,SAAWp0H,EAAEo0H,UAAY,EAC9B32H,KAAKk1F,mBAAqB3yF,EAAE2yF,oBAAsB,EAClDl1F,KAAK42H,aAAer0H,EAAEq0H,cAAgB,EACtC52H,KAAK0mE,IAAMnkE,EAAEuV,QAAU,GAEvB9X,KAAKyY,QAAUlW,EAAEkW,SAAW,EAC5BzY,KAAK62H,OAASt0H,EAAEghB,WAAa,EAC7BvjB,KAAK82H,QAAUv0H,EAAEihB,YAAc,EAC/BxjB,KAAKkI,SAAW3F,EAAE2F,UAAYA,SAC9BlI,KAAK+2H,UAAYruF,EAAE1oC,KAAKkI,UACxBlI,KAAKg3H,YAAc,KACnBh3H,KAAK8C,GAAKP,EAAEO,IAAM,KAClB9C,KAAKs9E,WAAa,KAClBt9E,KAAK2Y,eAAiBpW,EAAEoW,gBAAkB,EAC1C3Y,KAAKi3H,aAAe10H,EAAE+yF,iBACtBt1F,KAAK03C,MAAQn1C,EAAEm1C,MACf13C,KAAKk3H,gBAAkB,KAEnBl3H,KAAK8C,IAAM9C,KAAK8C,GAAG6M,KACrB3P,KAAK8C,GAAG6M,GAAG,sBAAuB3P,KAAKsnB,cACvCtnB,KAAKsnB,iBAIT6vG,SAlDkC,WAmDhC,OAAOl1H,EAAAA,EAAAA,QAAOjC,KAAM03C,QAAU,GAGhC8vE,eAtDkC,SAsDnBz7F,GAGb,GAFIA,IAAM/rB,KAAK6D,GAAKkoB,IAEf/rB,KAAK6D,GAAI,CACZ,IAAIA,EAAK7D,KAAK6sB,IAAI5c,UAClBjQ,KAAK6D,GAAmB,iBAAPA,EAAkBqE,SAASnB,cAAclD,GAAMA,EAChE7D,KAAK2E,IAAM+jC,EAAE1oC,KAAK6D,IAEpB,OAAO7D,KAAK6D,IAGduzH,aAjEkC,SAiErBvzH,GACX,IAAMf,EAAK9C,KAAK8C,GACVyhE,EAAQ1gE,EAAKA,EAAG6a,cAAgB5b,GAAMA,EAAGtB,IAAI,UAAUmK,UAAU+S,cACjEi2B,EAAO,CAACzsC,UAEd,OADAq8D,GAAS5vB,EAAK/mC,KAAK22D,GACZ5vB,GAMTrtB,aA5EkC,WA4EnB,MACPsF,GAAS,UAAA5sB,KAAK8C,UAAL,eAAStB,IAAI,kBAAmB,GAC/CxB,KAAK62H,OAASjqG,EAAO5M,IACrBhgB,KAAK82H,QAAUlqG,EAAO7M,MAOxB1L,eAtFkC,SAsFnBtB,GACb/S,KAAKq3H,UAAY,KACjBr3H,KAAKg3H,YAAcjkH,GAGrBukH,6BA3FkC,SA2FLpyH,GAC3B,IAAQpC,EAAO9C,KAAP8C,GACR,GAAKA,EAAL,CACA,IAAM0Z,EAAS1Z,EAAGtB,IAAI,UAChB+1H,EAAY/6G,EAAOmT,cACrB27B,EAAQ,KAEZ,GAAIisE,EAAUl2B,oBAAqB,CAEjC,IAAMC,GAASr8E,EAAAA,EAAAA,iBAAgB/f,GAC/BomD,EAAQisE,EAAUl2B,oBAAoBC,EAAOriF,QAASqiF,EAAOpiF,cACpDha,EAAEq8F,cAEXj2C,EAAQisE,EAAU/1B,eACZC,SAASv8F,EAAEq8F,YAAar8F,EAAEw8F,aAGlC,IAAMpsE,EAAM9Y,EAAOgI,YAAY4mC,eAC/B5uC,EAAOlE,aAAashB,QACpBtE,EAAIqsE,kBACJr2C,GAASh2B,EAAIssE,SAASt2C,GACtBtrD,KAAKw3H,mBAAmBx3H,KAAKk3H,iBAAiB,KAGhDM,mBAnHkC,SAmHfv0H,EAAOw2B,GACxB,GAAIx2B,EAAO,CACT,IAAMY,EAAKZ,EAAMsR,QACb1Q,EAAGs9F,iBAAmB1nE,IAAM51B,EAAGs9F,gBAAkB1nE,KAQzDg+F,iBA9HkC,SA8HjBl4F,GACf,IAAQz8B,EAAO9C,KAAP8C,GACFskB,EAAKtkB,GAAMA,EAAGtB,IAAI,UAIxB4lB,IAAOmY,EAASnY,EAAGmI,kBAAoBnI,EAAG/B,mBAQ5ClQ,cA5IkC,SA4IpBtR,EAAIyJ,GAOhB,IANA,IAAMhC,EAAKgC,GAAS,GACdoqH,EAAW7zH,EAAGwtH,UAAU,GACxBnuG,EAAOrf,EAAGsf,wBACVw0G,EAAWvqG,iBAAiBvpB,GAC9B8S,EAAQ,GAEHvM,EAAI,EAAGA,EAAIutH,EAAS1wH,OAAQmD,IAAK,CACxC,IAAMmsB,EAAOohG,EAASvtH,GACtBuM,GAAS,GAAJ,OAAO4f,EAAP,YAAeohG,EAAS18B,iBAAiB1kE,GAAzC,KAGPruB,SAAS+B,KAAKxC,YAAYiwH,GAC1BA,EAAS30H,WAAT,WAA0B/C,KAAK2C,IAA/B,SACA+0H,EAAS1hH,aAAa,QAASW,GAC/B3W,KAAKs9E,WAAao6C,EAClBA,EAAS/gH,MAAMtU,MAAf,UAA0B6gB,EAAK7gB,MAA/B,MACAq1H,EAAS/gH,MAAMvU,OAAf,UAA2B8gB,EAAK9gB,OAAhC,MACAkJ,GAAMtL,KAAK43H,eAAetsH,GAGtBtL,KAAK8C,IACP4lC,EAAE1oC,KAAK8C,GAAGtB,IAAI,UAAUmK,UAAU+S,eAC/BjJ,IAAI,YAAazV,KAAK43H,gBACtBjoH,GAAG,YAAa3P,KAAK43H,gBAE1BlvF,EAAExgC,UAAUuN,IAAI,YAAazV,KAAK43H,gBAAgBjoH,GAAG,YAAa3P,KAAK43H,iBAOzEA,eA7KkC,SA6KnB1yH,GACb,IAAMuZ,EAAMvZ,EAAExB,OAAOgb,cAErB,GAAK1e,KAAKs9E,YAAe7+D,EAAzB,CAIA,IAAIo5G,EAAO3yH,EAAE4+E,MACTg0C,EAAO5yH,EAAE2+E,MACT1wD,EAAS,EACTC,EAAU,EAERhY,GADSqD,EAAIE,aAAeF,EAAI6U,cACjB1U,aACfm5G,EAAkB/3H,KAAKs9E,WAAW3mE,MAOxC,GAAIyE,EAAO,CACT,IAAM8Q,EAAY9Q,EAAM+H,wBACxBgQ,EAASjH,EAAUlM,IAAM9X,SAAS05E,gBAAgBj7E,UAClDysB,EAAUlH,EAAUnM,KAAO7X,SAAS05E,gBAAgBx+D,WACpDy0G,EAAO3yH,EAAEga,QACT44G,EAAO5yH,EAAE+Z,QAGX84G,EAAgB/3G,IAAM63G,EAAO1kG,EAAS,KACtC4kG,EAAgBh4G,KAAO+3G,EAAO1kG,EAAU,OAS1CY,QAnNkC,SAmN1BnwB,EAAIw6B,EAAU25F,GACpB,OAAOhkG,EAAAA,QAAAA,KAAanwB,EAAIw6B,IAS1B05B,QA7NkC,SA6N1Bl0D,EAAIw6B,GACV,GAAKx6B,EAAL,CAEA,IADA,IAAIkoB,EAAOloB,EAAGye,WACPyJ,GAA0B,IAAlBA,EAAK29B,UAAgB,CAClC,GAAI1pD,KAAKg0B,QAAQjI,EAAMsS,GAAW,OAAOtS,EACzCA,EAAOA,EAAKzJ,WAEd,OAAO,OAQTsK,OA5OkC,SA4O3B/oB,GACL,IAAIqf,EAAOrf,EAAGsf,wBACd,MAAO,CACLnD,IAAKkD,EAAKlD,IAAM9X,SAAS+B,KAAKtD,UAC9BoZ,KAAMmD,EAAKnD,KAAO7X,SAAS+B,KAAKmZ,aAQpC60G,kBAxPkC,WAyPhC,IAAIt1H,EAAM3C,KAAK2C,IACXkB,EAAKqE,SAAS0lB,cAAc,OAC5BsqG,EAAMhwH,SAAS0lB,cAAc,OAMjC,OALA/pB,EAAGd,UAAYJ,EAAM,cACrBkB,EAAG8S,MAAMC,QAAU,OACnB/S,EAAG8S,MAAM,kBAAoB,OAC7BuhH,EAAIn1H,UAAYJ,EAAM,kBACtBkB,EAAG4D,YAAYywH,GACRr0H,GAOTuR,UAxQkC,SAwQxB7T,GAAgB,YAIpByzD,EAJSpsD,EAAW,uDAAJ,GACZ9F,EAAmC9C,KAAnC8C,GAAImV,EAA+BjY,KAA/BiY,QAASD,EAAsBhY,KAAtBgY,aAAc0uD,EAAQ1mE,KAAR0mE,IAC7Bz2D,EAAYjQ,KAAKwnH,eAAe5+G,EAAKqH,WACrC0kC,EAAO30C,KAAKo3H,aAAa71H,GAE/BvB,KAAKq3H,UAAY,KACjBr3H,KAAK0D,OAAS,KACd1D,KAAKm4H,WAAa,KAClBn4H,KAAK0V,MAAQ,EAGTnU,IAAQvB,KAAKg0B,QAAQzyB,EAAb,UAAqB0W,EAArB,aAAiCD,MAC3CzW,EAAMvB,KAAK+3D,QAAQx2D,EAAK0W,IAG1BjY,KAAKo4H,SAAW72H,EAGXmlE,IACH1mE,KAAK0mE,IAAM1mE,KAAKi4H,oBAChBhoH,EAAUxI,YAAYzH,KAAK0mE,MAGzBnlE,KACFyzD,EAAWh1D,KAAKo1F,eAAe7zF,KACnByzD,EAASrxD,KAAOqxD,EAASrxD,IAAI,SAAU,WACnD3D,KAAKg1D,SAAWA,IAGlBrlD,EAAAA,EAAAA,IAAGM,EAAW,qBAAsBjQ,KAAKqY,SACzC1I,EAAAA,EAAAA,IAAGglC,EAAM,2BAA4B30C,KAAK2V,UAC1ChG,EAAAA,EAAAA,IAAGglC,EAAM,UAAW30C,KAAKksC,UACzBlsC,KAAKkY,QAAQ,CACXhE,OAAQlU,KACR0D,OAAQsxD,EACRvgD,OAAQugD,IAAQ,WAAI,EAAAA,GAASvgD,cAAb,aAAI,WACpBgb,MAAOulC,IAAQ,WAAI,EAAAA,GAASvlC,aAAb,aAAI,aAIrB3sB,MAAAA,GAAAA,EAAIu1H,iBACJr4H,KAAKy3H,iBAAiB,GACtB30H,MAAAA,GAAAA,EAAI4B,QAAQ,oBAAqBnD,EAAKyzD,IAOxCsjE,eAzTkC,SAyTnBz0H,GACb,IAAIkoB,EAAOloB,GAAM7D,KAAK0D,OACtB,OAAOglC,EAAE3c,GAAMjiB,KAAK,UAOtBsrF,eAlUkC,SAkUnBtgC,GAA4C,oEAAJ,GAA9BpxD,EAAkC,EAAlCA,OAAkC,IAA1Bw4D,cAAAA,OAA0B,MAAV,EAAU,EACjDp5D,EAAiB9C,KAAjB8C,GAAIs1H,EAAap4H,KAAbo4H,SACN72H,EAAMuzD,GAAUsjE,EAChBf,EAA2Br3H,KAA3Bq3H,UAAWL,EAAgBh3H,KAAhBg3H,YACX5zD,EAAa,SAAA7hE,GAAG,OAAIA,GAAOmC,GAAUnC,EAAIsrB,KAAOtrB,EAAIsrB,IAAIqvC,eAAiB,EAAKq8D,iBAAiBh3H,EAAKmC,IAE1G,GAAIszH,GAAel0H,EAAI,CAKrB,GAJIsgE,EAAWi0D,KACbA,EAAY,OAGTA,EAAW,CACd,IAAM/+F,EAAQx1B,EAAGtB,IAAI,iBAAiB8xD,gBAChC1qD,EAAO,CACXszD,cAAAA,EACApmC,WAAY,EACZ+rB,iBAAkB,GAEd22E,EAAYlgG,EAAMzxB,IAAImwH,EAAV,OAA4BpuH,GAA5B,IAAkCgtB,UAAW,KAK/D,GAHAyhG,GADAA,EAAY/+F,EAAMp1B,OAAOs1H,EAAW5vH,cACHoV,MAAQq5G,EAAU,GAAKA,EACxDr3H,KAAKq3H,UAAYA,EAEbj0D,EAAWi0D,GACb,OAAOr3H,KAAKo1F,eAAe7zF,EAAK,CAAEmC,OAAAA,EAAQw4D,cAAe,IAI7D,OAAOm7D,EAGT,OAAO91H,GAAOmnC,EAAEnnC,GAAKuI,KAAK,UAO5B2uH,kBAxWkC,SAwWhBx1H,EAAO6xD,GACvB,KAAI7xD,aAAiB0lC,IAAAA,YAMjBmsB,GAAUA,IAAW7xD,GAAzB,CAEA,IAAQy1H,EAAgB14H,KAAhB04H,YAIJA,GAAeA,IAAgB14H,KAAKg1D,UACtC0jE,EAAY/0H,IAAI,SAAU,IAGxBV,GAASA,EAAMU,MACjBV,EAAMU,IAAI,SAAU,mBACpB3D,KAAK04H,YAAcz1H,KAQvBoV,OAnYkC,SAmY3BnT,GACL,IAAMoG,EAAKpG,EACHpC,EAAqC9C,KAArC8C,GAAIwpC,EAAiCtsC,KAAjCssC,UAAWo6B,EAAsB1mE,KAAtB0mE,IAAK3nD,EAAiB/e,KAAjB+e,aAC5B/e,KAAK0V,MAAQ,EAGb,IAAIijH,EAAMjyD,EAAI/vD,MAAMC,QACf+hH,GAAe,SAARA,IAAgBjyD,EAAI/vD,MAAMC,QAAU,SAGhD,IAAIgiH,EAAK54H,KAAK4sB,OAAO5sB,KAAK6D,IAC1B7D,KAAKu2H,IAAMv2H,KAAKyY,QAAU2S,KAAK+lD,IAAIynD,EAAG54G,KAAO44G,EAAG54G,IAChDhgB,KAAKw2H,IAAMx2H,KAAKyY,QAAU2S,KAAK+lD,IAAIynD,EAAG74G,MAAQ64G,EAAG74G,KACjD,IAAI84G,EAAK3zH,EAAE4+E,MAAQ9jF,KAAKu2H,IAAMv2H,KAAK6D,GAAG8C,UAClCmyH,EAAK5zH,EAAE2+E,MAAQ7jF,KAAKw2H,IAAMx2H,KAAK6D,GAAGuf,WAEtC,GAAIpjB,KAAK2Y,gBAAkB7V,EAAI,CAC7B,IAAMi2H,EAAWj2H,EAAGtB,IAAI,UAAUmyB,uBAAuBzuB,EAAG,CAAEqnB,SAAU,IACxEusG,EAAKC,EAASn8G,EACdi8G,EAAKE,EAASl8G,EAGhB7c,KAAK84H,GAAKA,EACV94H,KAAK64H,GAAKA,EACV74H,KAAKg5H,UAAY9zH,EAGjB,IAAM+zH,EAAcj5H,KAAKo1F,iBACnB9pD,EAAWvsB,EAAeA,EAAa,CAAE7K,OAAQlU,KAAMsN,MAAOpI,IAAOA,EAAExB,OACvE40C,EAAOt4C,KAAKk5H,eAAe5tF,EAAUwtF,EAAID,GACzCn1H,EAAS1D,KAAK0D,OACdg1H,EAAch1H,GAAU1D,KAAKs4H,eAAe50H,GAGlD,GAFA1D,KAAKy4H,kBAAkBC,EAAaO,GAC/BP,IAAahyD,EAAI/vD,MAAMC,QAAU,QACjClT,EAAL,CACA1D,KAAKm5H,SAAW7gF,EAChB,IAAMnnB,EAAMnxB,KAAKo5H,aAAa9gF,EAAMwgF,EAAID,GAEpC74H,KAAKu4H,iBAAiBU,EAAaP,IACrC14H,KAAKk3H,gBAAkBwB,EACvBhyD,EAAI/vD,MAAMC,QAAU,OACpB5W,KAAKklC,QAAU/T,EACfnxB,KAAKs3H,6BAA6BhsH,KAElCtL,KAAKq5H,kBACLr5H,KAAKk3H,gBAAkB,KAGlBl3H,KAAKklC,SAAWllC,KAAKklC,QAAQzV,OAAS0B,EAAI1B,OAASzvB,KAAKklC,QAAQ16B,QAAU2mB,EAAI3mB,SACjFxK,KAAKs5H,gBAAgBt5H,KAAK0mE,IAAKpuB,EAAMnnB,EAAKnxB,KAAKu5H,eAC1Cv5H,KAAKw5H,OAAMx5H,KAAKw5H,KAAO9wF,EAAE1oC,KAAK0mE,MAI9B1mE,KAAK2Y,iBACJ3Y,KAAK62H,QAAQ72H,KAAKw5H,KAAKziH,IAAI,MAAO,KAAO/W,KAAK62H,OAAS,MACvD72H,KAAK82H,SAAS92H,KAAKw5H,KAAKziH,IAAI,OAAQ,KAAO/W,KAAK82H,QAAU,OAGhE92H,KAAKklC,QAAU/T,KAInBtsB,EAAAA,EAAAA,YAAWynC,IACTA,EAAU,CACRh/B,MAAOpI,EACPxB,OAAQu1H,EACRxkH,OAAQikH,EACRjpG,MAAO0B,EAAI1B,OAAuB,SAAd0B,EAAI3mB,OAAoB,EAAI,KAGpD1H,GACEA,EAAG4B,QAAQ,cAAe,CACxBhB,OAAAA,EACAg1H,YAAAA,EACAO,YAAAA,EACA3gF,KAAAA,EACAnnB,IAAAA,EACAvU,EAAGk8G,EACHj8G,EAAGg8G,MAITN,iBAtdkC,SAsdjBh3H,EAAK2wC,GACpB,OAAO3wC,GAAOA,EAAIC,KAAOD,EAAIC,IAAI,aAAe0wC,GAAOA,EAAI2Z,GAAG,SAGhEwtE,gBA1dkC,WA2dhC,IAAQnC,EAAoBl3H,KAApBk3H,gBACRA,GAAmBA,EAAgBtkF,UAAUqX,iBAC7CjqD,KAAKw3H,mBAAmBN,GAAiB,IAW3CuC,SAxekC,SAwezB51H,EAAI4Q,GACX,IAAK5Q,EAAI,OAAO,EAEhB4Q,EAASA,GAAUvM,SAAS+B,KAC5B,IAEI8hB,EAAOloB,EAEX,OADIkoB,EAAK1I,eACWrjB,KAAK05H,YAAY3tG,EAAMtX,IAW7CilH,YA3fkC,SA2ftB71H,EAAI4Q,GACd,KAAI0Y,EAAAA,EAAAA,YAAWtpB,GAAf,CACA,IAAM8S,EAAQ9S,EAAG8S,OAAS,GACpBhS,EAAM+jC,EAAE7kC,GACR81H,EAAUllH,GAAUi0B,EAAEj0B,GAE5B,IAAIkC,EAAMijH,UAA+B,YAAnBjjH,EAAMijH,SAA5B,CACA,IAAMC,EAAYl1H,EAAIoS,IAAI,SAC1B,KAAI8iH,GAA2B,SAAdA,GACbF,GAAqC,QAA1BA,EAAQ5iH,IAAI,YAA0D,WAAlC4iH,EAAQ5iH,IAAI,mBAA/D,CACA,OAAQJ,EAAMsJ,UACZ,IAAK,SACL,IAAK,WACL,IAAK,GACH,MACF,QACE,OAEJ,OAAQpc,EAAG+iB,SACT,IAAK,KACL,IAAK,QACL,IAAK,QACL,IAAK,QACH,OAAO,EAEX,OAAQjiB,EAAIoS,IAAI,YACd,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,OACH,OAAO,OAUbzC,YAniBkC,SAmiBtB49B,EAAK3wC,GACf,IAAMu4H,EAAW95H,KAAKs4H,eAAepmF,GAC/B8iB,EAAWh1D,KAAKo1F,eAAe7zF,EAAK,CAAEmC,OAAQo2H,IAGhD73H,EAAS,CACXuS,OAAO,EACPjT,IAJFA,EAAMyzD,GAAYA,EAAS7xD,MAAQ6xD,EAAS7xD,KAAKU,GAK/CmxD,SAAAA,EACA9iB,IALFA,EAAM4nF,GAAYA,EAAS32H,MAAQ22H,EAAS32H,KAAKU,GAM/Ci2H,SAAAA,GAGF,IAAKv4H,IAAQ2wC,EAEX,OADAjwC,EAAOuS,OAAQ,EACRvS,EAIT,IAAIgT,EAAY+/C,EAASxzD,IAAI,aAC7B,IAAIqD,EAAAA,EAAAA,YAAWoQ,GAAY,CACzB,IAAM9L,EAAM8L,EAAU+/C,EAAU8kE,GAChC73H,EAAO83H,SAAW5wH,EAClBlH,EAAOgT,UAAY9L,EACnB8L,EAAY9L,OAEZ8L,EAAYA,aAAqB+I,MAAQ/I,EAAU8M,KAAK,MAAQ9M,EAChEhT,EAAO83H,SAAW9kH,EAClBA,GAAYiE,EAAAA,EAAAA,UAASjE,GAAajV,KAAKg0B,QAAQke,EAAKj9B,GAAaA,EACjEhT,EAAOgT,UAAYA,EAIrB,IAAIqG,EAAYw+G,EAASt4H,IAAI,aAC7B,IAAIqD,EAAAA,EAAAA,YAAWyW,GAAY,CACzB,IAAMnS,EAAMmS,EAAU05C,EAAU8kE,GAChC73H,EAAOqZ,UAAYnS,EACnBlH,EAAO+3H,SAAW7wH,EAClBmS,EAAYnS,OAGZmS,GADAA,EAAYA,aAAqBqtB,IAAAA,WAAsB,EAAIrtB,aAC1B0C,MAAQ1C,EAAUyG,KAAK,MAAQzG,EAChErZ,EAAO+3H,SAAW1+G,EAClBA,GAAYpC,EAAAA,EAAAA,UAASoC,GAAatb,KAAKg0B,QAAQzyB,EAAK+Z,GAAaA,EACjEA,EAAYrG,GAAajV,KAAKu4H,iBAAiBvjE,EAAU8kE,GAAY,EAAIx+G,EACzErZ,EAAOqZ,UAAYA,EAOrB,OAJKA,GAAcrG,IACjBhT,EAAOuS,OAAQ,GAGVvS,GAUTi3H,eAjmBkC,SAimBnBx1H,EAAQo1H,EAAID,GACzB,IAAM/1H,EAAK9C,KAAK8C,GACZw1C,EAAO,GAEX,IAAK50C,EACH,OAAO40C,EAaT,GATKt4C,KAAKg0B,QAAQtwB,EAAb,UAAwB1D,KAAKiY,QAA7B,aAAyCjY,KAAKgY,iBACjDtU,EAAS1D,KAAK+3D,QAAQr0D,EAAQ1D,KAAKiY,UAIjCjY,KAAKiV,qBAAqB+I,QAC5Bta,EAAS1D,KAAK+3D,QAAQr0D,EAAQ1D,KAAKiV,UAAU8M,KAAK,QAG/Cre,EACH,OAAO40C,EAST,GALIt4C,KAAKm4H,YAAcn4H,KAAKm4H,YAAcz0H,IACxC1D,KAAKm4H,WAAa,OAIfn4H,KAAKm4H,WAAY,CACpBn4H,KAAKi6H,QAAUj6H,KAAK+3D,QAAQr0D,EAAQ1D,KAAKgY,cAGzC,IAAIkiH,EAAcl6H,KAAKsU,YAAY5Q,GAGnC,GAFAZ,GAAMA,EAAG4B,QAAQ,yBAA0Bw1H,IAEtCA,EAAY1lH,OAASxU,KAAKi6H,QAC7B,OAAOj6H,KAAKk5H,eAAel5H,KAAKi6H,QAASnB,EAAID,GAG/C74H,KAAKm4H,WAAaz0H,EAClB1D,KAAKu5H,cAAgBv5H,KAAKm6H,OAAOz2H,GACjC1D,KAAKo6H,WAAap6H,KAAKq6H,eAAer6H,KAAKi6H,SAC3Cj6H,KAAKs6H,UAAYt6H,KAAKq6H,eAAe32H,GAWvC,GAPI1D,KAAKm4H,YAAcz0H,IAAQ40C,EAAOt4C,KAAKs6H,WAG3Ct6H,KAAK0D,OAAS1D,KAAKm4H,WAIfn4H,KAAKu6H,YAAYv6H,KAAKu5H,cAAeT,EAAID,KAAS74H,KAAK0Y,SAAW1Y,KAAKs6H,UAAUrzH,OAAS,CAC5F,IAAMuzH,EAAex6H,KAAKi6H,QAEtBO,GAAgBx6H,KAAKsU,YAAYkmH,GAAchmH,QACjD8jC,EAAOt4C,KAAKo6H,WACZp6H,KAAK0D,OAAS82H,GAKlB,OADAx6H,KAAKklC,QAAU,KACRoT,GASTmiF,gBAzqBkC,SAyqBlB52H,GACd,IACI22H,EADA92H,EAASG,EAET62H,EAAa16H,KAAK06H,WAChB53H,EAAK9C,KAAK8C,GACVkV,EAAehY,KAAKgY,aACpBC,EAAUjY,KAAKiY,QAmBrB,GAhBKjY,KAAKg0B,QAAQtwB,EAAb,UAAwBuU,EAAxB,aAAoCD,MACvCtU,EAAS1D,KAAK+3D,QAAQr0D,EAAQuU,IAK5BjY,KAAKiV,qBAAqB+I,QAC5Bta,EAAS1D,KAAK+3D,QAAQr0D,EAAQ1D,KAAKiV,UAAU8M,KAAK,OAIhD24G,GAAcA,GAAch3H,IAC9B1D,KAAK06H,WAAa,KAIf16H,KAAK06H,WAAY,CACpBF,EAAex6H,KAAK+3D,QAAQr0D,EAAQsU,GAIpC,IAAMkiH,EAAcl6H,KAAKsU,YAAY5Q,GAGrC,GAFAZ,GAAMA,EAAG4B,QAAQ,yBAA0Bw1H,IAEtCA,EAAY1lH,OAASgmH,EACxB,OAAOx6H,KAAKy6H,gBAAgBD,GAG9Bx6H,KAAK06H,WAAah3H,EAapB,OARI1D,KAAK26H,cAAcj3H,KACrB82H,EAAex6H,KAAK+3D,QAAQr0D,EAAQsU,KAEhBhY,KAAKsU,YAAYkmH,GAAchmH,QACjD9Q,EAAS82H,GAIN92H,GAOTi3H,cAluBkC,SAkuBpB92H,GACZ,IACMqf,EAAOrf,EAAGsf,wBACVlZ,EAAOpG,EAAG6a,cAAczU,KAC9B,EAAiBjK,KAAK46H,gBAAdh+G,EAAR,EAAQA,EAAGC,EAAX,EAAWA,EACLmD,EAAMkD,EAAKlD,IAAM/V,EAAKtD,UACtBoZ,EAAOmD,EAAKnD,KAAO9V,EAAKmZ,WACxB/gB,EAAQ6gB,EAAK7gB,MACbD,EAAS8gB,EAAK9gB,OAEpB,GACEya,EAAImD,EAVM,IAWVnD,EAAImD,EAAM5d,EAXA,IAYVwa,EAAImD,EAZM,IAaVnD,EAAImD,EAAO1d,EAbD,GAeV,OAAO,GAIXu4H,cAtvBkC,WAuvBhC,IAAMtvH,EAAKtL,KAAKg5H,UAGhB,MAAO,CAAEp8G,EAFCtR,EAAGu4E,OAAS,EAEVhnE,EADFvR,EAAGw4E,OAAS,IASxBq2C,OAlwBkC,SAkwB3Bt2H,GACL,IAGImc,EAAKD,EAAM3d,EAAQC,EAHfS,EAAuB9C,KAAvB8C,GAAI6V,EAAmB3Y,KAAnB2Y,eACNhB,EAAS7U,GAAMA,EAAGtB,IAAI,UACtBq5H,EAAUljH,EAASA,EAAOiZ,kBAAkB/sB,GAAM,GAGxD,GAAI8U,GAAkB7V,EAAI,CACxB,IAAMquB,EAAMxZ,EAAOgZ,cAAc9sB,EAAI,CAAE0oB,SAAU,IACjDvM,EAAMmR,EAAInR,IACVD,EAAOoR,EAAIpR,KACX3d,EAAS+uB,EAAI/uB,OACbC,EAAQ8uB,EAAI9uB,UACP,CACL,IAAIE,EAAIvC,KAAK4sB,OAAO/oB,GACpBmc,EAAMhgB,KAAK22H,SAAW9yH,EAAG0f,UAAYhhB,EAAEyd,KAAOhgB,KAAKyY,SAAW,EAAI,GAAKzY,KAAKu2H,IAC5Ex2G,EAAO/f,KAAK22H,SAAW9yH,EAAG2f,WAAajhB,EAAEwd,MAAQ/f,KAAKyY,SAAW,EAAI,GAAKzY,KAAKw2H,IAC/Ep0H,EAASyB,EAAGwf,aACZhhB,EAAQwB,EAAGyf,YAGb,MAAO,CAAEtD,IAAAA,EAAKD,KAAAA,EAAM3d,OAAAA,EAAQC,MAAAA,EAAOw4H,QAAAA,IAQrCR,eA9xBkC,SA8xBnBnoF,GAAK,WACZoG,EAAO,GACb,IAAKpG,EAAK,OAAOoG,EAGjB,IAAMwhF,EAAW95H,KAAKs4H,eAAepmF,GACrC,GAAI4nF,GAAYA,EAAS32H,OAASnD,KAAKk1F,mBAAoB,CACzD,IAAM/xF,EAAO22H,EAASgB,eAAiBhB,EAASgB,iBAAmBhB,EAAS32H,KAC5E+uC,EAAM/uC,EAAK2nD,uBAwBb,OArBA1iD,EAAAA,EAAAA,MAAK8pC,EAAInN,UAAU,SAAClhC,EAAIuG,GACtB,IAAMnH,GAAQwf,EAAAA,EAAAA,UAAS5e,EAAI6kC,GACrBqyF,EAAU93H,GAASA,EAAMwsB,MAAQxsB,EAAMwsB,QAAUrlB,EAEvD,IAAK+iB,EAAAA,EAAAA,YAAWtpB,IAAQ,EAAKmwB,QAAQnwB,EAAI,EAAKoU,SAA9C,CAIA,IAAM5T,EAAM,EAAK81H,OAAOt2H,GACpBm3H,EAAM,EAAKxiH,UAECwiH,EAAL,KAAPA,GACY,KAAPA,GACE,EAAKvB,SAAS51H,EAAIquC,GAE7B7tC,EAAI22H,IAAMA,EACV32H,EAAIR,GAAKA,EACTQ,EAAI42H,QAAUF,EACdziF,EAAK1qC,KAAKvJ,OAGLi0C,GAUTiiF,YAx0BkC,SAw0BtBl2H,EAAKy0H,EAAID,GACnB,IAAI52H,EAAS,EACTwT,EAAMzV,KAAKy2H,aACX75G,EAAIk8G,GAAM,EACVj8G,EAAIg8G,GAAM,EACV7yH,EAAI3B,EAAI2b,IACRqhC,EAAIh9C,EAAI0b,KACR41B,EAAItxC,EAAIjC,OACRszC,EAAIrxC,EAAIhC,MAGZ,OAFI2D,EAAIyP,EAAMoH,GAAKA,EAAI7W,EAAI2vC,EAAIlgC,GAAO4rC,EAAI5rC,EAAMmH,GAAKA,EAAIykC,EAAI3L,EAAIjgC,KAAKxT,EAAS,KAEtEA,GAUXm3H,aA71BkC,SA61BrB9gF,EAAMw/E,EAAMD,GAWvB,IAVA,IAAI51H,EAAS,CAAEwtB,MAAO,EAAGwrG,QAAS,EAAGzwH,OAAQ,UACzC0wH,EAAY,EACdC,EAAS,EAETC,EAAS,EACTC,EAAU,EACVC,EAAU,EACVC,EAAU,EACVl3H,EAAM,EAEC+F,EAAI,EAAG89B,EAAMoQ,EAAKrxC,OAAQmD,EAAI89B,EAAK99B,IAAK,CAE/C,MADA/F,EAAMi0C,EAAKluC,GACH4V,EAAR,EAAQA,IAAKD,EAAb,EAAaA,KAAM3d,EAAnB,EAAmBA,OAAQC,EAA3B,EAA2BA,MAU3B,GANAk5H,EAAUv7G,EAAM5d,EAEhBi5H,EAAUt7G,EAAO1d,EAAQ,EAEzBi5H,EAAUt7G,EAAM5d,EAAS,IAGtB+4H,GAAUp7G,EAAOo7G,GACjBC,GAAUE,GAAWF,GACrBF,GAXQn7G,EAAO1d,EAWS64H,GAM3B,GAHAj5H,EAAOwtB,MAAQrlB,EACfnI,EAAOg5H,QAAU52H,EAAI42H,QAEhB52H,EAAI22H,IAUF,CAEL,GAAInD,EAAOyD,EAAS,CAClBr5H,EAAOuI,OAAS,SAChB,MACKvI,EAAOuI,OAAS,aAdnBqtH,EAAO0D,IAASH,EAASG,GAEzBzD,EAAOuD,GACTF,EAASE,EACTp5H,EAAOuI,OAAS,WAEhB0wH,EAAYG,EACZp5H,EAAOuI,OAAS,SAUtB,OAAOvI,GAUTq3H,gBAz5BkC,SAy5BlB5yD,EAAKpuB,EAAMnnB,EAAKqqG,GAC9B,IACEx1H,EAAI,EACJq7C,EAAI,EACJ3L,EAAI,EACJC,EAAI,EACJrQ,EAAK,KAEL96B,EAAS2mB,EAAI3mB,OACTixH,EAAQnjF,EAAKnnB,EAAI1B,OAMvB,GAHAi3C,EAAI9jC,UAAU1/B,OAAO,YACrBwjE,EAAI9jC,UAAU/7B,IAAI,cAEd40H,EAAO,CAET,IAAQz7G,EAA6By7G,EAA7Bz7G,IAAKD,EAAwB07G,EAAxB17G,KAAM3d,EAAkBq5H,EAAlBr5H,OAAQC,EAAUo5H,EAAVp5H,MACtBo5H,EAAMT,KASTtlF,EAAIrzC,EAAQijC,EACZqQ,EAAI,OACJ3vC,EAAc,UAAVwE,EAAqBwV,EA5BlB,EA4B+BA,EAAM5d,EA5BrC,EA6BPi/C,EAAIthC,IAXJ21B,EAAI,OACJC,EAAIvzC,EAASs5H,EAAWp2F,EACxBt/B,EAAIga,EApBG,EAqBPqhC,EAAc,UAAV72C,EAAqBuV,EArBlB,EAqBgCA,EAAO1d,EArBvC,EAuBPqkE,EAAI9jC,UAAU1/B,OAAO,cACrBwjE,EAAI9jC,UAAU/7B,IAAI,iBAOf,CAEL,IAAK7G,KAAK0Y,OAER,YADAguD,EAAI/vD,MAAMC,QAAU,QAGtB,GAAI4kH,EAAQ,CACV,IAAM5uG,EAAS4uG,EAAOX,SAAW,GAC3Bc,EAAK/uG,EAAOuuB,YAjCZ,EAkCAygF,EAAKhvG,EAAO4uB,aAlCZ,EAmCNx1C,EAAIw1H,EAAOx7G,IAAM27G,EACjBt6E,EAAIm6E,EAAOz7G,KAAO67G,EAClBlmF,EAAIkY,SAAS4tE,EAAOn5H,OAAc,EAALu5H,EAASt2F,EACtCqQ,EAAI,QAGR+wB,EAAI/vD,MAAMqJ,IAAMha,EAAIs/B,EACpBohC,EAAI/vD,MAAMoJ,KAAOshC,EAAI/b,EACjBoQ,IAAGgxB,EAAI/vD,MAAMtU,MAAQqzC,GACrBC,IAAG+wB,EAAI/vD,MAAMvU,OAASuzC,IAO5B09E,QAn9BkC,SAm9B1BpwH,GACN,OAAOA,EAAQ,CAACA,GAAOw7B,OAAOz+B,KAAKqzH,QAAQpwH,EAAMwR,WAAa,IAQhEqN,KA59BkC,SA49B7B+5G,EAAMC,GAET,IACMC,EADYF,EAAKxI,QAAQr9F,QAAO,SAAAY,GAAC,OAAIklG,EAAKzI,QAAQjzF,SAASxJ,MACtC,GAC3B,IAAKmlG,EAEH,OAAOD,EAAK74H,MAAMwsB,QAAUosG,EAAK54H,MAAMwsB,QAIzC,IAAMusG,EAAKH,EAAKxI,QAAQwI,EAAKxI,QAAQ1+G,QAAQonH,GAAY,GAGzD,OAFWD,EAAKzI,QAAQyI,EAAKzI,QAAQ1+G,QAAQonH,GAAY,GAE/CtsG,QAAUusG,EAAGvsG,SASzB9Z,QAl/BkC,SAk/B1BzQ,GAAG,IAQL8vD,EARK,OACHzzD,EAAMvB,KAAKo4H,SACX1iH,EAAQ,GACRi/B,EAAO30C,KAAKo3H,eACZnnH,EAAYjQ,KAAKwnH,iBACjBpvG,EAAYpY,KAAKoY,UACjB0G,EAAQ9e,KAAK8e,MACXpb,EAAoB1D,KAApB0D,OAAQwhC,EAAYllC,KAAZklC,QAehB,IAbAzvB,EAAAA,EAAAA,KAAIxF,EAAW,qBAAsBjQ,KAAKqY,SAC1C5C,EAAAA,EAAAA,KAAIk/B,EAAM,2BAA4B30C,KAAK2V,UAC3CF,EAAAA,EAAAA,KAAIk/B,EAAM,UAAW30C,KAAKksC,UAC1BlsC,KAAK0mE,IAAI/vD,MAAMC,QAAU,OAErBrV,IACFyzD,EAAWh1D,KAAKo1F,iBACZp1F,KAAKi3H,aAAejiE,GAAYA,EAASrxD,MAC3CqxD,EAASrxD,IAAI,SAAU,IACvBqxD,EAASrxD,IAAI,SAAU,cAIvB3D,KAAK0V,OAAShS,EAAQ,CACxB,IAAM2oC,EAASrsC,KAAKqsC,OACd4vF,GAAYjhH,EAAAA,EAAAA,SAAQqxB,GAAUA,EAASA,EAAS,CAACA,GAAU,CAAC9qC,GAC9D26H,EAAoB,EACC,IAArBD,EAAUh1H,OAIZjH,KAAK+mE,KAAKrjE,EAAQu4H,EAAU,GAAI/2F,GAEhC+2F,EAEGvhH,KAAI,SAAAzX,GAAK,MAAK,CACbA,MAAAA,EACAowH,QAAS,EAAKA,QAAQpwH,OAGvB6e,KAAK9hB,KAAK8hB,MAEVrV,SAAQ,YAAe,IAAZxJ,EAAY,EAAZA,MAEJwsB,EAAQxsB,EAAMwsB,QACdhb,EAASxR,EAAMwR,SAASF,QAE9BmB,EAAM9H,KACJ,EAAKm5D,KAAKrjE,EAAQT,EAAlB,OACKiiC,GADL,IAEE+1F,QAAS/1F,EAAQ+1F,QAAUiB,EAC3BzsG,MAAOyV,EAAQzV,MAAQysG,MAMvBznH,IAAW/Q,GAAU+rB,GAASyV,EAAQzV,OAExCysG,OAMNl8H,KAAK0mE,MAAK1mE,KAAK0mE,IAAI/vD,MAAMC,QAAU,QACvC,IAAI0mE,EAAat9E,KAAKs9E,WAetB,GAbIA,IACFA,EAAWh7D,WAAWC,YAAY+6D,GAClCt9E,KAAKs9E,WAAa,MAGpBt9E,KAAKq5H,kBACLr5H,KAAKy4H,oBACLz4H,KAAKy3H,mBAELz3H,KAAKqsC,OAAS,KACdrsC,KAAKg5H,UAAY,EACjBh5H,KAAKq3H,UAAY,MAEbxyH,EAAAA,EAAAA,YAAWuT,GAAY,CACzB,IAAMtO,EAAO,CACXpG,OAAQsxD,EACRvgD,OAAQugD,GAAYA,EAASvgD,SAC7Bgb,MAAOulC,GAAYA,EAASvlC,SAE9B/Z,EAAMzO,OAASyO,EAAMjJ,SAAQ,SAAA0F,GAAC,OAAIiG,EAAUjG,EAAG,EAAMrI,MAASsO,EAAU,KAAMpY,KAAP,OAAkB8J,GAAlB,IAAwB+V,UAAW,MAG5Ghb,EAAAA,EAAAA,YAAWia,IAAUA,EAAM,CAAE5K,OAAQlU,QASvC+mE,KAplCkC,SAolC7Bo1D,EAAK56H,EAAK4vB,GACb,IAQIirG,EAAajnC,EARTryF,EAAoB9C,KAApB8C,GAAIk0H,EAAgBh3H,KAAhBg3H,YACNqF,GAAQrwG,EAAAA,EAAAA,YAAWzqB,GACnB+6H,EAAQ,GACR7sG,EAAuB,UAAf0B,EAAI3mB,OAAqB2mB,EAAI8pG,QAAU,EAAI9pG,EAAI8pG,QACvDf,EAAcl6H,KAAKsU,YAAY6nH,EAAKE,GACpCE,EAAmB7zF,EAAEyzF,GAAKryH,KAAK,cAC7BgwH,EAAkCI,EAAlCJ,SAAU9kE,EAAwBklE,EAAxBllE,SAAU//C,EAAcilH,EAAdjlH,UACtBqG,EAAYw+G,aAAoBnxF,IAAAA,WAAsB,EAAIuxF,EAAY5+G,UAG5E,GAAIihH,GAAoBjhH,GAAarG,EAAW,CAC9C,IAAMrM,EAAO,CAAE9B,GAAI2oB,EAAOiQ,OAAQ,kBAC5B0jC,EAAapjE,KAAKu4H,iBAAiBvjE,EAAU8kE,GAEnD,GAAK9C,EAaHoF,GAAcv3H,EAAAA,EAAAA,YAAWmyH,GAAeA,IAAgBA,EACxDpuH,EAAKi5C,kBAAmB,EACxBj5C,EAAK82B,OAAS,oBAfE,CAChB,IAAM88F,EAAWxnE,EAASvyD,WAAWkS,QAAQqgD,GACvCynE,EAAiBF,IAAqBvnE,EAASvyD,aAElCg6H,KADDD,IAAa/sG,GAAS+sG,IAAa/sG,EAAQ,IACV2zC,KAGjDg5D,EAAcpnE,EAASvyD,WAAWS,OAAO8xD,EAAU,CAAEp/B,WAAW,IAC5D6mG,GAAkBhtG,EAAQ+sG,IAC5B5zH,EAAK9B,GAAK2oB,EAAQ,IASpB2sG,IACEh5D,UACKx6D,EAAK9B,GACZquF,EAAU2kC,EAASlnF,UAAUsY,gBAAgBkxE,EAAaxzH,IAE1DusF,EAAUonC,EAAiB11H,IAAIu1H,EAAaxzH,IAIhD5I,KAAKg3H,YAAc,KACnBh3H,KAAKm4H,WAAa,UACb,GAAIr1H,EAAI,CACb,IAAMk3H,EAAWE,EAAYF,WAAYF,MAAAA,OAAxB,EAAwBA,EAAUt4H,IAAI,cACjDu4H,EAAWG,EAAYH,WAAY/kE,MAAAA,OAAxB,EAAwBA,EAAUxzD,IAAI,eAEtD+6H,GAAoBD,EAAM1uH,KAAK,gCAC/B0N,GAAa0+G,GAAYsC,EAAM1uH,KAAN,4CAAgDosH,EAAhD,OACzB/kH,GAAa8kH,GAAYuC,EAAM1uH,KAAN,kDAAsDmsH,EAAtD,MAC1Bj3H,EAAGm9B,WAAW,0BAA2B,CACvCy8F,OAAQJ,EACRr5H,MAAO+xD,EACPwE,QAAS,SACT91D,OAAQo2H,IAaZ,OATAh3H,MAAAA,GAAAA,EAAI4B,QAAQ,kBAAmB,CAC7B63H,iBAAAA,EACAH,YAAAA,EACAE,MAAAA,EACApC,YAAAA,EACAiC,IAAAA,EACAE,MAAAA,IAGKlnC,GAQTjpD,SAhqCkC,SAgqCzBhnC,IACPuQ,EAAAA,EAAAA,KAAIzV,KAAKo3H,eAAgB,UAAWp3H,KAAKksC,UAG9B,KAFChnC,EAAEqnC,OAASrnC,EAAEsnC,WAGvBxsC,KAAK0V,MAAQ,EACb1V,KAAK2V,c,6lBC5qCX,IAAIixD,EAAc,CAEhBp2B,gBAAiB,KAEjB1rC,aAAc,KAEdqhD,aAAc,EACd5V,WAAY,KACZr4B,QAAS,KACTG,OAAQ,KACRyG,MAAO,KACP69G,kBAAmB,aAGnB5mE,KAAM,EAGN6mE,OAAQ,GAGRC,OAAQ,GAGRjnF,WAAY,KAGZE,UAAW,KAGXjB,UAAW,SAGXC,SAAU,QAIVC,YAAa,EAIbqkD,aAAc,EAGdC,qBAAsB,EAGtBrkD,gBAAgB,EAGhBC,eAAe,EAGfO,YAAY,EAGZF,WAAW,EAGX2jD,GAAI,EACJ9T,GAAI,EACJtoB,GAAI,EACJkoB,GAAI,EACJ8T,GAAI,EACJK,GAAI,EACJJ,GAAI,EACJK,GAAI,GAWF2jC,EAAkB,SAACj5H,EAAI0gB,GACzB,IAAImxB,EAAInxB,GAAOxkB,OACXmjB,EAAOrf,EAAGsf,wBACd,MAAO,CACLpD,KAAMmD,EAAKnD,KAAO21B,EAAEhiB,YACpB1T,IAAKkD,EAAKlD,IAAM01B,EAAEliB,YAClBnxB,MAAO6gB,EAAK7gB,MACZD,OAAQ8gB,EAAK9gB,SAIXwuC,EAAAA,WAKJ,aAAuB,IAAXhoC,EAAW,uDAAJ,GAGjB,OAHqB,eACrB5I,KAAK+jC,WAAWn7B,IAChBsO,EAAAA,EAAAA,SAAQlX,KAAM,gBAAiB,kBAAmB,OAAQ,QACnDA,K,wCAOT,WACE,OAAOA,KAAK4I,O,wBAOd,WAAyB,IAAdpG,EAAc,uDAAJ,GACnBxC,KAAK4I,MAAO6G,EAAAA,EAAAA,UAASjN,EAASokE,GAC9B5mE,KAAK+8H,U,mBAMP,WACE,IAAMn0H,EAAO5I,KAAK4I,KACZjG,EAAMiG,EAAKsN,QAAU,GACrBxD,EAAW9J,EAAK8J,UAAYxK,SAAS+B,KACvCgG,EAAYjQ,KAAKiQ,UAUrB,IAPKA,KACHA,EAAY/H,SAAS0lB,cAAc,QACzB7qB,UAAV,UAAyBJ,EAAzB,aACA+P,EAASjL,YAAYwI,GACrBjQ,KAAKiQ,UAAYA,GAGZA,EAAUrI,YACfqI,EAAUsS,YAAYtS,EAAUrI,YAIlC,IAAMknF,EAAW,GAKjB,IAAK,IAAIrK,IAJT,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMh4E,SAC/C,SAAAuwH,GAAG,OAAKluC,EAASkuC,GAAOp0H,EAAKo0H,GAvEf,SAAC74H,EAAMyE,GACzB,IAAIjG,EAAMiG,EAAKsN,QAAU,GACrBrS,EAAKqE,SAAS0lB,cAAc,KAGhC,OAFA/pB,EAAGd,UAAYJ,EAAM,aAAeA,EAAM,aAAewB,EACzDN,EAAGmS,aAAa,QAAUrT,EAAM,UAAWwB,GACpCN,EAkEiCo5H,CAAcD,EAAKp0H,GAAQ,MAGnDkmF,EAAU,CACtB,IAAMK,EAAUL,EAASrK,GACzB0K,GAAWl/E,EAAUxI,YAAY0nF,GAGnCnvF,KAAK8uF,SAAWA,EAChB9uF,KAAKwwC,gBAAkB5nC,EAAK4nC,gBAC5BxwC,KAAK8E,aAAe8D,EAAK9D,aACzB9E,KAAKuwC,WAAa3nC,EAAK2nC,WACvBvwC,KAAKkY,QAAUtP,EAAKsP,QACpBlY,KAAKqY,OAASzP,EAAKyP,OACnBrY,KAAK8e,MAAQlW,EAAKkW,MAClB9e,KAAK28H,kBAAoB/zH,EAAK+zH,oB,0BAOhC,SAAanjH,GACX,GAAIxZ,KAAK4I,KAAKwwF,aAAc,CAC1B,IAAM38E,EAASvU,SAAS6nC,iBAAiB,WACzC3nC,EAAAA,EAAAA,MAAKqU,GAAQ,SAAArB,GAAK,OAAKA,EAAMzE,MAAM4d,cAAgB/a,EAAS,OAAS,S,uBASzE,SAAU3V,GACR,IAAIirF,EAAW9uF,KAAK8uF,SAEpB,IAAK,IAAIrK,KAAKqK,EACZ,GAAIA,EAASrK,KAAO5gF,EAAI,OAAO,EAGjC,OAAO,I,0BAOT,WACE,OAAO7D,KAAK6D,K,yBAOd,WACE,OAAO7D,KAAK6D,GAAGq5H,gB,2BAMjB,WACE,MAAO,CAACl9H,KAAK6D,GAAG6a,cAAexW,Y,2BASjC,SAAcrE,GAAe,IAAX+E,EAAW,uDAAJ,GACnB2nC,EAAavwC,KAAKuwC,YAAc,GACpC,OAAOA,EAAaA,EAAW1sC,EAAI+E,GAAQk0H,EAAgBj5H,K,mBAO7D,SAAMA,GAEAA,GAAMA,IAAO7D,KAAK6D,KAItB7D,KAAK6D,GAAKA,EACV7D,KAAKm9H,gBAAgB,CAAEC,UAAW,KAClCztH,EAAAA,EAAAA,IAAG3P,KAAKunH,gBAAiB,YAAavnH,KAAKq9H,oB,kBAM7C,WACEr9H,KAAKiQ,UAAU0G,MAAMC,QAAU,OAE3B5W,KAAK6D,MACP4R,EAAAA,EAAAA,KAAIzV,KAAKunH,gBAAiB,YAAavnH,KAAKq9H,iBAC5Cr9H,KAAK6D,GAAK,Q,mBAQd,SAAMqB,GAEJ,GAAiB,IAAbA,EAAE8P,OAAN,CACA9P,EAAEmB,iBACFnB,EAAEiH,kBACF,IAAMtI,EAAK7D,KAAK6D,GACVmhE,EAAWhlE,KAAKs9H,cAEhB56H,EAAS1C,KAAK4I,MAAQ,GACxB20H,EAAW,QAAU76H,EAAOwT,OAAS,UACrCgN,EAAOljB,KAAK2wB,cAAc9sB,EAAI,CAAEH,OAAQ,OACxC85H,EAAax9H,KAAK2wB,cAAcq0C,GACpChlE,KAAKy9H,YAAcv4H,EAAExB,OAAOw/D,aAAaq6D,GACzCv9H,KAAK09H,eAAiBx4H,EAAExB,OACxB1D,KAAKy1C,SAAW,CACdzvC,EAAGkd,EAAKlD,IACRqhC,EAAGn+B,EAAKnD,KACR21B,EAAGxyB,EAAK7gB,MACRszC,EAAGzyB,EAAK9gB,QAEVpC,KAAK29H,QAAU,CACb33H,EAAGkd,EAAKlD,IACRqhC,EAAGn+B,EAAKnD,KACR21B,EAAGxyB,EAAK7gB,MACRszC,EAAGzyB,EAAK9gB,QAEVpC,KAAK49H,SAAW,CACdhhH,EAAG1X,EAAE+Z,QACLpC,EAAG3X,EAAEga,SAEPlf,KAAK69H,UAAY,CACf73H,EAAGw3H,EAAWx9G,IACdqhC,EAAGm8E,EAAWz9G,KACd21B,EAAG8nF,EAAWn7H,MACdszC,EAAG6nF,EAAWp7H,QAIhB,IAAIqc,EAAMze,KAAKunH,iBACf53G,EAAAA,EAAAA,IAAG8O,EAAK,YAAaze,KAAK+mE,OAC1Bp3D,EAAAA,EAAAA,IAAG8O,EAAK,UAAWze,KAAK89H,gBACxBnuH,EAAAA,EAAAA,IAAG8O,EAAK,UAAWze,KAAK2Q,OACxB9L,EAAAA,EAAAA,YAAW7E,KAAKkY,UAAYlY,KAAKkY,QAAQhT,EAAG,CAAEyvC,KAAMl2B,EAAK/b,OAAAA,EAAQmB,GAAAA,EAAI+wC,QAnCrD50C,OAoChBA,KAAK+9H,aAAa,GAClB/9H,KAAK+mE,KAAK7hE,M,kBAOZ,SAAKA,GACH,IAAMmT,EAASrY,KAAKqY,OAChB2lH,EAAah+H,KAAKwwC,gBAClB83E,EAAa0V,EACbA,EAAW94H,GACX,CACE0X,EAAG1X,EAAE+Z,QACLpC,EAAG3X,EAAEga,SAGXlf,KAAKsoH,WAAaA,EAClBtoH,KAAKmrB,MAAQ,CACXvO,EAAG0rG,EAAW1rG,EAAI5c,KAAK49H,SAAShhH,EAChCC,EAAGyrG,EAAWzrG,EAAI7c,KAAK49H,SAAS/gH,GAElC7c,KAAK6hB,KAAO,CACVlgB,MAAOuD,EAAEw9E,SACTgK,KAAMxnF,EAAE+lB,QACRxK,IAAKvb,EAAE+4H,QAGTj+H,KAAK29H,QAAU39H,KAAKk+H,KAAKl+H,MACzBA,KAAKm+H,WAAW,GAGhB9lH,GAAUA,EAAOnT,GAGD,IAAZA,EAAEqnC,OACJvsC,KAAK2Q,KAAKzL,K,kBAQd,SAAKA,GACH,IAAMxC,EAAS1C,KAAK4I,KAChB6V,EAAMze,KAAKunH,iBACf9xG,EAAAA,EAAAA,KAAIgJ,EAAK,YAAaze,KAAK+mE,OAC3BtxD,EAAAA,EAAAA,KAAIgJ,EAAK,UAAWze,KAAK89H,gBACzBroH,EAAAA,EAAAA,KAAIgJ,EAAK,UAAWze,KAAK2Q,MACzB3Q,KAAKm+H,WAAW,GAChBn+H,KAAK+9H,gBACLl5H,EAAAA,EAAAA,YAAW7E,KAAK8e,QAAU9e,KAAK8e,MAAM5Z,EAAG,CAAEyvC,KAAMl2B,EAAK/b,OAAAA,M,wBAMvD,SAAWqO,GACT,IAAMlN,EAAK7D,KAAK6D,GAEVnB,EAAS1C,KAAK4I,KACdsa,EAAOljB,KAAK29H,QACZ74H,EAAe9E,KAAK8E,aACpBixC,EAAkB/1C,KAAKo+H,qBACrBxoF,EAA+ClzC,EAA/CkzC,WAAYE,EAAmCpzC,EAAnCozC,UAAWhB,EAAwBpyC,EAAxBoyC,SAAUD,EAAcnyC,EAAdmyC,UAGzC,IAAIhwC,EAAAA,EAAAA,YAAWC,GACbA,EAAajB,EAAIqf,EAAM,CACrBnS,MAAAA,EACAglC,gBAAAA,EACAnB,QAZY50C,KAaZ0C,OAAAA,QAEG,CACL,IAAMi+C,EAAU98C,EAAG8S,MACnBgqC,EAAQ7L,GAAY5xB,EAAKwyB,EAAII,EAC7B6K,EAAQ9L,GAAa3xB,EAAKyyB,EAAIC,EAGhC51C,KAAKm9H,oB,6BAGP,WAA0B,IAAVtwG,EAAU,uDAAJ,GACZjkB,EAAwB5I,KAAxB4I,KAAMqH,EAAkBjQ,KAAlBiQ,UAAWpM,EAAO7D,KAAP6D,GACjB8S,EAAU1G,EAAV0G,OAEH/N,EAAKywF,sBAAwBx1F,GAM5BgpB,EAAIuwG,YAAWzmH,EAAMC,QAAU,SAGrC5W,KAAK28H,kBAAkB,CACrB94H,GAAIoM,EACJ2kC,QAAS50C,KACT4I,KAAM,OACDA,GACAikB,O,gCAST,WACE,IAAIiiE,EAAW9uF,KAAK8uF,SAEpB,GAAK9uF,KAAK+1C,gBAIV,IAAK,IAAI0uC,KAAKqK,EACZ,GAAIA,EAASrK,KAAOzkF,KAAK+1C,gBAAiB,OAAO0uC,I,2BAQrD,SAAcv/E,GACM,KAAdA,EAAEsnC,UAEJxsC,KAAK29H,QAAU39H,KAAKy1C,SACpBz1C,KAAK2Q,KAAKzL,M,6BAQd,SAAgBA,GACd,IAAIrB,EAAKqB,EAAExB,OACP1D,KAAKq+H,UAAUx6H,IACjB7D,KAAK+1C,gBAAkBlyC,EACvB7D,KAAKkoB,MAAMhjB,IACFrB,IAAO7D,KAAK6D,KACrB7D,KAAK+1C,gBAAkB,GACvB/1C,KAAK6wC,U,kBAQT,SAAK/mC,GACH,IAAIjE,EACE+C,EAAO5I,KAAK4I,MAAQ,GACpBmtD,EAAOntD,EAAKmtD,KACZtgB,EAAWz1C,KAAKy1C,SAChBmnF,EAASh0H,EAAKg0H,OACdC,EAASj0H,EAAKi0H,OACdyB,EAASx0H,EAAKqhB,MAAMvO,EACpB2hH,EAASz0H,EAAKqhB,MAAMtO,EACpB2hH,EAAUx+H,KAAK69H,UAAUnoF,EACzB+oF,EAAUz+H,KAAK69H,UAAUloF,EACzBG,EAAY91C,KAAK4I,KAAKktC,UACtBF,EAAa51C,KAAK4I,KAAKgtC,WACvB8oF,EAAuB,MAAd5oF,EAAqBL,EAASC,EAAI,IAAO8oF,EAAU/oF,EAASC,EACrEipF,EAAwB,MAAf/oF,EAAsBH,EAASE,EAAI,IAAO8oF,EAAUhpF,EAASE,EACxEipF,EAAM,CACR54H,EAAG,EACHq7C,EAAG,EACH3L,EAAGgpF,EACH/oF,EAAGgpF,GAGL,GAAK70H,EAAL,CAEA,IAAI8C,EAAO9C,EAAK2zH,aACX7wH,EAAK+H,QAAQ,OAChB9O,EACgB,MAAdiwC,GACI+oF,EAAAA,EAAAA,iBAAiBH,EAASJ,EAASvoE,GAAQyoE,EAAW,IAAK,MAC3DK,EAAAA,EAAAA,gBAAeH,EAASJ,EAASvoE,EAAMA,GAC7ClwD,EAAQulB,KAAKC,IAAIuxG,EAAQ/2H,GACzBg3H,IAAWh3H,EAAQulB,KAAKE,IAAIuxG,EAAQh3H,IACpC+4H,EAAIlpF,EAAI7vC,IAEL+G,EAAK+H,QAAQ,OAChB9O,EACiB,MAAf+vC,GACIipF,EAAAA,EAAAA,iBAAiBF,EAASJ,EAASxoE,GAAQ0oE,EAAW,IAAK,MAC3DI,EAAAA,EAAAA,gBAAeF,EAASJ,EAASxoE,EAAMA,GAC7ClwD,EAAQulB,KAAKC,IAAIuxG,EAAQ/2H,GACzBg3H,IAAWh3H,EAAQulB,KAAKE,IAAIuxG,EAAQh3H,IACpC+4H,EAAIjpF,EAAI9vC,IAEL+G,EAAK+H,QAAQ,OAChB9O,EACgB,MAAdiwC,GACI+oF,EAAAA,EAAAA,iBAAiBH,EAASJ,EAASvoE,GAAQyoE,EAAW,IAAK,MAC3DK,EAAAA,EAAAA,gBAAeH,EAASJ,EAASvoE,EAAMA,GAC7ClwD,EAAQulB,KAAKC,IAAIuxG,EAAQ/2H,GACzBg3H,IAAWh3H,EAAQulB,KAAKE,IAAIuxG,EAAQh3H,IACpC+4H,EAAIlpF,EAAI7vC,IAEL+G,EAAK+H,QAAQ,OAChB9O,EACiB,MAAf+vC,GACIipF,EAAAA,EAAAA,iBAAiBF,EAASJ,EAASxoE,GAAQ0oE,EAAW,IAAK,MAC3DI,EAAAA,EAAAA,gBAAeF,EAASJ,EAASxoE,EAAMA,GAC7ClwD,EAAQulB,KAAKC,IAAIuxG,EAAQ/2H,GACzBg3H,IAAWh3H,EAAQulB,KAAKE,IAAIuxG,EAAQh3H,IACpC+4H,EAAIjpF,EAAI9vC,GAIV,IAAIi5H,EAAcl2H,EAAKu9C,cAAgBr8C,EAAK+X,KAAKlgB,MAAQmI,EAAK+X,KAAKlgB,MACnE,GAAIiL,EAAK+H,QAAQ,KAAO,GAAKmqH,EAAa,CACxC,IAAIC,EAAQtpF,EAASC,EAAID,EAASE,EAC9BipF,EAAIlpF,EAAIkpF,EAAIjpF,EAAIopF,EAClBH,EAAIjpF,EAAIvqB,KAAK0c,MAAM82F,EAAIlpF,EAAIqpF,GAE3BH,EAAIlpF,EAAItqB,KAAK0c,MAAM82F,EAAIjpF,EAAIopF,GAW/B,OAPKnyH,EAAK+H,QAAQ,OAChBiqH,EAAIv9E,EAAI5L,EAASC,EAAIkpF,EAAIlpF,IAEtB9oC,EAAK+H,QAAQ,OAChBiqH,EAAI54H,EAAIyvC,EAASE,EAAIipF,EAAIjpF,GAGpBipF,O,EAvbLhuF,GA2bN,SACExtC,KADa,SACRwF,GACH,OAAO,IAAIgoC,EAAQhoC,K,qkBClhBvB,mBACE,MAAO,CAMLzE,KAAM,QAKNf,KAXK,WAYH,OAAOpD,MAGTwS,QAfK,aAiBLqF,OAAAA,EACA+4B,QAAAA,EACA9oB,QAAAA,EAAAA,EACAk3G,QAAS,KAAK/yE,M,+uCCxBX,IAAMhQ,EAAQ,SAAAp2C,GAAK,YAAqB,IAAVA,GAExBkzB,EAAS,iBAAwB,oBAAXh5B,QAEtBk/H,EAAY,iBACD,oBAAfn/H,WAA6BA,WAA+B,oBAAXC,OAAyBA,OAASm/H,EAAAA,GAE/E5lF,EAAc,SAAA0D,GAAG,OAAKA,GAAO,IAAI1D,eAExC6lF,EAASpmG,IAAWh5B,OAAOq/H,QAAQt9H,UAAY,GAC/CkyB,EAAUmrG,EAAOnrG,SAAWmrG,EAAOzT,uBAAyByT,EAAOxT,oBAAsBwT,EAAOvT,kBAEzFv8F,EAAa,SAACvsB,EAAIu8H,GAC7B,MAAkCv8H,EAAGoN,YAA7B/P,EAAR,EAAQA,YACR,MAAO,CADP,EAAqBm/H,UACD,GAAJ,OAAOn/H,EAAP,OAAyBk/H,GAAQrpG,QAAO,SAAA5rB,GAAC,OAAIA,KAAG2X,KAAK,MAOjEw9G,EAAe,SAAfA,EAAgBpjH,GAAsB,IAAdvT,EAAc,uDAAP,GAC7Bod,GAAOhL,EAAAA,EAAAA,SAAQmB,IAAR,OAAsBA,GAAU,CAACA,GAE9C,GAAI6J,EAAK/e,OAAQ,CACf,IAAMyZ,EAAOsF,EAAKrkB,QAElB,GAAI+e,KAAU9X,EAAKy2E,SAAWn3E,SAASnB,cAAT,sBAAqC2Z,EAArC,SAAiD,CAC7E,MAAiBxY,SAAT2d,EAAR,EAAQA,KACF6iE,EAAOxgF,SAAS0lB,cAAc,QACpC86D,EAAKhoE,KAAOA,EACZgoE,EAAKziE,IAAM,aAEPrd,EAAK42H,QACP35G,EAAKle,aAAa+gF,EAAM7iE,EAAKje,YAE7Bie,EAAKpe,YAAYihF,GAIrB62C,EAAav5G,KAeXmyC,EAAc,SAACsnE,EAASC,GAC5B,IAAMz9H,EAAS,GACT09H,GAAU99G,EAAAA,EAAAA,MAAK69G,GAErB,IAAK,IAAInpG,KAAQkpG,EACf,GAAIA,EAAQ99F,eAAepL,GAAO,CAChC,IAAMqpG,EAAYH,EAAQlpG,GACpBwrF,EAAW2d,EAAOnpG,GAEpBopG,EAAQhrH,QAAQ4hB,IAAS,EACvBqpG,IAAc7d,IAChB9/G,EAAOs0B,GAAQwrF,GAGjB9/G,EAAOs0B,GAAQ,KAKrB,IAAK,IAAIA,KAAQmpG,EACXA,EAAO/9F,eAAepL,KACpBzR,EAAAA,EAAAA,aAAY26G,EAAQlpG,MACtBt0B,EAAOs0B,GAAQmpG,EAAOnpG,IAK5B,OAAOt0B,GAGH0N,EAAK,SAAC9L,EAAIyH,EAAIuf,EAAIjiB,GACtB0C,EAAKA,EAAG7J,MAAM,OACdoC,EAAKA,aAAcma,MAAQna,EAAK,CAACA,GAEjC,IAJ+B,eAItBuG,GACPvG,EAAG4I,SAAQ,SAAAsf,GAAI,OAAIA,GAAQA,EAAK1e,iBAAiB/B,EAAGlB,GAAIygB,EAAIjiB,OADrDwB,EAAI,EAAGA,EAAIkB,EAAGrE,SAAUmD,EAAG,EAA3BA,IAKLqL,EAAM,SAAC5R,EAAIyH,EAAIuf,EAAIjiB,GACvB0C,EAAKA,EAAG7J,MAAM,OACdoC,EAAKA,aAAcma,MAAQna,EAAK,CAACA,GAEjC,IAJgC,eAIvBuG,GACPvG,EAAG4I,SAAQ,SAAAsf,GAAI,OAAIA,GAAQA,EAAKsf,oBAAoB//B,EAAGlB,GAAIygB,EAAIjiB,OADxDwB,EAAI,EAAGA,EAAIkB,EAAGrE,SAAUmD,EAAG,EAA3BA,IAKLyrC,EAAmB,SAAAhwC,GACvB,OAAOA,EAAMkG,QAAQshB,WAAWxnB,GAAQ,KAGpCg6H,EAAU,SAAAh6H,GAAK,OAAIA,EAAM,GAAG+/B,cAAgB//B,EAAMyzC,cAAc8G,MAAM,IAEtE0tD,EAAY,SAAAjoG,GAChB,OAAOA,EAAMkG,QAAQ,OAAO,SAAA6Q,GAAC,OAAIA,EAAE,GAAGgpB,kBAGlCi5F,EAAiB,SAACh5H,GAAkC,IAA3BkwD,EAA2B,uDAApB,EAAGihD,EAAiB,uDAAN,EAC9CnwB,EAAe,EACnB,GAAIv+D,MAAMziB,GAAQ,OAAOmxG,EAGzB,GAFAnxG,EAAQwnB,WAAWxnB,GAEfulB,KAAK2gD,MAAMlmE,KAAWA,EAAO,CAC/B,IAAMysB,EAAOyjC,EAAKj9B,WAAWr3B,MAAM,KAAK,GACxColF,EAAev0D,EAAOA,EAAKrrB,OAAS,EAGtC,OAAO4/E,EAAex5D,WAAWxnB,EAAMihF,QAAQD,IAAiBhhF,GAG5DoQ,EAAS,SAAAnT,GACb,MAAO,cAAeoF,SAAS0lB,cAAc,OAAS9qB,EAAKA,EAAGtB,IAAI,UAAUs+H,UAAY,IAQpF9zG,EAAa,SAAAnoB,GACjB,OAAI6X,EAAAA,EAAAA,WAAU7X,IAAOspB,EAAWtpB,GACvBA,EACEA,GAAMA,EAAG0Q,MACX1Q,EAAG0Q,aADL,GAUH4Y,EAAa,SAAAtpB,GAAE,OAAIA,GAAsB,IAAhBA,EAAG6lD,UAOrBq2E,EAAgB,SAAAl8H,GAAE,OAAIA,GAAsB,IAAhBA,EAAG6lD,UAO/BlV,EAAiB,SAAA3wC,GAAE,OAAIA,IAAOspB,EAAWtpB,KAAQk8H,EAAcl8H,IAE/DiE,EAAO,SAACm1D,EAAK3U,GACxB,IAAIrmD,EAAS,KAEb,OADAg7D,EAAI96C,MAAK,SAACte,EAAIuG,GAAL,OAAYk+C,EAAKzkD,EAAIuG,EAAG6yD,IAASh7D,EAAS4B,EAAK,GAAK,KACtD5B,GAGI68C,EAAS,WAAc,IAAb9B,EAAa,uDAAP,GAC3B,MAAO,UAAGA,GACPjxC,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAGNywC,EAAY,SAAZA,IAGX,IAFA,IAAM94C,EAAS,EAAH,4CAEH0G,EAAI,EAAGA,EAAI,UAAKnD,OAAQmD,IAAK,CACpC,IAAM0qD,EAAS,EAAH,GAAa1qD,EAAb,qBAAaA,OAAb,YAAaA,IAEzB,IAAK,IAAIksB,KAAOw+B,EAAQ,CACtB,IAAMm2B,EAAYvnF,EAAO4yB,GACnB40D,EAAWp2B,EAAOx+B,GAEpBnd,EAAS8xE,IAAc9xE,EAAS+xE,GAClCxnF,EAAO4yB,GAAOkmB,EAAUyuC,EAAWC,GAEnCxnF,EAAO4yB,GAAO40D,GAKpB,OAAOxnF,GAQH+e,EAAW,SAAC5e,EAAI6kC,GACpB,IAAIzlC,EAAQY,EAMZ,OALK6kC,GAAK7kC,GAAMA,EAAGm8H,WACjB/8H,EAAQY,EAAGm8H,WAAW/8H,OACbyY,EAAAA,EAAAA,WAAU7X,KACnBZ,EAAQylC,EAAE7kC,GAAIiG,KAAK,UAEd7G,GAGHgpB,EAAY,SAAApoB,GAChB,IAOIo8H,EAPE1jF,EAAM,CACVv8B,IAAK,EACLD,KAAM,EACN1d,MAAO,EACPD,OAAQ,GAEV,IAAKyB,EAAI,OAAO04C,EAGhB,GAAIpvB,EAAWtpB,GAAK,CAClB,IAAMynD,EAAQpjD,SAASs5F,cACvBl2C,EAAM40E,WAAWr8H,GACjBo8H,EAAW30E,EAAMnoC,wBACjBmoC,EAAMgmE,SAGR,OAAO2O,IAAap8H,EAAGsf,sBAAwBtf,EAAGsf,wBAA0Bo5B,IAQxEt3B,EAAkB,SAAA3Z,GAAE,OAAKA,EAAGs4E,SAAWt4E,EAAGs4E,QAAQ,GAAKt4E,EAAGs4E,QAAQ,GAAKt4E,GAOvE60H,EAAa,SAAA70H,GAAE,OAAIA,EAAGihC,OAASjhC,EAAGkhC,SAClCzhB,EAAa,SAAAzf,GAAE,OAAIugE,OAAOu0D,aAAaD,EAAW70H,KAClDwoF,EAAW,SAAAxoF,GAAE,OAAuB,KAAnB60H,EAAW70H,IAC5ByoF,EAAa,SAAAzoF,GAAE,OAAuB,KAAnB60H,EAAW70H,IAC9B6N,EAAW,SAAA/P,GAAG,OAAY,OAARA,IAAiB4U,MAAMhD,QAAQ5R,IAAuB,YAAf,OAAOA,IAChEi1C,EAAa,SAAAj1C,GAAG,OAAIwY,OAAOC,KAAKzY,GAAKnC,QAAU,GAE/C42D,EAAa,SAAA7gB,GAAG,OAAIA,GAAOA,EAAI2S,OAAO,GAAG/pB,cAAgBoX,EAAIrnB,UAAU,IACvER,EAAc,SAAA7jB,GAAG,OAAIA,GAAOA,EAAIwmB,QAChCmvE,EAAS,SAAA31F,GAAG,OAAIA,GAAOA,EAAIwxC,OAE3B7uB,EAAY,SAAApwB,GAAE,OAAIA,EAAGw8H,QACrBj/G,EAAY,SAACvd,EAAIV,GACrBU,EAAGw8H,OAASl9H,GAGRi6C,EAAW,WAIf,IAJgC,IAAhBn2C,EAAgB,uDAAP,GACrBhF,EAAS,GACPq+H,EAAQ,iEACRp4F,EAAMo4F,EAAMr5H,OACTmD,EAAI,EAAGA,EAAInD,EAAQmD,IAC1BnI,GAAUq+H,EAAM3wE,OAAOvkC,KAAK2gD,MAAM3gD,KAAK40C,SAAW93B,IAEpD,OAAOjmC,I,eCjRT,UAcE,EAAO,CAAC,QAAc,SAAa,EAWlC,SAAUs+H,EAAG53F,GAEf,IAAI63F,EAAaxiH,MAAMlc,UAAUs+C,MAUjC,SAASwJ,EAAO/+B,EAAIyvE,EAAKp5D,GACxB,OAAOA,EAAKj6B,QAAU,EACrB4jB,EAAG+5C,KAAK01B,EAAKp5D,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC7CrW,EAAG++B,MAAM0wC,EAAKp5D,GAUhB,SAASkf,EAAO6c,EAAKxtC,GACpB,OAAO+wG,EAAW57D,KAAK3H,EAAKxtC,GAe7B,SAASgxG,EAASnvH,EAAKuQ,GACtB,OAAW,MAAPvQ,IACCivH,EAAEvlH,QAAQ6G,KACdA,EAAOu+B,EAAMr8B,UAAW,IAElBw8G,EAAE1yH,IAAIgU,GAAM,SAAUyU,GAC5B,OAAOA,KAAOhlB,MAUhB,IAAIovH,EAAsB,WAgBzB,IAAIC,GAAsB,EAAOC,GAAoB,EACrD,SAASC,IACRD,IACAD,GAAsB,EACtBJ,EAAEO,OAAM,WAIPH,GAAsB,KAGxB,OAAO,WAIN,OAHKA,GACJE,IAEMD,GA/BiB,GAyC1B,SAASG,IAcR/gI,KAAKghI,kBAAoB,GAKzBhhI,KAAKihI,WAAa,GA0EnB,SAASC,EAAM30F,EAAO40F,EAASt2G,EAAIyvE,GAClC,IAAK,IAA+BhpF,EAA3BlH,EAAI,EAAGi3C,EAAI8/E,EAAQl6H,OAAamD,EAAIi3C,EAAGj3C,IAE/C,GADAkH,EAAM6vH,EAAQ/2H,GACd,CACA,GAAc,OAAVmiC,GACH,IAAK+tD,EAAIqsB,eAAejB,SAASp0G,GAEhC,cAGD,IAAKgpF,EAAIqsB,eAAeT,WAAW50G,GAElC,SAGEivH,EAAE17H,WAAWyM,EAAIi7B,KACpBj7B,EAAIi7B,GAAO,MAAO1hB,EAAIyvE,IAYzB,SAAS8mC,EAAgB70F,EAAO7M,GAC/B,IAAIp+B,EAAOo+B,EAAOp+B,KAAM+/H,EAAY3hG,EAAO2hG,UAAWx2G,GAAMw2G,EAAU//H,IAAS+/H,EAAU//H,GAAMirC,GAC3Fg0F,EAAE17H,WAAWgmB,IAChBA,EAAG6U,EAAOgvD,OAAQhvD,EAAOsmF,OAAQtmF,EAAO2iD,MAAO3iD,EAAOl9B,SAcxD,SAAS8+H,EAAiB/0F,EAAOg1F,EAASt/G,EAAOu/G,EAAOC,GACvD,KAAIx/G,EAAMy/G,wBACE,SAAVn1F,IAAuC,IAAnBtqB,EAAMolG,SAChB,SAAV96E,GAAoBtqB,EAAMolG,UAAYplG,EAAMhb,OAAS,GAFvD,CAOAgb,EAAMy/G,wBAAyB,EAC/B,IAAIhiG,EAAQ4gE,EAASqhC,EAAmB,SAAVp1F,EAc9B,IAbIk1F,EAEHnhC,EAAUqhC,GAAU1/G,EAAMolG,UAAYplG,EAAMhb,OAAS,IAChD06H,IAA6B,IAAnB1/G,EAAMolG,QACjBkZ,EAAE38H,MAAMqe,EAAM3R,QACdkwH,EAAW52E,MAAM3nC,EAAM3R,OAAQqxH,EAAS,CAAC,EAAG1/G,EAAMolG,SAAW,CAACplG,EAAMolG,QAASplG,EAAMhb,OAAS,KAGhGy4B,EAASzd,EAAMnb,GAAG66H,EAAS1/G,EAAMolG,QAAUplG,EAAMolG,QAAU,GAC3D/mB,EAAUkhC,EAAQv/G,EAAMpR,MAAM,CAAC,iBAAoB6uB,EAAOl+B,IAAI,sBAAwB,CAACk+B,IAGxFzd,EAAMolG,UAAYsa,GAAU,EAAI,GAAKrhC,EAAQr5F,OACtCy4B,EAASiiG,EAASrhC,EAAQ5+F,MAAQ4+F,EAAQ3+F,SAEhD+9B,EAAO6M,KAERtqB,EAAMy/G,wBAAyB,EAE/BH,EAAQ78H,QAAQ6nC,EAAOg1F,IAcxB,SAASK,EAA4BC,EAAe3gG,GACnD,IAAIwd,EAAYmjF,EAAcnjF,UAAWp9C,SAAco9C,EACvD,MAAgB,aAATp9C,IAAwBsoD,EAAMlL,EAAWmjF,EAAe3gG,GACrD,YAAT5/B,GAAqBo9C,EAYvB,SAASojF,EAAW7/G,EAAO3gB,EAAM4/B,EAAMmgG,GACtC,GAAIp/G,EAAMwjG,QAAUxjG,EAAMy/G,wBAA0BpgI,KAAQ+/H,GAC3DO,EAA2BP,EAAU//H,GAAO4/B,GAAO,CAEnD,IAAI/3B,EAAMygD,EAAMy3E,EAAU//H,GAAU,GAAG+/H,EAAU//H,GAAO4/B,GACxD,GAAIu/F,EAAQt3H,EAAK,SAAU,SAAU,SAAU,CAI9C,GAHAA,EAAI7H,KAAOA,EACX6H,EAAIy3H,iBAAmBF,IACvBv3H,EAAIk4H,UAAYA,EACZp/G,EAAMolG,QAAUplG,EAAMhb,OAAS,EAMlC,IADA,IAAIixD,EAAOj2C,EAAMhb,OAASgb,EAAMolG,QAAU,EACnCnvD,KACNj2C,EAAMvgB,MAGRugB,EAAMolG,QAAUplG,EAAMhb,OACtBgb,EAAMpb,IAAIsC,GACN8Y,EAAMhb,OAASgb,EAAMojG,qBACxBpjG,EAAMtgB,QACNsgB,EAAMolG,aAtMV0Z,EAAej/H,UAAY,CAQ1BmkH,aAAc,SAAU30G,GAIvB,OAAOA,GAAOA,EAAI6pD,IAAMn7D,KAAKghI,kBAAkB1vH,EAAI6pD,KAAOolE,EAAEhxF,SAASvvC,KAAKghI,kBAAmB1vH,IAS9Fo0G,SAAU,SAAUp0G,GACnB,OAAKtR,KAAKimH,aAAa30G,KAClBA,GAAOA,EAAI6pD,KACdn7D,KAAKghI,kBAAkB1vH,EAAI6pD,KAAO7pD,EAClCtR,KAAKihI,WAAWrzH,KAAK0D,EAAI6pD,MAEzBn7D,KAAKghI,kBAAkBpzH,KAAK0D,IAEtB,IAWT40G,WAAY,SAAU50G,GACrB,GAAItR,KAAKimH,aAAa30G,GAAM,CAC3B,GAAIA,GAAOA,EAAI6pD,WACPn7D,KAAKghI,kBAAkB1vH,EAAI6pD,KAClCn7D,KAAKihI,WAAW/qG,OAAOqqG,EAAE5rH,QAAQ3U,KAAKihI,WAAY3vH,EAAI6pD,KAAM,OACtD,CACN,IAAI/wD,EAAIm2H,EAAE5rH,QAAQ3U,KAAKghI,kBAAmB1vH,GAC1CtR,KAAKghI,kBAAkB9qG,OAAO9rB,EAAG,GAElC,OAAO,EAER,OAAO,GAOR5I,IAAK,WACJ,OAAQ++H,EAAE7lH,IAAI1a,KAAKihI,YAAY,SAAU9lE,GAAM,OAAOn7D,KAAKghI,kBAAkB7lE,KAAQn7D,MAAOy+B,OAAOz+B,KAAKghI,qBAsJ1G,IAAIe,EAAY,CACf,IAAO,CACN,KAAQ,SAAUt/H,EAAY8/E,EAAQt/E,EAAOT,GAE5CC,EAAWS,OAAOD,EAAOT,IAE1B,KAAQ,SAAUC,EAAY8/E,EAAQt/E,EAAOT,GAExCA,EAAQitB,QACXjtB,EAAQsE,GAAKtE,EAAQitB,OAEtBhtB,EAAWoE,IAAI5D,EAAOT,IAEvB,GAAM,SAAUS,EAAOR,EAAYD,GAClC,MAAO,CACNksF,OAAQjsF,EACRujH,YAAQl9G,EACRu5E,MAAOp/E,EACPT,QAAS+9H,EAAE38H,MAAMpB,MAIpB,OAAU,CACT,KAAQ,SAAUC,EAAYQ,EAAOs/E,EAAQ//E,GACxC,UAAWA,IACdA,EAAQsE,GAAKtE,EAAQitB,OAEtBhtB,EAAWoE,IAAI5D,EAAOT,IAEvB,KAAQ,SAAUC,EAAYQ,EAAOs/E,EAAQ//E,GAC5CC,EAAWS,OAAOD,EAAOT,IAE1B,GAAM,SAAUS,EAAOR,EAAYD,GAClC,MAAO,CACNksF,OAAQjsF,EACRujH,OAAQ/iH,EACRo/E,WAAOv5E,EACPtG,QAAS+9H,EAAE38H,MAAMpB,MAIpB,OAAU,CACT,KAAQ,SAAUS,EAAO+iH,EAAQ3jC,EAAO7/E,GACnC+9H,EAAE/pG,QAAQwvF,GACbua,EAAEn4H,KAAKm4H,EAAE1+G,KAAKwgE,GAAQp/E,EAAM8V,MAAO9V,IAEnCA,EAAMU,IAAIqiH,GACNxjH,GAAWA,EAAQw/H,WAAax/H,EAAQw/H,UAAUhc,QAAUxjH,EAAQw/H,UAAUhc,OAAO/+G,QACxFs5H,EAAEn4H,KAAK5F,EAAQw/H,UAAUhc,OAAQ/iH,EAAM8V,MAAO9V,KAIjD,KAAQ,SAAUA,EAAO+iH,EAAQ3jC,EAAO7/E,GACnC+9H,EAAE/pG,QAAQ6rD,GACbk+C,EAAEn4H,KAAKm4H,EAAE1+G,KAAKmkG,GAAS/iH,EAAM8V,MAAO9V,IAEpCA,EAAMU,IAAI0+E,GACN7/E,GAAWA,EAAQw/H,WAAax/H,EAAQw/H,UAAU3/C,OAAS7/E,EAAQw/H,UAAU3/C,MAAMp7E,QACtFs5H,EAAEn4H,KAAK5F,EAAQw/H,UAAU3/C,MAAOp/E,EAAM8V,MAAO9V,KAIhD,GAAM,SAAUA,EAAOT,GACtB,IACAy/H,EAAkBh/H,EAAMw5C,oBACxBylF,EAAY3B,EAAE1+G,KAAKogH,GACnBlc,EAAqBwa,EAAE4B,KAAKl/H,EAAM8iH,qBAAsBmc,GACxDE,EAAe7B,EAAE1+G,KAAKkkG,GACtBic,GAAax/H,IAAYA,EAAU,KAAKw/H,UAAY,CACnD3/C,MAAO,GACP2jC,OAAQ,IAqBT,OAlBIkc,EAAUj7H,QAAUm7H,EAAan7H,SAEhCi7H,EAAUj7H,OAASm7H,EAAan7H,OAEnCs5H,EAAEn4H,KAAK85H,GAAW,SAAU94H,GACrBA,KAAO28G,GACZic,EAAUhc,OAAOp4G,KAAKxE,KAErBpJ,MAGHugI,EAAEn4H,KAAKg6H,GAAc,SAAUh5H,GACxBA,KAAO64H,GACZD,EAAU3/C,MAAMz0E,KAAKxE,OAKlB,CACNslF,OAAQzrF,EACR+iH,OAAQD,EACR1jC,MAAO4/C,EACPz/H,QAAS+9H,EAAE38H,MAAMpB,MAIpB,MAAS,CACR,KAAQ,SAAUC,EAAYujH,EAAQ3jC,GACrC5/E,EAAWgP,MAAMu0G,IAElB,KAAQ,SAAUvjH,EAAYujH,EAAQ3jC,GACrC5/E,EAAWgP,MAAM4wE,IAElB,GAAM,SAAU5/E,EAAYD,GAC3B,MAAO,CACNksF,OAAQjsF,EACRujH,OAAQxjH,EAAQm0B,eAChB0rD,MAAOk+C,EAAE38H,MAAMnB,EAAW6N,YAgB9B,SAAS+xH,KAmBT,SAASC,EAAoBC,EAAWC,EAAUruE,EAAKsuE,GAKtD,GAAwB,iBAAbD,EAEV,OAAOjC,EAAEn4H,KAAKo6H,GAAU,SAAUp5H,EAAKktB,GACnB,IAAdisG,EAEHD,EAAoBC,EAAWn5H,EAAK+qD,EAAKsuE,GAGzCH,EAAoBC,EAAWjsG,EAAKltB,EAAK+qD,MAK7C,OAAQouE,GACP,KAAK,EACA9B,EAAQtsE,EAAK,OAAQ,OAAQ,OAASosE,EAAE1yH,IAAI0yH,EAAE4B,KAAKhuE,EAAK,OAAQ,OAAQ,MAAOosE,EAAE17H,cACpF49H,EAAkBD,GAAYruE,GAEhC,MACA,KAAK,EACAsuE,EAAkBD,IAAajC,EAAEpnH,SAASg7C,KAO7CsuE,EAAkBD,GAAYjC,EAAEhoG,OAAO,GAAIkqG,EAAkBD,GAAWruE,IAE1E,MACA,KAAK,SACGsuE,EAAkBD,GAG3B,OAAOxiI,KAzDRqiI,EAAevgI,UAAYigI,EAkE3B,IAAIW,EAAS/5F,EAAS9mC,MAAM02B,OAAO,CAClC9oB,SAAU,CACTnO,KAAM,KACNotF,OAAQ,KACRs3B,OAAQ,KACR3jC,MAAO,KACPu+C,iBAAkB,MAQnB//F,KAAM,SAAUwgG,GACfD,EAAe,OAAQphI,KAAKqT,aAO7BytB,KAAM,SAAUugG,GACfD,EAAe,OAAQphI,KAAKqT,eAO9BsvH,EAAYh6F,EAASnjC,WAAW+yB,OAAO,CACtCt1B,MAAOy/H,EACPrb,SAAU,EACV5B,OAAO,EACPic,wBAAwB,EACxBrc,mBAAoBud,EAAAA,EACpBC,aAAc,SAAUz5H,GACvBpJ,KAAKqlH,mBAAqBj8G,KAO5Bw3B,EAAc+H,EAAS9mC,MAAM02B,OAAO,CACnC9oB,SAAU,CACT41G,mBAAoBud,EAAAA,EACpBnd,OAAO,GASRpkF,WAAY,SAAUz0B,GACrB5M,KAAKiiB,MAAQ,IAAI0gH,EACjB3iI,KAAK2mH,eAAiB,IAAIoa,EAC1B/gI,KAAKqhI,UAAY,IAAIgB,EAGrBriI,KAAKiiB,MAAM4gH,aAAa7iI,KAAKwB,IAAI,uBACjCxB,KAAK2P,GAAG,6BAA6B,SAAU1M,EAAO4C,GACrD7F,KAAKiiB,MAAM4gH,aAAah9H,KACtB7F,MAGC4M,GAAQA,EAAK64G,OAChBzlH,KAAKomH,gBAIFx5G,GAAQA,EAAK84G,WACZ6a,EAAEvlH,QAAQpO,EAAK84G,WAAa6a,EAAEuC,YAAYl2H,EAAK84G,UAClD97D,EAAM5pD,KAAK0lH,SAAU1lH,KAAM4M,EAAK84G,UAEhC1lH,KAAK0lH,SAAS94G,EAAK84G,YAQtBU,cAAe,WACdpmH,KAAK2D,IAAI,SAAS,GAClB3D,KAAKiiB,MAAMwjG,OAAQ,GAMpBY,aAAc,WACbrmH,KAAK2D,IAAI,SAAS,GAClB3D,KAAKiiB,MAAMwjG,OAAQ,GAMpBsd,WAAY,WACX,OAAO/iI,KAAKwB,IAAI,UAUjBwhI,YAAa,SAAU1hI,GACtBwgI,EAAW9hI,KAAKiiB,MAAO3gB,EAAM8+C,EAAMr8B,UAAW,GAAI/jB,KAAKqhI,YAOxD3b,SAAU,WACTwb,EAAM,KAAMn9G,UAAW/jB,KAAKgjI,YAAahjI,OAO1CkmH,WAAY,WACXgb,EAAM,MAAOn9G,UAAW/jB,KAAKgjI,YAAahjI,OAM3CmmH,cAAe,WACdv8D,EAAM5pD,KAAKkmH,WAAYlmH,KAAMA,KAAK2mH,eAAenlH,QAOlDq/B,KAAM,SAAU2gG,GACfF,EAAgB,OAAQthI,KAAMA,KAAKiiB,MAAOu/G,IAO3Clb,QAAS,WACRgb,EAAgB,OAAQthI,KAAMA,KAAKiiB,OAAO,GAAO,IAQlD6e,KAAM,SAAU0gG,GACfF,EAAgB,OAAQthI,KAAMA,KAAKiiB,MAAOu/G,IAO3Cjb,QAAS,WACR+a,EAAgB,OAAQthI,KAAMA,KAAKiiB,OAAO,GAAO,IAOlDukG,YAAa,SAAUllH,GACtB,IAAI8gB,EAAIpiB,KAAKiiB,MAAOo/B,EAAIj/B,EAAEnb,OAE1B,OAAQ3F,GACP,IAAK,OAAQ,OAAO+/C,EAAI,GAAKj/B,EAAEilG,SAAW,EAC1C,IAAK,OAAQ,OAAOhmE,EAAI,GAAKj/B,EAAEilG,QAAUhmE,EAAI,EAC7C,QAAS,OAAO,IAQlB4hF,MAAO,SAAUC,GAYhB,IADA,IAAoE3B,EAAhErgG,EAAOq/F,EAAEvlH,QAAQkoH,GAAeA,EAAc9iF,EAAMr8B,WACjDw9G,EAAUrgG,EAAKx/B,OACjB6/H,aAAmB3gG,GACtB2gG,EAAQt/G,iBAAiB0gH,IAEzBpB,EAAQt/G,MAAQjiB,KAAKiiB,QAUxBkhH,YAAa,SAAU7hI,EAAM6yD,GAC5BmuE,EAAmB,EAAGhhI,EAAM6yD,EAAKn0D,KAAKqhI,YAQvC1b,eAAgB,SAAUrkH,EAAM6yD,GAC/BmuE,EAAmB,EAAGhhI,EAAM6yD,EAAKn0D,KAAKqhI,YAOvC+B,eAAgB,SAAU9hI,GACzBghI,EAAmB,EAAGhhI,OAAMwH,EAAW9I,KAAKqhI,YAO7Cn/F,MAAO,WACNliC,KAAKiiB,MAAMxQ,QACXzR,KAAKiiB,MAAMolG,SAAW,KAyCxB,OArCAkZ,EAAEhoG,OAAOqI,EAAa,CAMrBnxB,SAAU,SAAU4zH,GACnB9C,EAAEhoG,OAAOqI,EAAY9+B,UAAU2N,SAAU4zH,IAQ1C,YAAe,SAAU/hI,EAAM6yD,GAC9BmuE,EAAmB,EAAGhhI,EAAM6yD,EAAK4tE,IAQlC,eAAkB,SAAUzgI,EAAM6yD,GACjCmuE,EAAmB,EAAGhhI,EAAM6yD,EAAK4tE,IAOlC,eAAkB,SAAUzgI,GAC3BghI,EAAmB,EAAGhhI,OAAMwH,EAAWi5H,MAIlCp5F,EAAS/H,YAAcA,QAhzBa,4D,eCd5C,QAWMphC,EAAAA,EAAuB,iBAAR+lF,MAAoBA,KAAKA,OAASA,MAAQA,MACjC,iBAAV,EAAA5a,GAAsB,EAAAA,EAAOu0D,SAAW,EAAAv0D,GAAU,EAAAA,EAIlE,EAAO,CAAC,QAAc,OAAU,GAAY,EAAF,SAAW41D,EAAG73F,EAAGhpC,GAGzDF,EAAKmpC,SAcR,SAASnpC,EAAMmpC,EAAU43F,EAAG73F,GAO7B,IAAI46F,EAAmB9jI,EAAKmpC,SAGxByX,EAAQpiC,MAAMlc,UAAUs+C,MAG5BzX,EAAS46F,QAAU,QAInB56F,EAASD,EAAIA,EAIbC,EAAS66F,WAAa,WAEpB,OADAhkI,EAAKmpC,SAAW26F,EACTtjI,MAMT2oC,EAAS86F,aAAc,EAMvB96F,EAAS+6F,aAAc,EASvB,IAAIC,EAAY,SAAS18H,EAAQuD,EAAQo5H,GACvC,OAAQ38H,GACN,KAAK,EAAG,OAAO,WACb,OAAOs5H,EAAE/1H,GAAQxK,KAAK4jI,KAExB,KAAK,EAAG,OAAO,SAAS/9H,GACtB,OAAO06H,EAAE/1H,GAAQxK,KAAK4jI,GAAY/9H,IAEpC,KAAK,EAAG,OAAO,SAASg+H,EAAUrqE,GAChC,OAAO+mE,EAAE/1H,GAAQxK,KAAK4jI,GAAYrU,EAAGsU,EAAU7jI,MAAOw5D,IAExD,KAAK,EAAG,OAAO,SAASqqE,EAAUC,EAAYtqE,GAC5C,OAAO+mE,EAAE/1H,GAAQxK,KAAK4jI,GAAYrU,EAAGsU,EAAU7jI,MAAO8jI,EAAYtqE,IAEpE,QAAS,OAAO,WACd,IAAIt4B,EAAOkf,EAAMwkB,KAAK7gD,WAEtB,OADAmd,EAAK6iB,QAAQ/jD,KAAK4jI,IACXrD,EAAE/1H,GAAQo/C,MAAM22E,EAAGr/F,MAI5B6iG,EAAuB,SAASC,EAAO5lH,EAASwlH,GAClDrD,EAAEn4H,KAAKgW,GAAS,SAASnX,EAAQuD,GAC3B+1H,EAAE/1H,KAASw5H,EAAMliI,UAAU0I,GAAUm5H,EAAU18H,EAAQuD,EAAQo5H,QAKnErU,EAAK,SAASsU,EAAUI,GAC1B,OAAI1D,EAAE17H,WAAWg/H,GAAkBA,EAC/BtD,EAAEpnH,SAAS0qH,KAAcI,EAASC,SAASL,GAAkBM,EAAaN,GAC1EtD,EAAErnH,SAAS2qH,GAAkB,SAAS5gI,GAAS,OAAOA,EAAMzB,IAAIqiI,IAC7DA,GAELM,EAAe,SAAStsG,GAC1B,IAAIusG,EAAU7D,EAAEvsG,QAAQ6D,GACxB,OAAO,SAAS50B,GACd,OAAOmhI,EAAQnhI,EAAMoQ,cAiBrBgxH,EAAS17F,EAAS07F,OAAS,GAG3BC,EAAgB,MAKhBC,EAAY,SAASV,EAAUz+H,EAAQjB,EAAMgnH,EAAUviH,GACzD,IAAWmiE,EAAP3gE,EAAI,EACR,GAAIjG,GAAwB,iBAATA,EAAmB,MAEnB,IAAbgnH,GAAuB,YAAaviH,QAAyB,IAAjBA,EAAK4wD,UAAoB5wD,EAAK4wD,QAAU2xD,GACxF,IAAKpgD,EAAQw1D,EAAE1+G,KAAK1d,GAAOiG,EAAI2gE,EAAM9jE,OAASmD,IAC5ChF,EAASm/H,EAAUV,EAAUz+H,EAAQ2lE,EAAM3gE,GAAIjG,EAAK4mE,EAAM3gE,IAAKxB,QAE5D,GAAIzE,GAAQmgI,EAAch8E,KAAKnkD,GAEpC,IAAK4mE,EAAQ5mE,EAAK1C,MAAM6iI,GAAgBl6H,EAAI2gE,EAAM9jE,OAAQmD,IACxDhF,EAASy+H,EAASz+H,EAAQ2lE,EAAM3gE,GAAI+gH,EAAUviH,QAIhDxD,EAASy+H,EAASz+H,EAAQjB,EAAMgnH,EAAUviH,GAE5C,OAAOxD,GAKTi/H,EAAO10H,GAAK,SAASxL,EAAMgnH,EAAU3xD,GACnC,OAAOgrE,EAAWxkI,KAAMmE,EAAMgnH,EAAU3xD,IAI1C,IAAIgrE,EAAa,SAASlzH,EAAKnN,EAAMgnH,EAAU3xD,EAASirE,GAYtD,OAXAnzH,EAAIozH,QAAUH,EAAUI,EAAOrzH,EAAIozH,SAAW,GAAIvgI,EAAMgnH,EAAU,CAChE3xD,QAASA,EACT8gC,IAAKhpF,EACLmzH,UAAWA,IAGTA,KACcnzH,EAAIszH,aAAetzH,EAAIszH,WAAa,KAC1CH,EAAU9+H,IAAM8+H,GAGrBnzH,GAMT+yH,EAAOrhI,SAAW,SAASsO,EAAKnN,EAAMgnH,GACpC,IAAK75G,EAAK,OAAOtR,KACjB,IAAI2F,EAAK2L,EAAIuzH,YAAcvzH,EAAIuzH,UAAYtE,EAAEuE,SAAS,MAClDC,EAAc/kI,KAAKglI,eAAiBhlI,KAAKglI,aAAe,IACxDP,EAAYM,EAAYp/H,GAI5B,IAAK8+H,EAAW,CACd,IAAIQ,EAASjlI,KAAK6kI,YAAc7kI,KAAK6kI,UAAYtE,EAAEuE,SAAS,MAC5DL,EAAYM,EAAYp/H,GAAM,CAAC2L,IAAKA,EAAK4zH,MAAOv/H,EAAIA,GAAIs/H,EAAQF,YAAaA,EAAa9yC,MAAO,GAKnG,OADAuyC,EAAWlzH,EAAKnN,EAAMgnH,EAAUnrH,KAAMykI,GAC/BzkI,MAIT,IAAI2kI,EAAQ,SAASv/H,EAAQjB,EAAMgnH,EAAU3oH,GAC3C,GAAI2oH,EAAU,CACZ,IAAIr8B,EAAW1pF,EAAOjB,KAAUiB,EAAOjB,GAAQ,IAC3Cq1D,EAAUh3D,EAAQg3D,QAAS8gC,EAAM93F,EAAQ83F,IAAKmqC,EAAYjiI,EAAQiiI,UAClEA,GAAWA,EAAUxyC,QAEzBnD,EAASlhF,KAAK,CAACu9G,SAAUA,EAAU3xD,QAASA,EAAS8gC,IAAK9gC,GAAW8gC,EAAKmqC,UAAWA,IAEvF,OAAOr/H,GAOTi/H,EAAO5uH,IAAM,SAAStR,EAAMgnH,EAAU3xD,GACpC,OAAKx5D,KAAK0kI,SACV1kI,KAAK0kI,QAAUH,EAAUY,EAAQnlI,KAAK0kI,QAASvgI,EAAMgnH,EAAU,CAC7D3xD,QAASA,EACT4rE,UAAWplI,KAAK4kI,aAEX5kI,MALmBA,MAU5BqkI,EAAO5xH,cAAgB,SAASnB,EAAKnN,EAAMgnH,GACzC,IAAI4Z,EAAc/kI,KAAKglI,aACvB,IAAKD,EAAa,OAAO/kI,KAIzB,IAFA,IAAI24B,EAAMrnB,EAAM,CAACA,EAAIuzH,WAAatE,EAAE1+G,KAAKkjH,GAEhC36H,EAAI,EAAGA,EAAIuuB,EAAI1xB,OAAQmD,IAAK,CACnC,IAAIq6H,EAAYM,EAAYpsG,EAAIvuB,IAIhC,IAAKq6H,EAAW,MAEhBA,EAAUnzH,IAAImE,IAAItR,EAAMgnH,EAAUnrH,MAGpC,OAAOA,MAIT,IAAImlI,EAAS,SAAS//H,EAAQjB,EAAMgnH,EAAU3oH,GAC5C,GAAK4C,EAAL,CAEA,IAAWq/H,EAAPr6H,EAAI,EACJovD,EAAUh3D,EAAQg3D,QAAS4rE,EAAY5iI,EAAQ4iI,UAGnD,GAAKjhI,GAASgnH,GAAa3xD,EAA3B,CAWA,IADA,IAAIuR,EAAQ5mE,EAAO,CAACA,GAAQo8H,EAAE1+G,KAAKzc,GAC5BgF,EAAI2gE,EAAM9jE,OAAQmD,IAAK,CAE5B,IAAI0kF,EAAW1pF,EADfjB,EAAO4mE,EAAM3gE,IAIb,IAAK0kF,EAAU,MAIf,IADA,IAAIulC,EAAY,GACP7yE,EAAI,EAAGA,EAAIstC,EAAS7nF,OAAQu6C,IAAK,CACxC,IAAI2tC,EAAUL,EAASttC,GAErB2pE,GAAYA,IAAah8B,EAAQg8B,UAC/BA,IAAah8B,EAAQg8B,SAASka,WAC5B7rE,GAAWA,IAAY21B,EAAQ31B,QAEnC66D,EAAUzmH,KAAKuhF,IAEfs1C,EAAYt1C,EAAQs1C,YACmB,KAApBA,EAAUxyC,eACpBmzC,EAAUX,EAAU9+H,WACpB8+H,EAAUM,YAAYN,EAAUS,QAMzC7Q,EAAUptH,OACZ7B,EAAOjB,GAAQkwH,SAERjvH,EAAOjB,GAGlB,OAAOiB,EA1CL,IADA,IAAIuzB,EAAM4nG,EAAE1+G,KAAKujH,GACVh7H,EAAIuuB,EAAI1xB,OAAQmD,WAEdg7H,GADPX,EAAYW,EAAUzsG,EAAIvuB,KACCzE,WACpB8+H,EAAUM,YAAYN,EAAUS,SA8C7Cb,EAAO95G,KAAO,SAASpmB,EAAMgnH,EAAU3xD,GAErC,IAAIp0D,EAASm/H,EAAUe,EAAS,GAAInhI,EAAMgnH,EAAUoV,EAAEl9H,KAAKrD,KAAKyV,IAAKzV,OAErE,MADoB,iBAATmE,GAAgC,MAAXq1D,IAAiB2xD,OAAW,GACrDnrH,KAAK2P,GAAGvK,EAAQ+lH,EAAU3xD,IAInC6qE,EAAOkB,aAAe,SAASj0H,EAAKnN,EAAMgnH,GAExC,IAAI/lH,EAASm/H,EAAUe,EAAS,GAAInhI,EAAMgnH,EAAUoV,EAAEl9H,KAAKrD,KAAKyS,cAAezS,KAAMsR,IACrF,OAAOtR,KAAKgD,SAASsO,EAAKlM,IAK5B,IAAIkgI,EAAU,SAAS5qH,EAAKvW,EAAMgnH,EAAUqa,GAC1C,GAAIra,EAAU,CACZ,IAAI5gG,EAAO7P,EAAIvW,GAAQo8H,EAAEh2G,MAAK,WAC5Bi7G,EAAMrhI,EAAMomB,GACZ4gG,EAASvhE,MAAM5pD,KAAM+jB,cAEvBwG,EAAK86G,UAAYla,EAEnB,OAAOzwG,GAOT2pH,EAAO3/H,QAAU,SAASP,GACxB,IAAKnE,KAAK0kI,QAAS,OAAO1kI,KAI1B,IAFA,IAAIiH,EAASmkB,KAAKC,IAAI,EAAGtH,UAAU9c,OAAS,GACxCi6B,EAAOljB,MAAM/W,GACRmD,EAAI,EAAGA,EAAInD,EAAQmD,IAAK82B,EAAK92B,GAAK2Z,UAAU3Z,EAAI,GAGzD,OADAm6H,EAAUkB,EAAYzlI,KAAK0kI,QAASvgI,OAAM,EAAQ+8B,GAC3ClhC,MAIT,IAAIylI,EAAa,SAASC,EAAWvhI,EAAMgnH,EAAUjqF,GACnD,GAAIwkG,EAAW,CACb,IAAItgI,EAASsgI,EAAUvhI,GACnBwhI,EAAYD,EAAU73H,IACtBzI,GAAUugI,IAAWA,EAAYA,EAAUvlF,SAC3Ch7C,GAAQwgI,EAAcxgI,EAAQ87B,GAC9BykG,GAAWC,EAAcD,EAAW,CAACxhI,GAAMs6B,OAAOyC,IAExD,OAAOwkG,GAMLE,EAAgB,SAASxgI,EAAQ87B,GACnC,IAAI51B,EAAIlB,GAAK,EAAGi3C,EAAIj8C,EAAO6B,OAAQg5C,EAAK/e,EAAK,GAAIgf,EAAKhf,EAAK,GAAI2kG,EAAK3kG,EAAK,GACzE,OAAQA,EAAKj6B,QACX,KAAK,EAAG,OAASmD,EAAIi3C,IAAI/1C,EAAKlG,EAAOgF,IAAI+gH,SAASvmD,KAAKt5D,EAAGgvF,KAAM,OAChE,KAAK,EAAG,OAASlwF,EAAIi3C,IAAI/1C,EAAKlG,EAAOgF,IAAI+gH,SAASvmD,KAAKt5D,EAAGgvF,IAAKr6C,GAAK,OACpE,KAAK,EAAG,OAAS71C,EAAIi3C,IAAI/1C,EAAKlG,EAAOgF,IAAI+gH,SAASvmD,KAAKt5D,EAAGgvF,IAAKr6C,EAAIC,GAAK,OACxE,KAAK,EAAG,OAAS91C,EAAIi3C,IAAI/1C,EAAKlG,EAAOgF,IAAI+gH,SAASvmD,KAAKt5D,EAAGgvF,IAAKr6C,EAAIC,EAAI2lF,GAAK,OAC5E,QAAS,OAASz7H,EAAIi3C,IAAI/1C,EAAKlG,EAAOgF,IAAI+gH,SAASvhE,MAAMt+C,EAAGgvF,IAAKp5D,GAAO,SAK5EmjG,EAAOhhI,KAASghI,EAAO10H,GACvB00H,EAAOz3F,OAASy3F,EAAO5uH,IAIvB8qH,EAAEhoG,OAAOoQ,EAAU07F,GAYnB,IAAIxiI,EAAQ8mC,EAAS9mC,MAAQ,SAASwR,EAAY7Q,GAChD,IAAIq1B,EAAQxkB,GAAc,GAC1B7Q,IAAYA,EAAU,IACtBxC,KAAKm7D,IAAMolE,EAAEuE,SAAS9kI,KAAK8lI,WAC3B9lI,KAAKqT,WAAa,GACd7Q,EAAQC,aAAYzC,KAAKyC,WAAaD,EAAQC,YAC9CD,EAAQqH,QAAOguB,EAAQ73B,KAAK6J,MAAMguB,EAAOr1B,IAAY,IACzD,IAAIiN,EAAW8wH,EAAEt+H,OAAOjC,KAAM,YAC9B63B,EAAQ0oG,EAAE9wH,SAAS8wH,EAAEhoG,OAAO,GAAI9oB,EAAUooB,GAAQpoB,GAClDzP,KAAK2D,IAAIk0B,EAAOr1B,GAChBxC,KAAKo+C,QAAU,GACfp+C,KAAKqhC,WAAWuoB,MAAM5pD,KAAM+jB,YAI9Bw8G,EAAEhoG,OAAO12B,EAAMC,UAAWuiI,EAAQ,CAGhCjmF,QAAS,KAGT2nF,gBAAiB,KAIjBhkI,YAAa,KAIb+jI,UAAW,IAIXzkG,WAAY,aAGZ7J,OAAQ,SAASh1B,GACf,OAAO+9H,EAAE38H,MAAM5D,KAAKqT,aAKtB0uF,KAAM,WACJ,OAAOp5D,EAASo5D,KAAKn4C,MAAM5pD,KAAM+jB,YAInCviB,IAAK,SAASoL,GACZ,OAAO5M,KAAKqT,WAAWzG,IAIzBkyC,OAAQ,SAASlyC,GACf,OAAO2zH,EAAEzhF,OAAO9+C,KAAKwB,IAAIoL,KAK3B40B,IAAK,SAAS50B,GACZ,OAAyB,MAAlB5M,KAAKwB,IAAIoL,IAIlBonB,QAAS,SAAS6D,GAChB,QAAS0oG,EAAEsD,SAAShsG,EAAO73B,KAAlBugI,CAAwBvgI,KAAKqT,aAMxC1P,IAAK,SAAS2yB,EAAKltB,EAAK5G,GACtB,GAAW,MAAP8zB,EAAa,OAAOt2B,KAGxB,IAAI63B,EAWJ,GAVmB,iBAARvB,GACTuB,EAAQvB,EACR9zB,EAAU4G,IAETyuB,EAAQ,IAAIvB,GAAOltB,EAGtB5G,IAAYA,EAAU,KAGjBxC,KAAKylE,UAAU5tC,EAAOr1B,GAAU,OAAO,EAG5C,IAAIuW,EAAavW,EAAQuW,MACrBS,EAAahX,EAAQgX,OACrBwsH,EAAa,GACbC,EAAajmI,KAAKkmI,UACtBlmI,KAAKkmI,WAAY,EAEZD,IACHjmI,KAAKmmI,oBAAsB5F,EAAE38H,MAAM5D,KAAKqT,YACxCrT,KAAKo+C,QAAU,IAGjB,IAAI38B,EAAUzhB,KAAKqT,WACf+qC,EAAUp+C,KAAKo+C,QACf7gC,EAAUvd,KAAKmmI,oBAGnB,IAAK,IAAIv5H,KAAQirB,EACfzuB,EAAMyuB,EAAMjrB,GACP2zH,EAAE6F,QAAQ3kH,EAAQ7U,GAAOxD,IAAM48H,EAAQp4H,KAAKhB,GAC5C2zH,EAAE6F,QAAQ7oH,EAAK3Q,GAAOxD,UAGlBg1C,EAAQxxC,GAFfwxC,EAAQxxC,GAAQxD,EAIlB2P,SAAe0I,EAAQ7U,GAAQ6U,EAAQ7U,GAAQxD,EAOjD,GAHIpJ,KAAK+B,eAAe81B,IAAO73B,KAAK2F,GAAK3F,KAAKwB,IAAIxB,KAAK+B,eAGlDyX,EAAQ,CACPwsH,EAAQ/+H,SAAQjH,KAAKqmI,SAAW7jI,GACpC,IAAK,IAAI4H,EAAI,EAAGA,EAAI47H,EAAQ/+H,OAAQmD,IAClCpK,KAAK0E,QAAQ,UAAYshI,EAAQ57H,GAAIpK,KAAMyhB,EAAQukH,EAAQ57H,IAAK5H,GAMpE,GAAIyjI,EAAU,OAAOjmI,KACrB,IAAKwZ,EACH,KAAOxZ,KAAKqmI,UACV7jI,EAAUxC,KAAKqmI,SACfrmI,KAAKqmI,UAAW,EAChBrmI,KAAK0E,QAAQ,SAAU1E,KAAMwC,GAKjC,OAFAxC,KAAKqmI,UAAW,EAChBrmI,KAAKkmI,WAAY,EACVlmI,MAKT+Y,MAAO,SAASnM,EAAMpK,GACpB,OAAOxC,KAAK2D,IAAIiJ,OAAM,EAAQ2zH,EAAEhoG,OAAO,GAAI/1B,EAAS,CAACuW,OAAO,MAI9DmpB,MAAO,SAAS1/B,GACd,IAAIq1B,EAAQ,GACZ,IAAK,IAAIvB,KAAOt2B,KAAKqT,WAAYwkB,EAAMvB,QAAO,EAC9C,OAAOt2B,KAAK2D,IAAIk0B,EAAO0oG,EAAEhoG,OAAO,GAAI/1B,EAAS,CAACuW,OAAO,MAKvDooE,WAAY,SAASv0E,GACnB,OAAY,MAARA,GAAsB2zH,EAAE/pG,QAAQx2B,KAAKo+C,SAClCmiF,EAAE/+F,IAAIxhC,KAAKo+C,QAASxxC,IAS7B6vC,kBAAmB,SAASyb,GAC1B,IAAKA,EAAM,QAAOl4D,KAAKmhF,cAAeo/C,EAAE38H,MAAM5D,KAAKo+C,SACnD,IAAIkoF,EAAMtmI,KAAKkmI,UAAYlmI,KAAKmmI,oBAAsBnmI,KAAKqT,WACvD+qC,EAAU,GACd,IAAK,IAAIxxC,KAAQsrD,EAAM,CACrB,IAAI9uD,EAAM8uD,EAAKtrD,GACX2zH,EAAE6F,QAAQE,EAAI15H,GAAOxD,KACzBg1C,EAAQxxC,GAAQxD,GAElB,QAAOm3H,EAAE34F,KAAKwW,IAAWA,GAK3B18B,SAAU,SAAS9U,GACjB,OAAY,MAARA,GAAiB5M,KAAKmmI,oBACnBnmI,KAAKmmI,oBAAoBv5H,GADsB,MAMxDm5G,mBAAoB,WAClB,OAAOwa,EAAE38H,MAAM5D,KAAKmmI,sBAKtB17H,MAAO,SAASjI,GACdA,EAAU+9H,EAAEhoG,OAAO,CAAC1uB,OAAO,GAAOrH,GAClC,IAAIS,EAAQjD,KACRumI,EAAU/jI,EAAQ+jI,QAQtB,OAPA/jI,EAAQ+jI,QAAU,SAASC,GACzB,IAAIC,EAAcjkI,EAAQqH,MAAQ5G,EAAM4G,MAAM28H,EAAMhkI,GAAWgkI,EAC/D,IAAKvjI,EAAMU,IAAI8iI,EAAajkI,GAAU,OAAO,EACzC+jI,GAASA,EAAQ3hE,KAAKpiE,EAAQg3D,QAASv2D,EAAOujI,EAAMhkI,GACxDS,EAAMyB,QAAQ,OAAQzB,EAAOujI,EAAMhkI,IAErCkkI,EAAU1mI,KAAMwC,GACTxC,KAAK+hG,KAAK,OAAQ/hG,KAAMwC,IAMjCmkI,KAAM,SAASrwG,EAAKltB,EAAK5G,GAEvB,IAAIq1B,EACO,MAAPvB,GAA8B,iBAARA,GACxBuB,EAAQvB,EACR9zB,EAAU4G,IAETyuB,EAAQ,IAAIvB,GAAOltB,EAItB,IAAIsyE,GADJl5E,EAAU+9H,EAAEhoG,OAAO,CAACquG,UAAU,EAAM/8H,OAAO,GAAOrH,IAC/Bk5E,KAKnB,GAAI7jD,IAAU6jD,GACZ,IAAK17E,KAAK2D,IAAIk0B,EAAOr1B,GAAU,OAAO,OACjC,IAAKxC,KAAKylE,UAAU5tC,EAAOr1B,GAChC,OAAO,EAKT,IAAIS,EAAQjD,KACRumI,EAAU/jI,EAAQ+jI,QAClBlzH,EAAarT,KAAKqT,WACtB7Q,EAAQ+jI,QAAU,SAASC,GAEzBvjI,EAAMoQ,WAAaA,EACnB,IAAIozH,EAAcjkI,EAAQqH,MAAQ5G,EAAM4G,MAAM28H,EAAMhkI,GAAWgkI,EAE/D,GADI9qD,IAAM+qD,EAAclG,EAAEhoG,OAAO,GAAIV,EAAO4uG,IACxCA,IAAgBxjI,EAAMU,IAAI8iI,EAAajkI,GAAU,OAAO,EACxD+jI,GAASA,EAAQ3hE,KAAKpiE,EAAQg3D,QAASv2D,EAAOujI,EAAMhkI,GACxDS,EAAMyB,QAAQ,OAAQzB,EAAOujI,EAAMhkI,IAErCkkI,EAAU1mI,KAAMwC,GAGZq1B,GAAS6jD,IAAM17E,KAAKqT,WAAaktH,EAAEhoG,OAAO,GAAIllB,EAAYwkB,IAE9D,IAAIrtB,EAASxK,KAAK6mI,QAAU,SAAYrkI,EAAQskI,MAAQ,QAAU,SACnD,UAAXt8H,GAAuBhI,EAAQq1B,QAAOr1B,EAAQq1B,MAAQA,GAC1D,IAAIkvG,EAAM/mI,KAAK+hG,KAAKv3F,EAAQxK,KAAMwC,GAKlC,OAFAxC,KAAKqT,WAAaA,EAEX0zH,GAMTv0H,QAAS,SAAShQ,GAChBA,EAAUA,EAAU+9H,EAAE38H,MAAMpB,GAAW,GACvC,IAAIS,EAAQjD,KACRumI,EAAU/jI,EAAQ+jI,QAClB7qD,EAAOl5E,EAAQk5E,KAEflpE,EAAU,WACZvP,EAAMwP,gBACNxP,EAAMyB,QAAQ,UAAWzB,EAAOA,EAAMR,WAAYD,IAGpDA,EAAQ+jI,QAAU,SAASC,GACrB9qD,GAAMlpE,IACN+zH,GAASA,EAAQ3hE,KAAKpiE,EAAQg3D,QAASv2D,EAAOujI,EAAMhkI,GACnDS,EAAM4jI,SAAS5jI,EAAMyB,QAAQ,OAAQzB,EAAOujI,EAAMhkI,IAGzD,IAAIukI,GAAM,EAQV,OAPI/mI,KAAK6mI,QACPtG,EAAEO,MAAMt+H,EAAQ+jI,UAEhBG,EAAU1mI,KAAMwC,GAChBukI,EAAM/mI,KAAK+hG,KAAK,SAAU/hG,KAAMwC,IAE7Bk5E,GAAMlpE,IACJu0H,GAMTvgI,IAAK,WACH,IAAIwgI,EACFzG,EAAEt+H,OAAOjC,KAAM,YACfugI,EAAEt+H,OAAOjC,KAAKyC,WAAY,QAC1BwkI,IACF,GAAIjnI,KAAK6mI,QAAS,OAAOG,EACzB,IAAIrhI,EAAK3F,KAAKwB,IAAIxB,KAAK+B,aACvB,OAAOilI,EAAKj7H,QAAQ,SAAU,OAASklH,mBAAmBtrH,IAK5DkE,MAAO,SAAS28H,EAAMhkI,GACpB,OAAOgkI,GAIT5iI,MAAO,WACL,OAAO,IAAI5D,KAAKgJ,YAAYhJ,KAAKqT,aAInCwzH,MAAO,WACL,OAAQ7mI,KAAKwhC,IAAIxhC,KAAK+B,cAIxBorE,QAAS,SAAS3qE,GAChB,OAAOxC,KAAKylE,UAAU,GAAI86D,EAAEhoG,OAAO,GAAI/1B,EAAS,CAACokI,UAAU,MAK7DnhE,UAAW,SAAS5tC,EAAOr1B,GACzB,IAAKA,EAAQokI,WAAa5mI,KAAK4mI,SAAU,OAAO,EAChD/uG,EAAQ0oG,EAAEhoG,OAAO,GAAIv4B,KAAKqT,WAAYwkB,GACtC,IAAItuB,EAAQvJ,KAAK+lI,gBAAkB/lI,KAAK4mI,SAAS/uG,EAAOr1B,IAAY,KACpE,OAAK+G,IACLvJ,KAAK0E,QAAQ,UAAW1E,KAAMuJ,EAAOg3H,EAAEhoG,OAAO/1B,EAAS,CAACujI,gBAAiBx8H,MAClE,MAWXw6H,EAAqBliI,EAJF,CAACggB,KAAM,EAAGstF,OAAQ,EAAG+3B,MAAO,EAAGC,OAAQ,EAAGhF,KAAM,EAC/DiF,KAAM,EAAGC,MAAO,EAAG7wG,QAAS,GAGU,cAe1C,IAAIhxB,EAAamjC,EAASnjC,WAAa,SAAS8K,EAAQ9N,GACtDA,IAAYA,EAAU,IAClBA,EAAQS,QAAOjD,KAAKiD,MAAQT,EAAQS,YACb,IAAvBT,EAAQypH,aAAuBjsH,KAAKisH,WAAazpH,EAAQypH,YAC7DjsH,KAAKsnI,SACLtnI,KAAKqhC,WAAWuoB,MAAM5pD,KAAM+jB,WACxBzT,GAAQtQ,KAAKyR,MAAMnB,EAAQiwH,EAAEhoG,OAAO,CAAC/e,QAAQ,GAAOhX,KAItDuhC,EAAa,CAACl9B,KAAK,EAAM3D,QAAQ,EAAM+/H,OAAO,GAC9CsE,EAAa,CAAC1gI,KAAK,EAAM3D,QAAQ,GAGjCgzB,EAAS,SAASgmB,EAAOsrF,EAAQ1gI,GACnCA,EAAKskB,KAAKE,IAAIF,KAAKC,IAAIvkB,EAAI,GAAIo1C,EAAMj1C,QACrC,IAEImD,EAFA+9F,EAAOnqF,MAAMk+B,EAAMj1C,OAASH,GAC5BG,EAASugI,EAAOvgI,OAEpB,IAAKmD,EAAI,EAAGA,EAAI+9F,EAAKlhG,OAAQmD,IAAK+9F,EAAK/9F,GAAK8xC,EAAM9xC,EAAItD,GACtD,IAAKsD,EAAI,EAAGA,EAAInD,EAAQmD,IAAK8xC,EAAM9xC,EAAItD,GAAM0gI,EAAOp9H,GACpD,IAAKA,EAAI,EAAGA,EAAI+9F,EAAKlhG,OAAQmD,IAAK8xC,EAAM9xC,EAAInD,EAASH,GAAMqhG,EAAK/9F,IAIlEm2H,EAAEhoG,OAAO/yB,EAAW1D,UAAWuiI,EAAQ,CAIrCphI,MAAOpB,EAIPw/B,WAAY,aAIZ7J,OAAQ,SAASh1B,GACf,OAAOxC,KAAK0a,KAAI,SAASzX,GAAS,OAAOA,EAAMu0B,OAAOh1B,OAIxDu/F,KAAM,WACJ,OAAOp5D,EAASo5D,KAAKn4C,MAAM5pD,KAAM+jB,YAMnCld,IAAK,SAASyJ,EAAQ9N,GACpB,OAAOxC,KAAK2D,IAAI2M,EAAQiwH,EAAEhoG,OAAO,CAAC0qG,OAAO,GAAQzgI,EAAS+kI,KAI5DrkI,OAAQ,SAASoN,EAAQ9N,GACvBA,EAAU+9H,EAAEhoG,OAAO,GAAI/1B,GACvB,IAAIilI,GAAYlH,EAAEvlH,QAAQ1K,GAC1BA,EAASm3H,EAAW,CAACn3H,GAAUA,EAAO8vC,QACtC,IAAIvpB,EAAU72B,KAAK0nI,cAAcp3H,EAAQ9N,GAKzC,OAJKA,EAAQgX,QAAUqd,EAAQ5vB,SAC7BzE,EAAQwjI,QAAU,CAAC72F,MAAO,GAAIw4F,OAAQ,GAAI9wG,QAASA,GACnD72B,KAAK0E,QAAQ,SAAU1E,KAAMwC,IAExBilI,EAAW5wG,EAAQ,GAAKA,GAOjClzB,IAAK,SAAS2M,EAAQ9N,GACpB,GAAc,MAAV8N,EAAJ,EAEA9N,EAAU+9H,EAAEhoG,OAAO,GAAIwL,EAAYvhC,IACvBqH,QAAU7J,KAAKkkI,SAAS5zH,KAClCA,EAAStQ,KAAK6J,MAAMyG,EAAQ9N,IAAY,IAG1C,IAAIilI,GAAYlH,EAAEvlH,QAAQ1K,GAC1BA,EAASm3H,EAAW,CAACn3H,GAAUA,EAAO8vC,QAEtC,IAAIt5C,EAAKtE,EAAQsE,GACP,MAANA,IAAYA,GAAMA,GAClBA,EAAK9G,KAAKiH,SAAQH,EAAK9G,KAAKiH,QAC5BH,EAAK,IAAGA,GAAM9G,KAAKiH,OAAS,GAEhC,IAgBIhE,EAAOmH,EAhBPzG,EAAM,GACN6d,EAAQ,GACRomH,EAAU,GACVrmH,EAAW,GACXsmH,EAAW,GAEXhhI,EAAMrE,EAAQqE,IACdo8H,EAAQzgI,EAAQygI,MAChB//H,EAASV,EAAQU,OAEjB4e,GAAO,EACPovE,EAAWlxF,KAAKisH,YAAoB,MAANnlH,IAA+B,IAAjBtE,EAAQsf,KACpDgmH,EAAWvH,EAAErnH,SAASlZ,KAAKisH,YAAcjsH,KAAKisH,WAAa,KAK/D,IAAK7hH,EAAI,EAAGA,EAAIkG,EAAOrJ,OAAQmD,IAAK,CAClCnH,EAAQqN,EAAOlG,GAIf,IAAI29H,EAAW/nI,KAAKwB,IAAIyB,GACxB,GAAI8kI,EAAU,CACZ,GAAI9E,GAAShgI,IAAU8kI,EAAU,CAC/B,IAAIlwG,EAAQ73B,KAAKkkI,SAASjhI,GAASA,EAAMoQ,WAAapQ,EAClDT,EAAQqH,QAAOguB,EAAQkwG,EAASl+H,MAAMguB,EAAOr1B,IACjDulI,EAASpkI,IAAIk0B,EAAOr1B,GACpBolI,EAAQh6H,KAAKm6H,GACT72C,IAAapvE,IAAMA,EAAOimH,EAAS5mD,WAAW2mD,IAE/CD,EAASE,EAAS5sE,OACrB0sE,EAASE,EAAS5sE,MAAO,EACzBx3D,EAAIiK,KAAKm6H,IAEXz3H,EAAOlG,GAAK29H,OAGHlhI,IACT5D,EAAQqN,EAAOlG,GAAKpK,KAAKgoI,cAAc/kI,EAAOT,MAE5Cgf,EAAM5T,KAAK3K,GACXjD,KAAKioI,cAAchlI,EAAOT,GAC1BqlI,EAAS5kI,EAAMk4D,MAAO,EACtBx3D,EAAIiK,KAAK3K,IAMf,GAAIC,EAAQ,CACV,IAAKkH,EAAI,EAAGA,EAAIpK,KAAKiH,OAAQmD,IAEtBy9H,GADL5kI,EAAQjD,KAAKsQ,OAAOlG,IACA+wD,MAAM55C,EAAS3T,KAAK3K,GAEtCse,EAASta,QAAQjH,KAAK0nI,cAAcnmH,EAAU/e,GAIpD,IAAI0lI,GAAe,EACfn8H,GAAWmlF,GAAYrqF,GAAO3D,EAkBlC,GAjBIS,EAAIsD,QAAU8E,GAChBm8H,EAAeloI,KAAKiH,SAAWtD,EAAIsD,QAAUs5H,EAAEp+G,KAAKniB,KAAKsQ,QAAQ,SAAS6B,EAAGsd,GAC3E,OAAOtd,IAAMxO,EAAI8rB,MAEnBzvB,KAAKsQ,OAAOrJ,OAAS,EACrBivB,EAAOl2B,KAAKsQ,OAAQ3M,EAAK,GACzB3D,KAAKiH,OAASjH,KAAKsQ,OAAOrJ,QACjBua,EAAMva,SACXiqF,IAAUpvE,GAAO,GACrBoU,EAAOl2B,KAAKsQ,OAAQkR,EAAa,MAAN1a,EAAa9G,KAAKiH,OAASH,GACtD9G,KAAKiH,OAASjH,KAAKsQ,OAAOrJ,QAIxB6a,GAAM9hB,KAAK8hB,KAAK,CAACtI,QAAQ,KAGxBhX,EAAQgX,OAAQ,CACnB,IAAKpP,EAAI,EAAGA,EAAIoX,EAAMva,OAAQmD,IAClB,MAANtD,IAAYtE,EAAQitB,MAAQ3oB,EAAKsD,IACrCnH,EAAQue,EAAMpX,IACR1F,QAAQ,MAAOzB,EAAOjD,KAAMwC,IAEhCsf,GAAQomH,IAAcloI,KAAK0E,QAAQ,OAAQ1E,KAAMwC,IACjDgf,EAAMva,QAAUsa,EAASta,QAAU2gI,EAAQ3gI,UAC7CzE,EAAQwjI,QAAU,CAChB72F,MAAO3tB,EACPqV,QAAStV,EACTomH,OAAQC,GAEV5nI,KAAK0E,QAAQ,SAAU1E,KAAMwC,IAKjC,OAAOilI,EAAWn3H,EAAO,GAAKA,IAOhCmB,MAAO,SAASnB,EAAQ9N,GACtBA,EAAUA,EAAU+9H,EAAE38H,MAAMpB,GAAW,GACvC,IAAK,IAAI4H,EAAI,EAAGA,EAAIpK,KAAKsQ,OAAOrJ,OAAQmD,IACtCpK,KAAKmoI,iBAAiBnoI,KAAKsQ,OAAOlG,GAAI5H,GAMxC,OAJAA,EAAQm0B,eAAiB32B,KAAKsQ,OAC9BtQ,KAAKsnI,SACLh3H,EAAStQ,KAAK6G,IAAIyJ,EAAQiwH,EAAEhoG,OAAO,CAAC/e,QAAQ,GAAOhX,IAC9CA,EAAQgX,QAAQxZ,KAAK0E,QAAQ,QAAS1E,KAAMwC,GAC1C8N,GAIT1C,KAAM,SAAS3K,EAAOT,GACpB,OAAOxC,KAAK6G,IAAI5D,EAAOs9H,EAAEhoG,OAAO,CAACzxB,GAAI9G,KAAKiH,QAASzE,KAIrDd,IAAK,SAASc,GACZ,IAAIS,EAAQjD,KAAK8G,GAAG9G,KAAKiH,OAAS,GAClC,OAAOjH,KAAKkD,OAAOD,EAAOT,IAI5BuhD,QAAS,SAAS9gD,EAAOT,GACvB,OAAOxC,KAAK6G,IAAI5D,EAAOs9H,EAAEhoG,OAAO,CAACzxB,GAAI,GAAItE,KAI3Cb,MAAO,SAASa,GACd,IAAIS,EAAQjD,KAAK8G,GAAG,GACpB,OAAO9G,KAAKkD,OAAOD,EAAOT,IAI5B49C,MAAO,WACL,OAAOA,EAAMwJ,MAAM5pD,KAAKsQ,OAAQyT,YAKlCviB,IAAK,SAAS8P,GACZ,GAAW,MAAPA,EACJ,OAAOtR,KAAKooI,MAAM92H,IAChBtR,KAAKooI,MAAMpoI,KAAKqoI,QAAQ/2H,EAAI+B,YAAc/B,KAC1CA,EAAI6pD,KAAOn7D,KAAKooI,MAAM92H,EAAI6pD,MAI9B35B,IAAK,SAASlwB,GACZ,OAAwB,MAAjBtR,KAAKwB,IAAI8P,IAIlBxK,GAAI,SAAS2oB,GAEX,OADIA,EAAQ,IAAGA,GAASzvB,KAAKiH,QACtBjH,KAAKsQ,OAAOmf,IAKrB5e,MAAO,SAASgnB,EAAO9c,GACrB,OAAO/a,KAAK+a,EAAQ,OAAS,UAAU8c,IAKzCywG,UAAW,SAASzwG,GAClB,OAAO73B,KAAK6Q,MAAMgnB,GAAO,IAM3B/V,KAAM,SAAStf,GACb,IAAIypH,EAAajsH,KAAKisH,WACtB,IAAKA,EAAY,MAAM,IAAIn+G,MAAM,0CACjCtL,IAAYA,EAAU,IAEtB,IAAIyE,EAASglH,EAAWhlH,OAUxB,OATIs5H,EAAE17H,WAAWonH,KAAaA,EAAasU,EAAEl9H,KAAK4oH,EAAYjsH,OAG/C,IAAXiH,GAAgBs5H,EAAErnH,SAAS+yG,GAC7BjsH,KAAKsQ,OAAStQ,KAAKuoI,OAAOtc,GAE1BjsH,KAAKsQ,OAAOwR,KAAKmqG,GAEdzpH,EAAQgX,QAAQxZ,KAAK0E,QAAQ,OAAQ1E,KAAMwC,GACzCxC,MAIT6jD,MAAO,SAASj3C,GACd,OAAO5M,KAAK0a,IAAI9N,EAAO,KAMzBnC,MAAO,SAASjI,GAEd,IAAI+jI,GADJ/jI,EAAU+9H,EAAEhoG,OAAO,CAAC1uB,OAAO,GAAOrH,IACZ+jI,QAClB9jI,EAAazC,KAQjB,OAPAwC,EAAQ+jI,QAAU,SAASC,GACzB,IAAIh8H,EAAShI,EAAQiP,MAAQ,QAAU,MACvChP,EAAW+H,GAAQg8H,EAAMhkI,GACrB+jI,GAASA,EAAQ3hE,KAAKpiE,EAAQg3D,QAAS/2D,EAAY+jI,EAAMhkI,GAC7DC,EAAWiC,QAAQ,OAAQjC,EAAY+jI,EAAMhkI,IAE/CkkI,EAAU1mI,KAAMwC,GACTxC,KAAK+hG,KAAK,OAAQ/hG,KAAMwC,IAMjCw/B,OAAQ,SAAS/+B,EAAOT,GAEtB,IAAIk5E,GADJl5E,EAAUA,EAAU+9H,EAAE38H,MAAMpB,GAAW,IACpBk5E,KAEnB,KADAz4E,EAAQjD,KAAKgoI,cAAc/kI,EAAOT,IACtB,OAAO,EACdk5E,GAAM17E,KAAK6G,IAAI5D,EAAOT,GAC3B,IAAIC,EAAazC,KACbumI,EAAU/jI,EAAQ+jI,QAMtB,OALA/jI,EAAQ+jI,QAAU,SAASp0H,EAAGq0H,EAAMgC,GAC9B9sD,GAAMj5E,EAAWoE,IAAIsL,EAAGq2H,GACxBjC,GAASA,EAAQ3hE,KAAK4jE,EAAahvE,QAASrnD,EAAGq0H,EAAMgC,IAE3DvlI,EAAM0jI,KAAK,KAAMnkI,GACVS,GAKT4G,MAAO,SAAS28H,EAAMhkI,GACpB,OAAOgkI,GAIT5iI,MAAO,WACL,OAAO,IAAI5D,KAAKgJ,YAAYhJ,KAAKsQ,OAAQ,CACvCrN,MAAOjD,KAAKiD,MACZgpH,WAAYjsH,KAAKisH,cAKrBoc,QAAS,SAASxwG,GAChB,OAAOA,EAAM73B,KAAKiD,MAAMnB,UAAUC,aAAe,OAKnDulI,OAAQ,WACNtnI,KAAKiH,OAAS,EACdjH,KAAKsQ,OAAS,GACdtQ,KAAKooI,MAAS,IAKhBJ,cAAe,SAASnwG,EAAOr1B,GAC7B,GAAIxC,KAAKkkI,SAASrsG,GAEhB,OADKA,EAAMp1B,aAAYo1B,EAAMp1B,WAAazC,MACnC63B,GAETr1B,EAAUA,EAAU+9H,EAAE38H,MAAMpB,GAAW,IAC/BC,WAAazC,KACrB,IAAIiD,EAAQ,IAAIjD,KAAKiD,MAAM40B,EAAOr1B,GAClC,OAAKS,EAAM8iI,iBACX/lI,KAAK0E,QAAQ,UAAW1E,KAAMiD,EAAM8iI,gBAAiBvjI,IAC9C,GAF4BS,GAMrCykI,cAAe,SAASp3H,EAAQ9N,GAE9B,IADA,IAAIq0B,EAAU,GACLzsB,EAAI,EAAGA,EAAIkG,EAAOrJ,OAAQmD,IAAK,CACtC,IAAInH,EAAQjD,KAAKwB,IAAI8O,EAAOlG,IAC5B,GAAKnH,EAAL,CAEA,IAAIwsB,EAAQzvB,KAAK2U,QAAQ1R,GACzBjD,KAAKsQ,OAAO4lB,OAAOzG,EAAO,GAC1BzvB,KAAKiH,gBAIEjH,KAAKooI,MAAMnlI,EAAMk4D,KACxB,IAAIx1D,EAAK3F,KAAKqoI,QAAQplI,EAAMoQ,YAClB,MAAN1N,UAAmB3F,KAAKooI,MAAMziI,GAE7BnD,EAAQgX,SACXhX,EAAQitB,MAAQA,EAChBxsB,EAAMyB,QAAQ,SAAUzB,EAAOjD,KAAMwC,IAGvCq0B,EAAQjpB,KAAK3K,GACbjD,KAAKmoI,iBAAiBllI,EAAOT,IAE/B,OAAOq0B,GAKTqtG,SAAU,SAASjhI,GACjB,OAAOA,aAAiBpB,GAI1BomI,cAAe,SAAShlI,EAAOT,GAC7BxC,KAAKooI,MAAMnlI,EAAMk4D,KAAOl4D,EACxB,IAAI0C,EAAK3F,KAAKqoI,QAAQplI,EAAMoQ,YAClB,MAAN1N,IAAY3F,KAAKooI,MAAMziI,GAAM1C,GACjCA,EAAM0M,GAAG,MAAO3P,KAAKyoI,cAAezoI,OAItCmoI,iBAAkB,SAASllI,EAAOT,UACzBxC,KAAKooI,MAAMnlI,EAAMk4D,KACxB,IAAIx1D,EAAK3F,KAAKqoI,QAAQplI,EAAMoQ,YAClB,MAAN1N,UAAmB3F,KAAKooI,MAAMziI,GAC9B3F,OAASiD,EAAMR,mBAAmBQ,EAAMR,WAC5CQ,EAAMwS,IAAI,MAAOzV,KAAKyoI,cAAezoI,OAOvCyoI,cAAe,SAASn7H,EAAOrK,EAAOR,EAAYD,GAChD,GAAIS,EAAO,CACT,IAAe,QAAVqK,GAA6B,WAAVA,IAAuB7K,IAAezC,KAAM,OAEpE,GADc,YAAVsN,GAAqBtN,KAAKkD,OAAOD,EAAOT,GAC9B,WAAV8K,EAAoB,CACtB,IAAIooB,EAAS11B,KAAKqoI,QAAQplI,EAAM8iH,sBAC5BpgH,EAAK3F,KAAKqoI,QAAQplI,EAAMoQ,YACxBqiB,IAAW/vB,IACC,MAAV+vB,UAAuB11B,KAAKooI,MAAM1yG,GAC5B,MAAN/vB,IAAY3F,KAAKooI,MAAMziI,GAAM1C,KAIvCjD,KAAK0E,QAAQklD,MAAM5pD,KAAM+jB,cAkB7BggH,EAAqBv+H,EAVG,CAACiH,QAAS,EAAGrE,KAAM,EAAGsS,IAAK,EAAGguH,QAAS,EAAGtsF,OAAQ,EACtEusF,MAAO,EAAGC,OAAQ,EAAGC,YAAa,EAAGC,MAAO,EAAGhhI,KAAM,EAAGihI,OAAQ,EAAG/yG,OAAQ,EAC3E1xB,OAAQ,EAAGuG,OAAQ,EAAGi0B,MAAO,EAAGjxB,IAAK,EAAGsU,KAAM,EAAG6mH,IAAK,EAAGC,QAAS,EAAG7oG,SAAU,EAC/EmP,SAAU,EAAG25F,OAAQ,EAAG79G,IAAK,EAAGC,IAAK,EAAG69G,QAAS,EAAGvhG,KAAM,EAAG7sB,MAAO,EACpE8K,KAAM,EAAGujH,KAAM,EAAG3pD,QAAS,EAAGpsB,KAAM,EAAG80C,KAAM,EAAGkhC,KAAM,EAAGne,KAAM,EAC/Doe,QAAS,EAAGC,WAAY,EAAG50H,QAAS,EAAG60H,QAAS,EAAGn7B,YAAa,EAChE73E,QAAS,EAAG6wG,MAAO,EAAGoC,OAAQ,EAAGC,UAAW,EAAGC,QAAS,EAAGC,QAAS,EACpErB,OAAQ,EAAGsB,QAAS,EAAGC,UAAW,EAAGC,cAAe,GAGJ,UAepD,IAAI/lI,EAAO2kC,EAAS3kC,KAAO,SAASxB,GAClCxC,KAAKm7D,IAAMolE,EAAEuE,SAAS,QACtBvE,EAAEhoG,OAAOv4B,KAAMugI,EAAE4B,KAAK3/H,EAASwnI,IAC/BhqI,KAAKykE,iBACLzkE,KAAKqhC,WAAWuoB,MAAM5pD,KAAM+jB,YAI1BkmH,EAAwB,iBAGxBD,EAAc,CAAC,QAAS,aAAc,KAAM,KAAM,aAAc,YAAa,UAAW,UAG5FzJ,EAAEhoG,OAAOv0B,EAAKlC,UAAWuiI,EAAQ,CAG/Bz9G,QAAS,MAIT8hB,EAAG,SAASrK,GACV,OAAOr+B,KAAK2E,IAAImD,KAAKu2B,IAKvBgD,WAAY,aAKZ75B,OAAQ,WACN,OAAOxH,MAKTkD,OAAQ,WAGN,OAFAlD,KAAKkqI,iBACLlqI,KAAKyS,gBACEzS,MAMTkqI,eAAgB,WACdlqI,KAAK2E,IAAIzB,UAKX64B,WAAY,SAAS9K,GAInB,OAHAjxB,KAAKmqI,mBACLnqI,KAAKoqI,YAAYn5G,GACjBjxB,KAAKiJ,iBACEjJ,MAQToqI,YAAa,SAASvmI,GACpB7D,KAAK2E,IAAMd,aAAc8kC,EAASD,EAAI7kC,EAAK8kC,EAASD,EAAE7kC,GACtD7D,KAAK6D,GAAK7D,KAAK2E,IAAI,IAgBrBsE,eAAgB,SAAS7D,GAEvB,GADAA,IAAWA,EAASm7H,EAAEt+H,OAAOjC,KAAM,YAC9BoF,EAAQ,OAAOpF,KAEpB,IAAK,IAAIs2B,KADTt2B,KAAKmqI,mBACW/kI,EAAQ,CACtB,IAAIoF,EAASpF,EAAOkxB,GAEpB,GADKiqG,EAAE17H,WAAW2F,KAASA,EAASxK,KAAKwK,IACpCA,EAAL,CACA,IAAI+C,EAAQ+oB,EAAI/oB,MAAM08H,GACtBjqI,KAAKmqD,SAAS58C,EAAM,GAAIA,EAAM,GAAIgzH,EAAEl9H,KAAKmH,EAAQxK,QAEnD,OAAOA,MAMTmqD,SAAU,SAAS+kE,EAAW7wF,EAAUgsG,GAEtC,OADArqI,KAAK2E,IAAIgL,GAAGu/G,EAAY,kBAAoBlvH,KAAKm7D,IAAK98B,EAAUgsG,GACzDrqI,MAMTmqI,iBAAkB,WAEhB,OADInqI,KAAK2E,KAAK3E,KAAK2E,IAAI8Q,IAAI,kBAAoBzV,KAAKm7D,KAC7Cn7D,MAKTsqI,WAAY,SAASpb,EAAW7wF,EAAUgsG,GAExC,OADArqI,KAAK2E,IAAI8Q,IAAIy5G,EAAY,kBAAoBlvH,KAAKm7D,IAAK98B,EAAUgsG,GAC1DrqI,MAKT+vD,eAAgB,SAASnpC,GACvB,OAAO1e,SAAS0lB,cAAchH,IAOhC69C,eAAgB,WACd,GAAKzkE,KAAK6D,GAOR7D,KAAK+7B,WAAWwkG,EAAEt+H,OAAOjC,KAAM,WAPnB,CACZ,IAAI63B,EAAQ0oG,EAAEhoG,OAAO,GAAIgoG,EAAEt+H,OAAOjC,KAAM,eACpCA,KAAK2F,KAAIkyB,EAAMlyB,GAAK46H,EAAEt+H,OAAOjC,KAAM,OACnCA,KAAK+C,YAAW80B,EAAa,MAAI0oG,EAAEt+H,OAAOjC,KAAM,cACpDA,KAAK+7B,WAAW/7B,KAAK+vD,eAAewwE,EAAEt+H,OAAOjC,KAAM,aACnDA,KAAKiwD,eAAep4B,KAQxBo4B,eAAgB,SAAS58C,GACvBrT,KAAK2E,IAAIiI,KAAKyG,MAuBlBs1B,EAASo5D,KAAO,SAASv3F,EAAQvH,EAAOT,GACtC,IAAIlB,EAAOipI,EAAU//H,GAGrB+1H,EAAE9wH,SAASjN,IAAYA,EAAU,IAAK,CACpCihI,YAAa96F,EAAS86F,YACtBC,YAAa/6F,EAAS+6F,cAIxB,IAAInjI,EAAS,CAACe,KAAMA,EAAMkpI,SAAU,QAqBpC,GAlBKhoI,EAAQgE,MACXjG,EAAOiG,IAAM+5H,EAAEt+H,OAAOgB,EAAO,QAAUgkI,KAIrB,MAAhBzkI,EAAQsH,OAAgB7G,GAAqB,WAAXuH,GAAkC,WAAXA,GAAkC,UAAXA,IAClFjK,EAAOkqI,YAAc,mBACrBlqI,EAAOuJ,KAAOF,KAAKqkB,UAAUzrB,EAAQq1B,OAAS50B,EAAMu0B,OAAOh1B,KAIzDA,EAAQkhI,cACVnjI,EAAOkqI,YAAc,oCACrBlqI,EAAOuJ,KAAOvJ,EAAOuJ,KAAO,CAAC7G,MAAO1C,EAAOuJ,MAAQ,IAKjDtH,EAAQihI,cAAyB,QAATniI,GAA2B,WAATA,GAA8B,UAATA,GAAmB,CACpFf,EAAOe,KAAO,OACVkB,EAAQkhI,cAAanjI,EAAOuJ,KAAK4gI,QAAUppI,GAC/C,IAAIqpI,EAAanoI,EAAQmoI,WACzBnoI,EAAQmoI,WAAa,SAAS5D,GAE5B,GADAA,EAAInR,iBAAiB,yBAA0Bt0H,GAC3CqpI,EAAY,OAAOA,EAAW/gF,MAAM5pD,KAAM+jB,YAK9B,QAAhBxjB,EAAOe,MAAmBkB,EAAQkhI,cACpCnjI,EAAOqqI,aAAc,GAIvB,IAAIrhI,EAAQ/G,EAAQ+G,MACpB/G,EAAQ+G,MAAQ,SAASw9H,EAAK8D,EAAYC,GACxCtoI,EAAQqoI,WAAaA,EACrBroI,EAAQsoI,YAAcA,EAClBvhI,GAAOA,EAAMq7D,KAAKpiE,EAAQg3D,QAASutE,EAAK8D,EAAYC,IAI1D,IAAI/D,EAAMvkI,EAAQukI,IAAMp+F,EAASoiG,KAAKxK,EAAEhoG,OAAOh4B,EAAQiC,IAEvD,OADAS,EAAMyB,QAAQ,UAAWzB,EAAO8jI,EAAKvkI,GAC9BukI,GAIT,IAAIwD,EAAY,CACd,OAAU,OACV,OAAU,MACV,MAAS,QACT,OAAU,SACV,KAAQ,OAKV5hG,EAASoiG,KAAO,WACd,OAAOpiG,EAASD,EAAEqiG,KAAKnhF,MAAMjhB,EAASD,EAAG3kB,YAQ3C,IAAIinH,EAASriG,EAASqiG,OAAS,SAASxoI,GACtCA,IAAYA,EAAU,IAClBA,EAAQyoI,SAAQjrI,KAAKirI,OAASzoI,EAAQyoI,QAC1CjrI,KAAKkrI,cACLlrI,KAAKqhC,WAAWuoB,MAAM5pD,KAAM+jB,YAK1BonH,EAAgB,aAChBC,EAAgB,eAChBC,EAAgB,SAChB/0E,EAAgB,2BAGpBiqE,EAAEhoG,OAAOyyG,EAAOlpI,UAAWuiI,EAAQ,CAIjChjG,WAAY,aAQZiqG,MAAO,SAASA,EAAOnnI,EAAMgnH,GACtBoV,EAAEgL,SAASD,KAAQA,EAAQtrI,KAAKwrI,eAAeF,IAChD/K,EAAE17H,WAAWV,KACfgnH,EAAWhnH,EACXA,EAAO,IAEJgnH,IAAUA,EAAWnrH,KAAKmE,IAC/B,IAAIsnI,EAASzrI,KASb,OARA2oC,EAAS+iG,QAAQJ,MAAMA,GAAO,SAASjkI,GACrC,IAAI65B,EAAOuqG,EAAOE,mBAAmBL,EAAOjkI,IACC,IAAzCokI,EAAOG,QAAQzgB,EAAUjqF,EAAM/8B,KACjCsnI,EAAO/mI,QAAQklD,MAAM6hF,EAAQ,CAAC,SAAWtnI,GAAMs6B,OAAOyC,IACtDuqG,EAAO/mI,QAAQ,QAASP,EAAM+8B,GAC9ByH,EAAS+iG,QAAQhnI,QAAQ,QAAS+mI,EAAQtnI,EAAM+8B,OAG7ClhC,MAKT4rI,QAAS,SAASzgB,EAAUjqF,EAAM/8B,GAC5BgnH,GAAUA,EAASvhE,MAAM5pD,KAAMkhC,IAIrC2qG,SAAU,SAASxkI,EAAU7E,GAE3B,OADAmmC,EAAS+iG,QAAQG,SAASxkI,EAAU7E,GAC7BxC,MAMTkrI,YAAa,WACX,GAAKlrI,KAAKirI,OAAV,CACAjrI,KAAKirI,OAAS1K,EAAEt+H,OAAOjC,KAAM,UAE7B,IADA,IAAIsrI,EAAOL,EAAS1K,EAAE1+G,KAAK7hB,KAAKirI,QACC,OAAzBK,EAAQL,EAAOvpI,QACrB1B,KAAKsrI,MAAMA,EAAOtrI,KAAKirI,OAAOK,MAMlCE,eAAgB,SAASF,GAOvB,OANAA,EAAQA,EAAMv/H,QAAQuqD,EAAc,QACtBvqD,QAAQo/H,EAAe,WACvBp/H,QAAQq/H,GAAY,SAAS79H,EAAOu+H,GACnC,OAAOA,EAAWv+H,EAAQ,cAE3BxB,QAAQs/H,EAAY,YAC3B,IAAIxsE,OAAO,IAAMysE,EAAQ,yBAMlCK,mBAAoB,SAASL,EAAOjkI,GAClC,IAAI9G,EAAS+qI,EAAM99H,KAAKnG,GAAU+4C,MAAM,GACxC,OAAOmgF,EAAE7lH,IAAIna,GAAQ,SAAS4J,EAAOC,GAEnC,OAAIA,IAAM7J,EAAO0G,OAAS,EAAUkD,GAAS,KACtCA,EAAQi9C,mBAAmBj9C,GAAS,WAcjD,IAAI4hI,EAAUpjG,EAASojG,QAAU,WAC/B/rI,KAAK8uF,SAAW,GAChB9uF,KAAKgsI,SAAWzL,EAAEl9H,KAAKrD,KAAKgsI,SAAUhsI,MAGhB,oBAAXD,SACTC,KAAKisI,SAAWlsI,OAAOksI,SACvBjsI,KAAK0rI,QAAU3rI,OAAO2rI,UAKtBQ,EAAgB,eAGhBC,EAAe,aAGfC,EAAe,OAGnBL,EAAQM,SAAU,EAGlB9L,EAAEhoG,OAAOwzG,EAAQjqI,UAAWuiI,EAAQ,CAIlCiI,SAAU,GAGVC,OAAQ,WAEN,OADWvsI,KAAKisI,SAAS3kF,SAASv7C,QAAQ,SAAU,SACpC/L,KAAKR,OAASQ,KAAKwsI,aAIrCC,UAAW,WAGT,OAFWzsI,KAAK0sI,eAAe1sI,KAAKisI,SAAS3kF,UACzBlH,MAAM,EAAGpgD,KAAKR,KAAKyH,OAAS,GAAK,MACjCjH,KAAKR,MAM3BktI,eAAgB,SAASrlI,GACvB,OAAOslI,UAAUtlI,EAAS0E,QAAQ,OAAQ,WAK5CygI,UAAW,WACT,IAAIj/H,EAAQvN,KAAKisI,SAASvrH,KAAK3U,QAAQ,MAAO,IAAIwB,MAAM,QACxD,OAAOA,EAAQA,EAAM,GAAK,IAK5Bq/H,QAAS,SAAS7sI,GAChB,IAAIwN,GAASxN,GAAUC,MAAMisI,SAASvrH,KAAKnT,MAAM,UACjD,OAAOA,EAAQA,EAAM,GAAK,IAI5Bs/H,QAAS,WACP,IAAIC,EAAO9sI,KAAK0sI,eACd1sI,KAAKisI,SAAS3kF,SAAWtnD,KAAKwsI,aAC9BpsF,MAAMpgD,KAAKR,KAAKyH,OAAS,GAC3B,MAA0B,MAAnB6lI,EAAKn9E,OAAO,GAAam9E,EAAK1sF,MAAM,GAAK0sF,GAIlDC,YAAa,SAAS1lI,GAQpB,OAPgB,MAAZA,IAEAA,EADErH,KAAKgtI,gBAAkBhtI,KAAKitI,iBACnBjtI,KAAK6sI,UAEL7sI,KAAK4sI,WAGbvlI,EAAS0E,QAAQmgI,EAAe,KAKzChkH,MAAO,SAAS1lB,GACd,GAAIupI,EAAQM,QAAS,MAAM,IAAIv+H,MAAM,6CAoBrC,GAnBAi+H,EAAQM,SAAU,EAIlBrsI,KAAKwC,QAAmB+9H,EAAEhoG,OAAO,CAAC/4B,KAAM,KAAMQ,KAAKwC,QAASA,GAC5DxC,KAAKR,KAAmBQ,KAAKwC,QAAQhD,KACrCQ,KAAKitI,kBAA+C,IAA5BjtI,KAAKwC,QAAQ0qI,WACrCltI,KAAKmtI,eAAmB,iBAAkBptI,cAAqC,IAA1BmI,SAASw7E,cAA2Bx7E,SAASw7E,aAAe,GACjH1jF,KAAKotI,eAAmBptI,KAAKitI,kBAAoBjtI,KAAKmtI,eACtDntI,KAAKqtI,kBAAqBrtI,KAAKwC,QAAQ8qI,UACvCttI,KAAKutI,iBAAsBvtI,KAAK0rI,UAAW1rI,KAAK0rI,QAAQ4B,WACxDttI,KAAKgtI,cAAmBhtI,KAAKqtI,iBAAmBrtI,KAAKutI,cACrDvtI,KAAKqH,SAAmBrH,KAAK+sI,cAG7B/sI,KAAKR,MAAQ,IAAMQ,KAAKR,KAAO,KAAKuM,QAAQogI,EAAc,KAItDnsI,KAAKitI,kBAAoBjtI,KAAKqtI,gBAAiB,CAIjD,IAAKrtI,KAAKutI,gBAAkBvtI,KAAKusI,SAAU,CACzC,IAAIiB,EAAWxtI,KAAKR,KAAK4gD,MAAM,GAAI,IAAM,IAGzC,OAFApgD,KAAKisI,SAASlgI,QAAQyhI,EAAW,IAAMxtI,KAAK6sI,YAErC,EAIE7sI,KAAKutI,eAAiBvtI,KAAKusI,UACpCvsI,KAAK6rI,SAAS7rI,KAAK4sI,UAAW,CAAC7gI,SAAS,IAQ5C,IAAK/L,KAAKmtI,gBAAkBntI,KAAKitI,mBAAqBjtI,KAAKgtI,cAAe,CACxEhtI,KAAKkpD,OAAShhD,SAAS0lB,cAAc,UACrC5tB,KAAKkpD,OAAO3nD,IAAM,eAClBvB,KAAKkpD,OAAOvyC,MAAMC,QAAU,OAC5B5W,KAAKkpD,OAAOukF,UAAY,EACxB,IAAIxjI,EAAO/B,SAAS+B,KAEhByjI,EAAUzjI,EAAKtC,aAAa3H,KAAKkpD,OAAQj/C,EAAKrC,YAAY8a,cAC9DgrH,EAAQxlI,SAASkH,OACjBs+H,EAAQxlI,SAASjD,QACjByoI,EAAQzB,SAASzkF,KAAO,IAAMxnD,KAAKqH,SAIrC,IAAIgG,EAAmBtN,OAAOsN,kBAAoB,SAAS6hH,EAAWmb,GACpE,OAAO17C,YAAY,KAAOugC,EAAWmb,IAavC,GARIrqI,KAAKgtI,cACP3/H,EAAiB,WAAYrN,KAAKgsI,UAAU,GACnChsI,KAAKotI,iBAAmBptI,KAAKkpD,OACtC77C,EAAiB,aAAcrN,KAAKgsI,UAAU,GACrChsI,KAAKitI,mBACdjtI,KAAK2tI,kBAAoBC,YAAY5tI,KAAKgsI,SAAUhsI,KAAKssI,YAGtDtsI,KAAKwC,QAAQgX,OAAQ,OAAOxZ,KAAK6tI,WAKxCl9H,KAAM,WAEJ,IAAI06B,EAAsBtrC,OAAOsrC,qBAAuB,SAAS6jF,EAAWmb,GAC1E,OAAOyD,YAAY,KAAO5e,EAAWmb,IAInCrqI,KAAKgtI,cACP3hG,EAAoB,WAAYrrC,KAAKgsI,UAAU,GACtChsI,KAAKotI,iBAAmBptI,KAAKkpD,QACtC7d,EAAoB,aAAcrrC,KAAKgsI,UAAU,GAI/ChsI,KAAKkpD,SACPhhD,SAAS+B,KAAKsY,YAAYviB,KAAKkpD,QAC/BlpD,KAAKkpD,OAAS,MAIZlpD,KAAK2tI,mBAAmBI,cAAc/tI,KAAK2tI,mBAC/C5B,EAAQM,SAAU,GAKpBf,MAAO,SAASA,EAAOngB,GACrBnrH,KAAK8uF,SAAS/qC,QAAQ,CAACunF,MAAOA,EAAOngB,SAAUA,KAKjD6gB,SAAU,SAAS9mI,GACjB,IAAIuc,EAAUzhB,KAAK+sI,cAQnB,GAJItrH,IAAYzhB,KAAKqH,UAAYrH,KAAKkpD,SACpCznC,EAAUzhB,KAAK4sI,QAAQ5sI,KAAKkpD,OAAOxmC,gBAGjCjB,IAAYzhB,KAAKqH,SAAU,OAAO,EAClCrH,KAAKkpD,QAAQlpD,KAAK6rI,SAASpqH,GAC/BzhB,KAAK6tI,WAMPA,QAAS,SAASxmI,GAEhB,QAAKrH,KAAKysI,cACVplI,EAAWrH,KAAKqH,SAAWrH,KAAK+sI,YAAY1lI,GACrCk5H,EAAEp+G,KAAKniB,KAAK8uF,UAAU,SAASK,GACpC,GAAIA,EAAQm8C,MAAMhjF,KAAKjhD,GAErB,OADA8nF,EAAQg8B,SAAS9jH,IACV,OAYbwkI,SAAU,SAASxkI,EAAU7E,GAC3B,IAAKupI,EAAQM,QAAS,OAAO,EACxB7pI,IAAuB,IAAZA,IAAkBA,EAAU,CAACkC,UAAWlC,IAGxD6E,EAAWrH,KAAK+sI,YAAY1lI,GAAY,IAGxC,IAAImmI,EAAWxtI,KAAKR,KACH,KAAb6H,GAA0C,MAAvBA,EAASsoD,OAAO,KACrC69E,EAAWA,EAASptF,MAAM,GAAI,IAAM,KAEtC,IAAI55C,EAAMgnI,EAAWnmI,EAKrB,GAFAA,EAAWrH,KAAK0sI,eAAerlI,EAAS0E,QAAQqgI,EAAc,KAE1DpsI,KAAKqH,WAAaA,EAAtB,CAIA,GAHArH,KAAKqH,SAAWA,EAGZrH,KAAKgtI,cACPhtI,KAAK0rI,QAAQlpI,EAAQuJ,QAAU,eAAiB,aAAa,GAAI7D,SAASO,MAAOjC,OAI5E,KAAIxG,KAAKitI,iBAmBd,OAAOjtI,KAAKisI,SAAS+B,OAAOxnI,GAjB5B,GADAxG,KAAKiuI,YAAYjuI,KAAKisI,SAAU5kI,EAAU7E,EAAQuJ,SAC9C/L,KAAKkpD,QAAU7hD,IAAarH,KAAK4sI,QAAQ5sI,KAAKkpD,OAAOxmC,eAAgB,CACvE,IAAIgrH,EAAU1tI,KAAKkpD,OAAOxmC,cAKrBlgB,EAAQuJ,UACX2hI,EAAQxlI,SAASkH,OACjBs+H,EAAQxlI,SAASjD,SAGnBjF,KAAKiuI,YAAYP,EAAQzB,SAAU5kI,EAAU7E,EAAQuJ,UAQzD,OAAIvJ,EAAQkC,QAAgB1E,KAAK6tI,QAAQxmI,QAAzC,IAKF4mI,YAAa,SAAShC,EAAU5kI,EAAU0E,GACxC,GAAIA,EAAS,CACX,IAAI2U,EAAOurH,EAASvrH,KAAK3U,QAAQ,qBAAsB,IACvDkgI,EAASlgI,QAAQ2U,EAAO,IAAMrZ,QAG9B4kI,EAASzkF,KAAO,IAAMngD,KAO5BshC,EAAS+iG,QAAU,IAAIK,EAQvB,IAAIxzG,EAAS,SAAS21G,EAAYC,GAChC,IACI1kF,EADAh1C,EAASzU,KAwBb,OAjBEypD,EADEykF,GAAc3N,EAAE/+F,IAAI0sG,EAAY,eAC1BA,EAAWllI,YAEX,WAAY,OAAOyL,EAAOm1C,MAAM5pD,KAAM+jB,YAIhDw8G,EAAEhoG,OAAOkxB,EAAOh1C,EAAQ05H,GAIxB1kF,EAAM3nD,UAAYy+H,EAAEv+F,OAAOvtB,EAAO3S,UAAWosI,GAC7CzkF,EAAM3nD,UAAUkH,YAAcygD,EAI9BA,EAAM2kF,UAAY35H,EAAO3S,UAElB2nD,GAIT5nD,EAAM02B,OAAS/yB,EAAW+yB,OAASyyG,EAAOzyG,OAASv0B,EAAKu0B,OAASwzG,EAAQxzG,OAASA,EAGlF,IAAI0uG,EAAW,WACb,MAAM,IAAIn5H,MAAM,mDAId44H,EAAY,SAASzjI,EAAOT,GAC9B,IAAI+G,EAAQ/G,EAAQ+G,MACpB/G,EAAQ+G,MAAQ,SAASi9H,GACnBj9H,GAAOA,EAAMq7D,KAAKpiE,EAAQg3D,QAASv2D,EAAOujI,EAAMhkI,GACpDS,EAAMyB,QAAQ,QAASzB,EAAOujI,EAAMhkI,KAIxC,OAAOmmC,EA32DalpC,CAAQD,EAAME,EAAS6gI,EAAG73F,IAC3C,sC,gBCbF,SAASvQ,GAEVA,EAAWk2G,WAAW,MAAO,CAC3BC,aAAc,KACdC,WAAY,KACZC,kBAAmB,SAASC,EAAO17H,GACjC,MAAO,UAAUu1C,KAAKv1C,MAI1BolB,EAAWk2G,WAAW,aAAc,CAClCC,aAAc,KACdC,WAAY,KAEZC,kBAAmB,SAASC,EAAO17H,EAAS27H,EAAWp7F,GACrD,OAAItzC,KAAK2uI,SACA,WAAWrmF,KAAKv1C,IAAY,KAAKu1C,KAAKomF,IAE9B,KAAX37H,IAAkBugC,EAAMs7F,SAAiC,KAAtBt7F,EAAMs7F,QAAQttI,OAC9C,UAAUgnD,KAAKv1C,KAAa,KAAKu1C,KAAKomF,MAKnD,IAAIG,EAAiB,kPAErB12G,EAAWk2G,WAAW,MAAO,CAC3BC,aAAc,UACdC,WAAY,SACZC,kBAAmB,SAASltI,EAAMyR,EAAS27H,EAAWp7F,GACpD,IAAImlB,GAAS,EAGb,MAF0B,QAAtBz4D,KAAK8uI,gBACPr2E,IAASnlB,EAAMkmB,SAAUq1E,EAAevmF,KAAKhV,EAAMkmB,QAAQ5yC,WACrD6xC,IAAoB,OAARn3D,GAAiB,KAAKgnD,KAAKv1C,IAAYugC,EAAMkmB,SAC9C,KAAKlR,KAAKomF,OAKjCv2G,EAAW42G,gBAAgB,gBAAgB,SAAUC,EAAWliC,EAAMD,GACpE,IAAInjE,EAAK1pC,KAAMivI,EAAU92G,EAAW+2G,UAAUxlG,EAAGylG,UAAWzlG,EAAG0lG,WAAWtiC,GAAMx5D,OAAO7Z,KACvFiQ,EAAG2lG,WAAU,WACX,GAAIL,EACFtlG,EAAG4lG,aAAaL,EAAQV,WAAY1hC,GACpCnjE,EAAG4lG,aAAaL,EAAQX,aAAcxhC,GAClCA,EAAKyiC,MAAQ1iC,EAAG0iC,MAAQziC,EAAK0iC,IAAM3iC,EAAG2iC,IACxC9lG,EAAG+lG,UAAU3iC,EAAKyiC,KAAMziC,EAAK0iC,GAAKP,EAAQX,aAAarnI,YACpD,CACL,IAAIyoI,EAAUhmG,EAAGimG,SAAS7iC,EAAMD,GAC5B+iC,EAAaF,EAAQ/6H,QAAQs6H,EAAQX,cACrCuB,EAAWH,EAAQrhC,YAAY4gC,EAAQV,YACvCqB,GAAc,GAAKC,GAAY,GAAKA,EAAWD,IAEjDF,EAAUA,EAAQ/oF,OAAO,EAAGipF,GAEzBF,EAAQ/5G,UAAUi6G,EAAaX,EAAQX,aAAarnI,OAAQ4oI,GAE5DH,EAAQ/oF,OAAOkpF,EAAWZ,EAAQV,WAAWtnI,SAElDyiC,EAAG4lG,aAAaI,EAAS5iC,EAAMD,UAMrC10E,EAAW42G,gBAAgB,mBAAmB,SAAUjiC,EAAMD,GAC5D,IAAIijC,EAAa9vI,KACjBA,KAAKqvI,WAAU,WACb,IAAK,IAAIjlI,EAAI0iG,EAAKyiC,KAAMnlI,GAAKyiG,EAAG0iC,KAAMnlI,IACpC0lI,EAAWC,WAAW3lI,EAAG,eAM/B+tB,EAAW42G,gBAAgB,mBAAmB,SAAUjiC,EAAMD,GAC5D,IAAInjE,EAAK1pC,KACLgwI,EAAQtmG,EAAGylG,UAAW1lI,EAAOigC,EAAGimG,SAAS7iC,EAAMD,GAAIprG,MAAM,MACzD6xC,EAAQnb,EAAW83G,UAAUD,EAAOtmG,EAAG0lG,WAAWtiC,GAAMx5D,OACxD48F,EAAUxmG,EAAGguE,UAAU,WAEvBy4B,EAAM,GAAIC,EAAQ,EAAGC,EAAoB,IAAZvjC,EAAK0iC,GACtC,SAASc,IACPH,GAAO,KACPE,GAAQ,IACND,EAGJ,IAAK,IAAIhmI,EAAI,EAAGA,EAAIX,EAAKxC,SAAUmD,EAAG,CAEpC,IADA,IAAImmI,EAAS,IAAIp4G,EAAWq4G,aAAa/mI,EAAKW,GAAI8lI,IAC1CK,EAAOE,OAAO,CACpB,IAAInyE,EAAQnmC,EAAW+2G,UAAUc,EAAO18F,GACpC38B,EAAQq5H,EAAMU,MAAMH,EAAQj9F,GAAQq9F,EAAMJ,EAAO9uH,UACrD8uH,EAAOroH,MAAQqoH,EAAOp/G,IACjBk/G,IAAS,KAAK/nF,KAAKqoF,KACtBR,GAAOQ,EACPN,GAAQ,IAELA,GAAS/xE,EAAM7kC,KAAK+0G,mBACrBlwE,EAAM7kC,KAAK+0G,kBAAkB73H,EAAOg6H,EAAKJ,EAAOK,OAAOxwF,MAAMmwF,EAAOp/G,MAAQ1nB,EAAKW,EAAE,IAAM,GAAIk0D,EAAMhrB,QACrGg9F,KAECC,EAAOp/G,KAAO6+G,EAAMa,WAAWb,EAAMa,UAAUv9F,IAC/C+8F,GAASjmI,EAAIX,EAAKxC,OAAS,GAAGqpI,IAGrC5mG,EAAG2lG,WAAU,WACX3lG,EAAG4lG,aAAaa,EAAKrjC,EAAMD,GAC3B,IAAK,IAAI8jC,EAAM7jC,EAAKyiC,KAAO,EAAGzpG,EAAMgnE,EAAKyiC,KAAOa,EAAOO,GAAO7qG,IAAO6qG,EACnEjnG,EAAGqmG,WAAWY,EAAK,SACrBjnG,EAAGonG,aAAahkC,EAAMpjE,EAAGvP,WAAU,UAnHrCvC,CAAI,EAAQ,Q,iBCQiDj4B,EAAOD,QAGhE,WAAe,aAIrB,IAAIipE,EAAYD,UAAUC,UACtBooE,EAAWroE,UAAUqoE,SAErBC,EAAQ,aAAa1oF,KAAKqgB,GAC1BsoE,EAAY,UAAU3oF,KAAKqgB,GAC3BuoE,EAAU,wCAAwC1jI,KAAKm7D,GACvDwoE,EAAO,cAAc3jI,KAAKm7D,GAC1ByoE,EAAKH,GAAaC,GAAWC,EAC7BE,EAAaD,IAAOH,EAAY/oI,SAASw7E,cAAgB,IAAMytD,GAAQD,GAAS,IAChFI,GAAUH,GAAQ,WAAW7oF,KAAKqgB,GAClC4oE,EAAWD,GAAU,eAAehpF,KAAKqgB,GACzC6oE,GAAUL,GAAQ,WAAW7oF,KAAKqgB,GAClC8oE,EAAS,UAAUnpF,KAAKqgB,GACxB+oE,EAAS,iBAAiBppF,KAAKogB,UAAUipE,QACzCC,EAAqB,+BAA+BtpF,KAAKqgB,GACzDkpE,EAAU,YAAYvpF,KAAKqgB,GAE3BmpE,EAAMJ,IAAW,cAAcppF,KAAKqgB,IAAcD,UAAUqpE,eAAiB,GAC7EC,EAAU,UAAU1pF,KAAKqgB,GAEzBspE,EAASH,GAAOE,GAAW,mDAAmD1pF,KAAKqgB,GACnFupE,EAAMJ,GAAO,MAAMxpF,KAAKyoF,GACxBoB,EAAW,WAAW7pF,KAAKqgB,GAC3BypE,EAAU,OAAO9pF,KAAKyoF,GAEtBsB,EAAiBZ,GAAU9oE,EAAUp7D,MAAM,uBAC3C8kI,IAAkBA,EAAiBh2G,OAAOg2G,EAAe,KACzDA,GAAkBA,GAAkB,KAAMZ,GAAS,EAAOH,GAAS,GAEvE,IAAIgB,EAAcJ,IAAQX,GAAYE,IAA6B,MAAlBY,GAA0BA,EAAiB,QACxFE,EAAoBvB,GAAUI,GAAMC,GAAc,EAEtD,SAASmB,EAAU58H,GAAO,OAAO,IAAIipD,OAAO,UAAYjpD,EAAM,iBAE9D,IAkCI01C,EAlCAmnF,EAAU,SAASzxF,EAAMprC,GAC3B,IAAI6L,EAAUu/B,EAAKj+C,UACfwK,EAAQilI,EAAU58H,GAAKpI,KAAKiU,GAChC,GAAIlU,EAAO,CACT,IAAI80E,EAAQ5gE,EAAQ2+B,MAAM7yC,EAAMkiB,MAAQliB,EAAM,GAAGtG,QACjD+5C,EAAKj+C,UAAY0e,EAAQ2+B,MAAM,EAAG7yC,EAAMkiB,QAAU4yD,EAAQ90E,EAAM,GAAK80E,EAAQ,MAIjF,SAAStjB,EAAe75D,GACtB,IAAK,IAAI+sF,EAAQ/sF,EAAEk0C,WAAWnyC,OAAQgrF,EAAQ,IAAKA,EAC/C/sF,EAAEqd,YAAYrd,EAAE0C,YACpB,OAAO1C,EAGT,SAASwtI,EAAqBj+H,EAAQvP,GACpC,OAAO65D,EAAetqD,GAAQhN,YAAYvC,GAG5C,SAASytI,EAAIzwH,EAAKnP,EAAShQ,EAAW4T,GACpC,IAAIzR,EAAIgD,SAAS0lB,cAAc1L,GAG/B,GAFInf,IAAamC,EAAEnC,UAAYA,GAC3B4T,IAASzR,EAAEyR,MAAMkyD,QAAUlyD,GACT,iBAAX5D,EAAuB7N,EAAEuC,YAAYS,SAAS86C,eAAejwC,SACnE,GAAIA,EAAW,IAAK,IAAI3I,EAAI,EAAGA,EAAI2I,EAAQ9L,SAAUmD,EAAKlF,EAAEuC,YAAYsL,EAAQ3I,IACrF,OAAOlF,EAGT,SAAS0tI,EAAK1wH,EAAKnP,EAAShQ,EAAW4T,GACrC,IAAIzR,EAAIytI,EAAIzwH,EAAKnP,EAAShQ,EAAW4T,GAErC,OADAzR,EAAE8Q,aAAa,OAAQ,gBAChB9Q,EAoBT,SAASqqC,EAAS96B,EAAQg1C,GAGxB,GAFsB,GAAlBA,EAAMC,WACND,EAAQA,EAAMnnC,YACd7N,EAAO86B,SACP,OAAO96B,EAAO86B,SAASka,GAC3B,GAEE,GADsB,IAAlBA,EAAMC,WAAkBD,EAAQA,EAAMopF,MACtCppF,GAASh1C,EAAU,OAAO,QACvBg1C,EAAQA,EAAMnnC,YAGzB,SAASwwH,IAIP,IAAI/+G,EACJ,IACEA,EAAgB7rB,SAAS6rB,cACzB,MAAM7uB,GACN6uB,EAAgB7rB,SAAS+B,MAAQ,KAEnC,KAAO8pB,GAAiBA,EAAcg/G,YAAch/G,EAAcg/G,WAAWh/G,eACzEA,EAAgBA,EAAcg/G,WAAWh/G,cAC7C,OAAOA,EAGT,SAASnvB,EAASo8C,EAAMprC,GACtB,IAAI6L,EAAUu/B,EAAKj+C,UACdyvI,EAAU58H,GAAK0yC,KAAK7mC,KAAYu/B,EAAKj+C,YAAc0e,EAAU,IAAM,IAAM7L,GAEhF,SAASo9H,EAAYr0G,EAAGC,GAEtB,IADA,IAAIq0G,EAAKt0G,EAAEl9B,MAAM,KACR2I,EAAI,EAAGA,EAAI6oI,EAAGhsI,OAAQmD,IACvB6oI,EAAG7oI,KAAOooI,EAAUS,EAAG7oI,IAAIk+C,KAAK1pB,KAAMA,GAAK,IAAMq0G,EAAG7oI,IAC5D,OAAOw0B,EAlDmB0sB,EAAxBpjD,SAASs5F,YAAuB,SAASxgD,EAAM94B,EAAO4d,EAAKotG,GAC7D,IAAIp1G,EAAI51B,SAASs5F,cAGjB,OAFA1jE,EAAEq1G,OAAOD,GAAWlyF,EAAMlb,GAC1BhI,EAAE2jE,SAASzgD,EAAM94B,GACV4V,GAEM,SAASkjB,EAAM94B,EAAO4d,GACnC,IAAIhI,EAAI51B,SAAS+B,KAAKmpI,kBACtB,IAAMt1G,EAAEu1G,kBAAkBryF,EAAK1+B,YAC/B,MAAMpd,GAAK,OAAO44B,EAIlB,OAHAA,EAAEw1G,UAAS,GACXx1G,EAAEy1G,QAAQ,YAAaztG,GACvBhI,EAAE01G,UAAU,YAAatrH,GAClB4V,GAwCT,IAAI21G,EAAc,SAASzyF,GAAQA,EAAK18C,UAMxC,SAASjB,EAAK+O,GACZ,IAAI8uB,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK7gD,UAAW,GACjD,OAAO,WAAW,OAAO3R,EAAEw3C,MAAM,KAAM1oB,IAGzC,SAASwyG,EAAQpiI,EAAK5N,EAAQiwI,GAE5B,IAAK,IAAIp9G,KADJ7yB,IAAUA,EAAS,IACP4N,GACTA,EAAIqwB,eAAepL,KAAwB,IAAdo9G,GAAwBjwI,EAAOi+B,eAAepL,KAC7E7yB,EAAO6yB,GAAQjlB,EAAIilB,IACzB,OAAO7yB,EAKT,SAASkwI,EAAYhD,EAAQ9qG,EAAKoqG,EAASN,EAAYiE,GAC1C,MAAP/tG,IAEU,IADZA,EAAM8qG,EAAO1pF,OAAO,kBACHphB,EAAM8qG,EAAO3pI,QAEhC,IAAK,IAAImD,EAAIwlI,GAAc,EAAGnrD,EAAIovD,GAAc,IAAK,CACnD,IAAIC,EAAUlD,EAAOj8H,QAAQ,KAAMvK,GACnC,GAAI0pI,EAAU,GAAKA,GAAWhuG,EAC1B,OAAO2+C,GAAK3+C,EAAM17B,GACtBq6E,GAAKqvD,EAAU1pI,EACfq6E,GAAKyrD,EAAWzrD,EAAIyrD,EACpB9lI,EAAI0pI,EAAU,GA/BdhC,EACA2B,EAAc,SAASzyF,GAAQA,EAAK+yF,eAAiB,EAAG/yF,EAAKgzF,aAAehzF,EAAKn7C,MAAMoB,QAClFmqI,IACLqC,EAAc,SAASzyF,GAAQ,IAAMA,EAAK18C,SAAY,MAAM2vI,OAgChE,IAAIC,EAAU,WACZl0I,KAAK2F,GAAK,KACV3F,KAAKoS,EAAI,KACTpS,KAAKm0I,KAAO,EACZn0I,KAAKmvF,QAAU9rF,EAAKrD,KAAKo0I,UAAWp0I,OAoBtC,SAAS2U,EAAQunC,EAAOy2F,GACtB,IAAK,IAAIvoI,EAAI,EAAGA,EAAI8xC,EAAMj1C,SAAUmD,EAChC,GAAI8xC,EAAM9xC,IAAMuoI,EAAO,OAAOvoI,EAClC,OAAQ,EArBV8pI,EAAQpyI,UAAUsyI,UAAY,SAAU7uD,GACtCA,EAAK5/E,GAAK,EACN4/E,EAAK4uD,OAAS,IAAIE,KACpB9uD,EAAKnzE,IAEL6R,WAAWshE,EAAK4J,QAAS5J,EAAK4uD,MAAQ,IAAIE,OAG9CH,EAAQpyI,UAAU6B,IAAM,SAAU2wI,EAAIliI,GACpCpS,KAAKoS,EAAIA,EACT,IAAI+hI,GAAQ,IAAIE,KAAOC,IAClBt0I,KAAK2F,IAAMwuI,EAAOn0I,KAAKm0I,QAC1BroH,aAAa9rB,KAAK2F,IAClB3F,KAAK2F,GAAKse,WAAWjkB,KAAKmvF,QAASmlD,GACnCt0I,KAAKm0I,KAAOA,IAWhB,IAAII,EAAc,GAIdC,EAAO,CAAC17G,SAAU,WAAW,MAAO,oBAGpC27G,EAAiB,CAAC1/H,QAAQ,GAAQ2/H,EAAY,CAACvvG,OAAQ,UAAWwvG,EAAW,CAACxvG,OAAQ,SAI1F,SAASyvG,EAAWhE,EAAQiE,EAAM3E,GAChC,IAAK,IAAI/+G,EAAM,EAAG2jH,EAAM,IAAK,CAC3B,IAAIhB,EAAUlD,EAAOj8H,QAAQ,KAAMwc,IACnB,GAAZ2iH,IAAiBA,EAAUlD,EAAO3pI,QACtC,IAAI8tI,EAAUjB,EAAU3iH,EACxB,GAAI2iH,GAAWlD,EAAO3pI,QAAU6tI,EAAMC,GAAWF,EAC7C,OAAO1jH,EAAM/F,KAAKE,IAAIypH,EAASF,EAAOC,GAI1C,GAHAA,GAAOhB,EAAU3iH,EAEjBA,EAAM2iH,EAAU,GADhBgB,GAAO5E,EAAW4E,EAAM5E,IAEb2E,EAAQ,OAAO1jH,GAI9B,IAAI6jH,EAAY,CAAC,IACjB,SAASC,EAASxwD,GAChB,KAAOuwD,EAAU/tI,QAAUw9E,GACvBuwD,EAAUpnI,KAAKsnI,EAAIF,GAAa,KACpC,OAAOA,EAAUvwD,GAGnB,SAASywD,EAAIj4E,GAAO,OAAOA,EAAIA,EAAIh2D,OAAO,GAE1C,SAASyT,EAAIwhC,EAAO9pC,GAElB,IADA,IAAI+9H,EAAM,GACD/lI,EAAI,EAAGA,EAAI8xC,EAAMj1C,OAAQmD,IAAO+lI,EAAI/lI,GAAKgI,EAAE8pC,EAAM9xC,GAAIA,GAC9D,OAAO+lI,EAGT,SAASgF,EAAaj5F,EAAOr2C,EAAO+rE,GAElC,IADA,IAAIzgD,EAAM,EAAG+yB,EAAW0tB,EAAM/rE,GACvBsrB,EAAM+qB,EAAMj1C,QAAU2qE,EAAM11B,EAAM/qB,KAAS+yB,GAAY/yB,IAC9D+qB,EAAMhmB,OAAO/E,EAAK,EAAGtrB,GAGvB,SAASuvI,KAET,SAASC,EAAUrO,EAAMprH,GACvB,IAAI05H,EAQJ,OAPI1zH,OAAOogB,OACTszG,EAAO1zH,OAAOogB,OAAOglG,IAErBoO,EAAQtzI,UAAYklI,EACpBsO,EAAO,IAAIF,GAETx5H,GAAS83H,EAAQ93H,EAAO05H,GACrBA,EAGT,IAAIC,GAA6B,4GACjC,SAASC,GAAgBhG,GACvB,MAAO,KAAKlnF,KAAKknF,IAAOA,EAAK,MAC1BA,EAAG5pG,eAAiB4pG,EAAGl2F,eAAiBi8F,GAA2BjtF,KAAKknF,IAE7E,SAASiG,GAAWjG,EAAIt/F,GACtB,OAAKA,KACDA,EAAO4kB,OAAOngD,QAAQ,QAAU,GAAK6gI,GAAgBhG,KAClDt/F,EAAOoY,KAAKknF,GAFGgG,GAAgBhG,GAKxC,SAASh5G,GAAQllB,GACf,IAAK,IAAImzE,KAAKnzE,EAAO,GAAIA,EAAIqwB,eAAe8iD,IAAMnzE,EAAImzE,GAAM,OAAO,EACnE,OAAO,EAQT,IAAIixD,GAAiB,64DACrB,SAASC,GAAgBnG,GAAM,OAAOA,EAAG9hD,WAAW,IAAM,KAAOgoD,GAAeptF,KAAKknF,GAGrF,SAASoG,GAAmB54F,EAAK7rB,EAAK6pG,GACpC,MAAQA,EAAM,EAAI7pG,EAAM,EAAIA,EAAM6rB,EAAI/1C,SAAW0uI,GAAgB34F,EAAI2S,OAAOx+B,KAASA,GAAO6pG,EAC5F,OAAO7pG,EAMT,SAAS0kH,GAAUC,EAAMhpC,EAAMD,GAI7B,IADA,IAAImuB,EAAMluB,EAAOD,GAAM,EAAI,IAClB,CACP,GAAIC,GAAQD,EAAM,OAAOC,EACzB,IAAIipC,GAAQjpC,EAAOD,GAAM,EAAGmpC,EAAMhb,EAAM,EAAI5vG,KAAK6qH,KAAKF,GAAQ3qH,KAAK2gD,MAAMgqE,GACzE,GAAIC,GAAOlpC,EAAQ,OAAOgpC,EAAKE,GAAOlpC,EAAOD,EACzCipC,EAAKE,GAAQnpC,EAAKmpC,EACflpC,EAAOkpC,EAAMhb,GAMxB,SAASkb,GAAoBl/H,EAAO81F,EAAMD,EAAIz6F,GAC5C,IAAK4E,EAAS,OAAO5E,EAAE06F,EAAMD,EAAI,MAAO,GAExC,IADA,IAAI9uE,GAAQ,EACH3zB,EAAI,EAAGA,EAAI4M,EAAM/P,SAAUmD,EAAG,CACrC,IAAIk6E,EAAOttE,EAAM5M,IACbk6E,EAAKwoB,KAAOD,GAAMvoB,EAAKuoB,GAAKC,GAAQA,GAAQD,GAAMvoB,EAAKuoB,IAAMC,KAC/D16F,EAAEgZ,KAAKC,IAAIi5D,EAAKwoB,KAAMA,GAAO1hF,KAAKE,IAAIg5D,EAAKuoB,GAAIA,GAAmB,GAAdvoB,EAAKmO,MAAa,MAAQ,MAAOroF,GACrF2zB,GAAQ,GAGPA,GAAS3rB,EAAE06F,EAAMD,EAAI,OAG5B,IAAIspC,GAAY,KAChB,SAASC,GAAcp/H,EAAOw4H,EAAI6G,GAChC,IAAIt4G,EACJo4G,GAAY,KACZ,IAAK,IAAI/rI,EAAI,EAAGA,EAAI4M,EAAM/P,SAAUmD,EAAG,CACrC,IAAIumI,EAAM35H,EAAM5M,GAChB,GAAIumI,EAAI7jC,KAAO0iC,GAAMmB,EAAI9jC,GAAK2iC,EAAM,OAAOplI,EACvCumI,EAAI9jC,IAAM2iC,IACRmB,EAAI7jC,MAAQ6jC,EAAI9jC,IAAgB,UAAVwpC,EAAsBt4G,EAAQ3zB,EACjD+rI,GAAY/rI,GAEjBumI,EAAI7jC,MAAQ0iC,IACVmB,EAAI7jC,MAAQ6jC,EAAI9jC,IAAgB,UAAVwpC,EAAsBt4G,EAAQ3zB,EACjD+rI,GAAY/rI,GAGvB,OAAgB,MAAT2zB,EAAgBA,EAAQo4G,GA0BjC,IAAIG,GAAe,WAEjB,IAAIC,EAAW,2PAEXC,EAAc,6PAClB,SAASC,EAASp+G,GAChB,OAAIA,GAAQ,IAAek+G,EAAS5mF,OAAOt3B,GAClC,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAASA,GAAQA,GAAQ,KAAgBm+G,EAAY7mF,OAAOt3B,EAAO,MACnE,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAAUA,GAAQA,GAAQ,KAAiB,IACnC,MAARA,EAAyB,IACpB,IAGhB,IAAIq+G,EAAS,4CACTC,EAAY,SAAUC,EAAW,QAASC,EAAe,SAAUC,EAAc,OAErF,SAASC,EAAStkD,EAAOqa,EAAMD,GAC7B7sG,KAAKyyF,MAAQA,EACbzyF,KAAK8sG,KAAOA,EAAM9sG,KAAK6sG,GAAKA,EAG9B,OAAO,SAAS7vD,EAAKxkC,GACnB,IAAIw+H,EAAyB,OAAbx+H,EAAqB,IAAM,IAE3C,GAAkB,GAAdwkC,EAAI/1C,QAA4B,OAAbuR,IAAuBk+H,EAAOpuF,KAAKtL,GAAQ,OAAO,EAEzE,IADA,IAAI9U,EAAM8U,EAAI/1C,OAAQvB,EAAQ,GACrB0E,EAAI,EAAGA,EAAI89B,IAAO99B,EACvB1E,EAAMkI,KAAK6oI,EAASz5F,EAAI0wC,WAAWtjF,KAMvC,IAAK,IAAI6sI,EAAM,EAAG15H,EAAOy5H,EAAWC,EAAM/uG,IAAO+uG,EAAK,CACpD,IAAI31I,EAAOoE,EAAMuxI,GACL,KAAR31I,EAAeoE,EAAMuxI,GAAO15H,EACzBA,EAAOjc,EAQhB,IAAK,IAAI41I,EAAM,EAAGvG,EAAMqG,EAAWE,EAAMhvG,IAAOgvG,EAAK,CACnD,IAAIC,EAASzxI,EAAMwxI,GACL,KAAVC,GAAwB,KAAPxG,EAAcjrI,EAAMwxI,GAAO,IACvCN,EAAStuF,KAAK6uF,KAAWxG,EAAMwG,EAAsB,KAAVA,IAAiBzxI,EAAMwxI,GAAO,MAMpF,IAAK,IAAIE,EAAM,EAAGC,EAAS3xI,EAAM,GAAI0xI,EAAMlvG,EAAM,IAAKkvG,EAAK,CACzD,IAAIE,EAAS5xI,EAAM0xI,GACL,KAAVE,GAA2B,KAAVD,GAAiC,KAAhB3xI,EAAM0xI,EAAI,GAAa1xI,EAAM0xI,GAAO,IACvD,KAAVE,GAAiBD,GAAU3xI,EAAM0xI,EAAI,IAC1B,KAAVC,GAA2B,KAAVA,IAAkB3xI,EAAM0xI,GAAOC,GAC1DA,EAASC,EAOX,IAAK,IAAIC,EAAM,EAAGA,EAAMrvG,IAAOqvG,EAAK,CAClC,IAAIC,EAAS9xI,EAAM6xI,GACnB,GAAc,KAAVC,EAAiB9xI,EAAM6xI,GAAO,SAC7B,GAAc,KAAVC,EAAe,CACtB,IAAI1xG,OAAM,EACV,IAAKA,EAAMyxG,EAAM,EAAGzxG,EAAMoC,GAAqB,KAAdxiC,EAAMogC,KAAeA,GAEtD,IADA,IAAI/5B,EAAWwrI,GAAuB,KAAhB7xI,EAAM6xI,EAAI,IAAezxG,EAAMoC,GAAqB,KAAdxiC,EAAMogC,GAAe,IAAM,IAC9E0b,EAAI+1F,EAAK/1F,EAAI1b,IAAO0b,EAAK97C,EAAM87C,GAAKz1C,EAC7CwrI,EAAMzxG,EAAM,GAOhB,IAAK,IAAI2xG,EAAM,EAAGC,EAAQV,EAAWS,EAAMvvG,IAAOuvG,EAAK,CACrD,IAAIE,EAASjyI,EAAM+xI,GACN,KAATC,GAA0B,KAAVC,EAAiBjyI,EAAM+xI,GAAO,IACzCb,EAAStuF,KAAKqvF,KAAWD,EAAQC,GAS5C,IAAK,IAAIC,EAAM,EAAGA,EAAM1vG,IAAO0vG,EAC7B,GAAIjB,EAAUruF,KAAK5iD,EAAMkyI,IAAO,CAC9B,IAAIC,OAAQ,EACZ,IAAKA,EAAQD,EAAM,EAAGC,EAAQ3vG,GAAOyuG,EAAUruF,KAAK5iD,EAAMmyI,MAAWA,GAIrE,IAHA,IAAI7xB,EAA6C,MAAnC4xB,EAAMlyI,EAAMkyI,EAAI,GAAKZ,GAE/Bc,EAAY9xB,IADwC,MAA3C6xB,EAAQ3vG,EAAMxiC,EAAMmyI,GAASb,IACPhxB,EAAS,IAAM,IAAOgxB,EAChDe,EAAMH,EAAKG,EAAMF,IAASE,EAAOryI,EAAMqyI,GAAOD,EACvDF,EAAMC,EAAQ,EAUlB,IADA,IAAgB1lI,EAAZ6E,EAAQ,GACHghI,EAAM,EAAGA,EAAM9vG,GACtB,GAAI2uG,EAAavuF,KAAK5iD,EAAMsyI,IAAO,CACjC,IAAI9vH,EAAQ8vH,EACZ,MAAOA,EAAKA,EAAM9vG,GAAO2uG,EAAavuF,KAAK5iD,EAAMsyI,MAASA,GAC1DhhI,EAAMpJ,KAAK,IAAImpI,EAAS,EAAG7uH,EAAO8vH,QAC7B,CACL,IAAI7mH,EAAM6mH,EAAKlxI,EAAKkQ,EAAM/P,OAAQgxI,EAAqB,OAAbz/H,EAAqB,EAAI,EACnE,MAAOw/H,EAAKA,EAAM9vG,GAAqB,KAAdxiC,EAAMsyI,KAAeA,GAC9C,IAAK,IAAIE,EAAM/mH,EAAK+mH,EAAMF,GACxB,GAAIlB,EAAYxuF,KAAK5iD,EAAMwyI,IAAO,CAC5B/mH,EAAM+mH,IAAOlhI,EAAMkf,OAAOpvB,EAAI,EAAG,IAAIiwI,EAAS,EAAG5lH,EAAK+mH,IAAOpxI,GAAMmxI,GACvE,IAAIE,EAASD,EACb,MAAOA,EAAKA,EAAMF,GAAOlB,EAAYxuF,KAAK5iD,EAAMwyI,MAASA,GACzDlhI,EAAMkf,OAAOpvB,EAAI,EAAG,IAAIiwI,EAAS,EAAGoB,EAAQD,IAC5CpxI,GAAMmxI,EACN9mH,EAAM+mH,QACGA,EAET/mH,EAAM6mH,GAAOhhI,EAAMkf,OAAOpvB,EAAI,EAAG,IAAIiwI,EAAS,EAAG5lH,EAAK6mH,IAc9D,MAXiB,OAAbx/H,IACoB,GAAlBxB,EAAM,GAAGy7E,QAAetgF,EAAI6qC,EAAIzvC,MAAM,WACxCyJ,EAAM,GAAG81F,KAAO36F,EAAE,GAAGlL,OACrB+P,EAAM+sC,QAAQ,IAAIgzF,EAAS,EAAG,EAAG5kI,EAAE,GAAGlL,UAEhB,GAApBiuI,EAAIl+H,GAAOy7E,QAAetgF,EAAI6qC,EAAIzvC,MAAM,WAC1C2nI,EAAIl+H,GAAO61F,IAAM16F,EAAE,GAAGlL,OACtB+P,EAAMpJ,KAAK,IAAImpI,EAAS,EAAG7uG,EAAM/1B,EAAE,GAAGlL,OAAQihC,MAI9B,OAAb1vB,EAAqBxB,EAAMsoE,UAAYtoE,GAhJ/B,GAuJnB,SAASohI,GAAS7I,EAAM/2H,GACtB,IAAIxB,EAAQu4H,EAAKv4H,MAEjB,OADa,MAATA,IAAiBA,EAAQu4H,EAAKv4H,MAAQs/H,GAAa/G,EAAK9lI,KAAM+O,IAC3DxB,EAQT,IAAIqhI,GAAa,GAEb1oI,GAAK,SAAS2oI,EAASh3I,EAAM8Q,GAC/B,GAAIkmI,EAAQjrI,iBACVirI,EAAQjrI,iBAAiB/L,EAAM8Q,GAAG,QAC7B,GAAIkmI,EAAQ3pD,YACjB2pD,EAAQ3pD,YAAY,KAAOrtF,EAAM8Q,OAC5B,CACL,IAAIsI,EAAM49H,EAAQhsD,YAAcgsD,EAAQhsD,UAAY,IACpD5xE,EAAIpZ,IAASoZ,EAAIpZ,IAAS+2I,IAAY55G,OAAOrsB,KAIjD,SAASmmI,GAAYD,EAASh3I,GAC5B,OAAOg3I,EAAQhsD,WAAagsD,EAAQhsD,UAAUhrF,IAAS+2I,GAGzD,SAAS5iI,GAAI6iI,EAASh3I,EAAM8Q,GAC1B,GAAIkmI,EAAQjtG,oBACVitG,EAAQjtG,oBAAoB/pC,EAAM8Q,GAAG,QAChC,GAAIkmI,EAAQxK,YACjBwK,EAAQxK,YAAY,KAAOxsI,EAAM8Q,OAC5B,CACL,IAAIsI,EAAM49H,EAAQhsD,UAAWrvB,EAAMviD,GAAOA,EAAIpZ,GAC9C,GAAI27D,EAAK,CACP,IAAIxtC,EAAQ9a,EAAQsoD,EAAK7qD,GACrBqd,GAAS,IACT/U,EAAIpZ,GAAQ27D,EAAI7c,MAAM,EAAG3wB,GAAOgP,OAAOw+B,EAAI7c,MAAM3wB,EAAQ,OAKnE,SAAS+oH,GAAOF,EAASh3I,GACvB,IAAIwtF,EAAWypD,GAAYD,EAASh3I,GACpC,GAAKwtF,EAAS7nF,OAEd,IADA,IAAIi6B,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK7gD,UAAW,GACxC3Z,EAAI,EAAGA,EAAI0kF,EAAS7nF,SAAUmD,EAAK0kF,EAAS1kF,GAAGw/C,MAAM,KAAM1oB,GAMtE,SAASu3G,GAAe/uG,EAAIxkC,EAAGwzI,GAI7B,MAHgB,iBAALxzI,IACPA,EAAI,CAAC5D,KAAM4D,EAAGmB,eAAgB,WAAarG,KAAK24I,kBAAmB,KACvEH,GAAO9uG,EAAIgvG,GAAYxzI,EAAE5D,KAAMooC,EAAIxkC,GAC5B0zI,GAAmB1zI,IAAMA,EAAE2zI,iBAGpC,SAASC,GAAqBpvG,GAC5B,IAAIuzB,EAAMvzB,EAAG4iD,WAAa5iD,EAAG4iD,UAAUysD,eACvC,GAAK97E,EAEL,IADA,IAAIt5D,EAAM+lC,EAAGsvG,MAAMC,yBAA2BvvG,EAAGsvG,MAAMC,uBAAyB,IACvE7uI,EAAI,EAAGA,EAAI6yD,EAAIh2D,SAAUmD,GAAkC,GAAzBuK,EAAQhR,EAAKs5D,EAAI7yD,KACxDzG,EAAIiK,KAAKqvD,EAAI7yD,IAGnB,SAAS8uI,GAAWZ,EAASh3I,GAC3B,OAAOi3I,GAAYD,EAASh3I,GAAM2F,OAAS,EAK7C,SAASkyI,GAAWC,GAClBA,EAAKt3I,UAAU6N,GAAK,SAASrO,EAAM8Q,GAAIzC,GAAG3P,KAAMsB,EAAM8Q,IACtDgnI,EAAKt3I,UAAU2T,IAAM,SAASnU,EAAM8Q,GAAIqD,GAAIzV,KAAMsB,EAAM8Q,IAM1D,SAASinI,GAAiBn0I,GACpBA,EAAEmB,eAAkBnB,EAAEmB,iBACnBnB,EAAEmkE,aAAc,EAEzB,SAASiwE,GAAkBp0I,GACrBA,EAAEiH,gBAAmBjH,EAAEiH,kBACpBjH,EAAEmqF,cAAe,EAE1B,SAASupD,GAAmB1zI,GAC1B,OAA6B,MAAtBA,EAAEyzI,iBAA2BzzI,EAAEyzI,iBAAoC,GAAjBzzI,EAAEmkE,YAE7D,SAASkwE,GAAOr0I,GAAIm0I,GAAiBn0I,GAAIo0I,GAAkBp0I,GAE3D,SAASs0I,GAASt0I,GAAI,OAAOA,EAAExB,QAAUwB,EAAE6pF,WAC3C,SAAS0qD,GAASv0I,GAChB,IAAI05B,EAAI15B,EAAEqnC,MAOV,OANS,MAAL3N,IACa,EAAX15B,EAAE8P,OAAc4pB,EAAI,EACJ,EAAX15B,EAAE8P,OAAc4pB,EAAI,EACT,EAAX15B,EAAE8P,SAAc4pB,EAAI,IAE3BszG,GAAOhtI,EAAE+lB,SAAgB,GAAL2T,IAAUA,EAAI,GAC/BA,EAIT,IAQI86G,GAeAC,GAvBAC,GAAc,WAGhB,GAAIxI,GAAMC,EAAa,EAAK,OAAO,EACnC,IAAIwI,EAAMlH,EAAI,OACd,MAAO,cAAekH,GAAO,aAAcA,EAL3B,GASlB,SAASC,GAAiBC,GACxB,GAAqB,MAAjBL,GAAuB,CACzB,IAAIpxF,EAAOqqF,EAAI,OAAQ,KACvBD,EAAqBqH,EAASpH,EAAI,OAAQ,CAACrqF,EAAMpgD,SAAS86C,eAAe,QAClC,GAAnC+2F,EAAQnyI,WAAWyb,eACnBq2H,GAAgBpxF,EAAKhlC,aAAe,GAAKglC,EAAKjlC,aAAe,KAAO+tH,GAAMC,EAAa,IAE7F,IAAIrwF,EAAO04F,GAAgB/G,EAAI,OAAQ,KACrCA,EAAI,OAAQ,IAAU,KAAM,yDAE9B,OADA3xF,EAAKhrC,aAAa,UAAW,IACtBgrC,EAKT,SAASg5F,GAAgBD,GACvB,GAAoB,MAAhBJ,GAAwB,OAAOA,GACnC,IAAIM,EAAMvH,EAAqBqH,EAAS7xI,SAAS86C,eAAe,QAC5Dk3F,EAAK5uF,EAAM2uF,EAAK,EAAG,GAAG92H,wBACtBg3H,EAAK7uF,EAAM2uF,EAAK,EAAG,GAAG92H,wBAE1B,OADA47C,EAAeg7E,MACVG,GAAMA,EAAGn6H,MAAQm6H,EAAGl7G,SAClB26G,GAAgBQ,EAAGn7G,MAAQk7G,EAAGl7G,MAAQ,GAK/C,IA8BM95B,GA9BFk1I,GAA+C,GAA9B,QAAQ34I,MAAM,MAAMwF,OAAc,SAAU2pI,GAE/D,IADA,IAAIz/G,EAAM,EAAGlvB,EAAS,GAAIo/C,EAAIuvF,EAAO3pI,OAC9BkqB,GAAOkwB,GAAG,CACf,IAAIg5F,EAAKzJ,EAAOj8H,QAAQ,KAAMwc,IACnB,GAAPkpH,IAAYA,EAAKzJ,EAAO3pI,QAC5B,IAAIsoI,EAAOqB,EAAOxwF,MAAMjvB,EAA8B,MAAzBy/G,EAAOjhF,OAAO0qF,EAAK,GAAaA,EAAK,EAAIA,GAClEC,EAAK/K,EAAK56H,QAAQ,OACX,GAAP2lI,GACFr4I,EAAO2L,KAAK2hI,EAAKnvF,MAAM,EAAGk6F,IAC1BnpH,GAAOmpH,EAAK,IAEZr4I,EAAO2L,KAAK2hI,GACZp+G,EAAMkpH,EAAK,GAGf,OAAOp4I,GACL,SAAU2uI,GAAU,OAAOA,EAAOnvI,MAAM,aAExC84I,GAAex6I,OAAOqrD,aAAe,SAAUovF,GACjD,IAAM,OAAOA,EAAGzG,gBAAkByG,EAAGxG,aACrC,MAAM9uI,GAAK,OAAO,IAChB,SAAUs1I,GACZ,IAAIlvF,EACJ,IAAKA,EAAQkvF,EAAG97H,cAAcysC,UAAUq2C,cACxC,MAAMt8F,IACN,SAAKomD,GAASA,EAAM4xE,iBAAmBsd,IACe,GAA/ClvF,EAAMmvF,iBAAiB,aAAcnvF,IAG1CovF,GAEE,WADAx1I,GAAIytI,EAAI,UAEZztI,GAAE8Q,aAAa,SAAU,WACC,mBAAZ9Q,GAAEy1I,QAGdC,GAAiB,KACrB,SAASC,GAAkBd,GACzB,GAAsB,MAAlBa,GAA0B,OAAOA,GACrC,IAAI55F,EAAO0xF,EAAqBqH,EAASpH,EAAI,OAAQ,MACjDmI,EAAS95F,EAAK79B,wBACd43H,EAAYzvF,EAAMtK,EAAM,EAAG,GAAG79B,wBAClC,OAAOy3H,GAAiBxvH,KAAK+lD,IAAI2pE,EAAO/6H,KAAOg7H,EAAUh7H,MAAQ,EAInE,IAAIigB,GAAQ,GAAIg7G,GAAY,GAK5B,SAASC,GAAW92I,EAAMs1B,GACpB1V,UAAU9c,OAAS,IACnBwyB,EAAKyhH,aAAel9H,MAAMlc,UAAUs+C,MAAMwkB,KAAK7gD,UAAW,IAC9Dic,GAAM77B,GAAQs1B,EAGhB,SAAS0hH,GAAWC,EAAMC,GACxBL,GAAUI,GAAQC,EAKpB,SAASC,GAAYD,GACnB,GAAmB,iBAARA,GAAoBL,GAAUr5G,eAAe05G,GACtDA,EAAOL,GAAUK,QACZ,GAAIA,GAA4B,iBAAbA,EAAKl3I,MAAoB62I,GAAUr5G,eAAe05G,EAAKl3I,MAAO,CACtF,IAAI45B,EAAQi9G,GAAUK,EAAKl3I,MACP,iBAAT45B,IAAqBA,EAAQ,CAAC55B,KAAM45B,KAC/Cs9G,EAAOhG,EAAUt3G,EAAOs9G,IACnBl3I,KAAO45B,EAAM55B,SACb,IAAmB,iBAARk3I,GAAoB,0BAA0B/yF,KAAK+yF,GACnE,OAAOC,GAAY,mBACd,GAAmB,iBAARD,GAAoB,2BAA2B/yF,KAAK+yF,GACpE,OAAOC,GAAY,oBAErB,MAAmB,iBAARD,EAA2B,CAACl3I,KAAMk3I,GAC/BA,GAAQ,CAACl3I,KAAM,QAK/B,SAASgrI,GAAQ3sI,EAAS64I,GACxBA,EAAOC,GAAYD,GACnB,IAAIE,EAAWv7G,GAAMq7G,EAAKl3I,MAC1B,IAAKo3I,EAAY,OAAOpM,GAAQ3sI,EAAS,cACzC,IAAIg5I,EAAUD,EAAS/4I,EAAS64I,GAChC,GAAII,GAAe95G,eAAe05G,EAAKl3I,MAAO,CAC5C,IAAIu3I,EAAOD,GAAeJ,EAAKl3I,MAC/B,IAAK,IAAIoyB,KAAQmlH,EACVA,EAAK/5G,eAAepL,KACrBilH,EAAQ75G,eAAepL,KAASilH,EAAQ,IAAMjlH,GAAQilH,EAAQjlH,IAClEilH,EAAQjlH,GAAQmlH,EAAKnlH,IAKzB,GAFAilH,EAAQr3I,KAAOk3I,EAAKl3I,KAChBk3I,EAAKM,aAAcH,EAAQG,WAAaN,EAAKM,YAC7CN,EAAKO,UAAa,IAAK,IAAIC,KAAUR,EAAKO,UAC1CJ,EAAQK,GAAUR,EAAKO,UAAUC,GAErC,OAAOL,EAKT,IAAIC,GAAiB,GACrB,SAASpN,GAAW50G,EAAM+wD,GAExBkpD,EAAQlpD,EADGixD,GAAe95G,eAAelI,GAAQgiH,GAAehiH,GAASgiH,GAAehiH,GAAQ,IAIlG,SAASw2G,GAAUx2G,EAAM6Z,GACvB,IAAc,IAAVA,EAAkB,OAAOA,EAC7B,GAAI7Z,EAAKw2G,UAAa,OAAOx2G,EAAKw2G,UAAU38F,GAC5C,IAAIwoG,EAAS,GACb,IAAK,IAAIr3D,KAAKnxC,EAAO,CACnB,IAAIlqC,EAAMkqC,EAAMmxC,GACZr7E,aAAe4U,QAAS5U,EAAMA,EAAIq1B,OAAO,KAC7Cq9G,EAAOr3D,GAAKr7E,EAEd,OAAO0yI,EAKT,SAAS5M,GAAUz1G,EAAM6Z,GAEvB,IADA,IAAIg8D,EACG71E,EAAKy1G,YACV5/B,EAAO71E,EAAKy1G,UAAU57F,KACTg8D,EAAK71E,MAAQA,GAC1B6Z,EAAQg8D,EAAKh8D,MACb7Z,EAAO61E,EAAK71E,KAEd,OAAO61E,GAAQ,CAAC71E,KAAMA,EAAM6Z,MAAOA,GAGrC,SAASyoG,GAAWtiH,EAAMwmB,EAAIC,GAC5B,OAAOzmB,EAAKsiH,YAAatiH,EAAKsiH,WAAW97F,EAAIC,GAQ/C,IAAIswF,GAAe,SAASI,EAAQV,EAAS8L,GAC3Ch8I,KAAKmxB,IAAMnxB,KAAKkoB,MAAQ,EACxBloB,KAAK4wI,OAASA,EACd5wI,KAAKkwI,QAAUA,GAAW,EAC1BlwI,KAAKi8I,cAAgBj8I,KAAKk8I,gBAAkB,EAC5Cl8I,KAAKm8I,UAAY,EACjBn8I,KAAKg8I,WAAaA,GA2EpB,SAASI,GAAQ39H,EAAKgmE,GAEpB,IADAA,GAAKhmE,EAAI1D,OACD,GAAK0pE,GAAKhmE,EAAImpB,KAAQ,MAAM,IAAI95B,MAAM,qBAAuB22E,EAAIhmE,EAAI1D,OAAS,qBAEtF,IADA,IAAIshI,EAAQ59H,GACJ49H,EAAMjM,OACZ,IAAK,IAAIhmI,EAAI,KAAMA,EAAG,CACpB,IAAIq/C,EAAQ4yF,EAAMt3G,SAAS36B,GAAIkyI,EAAK7yF,EAAM8yF,YAC1C,GAAI93D,EAAI63D,EAAI,CAAED,EAAQ5yF,EAAO,MAC7Bg7B,GAAK63D,EAGT,OAAOD,EAAMjM,MAAM3rD,GAKrB,SAAS+3D,GAAW/9H,EAAKyJ,EAAO4d,GAC9B,IAAIqqG,EAAM,GAAI1rD,EAAIv8D,EAAMqnH,KAQxB,OAPA9wH,EAAIg+H,KAAKv0H,EAAMqnH,KAAMzpG,EAAIypG,KAAO,GAAG,SAAUA,GAC3C,IAAI9lI,EAAO8lI,EAAK9lI,KACZg7E,GAAK3+C,EAAIypG,OAAQ9lI,EAAOA,EAAK22C,MAAM,EAAGta,EAAI0pG,KAC1C/qD,GAAKv8D,EAAMqnH,OAAQ9lI,EAAOA,EAAK22C,MAAMl4B,EAAMsnH,KAC/CW,EAAIviI,KAAKnE,KACPg7E,KAEG0rD,EAGT,SAASuM,GAASj+H,EAAKquF,EAAMD,GAC3B,IAAIsjC,EAAM,GAEV,OADA1xH,EAAIg+H,KAAK3vC,EAAMD,GAAI,SAAU0iC,GAAQY,EAAIviI,KAAK2hI,EAAK9lI,SAC5C0mI,EAKT,SAASwM,GAAiBpN,EAAMntI,GAC9B,IAAI81D,EAAO91D,EAASmtI,EAAKntI,OACzB,GAAI81D,EAAQ,IAAK,IAAIusB,EAAI8qD,EAAM9qD,EAAGA,EAAIA,EAAEhwE,OAAUgwE,EAAEriF,QAAU81D,EAKhE,SAAS0kF,GAAOrN,GACd,GAAmB,MAAfA,EAAK96H,OAAkB,OAAO,KAElC,IADA,IAAIk8H,EAAMpB,EAAK96H,OAAQooI,EAAKloI,EAAQg8H,EAAIP,MAAOb,GACtC8M,EAAQ1L,EAAIl8H,OAAQ4nI,EAAO1L,EAAM0L,EAAOA,EAAQA,EAAM5nI,OAC7D,IAAK,IAAIrK,EAAI,EACPiyI,EAAMt3G,SAAS36B,IAAMumI,IADRvmI,EAEjByyI,GAAMR,EAAMt3G,SAAS36B,GAAGmyI,YAG5B,OAAOM,EAAKlM,EAAI51H,MAKlB,SAAS+hI,GAAaT,EAAO1mG,GAC3B,IAAI8uC,EAAI43D,EAAMthI,MACdi1H,EAAO,EAAG,CACR,IAAK,IAAIiH,EAAM,EAAGA,EAAMoF,EAAMt3G,SAAS99B,SAAUgwI,EAAK,CACpD,IAAIxtF,EAAQ4yF,EAAMt3G,SAASkyG,GAAMzH,EAAK/lF,EAAMrnD,OAC5C,GAAIuzC,EAAI65F,EAAI,CAAE6M,EAAQ5yF,EAAO,SAASumF,EACtCr6F,GAAK65F,EACL/qD,GAAKh7B,EAAM8yF,YAEb,OAAO93D,SACC43D,EAAMjM,OAEhB,IADA,IAAIhmI,EAAI,EACDA,EAAIiyI,EAAMjM,MAAMnpI,SAAUmD,EAAG,CAClC,IAA2B2yI,EAAhBV,EAAMjM,MAAMhmI,GAAchI,OACrC,GAAIuzC,EAAIonG,EAAM,MACdpnG,GAAKonG,EAEP,OAAOt4D,EAAIr6E,EAGb,SAAS4yI,GAAOv+H,EAAK4iC,GAAI,OAAOA,GAAK5iC,EAAI1D,OAASsmC,EAAI5iC,EAAI1D,MAAQ0D,EAAImpB,KAEtE,SAASq1G,GAAcz6I,EAAS4H,GAC9B,OAAOyhE,OAAOrpE,EAAQ06I,oBAAoB9yI,EAAI5H,EAAQ26I,kBAIxD,SAASC,GAAI7N,EAAMC,EAAI6G,GAGrB,QAFgB,IAAXA,IAAoBA,EAAS,QAE5Br2I,gBAAgBo9I,IAAQ,OAAO,IAAIA,GAAI7N,EAAMC,EAAI6G,GACvDr2I,KAAKuvI,KAAOA,EACZvvI,KAAKwvI,GAAKA,EACVxvI,KAAKq2I,OAASA,EAKhB,SAAS17H,GAAIgkB,EAAGC,GAAK,OAAOD,EAAE4wG,KAAO3wG,EAAE2wG,MAAQ5wG,EAAE6wG,GAAK5wG,EAAE4wG,GAExD,SAAS6N,GAAe1+G,EAAGC,GAAK,OAAOD,EAAE03G,QAAUz3G,EAAEy3G,QAAuB,GAAb17H,GAAIgkB,EAAGC,GAEtE,SAAS0+G,GAAQ1gI,GAAI,OAAOwgI,GAAIxgI,EAAE2yH,KAAM3yH,EAAE4yH,IAC1C,SAAS+N,GAAO5+G,EAAGC,GAAK,OAAOjkB,GAAIgkB,EAAGC,GAAK,EAAIA,EAAID,EACnD,SAAS6+G,GAAO7+G,EAAGC,GAAK,OAAOjkB,GAAIgkB,EAAGC,GAAK,EAAID,EAAIC,EAInD,SAAS6+G,GAASh/H,EAAKgmE,GAAI,OAAOr5D,KAAKC,IAAI5M,EAAI1D,MAAOqQ,KAAKE,IAAIm5D,EAAGhmE,EAAI1D,MAAQ0D,EAAImpB,KAAO,IACzF,SAAS81G,GAAQj/H,EAAK0S,GACpB,GAAIA,EAAIo+G,KAAO9wH,EAAI1D,MAAS,OAAOqiI,GAAI3+H,EAAI1D,MAAO,GAClD,IAAImwG,EAAOzsG,EAAI1D,MAAQ0D,EAAImpB,KAAO,EAClC,OAAIzW,EAAIo+G,KAAOrkB,EAAekyB,GAAIlyB,EAAMkxB,GAAQ39H,EAAKysG,GAAMzhH,KAAKxC,QACzD02I,GAAUxsH,EAAKirH,GAAQ39H,EAAK0S,EAAIo+G,MAAM9lI,KAAKxC,QAEpD,SAAS02I,GAAUxsH,EAAKysH,GACtB,IAAIpO,EAAKr+G,EAAIq+G,GACb,OAAU,MAANA,GAAcA,EAAKoO,EAAkBR,GAAIjsH,EAAIo+G,KAAMqO,GAC9CpO,EAAK,EAAY4N,GAAIjsH,EAAIo+G,KAAM,GAC1Bp+G,EAEhB,SAAS0sH,GAAap/H,EAAKy9B,GAEzB,IADA,IAAIi0F,EAAM,GACD/lI,EAAI,EAAGA,EAAI8xC,EAAMj1C,OAAQmD,IAAO+lI,EAAI/lI,GAAKszI,GAAQj/H,EAAKy9B,EAAM9xC,IACrE,OAAO+lI,EAjMTK,GAAa1uI,UAAU2uI,IAAM,WAAa,OAAOzwI,KAAKmxB,KAAOnxB,KAAK4wI,OAAO3pI,QACzEupI,GAAa1uI,UAAUg8I,IAAM,WAAa,OAAO99I,KAAKmxB,KAAOnxB,KAAKm8I,WAClE3L,GAAa1uI,UAAUi8I,KAAO,WAAa,OAAO/9I,KAAK4wI,OAAOjhF,OAAO3vD,KAAKmxB,WAAQroB,GAClF0nI,GAAa1uI,UAAUkmC,KAAO,WAC5B,GAAIhoC,KAAKmxB,IAAMnxB,KAAK4wI,OAAO3pI,OACvB,OAAOjH,KAAK4wI,OAAOjhF,OAAO3vD,KAAKmxB,QAErCq/G,GAAa1uI,UAAUk8I,IAAM,SAAUzwI,GACrC,IAAIiiI,EAAKxvI,KAAK4wI,OAAOjhF,OAAO3vD,KAAKmxB,KAIjC,GAFoB,iBAAT5jB,EAA0BiiI,GAAMjiI,EAC/BiiI,IAAOjiI,EAAM+6C,KAAO/6C,EAAM+6C,KAAKknF,GAAMjiI,EAAMiiI,IAClC,QAAVxvI,KAAKmxB,IAAYq+G,GAE9BgB,GAAa1uI,UAAUm8I,SAAW,SAAU1wI,GAE1C,IADA,IAAI2a,EAAQloB,KAAKmxB,IACVnxB,KAAKg+I,IAAIzwI,KAChB,OAAOvN,KAAKmxB,IAAMjJ,GAEpBsoH,GAAa1uI,UAAUo8I,SAAW,WAEhC,IADA,IAAIh2H,EAAQloB,KAAKmxB,IACV,aAAam3B,KAAKtoD,KAAK4wI,OAAOjhF,OAAO3vD,KAAKmxB,SAAWnxB,KAAKmxB,IACjE,OAAOnxB,KAAKmxB,IAAMjJ,GAEpBsoH,GAAa1uI,UAAUq8I,UAAY,WAAan+I,KAAKmxB,IAAMnxB,KAAK4wI,OAAO3pI,QACvEupI,GAAa1uI,UAAUs8I,OAAS,SAAU5O,GACxC,IAAIzxG,EAAQ/9B,KAAK4wI,OAAOj8H,QAAQ66H,EAAIxvI,KAAKmxB,KACzC,GAAI4M,GAAS,EAAsB,OAAlB/9B,KAAKmxB,IAAM4M,GAAc,GAE5CyyG,GAAa1uI,UAAUu8I,OAAS,SAAU55D,GAAIzkF,KAAKmxB,KAAOszD,GAC1D+rD,GAAa1uI,UAAUw8I,OAAS,WAK9B,OAJIt+I,KAAKi8I,cAAgBj8I,KAAKkoB,QAC5BloB,KAAKk8I,gBAAkBtI,EAAY5zI,KAAK4wI,OAAQ5wI,KAAKkoB,MAAOloB,KAAKkwI,QAASlwI,KAAKi8I,cAAej8I,KAAKk8I,iBACnGl8I,KAAKi8I,cAAgBj8I,KAAKkoB,OAErBloB,KAAKk8I,iBAAmBl8I,KAAKm8I,UAAYvI,EAAY5zI,KAAK4wI,OAAQ5wI,KAAKm8I,UAAWn8I,KAAKkwI,SAAW,IAE3GM,GAAa1uI,UAAUy8I,YAAc,WACnC,OAAO3K,EAAY5zI,KAAK4wI,OAAQ,KAAM5wI,KAAKkwI,UACxClwI,KAAKm8I,UAAYvI,EAAY5zI,KAAK4wI,OAAQ5wI,KAAKm8I,UAAWn8I,KAAKkwI,SAAW,IAE/EM,GAAa1uI,UAAUyL,MAAQ,SAAUixI,EAASC,EAASC,GACzD,GAAsB,iBAAXF,EAOJ,CACL,IAAIjxI,EAAQvN,KAAK4wI,OAAOxwF,MAAMpgD,KAAKmxB,KAAK5jB,MAAMixI,GAC9C,OAAIjxI,GAASA,EAAMkiB,MAAQ,EAAY,MACnCliB,IAAqB,IAAZkxI,IAAqBz+I,KAAKmxB,KAAO5jB,EAAM,GAAGtG,QAChDsG,GAVP,IAAIoxI,EAAQ,SAAU3hG,GAAO,OAAO0hG,EAAkB1hG,EAAI1D,cAAgB0D,GAE1E,GAAI2hG,EADS3+I,KAAK4wI,OAAOjqF,OAAO3mD,KAAKmxB,IAAKqtH,EAAQv3I,UAC7B03I,EAAMH,GAEzB,OADgB,IAAZC,IAAqBz+I,KAAKmxB,KAAOqtH,EAAQv3I,SACtC,GASbupI,GAAa1uI,UAAU2f,QAAU,WAAY,OAAOzhB,KAAK4wI,OAAOxwF,MAAMpgD,KAAKkoB,MAAOloB,KAAKmxB,MACvFq/G,GAAa1uI,UAAU88I,eAAiB,SAAUn6D,EAAGnmB,GACnDt+D,KAAKm8I,WAAa13D,EAClB,IAAM,OAAOnmB,IACb,QAAUt+D,KAAKm8I,WAAa13D,IAE9B+rD,GAAa1uI,UAAU+8I,UAAY,SAAUp6D,GAC3C,IAAIq6D,EAAS9+I,KAAKg8I,WAClB,OAAO8C,GAAUA,EAAOD,UAAUp6D,IAEpC+rD,GAAa1uI,UAAUi9I,UAAY,WACjC,IAAID,EAAS9+I,KAAKg8I,WAClB,OAAO8C,GAAUA,EAAOC,UAAU/+I,KAAKmxB,MAgIzC,IAAI6tH,GAAe,SAAS1rG,EAAOurG,GACjC7+I,KAAKszC,MAAQA,EACbtzC,KAAK6+I,UAAYA,GAGfI,GAAU,SAASxgI,EAAK60B,EAAOi8F,EAAMsP,GACvC7+I,KAAKszC,MAAQA,EACbtzC,KAAKye,IAAMA,EACXze,KAAKuvI,KAAOA,EACZvvI,KAAKk/I,aAAeL,GAAa,EACjC7+I,KAAKm/I,WAAa,KAClBn/I,KAAKo/I,aAAe,GAwCtB,SAASC,GAAc31G,EAAI6lG,EAAM/1E,EAAS8lF,GAGxC,IAAIx/F,EAAK,CAACpW,EAAG4J,MAAMisG,SAAUC,EAAc,GAE3CC,GAAQ/1G,EAAI6lG,EAAK9lI,KAAMigC,EAAGjrB,IAAIgb,KAAM+/B,GAAS,SAAU1zB,EAAKnvB,GAAS,OAAOmpC,EAAGlyC,KAAKk4B,EAAKnvB,KACjF6oI,EAAaF,GAkCrB,IAjCA,IAAIhsG,EAAQkmB,EAAQlmB,MAGhBwZ,EAAO,SAAWvqD,GACpBi3D,EAAQ2lF,WAAar/F,EACrB,IAAI4/F,EAAUh2G,EAAG4J,MAAMqsG,SAASp9I,GAAI6H,EAAI,EAAGtD,EAAK,EAChD0yD,EAAQlmB,OAAQ,EAChBmsG,GAAQ/1G,EAAI6lG,EAAK9lI,KAAMi2I,EAAQjmH,KAAM+/B,GAAS,SAAU1zB,EAAKnvB,GAG3D,IAFA,IAAIuR,EAAQ9d,EAELtD,EAAKg/B,GAAK,CACf,IAAI85G,EAAQ9/F,EAAG11C,GACXw1I,EAAQ95G,GACRga,EAAG5pB,OAAO9rB,EAAG,EAAG07B,EAAKga,EAAG11C,EAAE,GAAIw1I,GAClCx1I,GAAK,EACLtD,EAAKskB,KAAKE,IAAIwa,EAAK85G,GAErB,GAAKjpI,EACL,GAAI+oI,EAAQG,OACV//F,EAAG5pB,OAAOhO,EAAO9d,EAAI8d,EAAO4d,EAAK,WAAanvB,GAC9CvM,EAAI8d,EAAQ,OAEZ,KAAOA,EAAQ9d,EAAG8d,GAAS,EAAG,CAC5B,IAAIyoH,EAAM7wF,EAAG53B,EAAM,GACnB43B,EAAG53B,EAAM,IAAMyoH,EAAMA,EAAM,IAAM,IAAM,WAAah6H,KAGvD6oI,GACHhmF,EAAQlmB,MAAQA,EAChBkmB,EAAQ2lF,WAAa,KACrB3lF,EAAQ4lF,aAAe,GAGhB78I,EAAI,EAAGA,EAAImnC,EAAG4J,MAAMqsG,SAAS14I,SAAU1E,EAAGuqD,EAAMvqD,GAEzD,MAAO,CAAC4Z,OAAQ2jC,EAAIjjB,QAAS2iH,EAAYM,SAAWN,EAAYO,UAAYP,EAAc,MAG5F,SAASQ,GAAct2G,EAAI6lG,EAAM0Q,GAC/B,IAAK1Q,EAAKpzH,QAAUozH,EAAKpzH,OAAO,IAAMutB,EAAG4J,MAAMisG,QAAS,CACtD,IAAI/lF,EAAU0mF,GAAiBx2G,EAAIkzG,GAAOrN,IACtC4Q,EAAa5Q,EAAK9lI,KAAKxC,OAASyiC,EAAGlnC,QAAQ49I,oBAAsBnQ,GAAUvmG,EAAGjrB,IAAIgb,KAAM+/B,EAAQlmB,OAChGrxC,EAASo9I,GAAc31G,EAAI6lG,EAAM/1E,GACjC2mF,IAAc3mF,EAAQlmB,MAAQ6sG,GAClC5Q,EAAK8Q,WAAa7mF,EAAQmtE,MAAMwZ,GAChC5Q,EAAKpzH,OAASla,EAAOka,OACjBla,EAAO46B,QAAW0yG,EAAK+Q,aAAer+I,EAAO46B,QACxC0yG,EAAK+Q,eAAgB/Q,EAAK+Q,aAAe,MAC9CL,IAAmBv2G,EAAGjrB,IAAI8hI,oBAC1B72G,EAAGjrB,IAAI+hI,aAAep1H,KAAKC,IAAIqe,EAAGjrB,IAAI+hI,eAAgB92G,EAAGjrB,IAAI8hI,oBAEnE,OAAOhR,EAAKpzH,OAGd,SAAS+jI,GAAiBx2G,EAAI+6C,EAAGg8D,GAC/B,IAAIhiI,EAAMirB,EAAGjrB,IAAK7H,EAAU8yB,EAAG9yB,QAC/B,IAAK6H,EAAIgb,KAAKsiH,WAAc,OAAO,IAAIkD,GAAQxgI,GAAK,EAAMgmE,GAC1D,IAAIv8D,EAAQw4H,GAAch3G,EAAI+6C,EAAGg8D,GAC7BE,EAAQz4H,EAAQzJ,EAAI1D,OAASqhI,GAAQ39H,EAAKyJ,EAAQ,GAAGm4H,WACrD7mF,EAAUmnF,EAAQ1B,GAAQ2B,UAAUniI,EAAKkiI,EAAOz4H,GAAS,IAAI+2H,GAAQxgI,EAAKs9H,GAAWt9H,EAAIgb,MAAOvR,GASpG,OAPAzJ,EAAIg+H,KAAKv0H,EAAOu8D,GAAG,SAAU8qD,GAC3BsR,GAAYn3G,EAAI6lG,EAAK9lI,KAAM+vD,GAC3B,IAAIroC,EAAMqoC,EAAQ+1E,KAClBA,EAAK8Q,WAAalvH,GAAOszD,EAAI,GAAKtzD,EAAM,GAAK,GAAKA,GAAOva,EAAQkqI,UAAY3vH,EAAMva,EAAQmqI,OAASvnF,EAAQmtE,OAAS,KACrHntE,EAAQwnF,cAENP,IAAWhiI,EAAI+hI,aAAehnF,EAAQ+1E,MACnC/1E,EAMT,SAASqnF,GAAYn3G,EAAIjgC,EAAM+vD,EAASynF,GACtC,IAAIxnH,EAAOiQ,EAAGjrB,IAAIgb,KACd82G,EAAS,IAAIC,GAAa/mI,EAAMigC,EAAGlnC,QAAQ0tI,QAAS12E,GAGxD,IAFA+2E,EAAOroH,MAAQqoH,EAAOp/G,IAAM8vH,GAAW,EAC3B,IAARx3I,GAAcy3I,GAAcznH,EAAM+/B,EAAQlmB,QACtCi9F,EAAOE,OACb0Q,GAAU1nH,EAAM82G,EAAQ/2E,EAAQlmB,OAChCi9F,EAAOroH,MAAQqoH,EAAOp/G,IAI1B,SAAS+vH,GAAcznH,EAAM6Z,GAC3B,GAAI7Z,EAAKo3G,UAAa,OAAOp3G,EAAKo3G,UAAUv9F,GAC5C,GAAK7Z,EAAKy1G,UAAV,CACA,IAAI5wE,EAAQ4wE,GAAUz1G,EAAM6Z,GAC5B,OAAIgrB,EAAM7kC,KAAKo3G,UAAoBvyE,EAAM7kC,KAAKo3G,UAAUvyE,EAAMhrB,YAA9D,GAGF,SAAS6tG,GAAU1nH,EAAM82G,EAAQj9F,EAAOgrB,GACtC,IAAK,IAAIl0D,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvBk0D,IAASA,EAAM,GAAK4wE,GAAUz1G,EAAM6Z,GAAO7Z,MAC/C,IAAI9iB,EAAQ8iB,EAAKi3G,MAAMH,EAAQj9F,GAC/B,GAAIi9F,EAAOp/G,IAAMo/G,EAAOroH,MAAS,OAAOvR,EAE1C,MAAM,IAAI7I,MAAM,QAAU2rB,EAAKt1B,KAAO,8BA9IxC86I,GAAQn9I,UAAU+8I,UAAY,SAAUp6D,GACtC,IAAI8qD,EAAOvvI,KAAKye,IAAI29H,QAAQp8I,KAAKuvI,KAAO9qD,GAExC,OADY,MAAR8qD,GAAgB9qD,EAAIzkF,KAAKk/I,eAAgBl/I,KAAKk/I,aAAez6D,GAC1D8qD,GAGT0P,GAAQn9I,UAAUi9I,UAAY,SAAUt6D,GACtC,IAAKzkF,KAAKm/I,WAAc,OAAO,KAC/B,KAAOn/I,KAAKm/I,WAAWn/I,KAAKo/I,eAAiB36D,GACzCzkF,KAAKo/I,cAAgB,EACzB,IAAI99I,EAAOtB,KAAKm/I,WAAWn/I,KAAKo/I,aAAe,GAC/C,MAAO,CAAC99I,KAAMA,GAAQA,EAAKyK,QAAQ,kBAAmB,IAC9C67B,KAAM5nC,KAAKm/I,WAAWn/I,KAAKo/I,cAAgB36D,IAGrDw6D,GAAQn9I,UAAUk/I,SAAW,WAC3BhhJ,KAAKuvI,OACDvvI,KAAKk/I,aAAe,GAAKl/I,KAAKk/I,gBAGpCD,GAAQ2B,UAAY,SAAUniI,EAAKkiI,EAAOpR,GACxC,OAAIoR,aAAiB3B,GACV,IAAIC,GAAQxgI,EAAKwxH,GAAUxxH,EAAIgb,KAAMknH,EAAMrtG,OAAQi8F,EAAMoR,EAAM9B,WAE/D,IAAII,GAAQxgI,EAAKwxH,GAAUxxH,EAAIgb,KAAMknH,GAAQpR,IAG1D0P,GAAQn9I,UAAU6kI,KAAO,SAAUya,GACjC,IAAI9tG,GAAiB,IAAT8tG,EAAiBnR,GAAUjwI,KAAKye,IAAIgb,KAAMz5B,KAAKszC,OAAStzC,KAAKszC,MACzE,OAAOtzC,KAAKk/I,aAAe,EAAI,IAAIF,GAAa1rG,EAAOtzC,KAAKk/I,cAAgB5rG,GAoH9E,IAAI+tG,GAAQ,SAAS9Q,EAAQjvI,EAAMgyC,GACjCtzC,KAAKkoB,MAAQqoH,EAAOroH,MAAOloB,KAAK8lC,IAAMyqG,EAAOp/G,IAC7CnxB,KAAK4wI,OAASL,EAAO9uH,UACrBzhB,KAAKsB,KAAOA,GAAQ,KACpBtB,KAAKszC,MAAQA,GAIf,SAASguG,GAAU53G,EAAIvY,EAAKsvH,EAASc,GACnC,IAAmC5qI,EAGoC6qI,EAHnE/iI,EAAMirB,EAAGjrB,IAAKgb,EAAOhb,EAAIgb,KAEzB81G,EAAO6M,GAAQ39H,GADnB0S,EAAMusH,GAAQj/H,EAAK0S,IACSo+G,MAAO/1E,EAAU0mF,GAAiBx2G,EAAIvY,EAAIo+G,KAAMkR,GACxElQ,EAAS,IAAIC,GAAajB,EAAK9lI,KAAMigC,EAAGlnC,QAAQ0tI,QAAS12E,GAE7D,IADI+nF,IAAWC,EAAS,KAChBD,GAAWhR,EAAOp/G,IAAMA,EAAIq+G,MAAQe,EAAOE,OACjDF,EAAOroH,MAAQqoH,EAAOp/G,IACtBxa,EAAQwqI,GAAU1nH,EAAM82G,EAAQ/2E,EAAQlmB,OACpCiuG,GAAWC,EAAO5zI,KAAK,IAAIyzI,GAAM9Q,EAAQ55H,EAAOs5H,GAAUxxH,EAAIgb,KAAM+/B,EAAQlmB,SAElF,OAAOiuG,EAAUC,EAAS,IAAIH,GAAM9Q,EAAQ55H,EAAO6iD,EAAQlmB,OAG7D,SAASmuG,GAAmBngJ,EAAMk7F,GAChC,GAAIl7F,EAAQ,OAAS,CACnB,IAAIogJ,EAAYpgJ,EAAKiM,MAAM,qCAC3B,IAAKm0I,EAAa,MAClBpgJ,EAAOA,EAAK8+C,MAAM,EAAGshG,EAAUjyH,OAASnuB,EAAK8+C,MAAMshG,EAAUjyH,MAAQiyH,EAAU,GAAGz6I,QAClF,IAAIsvB,EAAOmrH,EAAU,GAAK,UAAY,YAClB,MAAhBllD,EAAOjmE,GACPimE,EAAOjmE,GAAQmrH,EAAU,GACnB,IAAK7iF,OAAO,YAAc6iF,EAAU,GAAK,aAAcp5F,KAAKk0C,EAAOjmE,MACzEimE,EAAOjmE,IAAS,IAAMmrH,EAAU,IAEtC,OAAOpgJ,EAIT,SAASm+I,GAAQ/1G,EAAIjgC,EAAMgwB,EAAM+/B,EAASpnD,EAAGotI,EAAaF,GACxD,IAAIqC,EAAeloH,EAAKkoH,aACJ,MAAhBA,IAAwBA,EAAej4G,EAAGlnC,QAAQm/I,cACtD,IACkEhrI,EAD9DirI,EAAW,EAAGC,EAAW,KACzBtR,EAAS,IAAIC,GAAa/mI,EAAMigC,EAAGlnC,QAAQ0tI,QAAS12E,GACpD8E,EAAQ50B,EAAGlnC,QAAQs/I,cAAgB,CAAC,MAExC,IADY,IAARr4I,GAAcg4I,GAAmBP,GAAcznH,EAAM+/B,EAAQlmB,OAAQksG,IACjEjP,EAAOE,OAAO,CASpB,GARIF,EAAOp/G,IAAMuY,EAAGlnC,QAAQ49I,oBAC1BuB,GAAe,EACXrC,GAAcuB,GAAYn3G,EAAIjgC,EAAM+vD,EAAS+2E,EAAOp/G,KACxDo/G,EAAOp/G,IAAM1nB,EAAKxC,OAClB0P,EAAQ,MAERA,EAAQ8qI,GAAmBN,GAAU1nH,EAAM82G,EAAQ/2E,EAAQlmB,MAAOgrB,GAAQkhF,GAExElhF,EAAO,CACT,IAAIyjF,EAAQzjF,EAAM,GAAGn6D,KACjB49I,IAASprI,EAAQ,MAAQA,EAAQorI,EAAQ,IAAMprI,EAAQorI,IAE7D,IAAKJ,GAAgBE,GAAYlrI,EAAO,CACtC,KAAOirI,EAAWrR,EAAOroH,OAEvB9V,EADAwvI,EAAWx2H,KAAKE,IAAIilH,EAAOroH,MAAO05H,EAAW,KACjCC,GAEdA,EAAWlrI,EAEb45H,EAAOroH,MAAQqoH,EAAOp/G,IAExB,KAAOywH,EAAWrR,EAAOp/G,KAAK,CAI5B,IAAIA,EAAM/F,KAAKE,IAAIilH,EAAOp/G,IAAKywH,EAAW,KAC1CxvI,EAAE+e,EAAK0wH,GACPD,EAAWzwH,GASf,SAASuvH,GAAch3G,EAAI+6C,EAAGg8D,GAG5B,IAFA,IAAIuB,EAAWC,EAASxjI,EAAMirB,EAAGjrB,IAC7ByjI,EAAMzB,GAAW,EAAIh8D,GAAK/6C,EAAGjrB,IAAIgb,KAAKy1G,UAAY,IAAO,KACpDhoF,EAASu9B,EAAGv9B,EAASg7F,IAAOh7F,EAAQ,CAC3C,GAAIA,GAAUzoC,EAAI1D,MAAS,OAAO0D,EAAI1D,MACtC,IAAIw0H,EAAO6M,GAAQ39H,EAAKyoC,EAAS,GAAIm7B,EAAQktD,EAAK8Q,WAClD,GAAIh+D,KAAWo+D,GAAWv5F,GAAUm7B,aAAiB28D,GAAe38D,EAAMw8D,UAAY,IAAMpgI,EAAI+hI,cAC5F,OAAOt5F,EACX,IAAIi7F,EAAWvO,EAAYrE,EAAK9lI,KAAM,KAAMigC,EAAGlnC,QAAQ0tI,UACxC,MAAX+R,GAAmBD,EAAYG,KACjCF,EAAU/6F,EAAS,EACnB86F,EAAYG,GAGhB,OAAOF,EAGT,SAASG,GAAgB3jI,EAAKgmE,GAE5B,GADAhmE,EAAI+hI,aAAep1H,KAAKE,IAAI7M,EAAI+hI,aAAc/7D,KAC1ChmE,EAAI8hI,kBAAoB97D,EAAI,IAAhC,CAEA,IADA,IAAIv8D,EAAQzJ,EAAI1D,MACPw0H,EAAO9qD,EAAI,EAAG8qD,EAAOrnH,EAAOqnH,IAAQ,CAC3C,IAAIoR,EAAQvE,GAAQ39H,EAAK8wH,GAAM8Q,WAI/B,GAAIM,MAAYA,aAAiB3B,KAAiBzP,EAAOoR,EAAM9B,UAAYp6D,GAAI,CAC7Ev8D,EAAQqnH,EAAO,EACf,OAGJ9wH,EAAI8hI,kBAAoBn1H,KAAKE,IAAI7M,EAAI8hI,kBAAmBr4H,IAI1D,IAAIm6H,IAAmB,EAAOC,IAAoB,EAElD,SAASC,KACPF,IAAmB,EAGrB,SAASG,KACPF,IAAoB,EAKtB,SAASG,GAAWC,EAAQ51C,EAAMD,GAChC7sG,KAAK0iJ,OAASA,EACd1iJ,KAAK8sG,KAAOA,EAAM9sG,KAAK6sG,GAAKA,EAI9B,SAAS81C,GAAiBC,EAAOF,GAC/B,GAAIE,EAAS,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAAG,CAClD,IAAIy4I,EAAOD,EAAMx4I,GACjB,GAAIy4I,EAAKH,QAAUA,EAAU,OAAOG,GAMxC,SAASC,GAAiBF,EAAOC,GAE/B,IADA,IAAI/kH,EACK1zB,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAC5Bw4I,EAAMx4I,IAAMy4I,IAAS/kH,IAAMA,EAAI,KAAKlwB,KAAKg1I,EAAMx4I,IACvD,OAAO0zB,EAIT,SAASilH,GAAcxT,EAAMsT,EAAMG,GACjC,IAAIC,EAAWD,GAAMjjJ,OAAOmjJ,UAAYF,EAAGG,cAAgBH,EAAGG,YAAc,IAAID,UAC5ED,GAAYA,EAASzhH,IAAI+tG,EAAK4T,aAChC5T,EAAK4T,YAAYv1I,KAAKi1I,IAEtBtT,EAAK4T,YAAc5T,EAAK4T,YAAc5T,EAAK4T,YAAY1kH,OAAO,CAACokH,IAAS,CAACA,GACrEI,GAAYA,EAASp8I,IAAI0oI,EAAK4T,cAEpCN,EAAKH,OAAOU,WAAW7T,GAOzB,SAAS8T,GAAkB/c,EAAKgd,EAASC,GACvC,IAAIC,EACJ,GAAIld,EAAO,IAAK,IAAIl8H,EAAI,EAAGA,EAAIk8H,EAAIr/H,SAAUmD,EAAG,CAC9C,IAAIy4I,EAAOvc,EAAIl8H,GAAIs4I,EAASG,EAAKH,OAEjC,GADgC,MAAbG,EAAK/1C,OAAiB41C,EAAOe,cAAgBZ,EAAK/1C,MAAQw2C,EAAUT,EAAK/1C,KAAOw2C,IAC/ET,EAAK/1C,MAAQw2C,GAA0B,YAAfZ,EAAOphJ,QAAwBiiJ,IAAaV,EAAKH,OAAOgB,YAAa,CAC/G,IAAIC,EAAuB,MAAXd,EAAKh2C,KAAe61C,EAAOkB,eAAiBf,EAAKh2C,IAAMy2C,EAAUT,EAAKh2C,GAAKy2C,IACzFE,IAAOA,EAAK,KAAK51I,KAAK,IAAI60I,GAAWC,EAAQG,EAAK/1C,KAAM62C,EAAY,KAAOd,EAAKh2C,MAGtF,OAAO22C,EAET,SAASK,GAAiBvd,EAAKwd,EAAOP,GACpC,IAAIC,EACJ,GAAIld,EAAO,IAAK,IAAIl8H,EAAI,EAAGA,EAAIk8H,EAAIr/H,SAAUmD,EAAG,CAC9C,IAAIy4I,EAAOvc,EAAIl8H,GAAIs4I,EAASG,EAAKH,OAEjC,GAD2B,MAAXG,EAAKh2C,KAAe61C,EAAOkB,eAAiBf,EAAKh2C,IAAMi3C,EAAQjB,EAAKh2C,GAAKi3C,IACxEjB,EAAK/1C,MAAQg3C,GAAwB,YAAfpB,EAAOphJ,QAAwBiiJ,GAAYV,EAAKH,OAAOgB,YAAa,CACzG,IAAIK,EAA4B,MAAblB,EAAK/1C,OAAiB41C,EAAOe,cAAgBZ,EAAK/1C,MAAQg3C,EAAQjB,EAAK/1C,KAAOg3C,IAC/FN,IAAOA,EAAK,KAAK51I,KAAK,IAAI60I,GAAWC,EAAQqB,EAAe,KAAOlB,EAAK/1C,KAAOg3C,EAChC,MAAXjB,EAAKh2C,GAAa,KAAOg2C,EAAKh2C,GAAKi3C,KAG7E,OAAON,EAST,SAASQ,GAAuBvlI,EAAK6lC,GACnC,GAAIA,EAAOkrD,KAAQ,OAAO,KAC1B,IAAIy0C,EAAWjH,GAAOv+H,EAAK6lC,EAAOwoD,KAAKyiC,OAAS6M,GAAQ39H,EAAK6lC,EAAOwoD,KAAKyiC,MAAM4T,YAC3Ee,EAAUlH,GAAOv+H,EAAK6lC,EAAOuoD,GAAG0iC,OAAS6M,GAAQ39H,EAAK6lC,EAAOuoD,GAAG0iC,MAAM4T,YAC1E,IAAKc,IAAaC,EAAW,OAAO,KAEpC,IAAIZ,EAAUh/F,EAAOwoD,KAAK0iC,GAAIsU,EAAQx/F,EAAOuoD,GAAG2iC,GAAI+T,EAA0C,GAA/B5oI,GAAI2pC,EAAOwoD,KAAMxoD,EAAOuoD,IAEnF9xF,EAAQsoI,GAAkBY,EAAUX,EAASC,GAC7Cr4B,EAAO24B,GAAiBK,EAASJ,EAAOP,GAGxCY,EAAiC,GAAtB7/F,EAAO76C,KAAKxC,OAAa2lB,EAASsoH,EAAI5wF,EAAO76C,MAAMxC,QAAUk9I,EAAWb,EAAU,GACjG,GAAIvoI,EAEF,IAAK,IAAI3Q,EAAI,EAAGA,EAAI2Q,EAAM9T,SAAUmD,EAAG,CACrC,IAAIy4I,EAAO9nI,EAAM3Q,GACjB,GAAe,MAAXy4I,EAAKh2C,GAAY,CACnB,IAAI9uE,EAAQ4kH,GAAiBz3B,EAAM23B,EAAKH,QACnC3kH,EACIomH,IAAYtB,EAAKh2C,GAAiB,MAAZ9uE,EAAM8uE,GAAa,KAAO9uE,EAAM8uE,GAAKjgF,GADtDi2H,EAAKh2C,GAAKy2C,GAK9B,GAAIp4B,EAEF,IAAK,IAAI+rB,EAAM,EAAGA,EAAM/rB,EAAKjkH,SAAUgwI,EAAK,CAC1C,IAAImN,EAASl5B,EAAK+rB,GACD,MAAbmN,EAAOv3C,KAAcu3C,EAAOv3C,IAAMjgF,GACnB,MAAfw3H,EAAOt3C,KACK61C,GAAiB5nI,EAAOqpI,EAAO1B,UAE3C0B,EAAOt3C,KAAOlgF,EACVu3H,IAAappI,IAAUA,EAAQ,KAAKnN,KAAKw2I,KAG/CA,EAAOt3C,MAAQlgF,EACXu3H,IAAappI,IAAUA,EAAQ,KAAKnN,KAAKw2I,IAK/CrpI,IAASA,EAAQspI,GAAgBtpI,IACjCmwG,GAAQA,GAAQnwG,IAASmwG,EAAOm5B,GAAgBn5B,IAEpD,IAAIo5B,EAAa,CAACvpI,GAClB,IAAKopI,EAAU,CAEb,IAAkCI,EAA9Bn9G,EAAMkd,EAAO76C,KAAKxC,OAAS,EAC/B,GAAImgC,EAAM,GAAKrsB,EACX,IAAK,IAAIm8H,EAAM,EAAGA,EAAMn8H,EAAM9T,SAAUiwI,EACjB,MAAjBn8H,EAAMm8H,GAAKrqC,KACZ03C,IAAeA,EAAa,KAAK32I,KAAK,IAAI60I,GAAW1nI,EAAMm8H,GAAKwL,OAAQ,KAAM,OACvF,IAAK,IAAItL,EAAM,EAAGA,EAAMhwG,IAAOgwG,EAC3BkN,EAAW12I,KAAK22I,GACpBD,EAAW12I,KAAKs9G,GAElB,OAAOo5B,EAKT,SAASD,GAAgBzB,GACvB,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAAG,CACrC,IAAIy4I,EAAOD,EAAMx4I,GACA,MAAby4I,EAAK/1C,MAAgB+1C,EAAK/1C,MAAQ+1C,EAAKh2C,KAAqC,IAA/Bg2C,EAAKH,OAAO8B,gBACzD5B,EAAM1sH,OAAO9rB,IAAK,GAExB,OAAKw4I,EAAM37I,OACJ27I,EADqB,KAK9B,SAAS6B,GAAqBhmI,EAAKquF,EAAMD,GACvC,IAAI63C,EAAU,KAQd,GAPAjmI,EAAIg+H,KAAK3vC,EAAKyiC,KAAM1iC,EAAG0iC,KAAO,GAAG,SAAUA,GACzC,GAAIA,EAAK4T,YAAe,IAAK,IAAI/4I,EAAI,EAAGA,EAAImlI,EAAK4T,YAAYl8I,SAAUmD,EAAG,CACxE,IAAIu6I,EAAOpV,EAAK4T,YAAY/4I,GAAGs4I,QAC3BiC,EAAKvrH,UAAcsrH,IAAsC,GAA3B/vI,EAAQ+vI,EAASC,KAC9CD,IAAYA,EAAU,KAAK92I,KAAK+2I,QAGpCD,EAAW,OAAO,KAEvB,IADA,IAAI9xC,EAAQ,CAAC,CAAC9F,KAAMA,EAAMD,GAAIA,IACrBziG,EAAI,EAAGA,EAAIs6I,EAAQz9I,SAAUmD,EAEpC,IADA,IAAIw6I,EAAKF,EAAQt6I,GAAI+H,EAAIyyI,EAAG98I,KAAK,GACxB05C,EAAI,EAAGA,EAAIoxD,EAAM3rG,SAAUu6C,EAAG,CACrC,IAAI5qB,EAAIg8E,EAAMpxD,GACd,KAAI7mC,GAAIic,EAAEi2E,GAAI16F,EAAE26F,MAAQ,GAAKnyF,GAAIic,EAAEk2E,KAAM36F,EAAE06F,IAAM,GAAjD,CACA,IAAIg4C,EAAW,CAACrjG,EAAG,GAAIsjG,EAAQnqI,GAAIic,EAAEk2E,KAAM36F,EAAE26F,MAAOi4C,EAAMpqI,GAAIic,EAAEi2E,GAAI16F,EAAE06F,KAClEi4C,EAAQ,IAAMF,EAAGnB,gBAAkBqB,IACnCD,EAASj3I,KAAK,CAACk/F,KAAMl2E,EAAEk2E,KAAMD,GAAI16F,EAAE26F,QACnCi4C,EAAM,IAAMH,EAAGhB,iBAAmBmB,IAClCF,EAASj3I,KAAK,CAACk/F,KAAM36F,EAAE06F,GAAIA,GAAIj2E,EAAEi2E,KACrC+F,EAAM18E,OAAO0zB,MAAMgpD,EAAOiyC,GAC1BrjG,GAAKqjG,EAAS59I,OAAS,GAG3B,OAAO2rG,EAIT,SAASoyC,GAAkBzV,GACzB,IAAIqT,EAAQrT,EAAK4T,YACjB,GAAKP,EAAL,CACA,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAChCw4I,EAAMx4I,GAAGs4I,OAAOuC,WAAW1V,GAC/BA,EAAK4T,YAAc,MAErB,SAAS+B,GAAkB3V,EAAMqT,GAC/B,GAAKA,EAAL,CACA,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAChCw4I,EAAMx4I,GAAGs4I,OAAOU,WAAW7T,GAC/BA,EAAK4T,YAAcP,GAKrB,SAASuC,GAAUzC,GAAU,OAAOA,EAAOe,eAAiB,EAAI,EAChE,SAAS2B,GAAW1C,GAAU,OAAOA,EAAOkB,eAAiB,EAAI,EAKjE,SAASyB,GAAwB1mH,EAAGC,GAClC,IAAI0mH,EAAU3mH,EAAEyxG,MAAMnpI,OAAS23B,EAAEwxG,MAAMnpI,OACvC,GAAe,GAAXq+I,EAAgB,OAAOA,EAC3B,IAAIC,EAAO5mH,EAAE72B,OAAQ09I,EAAO5mH,EAAE92B,OAC1B29I,EAAU9qI,GAAI4qI,EAAKz4C,KAAM04C,EAAK14C,OAASq4C,GAAUxmH,GAAKwmH,GAAUvmH,GACpE,GAAI6mH,EAAW,OAAQA,EACvB,IAAIC,EAAQ/qI,GAAI4qI,EAAK14C,GAAI24C,EAAK34C,KAAOu4C,GAAWzmH,GAAKymH,GAAWxmH,GAChE,OAAI8mH,GACG9mH,EAAEj5B,GAAKg5B,EAAEh5B,GAKlB,SAASggJ,GAAoBpW,EAAMrnH,GACjC,IAAiD6V,EAA7C6nH,EAAMtD,IAAqB/S,EAAK4T,YACpC,GAAIyC,EAAO,IAAK,IAAIC,OAAK,EAAUz7I,EAAI,EAAGA,EAAIw7I,EAAI3+I,SAAUmD,GAC1Dy7I,EAAKD,EAAIx7I,IACFs4I,OAAOoD,WAA0C,OAA5B59H,EAAQ29H,EAAG/4C,KAAO+4C,EAAGh5C,OAC3C9uE,GAASsnH,GAAwBtnH,EAAO8nH,EAAGnD,QAAU,KACvD3kH,EAAQ8nH,EAAGnD,QAEjB,OAAO3kH,EAET,SAASgoH,GAAqBxW,GAAQ,OAAOoW,GAAoBpW,GAAM,GACvE,SAASyW,GAAmBzW,GAAQ,OAAOoW,GAAoBpW,GAAM,GAErE,SAAS0W,GAAoB1W,EAAMC,GACjC,IAAiDzxG,EAA7C6nH,EAAMtD,IAAqB/S,EAAK4T,YACpC,GAAIyC,EAAO,IAAK,IAAIx7I,EAAI,EAAGA,EAAIw7I,EAAI3+I,SAAUmD,EAAG,CAC9C,IAAIy7I,EAAKD,EAAIx7I,GACTy7I,EAAGnD,OAAOoD,YAAyB,MAAXD,EAAG/4C,MAAgB+4C,EAAG/4C,KAAO0iC,KAAiB,MAATqW,EAAGh5C,IAAcg5C,EAAGh5C,GAAK2iC,MACpFzxG,GAASsnH,GAAwBtnH,EAAO8nH,EAAGnD,QAAU,KAAM3kH,EAAQ8nH,EAAGnD,QAE9E,OAAO3kH,EAMT,SAASmoH,GAA0BznI,EAAKm+H,EAAQ9vC,EAAMD,EAAI61C,GACxD,IAAInT,EAAO6M,GAAQ39H,EAAKm+H,GACpBgJ,EAAMtD,IAAqB/S,EAAK4T,YACpC,GAAIyC,EAAO,IAAK,IAAIx7I,EAAI,EAAGA,EAAIw7I,EAAI3+I,SAAUmD,EAAG,CAC9C,IAAIy7I,EAAKD,EAAIx7I,GACb,GAAKy7I,EAAGnD,OAAOoD,UAAf,CACA,IAAI/nH,EAAQ8nH,EAAGnD,OAAO56I,KAAK,GACvB29I,EAAU9qI,GAAIojB,EAAM+uE,KAAMA,IAASq4C,GAAUU,EAAGnD,QAAUyC,GAAUzC,GACpEgD,EAAQ/qI,GAAIojB,EAAM8uE,GAAIA,IAAOu4C,GAAWS,EAAGnD,QAAU0C,GAAW1C,GACpE,KAAI+C,GAAW,GAAKC,GAAS,GAAKD,GAAW,GAAKC,GAAS,KACvDD,GAAW,IAAMI,EAAGnD,OAAOkB,gBAAkBlB,EAAOe,cAAgB9oI,GAAIojB,EAAM8uE,GAAIC,IAAS,EAAInyF,GAAIojB,EAAM8uE,GAAIC,GAAQ,IACrH24C,GAAW,IAAMI,EAAGnD,OAAOkB,gBAAkBlB,EAAOe,cAAgB9oI,GAAIojB,EAAM+uE,KAAMD,IAAO,EAAIlyF,GAAIojB,EAAM+uE,KAAMD,GAAM,IACrH,OAAO,IAQf,SAASs5C,GAAW5W,GAElB,IADA,IAAI5H,EACGA,EAASoe,GAAqBxW,IACjCA,EAAO5H,EAAO7/H,MAAM,GAAG,GAAMynI,KACjC,OAAOA,EAGT,SAAS6W,GAAc7W,GAErB,IADA,IAAI5H,EACGA,EAASqe,GAAmBzW,IAC/BA,EAAO5H,EAAO7/H,KAAK,GAAG,GAAMynI,KAChC,OAAOA,EAKT,SAAS8W,GAAoB9W,GAE3B,IADA,IAAI5H,EAAQyI,EACLzI,EAASqe,GAAmBzW,IACjCA,EAAO5H,EAAO7/H,KAAK,GAAG,GAAMynI,MAC1Ba,IAAUA,EAAQ,KAAKxiI,KAAK2hI,GAEhC,OAAOa,EAKT,SAASkW,GAAa7nI,EAAK8nI,GACzB,IAAIhX,EAAO6M,GAAQ39H,EAAK8nI,GAAQ1xD,EAAMsxD,GAAW5W,GACjD,OAAIA,GAAQ16C,EAAc0xD,EACnB3J,GAAO/nD,GAKhB,SAAS2xD,GAAgB/nI,EAAK8nI,GAC5B,GAAIA,EAAQ9nI,EAAIgoI,WAAc,OAAOF,EACrC,IAAgC5e,EAA5B4H,EAAO6M,GAAQ39H,EAAK8nI,GACxB,IAAKG,GAAajoI,EAAK8wH,GAAS,OAAOgX,EACvC,KAAO5e,EAASqe,GAAmBzW,IAC/BA,EAAO5H,EAAO7/H,KAAK,GAAG,GAAMynI,KAChC,OAAOqN,GAAOrN,GAAQ,EAMxB,SAASmX,GAAajoI,EAAK8wH,GACzB,IAAIqW,EAAMtD,IAAqB/S,EAAK4T,YACpC,GAAIyC,EAAO,IAAK,IAAIC,OAAK,EAAUz7I,EAAI,EAAGA,EAAIw7I,EAAI3+I,SAAUmD,EAE1D,IADAy7I,EAAKD,EAAIx7I,IACDs4I,OAAOoD,UAAf,CACA,GAAe,MAAXD,EAAG/4C,KAAgB,OAAO,EAC9B,IAAI+4C,EAAGnD,OAAOiE,YACC,GAAXd,EAAG/4C,MAAa+4C,EAAGnD,OAAOe,eAAiBmD,GAAkBnoI,EAAK8wH,EAAMsW,GACxE,OAAO,GAGf,SAASe,GAAkBnoI,EAAK8wH,EAAMsT,GACpC,GAAe,MAAXA,EAAKh2C,GAAY,CACnB,IAAI/mE,EAAM+8G,EAAKH,OAAO56I,KAAK,GAAG,GAC9B,OAAO8+I,GAAkBnoI,EAAKqnB,EAAIypG,KAAMoT,GAAiB78G,EAAIypG,KAAK4T,YAAaN,EAAKH,SAEtF,GAAIG,EAAKH,OAAOkB,gBAAkBf,EAAKh2C,IAAM0iC,EAAK9lI,KAAKxC,OACnD,OAAO,EACX,IAAK,IAAI4+I,OAAK,EAAUz7I,EAAI,EAAGA,EAAImlI,EAAK4T,YAAYl8I,SAAUmD,EAE5D,IADAy7I,EAAKtW,EAAK4T,YAAY/4I,IACfs4I,OAAOoD,YAAcD,EAAGnD,OAAOiE,YAAcd,EAAG/4C,MAAQ+1C,EAAKh2C,KACtD,MAATg5C,EAAGh5C,IAAcg5C,EAAGh5C,IAAMg2C,EAAK/1C,QAC/B+4C,EAAGnD,OAAOe,eAAiBZ,EAAKH,OAAOkB,iBACxCgD,GAAkBnoI,EAAK8wH,EAAMsW,GAAO,OAAO,EAKnD,SAASgB,GAAaC,GAIpB,IADA,IAAInxG,EAAI,EAAG0mG,GAFXyK,EAAUX,GAAWW,IAEMryI,OAClBrK,EAAI,EAAGA,EAAIiyI,EAAMjM,MAAMnpI,SAAUmD,EAAG,CAC3C,IAAImlI,EAAO8M,EAAMjM,MAAMhmI,GACvB,GAAImlI,GAAQuX,EAAW,MAChBnxG,GAAK45F,EAAKntI,OAEnB,IAAK,IAAIw0B,EAAIylH,EAAM5nI,OAAQmiB,EAAcA,GAAXylH,EAAQzlH,GAAaniB,OACjD,IAAK,IAAIwiI,EAAM,EAAGA,EAAMrgH,EAAEmO,SAAS99B,SAAUgwI,EAAK,CAChD,IAAItG,EAAM/5G,EAAEmO,SAASkyG,GACrB,GAAItG,GAAO0L,EAAS,MACb1mG,GAAKg7F,EAAIvuI,OAGpB,OAAOuzC,EAMT,SAASoxG,GAAWxX,GAClB,GAAmB,GAAfA,EAAKntI,OAAe,OAAO,EAE/B,IADA,IAA4BulI,EAAxBz/F,EAAMqnG,EAAK9lI,KAAKxC,OAAgB0pI,EAAMpB,EACnC5H,EAASoe,GAAqBpV,IAAM,CACzC,IAAI5yG,EAAQ4pG,EAAO7/H,KAAK,GAAG,GAC3B6oI,EAAM5yG,EAAM+uE,KAAKyiC,KACjBrnG,GAAOnK,EAAM+uE,KAAK0iC,GAAKzxG,EAAM8uE,GAAG2iC,GAGlC,IADAmB,EAAMpB,EACC5H,EAASqe,GAAmBrV,IAAM,CACvC,IAAIqW,EAAUrf,EAAO7/H,KAAK,GAAG,GAC7BogC,GAAOyoG,EAAIlnI,KAAKxC,OAAS+/I,EAAQl6C,KAAK0iC,GAEtCtnG,IADAyoG,EAAMqW,EAAQn6C,GAAG0iC,MACN9lI,KAAKxC,OAAS+/I,EAAQn6C,GAAG2iC,GAEtC,OAAOtnG,EAIT,SAAS++G,GAAYv9G,GACnB,IAAIa,EAAIb,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IAC7B8rB,EAAE28G,QAAU9K,GAAQ39H,EAAKA,EAAI1D,OAC7BwvB,EAAE48G,cAAgBJ,GAAWx8G,EAAE28G,SAC/B38G,EAAE68G,gBAAiB,EACnB3oI,EAAIg+H,MAAK,SAAUlN,GACjB,IAAIrnG,EAAM6+G,GAAWxX,GACjBrnG,EAAMqC,EAAE48G,gBACV58G,EAAE48G,cAAgBj/G,EAClBqC,EAAE28G,QAAU3X,MASlB,IAAI8X,GAAO,SAAS59I,EAAM05I,EAAamE,GACrCtnJ,KAAKyJ,KAAOA,EACZy7I,GAAkBllJ,KAAMmjJ,GACxBnjJ,KAAKoC,OAASklJ,EAAiBA,EAAetnJ,MAAQ,GASxD,SAASunJ,GAAWhY,EAAM9lI,EAAM05I,EAAamE,GAC3C/X,EAAK9lI,KAAOA,EACR8lI,EAAK8Q,aAAc9Q,EAAK8Q,WAAa,MACrC9Q,EAAKpzH,SAAUozH,EAAKpzH,OAAS,MACf,MAAdozH,EAAKv4H,QAAiBu4H,EAAKv4H,MAAQ,MACvCguI,GAAkBzV,GAClB2V,GAAkB3V,EAAM4T,GACxB,IAAIqE,EAAYF,EAAiBA,EAAe/X,GAAQ,EACpDiY,GAAajY,EAAKntI,QAAUu6I,GAAiBpN,EAAMiY,GAIzD,SAASC,GAAYlY,GACnBA,EAAK96H,OAAS,KACduwI,GAAkBzV,GApBpB8X,GAAKvlJ,UAAU86I,OAAS,WAAc,OAAOA,GAAO58I,OACpDm5I,GAAWkO,IAyBX,IAAIK,GAAoB,GAAIC,GAA4B,GACxD,SAASC,GAAoBjxI,EAAOnU,GAClC,IAAKmU,GAAS,QAAQ2xC,KAAK3xC,GAAU,OAAO,KAC5C,IAAIu3G,EAAQ1rH,EAAQs/I,aAAe6F,GAA4BD,GAC/D,OAAOx5B,EAAMv3G,KACVu3G,EAAMv3G,GAASA,EAAM5K,QAAQ,OAAQ,UAQ1C,SAAS87I,GAAiBn+G,EAAIo+G,GAI5B,IAAI/0I,EAAU6/H,EAAK,OAAQ,KAAM,KAAMtB,EAAS,sBAAwB,MACpEyW,EAAU,CAACC,IAAKpV,EAAK,MAAO,CAAC7/H,GAAU,mBAAoBA,QAASA,EACzD+hI,IAAK,EAAG3jH,IAAK,EAAGuY,GAAIA,EACpBu+G,eAAe,EACfC,YAAax+G,EAAGguE,UAAU,iBACzCowC,EAAS/N,QAAU,GAGnB,IAAK,IAAI3vI,EAAI,EAAGA,IAAM09I,EAASz0F,KAAOy0F,EAASz0F,KAAKpsD,OAAS,GAAImD,IAAK,CACpE,IAAImlI,EAAOnlI,EAAI09I,EAASz0F,KAAKjpD,EAAI,GAAK09I,EAASvY,KAAMv4H,OAAQ,EAC7D+wI,EAAQ52H,IAAM,EACd42H,EAAQI,SAAWC,GAGfpO,GAAgBtwG,EAAG9yB,QAAQmjI,WAAa/iI,EAAQohI,GAAS7I,EAAM7lG,EAAGjrB,IAAIjG,cACtEuvI,EAAQI,SAAWE,GAAkBN,EAAQI,SAAUnxI,IAC3D+wI,EAAQrtI,IAAM,GAEd4tI,GAAkB/Y,EAAMwY,EAAS/H,GAAct2G,EAAI6lG,EADzBuY,GAAYp+G,EAAG9yB,QAAQ2xI,kBAAoB3L,GAAOrN,KAExEA,EAAK+Q,eACH/Q,EAAK+Q,aAAaR,UAClBiI,EAAQjI,QAAU9M,EAAYzD,EAAK+Q,aAAaR,QAASiI,EAAQjI,SAAW,KAC5EvQ,EAAK+Q,aAAaP,YAClBgI,EAAQhI,UAAY/M,EAAYzD,EAAK+Q,aAAaP,UAAWgI,EAAQhI,WAAa,MAI9D,GAAtBgI,EAAQrtI,IAAIzT,QACZ8gJ,EAAQrtI,IAAI9M,KAAK,EAAG,EAAGm6I,EAAQh1I,QAAQtL,YAAYqyI,GAAiBpwG,EAAG9yB,QAAQmjI,WAG1E,GAAL3vI,GACF09I,EAAS/N,QAAQr/H,IAAMqtI,EAAQrtI,IAC/BotI,EAAS/N,QAAQ7rB,MAAQ,MAE9B45B,EAAS/N,QAAQyO,OAASV,EAAS/N,QAAQyO,KAAO,KAAK56I,KAAKm6I,EAAQrtI,MAC7DotI,EAAS/N,QAAQ0O,SAAWX,EAAS/N,QAAQ0O,OAAS,KAAK76I,KAAK,KAKtE,GAAI0jI,EAAQ,CACV,IAAIpmB,EAAO68B,EAAQh1I,QAAQ8gH,WACvB,aAAavrE,KAAK4iE,EAAKnoH,YAAemoH,EAAKnkH,eAAiBmkH,EAAKnkH,cAAc,cAC/EghJ,EAAQh1I,QAAQhQ,UAAY,oBAOlC,OAJAy1I,GAAO9uG,EAAI,aAAcA,EAAIo+G,EAASvY,KAAMwY,EAAQC,KAChDD,EAAQC,IAAIjlJ,YACZglJ,EAAQhI,UAAY/M,EAAY+U,EAAQC,IAAIjlJ,UAAWglJ,EAAQhI,WAAa,KAEzEgI,EAGT,SAASW,GAA8BlZ,GACrC,IAAIkB,EAAQiC,EAAI,OAAQ,IAAU,kBAGlC,OAFAjC,EAAMjoI,MAAQ,MAAQ+mI,EAAG9hD,WAAW,GAAG50D,SAAS,IAChD43G,EAAM16H,aAAa,aAAc06H,EAAMjoI,OAChCioI,EAKT,SAAS0X,GAAWL,EAASt+I,EAAMkN,EAAOgyI,EAAYC,EAAU7xI,EAAK1D,GACnE,GAAK5J,EAAL,CACA,IAEIsJ,EAFA81I,EAAcd,EAAQG,YAAcA,GAAYz+I,EAAMs+I,EAAQE,eAAiBx+I,EAC/Eq/I,EAAUf,EAAQr+G,GAAG4J,MAAMy1G,aAAcC,GAAW,EAExD,GAAKF,EAAQxgG,KAAK7+C,GAMX,CACLsJ,EAAU7K,SAASC,yBAEnB,IADA,IAAIgpB,EAAM,IACG,CACX23H,EAAQ7jF,UAAY9zC,EACpB,IAAIhf,EAAI22I,EAAQt7I,KAAK/D,GACjBsrI,EAAU5iI,EAAIA,EAAEsd,MAAQ0B,EAAM1nB,EAAKxC,OAASkqB,EAChD,GAAI4jH,EAAS,CACX,IAAIkF,EAAM/xI,SAAS86C,eAAe6lG,EAAYzoG,MAAMjvB,EAAKA,EAAM4jH,IAC3D3D,GAAMC,EAAa,EAAKt+H,EAAQtL,YAAYkrI,EAAI,OAAQ,CAACsH,KACtDlnI,EAAQtL,YAAYwyI,GAC3B8N,EAAQrtI,IAAI9M,KAAKm6I,EAAQ52H,IAAK42H,EAAQ52H,IAAM4jH,EAASkF,GACrD8N,EAAQjT,KAAOC,EACfgT,EAAQ52H,KAAO4jH,EAEjB,IAAK5iI,EAAK,MACVgf,GAAO4jH,EAAU,EACjB,IAAIkU,OAAQ,EACZ,GAAY,MAAR92I,EAAE,GAAY,CAChB,IAAI+9H,EAAU6X,EAAQr+G,GAAGlnC,QAAQ0tI,QAASgZ,EAAWhZ,EAAU6X,EAAQjT,IAAM5E,GAC7E+Y,EAAQl2I,EAAQtL,YAAYkrI,EAAI,OAAQsC,EAASiU,GAAW,YACtDlzI,aAAa,OAAQ,gBAC3BizI,EAAMjzI,aAAa,UAAW,MAC9B+xI,EAAQjT,KAAOoU,MACE,MAAR/2I,EAAE,IAAsB,MAARA,EAAE,KAC3B82I,EAAQl2I,EAAQtL,YAAYkrI,EAAI,OAAgB,MAARxgI,EAAE,GAAa,IAAW,IAAU,oBACtE6D,aAAa,UAAW7D,EAAE,IAChC41I,EAAQjT,KAAO,KAEfmU,EAAQlB,EAAQr+G,GAAGlnC,QAAQ2mJ,uBAAuBh3I,EAAE,KAC9C6D,aAAa,UAAW7D,EAAE,IAC5Bi/H,GAAMC,EAAa,EAAKt+H,EAAQtL,YAAYkrI,EAAI,OAAQ,CAACsW,KACtDl2I,EAAQtL,YAAYwhJ,GAC3BlB,EAAQjT,KAAO,GAEjBiT,EAAQrtI,IAAI9M,KAAKm6I,EAAQ52H,IAAK42H,EAAQ52H,IAAM,EAAG83H,GAC/ClB,EAAQ52H,YAzCV42H,EAAQjT,KAAOrrI,EAAKxC,OACpB8L,EAAU7K,SAAS86C,eAAe6lG,GAClCd,EAAQrtI,IAAI9M,KAAKm6I,EAAQ52H,IAAK42H,EAAQ52H,IAAM1nB,EAAKxC,OAAQ8L,GACrDq+H,GAAMC,EAAa,IAAK2X,GAAW,GACvCjB,EAAQ52H,KAAO1nB,EAAKxC,OAyCtB,GADA8gJ,EAAQE,cAA2D,IAA3CY,EAAYn7D,WAAWjkF,EAAKxC,OAAS,GACzD0P,GAASgyI,GAAcC,GAAYI,GAAYjyI,GAAO1D,EAAY,CACpE,IAAI+1I,EAAYzyI,GAAS,GACrBgyI,IAAcS,GAAaT,GAC3BC,IAAYQ,GAAaR,GAC7B,IAAIlY,EAAQiC,EAAI,OAAQ,CAAC5/H,GAAUq2I,EAAWryI,GAC9C,GAAI1D,EACF,IAAK,IAAIzG,KAAQyG,EAAkBA,EAAWsuB,eAAe/0B,IAAiB,SAARA,GAA2B,SAARA,GACrF8jI,EAAM16H,aAAapJ,EAAMyG,EAAWzG,IAE1C,OAAOm7I,EAAQh1I,QAAQtL,YAAYipI,GAErCqX,EAAQh1I,QAAQtL,YAAYsL,IAK9B,SAASm1I,GAAYz+I,EAAM4/I,GACzB,GAAI5/I,EAAKxC,OAAS,IAAM,KAAKqhD,KAAK7+C,GAAS,OAAOA,EAElD,IADA,IAAI6/I,EAAcD,EAAgBpnJ,EAAS,GAClCmI,EAAI,EAAGA,EAAIX,EAAKxC,OAAQmD,IAAK,CACpC,IAAIolI,EAAK/lI,EAAKkmD,OAAOvlD,GACX,KAANolI,IAAa8Z,GAAgBl/I,GAAKX,EAAKxC,OAAS,GAA+B,IAA1BwC,EAAKikF,WAAWtjF,EAAI,KACzEolI,EAAK,KACTvtI,GAAUutI,EACV8Z,EAAoB,KAAN9Z,EAEhB,OAAOvtI,EAKT,SAASomJ,GAAkB/pF,EAAOtnD,GAChC,OAAO,SAAU+wI,EAASt+I,EAAMkN,EAAOgyI,EAAYC,EAAU7xI,EAAK1D,GAChEsD,EAAQA,EAAQA,EAAQ,mBAAqB,kBAE7C,IADA,IAAIuR,EAAQ6/H,EAAQ52H,IAAK2U,EAAM5d,EAAQze,EAAKxC,SACnC,CAGP,IADA,IAAIq9E,OAAO,EACFl6E,EAAI,EAAGA,EAAI4M,EAAM/P,WACxBq9E,EAAOttE,EAAM5M,IACJyiG,GAAK3kF,GAASo8D,EAAKwoB,MAAQ5kF,GAFJ9d,KAIlC,GAAIk6E,EAAKuoB,IAAM/mE,EAAO,OAAOw4B,EAAMypF,EAASt+I,EAAMkN,EAAOgyI,EAAYC,EAAU7xI,EAAK1D,GACpFirD,EAAMypF,EAASt+I,EAAK22C,MAAM,EAAGkkC,EAAKuoB,GAAK3kF,GAAQvR,EAAOgyI,EAAY,KAAM5xI,EAAK1D,GAC7Es1I,EAAa,KACbl/I,EAAOA,EAAK22C,MAAMkkC,EAAKuoB,GAAK3kF,GAC5BA,EAAQo8D,EAAKuoB,KAKnB,SAAS08C,GAAmBxB,EAASngH,EAAM86G,EAAQ8G,GACjD,IAAIC,GAAUD,GAAgB9G,EAAOiE,WACjC8C,GAAU1B,EAAQrtI,IAAI9M,KAAKm6I,EAAQ52H,IAAK42H,EAAQ52H,IAAMyW,EAAM6hH,IAC3DD,GAAgBzB,EAAQr+G,GAAG9yB,QAAQtQ,MAAMojJ,wBACvCD,IACDA,EAAS1B,EAAQh1I,QAAQtL,YAAYS,SAAS0lB,cAAc,UAChE67H,EAAOzzI,aAAa,YAAa0sI,EAAO/8I,KAEtC8jJ,IACF1B,EAAQr+G,GAAG9yB,QAAQtQ,MAAMqjJ,cAAcF,GACvC1B,EAAQh1I,QAAQtL,YAAYgiJ,IAE9B1B,EAAQ52H,KAAOyW,EACfmgH,EAAQE,eAAgB,EAK1B,SAASK,GAAkB/Y,EAAMwY,EAAS5rI,GACxC,IAAIymI,EAAQrT,EAAK4T,YAAayG,EAAUra,EAAK9lI,KAAM3C,EAAK,EACxD,GAAK87I,EAQL,IAFA,IAAqDjsI,EAAOI,EACxC8yI,EAAWC,EAAcC,EAAgBjE,EAAWzyI,EADpE60B,EAAM0hH,EAAQ3iJ,OAAQkqB,EAAM,EAAG/mB,EAAI,EAAGX,EAAO,GAC7CugJ,EAAa,IACR,CACP,GAAIA,GAAc74H,EAAK,CACrB04H,EAAYC,EAAeC,EAAiBhzI,EAAM,GAClD1D,EAAa,KACbyyI,EAAY,KAAMkE,EAAapnB,EAAAA,EAE/B,IADA,IAAIqnB,EAAiB,GAAIC,OAAY,EAC5B1oG,EAAI,EAAGA,EAAIohG,EAAM37I,SAAUu6C,EAAG,CACrC,IAAIqkG,EAAKjD,EAAMphG,GAAIrvC,EAAI0zI,EAAGnD,OAC1B,GAAc,YAAVvwI,EAAE7Q,MAAsBukJ,EAAG/4C,MAAQ37E,GAAOhf,EAAEw0I,WAC9CsD,EAAer8I,KAAKuE,QACf,GAAI0zI,EAAG/4C,MAAQ37E,IAAiB,MAAT00H,EAAGh5C,IAAcg5C,EAAGh5C,GAAK17E,GAAOhf,EAAE2zI,WAAaD,EAAGh5C,IAAM17E,GAAO00H,EAAG/4C,MAAQ37E,GAAM,CAY5G,GAXa,MAAT00H,EAAGh5C,IAAcg5C,EAAGh5C,IAAM17E,GAAO64H,EAAanE,EAAGh5C,KACnDm9C,EAAanE,EAAGh5C,GAChBi9C,EAAe,IAEb33I,EAAEpP,YAAa8mJ,GAAa,IAAM13I,EAAEpP,WACpCoP,EAAE4E,MAAOA,GAAOA,EAAMA,EAAM,IAAM,IAAM5E,EAAE4E,KAC1C5E,EAAEw2I,YAAc9C,EAAG/4C,MAAQ37E,IAAO44H,GAAkB,IAAM53I,EAAEw2I,YAC5Dx2I,EAAEy2I,UAAY/C,EAAGh5C,IAAMm9C,IAAeE,IAAcA,EAAY,KAAKt8I,KAAKuE,EAAEy2I,SAAU/C,EAAGh5C,IAGzF16F,EAAE1J,SAAU4K,IAAeA,EAAa,KAAK5K,MAAQ0J,EAAE1J,OACvD0J,EAAEkB,WACJ,IAAK,IAAIzG,KAAQuF,EAAEkB,YACdA,IAAeA,EAAa,KAAKzG,GAAQuF,EAAEkB,WAAWzG,GAEzDuF,EAAE2zI,aAAeA,GAAaT,GAAwBS,EAAUpD,OAAQvwI,GAAK,KAC7E2zI,EAAYD,QACPA,EAAG/4C,KAAO37E,GAAO64H,EAAanE,EAAG/4C,OAC1Ck9C,EAAanE,EAAG/4C,MAGpB,GAAIo9C,EAAa,IAAK,IAAInS,EAAM,EAAGA,EAAMmS,EAAUjjJ,OAAQ8wI,GAAO,EAC1DmS,EAAUnS,EAAM,IAAMiS,IAAcF,GAAgB,IAAMI,EAAUnS,IAE5E,IAAK+N,GAAaA,EAAUh5C,MAAQ37E,EAAO,IAAK,IAAI+mH,EAAM,EAAGA,EAAM+R,EAAehjJ,SAAUixI,EACxFqR,GAAmBxB,EAAS,EAAGkC,EAAe/R,IAClD,GAAI4N,IAAcA,EAAUh5C,MAAQ,IAAM37E,EAAK,CAG7C,GAFAo4H,GAAmBxB,GAA0B,MAAhBjC,EAAUj5C,GAAa3kE,EAAM,EAAI49G,EAAUj5C,IAAM17E,EAC3D20H,EAAUpD,OAA0B,MAAlBoD,EAAUh5C,MAC3B,MAAhBg5C,EAAUj5C,GAAc,OACxBi5C,EAAUj5C,IAAM17E,IAAO20H,GAAY,IAG3C,GAAI30H,GAAO+W,EAAO,MAGlB,IADA,IAAIiiH,EAAO/+H,KAAKE,IAAI4c,EAAK8hH,KACZ,CACX,GAAIvgJ,EAAM,CACR,IAAIq8B,EAAM3U,EAAM1nB,EAAKxC,OACrB,IAAK6+I,EAAW,CACd,IAAIsE,EAAYtkH,EAAMqkH,EAAO1gJ,EAAK22C,MAAM,EAAG+pG,EAAOh5H,GAAO1nB,EACzDs+I,EAAQI,SAASJ,EAASqC,EAAWzzI,EAAQA,EAAQkzI,EAAYA,EAChDE,EAAgB54H,EAAMi5H,EAAUnjJ,QAAU+iJ,EAAaF,EAAe,GAAI/yI,EAAK1D,GAElG,GAAIyyB,GAAOqkH,EAAM,CAAC1gJ,EAAOA,EAAK22C,MAAM+pG,EAAOh5H,GAAMA,EAAMg5H,EAAM,MAC7Dh5H,EAAM2U,EACNikH,EAAiB,GAEnBtgJ,EAAOmgJ,EAAQxpG,MAAMt5C,EAAIA,EAAKqV,EAAO/R,MACrCuM,EAAQixI,GAAoBzrI,EAAO/R,KAAM29I,EAAQr+G,GAAGlnC,eAnEtD,IAAK,IAAIy0I,EAAM,EAAGA,EAAM96H,EAAOlV,OAAQgwI,GAAK,EACxC8Q,EAAQI,SAASJ,EAAS6B,EAAQxpG,MAAMt5C,EAAIA,EAAKqV,EAAO86H,IAAO2Q,GAAoBzrI,EAAO86H,EAAI,GAAI8Q,EAAQr+G,GAAGlnC,UA2ErH,SAAS6nJ,GAAS5rI,EAAK8wH,EAAMgX,GAE3BvmJ,KAAKuvI,KAAOA,EAEZvvI,KAAKqzD,KAAOgzF,GAAoB9W,GAEhCvvI,KAAK4nC,KAAO5nC,KAAKqzD,KAAOupF,GAAO1H,EAAIl1I,KAAKqzD,OAASkzF,EAAQ,EAAI,EAC7DvmJ,KAAKghD,KAAOhhD,KAAKyJ,KAAO,KACxBzJ,KAAK40F,OAAS8xD,GAAajoI,EAAK8wH,GAIlC,SAAS+a,GAAe5gH,EAAIojE,EAAMD,GAEhC,IADA,IAAgB09C,EAAZruG,EAAQ,GACH/qB,EAAM27E,EAAM37E,EAAM07E,EAAI17E,EAAMo5H,EAAS,CAC5C,IAAIpnJ,EAAO,IAAIknJ,GAAS3gH,EAAGjrB,IAAK29H,GAAQ1yG,EAAGjrB,IAAK0S,GAAMA,GACtDo5H,EAAUp5H,EAAMhuB,EAAKykC,KACrBsU,EAAMtuC,KAAKzK,GAEb,OAAO+4C,EAGT,IAAIsuG,GAAiB,KAErB,SAASC,GAAczH,GACjBwH,GACFA,GAAeE,IAAI98I,KAAKo1I,GAExBA,EAAG2H,UAAYH,GAAiB,CAC9BE,IAAK,CAAC1H,GACN4H,iBAAkB,IAKxB,SAASC,GAAoB7sG,GAG3B,IAAI69B,EAAY79B,EAAM4sG,iBAAkBxgJ,EAAI,EAC5C,EAAG,CACD,KAAOA,EAAIyxE,EAAU50E,OAAQmD,IACzByxE,EAAUzxE,GAAGw6D,KAAK,MACtB,IAAK,IAAIpjB,EAAI,EAAGA,EAAIxD,EAAM0sG,IAAIzjJ,OAAQu6C,IAAK,CACzC,IAAIwhG,EAAKhlG,EAAM0sG,IAAIlpG,GACnB,GAAIwhG,EAAG/J,uBACH,KAAO+J,EAAG8H,qBAAuB9H,EAAG/J,uBAAuBhyI,QACzD+7I,EAAG/J,uBAAuB+J,EAAG8H,wBAAwBlmF,KAAK,KAAMo+E,EAAGt5G,WAEpEt/B,EAAIyxE,EAAU50E,QAGzB,SAAS8jJ,GAAgB/H,EAAIgI,GAC3B,IAAIhtG,EAAQglG,EAAG2H,UACf,GAAK3sG,EAEL,IAAM6sG,GAAoB7sG,GAC1B,QACEwsG,GAAiB,KACjBQ,EAAMhtG,IAIV,IAAIitG,GAAyB,KAS7B,SAASC,GAAY5S,EAASh3I,GAC5B,IAAI27D,EAAMs7E,GAAYD,EAASh3I,GAC/B,GAAK27D,EAAIh2D,OAAT,CACA,IAAqDmmD,EAAjDlsB,EAAOljB,MAAMlc,UAAUs+C,MAAMwkB,KAAK7gD,UAAW,GAC7CymI,GACFp9F,EAAOo9F,GAAeI,iBACbK,GACT79F,EAAO69F,IAEP79F,EAAO69F,GAAyB,GAChChnI,WAAWknI,GAAmB,IAMhC,IAJA,IAAIr+F,EAAO,SAAW1iD,GACpBgjD,EAAKx/C,MAAK,WAAc,OAAOqvD,EAAI7yD,GAAGw/C,MAAM,KAAM1oB,OAG3C92B,EAAI,EAAGA,EAAI6yD,EAAIh2D,SAAUmD,EAChC0iD,EAAM1iD,IAGV,SAAS+gJ,KACP,IAAIC,EAAUH,GACdA,GAAyB,KACzB,IAAK,IAAI7gJ,EAAI,EAAGA,EAAIghJ,EAAQnkJ,SAAUmD,EAAKghJ,EAAQhhJ,KAMrD,SAASihJ,GAAqB3hH,EAAIo+G,EAAUvB,EAAOjuG,GACjD,IAAK,IAAIkJ,EAAI,EAAGA,EAAIsmG,EAAS9hB,QAAQ/+H,OAAQu6C,IAAK,CAChD,IAAIlgD,EAAOwmJ,EAAS9hB,QAAQxkF,GAChB,QAARlgD,EAAkBgqJ,GAAe5hH,EAAIo+G,GACxB,UAARxmJ,EAAoBiqJ,GAAiB7hH,EAAIo+G,EAAUvB,EAAOjuG,GAClD,SAARh3C,EAAmBkqJ,GAAkB9hH,EAAIo+G,GACjC,UAARxmJ,GAAoBmqJ,GAAkB/hH,EAAIo+G,EAAUxvG,GAE/DwvG,EAAS9hB,QAAU,KAKrB,SAAS0lB,GAAkB5D,GAQzB,OAPIA,EAAS9mG,MAAQ8mG,EAASr+I,OAC5Bq+I,EAAS9mG,KAAO2xF,EAAI,MAAO,KAAM,KAAM,sBACnCmV,EAASr+I,KAAK6Y,YACdwlI,EAASr+I,KAAK6Y,WAAWuwG,aAAai1B,EAAS9mG,KAAM8mG,EAASr+I,MAClEq+I,EAAS9mG,KAAKv5C,YAAYqgJ,EAASr+I,MAC/B2nI,GAAMC,EAAa,IAAKyW,EAAS9mG,KAAKrqC,MAAMi3G,OAAS,IAEpDk6B,EAAS9mG,KAGlB,SAAS2qG,GAAqBjiH,EAAIo+G,GAChC,IAAIlyI,EAAMkyI,EAAShI,QAAUgI,EAAShI,QAAU,KAAOgI,EAASvY,KAAKuQ,SAAW,IAAMgI,EAASvY,KAAKuQ,QAEpG,GADIlqI,IAAOA,GAAO,8BACdkyI,EAAS8D,WACPh2I,EAAOkyI,EAAS8D,WAAW7oJ,UAAY6S,GACpCkyI,EAAS8D,WAAWtpI,WAAWC,YAAYulI,EAAS8D,YAAa9D,EAAS8D,WAAa,WACzF,GAAIh2I,EAAK,CACd,IAAIkqF,EAAO4rD,GAAkB5D,GAC7BA,EAAS8D,WAAa9rD,EAAKn4F,aAAagrI,EAAI,MAAO,KAAM/8H,GAAMkqF,EAAKl4F,YACpE8hC,EAAG9yB,QAAQtQ,MAAMqjJ,cAAc7B,EAAS8D,aAM5C,SAASC,GAAeniH,EAAIo+G,GAC1B,IAAI5tC,EAAMxwE,EAAG9yB,QAAQ2xI,iBACrB,OAAIruC,GAAOA,EAAIq1B,MAAQuY,EAASvY,MAC9B7lG,EAAG9yB,QAAQ2xI,iBAAmB,KAC9BT,EAAS/N,QAAU7/B,EAAI6/B,QAChB7/B,EAAI4xC,OAENjE,GAAiBn+G,EAAIo+G,GAM9B,SAASwD,GAAe5hH,EAAIo+G,GAC1B,IAAIlyI,EAAMkyI,EAASr+I,KAAK1G,UACpB+oJ,EAAQD,GAAeniH,EAAIo+G,GAC3BA,EAASr+I,MAAQq+I,EAAS9mG,OAAQ8mG,EAAS9mG,KAAO8qG,EAAM9D,KAC5DF,EAASr+I,KAAK6Y,WAAWuwG,aAAai5B,EAAM9D,IAAKF,EAASr+I,MAC1Dq+I,EAASr+I,KAAOqiJ,EAAM9D,IAClB8D,EAAMhM,SAAWgI,EAAShI,SAAWgM,EAAM/L,WAAa+H,EAAS/H,WACnE+H,EAAShI,QAAUgM,EAAMhM,QACzBgI,EAAS/H,UAAY+L,EAAM/L,UAC3ByL,GAAkB9hH,EAAIo+G,IACblyI,IACTkyI,EAASr+I,KAAK1G,UAAY6S,GAI9B,SAAS41I,GAAkB9hH,EAAIo+G,GAC7B6D,GAAqBjiH,EAAIo+G,GACrBA,EAASvY,KAAKwc,UACdL,GAAkB5D,GAAU/kJ,UAAY+kJ,EAASvY,KAAKwc,UACjDjE,EAAS9mG,MAAQ8mG,EAASr+I,OAC/Bq+I,EAAS9mG,KAAKj+C,UAAY,IAC9B,IAAIg9I,EAAY+H,EAAS/H,UAAY+H,EAAS/H,UAAY,KAAO+H,EAASvY,KAAKwQ,WAAa,IAAM+H,EAASvY,KAAKwQ,UAChH+H,EAASr+I,KAAK1G,UAAYg9I,GAAa,GAGzC,SAASwL,GAAiB7hH,EAAIo+G,EAAUvB,EAAOjuG,GAS7C,GARIwvG,EAASkE,SACXlE,EAAS9mG,KAAKz+B,YAAYulI,EAASkE,QACnClE,EAASkE,OAAS,MAEhBlE,EAASmE,mBACXnE,EAAS9mG,KAAKz+B,YAAYulI,EAASmE,kBACnCnE,EAASmE,iBAAmB,MAE1BnE,EAASvY,KAAK2c,YAAa,CAC7B,IAAIpsD,EAAO4rD,GAAkB5D,GAC7BA,EAASmE,iBAAmBtZ,EAAI,MAAO,KAAM,gCAAkCmV,EAASvY,KAAK2c,YAC5D,UAAYxiH,EAAGlnC,QAAQ2pJ,YAAc7zG,EAAK8zG,UAAY9zG,EAAK+zG,kBAAoB,cAAiB/zG,EAAqB,iBAAI,MAC1J5O,EAAG9yB,QAAQtQ,MAAMqjJ,cAAc7B,EAASmE,kBACxCnsD,EAAKn4F,aAAamgJ,EAASmE,iBAAkBnE,EAASr+I,MAExD,IAAIi7I,EAAUoD,EAASvY,KAAK+c,cAC5B,GAAI5iH,EAAGlnC,QAAQ62B,aAAeqrH,EAAS,CACrC,IAAI6H,EAASb,GAAkB5D,GAC3B0E,EAAa1E,EAASkE,OAASrZ,EAAI,MAAO,KAAM,4BAA8B,UAAYjpG,EAAGlnC,QAAQ2pJ,YAAc7zG,EAAK8zG,UAAY9zG,EAAK+zG,kBAAoB,MAWjK,GAVAG,EAAWx2I,aAAa,cAAe,QACvC0zB,EAAG9yB,QAAQtQ,MAAMqjJ,cAAc6C,GAC/BD,EAAO5kJ,aAAa6kJ,EAAY1E,EAASr+I,MACrCq+I,EAASvY,KAAK2c,cACdM,EAAWzpJ,WAAa,IAAM+kJ,EAASvY,KAAK2c,cAC5CxiH,EAAGlnC,QAAQ62B,aAAiBqrH,GAAYA,EAAQ,4BAChDoD,EAAS2E,WAAaD,EAAW/kJ,YACjCkrI,EAAI,MAAOsK,GAAcvzG,EAAGlnC,QAAS+jJ,GACjC,8CACC,SAAYjuG,EAAKo0G,WAAW,0BAA6B,cAAiBhjH,EAAG9yB,QAAyB,kBAAI,QAC/G8tI,EAAW,IAAK,IAAIjlH,EAAI,EAAGA,EAAIiK,EAAG9yB,QAAQ+1I,YAAY1lJ,SAAUw4B,EAAG,CACrE,IAAI95B,EAAK+jC,EAAG9yB,QAAQ+1I,YAAYltH,GAAG18B,UAAWg7B,EAAQ2mH,EAAQ/iH,eAAeh8B,IAAO++I,EAAQ/+I,GACxFo4B,GACAyuH,EAAW/kJ,YAAYkrI,EAAI,MAAO,CAAC50G,GAAQ,wBACjB,SAAYua,EAAKo0G,WAAW/mJ,GAAO,cAAiB2yC,EAAKs0G,YAAYjnJ,GAAO,SAKhH,SAAS8lJ,GAAkB/hH,EAAIo+G,EAAUxvG,GACnCwvG,EAAS+E,YAAa/E,EAAS+E,UAAY,MAE/C,IADA,IAAIC,EAAWta,EAAU,yBAChBxxF,EAAO8mG,EAAS9mG,KAAKp5C,WAAYogC,OAAO,EAAUgZ,EAAMA,EAAOhZ,EACtEA,EAAOgZ,EAAKqxE,YACRy6B,EAASxkG,KAAKtH,EAAKj+C,YAAc+kJ,EAAS9mG,KAAKz+B,YAAYy+B,GAEjE+rG,GAAkBrjH,EAAIo+G,EAAUxvG,GAIlC,SAAS00G,GAAiBtjH,EAAIo+G,EAAUvB,EAAOjuG,GAC7C,IAAIwzG,EAAQD,GAAeniH,EAAIo+G,GAQ/B,OAPAA,EAASr+I,KAAOq+I,EAAS9mG,KAAO8qG,EAAM9D,IAClC8D,EAAMhM,UAAWgI,EAAShI,QAAUgM,EAAMhM,SAC1CgM,EAAM/L,YAAa+H,EAAS/H,UAAY+L,EAAM/L,WAElDyL,GAAkB9hH,EAAIo+G,GACtByD,GAAiB7hH,EAAIo+G,EAAUvB,EAAOjuG,GACtCy0G,GAAkBrjH,EAAIo+G,EAAUxvG,GACzBwvG,EAAS9mG,KAKlB,SAAS+rG,GAAkBrjH,EAAIo+G,EAAUxvG,GAEvC,GADA20G,GAAqBvjH,EAAIo+G,EAASvY,KAAMuY,EAAUxvG,GAAM,GACpDwvG,EAASz0F,KAAQ,IAAK,IAAIjpD,EAAI,EAAGA,EAAI09I,EAASz0F,KAAKpsD,OAAQmD,IAC3D6iJ,GAAqBvjH,EAAIo+G,EAASz0F,KAAKjpD,GAAI09I,EAAUxvG,GAAM,GAGjE,SAAS20G,GAAqBvjH,EAAI6lG,EAAMuY,EAAUxvG,EAAM40G,GACtD,GAAK3d,EAAK4d,QAEV,IADA,IAAIrtD,EAAO4rD,GAAkB5D,GACpB19I,EAAI,EAAGgjJ,EAAK7d,EAAK4d,QAAS/iJ,EAAIgjJ,EAAGnmJ,SAAUmD,EAAG,CACrD,IAAIq/I,EAAS2D,EAAGhjJ,GAAI42C,EAAO2xF,EAAI,MAAO,CAAC8W,EAAOzoG,MAAO,yBAA2ByoG,EAAO1mJ,UAAY,IAAM0mJ,EAAO1mJ,UAAY,KACvH0mJ,EAAO4D,mBAAqBrsG,EAAKhrC,aAAa,mBAAoB,QACvEs3I,GAAmB7D,EAAQzoG,EAAM8mG,EAAUxvG,GAC3C5O,EAAG9yB,QAAQtQ,MAAMqjJ,cAAc3oG,GAC3BksG,GAAczD,EAAO8D,MACrBztD,EAAKn4F,aAAaq5C,EAAM8mG,EAASkE,QAAUlE,EAASr+I,MAEpDq2F,EAAKr4F,YAAYu5C,GACrBkqG,GAAYzB,EAAQ,WAIxB,SAAS6D,GAAmB7D,EAAQzoG,EAAM8mG,EAAUxvG,GAClD,GAAImxG,EAAO+D,UAAW,EACvB1F,EAAS+E,YAAc/E,EAAS+E,UAAY,KAAKj/I,KAAKozC,GACnD,IAAI3+C,EAAQi2C,EAAKm1G,aACjBzsG,EAAKrqC,MAAMoJ,KAAOu4B,EAAK8zG,SAAW,KAC7B3C,EAAOiE,cACVrrJ,GAASi2C,EAAK+zG,iBACdrrG,EAAKrqC,MAAM6kC,YAAclD,EAAK+zG,iBAAmB,MAEnDrrG,EAAKrqC,MAAMtU,MAAQA,EAAQ,KAEzBonJ,EAAOiE,cACT1sG,EAAKrqC,MAAMi3G,OAAS,EACpB5sE,EAAKrqC,MAAMsJ,SAAW,WACjBwpI,EAAO+D,YAAaxsG,EAAKrqC,MAAMojC,YAAczB,EAAK+zG,iBAAmB,OAI9E,SAASsB,GAAalE,GACpB,GAAqB,MAAjBA,EAAOrnJ,OAAkB,OAAOqnJ,EAAOrnJ,OAC3C,IAAIsnC,EAAK+/G,EAAOhrI,IAAIirB,GACpB,IAAKA,EAAM,OAAO,EAClB,IAAK6F,EAASrnC,SAAS+B,KAAMw/I,EAAOzoG,MAAO,CACzC,IAAI4sG,EAAc,sBACdnE,EAAOiE,cACPE,GAAe,iBAAmBlkH,EAAG9yB,QAAQi3I,QAAQvqI,YAAc,OACnEmmI,EAAO+D,YACPI,GAAe,UAAYlkH,EAAG9yB,QAAQhC,QAAQktE,YAAc,OAChE4wD,EAAqBhpG,EAAG9yB,QAAQmjI,QAASpH,EAAI,MAAO,CAAC8W,EAAOzoG,MAAO,KAAM4sG,IAE3E,OAAOnE,EAAOrnJ,OAASqnJ,EAAOzoG,KAAK1+B,WAAWe,aAIhD,SAASyqI,GAAcl3I,EAAS1R,GAC9B,IAAK,IAAIu/E,EAAI+0D,GAASt0I,GAAIu/E,GAAK7tE,EAAQhC,QAAS6vE,EAAIA,EAAEniE,WACpD,IAAKmiE,GAAoB,GAAdA,EAAE/6B,UAAuD,QAAtC+6B,EAAEvhB,aAAa,qBACxCuhB,EAAEniE,YAAc1L,EAAQm3I,OAAStpE,GAAK7tE,EAAQo3I,MAC/C,OAAO,EAMf,SAAS7yG,GAAWvkC,GAAU,OAAOA,EAAQq3I,UAAU1qI,UACvD,SAAS2qI,GAAYt3I,GAAU,OAAOA,EAAQo3I,MAAM3qI,aAAezM,EAAQq3I,UAAU5qI,aACrF,SAAS8qI,GAASv3I,GAChB,GAAIA,EAAQw3I,eAAkB,OAAOx3I,EAAQw3I,eAC7C,IAAIlpJ,EAAIwtI,EAAqB97H,EAAQmjI,QAASpH,EAAI,MAAO,IAAK,yBAC1Dh8H,EAAQ5W,OAAOqtB,iBAAmBrtB,OAAOqtB,iBAAiBloB,GAAKA,EAAEmpJ,aACjEvkJ,EAAO,CAACiW,KAAM6tC,SAASj3C,EAAM6kC,aAAcxc,MAAO4uB,SAASj3C,EAAM+kC,eAErE,OADKpzB,MAAMxe,EAAKiW,OAAUuI,MAAMxe,EAAKk1B,SAAUpoB,EAAQw3I,eAAiBtkJ,GACjEA,EAGT,SAASwkJ,GAAU5kH,GAAM,OAAO6qG,EAAc7qG,EAAG9yB,QAAQ23I,eACzD,SAASC,GAAa9kH,GACpB,OAAOA,EAAG9yB,QAAQ63I,SAAS3sE,YAAcwsE,GAAU5kH,GAAMA,EAAG9yB,QAAQ83I,SAEtE,SAASC,GAAcjlH,GACrB,OAAOA,EAAG9yB,QAAQ63I,SAASzsE,aAAessE,GAAU5kH,GAAMA,EAAG9yB,QAAQg4I,UAOvE,SAASC,GAAkBnlH,EAAIo+G,EAAU5kI,GACvC,IAAI4rI,EAAWplH,EAAGlnC,QAAQg3B,aACtBu1H,EAAWD,GAAYN,GAAa9kH,GACxC,IAAKo+G,EAAS/N,QAAQiV,SAAWF,GAAYhH,EAAS/N,QAAQ13I,OAAS0sJ,EAAU,CAC/E,IAAIC,EAAUlH,EAAS/N,QAAQiV,QAAU,GACzC,GAAIF,EAAU,CACZhH,EAAS/N,QAAQ13I,MAAQ0sJ,EAEzB,IADA,IAAIE,EAAQnH,EAASr+I,KAAK7B,WAAW6rH,iBAC5BrpH,EAAI,EAAGA,EAAI6kJ,EAAMhoJ,OAAS,EAAGmD,IAAK,CACzC,IAAIumI,EAAMse,EAAM7kJ,GAAI49B,EAAOinH,EAAM7kJ,EAAI,GACjCghB,KAAK+lD,IAAIw/D,EAAItsE,OAASr8B,EAAKq8B,QAAU,GACrC2qF,EAAQphJ,MAAM+iI,EAAItsE,OAASr8B,EAAKhoB,KAAO,EAAIkD,EAAKlD,MAGxDgvI,EAAQphJ,KAAKsV,EAAKmhD,OAASnhD,EAAKlD,MAOpC,SAASkvI,GAAgBpH,EAAUvY,EAAMgX,GACvC,GAAIuB,EAASvY,MAAQA,EACjB,MAAO,CAAC70H,IAAKotI,EAAS/N,QAAQr/H,IAAKwzG,MAAO45B,EAAS/N,QAAQ7rB,OAC/D,IAAK,IAAI9jH,EAAI,EAAGA,EAAI09I,EAASz0F,KAAKpsD,OAAQmD,IACtC,GAAI09I,EAASz0F,KAAKjpD,IAAMmlI,EACtB,MAAO,CAAC70H,IAAKotI,EAAS/N,QAAQyO,KAAKp+I,GAAI8jH,MAAO45B,EAAS/N,QAAQ0O,OAAOr+I,IAC5E,IAAK,IAAI6sI,EAAM,EAAGA,EAAM6Q,EAASz0F,KAAKpsD,OAAQgwI,IAC1C,GAAI2F,GAAOkL,EAASz0F,KAAK4jF,IAAQsP,EAC/B,MAAO,CAAC7rI,IAAKotI,EAAS/N,QAAQyO,KAAKvR,GAAM/oB,MAAO45B,EAAS/N,QAAQ0O,OAAOxR,GAAMjxB,QAAQ,GAK9F,SAASmpC,GAA0BzlH,EAAI6lG,GAErC,IAAIgX,EAAQ3J,GADZrN,EAAO4W,GAAW5W,IAEdpsI,EAAOumC,EAAG9yB,QAAQ2xI,iBAAmB,IAAI8B,GAAS3gH,EAAGjrB,IAAK8wH,EAAMgX,GACpEpjJ,EAAKojJ,MAAQA,EACb,IAAIuF,EAAQ3oJ,EAAK2oJ,MAAQjE,GAAiBn+G,EAAIvmC,GAG9C,OAFAA,EAAKsG,KAAOqiJ,EAAM9D,IAClBtV,EAAqBhpG,EAAG9yB,QAAQw4I,YAAatD,EAAM9D,KAC5C7kJ,EAKT,SAASksJ,GAAY3lH,EAAI6lG,EAAMC,EAAI8f,GACjC,OAAOC,GAAoB7lH,EAAI8lH,GAAsB9lH,EAAI6lG,GAAOC,EAAI8f,GAItE,SAASG,GAAgB/lH,EAAI68G,GAC3B,GAAIA,GAAS78G,EAAG9yB,QAAQkqI,UAAYyF,EAAQ78G,EAAG9yB,QAAQmqI,OACnD,OAAOr3G,EAAG9yB,QAAQzT,KAAKusJ,GAAchmH,EAAI68G,IAC7C,IAAIrsC,EAAMxwE,EAAG9yB,QAAQ2xI,iBACrB,OAAIruC,GAAOqsC,GAASrsC,EAAIqsC,OAASA,EAAQrsC,EAAIqsC,MAAQrsC,EAAItyE,KAC9CsyE,OADX,EASF,SAASs1C,GAAsB9lH,EAAI6lG,GACjC,IAAIgX,EAAQ3J,GAAOrN,GACfpsI,EAAOssJ,GAAgB/lH,EAAI68G,GAC3BpjJ,IAASA,EAAKsG,KAChBtG,EAAO,KACEA,GAAQA,EAAK6iI,UACtBqlB,GAAqB3hH,EAAIvmC,EAAMojJ,EAAOoJ,GAAcjmH,IACpDA,EAAGsvG,MAAM4W,aAAc,GAEpBzsJ,IACDA,EAAOgsJ,GAA0BzlH,EAAI6lG,IAEzC,IAAIjgC,EAAO4/C,GAAgB/rJ,EAAMosI,EAAMgX,GACvC,MAAO,CACLhX,KAAMA,EAAMpsI,KAAMA,EAAM+f,KAAM,KAC9BxI,IAAK40F,EAAK50F,IAAKwzG,MAAO5e,EAAK4e,MAAOlI,OAAQ1W,EAAK0W,OAC/C6pC,YAAY,GAMhB,SAASN,GAAoB7lH,EAAIomH,EAAUtgB,EAAI8f,EAAMS,GAC/CD,EAAS9pC,SAAUwpB,GAAM,GAC7B,IAA6BzxG,EAAzBzH,EAAMk5G,GAAM8f,GAAQ,IAaxB,OAZIQ,EAAS5hC,MAAMvsF,eAAerL,GAChCyH,EAAQ+xH,EAAS5hC,MAAM53F,IAElBw5H,EAAS5sI,OACV4sI,EAAS5sI,KAAO4sI,EAAS3sJ,KAAKsG,KAAK0Z,yBAClC2sI,EAASD,aACZhB,GAAkBnlH,EAAIomH,EAAS3sJ,KAAM2sJ,EAAS5sI,MAC9C4sI,EAASD,YAAa,IAExB9xH,EAAQiyH,GAAiBtmH,EAAIomH,EAAUtgB,EAAI8f,IAChCW,QAASH,EAAS5hC,MAAM53F,GAAOyH,IAErC,CAAChe,KAAMge,EAAMhe,KAAMif,MAAOjB,EAAMiB,MAC/Bhf,IAAK+vI,EAAYhyH,EAAMmyH,KAAOnyH,EAAM/d,IACpCqkD,OAAQ0rF,EAAYhyH,EAAMoyH,QAAUpyH,EAAMsmC,QAGpD,IAsbI+rF,GAtbAC,GAAW,CAACtwI,KAAM,EAAGif,MAAO,EAAGhf,IAAK,EAAGqkD,OAAQ,GAEnD,SAASisF,GAAuB51I,EAAK80H,EAAI8f,GAIvC,IAHA,IAAItuG,EAAM94B,EAAO4d,EAAKwtG,EAAUid,EAAQC,EAG/BpmJ,EAAI,EAAGA,EAAIsQ,EAAIzT,OAAQmD,GAAK,EAcnC,GAbAmmJ,EAAS71I,EAAItQ,GACbomJ,EAAO91I,EAAItQ,EAAI,GACXolI,EAAK+gB,GACProI,EAAQ,EAAG4d,EAAM,EACjBwtG,EAAW,QACF9D,EAAKghB,EAEd1qH,EAAc,GADd5d,EAAQsnH,EAAK+gB,IAEJnmJ,GAAKsQ,EAAIzT,OAAS,GAAKuoI,GAAMghB,GAAQ91I,EAAItQ,EAAI,GAAKolI,KAE3DtnH,GADA4d,EAAM0qH,EAAOD,GACC,EACV/gB,GAAMghB,IAAQld,EAAW,UAElB,MAATprH,EAAe,CAIjB,GAHA84B,EAAOtmC,EAAItQ,EAAI,GACXmmJ,GAAUC,GAAQlB,IAAStuG,EAAK0iG,WAAa,OAAS,WACtDpQ,EAAWgc,GACH,QAARA,GAA2B,GAATpnI,EAClB,KAAO9d,GAAKsQ,EAAItQ,EAAI,IAAMsQ,EAAItQ,EAAI,IAAMsQ,EAAItQ,EAAI,GAAGs5I,YACnD1iG,EAAOtmC,EAAe,GAAVtQ,GAAK,IACjBkpI,EAAW,OAEf,GAAY,SAARgc,GAAmBpnI,GAASsoI,EAAOD,EACnC,KAAOnmJ,EAAIsQ,EAAIzT,OAAS,GAAKyT,EAAItQ,EAAI,IAAMsQ,EAAItQ,EAAI,KAAOsQ,EAAItQ,EAAI,GAAGs5I,YACrE1iG,EAAOtmC,GAAKtQ,GAAK,GAAK,GACtBkpI,EAAW,QAEf,MAGJ,MAAO,CAACtyF,KAAMA,EAAM94B,MAAOA,EAAO4d,IAAKA,EAAKwtG,SAAUA,EAAUmd,WAAYF,EAAQG,SAAUF,GAGhG,SAASG,GAAc1B,EAAOK,GAC5B,IAAIpsI,EAAOmtI,GACX,GAAY,QAARf,EAAkB,IAAK,IAAIllJ,EAAI,EAAGA,EAAI6kJ,EAAMhoJ,SACzCic,EAAO+rI,EAAM7kJ,IAAI2V,MAAQmD,EAAK8b,MADmB50B,UAE7C,IAAK,IAAI6sI,EAAMgY,EAAMhoJ,OAAS,EAAGgwI,GAAO,IAC5C/zH,EAAO+rI,EAAMhY,IAAMl3H,MAAQmD,EAAK8b,MADei4G,KAGtD,OAAO/zH,EAGT,SAAS8sI,GAAiBtmH,EAAIomH,EAAUtgB,EAAI8f,GAC1C,IAGIpsI,EAHA0tI,EAAQN,GAAuBR,EAASp1I,IAAK80H,EAAI8f,GACjDtuG,EAAO4vG,EAAM5vG,KAAM94B,EAAQ0oI,EAAM1oI,MAAO4d,EAAM8qH,EAAM9qH,IAAKwtG,EAAWsd,EAAMtd,SAG9E,GAAqB,GAAjBtyF,EAAK0I,SAAe,CACtB,IAAK,IAAIutF,EAAM,EAAGA,EAAM,EAAGA,IAAO,CAChC,KAAO/uH,GAASytH,GAAgBma,EAASvgB,KAAK9lI,KAAKkmD,OAAOihG,EAAMH,WAAavoI,OAAaA,EAC1F,KAAO0oI,EAAMH,WAAa3qH,EAAM8qH,EAAMF,UAAY/a,GAAgBma,EAASvgB,KAAK9lI,KAAKkmD,OAAOihG,EAAMH,WAAa3qH,OAAWA,EAK1H,IAHI5iB,EADAkuH,GAAMC,EAAa,GAAc,GAATnpH,GAAc4d,GAAO8qH,EAAMF,SAAWE,EAAMH,WAC7DzvG,EAAK1+B,WAAWa,wBAEhBwtI,GAAcrlG,EAAMtK,EAAM94B,EAAO4d,GAAK2tF,iBAAkB67B,IAC1DvvI,MAAQmD,EAAK8b,OAAkB,GAAT9W,EAAc,MAC7C4d,EAAM5d,EACNA,GAAgB,EAChBorH,EAAW,QAETlC,GAAMC,EAAa,KAAMnuH,EAAO2tI,GAA0BnnH,EAAG9yB,QAAQmjI,QAAS72H,QAC7E,CAEL,IAAI+rI,EADA/mI,EAAQ,IAAKorH,EAAWgc,EAAO,SAG/BpsI,EADAwmB,EAAGlnC,QAAQg3B,eAAiBy1H,EAAQjuG,EAAKyyE,kBAAkBxsH,OAAS,EAC7DgoJ,EAAc,SAARK,EAAkBL,EAAMhoJ,OAAS,EAAI,GAE3C+5C,EAAK79B,wBAElB,GAAIiuH,GAAMC,EAAa,IAAMnpH,KAAWhF,IAASA,EAAKnD,OAASmD,EAAK8b,OAAQ,CAC1E,IAAI8xH,EAAQ9vG,EAAK1+B,WAAWmxG,iBAAiB,GAEzCvwG,EADA4tI,EACO,CAAC/wI,KAAM+wI,EAAM/wI,KAAMif,MAAO8xH,EAAM/wI,KAAOgxI,GAAUrnH,EAAG9yB,SAAUoJ,IAAK8wI,EAAM9wI,IAAKqkD,OAAQysF,EAAMzsF,QAE5FgsF,GAOb,IAJA,IAAIH,EAAOhtI,EAAKlD,IAAM8vI,EAAS5sI,KAAKlD,IAAKgxI,EAAO9tI,EAAKmhD,OAASyrF,EAAS5sI,KAAKlD,IACxEg2H,GAAOka,EAAOc,GAAQ,EACtBhC,EAAUc,EAAS3sJ,KAAK42I,QAAQiV,QAChC5kJ,EAAI,EACDA,EAAI4kJ,EAAQ/nJ,OAAS,KACpB+uI,EAAMgZ,EAAQ5kJ,IADSA,KAE/B,IAAI4V,EAAM5V,EAAI4kJ,EAAQ5kJ,EAAI,GAAK,EAAG6mJ,EAAMjC,EAAQ5kJ,GAC5CnI,EAAS,CAAC8d,MAAmB,SAAZuzH,EAAsBpwH,EAAK8b,MAAQ9b,EAAKnD,MAAQ+vI,EAAS5sI,KAAKnD,KACrEif,OAAoB,QAAZs0G,EAAqBpwH,EAAKnD,KAAOmD,EAAK8b,OAAS8wH,EAAS5sI,KAAKnD,KACrEC,IAAKA,EAAKqkD,OAAQ4sF,GAIhC,OAHK/tI,EAAKnD,MAASmD,EAAK8b,QAAS/8B,EAAOguJ,OAAQ,GAC3CvmH,EAAGlnC,QAAQ0uJ,4BAA6BjvJ,EAAOiuJ,KAAOA,EAAMjuJ,EAAOkuJ,QAAUa,GAE3E/uJ,EAKT,SAAS4uJ,GAA0B9W,EAAS72H,GAC1C,IAAKnjB,OAAOoxJ,QAAgC,MAAtBA,OAAOC,aACzBD,OAAOC,aAAeD,OAAOE,aAAexW,GAAkBd,GAC9D,OAAO72H,EACX,IAAIouI,EAASH,OAAOC,YAAcD,OAAOE,WACrCE,EAASJ,OAAOK,YAAcL,OAAOM,WACzC,MAAO,CAAC1xI,KAAMmD,EAAKnD,KAAOuxI,EAAQtyH,MAAO9b,EAAK8b,MAAQsyH,EAC9CtxI,IAAKkD,EAAKlD,IAAMuxI,EAAQltF,OAAQnhD,EAAKmhD,OAASktF,GAGxD,SAASG,GAA6B5J,GACpC,GAAIA,EAAS/N,UACX+N,EAAS/N,QAAQ7rB,MAAQ,GACzB45B,EAAS/N,QAAQiV,QAAU,KACvBlH,EAASz0F,MAAQ,IAAK,IAAIjpD,EAAI,EAAGA,EAAI09I,EAASz0F,KAAKpsD,OAAQmD,IAC3D09I,EAAS/N,QAAQ0O,OAAOr+I,GAAK,GAIrC,SAASunJ,GAA0BjoH,GACjCA,EAAG9yB,QAAQg7I,gBAAkB,KAC7B7yF,EAAer1B,EAAG9yB,QAAQw4I,aAC1B,IAAK,IAAIhlJ,EAAI,EAAGA,EAAIs/B,EAAG9yB,QAAQzT,KAAK8D,OAAQmD,IACxCsnJ,GAA6BhoH,EAAG9yB,QAAQzT,KAAKiH,IAGnD,SAASynJ,GAAYnoH,GACnBioH,GAA0BjoH,GAC1BA,EAAG9yB,QAAQk7I,gBAAkBpoH,EAAG9yB,QAAQm7I,iBAAmBroH,EAAG9yB,QAAQw3I,eAAiB,KAClF1kH,EAAGlnC,QAAQg3B,eAAgBkQ,EAAG9yB,QAAQwwI,gBAAiB,GAC5D19G,EAAG9yB,QAAQo7I,aAAe,KAG5B,SAASC,KAIP,OAAIzgB,GAAUQ,IAAoB9pI,SAAS+B,KAAKkZ,wBAAwBpD,KAAO6tC,SAASxgC,iBAAiBllB,SAAS+B,MAAM8vC,aACjHh6C,OAAO2zB,cAAgBxrB,SAAS05E,iBAAmB15E,SAAS+B,MAAMmZ,WAE3E,SAAS8uI,KACP,OAAI1gB,GAAUQ,IAAoB9pI,SAAS+B,KAAKkZ,wBAAwBnD,IAAM4tC,SAASxgC,iBAAiBllB,SAAS+B,MAAMkwC,YAChHp6C,OAAOyzB,cAAgBtrB,SAAS05E,iBAAmB15E,SAAS+B,MAAMtD,UAG3E,SAASwrJ,GAAgBrL,GACvB,IAAI1kJ,EAAS,EACb,GAAI0kJ,EAAQqG,QAAW,IAAK,IAAI/iJ,EAAI,EAAGA,EAAI08I,EAAQqG,QAAQlmJ,SAAUmD,EAAS08I,EAAQqG,QAAQ/iJ,GAAGmjJ,QAC7FnrJ,GAAUurJ,GAAa7G,EAAQqG,QAAQ/iJ,KAC3C,OAAOhI,EAOT,SAASgwJ,GAAgB1oH,EAAIo9G,EAAS5jI,EAAMs2C,EAAS64F,GACnD,IAAKA,EAAgB,CACnB,IAAIjwJ,EAAS+vJ,GAAgBrL,GAC7B5jI,EAAKlD,KAAO5d,EAAQ8gB,EAAKmhD,QAAUjiE,EAErC,GAAe,QAAXo3D,EAAqB,OAAOt2C,EAC3Bs2C,IAAWA,EAAU,SAC1B,IAAI84F,EAAOzL,GAAaC,GAGxB,GAFe,SAAXttF,EAAsB84F,GAAQn3G,GAAWzR,EAAG9yB,SACzC07I,GAAQ5oH,EAAG9yB,QAAQ27I,WACX,QAAX/4F,GAAgC,UAAXA,EAAqB,CAC5C,IAAIg5F,EAAO9oH,EAAG9yB,QAAQq3I,UAAU9qI,wBAChCmvI,GAAQE,EAAKxyI,KAAkB,UAAXw5C,EAAsB,EAAI04F,MAC9C,IAAIO,EAAOD,EAAKzyI,MAAmB,UAAXy5C,EAAsB,EAAIy4F,MAClD/uI,EAAKnD,MAAQ0yI,EAAMvvI,EAAK8b,OAASyzH,EAGnC,OADAvvI,EAAKlD,KAAOsyI,EAAMpvI,EAAKmhD,QAAUiuF,EAC1BpvI,EAKT,SAASwvI,GAAgBhpH,EAAIipH,EAAQn5F,GACnC,GAAe,OAAXA,EAAoB,OAAOm5F,EAC/B,IAAI5yI,EAAO4yI,EAAO5yI,KAAMC,EAAM2yI,EAAO3yI,IAErC,GAAe,QAAXw5C,EACFz5C,GAAQkyI,KACRjyI,GAAOkyI,UACF,GAAe,SAAX14F,IAAuBA,EAAS,CACzC,IAAIo5F,EAAWlpH,EAAG9yB,QAAQm3I,MAAM5qI,wBAChCpD,GAAQ6yI,EAAS7yI,KACjBC,GAAO4yI,EAAS5yI,IAGlB,IAAI6yI,EAAenpH,EAAG9yB,QAAQq3I,UAAU9qI,wBACxC,MAAO,CAACpD,KAAMA,EAAO8yI,EAAa9yI,KAAMC,IAAKA,EAAM6yI,EAAa7yI,KAGlE,SAAS8yI,GAAWppH,EAAIvY,EAAKqoC,EAASstF,EAASwI,GAE7C,OADKxI,IAAWA,EAAU1K,GAAQ1yG,EAAGjrB,IAAK0S,EAAIo+G,OACvC6iB,GAAgB1oH,EAAIo9G,EAASuI,GAAY3lH,EAAIo9G,EAAS31H,EAAIq+G,GAAI8f,GAAO91F,GAmB9E,SAASu5F,GAAarpH,EAAIvY,EAAKqoC,EAASstF,EAASkM,EAAiBjD,GAGhE,SAASvuJ,EAAIguI,EAAIxwG,GACf,IAAI7sB,EAAIo9I,GAAoB7lH,EAAIspH,EAAiBxjB,EAAIxwG,EAAQ,QAAU,OAAQ+wH,GAE/E,OADI/wH,EAAS7sB,EAAE4N,KAAO5N,EAAE6sB,MAAgB7sB,EAAE6sB,MAAQ7sB,EAAE4N,KAC7CqyI,GAAgB1oH,EAAIo9G,EAAS30I,EAAGqnD,GALzCstF,EAAUA,GAAW1K,GAAQ1yG,EAAGjrB,IAAK0S,EAAIo+G,MACpCyjB,IAAmBA,EAAkBxD,GAAsB9lH,EAAIo9G,IAMpE,IAAI9vI,EAAQohI,GAAS0O,EAASp9G,EAAGjrB,IAAIjG,WAAYg3H,EAAKr+G,EAAIq+G,GAAI6G,EAASllH,EAAIklH,OAQ3E,GAPI7G,GAAMsX,EAAQr9I,KAAKxC,QACrBuoI,EAAKsX,EAAQr9I,KAAKxC,OAClBovI,EAAS,UACA7G,GAAM,IACfA,EAAK,EACL6G,EAAS,UAENr/H,EAAS,OAAOxV,EAAc,UAAV60I,EAAqB7G,EAAK,EAAIA,EAAc,UAAV6G,GAE3D,SAAS4c,EAAQzjB,EAAI0jB,EAAS/rB,GAE5B,OAAO3lI,EAAI2lI,EAASqI,EAAK,EAAIA,EADoB,GAAtCx4H,EAAMk8I,GAAuBzgE,OACE00C,GAE5C,IAAI+rB,EAAU9c,GAAcp/H,EAAOw4H,EAAI6G,GACnC8c,EAAQhd,GACR/sI,EAAM6pJ,EAAQzjB,EAAI0jB,EAAmB,UAAV7c,GAE/B,OADa,MAAT8c,IAAiB/pJ,EAAI+pJ,MAAQF,EAAQzjB,EAAI2jB,EAAiB,UAAV9c,IAC7CjtI,EAKT,SAASgqJ,GAAe1pH,EAAIvY,GAC1B,IAAIpR,EAAO,EACXoR,EAAMusH,GAAQh0G,EAAGjrB,IAAK0S,GACjBuY,EAAGlnC,QAAQg3B,eAAgBzZ,EAAOgxI,GAAUrnH,EAAG9yB,SAAWua,EAAIq+G,IACnE,IAAIsX,EAAU1K,GAAQ1yG,EAAGjrB,IAAK0S,EAAIo+G,MAC9BvvH,EAAM6mI,GAAaC,GAAW3rG,GAAWzR,EAAG9yB,SAChD,MAAO,CAACmJ,KAAMA,EAAMif,MAAOjf,EAAMC,IAAKA,EAAKqkD,OAAQrkD,EAAM8mI,EAAQ1kJ,QASnE,SAASixJ,GAAY9jB,EAAMC,EAAI6G,EAAQid,EAASC,GAC9C,IAAIpiI,EAAMisH,GAAI7N,EAAMC,EAAI6G,GAGxB,OAFAllH,EAAIoiI,KAAOA,EACPD,IAAWniI,EAAImiI,QAAUA,GACtBniI,EAKT,SAASqiI,GAAW9pH,EAAI9sB,EAAGC,GACzB,IAAI4B,EAAMirB,EAAGjrB,IAEb,IADA5B,GAAK6sB,EAAG9yB,QAAQ27I,YACR,EAAK,OAAOc,GAAY50I,EAAI1D,MAAO,EAAG,MAAO,GAAI,GACzD,IAAIwrI,EAAQzJ,GAAar+H,EAAK5B,GAAIquG,EAAOzsG,EAAI1D,MAAQ0D,EAAImpB,KAAO,EAChE,GAAI2+G,EAAQr7B,EACR,OAAOmoC,GAAY50I,EAAI1D,MAAQ0D,EAAImpB,KAAO,EAAGw0G,GAAQ39H,EAAKysG,GAAMzhH,KAAKxC,OAAQ,KAAM,EAAG,GACtF2V,EAAI,IAAKA,EAAI,GAGjB,IADA,IAAIkqI,EAAU1K,GAAQ39H,EAAK8nI,KAClB,CACP,IAAIxoH,EAAQ01H,GAAgB/pH,EAAIo9G,EAASP,EAAO3pI,EAAGC,GAC/CipI,EAAYG,GAAoBa,EAAS/oH,EAAMyxG,IAAMzxG,EAAMw1H,KAAO,GAAKx1H,EAAMu1H,QAAU,EAAI,EAAI,IACnG,IAAKxN,EAAa,OAAO/nH,EACzB,IAAI21H,EAAW5N,EAAUh+I,KAAK,GAC9B,GAAI4rJ,EAASnkB,MAAQgX,EAAS,OAAOmN,EACrC5M,EAAU1K,GAAQ39H,EAAK8nI,EAAQmN,EAASnkB,OAI5C,SAASokB,GAAkBjqH,EAAIo9G,EAASkM,EAAiBn2I,GACvDA,GAAKs1I,GAAgBrL,GACrB,IAAIhhH,EAAMghH,EAAQr9I,KAAKxC,OACnB2sJ,EAAQ/d,IAAU,SAAUrG,GAAM,OAAO+f,GAAoB7lH,EAAIspH,EAAiBxjB,EAAK,GAAGnrE,QAAUxnD,IAAMipB,EAAK,GAEnH,MAAO,CAAC8tH,MAAOA,EAAO9tH,IADtBA,EAAM+vG,IAAU,SAAUrG,GAAM,OAAO+f,GAAoB7lH,EAAIspH,EAAiBxjB,GAAIxvH,IAAMnD,IAAM+2I,EAAO9tH,IAIzG,SAAS+tH,GAAsBnqH,EAAIo9G,EAASkM,EAAiBtvJ,GAG3D,OAFKsvJ,IAAmBA,EAAkBxD,GAAsB9lH,EAAIo9G,IAE7D6M,GAAkBjqH,EAAIo9G,EAASkM,EADtBZ,GAAgB1oH,EAAIo9G,EAASyI,GAAoB7lH,EAAIspH,EAAiBtvJ,GAAS,QAAQsc,KAMzG,SAAS8zI,GAAWl1B,EAAKhiH,EAAGC,EAAGkD,GAC7B,QAAO6+G,EAAIv6D,QAAUxnD,KAAY+hH,EAAI5+G,IAAMnD,IAAYkD,EAAO6+G,EAAI7+G,KAAO6+G,EAAI5/F,OAASpiB,GAGxF,SAAS62I,GAAgB/pH,EAAIo9G,EAASlK,EAAQhgI,EAAGC,GAE/CA,GAAKgqI,GAAaC,GAClB,IAAIkM,EAAkBxD,GAAsB9lH,EAAIo9G,GAG5C6G,EAAewE,GAAgBrL,GAC/B8M,EAAQ,EAAG9tH,EAAMghH,EAAQr9I,KAAKxC,OAAQ8sJ,GAAM,EAE5C/8I,EAAQohI,GAAS0O,EAASp9G,EAAGjrB,IAAIjG,WAGrC,GAAIxB,EAAO,CACT,IAAIstE,GAAQ56C,EAAGlnC,QAAQg3B,aAAew6H,GAAwBC,IAChDvqH,EAAIo9G,EAASlK,EAAQoW,EAAiBh8I,EAAO4F,EAAGC,GAM9D+2I,GALAG,EAAoB,GAAdzvE,EAAKmO,OAKGnO,EAAKwoB,KAAOxoB,EAAKuoB,GAAK,EACpC/mE,EAAMiuH,EAAMzvE,EAAKuoB,GAAKvoB,EAAKwoB,KAAO,EAMpC,IAYIonD,EAAO7d,EAZP8d,EAAW,KAAMC,EAAY,KAC7B5kB,EAAKqG,IAAU,SAAUrG,GAC3B,IAAI5Q,EAAM2wB,GAAoB7lH,EAAIspH,EAAiBxjB,GAEnD,OADA5Q,EAAI5+G,KAAO2tI,EAAc/uB,EAAIv6D,QAAUspF,IAClCmG,GAAWl1B,EAAKhiH,EAAGC,GAAG,KACvB+hH,EAAI5+G,KAAOnD,GAAK+hH,EAAI7+G,MAAQnD,IAC9Bu3I,EAAW3kB,EACX4kB,EAAYx1B,IAEP,KACNg1B,EAAO9tH,GAESwtH,GAAU,EAE7B,GAAIc,EAAW,CAEb,IAAIC,EAASz3I,EAAIw3I,EAAUr0I,KAAOq0I,EAAUp1H,MAAQpiB,EAAG03I,EAAUD,GAAUN,EAC3EvkB,EAAK2kB,GAAYG,EAAU,EAAI,GAC/Bje,EAASie,EAAU,QAAU,SAC7BJ,EAAQG,EAASD,EAAUr0I,KAAOq0I,EAAUp1H,UACvC,CAEA+0H,GAAQvkB,GAAM1pG,GAAO0pG,GAAMokB,GAAUpkB,IAI1C6G,EAAe,GAAN7G,EAAU,QAAUA,GAAMsX,EAAQr9I,KAAKxC,OAAS,SACtDsoJ,GAAoB7lH,EAAIspH,EAAiBxjB,GAAMukB,EAAM,EAAI,IAAI1vF,OAASspF,GAAgB9wI,GAAMk3I,EAC7F,QAAU,SAGZ,IAAIpB,EAASI,GAAarpH,EAAI0zG,GAAIR,EAAQpN,EAAI6G,GAAS,OAAQyQ,EAASkM,GACxEkB,EAAQvB,EAAO5yI,KACfuzI,EAAUz2I,EAAI81I,EAAO3yI,KAAO,EAAInD,GAAK81I,EAAOtuF,OAAS,EAAI,EAI3D,OAAOgvF,GAAYzW,EADnBpN,EAAKoG,GAAmBkR,EAAQr9I,KAAM+lI,EAAI,GACX6G,EAAQid,EAAS12I,EAAIs3I,GAGtD,SAASD,GAAevqH,EAAIo9G,EAASlK,EAAQoW,EAAiBh8I,EAAO4F,EAAGC,GAKtE,IAAI4S,EAAQomH,IAAU,SAAUzrI,GAC9B,IAAIk6E,EAAOttE,EAAM5M,GAAI2pJ,EAAoB,GAAdzvE,EAAKmO,MAChC,OAAOqhE,GAAWf,GAAarpH,EAAI0zG,GAAIR,EAAQmX,EAAMzvE,EAAKuoB,GAAKvoB,EAAKwoB,KAAMinD,EAAM,SAAW,SAC5D,OAAQjN,EAASkM,GAAkBp2I,EAAGC,GAAG,KACvE,EAAG7F,EAAM/P,OAAS,GACjBq9E,EAAOttE,EAAMyY,GAIjB,GAAIA,EAAQ,EAAG,CACb,IAAIskI,EAAoB,GAAdzvE,EAAKmO,MACXvqE,EAAQ6qI,GAAarpH,EAAI0zG,GAAIR,EAAQmX,EAAMzvE,EAAKwoB,KAAOxoB,EAAKuoB,GAAIknD,EAAM,QAAU,UAC3D,OAAQjN,EAASkM,GACtCc,GAAW5rI,EAAOtL,EAAGC,GAAG,IAASqL,EAAMlI,IAAMnD,IAC7CynE,EAAOttE,EAAMyY,EAAQ,IAE3B,OAAO60D,EAGT,SAAS0vE,GAAsBtqH,EAAIo9G,EAASyN,EAASvB,EAAiBh8I,EAAO4F,EAAGC,GAQ9E,IAAIo9C,EAAM05F,GAAkBjqH,EAAIo9G,EAASkM,EAAiBn2I,GACtD+2I,EAAQ35F,EAAI25F,MACZ9tH,EAAMm0B,EAAIn0B,IACV,KAAKwiB,KAAKw+F,EAAQr9I,KAAKkmD,OAAO7pB,EAAM,KAAOA,IAE/C,IADA,IAAIw+C,EAAO,KAAMkwE,EAAc,KACtBpqJ,EAAI,EAAGA,EAAI4M,EAAM/P,OAAQmD,IAAK,CACrC,IAAIwsB,EAAI5f,EAAM5M,GACd,KAAIwsB,EAAEk2E,MAAQhnE,GAAOlP,EAAEi2E,IAAM+mD,GAA7B,CACA,IACIa,EAAOlF,GAAoB7lH,EAAIspH,EADd,GAAXp8H,EAAE67D,MAC8CrnE,KAAKE,IAAIwa,EAAKlP,EAAEi2E,IAAM,EAAIzhF,KAAKC,IAAIuoI,EAAOh9H,EAAEk2E,OAAO9tE,MAGzG01H,EAAOD,EAAO73I,EAAIA,EAAI63I,EAAO,IAAMA,EAAO73I,IACzC0nE,GAAQkwE,EAAcE,KACzBpwE,EAAO1tD,EACP49H,EAAcE,IAOlB,OAJKpwE,IAAQA,EAAOttE,EAAMA,EAAM/P,OAAS,IAErCq9E,EAAKwoB,KAAO8mD,IAAStvE,EAAO,CAACwoB,KAAM8mD,EAAO/mD,GAAIvoB,EAAKuoB,GAAIpa,MAAOnO,EAAKmO,QACnEnO,EAAKuoB,GAAK/mE,IAAOw+C,EAAO,CAACwoB,KAAMxoB,EAAKwoB,KAAMD,GAAI/mE,EAAK2sD,MAAOnO,EAAKmO,QAC5DnO,EAKT,SAASqwE,GAAW/9I,GAClB,GAAgC,MAA5BA,EAAQm7I,iBAA4B,OAAOn7I,EAAQm7I,iBACvD,GAAmB,MAAf3B,GAAqB,CACvBA,GAAczd,EAAI,MAAO,KAAM,wBAG/B,IAAK,IAAIvoI,EAAI,EAAGA,EAAI,KAAMA,EACxBgmJ,GAAY3oJ,YAAYS,SAAS86C,eAAe,MAChDotG,GAAY3oJ,YAAYkrI,EAAI,OAE9Byd,GAAY3oJ,YAAYS,SAAS86C,eAAe,MAElD0vF,EAAqB97H,EAAQmjI,QAASqW,IACtC,IAAIhuJ,EAASguJ,GAAY/sI,aAAe,GAGxC,OAFIjhB,EAAS,IAAKwU,EAAQm7I,iBAAmB3vJ,GAC7C28D,EAAenoD,EAAQmjI,SAChB33I,GAAU,EAInB,SAAS2uJ,GAAUn6I,GACjB,GAA+B,MAA3BA,EAAQk7I,gBAA2B,OAAOl7I,EAAQk7I,gBACtD,IAAI8C,EAASjiB,EAAI,OAAQ,cACrBqV,EAAMrV,EAAI,MAAO,CAACiiB,GAAS,wBAC/BliB,EAAqB97H,EAAQmjI,QAASiO,GACtC,IAAI9kI,EAAO0xI,EAAOzxI,wBAAyB9gB,GAAS6gB,EAAK8b,MAAQ9b,EAAKnD,MAAQ,GAE9E,OADI1d,EAAQ,IAAKuU,EAAQk7I,gBAAkBzvJ,GACpCA,GAAS,GAKlB,SAASstJ,GAAcjmH,GAGrB,IAFA,IAAIa,EAAIb,EAAG9yB,QAASmJ,EAAO,GAAI1d,EAAQ,GACnCqqJ,EAAaniH,EAAEsjH,QAAQ56B,WAClBxuC,EAAIl6C,EAAEsjH,QAAQjmJ,WAAYwC,EAAI,EAAGq6E,EAAGA,EAAIA,EAAE4tC,cAAejoH,EAAG,CACnE,IAAIzE,EAAK+jC,EAAG9yB,QAAQ+1I,YAAYviJ,GAAGrH,UACnCgd,EAAKpa,GAAM8+E,EAAEjhE,WAAaihE,EAAEwuC,WAAay5B,EACzCrqJ,EAAMsD,GAAM8+E,EAAE3C,YAEhB,MAAO,CAACsqE,SAAUyI,GAAqBtqH,GAC/B8hH,iBAAkB9hH,EAAEsjH,QAAQvqI,YAC5BopI,WAAY3sI,EACZ6sI,YAAavqJ,EACborJ,aAAcljH,EAAE31B,QAAQktE,aAMlC,SAAS+yE,GAAqBj+I,GAC5B,OAAOA,EAAQ63I,SAAStrI,wBAAwBpD,KAAOnJ,EAAQm3I,MAAM5qI,wBAAwBpD,KAM/F,SAASunI,GAAe59G,GACtB,IAAIioF,EAAKgjC,GAAWjrH,EAAG9yB,SAAUk4I,EAAWplH,EAAGlnC,QAAQg3B,aACnDs7H,EAAUhG,GAAY1jI,KAAKC,IAAI,EAAGqe,EAAG9yB,QAAQ63I,SAAS3sE,YAAcivE,GAAUrnH,EAAG9yB,SAAW,GAChG,OAAO,SAAU24H,GACf,GAAImX,GAAah9G,EAAGjrB,IAAK8wH,GAAS,OAAO,EAEzC,IAAIwlB,EAAgB,EACpB,GAAIxlB,EAAK4d,QAAW,IAAK,IAAI/iJ,EAAI,EAAGA,EAAImlI,EAAK4d,QAAQlmJ,OAAQmD,IACvDmlI,EAAK4d,QAAQ/iJ,GAAGhI,SAAU2yJ,GAAiBxlB,EAAK4d,QAAQ/iJ,GAAGhI,QAGjE,OAAI0sJ,EACOiG,GAAiB3pI,KAAK6qH,KAAK1G,EAAK9lI,KAAKxC,OAAS6tJ,IAAY,GAAKnjC,EAE/DojC,EAAgBpjC,GAI/B,SAASqjC,GAAoBtrH,GAC3B,IAAIjrB,EAAMirB,EAAGjrB,IAAKw2I,EAAM3N,GAAe59G,GACvCjrB,EAAIg+H,MAAK,SAAUlN,GACjB,IAAIiY,EAAYyN,EAAI1lB,GAChBiY,GAAajY,EAAKntI,QAAUu6I,GAAiBpN,EAAMiY,MAS3D,SAAS0N,GAAaxrH,EAAIxkC,EAAGiwJ,EAASC,GACpC,IAAIx+I,EAAU8yB,EAAG9yB,QACjB,IAAKu+I,GAAyD,QAA9C3b,GAASt0I,GAAGg+D,aAAa,kBAA+B,OAAO,KAE/E,IAAItmD,EAAGC,EAAGqwE,EAAQt2E,EAAQq3I,UAAU9qI,wBAEpC,IAAMvG,EAAI1X,EAAE+Z,QAAUiuE,EAAMntE,KAAMlD,EAAI3X,EAAEga,QAAUguE,EAAMltE,IACxD,MAAOq1I,GAAO,OAAO,KACrB,IAAmC9lB,EAA/BojB,EAASa,GAAW9pH,EAAI9sB,EAAGC,GAC/B,GAAIu4I,GAAWzC,EAAOY,KAAO,IAAMhkB,EAAO6M,GAAQ1yG,EAAGjrB,IAAKk0I,EAAOpjB,MAAM9lI,MAAMxC,QAAU0rJ,EAAOnjB,GAAI,CAChG,IAAI8lB,EAAU1hB,EAAYrE,EAAMA,EAAKtoI,OAAQyiC,EAAGlnC,QAAQ0tI,SAAWX,EAAKtoI,OACxE0rJ,EAASvV,GAAIuV,EAAOpjB,KAAMnkH,KAAKC,IAAI,EAAGD,KAAK0c,OAAOlrB,EAAIuxI,GAASzkH,EAAG9yB,SAASmJ,MAAQgxI,GAAUrnH,EAAG9yB,UAAY0+I,IAE9G,OAAO3C,EAKT,SAASjD,GAAchmH,EAAI+6C,GACzB,GAAIA,GAAK/6C,EAAG9yB,QAAQmqI,OAAU,OAAO,KAErC,IADAt8D,GAAK/6C,EAAG9yB,QAAQkqI,UACR,EAAK,OAAO,KAEpB,IADA,IAAI39I,EAAOumC,EAAG9yB,QAAQzT,KACbiH,EAAI,EAAGA,EAAIjH,EAAK8D,OAAQmD,IAE/B,IADAq6E,GAAKthF,EAAKiH,GAAGw9B,MACL,EAAK,OAAOx9B,EAUxB,SAASmrJ,GAAU7rH,EAAIojE,EAAMD,EAAI2oD,GACnB,MAAR1oD,IAAgBA,EAAOpjE,EAAGjrB,IAAI1D,OACxB,MAAN8xF,IAAcA,EAAKnjE,EAAGjrB,IAAI1D,MAAQ2uB,EAAGjrB,IAAImpB,MACxC4tH,IAAWA,EAAU,GAE1B,IAAI5+I,EAAU8yB,EAAG9yB,QAOjB,GANI4+I,GAAW3oD,EAAKj2F,EAAQmqI,SACM,MAA7BnqI,EAAQ6+I,mBAA6B7+I,EAAQ6+I,kBAAoB3oD,KAClEl2F,EAAQ6+I,kBAAoB3oD,GAEhCpjE,EAAGsvG,MAAM0c,aAAc,EAEnB5oD,GAAQl2F,EAAQmqI,OACduB,IAAqBgE,GAAa58G,EAAGjrB,IAAKquF,GAAQl2F,EAAQmqI,QAC1D4U,GAAUjsH,QACT,GAAImjE,GAAMj2F,EAAQkqI,SACnBwB,IAAqBkE,GAAgB98G,EAAGjrB,IAAKouF,EAAK2oD,GAAW5+I,EAAQkqI,SACvE6U,GAAUjsH,IAEV9yB,EAAQkqI,UAAY0U,EACpB5+I,EAAQmqI,QAAUyU,QAEf,GAAI1oD,GAAQl2F,EAAQkqI,UAAYj0C,GAAMj2F,EAAQmqI,OACnD4U,GAAUjsH,QACL,GAAIojE,GAAQl2F,EAAQkqI,SAAU,CACnC,IAAI8U,EAAMC,GAAiBnsH,EAAImjE,EAAIA,EAAK2oD,EAAS,GAC7CI,GACFh/I,EAAQzT,KAAOyT,EAAQzT,KAAKi9C,MAAMw1G,EAAInmI,OACtC7Y,EAAQkqI,SAAW8U,EAAIrP,MACvB3vI,EAAQmqI,QAAUyU,GAElBG,GAAUjsH,QAEP,GAAImjE,GAAMj2F,EAAQmqI,OAAQ,CAC/B,IAAI+U,EAAQD,GAAiBnsH,EAAIojE,EAAMA,GAAO,GAC1CgpD,GACFl/I,EAAQzT,KAAOyT,EAAQzT,KAAKi9C,MAAM,EAAG01G,EAAMrmI,OAC3C7Y,EAAQmqI,OAAS+U,EAAMvP,OAEvBoP,GAAUjsH,OAEP,CACL,IAAIqsH,EAASF,GAAiBnsH,EAAIojE,EAAMA,GAAO,GAC3CkpD,EAASH,GAAiBnsH,EAAImjE,EAAIA,EAAK2oD,EAAS,GAChDO,GAAUC,GACZp/I,EAAQzT,KAAOyT,EAAQzT,KAAKi9C,MAAM,EAAG21G,EAAOtmI,OACzCgP,OAAO6rH,GAAe5gH,EAAIqsH,EAAOxP,MAAOyP,EAAOzP,QAC/C9nH,OAAO7nB,EAAQzT,KAAKi9C,MAAM41G,EAAOvmI,QACpC7Y,EAAQmqI,QAAUyU,GAElBG,GAAUjsH,GAId,IAAIwwE,EAAMtjG,EAAQ2xI,iBACdruC,IACErN,EAAKqN,EAAIqsC,MACTrsC,EAAIqsC,OAASiP,EACR1oD,EAAOoN,EAAIqsC,MAAQrsC,EAAItyE,OAC5BhxB,EAAQ2xI,iBAAmB,OAMnC,SAAS0N,GAAcvsH,EAAI6lG,EAAMjuI,GAC/BooC,EAAGsvG,MAAM0c,aAAc,EACvB,IAAI9+I,EAAU8yB,EAAG9yB,QAASsjG,EAAMxwE,EAAG9yB,QAAQ2xI,iBAI3C,GAHIruC,GAAOq1B,GAAQr1B,EAAIqsC,OAAShX,EAAOr1B,EAAIqsC,MAAQrsC,EAAItyE,OACnDhxB,EAAQ2xI,iBAAmB,QAE3BhZ,EAAO34H,EAAQkqI,UAAYvR,GAAQ34H,EAAQmqI,QAA/C,CACA,IAAI+G,EAAWlxI,EAAQzT,KAAKusJ,GAAchmH,EAAI6lG,IAC9C,GAAqB,MAAjBuY,EAAS9mG,KAAb,CACA,IAAIic,EAAM6qF,EAAS9hB,UAAY8hB,EAAS9hB,QAAU,KACvB,GAAvBrxH,EAAQsoD,EAAK37D,IAAe27D,EAAIrvD,KAAKtM,KAI3C,SAASq0J,GAAUjsH,GACjBA,EAAG9yB,QAAQkqI,SAAWp3G,EAAG9yB,QAAQmqI,OAASr3G,EAAGjrB,IAAI1D,MACjD2uB,EAAG9yB,QAAQzT,KAAO,GAClBumC,EAAG9yB,QAAQ27I,WAAa,EAG1B,SAASsD,GAAiBnsH,EAAIwsH,EAAMC,EAAMn7B,GACxC,IAAqC9iE,EAAjCzoC,EAAQigI,GAAchmH,EAAIwsH,GAAa/yJ,EAAOumC,EAAG9yB,QAAQzT,KAC7D,IAAKm/I,IAAqB6T,GAAQzsH,EAAGjrB,IAAI1D,MAAQ2uB,EAAGjrB,IAAImpB,KACpD,MAAO,CAACnY,MAAOA,EAAO82H,MAAO4P,GAEjC,IADA,IAAI1xE,EAAI/6C,EAAG9yB,QAAQkqI,SACV12I,EAAI,EAAGA,EAAIqlB,EAAOrlB,IACvBq6E,GAAKthF,EAAKiH,GAAGw9B,KACjB,GAAI68C,GAAKyxE,EAAM,CACb,GAAIl7B,EAAM,EAAG,CACX,GAAIvrG,GAAStsB,EAAK8D,OAAS,EAAK,OAAO,KACvCixD,EAAQusB,EAAIthF,EAAKssB,GAAOmY,KAAQsuH,EAChCzmI,SAEAyoC,EAAOusB,EAAIyxE,EAEbA,GAAQh+F,EAAMi+F,GAAQj+F,EAExB,KAAOouF,GAAa58G,EAAGjrB,IAAK03I,IAASA,GAAM,CACzC,GAAI1mI,IAAUurG,EAAM,EAAI,EAAI73H,EAAK8D,OAAS,GAAM,OAAO,KACvDkvJ,GAAQn7B,EAAM73H,EAAKssB,GAASurG,EAAM,EAAI,EAAI,IAAIpzF,KAC9CnY,GAASurG,EAEX,MAAO,CAACvrG,MAAOA,EAAO82H,MAAO4P,GAK/B,SAASC,GAAW1sH,EAAIojE,EAAMD,GAC5B,IAAIj2F,EAAU8yB,EAAG9yB,QACE,GADcA,EAAQzT,KAChC8D,QAAe6lG,GAAQl2F,EAAQmqI,QAAUl0C,GAAMj2F,EAAQkqI,UAC9DlqI,EAAQzT,KAAOmnJ,GAAe5gH,EAAIojE,EAAMD,GACxCj2F,EAAQkqI,SAAWh0C,IAEfl2F,EAAQkqI,SAAWh0C,EACnBl2F,EAAQzT,KAAOmnJ,GAAe5gH,EAAIojE,EAAMl2F,EAAQkqI,UAAUriH,OAAO7nB,EAAQzT,MACpEyT,EAAQkqI,SAAWh0C,IACxBl2F,EAAQzT,KAAOyT,EAAQzT,KAAKi9C,MAAMsvG,GAAchmH,EAAIojE,KACxDl2F,EAAQkqI,SAAWh0C,EACfl2F,EAAQmqI,OAASl0C,EACjBj2F,EAAQzT,KAAOyT,EAAQzT,KAAKs7B,OAAO6rH,GAAe5gH,EAAI9yB,EAAQmqI,OAAQl0C,IACjEj2F,EAAQmqI,OAASl0C,IACtBj2F,EAAQzT,KAAOyT,EAAQzT,KAAKi9C,MAAM,EAAGsvG,GAAchmH,EAAImjE,MAE7Dj2F,EAAQmqI,OAASl0C,EAKnB,SAASwpD,GAAe3sH,GAEtB,IADA,IAAIvmC,EAAOumC,EAAG9yB,QAAQzT,KAAMmzJ,EAAQ,EAC3BlsJ,EAAI,EAAGA,EAAIjH,EAAK8D,OAAQmD,IAAK,CACpC,IAAI09I,EAAW3kJ,EAAKiH,GACf09I,EAASlzD,QAAYkzD,EAAS9mG,OAAQ8mG,EAAS9hB,WAAcswB,EAEpE,OAAOA,EAGT,SAASjxD,GAAgB37D,GACvBA,EAAG9yB,QAAQtQ,MAAMiwJ,cAAc7sH,EAAG9yB,QAAQtQ,MAAMkwJ,oBAGlD,SAASA,GAAiB9sH,EAAI+sH,QACX,IAAZA,IAAqBA,GAAU,GAMpC,IAJA,IAAIh4I,EAAMirB,EAAGjrB,IAAKxc,EAAS,GACvBy0J,EAAcz0J,EAAO00J,QAAUzuJ,SAASC,yBACxCyuJ,EAAc30J,EAAOkpD,UAAYjjD,SAASC,yBAErCiC,EAAI,EAAGA,EAAIqU,EAAI6W,IAAIuhI,OAAO5vJ,OAAQmD,IACzC,GAAKqsJ,GAAWrsJ,GAAKqU,EAAI6W,IAAIwhI,UAA7B,CACA,IAAIxrG,EAAQ7sC,EAAI6W,IAAIuhI,OAAOzsJ,GAC3B,KAAIkhD,EAAMwhD,OAAOyiC,MAAQ7lG,EAAG9yB,QAAQmqI,QAAUz1F,EAAMuhD,KAAK0iC,KAAO7lG,EAAG9yB,QAAQkqI,UAA3E,CACA,IAAIgF,EAAYx6F,EAAMvjD,SAClB+9I,GAAap8G,EAAGlnC,QAAQu0J,0BACxBC,GAAoBttH,EAAI4hB,EAAMzlC,KAAM6wI,GACnC5Q,GACDmR,GAAmBvtH,EAAI4hB,EAAOsrG,IAEpC,OAAO30J,EAIT,SAAS+0J,GAAoBttH,EAAI7jB,EAAM22E,GACrC,IAAIrrE,EAAM4hI,GAAarpH,EAAI7jB,EAAM,MAAO,KAAM,MAAO6jB,EAAGlnC,QAAQ0uJ,2BAE5DgG,EAAS16D,EAAO/0F,YAAYkrI,EAAI,MAAO,IAAU,sBAKrD,GAJAukB,EAAOvgJ,MAAMoJ,KAAOoR,EAAIpR,KAAO,KAC/Bm3I,EAAOvgJ,MAAMqJ,IAAMmR,EAAInR,IAAM,KAC7Bk3I,EAAOvgJ,MAAMvU,OAASgpB,KAAKC,IAAI,EAAG8F,EAAIkzC,OAASlzC,EAAInR,KAAO0pB,EAAGlnC,QAAQ20J,aAAe,KAEhF,oBAAoB7uG,KAAK5e,EAAG0tH,oBAAoBr0J,WAAY,CAC9D,IAAIs0J,EAAUvE,GAAWppH,EAAI7jB,EAAM,MAAO,KAAM,MAC5CwxI,EAAQr4H,MAAQq4H,EAAQt3I,KAAO,IACjCm3I,EAAOvgJ,MAAMtU,MAASg1J,EAAQr4H,MAAQq4H,EAAQt3I,KAAQ,MAI1D,GAAIoR,EAAIgiI,MAAO,CAEb,IAAImE,EAAc96D,EAAO/0F,YAAYkrI,EAAI,MAAO,IAAU,iDAC1D2kB,EAAY3gJ,MAAMC,QAAU,GAC5B0gJ,EAAY3gJ,MAAMoJ,KAAOoR,EAAIgiI,MAAMpzI,KAAO,KAC1Cu3I,EAAY3gJ,MAAMqJ,IAAMmR,EAAIgiI,MAAMnzI,IAAM,KACxCs3I,EAAY3gJ,MAAMvU,OAA8C,KAApC+uB,EAAIgiI,MAAM9uF,OAASlzC,EAAIgiI,MAAMnzI,KAAa,MAI1E,SAASu3I,GAAU54H,EAAGC,GAAK,OAAOD,EAAE3e,IAAM4e,EAAE5e,KAAO2e,EAAE5e,KAAO6e,EAAE7e,KAG9D,SAASk3I,GAAmBvtH,EAAI4hB,EAAOkxC,GACrC,IAAI5lF,EAAU8yB,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IAC/BpX,EAAWa,SAASC,yBACpBkoC,EAAU89G,GAASzkH,EAAG9yB,SAAU4gJ,EAAWnnH,EAAQtwB,KACnD03I,EAAYrsI,KAAKC,IAAIzU,EAAQ8gJ,WAAYlJ,GAAa9kH,GAAM9yB,EAAQm3I,MAAMvqI,YAAc6sB,EAAQrR,MAChG24H,EAA0B,OAAjBl5I,EAAIjG,UAEjB,SAAS3R,EAAIkZ,EAAMC,EAAK3d,EAAOgiE,GACzBrkD,EAAM,IAAKA,EAAM,GACrBA,EAAMoL,KAAK0c,MAAM9nB,GACjBqkD,EAASj5C,KAAK0c,MAAMu8B,GACpBh9D,EAASI,YAAYkrI,EAAI,MAAO,KAAM,sBAAwB,6BAA+B5yH,EAAO,0CAA4CC,EAAM,eAA0B,MAAT3d,EAAgBo1J,EAAY13I,EAAO1d,GAAS,8CAAgDgiE,EAASrkD,GAAO,OAGrR,SAAS43I,EAAYroB,EAAMsoB,EAASC,GAClC,IAEI5vI,EAAO4d,EAFPghH,EAAU1K,GAAQ39H,EAAK8wH,GACvBwoB,EAAUjR,EAAQr9I,KAAKxC,OAE3B,SAAS0rJ,EAAOnjB,EAAI8f,GAClB,OAAOwD,GAAWppH,EAAI0zG,GAAI7N,EAAMC,GAAK,MAAOsX,EAASwI,GAGvD,SAAS0I,EAAM7mI,EAAK6pG,EAAK1oG,GACvB,IAAI2lI,EAASpE,GAAsBnqH,EAAIo9G,EAAS,KAAM31H,GAClDoF,EAAe,OAAPykG,IAA0B,SAAR1oG,GAAmB,OAAS,QAE1D,OAAOqgI,EADU,SAARrgI,EAAkB2lI,EAAOrE,MAAQqE,EAAOnyH,KAAO,KAAKwiB,KAAKw+F,EAAQr9I,KAAKkmD,OAAOsoG,EAAOnyH,IAAM,IAAM,EAAI,GAC3FvP,GAAMA,GAG1B,IAAIvf,EAAQohI,GAAS0O,EAASroI,EAAIjG,WAqClC,OApCA09H,GAAoBl/H,EAAO6gJ,GAAW,EAAY,MAATC,EAAgBC,EAAUD,GAAO,SAAUhrD,EAAMD,EAAImuB,EAAK5wH,GACjG,IAAI2pJ,EAAa,OAAP/4B,EACNk9B,EAAUvF,EAAO7lD,EAAMinD,EAAM,OAAS,SACtCoE,EAAQxF,EAAO9lD,EAAK,EAAGknD,EAAM,QAAU,QAEvCqE,EAAuB,MAAXP,GAA2B,GAAR/qD,EAAWurD,EAAmB,MAATP,GAAiBjrD,GAAMkrD,EAC3Eh9I,EAAa,GAAL3Q,EAAQ8gH,GAAQl0G,GAAS5M,GAAK4M,EAAM/P,OAAS,EACzD,GAAIkxJ,EAAMn4I,IAAMk4I,EAAQl4I,KAAO,EAAG,CAChC,IACIs4I,GAAaX,EAASU,EAAUD,IAAcltC,EAC9CnrG,GAFY43I,EAASS,EAAYC,IAAYt9I,EAE3By8I,GAAYzD,EAAMmE,EAAUC,GAAOp4I,KACrDif,EAAQs5H,EAAYb,GAAa1D,EAAMoE,EAAQD,GAASl5H,MAC5Dn4B,EAAIkZ,EAAMm4I,EAAQl4I,IAAKgf,EAAQjf,EAAMm4I,EAAQ7zF,YACxC,CACL,IAAIk0F,EAASC,EAAUC,EAASC,EAC5B3E,GACFwE,EAAUZ,GAAUS,GAAar9I,EAAQy8I,EAAWU,EAAQn4I,KAC5Dy4I,EAAWb,EAASF,EAAYO,EAAMlrD,EAAMkuB,EAAK,UACjDy9B,EAAUd,EAASH,EAAWQ,EAAMnrD,EAAImuB,EAAK,SAC7C09B,EAAWf,GAAUU,GAAWntC,EAAOusC,EAAYU,EAAMn5H,QAEzDu5H,EAAWZ,EAAoBK,EAAMlrD,EAAMkuB,EAAK,UAA5Bw8B,EACpBgB,GAAYb,GAAUS,GAAar9I,EAAQ08I,EAAYS,EAAQl5H,MAC/Dy5H,GAAWd,GAAUU,GAAWntC,EAAOssC,EAAWW,EAAMp4I,KACxD24I,EAAYf,EAAqBK,EAAMnrD,EAAImuB,EAAK,SAA3By8B,GAEvB5wJ,EAAI0xJ,EAASL,EAAQl4I,IAAKw4I,EAAWD,EAASL,EAAQ7zF,QAClD6zF,EAAQ7zF,OAAS8zF,EAAMn4I,KAAOnZ,EAAI2wJ,EAAUU,EAAQ7zF,OAAQ,KAAM8zF,EAAMn4I,KAC5EnZ,EAAI4xJ,EAASN,EAAMn4I,IAAK04I,EAAWD,EAASN,EAAM9zF,UAG/Cn8C,GAASqvI,GAAUW,EAAShwI,GAAS,KAAKA,EAAQgwI,GACnDX,GAAUY,EAAOjwI,GAAS,IAAKA,EAAQiwI,KACtCryH,GAAOyxH,GAAUW,EAASpyH,GAAO,KAAKA,EAAMoyH,GAC7CX,GAAUY,EAAOryH,GAAO,IAAKA,EAAMqyH,MAElC,CAACjwI,MAAOA,EAAO4d,IAAKA,GAG7B,IAAI6yH,EAAQrtG,EAAMwhD,OAAQ8rD,EAAMttG,EAAMuhD,KACtC,GAAI8rD,EAAMppB,MAAQqpB,EAAIrpB,KACpBqoB,EAAYe,EAAMppB,KAAMopB,EAAMnpB,GAAIopB,EAAIppB,QACjC,CACL,IAAIqpB,EAAWzc,GAAQ39H,EAAKk6I,EAAMppB,MAAOupB,EAAS1c,GAAQ39H,EAAKm6I,EAAIrpB,MAC/DwpB,EAAc5S,GAAW0S,IAAa1S,GAAW2S,GACjDE,EAAUpB,EAAYe,EAAMppB,KAAMopB,EAAMnpB,GAAIupB,EAAcF,EAASpvJ,KAAKxC,OAAS,EAAI,MAAM6+B,IAC3FmzH,EAAarB,EAAYgB,EAAIrpB,KAAMwpB,EAAc,EAAI,KAAMH,EAAIppB,IAAItnH,MACnE6wI,IACEC,EAAQh5I,IAAMi5I,EAAWj5I,IAAM,GACjCnZ,EAAImyJ,EAAQh6H,MAAOg6H,EAAQh5I,IAAK,KAAMg5I,EAAQ30F,QAC9Cx9D,EAAI2wJ,EAAUyB,EAAWj5I,IAAKi5I,EAAWl5I,KAAMk5I,EAAW50F,SAE1Dx9D,EAAImyJ,EAAQh6H,MAAOg6H,EAAQh5I,IAAKi5I,EAAWl5I,KAAOi5I,EAAQh6H,MAAOg6H,EAAQ30F,SAGzE20F,EAAQ30F,OAAS40F,EAAWj5I,KAC5BnZ,EAAI2wJ,EAAUwB,EAAQ30F,OAAQ,KAAM40F,EAAWj5I,KAGrDw8E,EAAO/0F,YAAYJ,GAIrB,SAAS6xJ,GAAaxvH,GACpB,GAAKA,EAAG4J,MAAMxf,QAAd,CACA,IAAIld,EAAU8yB,EAAG9yB,QACjBm3H,cAAcn3H,EAAQuiJ,SACtB,IAAIxpJ,GAAK,EACTiH,EAAQwiJ,UAAUziJ,MAAM0iJ,WAAa,GACjC3vH,EAAGlnC,QAAQ82J,gBAAkB,EAC7B1iJ,EAAQuiJ,QAAUvrB,aAAY,WACzBlkG,EAAG9V,YAAc2lI,GAAO7vH,GAC7B9yB,EAAQwiJ,UAAUziJ,MAAM0iJ,YAAc1pJ,GAAMA,GAAM,GAAK,WACtD+5B,EAAGlnC,QAAQ82J,iBACP5vH,EAAGlnC,QAAQ82J,gBAAkB,IAClC1iJ,EAAQwiJ,UAAUziJ,MAAM0iJ,WAAa,WAG3C,SAASG,GAAY9vH,GACdA,EAAG9V,aACN8V,EAAG9yB,QAAQtQ,MAAMszB,QACZ8P,EAAG4J,MAAMxf,SAAW2lI,GAAQ/vH,IAIrC,SAASgwH,GAAehwH,GACtBA,EAAG4J,MAAMqmH,mBAAoB,EAC7B11I,YAAW,WAAkBylB,EAAG4J,MAAMqmH,oBACpCjwH,EAAG4J,MAAMqmH,mBAAoB,EACzBjwH,EAAG4J,MAAMxf,SAAWylI,GAAO7vH,MAC5B,KAGP,SAAS+vH,GAAQ/vH,EAAIxkC,GACfwkC,EAAG4J,MAAMqmH,oBAAsBjwH,EAAG4J,MAAMsmH,eAAgBlwH,EAAG4J,MAAMqmH,mBAAoB,GAE9D,YAAvBjwH,EAAGlnC,QAAQ42B,WACVsQ,EAAG4J,MAAMxf,UACZ0kH,GAAO9uG,EAAI,QAASA,EAAIxkC,GACxBwkC,EAAG4J,MAAMxf,SAAU,EACnBlvB,EAAS8kC,EAAG9yB,QAAQhC,QAAS,sBAIxB80B,EAAGsvG,OAAStvG,EAAG9yB,QAAQijJ,mBAAqBnwH,EAAGjrB,IAAI6W,MACtDoU,EAAG9yB,QAAQtQ,MAAMmL,QACb6/H,GAAUrtH,YAAW,WAAc,OAAOylB,EAAG9yB,QAAQtQ,MAAMmL,OAAM,KAAU,KAEjFi4B,EAAG9yB,QAAQtQ,MAAMwzJ,iBAEnBZ,GAAaxvH,IAEf,SAAS6vH,GAAO7vH,EAAIxkC,GACdwkC,EAAG4J,MAAMqmH,oBAETjwH,EAAG4J,MAAMxf,UACX0kH,GAAO9uG,EAAI,OAAQA,EAAIxkC,GACvBwkC,EAAG4J,MAAMxf,SAAU,EACnB2+G,EAAQ/oG,EAAG9yB,QAAQhC,QAAS,uBAE9Bm5H,cAAcrkG,EAAG9yB,QAAQuiJ,SACzBl1I,YAAW,WAAmBylB,EAAG4J,MAAMxf,UAAW4V,EAAG9yB,QAAQjV,OAAQ,KAAY,MAKnF,SAASo4J,GAAwBrwH,GAM/B,IALA,IAAI9yB,EAAU8yB,EAAG9yB,QACbojJ,EAAapjJ,EAAQqjJ,QAAQ12I,UAC7B22I,EAAU9uI,KAAKC,IAAI,EAAGzU,EAAQ63I,SAAStrI,wBAAwBnD,KAC/Dm6I,EAAYvjJ,EAAQqjJ,QAAQ92I,wBAAwBnD,IACpDo6I,EAAa,EACRhwJ,EAAI,EAAGA,EAAIwM,EAAQzT,KAAK8D,OAAQmD,IAAK,CAC5C,IAAIumI,EAAM/5H,EAAQzT,KAAKiH,GAAI0kJ,EAAWplH,EAAGlnC,QAAQg3B,aAC7Cp3B,OAAS,EAAUC,EAAQ,EAC/B,IAAIsuI,EAAI/7C,OAAR,CAEA,GADAulE,GAAaxpB,EAAIpB,KAAKntI,OAClBgvI,GAAMC,EAAa,EAAG,CACxB,IAAI4f,EAAMtgB,EAAI3vF,KAAKz9B,UAAYotH,EAAI3vF,KAAK39B,aACxCjhB,EAAS6uJ,EAAM+I,EACfA,EAAa/I,MACR,CACL,IAAIryB,EAAM+R,EAAI3vF,KAAK79B,wBACnB/gB,EAASw8H,EAAIv6D,OAASu6D,EAAI5+G,KAGrB8uI,GAAYne,EAAIlnI,KAAK7B,aACtBvF,EAAQsuI,EAAIlnI,KAAK7B,WAAWub,wBAAwB6b,MAAQ4/F,EAAI7+G,KAAO,GAE7E,IAAIm4C,EAAOy4E,EAAIpB,KAAKntI,OAASA,EAC7B,IAAI81D,EAAO,MAAQA,GAAQ,QACrBiiG,EAAYD,IAAWE,GAAcliG,GACzCykF,GAAiBhM,EAAIpB,KAAMntI,GAC3Bi4J,GAAmB1pB,EAAIpB,MACnBoB,EAAIt9E,MAAQ,IAAK,IAAI7R,EAAI,EAAGA,EAAImvF,EAAIt9E,KAAKpsD,OAAQu6C,IACjD64G,GAAmB1pB,EAAIt9E,KAAK7R,IAElC,GAAIn/C,EAAQqnC,EAAG9yB,QAAQ8gJ,WAAY,CACjC,IAAI4C,EAAUlvI,KAAK6qH,KAAK5zI,EAAQ0uJ,GAAUrnH,EAAG9yB,UACzC0jJ,EAAU5wH,EAAG9yB,QAAQuwI,gBACvBz9G,EAAG9yB,QAAQuwI,cAAgBmT,EAC3B5wH,EAAG9yB,QAAQswI,QAAUvW,EAAIpB,KACzB7lG,EAAG9yB,QAAQwwI,gBAAiB,KAI9Bh8H,KAAK+lD,IAAIipF,GAAc,IAAKxjJ,EAAQ63I,SAAS9nJ,WAAayzJ,GAKhE,SAASC,GAAmB9qB,GAC1B,GAAIA,EAAK4d,QAAW,IAAK,IAAI/iJ,EAAI,EAAGA,EAAImlI,EAAK4d,QAAQlmJ,SAAUmD,EAAG,CAChE,IAAIsrC,EAAI65F,EAAK4d,QAAQ/iJ,GAAIqK,EAASihC,EAAEsL,KAAK1+B,WACrC7N,IAAUihC,EAAEtzC,OAASqS,EAAO4O,eAOpC,SAASk3I,GAAa3jJ,EAAS6H,EAAK+7I,GAClC,IAAIx6I,EAAMw6I,GAA4B,MAAhBA,EAASx6I,IAAcoL,KAAKC,IAAI,EAAGmvI,EAASx6I,KAAOpJ,EAAQ63I,SAAS9nJ,UAC1FqZ,EAAMoL,KAAK2gD,MAAM/rD,EAAMm7B,GAAWvkC,IAClC,IAAIytD,EAASm2F,GAA+B,MAAnBA,EAASn2F,OAAiBm2F,EAASn2F,OAASrkD,EAAMpJ,EAAQhC,QAAQotE,aAEvF8qB,EAAOgwC,GAAar+H,EAAKuB,GAAM6sF,EAAKiwC,GAAar+H,EAAK4lD,GAG1D,GAAIm2F,GAAYA,EAASC,OAAQ,CAC/B,IAAIC,EAAaF,EAASC,OAAO3tD,KAAKyiC,KAAMorB,EAAWH,EAASC,OAAO5tD,GAAG0iC,KACtEmrB,EAAa5tD,GACfA,EAAO4tD,EACP7tD,EAAKiwC,GAAar+H,EAAKooI,GAAazK,GAAQ39H,EAAKi8I,IAAe9jJ,EAAQhC,QAAQotE,eACvE52D,KAAKE,IAAIqvI,EAAUl8I,EAAIgoI,aAAe55C,IAC/CC,EAAOgwC,GAAar+H,EAAKooI,GAAazK,GAAQ39H,EAAKk8I,IAAa/jJ,EAAQhC,QAAQotE,cAChF6qB,EAAK8tD,GAGT,MAAO,CAAC7tD,KAAMA,EAAMD,GAAIzhF,KAAKC,IAAIwhF,EAAIC,EAAO,IAO9C,SAAS8tD,GAAkBlxH,EAAIxmB,GAC7B,IAAIu1H,GAAe/uG,EAAI,wBAAvB,CAEA,IAAI9yB,EAAU8yB,EAAG9yB,QAASgoH,EAAMhoH,EAAQm3I,MAAM5qI,wBAAyB03I,EAAW,KAGlF,GAFI33I,EAAKlD,IAAM4+G,EAAI5+G,IAAM,EAAK66I,GAAW,EAChC33I,EAAKmhD,OAASu6D,EAAI5+G,KAAOjgB,OAAO+6J,aAAe5yJ,SAAS05E,gBAAgBI,gBAAiB64E,GAAW,GAC7F,MAAZA,IAAqBhpB,EAAS,CAChC,IAAIkpB,EAAapoB,EAAI,MAAO,IAAU,KAAO,uDAAyDzvH,EAAKlD,IAAMpJ,EAAQ27I,WAAap3G,GAAWzR,EAAG9yB,UAAY,0CAA4CsM,EAAKmhD,OAASnhD,EAAKlD,IAAMsuI,GAAU5kH,GAAM9yB,EAAQg4I,WAAa,uCAA0C1rI,EAAS,KAAI,cAAiBkI,KAAKC,IAAI,EAAGnI,EAAK8b,MAAQ9b,EAAKnD,MAAS,OACzX2pB,EAAG9yB,QAAQq3I,UAAUxmJ,YAAYszJ,GACjCA,EAAWpwI,eAAekwI,GAC1BnxH,EAAG9yB,QAAQq3I,UAAU1rI,YAAYw4I,KAOrC,SAASC,GAAkBtxH,EAAIvY,EAAK2U,EAAKwK,GAEvC,IAAIptB,EADU,MAAVotB,IAAkBA,EAAS,GAE1B5G,EAAGlnC,QAAQg3B,cAAgBrI,GAAO2U,IAIrCA,EAAoB,UAAd3U,EAAIklH,OAAqB+G,GAAIjsH,EAAIo+G,KAAMp+G,EAAIq+G,GAAK,EAAG,UAAYr+G,EACrEA,EAAMA,EAAIq+G,GAAK4N,GAAIjsH,EAAIo+G,KAAoB,UAAdp+G,EAAIklH,OAAqBllH,EAAIq+G,GAAK,EAAIr+G,EAAIq+G,GAAI,SAAWr+G,GAExF,IAAK,IAAI8pI,EAAQ,EAAGA,EAAQ,EAAGA,IAAS,CACtC,IAAI78G,GAAU,EACVu0G,EAASI,GAAarpH,EAAIvY,GAC1B+pI,EAAap1H,GAAOA,GAAO3U,EAAe4hI,GAAarpH,EAAI5D,GAA1B6sH,EAKjCwI,EAAYC,GAAmB1xH,EAJnCxmB,EAAO,CAACnD,KAAMqL,KAAKE,IAAIqnI,EAAO5yI,KAAMm7I,EAAUn7I,MACtCC,IAAKoL,KAAKE,IAAIqnI,EAAO3yI,IAAKk7I,EAAUl7I,KAAOswB,EAC3CtR,MAAO5T,KAAKC,IAAIsnI,EAAO5yI,KAAMm7I,EAAUn7I,MACvCskD,OAAQj5C,KAAKC,IAAIsnI,EAAOtuF,OAAQ62F,EAAU72F,QAAU/zB,IAExD+qH,EAAW3xH,EAAGjrB,IAAI9X,UAAW20J,EAAY5xH,EAAGjrB,IAAI2E,WASpD,GAR2B,MAAvB+3I,EAAUx0J,YACZ40J,GAAgB7xH,EAAIyxH,EAAUx0J,WAC1BykB,KAAK+lD,IAAIznC,EAAGjrB,IAAI9X,UAAY00J,GAAY,IAAKj9G,GAAU,IAEjC,MAAxB+8G,EAAU/3I,aACZo4I,GAAc9xH,EAAIyxH,EAAU/3I,YACxBgI,KAAK+lD,IAAIznC,EAAGjrB,IAAI2E,WAAak4I,GAAa,IAAKl9G,GAAU,KAE1DA,EAAW,MAElB,OAAOl7B,EAIT,SAASyH,GAAe+e,EAAIxmB,GAC1B,IAAIi4I,EAAYC,GAAmB1xH,EAAIxmB,GACZ,MAAvBi4I,EAAUx0J,WAAqB40J,GAAgB7xH,EAAIyxH,EAAUx0J,WACrC,MAAxBw0J,EAAU/3I,YAAsBo4I,GAAc9xH,EAAIyxH,EAAU/3I,YAOlE,SAASg4I,GAAmB1xH,EAAIxmB,GAC9B,IAAItM,EAAU8yB,EAAG9yB,QAAS6kJ,EAAa9G,GAAWjrH,EAAG9yB,SACjDsM,EAAKlD,IAAM,IAAKkD,EAAKlD,IAAM,GAC/B,IAAI07I,EAAYhyH,EAAGsvG,OAA+B,MAAtBtvG,EAAGsvG,MAAMryI,UAAoB+iC,EAAGsvG,MAAMryI,UAAYiQ,EAAQ63I,SAAS9nJ,UAC3FwqJ,EAASxC,GAAcjlH,GAAKznC,EAAS,GACrCihB,EAAKmhD,OAASnhD,EAAKlD,IAAMmxI,IAAUjuI,EAAKmhD,OAASnhD,EAAKlD,IAAMmxI,GAChE,IAAIwK,EAAYjyH,EAAGjrB,IAAIrc,OAAS8rJ,GAAYt3I,GACxCglJ,EAAQ14I,EAAKlD,IAAMy7I,EAAYI,EAAW34I,EAAKmhD,OAASs3F,EAAYF,EACxE,GAAIv4I,EAAKlD,IAAM07I,EACbz5J,EAAO0E,UAAYi1J,EAAQ,EAAI14I,EAAKlD,SAC/B,GAAIkD,EAAKmhD,OAASq3F,EAAYvK,EAAQ,CAC3C,IAAI2K,EAAS1wI,KAAKE,IAAIpI,EAAKlD,KAAM67I,EAAWF,EAAYz4I,EAAKmhD,QAAU8sF,GACnE2K,GAAUJ,IAAaz5J,EAAO0E,UAAYm1J,GAGhD,IAAIC,EAAcryH,EAAGlnC,QAAQ2pJ,YAAc,EAAIv1I,EAAQi3I,QAAQvqI,YAC3D04I,EAAatyH,EAAGsvG,OAAgC,MAAvBtvG,EAAGsvG,MAAM51H,WAAqBsmB,EAAGsvG,MAAM51H,WAAaxM,EAAQ63I,SAASrrI,WAAa24I,EAC3GE,EAAUzN,GAAa9kH,GAAM9yB,EAAQi3I,QAAQvqI,YAC7C44I,EAAUh5I,EAAK8b,MAAQ9b,EAAKnD,KAAOk8I,EAQvC,OAPIC,IAAWh5I,EAAK8b,MAAQ9b,EAAKnD,KAAOk8I,GACpC/4I,EAAKnD,KAAO,GACZ9d,EAAOmhB,WAAa,EACfF,EAAKnD,KAAOi8I,EACjB/5J,EAAOmhB,WAAagI,KAAKC,IAAI,EAAGnI,EAAKnD,KAAOg8I,GAAeG,EAAU,EAAI,KACpEh5I,EAAK8b,MAAQi9H,EAAUD,EAAa,IACzC/5J,EAAOmhB,WAAaF,EAAK8b,OAASk9H,EAAU,EAAI,IAAMD,GACnDh6J,EAKT,SAASk6J,GAAezyH,EAAI1pB,GACf,MAAPA,IACJo8I,GAAmB1yH,GACnBA,EAAGsvG,MAAMryI,WAAmC,MAAtB+iC,EAAGsvG,MAAMryI,UAAoB+iC,EAAGjrB,IAAI9X,UAAY+iC,EAAGsvG,MAAMryI,WAAaqZ,GAK9F,SAASq8I,GAAoB3yH,GAC3B0yH,GAAmB1yH,GACnB,IAAIinG,EAAMjnG,EAAGvP,YACbuP,EAAGsvG,MAAMsjB,YAAc,CAACxvD,KAAM6jC,EAAK9jC,GAAI8jC,EAAKrgG,OAAQ5G,EAAGlnC,QAAQ+5J,oBAGjE,SAASC,GAAe9yH,EAAI9sB,EAAGC,GACpB,MAALD,GAAkB,MAALC,GAAau/I,GAAmB1yH,GACxC,MAAL9sB,IAAa8sB,EAAGsvG,MAAM51H,WAAaxG,GAC9B,MAALC,IAAa6sB,EAAGsvG,MAAMryI,UAAYkW,GAGxC,SAAS4/I,GAAc/yH,EAAI4hB,GACzB8wG,GAAmB1yH,GACnBA,EAAGsvG,MAAMsjB,YAAchxG,EAOzB,SAAS8wG,GAAmB1yH,GAC1B,IAAI4hB,EAAQ5hB,EAAGsvG,MAAMsjB,YACjBhxG,IACF5hB,EAAGsvG,MAAMsjB,YAAc,KAEvBI,GAAoBhzH,EADT0pH,GAAe1pH,EAAI4hB,EAAMwhD,MAAYsmD,GAAe1pH,EAAI4hB,EAAMuhD,IACvCvhD,EAAMhb,SAI5C,SAASosH,GAAoBhzH,EAAIojE,EAAMD,EAAIv8D,GACzC,IAAIqsH,EAAOvB,GAAmB1xH,EAAI,CAChC3pB,KAAMqL,KAAKE,IAAIwhF,EAAK/sF,KAAM8sF,EAAG9sF,MAC7BC,IAAKoL,KAAKE,IAAIwhF,EAAK9sF,IAAK6sF,EAAG7sF,KAAOswB,EAClCtR,MAAO5T,KAAKC,IAAIyhF,EAAK9tE,MAAO6tE,EAAG7tE,OAC/BqlC,OAAQj5C,KAAKC,IAAIyhF,EAAKzoC,OAAQwoC,EAAGxoC,QAAU/zB,IAE7CksH,GAAe9yH,EAAIizH,EAAKv5I,WAAYu5I,EAAKh2J,WAK3C,SAAS40J,GAAgB7xH,EAAItgC,GACvBgiB,KAAK+lD,IAAIznC,EAAGjrB,IAAI9X,UAAYyC,GAAO,IAClC4nI,GAAS4rB,GAAoBlzH,EAAI,CAAC1pB,IAAK5W,IAC5CyzJ,GAAanzH,EAAItgC,GAAK,GAClB4nI,GAAS4rB,GAAoBlzH,GACjCozH,GAAYpzH,EAAI,MAGlB,SAASmzH,GAAanzH,EAAItgC,EAAK2zJ,GAC7B3zJ,EAAMgiB,KAAKC,IAAI,EAAGD,KAAKE,IAAIoe,EAAG9yB,QAAQ63I,SAASuO,aAAetzH,EAAG9yB,QAAQ63I,SAASzsE,aAAc54E,KAC5FsgC,EAAG9yB,QAAQ63I,SAAS9nJ,WAAayC,GAAQ2zJ,KAC7CrzH,EAAGjrB,IAAI9X,UAAYyC,EACnBsgC,EAAG9yB,QAAQqmJ,WAAWJ,aAAazzJ,GAC/BsgC,EAAG9yB,QAAQ63I,SAAS9nJ,WAAayC,IAAOsgC,EAAG9yB,QAAQ63I,SAAS9nJ,UAAYyC,IAK9E,SAASoyJ,GAAc9xH,EAAItgC,EAAK8zJ,EAAYH,GAC1C3zJ,EAAMgiB,KAAKC,IAAI,EAAGD,KAAKE,IAAIliB,EAAKsgC,EAAG9yB,QAAQ63I,SAAS0O,YAAczzH,EAAG9yB,QAAQ63I,SAAS3sE,eACjFo7E,EAAa9zJ,GAAOsgC,EAAGjrB,IAAI2E,WAAagI,KAAK+lD,IAAIznC,EAAGjrB,IAAI2E,WAAaha,GAAO,KAAO2zJ,IACxFrzH,EAAGjrB,IAAI2E,WAAaha,EACpBg0J,GAAkB1zH,GACdA,EAAG9yB,QAAQ63I,SAASrrI,YAAcha,IAAOsgC,EAAG9yB,QAAQ63I,SAASrrI,WAAaha,GAC9EsgC,EAAG9yB,QAAQqmJ,WAAWzB,cAAcpyJ,IAOtC,SAASi0J,GAAqB3zH,GAC5B,IAAIa,EAAIb,EAAG9yB,QAAS0mJ,EAAU/yH,EAAEsjH,QAAQvqI,YACpCi6I,EAAOnyI,KAAK0c,MAAM4B,EAAGjrB,IAAIrc,OAAS8rJ,GAAYxkH,EAAG9yB,UACrD,MAAO,CACLorE,aAAcz3C,EAAEkkH,SAASzsE,aACzBI,WAAY73C,EAAE31B,QAAQotE,aACtBm7E,YAAa5yH,EAAEkkH,SAAS0O,YAAar7E,YAAav3C,EAAEkkH,SAAS3sE,YAC7DK,UAAW53C,EAAE31B,QAAQktE,YACrB07E,QAAS9zH,EAAGlnC,QAAQ2pJ,YAAcmR,EAAU,EAC5CG,UAAWF,EACXP,aAAcO,EAAOjP,GAAU5kH,GAAMa,EAAEqkH,UACvCL,eAAgBhkH,EAAEgkH,eAClB3B,YAAa0Q,GAIjB,IAAII,GAAmB,SAAS9M,EAAO77I,EAAQ20B,GAC7C1pC,KAAK0pC,GAAKA,EACV,IAAIi0H,EAAO39J,KAAK29J,KAAOhrB,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,mBAAoB,yBAC1EirB,EAAQ59J,KAAK49J,MAAQjrB,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,kCAAmC,yBAC/FgrB,EAAKlwB,SAAWmwB,EAAMnwB,UAAY,EAClCmjB,EAAM+M,GAAO/M,EAAMgN,GAEnBjuJ,GAAGguJ,EAAM,UAAU,WACbA,EAAK37E,cAAgBjtE,EAAO4oJ,EAAKh3J,UAAW,eAElDgJ,GAAGiuJ,EAAO,UAAU,WACdA,EAAM97E,aAAe/sE,EAAO6oJ,EAAMx6I,WAAY,iBAGpDpjB,KAAK69J,kBAAmB,EAEpBzsB,GAAMC,EAAa,IAAKrxI,KAAK49J,MAAMjnJ,MAAMmnJ,UAAY99J,KAAK29J,KAAKhnJ,MAAMonJ,SAAW,SAGtFL,GAAiB57J,UAAUoN,OAAS,SAAU6qI,GAC5C,IAAIikB,EAASjkB,EAAQojB,YAAcpjB,EAAQj4D,YAAc,EACrDm8E,EAASlkB,EAAQijB,aAAejjB,EAAQ/3D,aAAe,EACvDk8E,EAASnkB,EAAQwU,eAErB,GAAI0P,EAAQ,CACVj+J,KAAK29J,KAAKhnJ,MAAMC,QAAU,QAC1B5W,KAAK29J,KAAKhnJ,MAAM0tD,OAAS25F,EAASE,EAAS,KAAO,IAClD,IAAIC,EAAcpkB,EAAQ33D,YAAc47E,EAASE,EAAS,GAE1Dl+J,KAAK29J,KAAK/1J,WAAW+O,MAAMvU,OACzBgpB,KAAKC,IAAI,EAAG0uH,EAAQijB,aAAejjB,EAAQ/3D,aAAem8E,GAAe,UAE3En+J,KAAK29J,KAAKhnJ,MAAMC,QAAU,GAC1B5W,KAAK29J,KAAK/1J,WAAW+O,MAAMvU,OAAS,IAGtC,GAAI47J,EAAQ,CACVh+J,KAAK49J,MAAMjnJ,MAAMC,QAAU,QAC3B5W,KAAK49J,MAAMjnJ,MAAMqoB,MAAQi/H,EAASC,EAAS,KAAO,IAClDl+J,KAAK49J,MAAMjnJ,MAAMoJ,KAAOg6H,EAAQyjB,QAAU,KAC1C,IAAIY,EAAarkB,EAAQ53D,UAAY43D,EAAQyjB,SAAWS,EAASC,EAAS,GAC1El+J,KAAK49J,MAAMh2J,WAAW+O,MAAMtU,MAC1B+oB,KAAKC,IAAI,EAAG0uH,EAAQojB,YAAcpjB,EAAQj4D,YAAcs8E,GAAc,UAExEp+J,KAAK49J,MAAMjnJ,MAAMC,QAAU,GAC3B5W,KAAK49J,MAAMh2J,WAAW+O,MAAMtU,MAAQ,IAQtC,OALKrC,KAAK69J,kBAAoB9jB,EAAQ/3D,aAAe,IACrC,GAAVk8E,GAAel+J,KAAKq+J,gBACxBr+J,KAAK69J,kBAAmB,GAGnB,CAAC7+H,MAAOi/H,EAASC,EAAS,EAAG75F,OAAQ25F,EAASE,EAAS,IAGhER,GAAiB57J,UAAU05J,cAAgB,SAAUrqI,GAC/CnxB,KAAK49J,MAAMx6I,YAAc+N,IAAOnxB,KAAK49J,MAAMx6I,WAAa+N,GACxDnxB,KAAKs+J,cAAgBt+J,KAAKu+J,mBAAmBv+J,KAAK49J,MAAO59J,KAAKs+J,aAAc,UAGlFZ,GAAiB57J,UAAU+6J,aAAe,SAAU1rI,GAC9CnxB,KAAK29J,KAAKh3J,WAAawqB,IAAOnxB,KAAK29J,KAAKh3J,UAAYwqB,GACpDnxB,KAAKw+J,aAAex+J,KAAKu+J,mBAAmBv+J,KAAK29J,KAAM39J,KAAKw+J,YAAa,SAG/Ed,GAAiB57J,UAAUu8J,cAAgB,WACzC,IAAI3oH,EAAIw8F,IAAQN,EAAqB,OAAS,OAC9C5xI,KAAK49J,MAAMjnJ,MAAMvU,OAASpC,KAAK29J,KAAKhnJ,MAAMtU,MAAQqzC,EAClD11C,KAAK49J,MAAMjnJ,MAAM4d,cAAgBv0B,KAAK29J,KAAKhnJ,MAAM4d,cAAgB,OACjEv0B,KAAKs+J,aAAe,IAAIpqB,EACxBl0I,KAAKw+J,YAAc,IAAItqB,GAGzBwpB,GAAiB57J,UAAUy8J,mBAAqB,SAAUE,EAAKC,EAAOp9J,GAEpE,SAASq9J,IAOP,IAAI//B,EAAM6/B,EAAIt7I,yBACI,QAAR7hB,EAAiB4G,SAAS8W,iBAAiB4/G,EAAI5/F,MAAQ,GAAI4/F,EAAI5+G,IAAM4+G,EAAIv6D,QAAU,GACvFn8D,SAAS8W,kBAAkB4/G,EAAI5/F,MAAQ4/F,EAAI7+G,MAAQ,EAAG6+G,EAAIv6D,OAAS,KAC9Do6F,EAAOA,EAAI9nJ,MAAM4d,cAAgB,OACrCmqI,EAAM/6J,IAAI,IAAMg7J,GAZzBF,EAAI9nJ,MAAM4d,cAAgB,OAc1BmqI,EAAM/6J,IAAI,IAAMg7J,IAGlBjB,GAAiB57J,UAAUogC,MAAQ,WACjC,IAAIztB,EAASzU,KAAK49J,MAAMt7I,WACxB7N,EAAO8N,YAAYviB,KAAK49J,OACxBnpJ,EAAO8N,YAAYviB,KAAK29J,OAG1B,IAAIiB,GAAiB,aAOrB,SAASC,GAAiBn1H,EAAIqwG,GACvBA,IAAWA,EAAUsjB,GAAqB3zH,IAC/C,IAAIo1H,EAAap1H,EAAG9yB,QAAQ83I,SAAUqQ,EAAcr1H,EAAG9yB,QAAQg4I,UAC/DoQ,GAAsBt1H,EAAIqwG,GAC1B,IAAK,IAAI3vI,EAAI,EAAGA,EAAI,GAAK00J,GAAcp1H,EAAG9yB,QAAQ83I,UAAYqQ,GAAer1H,EAAG9yB,QAAQg4I,UAAWxkJ,IAC7F00J,GAAcp1H,EAAG9yB,QAAQ83I,UAAYhlH,EAAGlnC,QAAQg3B,cAChDugI,GAAwBrwH,GAC5Bs1H,GAAsBt1H,EAAI2zH,GAAqB3zH,IAC/Co1H,EAAap1H,EAAG9yB,QAAQ83I,SAAUqQ,EAAcr1H,EAAG9yB,QAAQg4I,UAM/D,SAASoQ,GAAsBt1H,EAAIqwG,GACjC,IAAIxvG,EAAIb,EAAG9yB,QACPqoJ,EAAQ10H,EAAE0yH,WAAW/tJ,OAAO6qI,GAEhCxvG,EAAEwjH,MAAMp3I,MAAM+kC,cAAgBnR,EAAEmkH,SAAWuQ,EAAMjgI,OAAS,KAC1DuL,EAAEwjH,MAAMp3I,MAAM0kC,eAAiB9Q,EAAEqkH,UAAYqQ,EAAM56F,QAAU,KAC7D95B,EAAE20H,aAAavoJ,MAAMwoJ,aAAeF,EAAM56F,OAAS,uBAE/C46F,EAAMjgI,OAASigI,EAAM56F,QACvB95B,EAAE60H,gBAAgBzoJ,MAAMC,QAAU,QAClC2zB,EAAE60H,gBAAgBzoJ,MAAMvU,OAAS68J,EAAM56F,OAAS,KAChD95B,EAAE60H,gBAAgBzoJ,MAAMtU,MAAQ48J,EAAMjgI,MAAQ,MACvCuL,EAAE60H,gBAAgBzoJ,MAAMC,QAAU,GACvCqoJ,EAAM56F,QAAU36B,EAAGlnC,QAAQ68J,4BAA8B31H,EAAGlnC,QAAQ2pJ,aACtE5hH,EAAE+0H,aAAa3oJ,MAAMC,QAAU,QAC/B2zB,EAAE+0H,aAAa3oJ,MAAMvU,OAAS68J,EAAM56F,OAAS,KAC7C95B,EAAE+0H,aAAa3oJ,MAAMtU,MAAQ03I,EAAQ6S,YAAc,MAC5CriH,EAAE+0H,aAAa3oJ,MAAMC,QAAU,GApC1CgoJ,GAAe98J,UAAUoN,OAAS,WAAc,MAAO,CAACm1D,OAAQ,EAAGrlC,MAAO,IAC1E4/H,GAAe98J,UAAU05J,cAAgB,aACzCoD,GAAe98J,UAAU+6J,aAAe,aACxC+B,GAAe98J,UAAUogC,MAAQ,aAoCjC,IAAIq9H,GAAiB,CAAC,OAAU7B,GAAkB,KAAQkB,IAE1D,SAASY,GAAe91H,GAClBA,EAAG9yB,QAAQqmJ,aACbvzH,EAAG9yB,QAAQqmJ,WAAW/6H,QAClBwH,EAAG9yB,QAAQqmJ,WAAWr4J,UACtB6tI,EAAQ/oG,EAAG9yB,QAAQhC,QAAS80B,EAAG9yB,QAAQqmJ,WAAWr4J,WAGxD8kC,EAAG9yB,QAAQqmJ,WAAa,IAAIsC,GAAe71H,EAAGlnC,QAAQi9J,iBAAgB,SAAUz+G,GAC9EtX,EAAG9yB,QAAQhC,QAAQjN,aAAaq5C,EAAMtX,EAAG9yB,QAAQwoJ,iBAEjDzvJ,GAAGqxC,EAAM,aAAa,WAChBtX,EAAG4J,MAAMxf,SAAW7P,YAAW,WAAc,OAAOylB,EAAG9yB,QAAQtQ,MAAMszB,UAAY,MAEvFonB,EAAKhrC,aAAa,iBAAkB,WACnC,SAAUmb,EAAKuU,GACJ,cAARA,EAAwB81H,GAAc9xH,EAAIvY,GACvCoqI,GAAgB7xH,EAAIvY,KAC1BuY,GACCA,EAAG9yB,QAAQqmJ,WAAWr4J,UACtBA,EAAS8kC,EAAG9yB,QAAQhC,QAAS80B,EAAG9yB,QAAQqmJ,WAAWr4J,UASzD,IAAI86J,GAAW,EAEf,SAASC,GAAej2H,GACtBA,EAAGsvG,MAAQ,CACTtvG,GAAIA,EACJgsH,aAAa,EACbqJ,YAAar1H,EAAGjrB,IAAIrc,OACpBwtJ,aAAa,EACbgQ,YAAa,EACbC,QAAQ,EACRC,WAAY,KACZ7mB,uBAAwB,KACxB6R,qBAAsB,EACtBiV,kBAAkB,EAClBC,eAAe,EACf58I,WAAY,KAAMzc,UAAW,KAC7B21J,YAAa,KACb1iI,OAAO,EACPj0B,KAAM+5J,GACNO,WAAY,MAEdxV,GAAc/gH,EAAGsvG,OAInB,SAASknB,GAAax2H,GACpB,IAAIs5G,EAAKt5G,EAAGsvG,MACRgK,GAAM+H,GAAgB/H,GAAI,SAAUhlG,GACtC,IAAK,IAAI5zC,EAAI,EAAGA,EAAI4zC,EAAM0sG,IAAIzjJ,OAAQmD,IAClC4zC,EAAM0sG,IAAItgJ,GAAGs/B,GAAGsvG,MAAQ,KAC5BmnB,GAAcniH,MAMlB,SAASmiH,GAAcniH,GAErB,IADA,IAAI0sG,EAAM1sG,EAAM0sG,IACPtgJ,EAAI,EAAGA,EAAIsgJ,EAAIzjJ,OAAQmD,IAC5Bg2J,GAAgB1V,EAAItgJ,IACxB,IAAK,IAAI6sI,EAAM,EAAGA,EAAMyT,EAAIzjJ,OAAQgwI,IAChCopB,GAAgB3V,EAAIzT,IACxB,IAAK,IAAIC,EAAM,EAAGA,EAAMwT,EAAIzjJ,OAAQiwI,IAChCopB,GAAgB5V,EAAIxT,IACxB,IAAK,IAAIE,EAAM,EAAGA,EAAMsT,EAAIzjJ,OAAQmwI,IAChCmpB,GAAgB7V,EAAItT,IACxB,IAAK,IAAIG,EAAM,EAAGA,EAAMmT,EAAIzjJ,OAAQswI,IAChCipB,GAAoB9V,EAAInT,IAG9B,SAAS6oB,GAAgBpd,GACvB,IAAIt5G,EAAKs5G,EAAGt5G,GAAI9yB,EAAU8yB,EAAG9yB,QAC7B6pJ,GAAoB/2H,GAChBs5G,EAAGgd,eAAiB/Y,GAAYv9G,GAEpCs5G,EAAG0d,WAAa1d,EAAG0S,aAAe1S,EAAG4M,aAA+B,MAAhB5M,EAAGr8I,WACrDq8I,EAAGsZ,cAAgBtZ,EAAGsZ,YAAYxvD,KAAKyiC,KAAO34H,EAAQkqI,UACnCkC,EAAGsZ,YAAYzvD,GAAG0iC,MAAQ34H,EAAQmqI,SACrDnqI,EAAQwwI,gBAAkB19G,EAAGlnC,QAAQg3B,aACvCwpH,EAAG9zI,OAAS8zI,EAAG0d,YACb,IAAIC,GAAcj3H,EAAIs5G,EAAG0d,YAAc,CAAC1gJ,IAAKgjI,EAAGr8I,UAAW8zJ,OAAQzX,EAAGsZ,aAActZ,EAAG4M,aAG3F,SAASyQ,GAAgBrd,GACvBA,EAAG4d,eAAiB5d,EAAG0d,YAAcG,GAAsB7d,EAAGt5G,GAAIs5G,EAAG9zI,QAGvE,SAASoxJ,GAAgBtd,GACvB,IAAIt5G,EAAKs5G,EAAGt5G,GAAI9yB,EAAU8yB,EAAG9yB,QACzBosI,EAAG4d,gBAAkB7G,GAAwBrwH,GAEjDs5G,EAAG8d,WAAazD,GAAqB3zH,GAKjC9yB,EAAQwwI,iBAAmB19G,EAAGlnC,QAAQg3B,eACxCwpH,EAAG+d,cAAgB1R,GAAY3lH,EAAI9yB,EAAQswI,QAAStwI,EAAQswI,QAAQz9I,KAAKxC,QAAQ8Y,KAAO,EACxF2pB,EAAG9yB,QAAQ8gJ,WAAa1U,EAAG+d,cAC3B/d,EAAG8d,WAAW3D,YACZ/xI,KAAKC,IAAIzU,EAAQ63I,SAAS3sE,YAAalrE,EAAQm3I,MAAMvqI,WAAaw/H,EAAG+d,cAAgBzS,GAAU5kH,GAAMA,EAAG9yB,QAAQ83I,UAClH1L,EAAGge,cAAgB51I,KAAKC,IAAI,EAAGzU,EAAQm3I,MAAMvqI,WAAaw/H,EAAG+d,cAAgBvS,GAAa9kH,MAGxFs5G,EAAG4d,gBAAkB5d,EAAG+c,oBACxB/c,EAAGie,kBAAoBrqJ,EAAQtQ,MAAMkwJ,oBAG3C,SAAS+J,GAAgBvd,GACvB,IAAIt5G,EAAKs5G,EAAGt5G,GAEY,MAApBs5G,EAAG+d,gBACLr3H,EAAG9yB,QAAQm3I,MAAMp3I,MAAMonJ,SAAW/a,EAAG+d,cAAgB,KACjD/d,EAAGge,cAAgBt3H,EAAGjrB,IAAI2E,YAC1Bo4I,GAAc9xH,EAAIte,KAAKE,IAAIoe,EAAG9yB,QAAQ63I,SAASrrI,WAAY4/H,EAAGge,gBAAgB,GAClFt3H,EAAG9yB,QAAQwwI,gBAAiB,GAG9B,IAAI8Z,EAAYle,EAAGppH,OAASopH,EAAGppH,OAASk5G,IACpCkQ,EAAGie,mBACHv3H,EAAG9yB,QAAQtQ,MAAMiwJ,cAAcvT,EAAGie,kBAAmBC,IACrDle,EAAG4d,gBAAkB5d,EAAG+b,aAAer1H,EAAGjrB,IAAIrc,SAC9Cy8J,GAAiBn1H,EAAIs5G,EAAG8d,YACxB9d,EAAG4d,gBACHO,GAAkBz3H,EAAIs5G,EAAG8d,YAEzB9d,EAAG+c,kBAAoB7G,GAAaxvH,GAEpCA,EAAG4J,MAAMxf,SAAWkvH,EAAG4c,aACvBl2H,EAAG9yB,QAAQtQ,MAAMmL,MAAMuxI,EAAG6c,QAC1BqB,GAAa1H,GAAYxW,EAAGt5G,IAGlC,SAAS82H,GAAoBxd,GAC3B,IAAIt5G,EAAKs5G,EAAGt5G,GAAI9yB,EAAU8yB,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IAE3CukI,EAAG4d,gBAAkBQ,GAAkB13H,EAAIs5G,EAAG9zI,QAGvB,MAAvB0H,EAAQyqJ,aAAwC,MAAhBre,EAAGr8I,WAAsC,MAAjBq8I,EAAG5/H,aAAsB4/H,EAAGsZ,cACpF1lJ,EAAQyqJ,YAAczqJ,EAAQ0qJ,YAAc,MAG5B,MAAhBte,EAAGr8I,WAAqBk2J,GAAanzH,EAAIs5G,EAAGr8I,UAAWq8I,EAAG+Z,aAEzC,MAAjB/Z,EAAG5/H,YAAsBo4I,GAAc9xH,EAAIs5G,EAAG5/H,YAAY,GAAM,GAEhE4/H,EAAGsZ,aAGL1B,GAAkBlxH,EAFPsxH,GAAkBtxH,EAAIg0G,GAAQj/H,EAAKukI,EAAGsZ,YAAYxvD,MAChC4wC,GAAQj/H,EAAKukI,EAAGsZ,YAAYzvD,IAAKm2C,EAAGsZ,YAAYhsH,SAM/E,IAAIskD,EAASouD,EAAGue,mBAAoBC,EAAWxe,EAAGye,qBAClD,GAAI7sE,EAAU,IAAK,IAAIxqF,EAAI,EAAGA,EAAIwqF,EAAO3tF,SAAUmD,EAC1CwqF,EAAOxqF,GAAGgmI,MAAMnpI,QAAUuxI,GAAO5jD,EAAOxqF,GAAI,QACrD,GAAIo3J,EAAY,IAAK,IAAIvqB,EAAM,EAAGA,EAAMuqB,EAASv6J,SAAUgwI,EACnDuqB,EAASvqB,GAAK7G,MAAMnpI,QAAUuxI,GAAOgpB,EAASvqB,GAAM,UAExDrgI,EAAQhC,QAAQyO,eAChB5E,EAAI9X,UAAY+iC,EAAG9yB,QAAQ63I,SAAS9nJ,WAGpCq8I,EAAG8c,YACHtnB,GAAO9uG,EAAI,UAAWA,EAAIs5G,EAAG8c,YAC7B9c,EAAG9zI,QACH8zI,EAAG9zI,OAAOwyJ,SAIhB,SAASC,GAAQj4H,EAAIt3B,GACnB,GAAIs3B,EAAGsvG,MAAS,OAAO5mI,IACvButJ,GAAej2H,GACf,IAAM,OAAOt3B,IACb,QAAU8tJ,GAAax2H,IAGzB,SAAS2lG,GAAU3lG,EAAIt3B,GACrB,OAAO,WACL,GAAIs3B,EAAGsvG,MAAS,OAAO5mI,EAAEw3C,MAAMlgB,EAAI3lB,WACnC47I,GAAej2H,GACf,IAAM,OAAOt3B,EAAEw3C,MAAMlgB,EAAI3lB,WACzB,QAAUm8I,GAAax2H,KAK3B,SAASk4H,GAASxvJ,GAChB,OAAO,WACL,GAAIpS,KAAKg5I,MAAS,OAAO5mI,EAAEw3C,MAAM5pD,KAAM+jB,WACvC47I,GAAe3/J,MACf,IAAM,OAAOoS,EAAEw3C,MAAM5pD,KAAM+jB,WAC3B,QAAUm8I,GAAalgK,QAG3B,SAAS6hK,GAAYzvJ,GACnB,OAAO,WACL,IAAIs3B,EAAK1pC,KAAK0pC,GACd,IAAKA,GAAMA,EAAGsvG,MAAS,OAAO5mI,EAAEw3C,MAAM5pD,KAAM+jB,WAC5C47I,GAAej2H,GACf,IAAM,OAAOt3B,EAAEw3C,MAAM5pD,KAAM+jB,WAC3B,QAAUm8I,GAAax2H,KAM3B,SAASozH,GAAYpzH,EAAIyqG,GACnBzqG,EAAGjrB,IAAI8hI,kBAAoB72G,EAAG9yB,QAAQmqI,QACtCr3G,EAAG4J,MAAMwuH,UAAUn+J,IAAIwwI,EAAM9wI,EAAK0+J,GAAiBr4H,IAGzD,SAASq4H,GAAgBr4H,GACvB,IAAIjrB,EAAMirB,EAAGjrB,IACb,KAAIA,EAAI8hI,mBAAqB72G,EAAG9yB,QAAQmqI,QAAxC,CACA,IAAIj7G,GAAO,IAAIuuG,KAAO3qG,EAAGlnC,QAAQw/J,SAC7BxoG,EAAU0mF,GAAiBx2G,EAAIjrB,EAAI8hI,mBACnC0hB,EAAe,GAEnBxjJ,EAAIg+H,KAAKjjF,EAAQ+1E,KAAMnkH,KAAKE,IAAI7M,EAAI1D,MAAQ0D,EAAImpB,KAAM8B,EAAG9yB,QAAQmqI,OAAS,MAAM,SAAUxR,GACxF,GAAI/1E,EAAQ+1E,MAAQ7lG,EAAG9yB,QAAQkqI,SAAU,CACvC,IAAIohB,EAAY3yB,EAAKpzH,OACjBgkI,EAAa5Q,EAAK9lI,KAAKxC,OAASyiC,EAAGlnC,QAAQ49I,mBAAqBnQ,GAAUxxH,EAAIgb,KAAM+/B,EAAQlmB,OAAS,KACrG6uH,EAAc9iB,GAAc31G,EAAI6lG,EAAM/1E,GAAS,GAC/C2mF,IAAc3mF,EAAQlmB,MAAQ6sG,GAClC5Q,EAAKpzH,OAASgmJ,EAAYhmJ,OAC1B,IAAIimJ,EAAS7yB,EAAK+Q,aAAc+hB,EAASF,EAAYtlI,QACjDwlI,EAAU9yB,EAAK+Q,aAAe+hB,EACzBD,IAAU7yB,EAAK+Q,aAAe,MAGvC,IAFA,IAAIgiB,GAAYJ,GAAaA,EAAUj7J,QAAUsoI,EAAKpzH,OAAOlV,QAC3Dm7J,GAAUC,KAAYD,IAAWC,GAAUD,EAAOtiB,SAAWuiB,EAAOviB,SAAWsiB,EAAOriB,WAAasiB,EAAOtiB,WACnG31I,EAAI,GAAIk4J,GAAYl4J,EAAI83J,EAAUj7J,SAAUmD,EAAKk4J,EAAWJ,EAAU93J,IAAMmlI,EAAKpzH,OAAO/R,GAC7Fk4J,GAAYL,EAAar0J,KAAK4rD,EAAQ+1E,MAC1CA,EAAK8Q,WAAa7mF,EAAQmtE,OAC1BntE,EAAQwnF,gBAEJzR,EAAK9lI,KAAKxC,QAAUyiC,EAAGlnC,QAAQ49I,oBAC/BS,GAAYn3G,EAAI6lG,EAAK9lI,KAAM+vD,GAC/B+1E,EAAK8Q,WAAa7mF,EAAQ+1E,KAAO,GAAK,EAAI/1E,EAAQmtE,OAAS,KAC3DntE,EAAQwnF,WAEV,IAAK,IAAI3M,KAAOvuG,EAEd,OADAg3H,GAAYpzH,EAAIA,EAAGlnC,QAAQ+/J,YACpB,KAGX9jJ,EAAI8hI,kBAAoB/mF,EAAQ+1E,KAChC9wH,EAAI+hI,aAAep1H,KAAKC,IAAI5M,EAAI+hI,aAAchnF,EAAQ+1E,MAClD0yB,EAAah7J,QAAU06J,GAAQj4H,GAAI,WACrC,IAAK,IAAIt/B,EAAI,EAAGA,EAAI63J,EAAah7J,OAAQmD,IACrC6rJ,GAAcvsH,EAAIu4H,EAAa73J,GAAI,YAM3C,IAAIu2J,GAAgB,SAASj3H,EAAI8wH,EAAU54H,GACzC,IAAIhrB,EAAU8yB,EAAG9yB,QAEjB5W,KAAKw6J,SAAWA,EAEhBx6J,KAAKk8E,QAAUq+E,GAAa3jJ,EAAS8yB,EAAGjrB,IAAK+7I,GAC7Cx6J,KAAKwiK,gBAAkB5rJ,EAAQhC,QAAQ0O,YACvCtjB,KAAKyiK,cAAgB7rJ,EAAQhC,QAAQotE,aACrChiF,KAAKytJ,aAAe72I,EAAQhC,QAAQktE,YACpC9hF,KAAK0iK,gBAAkBlU,GAAa9kH,GACpC1pC,KAAK4hC,MAAQA,EACb5hC,KAAKs4C,KAAOq3G,GAAcjmH,GAC1B1pC,KAAKoF,OAAS,IAYhB,SAASq7J,GAAoB/2H,GAC3B,IAAI9yB,EAAU8yB,EAAG9yB,SACZA,EAAQ+rJ,mBAAqB/rJ,EAAQ63I,SAASnrI,cACjD1M,EAAQ23I,eAAiB33I,EAAQ63I,SAASnrI,YAAc1M,EAAQ63I,SAAS3sE,YACzElrE,EAAQsoJ,aAAavoJ,MAAMvU,OAASksJ,GAAU5kH,GAAM,KACpD9yB,EAAQm3I,MAAMp3I,MAAM0jC,cAAgBzjC,EAAQ23I,eAAiB,KAC7D33I,EAAQm3I,MAAMp3I,MAAMisJ,iBAAmBtU,GAAU5kH,GAAM,KACvD9yB,EAAQ+rJ,mBAAoB,GAIhC,SAASE,GAAkBn5H,GACzB,GAAIA,EAAG9V,WAAc,OAAO,KAC5B,IAAI2L,EAASuzG,IACb,IAAKvzG,IAAWgQ,EAAS7F,EAAG9yB,QAAQqjJ,QAAS16H,GAAW,OAAO,KAC/D,IAAIt9B,EAAS,CAAC6wI,UAAWvzG,GACzB,GAAIx/B,OAAOqrD,aAAc,CACvB,IAAI91B,EAAMv1B,OAAOqrD,eACb91B,EAAI6pE,YAAc7pE,EAAIiD,QAAUgX,EAAS7F,EAAG9yB,QAAQqjJ,QAAS3kI,EAAI6pE,cACnEl9F,EAAOk9F,WAAa7pE,EAAI6pE,WACxBl9F,EAAO6gK,aAAextI,EAAIwtI,aAC1B7gK,EAAOm9F,UAAY9pE,EAAI8pE,UACvBn9F,EAAO8gK,YAAcztI,EAAIytI,aAG7B,OAAO9gK,EAGT,SAAS+gK,GAAiBC,GACxB,GAAKA,GAAaA,EAASnwB,WAAamwB,EAASnwB,WAAaA,MAC9DmwB,EAASnwB,UAAUl5G,SACd,qBAAqB0uB,KAAK26G,EAASnwB,UAAUnvE,WAC9Cs/F,EAAS9jE,YAAc5vD,EAASrnC,SAAS+B,KAAMg5J,EAAS9jE,aAAe5vD,EAASrnC,SAAS+B,KAAMg5J,EAAS7jE,YAAY,CACtH,IAAI9pE,EAAMv1B,OAAOqrD,eAAgBE,EAAQpjD,SAASs5F,cAClDl2C,EAAM6nF,OAAO8vB,EAAS9jE,WAAY8jE,EAASH,cAC3Cx3G,EAAMgoF,UAAS,GACfh+G,EAAIqsE,kBACJrsE,EAAIssE,SAASt2C,GACbh2B,EAAIiD,OAAO0qI,EAAS7jE,UAAW6jE,EAASF,cAO5C,SAASlC,GAAsBn3H,EAAIx6B,GACjC,IAAI0H,EAAU8yB,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IAEnC,GAAIvP,EAAOszJ,eAET,OADA7M,GAAUjsH,IACH,EAIT,IAAKx6B,EAAO0yB,OACR1yB,EAAOgtE,QAAQ4wB,MAAQl2F,EAAQkqI,UAAY5xI,EAAOgtE,QAAQ2wB,IAAMj2F,EAAQmqI,SAC1C,MAA7BnqI,EAAQ6+I,mBAA6B7+I,EAAQ6+I,mBAAqB7+I,EAAQmqI,SAC3EnqI,EAAQssJ,cAAgBtsJ,EAAQzT,MAA8B,GAAtBkzJ,GAAe3sH,GACvD,OAAO,EAEPy5H,GAA2Bz5H,KAC7BisH,GAAUjsH,GACVx6B,EAAOopC,KAAOq3G,GAAcjmH,IAI9B,IAAI5D,EAAMrnB,EAAI1D,MAAQ0D,EAAImpB,KACtBklE,EAAO1hF,KAAKC,IAAInc,EAAOgtE,QAAQ4wB,KAAOpjE,EAAGlnC,QAAQ4gK,eAAgB3kJ,EAAI1D,OACrE8xF,EAAKzhF,KAAKE,IAAIwa,EAAK52B,EAAOgtE,QAAQ2wB,GAAKnjE,EAAGlnC,QAAQ4gK,gBAClDxsJ,EAAQkqI,SAAWh0C,GAAQA,EAAOl2F,EAAQkqI,SAAW,KAAMh0C,EAAO1hF,KAAKC,IAAI5M,EAAI1D,MAAOnE,EAAQkqI,WAC9FlqI,EAAQmqI,OAASl0C,GAAMj2F,EAAQmqI,OAASl0C,EAAK,KAAMA,EAAKzhF,KAAKE,IAAIwa,EAAKlvB,EAAQmqI,SAC9EuB,KACFx1C,EAAOw5C,GAAa58G,EAAGjrB,IAAKquF,GAC5BD,EAAK25C,GAAgB98G,EAAGjrB,IAAKouF,IAG/B,IAAIw2D,EAAYv2D,GAAQl2F,EAAQkqI,UAAYj0C,GAAMj2F,EAAQmqI,QACxDnqI,EAAQ0sJ,gBAAkBp0J,EAAOuzJ,eAAiB7rJ,EAAQ2sJ,eAAiBr0J,EAAOu+I,aACpF2I,GAAW1sH,EAAIojE,EAAMD,GAErBj2F,EAAQ27I,WAAa1L,GAAazK,GAAQ1yG,EAAGjrB,IAAK7H,EAAQkqI,WAE1Dp3G,EAAG9yB,QAAQo3I,MAAMr3I,MAAMqJ,IAAMpJ,EAAQ27I,WAAa,KAElD,IAAIiR,EAAWnN,GAAe3sH,GAC9B,IAAK25H,GAAyB,GAAZG,IAAkBt0J,EAAO0yB,OAAShrB,EAAQssJ,cAAgBtsJ,EAAQzT,OAClD,MAA7ByT,EAAQ6+I,mBAA6B7+I,EAAQ6+I,mBAAqB7+I,EAAQmqI,QAC3E,OAAO,EAIX,IAAI0iB,EAAcZ,GAAkBn5H,GAuBpC,OAtBI85H,EAAW,IAAK5sJ,EAAQqjJ,QAAQtjJ,MAAMC,QAAU,QACpD8sJ,GAAah6H,EAAI9yB,EAAQ6+I,kBAAmBvmJ,EAAOopC,MAC/CkrH,EAAW,IAAK5sJ,EAAQqjJ,QAAQtjJ,MAAMC,QAAU,IACpDA,EAAQssJ,aAAetsJ,EAAQzT,KAG/B6/J,GAAiBS,GAIjB1kG,EAAenoD,EAAQwiJ,WACvBr6F,EAAenoD,EAAQ+sJ,cACvB/sJ,EAAQi3I,QAAQl3I,MAAMvU,OAASwU,EAAQm3I,MAAMp3I,MAAMmnJ,UAAY,EAE3DuF,IACFzsJ,EAAQ0sJ,eAAiBp0J,EAAOuzJ,cAChC7rJ,EAAQ2sJ,cAAgBr0J,EAAOu+I,aAC/BqP,GAAYpzH,EAAI,MAGlB9yB,EAAQ6+I,kBAAoB,MAErB,EAGT,SAAS2L,GAAkB13H,EAAIx6B,GAG7B,IAFA,IAAIsrJ,EAAWtrJ,EAAOsrJ,SAEbz/I,GAAQ,GAAOA,GAAQ,EAAO,CACrC,GAAKA,GAAU2uB,EAAGlnC,QAAQg3B,cAAgBtqB,EAAOwzJ,iBAAmBlU,GAAa9kH,GAStE3uB,IACT7L,EAAOgtE,QAAUq+E,GAAa7wH,EAAG9yB,QAAS8yB,EAAGjrB,IAAK+7I,SAHlD,GALIA,GAA4B,MAAhBA,EAASx6I,MACrBw6I,EAAW,CAACx6I,IAAKoL,KAAKE,IAAIoe,EAAGjrB,IAAIrc,OAAS8rJ,GAAYxkH,EAAG9yB,SAAW+3I,GAAcjlH,GAAK8wH,EAASx6I,OAGpG9Q,EAAOgtE,QAAUq+E,GAAa7wH,EAAG9yB,QAAS8yB,EAAGjrB,IAAK+7I,GAC9CtrJ,EAAOgtE,QAAQ4wB,MAAQpjE,EAAG9yB,QAAQkqI,UAAY5xI,EAAOgtE,QAAQ2wB,IAAMnjE,EAAG9yB,QAAQmqI,OAC9E,MAIN,IAAK8f,GAAsBn3H,EAAIx6B,GAAW,MAC1C6qJ,GAAwBrwH,GACxB,IAAIo3H,EAAazD,GAAqB3zH,GACtC27D,GAAgB37D,GAChBm1H,GAAiBn1H,EAAIo3H,GACrBK,GAAkBz3H,EAAIo3H,GACtB5xJ,EAAO0yB,OAAQ,EAGjB1yB,EAAOspI,OAAO9uG,EAAI,SAAUA,GACxBA,EAAG9yB,QAAQkqI,UAAYp3G,EAAG9yB,QAAQgtJ,kBAAoBl6H,EAAG9yB,QAAQmqI,QAAUr3G,EAAG9yB,QAAQitJ,iBACxF30J,EAAOspI,OAAO9uG,EAAI,iBAAkBA,EAAIA,EAAG9yB,QAAQkqI,SAAUp3G,EAAG9yB,QAAQmqI,QACxEr3G,EAAG9yB,QAAQgtJ,iBAAmBl6H,EAAG9yB,QAAQkqI,SAAUp3G,EAAG9yB,QAAQitJ,eAAiBn6H,EAAG9yB,QAAQmqI,QAI9F,SAAS6b,GAAoBlzH,EAAI8wH,GAC/B,IAAItrJ,EAAS,IAAIyxJ,GAAcj3H,EAAI8wH,GACnC,GAAIqG,GAAsBn3H,EAAIx6B,GAAS,CACrC6qJ,GAAwBrwH,GACxB03H,GAAkB13H,EAAIx6B,GACtB,IAAI4xJ,EAAazD,GAAqB3zH,GACtC27D,GAAgB37D,GAChBm1H,GAAiBn1H,EAAIo3H,GACrBK,GAAkBz3H,EAAIo3H,GACtB5xJ,EAAOwyJ,UAQX,SAASgC,GAAah6H,EAAIo6H,EAAmBxrH,GAC3C,IAAI1hC,EAAU8yB,EAAG9yB,QAASyiB,EAAcqQ,EAAGlnC,QAAQ62B,YAC/CppB,EAAY2G,EAAQqjJ,QAAStpB,EAAM1gI,EAAUrI,WAEjD,SAASk1C,EAAGkE,GACV,IAAIhZ,EAAOgZ,EAAKqxE,YAMhB,OAJIif,GAAUY,GAAOxoG,EAAG9yB,QAAQmtJ,oBAAsB/iH,EAClDA,EAAKrqC,MAAMC,QAAU,OAErBoqC,EAAK1+B,WAAWC,YAAYy+B,GACzBhZ,EAMT,IAHA,IAAI7kC,EAAOyT,EAAQzT,KAAMojJ,EAAQ3vI,EAAQkqI,SAGhC12I,EAAI,EAAGA,EAAIjH,EAAK8D,OAAQmD,IAAK,CACpC,IAAI09I,EAAW3kJ,EAAKiH,GACpB,GAAI09I,EAASlzD,aAAe,GAAKkzD,EAAS9mG,MAAQ8mG,EAAS9mG,KAAK1+B,YAAcrS,EAGvE,CACL,KAAO0gI,GAAOmX,EAAS9mG,MAAQ2vF,EAAM7zF,EAAG6zF,GACxC,IAAIqzB,EAAe3qI,GAAoC,MAArByqI,GAChCA,GAAqBvd,GAASuB,EAAS2E,WACrC3E,EAAS9hB,UACPrxH,EAAQmzI,EAAS9hB,QAAS,WAAa,IAAKg+B,GAAe,GAC/D3Y,GAAqB3hH,EAAIo+G,EAAUvB,EAAOjuG,IAExC0rH,IACFjlG,EAAe+oF,EAAS2E,YACxB3E,EAAS2E,WAAWhlJ,YAAYS,SAAS86C,eAAei6F,GAAcvzG,EAAGlnC,QAAS+jJ,MAEpF5V,EAAMmX,EAAS9mG,KAAKqxE,gBAfmE,CACvF,IAAIrxE,EAAOgsG,GAAiBtjH,EAAIo+G,EAAUvB,EAAOjuG,GACjDroC,EAAUtI,aAAaq5C,EAAM2vF,GAe/B4V,GAASuB,EAASlgH,KAEpB,KAAO+oG,GAAOA,EAAM7zF,EAAG6zF,GAGzB,SAASszB,GAAkBrtJ,GACzB,IAAIvU,EAAQuU,EAAQi3I,QAAQvqI,YAC5B1M,EAAQm3I,MAAMp3I,MAAMojC,WAAa13C,EAAQ,KAEzC6oJ,GAAYt0I,EAAS,gBAAiBA,GAGxC,SAASuqJ,GAAkBz3H,EAAIqwG,GAC7BrwG,EAAG9yB,QAAQm3I,MAAMp3I,MAAMmnJ,UAAY/jB,EAAQ0jB,UAAY,KACvD/zH,EAAG9yB,QAAQsoJ,aAAavoJ,MAAMqJ,IAAM+5H,EAAQ0jB,UAAY,KACxD/zH,EAAG9yB,QAAQi3I,QAAQl3I,MAAMvU,OAAU23I,EAAQ0jB,UAAY/zH,EAAG9yB,QAAQg4I,UAAYN,GAAU5kH,GAAO,KAKjG,SAAS0zH,GAAkB1zH,GACzB,IAAI9yB,EAAU8yB,EAAG9yB,QAASzT,EAAOyT,EAAQzT,KACzC,GAAKyT,EAAQstJ,cAAkBttJ,EAAQi3I,QAAQjmJ,YAAe8hC,EAAGlnC,QAAQ2pJ,YAAzE,CAGA,IAFA,IAAIvsI,EAAOi1I,GAAqBj+I,GAAWA,EAAQ63I,SAASrrI,WAAasmB,EAAGjrB,IAAI2E,WAC5Ek6I,EAAU1mJ,EAAQi3I,QAAQvqI,YAAavD,EAAOH,EAAO,KAChDxV,EAAI,EAAGA,EAAIjH,EAAK8D,OAAQmD,IAAO,IAAKjH,EAAKiH,GAAGwqF,OAAQ,CACvDlrD,EAAGlnC,QAAQ2pJ,cACThpJ,EAAKiH,GAAG4hJ,SACR7oJ,EAAKiH,GAAG4hJ,OAAOr1I,MAAMoJ,KAAOA,GAC5B5c,EAAKiH,GAAG6hJ,mBACR9oJ,EAAKiH,GAAG6hJ,iBAAiBt1I,MAAMoJ,KAAOA,IAE5C,IAAIokJ,EAAQhhK,EAAKiH,GAAGyiJ,UACpB,GAAIsX,EAAS,IAAK,IAAI3iH,EAAI,EAAGA,EAAI2iH,EAAMl9J,OAAQu6C,IAC3C2iH,EAAM3iH,GAAG7qC,MAAMoJ,KAAOA,EAExB2pB,EAAGlnC,QAAQ2pJ,cACXv1I,EAAQi3I,QAAQl3I,MAAMoJ,KAAQH,EAAO09I,EAAW,OAMtD,SAAS6F,GAA2Bz5H,GAClC,IAAKA,EAAGlnC,QAAQ62B,YAAe,OAAO,EACtC,IAAI5a,EAAMirB,EAAGjrB,IAAKysG,EAAO+xB,GAAcvzG,EAAGlnC,QAASic,EAAI1D,MAAQ0D,EAAImpB,KAAO,GAAIhxB,EAAU8yB,EAAG9yB,QAC3F,GAAIs0G,EAAKjkH,QAAU2P,EAAQo7I,aAAc,CACvC,IAAI1pG,EAAO1xC,EAAQmjI,QAAQtyI,YAAYkrI,EAAI,MAAO,CAACA,EAAI,MAAOznB,IACnB,gDACvCk5C,EAAS97G,EAAK1gD,WAAW0b,YAAa+sB,EAAUiY,EAAKhlC,YAAc8gJ,EAOvE,OANAxtJ,EAAQytJ,WAAW1tJ,MAAMtU,MAAQ,GACjCuU,EAAQ0tJ,kBAAoBl5I,KAAKC,IAAI+4I,EAAQxtJ,EAAQytJ,WAAW/gJ,YAAc+sB,GAAW,EACzFz5B,EAAQ2tJ,aAAe3tJ,EAAQ0tJ,kBAAoBj0H,EACnDz5B,EAAQo7I,aAAep7I,EAAQ0tJ,kBAAoBp5C,EAAKjkH,QAAU,EAClE2P,EAAQytJ,WAAW1tJ,MAAMtU,MAAQuU,EAAQ2tJ,aAAe,KACxDN,GAAkBv6H,EAAG9yB,UACd,EAET,OAAO,EAGT,SAAS4tJ,GAAW3W,EAASx0H,GAE3B,IADA,IAAIp3B,EAAS,GAAIwiK,GAAiB,EACzBr6J,EAAI,EAAGA,EAAIyjJ,EAAQ5mJ,OAAQmD,IAAK,CACvC,IAAIjG,EAAO0pJ,EAAQzjJ,GAAIuM,EAAQ,KAE/B,GADmB,iBAARxS,IAAoBwS,EAAQxS,EAAKwS,MAAOxS,EAAOA,EAAKpB,WACnD,0BAARoB,EAAkC,CACpC,IAAKk1B,EAAe,SACborI,GAAiB,EAE1BxiK,EAAO2L,KAAK,CAAC7K,UAAWoB,EAAMwS,MAAOA,IAGvC,OADI0iB,IAAgBorI,GAAkBxiK,EAAO2L,KAAK,CAAC7K,UAAW,yBAA0B4T,MAAO,OACxF1U,EAKT,SAASyiK,GAAc9tJ,GACrB,IAAIi3I,EAAUj3I,EAAQi3I,QAAS8W,EAAQ/tJ,EAAQ+1I,YAC/C5tF,EAAe8uF,GACfj3I,EAAQytJ,WAAa,KACrB,IAAK,IAAIj6J,EAAI,EAAGA,EAAIu6J,EAAM19J,SAAUmD,EAAG,CACrC,IAAI6vD,EAAM0qG,EAAMv6J,GACZrH,EAAYk3D,EAAIl3D,UAChB4T,EAAQsjD,EAAItjD,MACZiuJ,EAAO/W,EAAQpmJ,YAAYkrI,EAAI,MAAO,KAAM,qBAAuB5vI,IACnE4T,IAASiuJ,EAAKjuJ,MAAMkyD,QAAUlyD,GACjB,0BAAb5T,IACF6T,EAAQytJ,WAAaO,EACrBA,EAAKjuJ,MAAMtU,OAASuU,EAAQ2tJ,cAAgB,GAAK,MAGrD1W,EAAQl3I,MAAMC,QAAU+tJ,EAAM19J,OAAS,GAAK,OAC5Cg9J,GAAkBrtJ,GAGpB,SAASiuJ,GAAcn7H,GACrBg7H,GAAch7H,EAAG9yB,SACjB2+I,GAAU7rH,GACV0zH,GAAkB1zH,GAOpB,SAASo7H,GAAQlU,EAAOnyI,EAAKnY,EAAO9D,GAClC,IAAI+nC,EAAIvqC,KACRA,KAAKsG,MAAQA,EAGbikC,EAAE60H,gBAAkBzsB,EAAI,MAAO,KAAM,+BACrCpoG,EAAE60H,gBAAgBppJ,aAAa,iBAAkB,QAGjDu0B,EAAE+0H,aAAe3sB,EAAI,MAAO,KAAM,4BAClCpoG,EAAE+0H,aAAatpJ,aAAa,iBAAkB,QAE9Cu0B,EAAE0vH,QAAUrnB,EAAK,MAAO,KAAM,mBAE9BroG,EAAEo5H,aAAehxB,EAAI,MAAO,KAAM,KAAM,kCACxCpoG,EAAE6uH,UAAYzmB,EAAI,MAAO,KAAM,sBAE/BpoG,EAAEwvG,QAAUpH,EAAI,MAAO,KAAM,sBAE7BpoG,EAAE6kH,YAAczc,EAAI,MAAO,KAAM,sBAEjCpoG,EAAE0jH,UAAYrb,EAAK,MAAO,CAACroG,EAAEwvG,QAASxvG,EAAE6kH,YAAa7kH,EAAEo5H,aAAcp5H,EAAE6uH,UAAW7uH,EAAE0vH,SAClE,KAAM,qCACxB,IAAI7pB,EAAQwC,EAAK,MAAO,CAACroG,EAAE0jH,WAAY,oBAEvC1jH,EAAEyjH,MAAQrb,EAAI,MAAO,CAACvC,GAAQ,KAAM,sBAEpC7lG,EAAEwjH,MAAQpb,EAAI,MAAO,CAACpoG,EAAEyjH,OAAQ,oBAChCzjH,EAAEmtH,WAAa,KAIfntH,EAAE20H,aAAevsB,EAAI,MAAO,KAAM,KAAM,+BAAiC4B,EAAc,mBAEvFhqG,EAAEsjH,QAAUlb,EAAI,MAAO,KAAM,sBAC7BpoG,EAAE85H,WAAa,KAEf95H,EAAEkkH,SAAW9b,EAAI,MAAO,CAACpoG,EAAEwjH,MAAOxjH,EAAE20H,aAAc30H,EAAEsjH,SAAU,qBAC9DtjH,EAAEkkH,SAASz4I,aAAa,WAAY,MAEpCu0B,EAAE31B,QAAU+9H,EAAI,MAAO,CAACpoG,EAAE60H,gBAAiB70H,EAAE+0H,aAAc/0H,EAAEkkH,UAAW,cAIxElkH,EAAE31B,QAAQoB,aAAa,YAAa,MAGhCo7H,GAAMC,EAAa,IAAK9mG,EAAEsjH,QAAQl3I,MAAMi3G,QAAU,EAAGrjF,EAAEkkH,SAAS93I,MAAM+kC,aAAe,GACpF41F,GAAYN,GAASiB,IAAW1nG,EAAEkkH,SAASx5I,WAAY,GAExD27I,IACEA,EAAMnpJ,YAAempJ,EAAMnpJ,YAAY8iC,EAAE31B,SACtCg8I,EAAMrmH,EAAE31B,UAIjB21B,EAAEu2G,SAAWv2G,EAAEw2G,OAAStiI,EAAI1D,MAC5BwvB,EAAEq5H,iBAAmBr5H,EAAEs5H,eAAiBplJ,EAAI1D,MAE5CwvB,EAAEpnC,KAAO,GACTonC,EAAE24H,aAAe,KAGjB34H,EAAEg+G,iBAAmB,KAErBh+G,EAAEgoH,WAAa,EACfhoH,EAAE+4H,eAAiB/4H,EAAEg5H,cAAgB,EACrCh5H,EAAEkrH,kBAAoB,KAEtBlrH,EAAEgkH,eAAiBhkH,EAAEqkH,UAAYrkH,EAAEmkH,SAAW,EAC9CnkH,EAAEo4H,mBAAoB,EAItBp4H,EAAEg6H,aAAeh6H,EAAE+5H,kBAAoB/5H,EAAEynH,aAAe,KAIxDznH,EAAE25H,cAAe,EAEjB35H,EAAEunH,gBAAkBvnH,EAAEwnH,iBAAmBxnH,EAAE6jH,eAAiB,KAI5D7jH,EAAE28G,QAAU,KACZ38G,EAAE48G,cAAgB,EAClB58G,EAAE68G,gBAAiB,EAGnB78G,EAAEw6H,QAAUx6H,EAAEy6H,QAAUz6H,EAAE82H,YAAc92H,EAAE+2H,YAAc,KAGxD/2H,EAAE5oC,OAAQ,EAIV4oC,EAAEsvH,kBAAoB,KAEtBtvH,EAAE06H,YAAc,KAEhB16H,EAAEoiH,YAAc6X,GAAWhiK,EAAQqrJ,QAASrrJ,EAAQ62B,aACpDqrI,GAAcn6H,GAEdjkC,EAAMlD,KAAKmnC,GArabo2H,GAAc7+J,UAAU02I,OAAS,SAAUF,EAASh3I,GAC9C43I,GAAWZ,EAASh3I,IACpBtB,KAAKoF,OAAOwI,KAAKmW,YAEvB48I,GAAc7+J,UAAU4/J,OAAS,WAC/B,IAAK,IAAIt3J,EAAI,EAAGA,EAAIpK,KAAKoF,OAAO6B,OAAQmD,IACpCouI,GAAO5uF,MAAM,KAAM5pD,KAAKoF,OAAOgF,KA6arC,IAAI86J,GAAe,EAAGC,GAAqB,KAU3C,SAASC,GAAgBlgK,GACvB,IAAImgK,EAAKngK,EAAEogK,YAAaC,EAAKrgK,EAAEsgK,YAI/B,OAHU,MAANH,GAAcngK,EAAEsmB,QAAUtmB,EAAEwgC,MAAQxgC,EAAEugK,kBAAmBJ,EAAKngK,EAAEsmB,QAC1D,MAAN+5I,GAAcrgK,EAAEsmB,QAAUtmB,EAAEwgC,MAAQxgC,EAAEwgK,cAAiBH,EAAKrgK,EAAEsmB,OACnD,MAAN+5I,IAAcA,EAAKrgK,EAAEqmB,YACvB,CAAC3O,EAAGyoJ,EAAIxoJ,EAAG0oJ,GAEpB,SAASI,GAAiBzgK,GACxB,IAAIimB,EAAQi6I,GAAgBlgK,GAG5B,OAFAimB,EAAMvO,GAAKuoJ,GACXh6I,EAAMtO,GAAKsoJ,GACJh6I,EAGT,SAASy6I,GAAcl8H,EAAIxkC,GACzB,IAAIimB,EAAQi6I,GAAgBlgK,GAAImgK,EAAKl6I,EAAMvO,EAAG2oJ,EAAKp6I,EAAMtO,EAErDjG,EAAU8yB,EAAG9yB,QAAS7B,EAAS6B,EAAQ63I,SAEvCoX,EAAa9wJ,EAAOooJ,YAAcpoJ,EAAO+sE,YACzCgkF,EAAa/wJ,EAAOioJ,aAAejoJ,EAAOitE,aAC9C,GAAMqjF,GAAMQ,GAAcN,GAAMO,EAAhC,CAMA,GAAIP,GAAMrzB,GAAOZ,EACftB,EAAO,IAAK,IAAIW,EAAMzrI,EAAExB,OAAQP,EAAOyT,EAAQzT,KAAMwtI,GAAO57H,EAAQ47H,EAAMA,EAAIruH,WAC5E,IAAK,IAAIlY,EAAI,EAAGA,EAAIjH,EAAK8D,OAAQmD,IAC/B,GAAIjH,EAAKiH,GAAG42C,MAAQ2vF,EAAK,CACvBjnG,EAAG9yB,QAAQmtJ,mBAAqBpzB,EAChC,MAAMX,EAYd,GAAIq1B,IAAOr0B,IAAUS,GAAgC,MAAtB0zB,GAW7B,OAVII,GAAMO,GACNvK,GAAgB7xH,EAAIte,KAAKC,IAAI,EAAGtW,EAAOpO,UAAY4+J,EAAKJ,KAC5D3J,GAAc9xH,EAAIte,KAAKC,IAAI,EAAGtW,EAAOqO,WAAaiiJ,EAAKF,OAKlDI,GAAOA,GAAMO,IACdzsB,GAAiBn0I,QACrB0R,EAAQyqJ,YAAc,MAMxB,GAAIkE,GAA4B,MAAtBJ,GAA4B,CACpC,IAAIY,EAASR,EAAKJ,GACdnlJ,EAAM0pB,EAAGjrB,IAAI9X,UAAWsqJ,EAAMjxI,EAAMpJ,EAAQhC,QAAQotE,aACpD+jF,EAAS,EAAK/lJ,EAAMoL,KAAKC,IAAI,EAAGrL,EAAM+lJ,EAAS,IAC5C9U,EAAM7lI,KAAKE,IAAIoe,EAAGjrB,IAAIrc,OAAQ6uJ,EAAM8U,EAAS,IACpDnJ,GAAoBlzH,EAAI,CAAC1pB,IAAKA,EAAKqkD,OAAQ4sF,IAGzCiU,GAAe,KACU,MAAvBtuJ,EAAQyqJ,aACVzqJ,EAAQyqJ,YAActsJ,EAAOqO,WAAYxM,EAAQ0qJ,YAAcvsJ,EAAOpO,UACtEiQ,EAAQmuJ,QAAUM,EAAIzuJ,EAAQouJ,QAAUO,EACxCthJ,YAAW,WACT,GAA2B,MAAvBrN,EAAQyqJ,YAAZ,CACA,IAAI2E,EAASjxJ,EAAOqO,WAAaxM,EAAQyqJ,YACrC4E,EAASlxJ,EAAOpO,UAAYiQ,EAAQ0qJ,YACpC73B,EAAUw8B,GAAUrvJ,EAAQouJ,SAAWiB,EAASrvJ,EAAQouJ,SACzDgB,GAAUpvJ,EAAQmuJ,SAAWiB,EAASpvJ,EAAQmuJ,QACjDnuJ,EAAQyqJ,YAAczqJ,EAAQ0qJ,YAAc,KACvC73B,IACL07B,IAAsBA,GAAqBD,GAAez7B,IAAWy7B,GAAe,KAClFA,OACD,OAEHtuJ,EAAQmuJ,SAAWM,EAAIzuJ,EAAQouJ,SAAWO,KAzF5Cn0B,EAAM+zB,IAAsB,IACvBn0B,EAASm0B,GAAqB,GAC9B3zB,EAAU2zB,IAAsB,GAChCzzB,IAAUyzB,IAAsB,EAAE,GAgG3C,IAAIe,GAAY,SAASrP,EAAQC,GAC/B92J,KAAK62J,OAASA,EACd72J,KAAK82J,UAAYA,GAGnBoP,GAAUpkK,UAAU20J,QAAU,WAAc,OAAOz2J,KAAK62J,OAAO72J,KAAK82J,YAEpEoP,GAAUpkK,UAAUquE,OAAS,SAAUgjF,GACrC,GAAIA,GAASnzJ,KAAQ,OAAO,EAC5B,GAAImzJ,EAAM2D,WAAa92J,KAAK82J,WAAa3D,EAAM0D,OAAO5vJ,QAAUjH,KAAK62J,OAAO5vJ,OAAU,OAAO,EAC7F,IAAK,IAAImD,EAAI,EAAGA,EAAIpK,KAAK62J,OAAO5vJ,OAAQmD,IAAK,CAC3C,IAAI+7J,EAAOnmK,KAAK62J,OAAOzsJ,GAAIg8J,EAAQjT,EAAM0D,OAAOzsJ,GAChD,IAAKizI,GAAe8oB,EAAKvR,OAAQwR,EAAMxR,UAAYvX,GAAe8oB,EAAKtgJ,KAAMugJ,EAAMvgJ,MAAS,OAAO,EAErG,OAAO,GAGTqgJ,GAAUpkK,UAAUukK,SAAW,WAE7B,IADA,IAAIl2B,EAAM,GACD/lI,EAAI,EAAGA,EAAIpK,KAAK62J,OAAO5vJ,OAAQmD,IACpC+lI,EAAI/lI,GAAK,IAAIk8J,GAAMhpB,GAAQt9I,KAAK62J,OAAOzsJ,GAAGwqJ,QAAStX,GAAQt9I,KAAK62J,OAAOzsJ,GAAGyb,OAC9E,OAAO,IAAIqgJ,GAAU/1B,EAAKnwI,KAAK82J,YAGjCoP,GAAUpkK,UAAUykK,kBAAoB,WACtC,IAAK,IAAIn8J,EAAI,EAAGA,EAAIpK,KAAK62J,OAAO5vJ,OAAQmD,IACpC,IAAKpK,KAAK62J,OAAOzsJ,GAAGrC,QAAW,OAAO,EAC1C,OAAO,GAGTm+J,GAAUpkK,UAAUytC,SAAW,SAAUpe,EAAK2U,GACvCA,IAAOA,EAAM3U,GAClB,IAAK,IAAI/mB,EAAI,EAAGA,EAAIpK,KAAK62J,OAAO5vJ,OAAQmD,IAAK,CAC3C,IAAIkhD,EAAQtrD,KAAK62J,OAAOzsJ,GACxB,GAAIuQ,GAAImrB,EAAKwlB,EAAMwhD,SAAW,GAAKnyF,GAAIwW,EAAKm6B,EAAMuhD,OAAS,EACvD,OAAOziG,EAEb,OAAQ,GAGV,IAAIk8J,GAAQ,SAAS1R,EAAQ/uI,GAC3B7lB,KAAK40J,OAASA,EAAQ50J,KAAK6lB,KAAOA,GAUpC,SAAS2gJ,GAAmB98H,EAAImtH,EAAQC,GACtC,IAAI2P,EAAW/8H,GAAMA,EAAGlnC,QAAQkkK,mBAC5BC,EAAO9P,EAAOC,GAClBD,EAAO/0I,MAAK,SAAU6c,EAAGC,GAAK,OAAOjkB,GAAIgkB,EAAEmuE,OAAQluE,EAAEkuE,WACrDgqD,EAAYniJ,EAAQkiJ,EAAQ8P,GAC5B,IAAK,IAAIv8J,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CACtC,IAAIumI,EAAMkmB,EAAOzsJ,GAAImT,EAAOs5I,EAAOzsJ,EAAI,GACnC8tD,EAAOv9C,GAAI4C,EAAKsvF,KAAM8jC,EAAI7jC,QAC9B,GAAI25D,IAAa91B,EAAI5oI,QAAUmwD,EAAO,EAAIA,GAAQ,EAAG,CACnD,IAAI40C,EAAO0wC,GAAOjgI,EAAKuvF,OAAQ6jC,EAAI7jC,QAASD,EAAK0wC,GAAOhgI,EAAKsvF,KAAM8jC,EAAI9jC,MACnE+5D,EAAMrpJ,EAAKxV,QAAU4oI,EAAI7jC,QAAU6jC,EAAI9qH,KAAOtI,EAAKuvF,QAAUvvF,EAAKsI,KAClEzb,GAAK0sJ,KAAeA,EACxBD,EAAO3gI,SAAS9rB,EAAG,EAAG,IAAIk8J,GAAMM,EAAM/5D,EAAKC,EAAM85D,EAAM95D,EAAOD,KAGlE,OAAO,IAAIq5D,GAAUrP,EAAQC,GAG/B,SAAS+P,GAAgBjS,EAAQ/uI,GAC/B,OAAO,IAAIqgJ,GAAU,CAAC,IAAII,GAAM1R,EAAQ/uI,GAAQ+uI,IAAU,GAK5D,SAASkS,GAAUxiH,GACjB,OAAKA,EAAO76C,KACL2zI,GAAI94F,EAAOwoD,KAAKyiC,KAAOjrF,EAAO76C,KAAKxC,OAAS,EACxCiuI,EAAI5wF,EAAO76C,MAAMxC,QAAgC,GAAtBq9C,EAAO76C,KAAKxC,OAAcq9C,EAAOwoD,KAAK0iC,GAAK,IAFtDlrF,EAAOuoD,GAOpC,SAASk6D,GAAgB51I,EAAKmzB,GAC5B,GAAI3pC,GAAIwW,EAAKmzB,EAAOwoD,MAAQ,EAAK,OAAO37E,EACxC,GAAIxW,GAAIwW,EAAKmzB,EAAOuoD,KAAO,EAAK,OAAOi6D,GAAUxiH,GAEjD,IAAIirF,EAAOp+G,EAAIo+G,KAAOjrF,EAAO76C,KAAKxC,QAAUq9C,EAAOuoD,GAAG0iC,KAAOjrF,EAAOwoD,KAAKyiC,MAAQ,EAAGC,EAAKr+G,EAAIq+G,GAE7F,OADIr+G,EAAIo+G,MAAQjrF,EAAOuoD,GAAG0iC,OAAQC,GAAMs3B,GAAUxiH,GAAQkrF,GAAKlrF,EAAOuoD,GAAG2iC,IAClE4N,GAAI7N,EAAMC,GAGnB,SAASw3B,GAAsBvoJ,EAAK6lC,GAElC,IADA,IAAI6rF,EAAM,GACD/lI,EAAI,EAAGA,EAAIqU,EAAI6W,IAAIuhI,OAAO5vJ,OAAQmD,IAAK,CAC9C,IAAIkhD,EAAQ7sC,EAAI6W,IAAIuhI,OAAOzsJ,GAC3B+lI,EAAIviI,KAAK,IAAI04J,GAAMS,GAAgBz7G,EAAMspG,OAAQtwG,GAC9ByiH,GAAgBz7G,EAAMzlC,KAAMy+B,KAEjD,OAAOkiH,GAAmB/nJ,EAAIirB,GAAIymG,EAAK1xH,EAAI6W,IAAIwhI,WAGjD,SAASmQ,GAAU91I,EAAKm1G,EAAKkd,GAC3B,OAAIryH,EAAIo+G,MAAQjJ,EAAIiJ,KACT6N,GAAIoG,EAAGjU,KAAMp+G,EAAIq+G,GAAKlJ,EAAIkJ,GAAKgU,EAAGhU,IAElC4N,GAAIoG,EAAGjU,MAAQp+G,EAAIo+G,KAAOjJ,EAAIiJ,MAAOp+G,EAAIq+G,IAKtD,SAAS03B,GAAmBzoJ,EAAKunH,EAASmhC,GAGxC,IAFA,IAAIh3B,EAAM,GACNi3B,EAAUhqB,GAAI3+H,EAAI1D,MAAO,GAAIssJ,EAAUD,EAClCh9J,EAAI,EAAGA,EAAI47H,EAAQ/+H,OAAQmD,IAAK,CACvC,IAAIk6C,EAAS0hF,EAAQ57H,GACjB0iG,EAAOm6D,GAAU3iH,EAAOwoD,KAAMs6D,EAASC,GACvCx6D,EAAKo6D,GAAUH,GAAUxiH,GAAS8iH,EAASC,GAG/C,GAFAD,EAAU9iH,EAAOuoD,GACjBw6D,EAAUx6D,EACE,UAARs6D,EAAkB,CACpB,IAAI77G,EAAQ7sC,EAAI6W,IAAIuhI,OAAOzsJ,GAAIw8J,EAAMjsJ,GAAI2wC,EAAMzlC,KAAMylC,EAAMspG,QAAU,EACrEzkB,EAAI/lI,GAAK,IAAIk8J,GAAMM,EAAM/5D,EAAKC,EAAM85D,EAAM95D,EAAOD,QAEjDsjC,EAAI/lI,GAAK,IAAIk8J,GAAMx5D,EAAMA,GAG7B,OAAO,IAAIo5D,GAAU/1B,EAAK1xH,EAAI6W,IAAIwhI,WAKpC,SAASwQ,GAAS59H,GAChBA,EAAGjrB,IAAIgb,KAAO01G,GAAQzlG,EAAGlnC,QAASknC,EAAGjrB,IAAI8oJ,YACzCC,GAAe99H,GAGjB,SAAS89H,GAAe99H,GACtBA,EAAGjrB,IAAIg+H,MAAK,SAAUlN,GAChBA,EAAK8Q,aAAc9Q,EAAK8Q,WAAa,MACrC9Q,EAAKpzH,SAAUozH,EAAKpzH,OAAS,SAEnCutB,EAAGjrB,IAAI+hI,aAAe92G,EAAGjrB,IAAI8hI,kBAAoB72G,EAAGjrB,IAAI1D,MACxD+hJ,GAAYpzH,EAAI,KAChBA,EAAG4J,MAAMisG,UACL71G,EAAGsvG,OAASuc,GAAU7rH,GAQ5B,SAAS+9H,GAAkBhpJ,EAAK6lC,GAC9B,OAAyB,GAAlBA,EAAOwoD,KAAK0iC,IAA2B,GAAhBlrF,EAAOuoD,GAAG2iC,IAA+B,IAApB0F,EAAI5wF,EAAO76C,SAC1DgV,EAAIirB,IAAMjrB,EAAIirB,GAAGlnC,QAAQklK,uBAI/B,SAASC,GAAUlpJ,EAAK6lC,EAAQ6+F,EAAamE,GAC3C,SAASsgB,EAASnjF,GAAI,OAAO0+D,EAAcA,EAAY1+D,GAAK,KAC5D,SAASv1E,EAAOqgI,EAAM9lI,EAAMm5I,GAC1B2E,GAAWhY,EAAM9lI,EAAMm5I,EAAO0E,GAC9B4D,GAAY3b,EAAM,SAAUA,EAAMjrF,GAEpC,SAASujH,EAAS3/I,EAAO4d,GAEvB,IADA,IAAI7jC,EAAS,GACJmI,EAAI8d,EAAO9d,EAAI07B,IAAO17B,EAC3BnI,EAAO2L,KAAK,IAAIy5I,GAAK59I,EAAKW,GAAIw9J,EAASx9J,GAAIk9I,IAC/C,OAAOrlJ,EAGT,IAAI6qG,EAAOxoD,EAAOwoD,KAAMD,EAAKvoD,EAAOuoD,GAAIpjG,EAAO66C,EAAO76C,KAClDq+J,EAAY1rB,GAAQ39H,EAAKquF,EAAKyiC,MAAOkX,EAAWrK,GAAQ39H,EAAKouF,EAAG0iC,MAChEw4B,EAAW7yB,EAAIzrI,GAAOu+J,EAAYJ,EAASn+J,EAAKxC,OAAS,GAAIghK,EAASp7D,EAAG0iC,KAAOziC,EAAKyiC,KAGzF,GAAIjrF,EAAOkrD,KACT/wF,EAAI+oH,OAAO,EAAGqgC,EAAS,EAAGp+J,EAAKxC,SAC/BwX,EAAIvb,OAAOuG,EAAKxC,OAAQwX,EAAImpB,KAAOn+B,EAAKxC,aACnC,GAAIwgK,GAAkBhpJ,EAAK6lC,GAAS,CAGzC,IAAInV,EAAQ04H,EAAS,EAAGp+J,EAAKxC,OAAS,GACtCiI,EAAOu3I,EAAUA,EAASh9I,KAAMu+J,GAC5BC,GAAUxpJ,EAAIvb,OAAO4pG,EAAKyiC,KAAM04B,GAChC94H,EAAMloC,QAAUwX,EAAI+oH,OAAO16B,EAAKyiC,KAAMpgG,QACrC,GAAI24H,GAAarhB,EACtB,GAAmB,GAAfh9I,EAAKxC,OACPiI,EAAO44J,EAAWA,EAAUr+J,KAAK22C,MAAM,EAAG0sD,EAAK0iC,IAAMu4B,EAAWD,EAAUr+J,KAAK22C,MAAMysD,EAAG2iC,IAAKw4B,OACxF,CACL,IAAIE,EAAUL,EAAS,EAAGp+J,EAAKxC,OAAS,GACxCihK,EAAQt6J,KAAK,IAAIy5I,GAAK0gB,EAAWD,EAAUr+J,KAAK22C,MAAMysD,EAAG2iC,IAAKw4B,EAAW1gB,IACzEp4I,EAAO44J,EAAWA,EAAUr+J,KAAK22C,MAAM,EAAG0sD,EAAK0iC,IAAM/lI,EAAK,GAAIm+J,EAAS,IACvEnpJ,EAAI+oH,OAAO16B,EAAKyiC,KAAO,EAAG24B,QAEvB,GAAmB,GAAfz+J,EAAKxC,OACdiI,EAAO44J,EAAWA,EAAUr+J,KAAK22C,MAAM,EAAG0sD,EAAK0iC,IAAM/lI,EAAK,GAAKg9I,EAASh9I,KAAK22C,MAAMysD,EAAG2iC,IAAKo4B,EAAS,IACpGnpJ,EAAIvb,OAAO4pG,EAAKyiC,KAAO,EAAG04B,OACrB,CACL/4J,EAAO44J,EAAWA,EAAUr+J,KAAK22C,MAAM,EAAG0sD,EAAK0iC,IAAM/lI,EAAK,GAAIm+J,EAAS,IACvE14J,EAAOu3I,EAAUshB,EAAWthB,EAASh9I,KAAK22C,MAAMysD,EAAG2iC,IAAKw4B,GACxD,IAAIG,EAAUN,EAAS,EAAGp+J,EAAKxC,OAAS,GACpCghK,EAAS,GAAKxpJ,EAAIvb,OAAO4pG,EAAKyiC,KAAO,EAAG04B,EAAS,GACrDxpJ,EAAI+oH,OAAO16B,EAAKyiC,KAAO,EAAG44B,GAG5Bjd,GAAYzsI,EAAK,SAAUA,EAAK6lC,GAIlC,SAAS8jH,GAAW3pJ,EAAKrM,EAAGi2J,GAC1B,SAASzrH,EAAUn+B,EAAK8gG,EAAM+oD,GAC5B,GAAI7pJ,EAAI8pJ,OAAU,IAAK,IAAIn+J,EAAI,EAAGA,EAAIqU,EAAI8pJ,OAAOthK,SAAUmD,EAAG,CAC5D,IAAI6b,EAAMxH,EAAI8pJ,OAAOn+J,GACrB,GAAI6b,EAAIxH,KAAO8gG,EAAf,CACA,IAAIipD,EAASF,GAAcriJ,EAAIqiJ,WAC3BD,IAAmBG,IACvBp2J,EAAE6T,EAAIxH,IAAK+pJ,GACX5rH,EAAU32B,EAAIxH,IAAKA,EAAK+pJ,MAG5B5rH,EAAUn+B,EAAK,MAAM,GAIvB,SAASgqJ,GAAU/+H,EAAIjrB,GACrB,GAAIA,EAAIirB,GAAM,MAAM,IAAI57B,MAAM,oCAC9B47B,EAAGjrB,IAAMA,EACTA,EAAIirB,GAAKA,EACTsrH,GAAoBtrH,GACpB49H,GAAS59H,GACTg/H,GAAkBh/H,GAClBA,EAAGlnC,QAAQgW,UAAYiG,EAAIjG,UACtBkxB,EAAGlnC,QAAQg3B,cAAgBytH,GAAYv9G,GAC5CA,EAAGlnC,QAAQi3B,KAAOhb,EAAI8oJ,WACtBhS,GAAU7rH,GAGZ,SAASg/H,GAAkBh/H,IACN,OAApBA,EAAGjrB,IAAIjG,UAAqB5T,EAAW6tI,GAAS/oG,EAAG9yB,QAAQqjJ,QAAS,kBAGrE,SAAS0O,GAAiBj/H,GACxBi4H,GAAQj4H,GAAI,WACVg/H,GAAkBh/H,GAClB6rH,GAAU7rH,MAId,SAASqiG,GAAQxuH,GAIfvd,KAAKm1H,KAAO,GAAIn1H,KAAK4oK,OAAS,GAC9B5oK,KAAK6oK,UAAYtrJ,EAAOA,EAAKsrJ,UAAYjmC,EAAAA,EAGzC5iI,KAAK8oK,YAAc9oK,KAAK+oK,YAAc,EACtC/oK,KAAKgpK,OAAShpK,KAAKipK,UAAY,KAC/BjpK,KAAKkpK,WAAalpK,KAAKmpK,cAAgB,KAEvCnpK,KAAKopK,WAAappK,KAAKqpK,cAAgB9rJ,EAAOA,EAAK8rJ,cAAgB,EAKrE,SAASC,GAAwB7qJ,EAAK6lC,GACpC,IAAIilH,EAAa,CAACz8D,KAAMwwC,GAAQh5F,EAAOwoD,MAAOD,GAAIi6D,GAAUxiH,GAAS76C,KAAM+yI,GAAW/9H,EAAK6lC,EAAOwoD,KAAMxoD,EAAOuoD,KAG/G,OAFA28D,GAAiB/qJ,EAAK8qJ,EAAYjlH,EAAOwoD,KAAKyiC,KAAMjrF,EAAOuoD,GAAG0iC,KAAO,GACrE64B,GAAW3pJ,GAAK,SAAUA,GAAO,OAAO+qJ,GAAiB/qJ,EAAK8qJ,EAAYjlH,EAAOwoD,KAAKyiC,KAAMjrF,EAAOuoD,GAAG0iC,KAAO,MAAO,GAC7Gg6B,EAKT,SAASE,GAAqBvtH,GAC5B,KAAOA,EAAMj1C,QACAiuI,EAAIh5F,GACN26G,QAAU36G,EAAMx6C,MAO7B,SAASgoK,GAAgBC,EAAM/nI,GAC7B,OAAIA,GACF6nI,GAAqBE,EAAKx0C,MACnB+f,EAAIy0B,EAAKx0C,OACPw0C,EAAKx0C,KAAKluH,SAAWiuI,EAAIy0B,EAAKx0C,MAAM0hC,OACtC3hB,EAAIy0B,EAAKx0C,MACPw0C,EAAKx0C,KAAKluH,OAAS,IAAM0iK,EAAKx0C,KAAKw0C,EAAKx0C,KAAKluH,OAAS,GAAG4vJ,QAClE8S,EAAKx0C,KAAKzzH,MACHwzI,EAAIy0B,EAAKx0C,YAFX,EAST,SAASy0C,GAAmBnrJ,EAAK6lC,EAAQulH,EAAUC,GACjD,IAAIH,EAAOlrJ,EAAIitH,QACfi+B,EAAKf,OAAO3hK,OAAS,EACrB,IAAsB0pI,EAClBzlB,EADAipB,GAAQ,IAAIE,KAGhB,IAAKs1B,EAAKX,QAAUc,GACfH,EAAKT,YAAc5kH,EAAOnf,QAAUmf,EAAOnf,SACd,KAA3Bmf,EAAOnf,OAAOwqB,OAAO,IAAag6G,EAAKb,YAAc30B,GAAQ11H,EAAIirB,GAAKjrB,EAAIirB,GAAGlnC,QAAQunK,kBAAoB,MAC/E,KAA3BzlH,EAAOnf,OAAOwqB,OAAO,OACtBghF,EAAM+4B,GAAgBC,EAAMA,EAAKX,QAAUc,IAE9C5+C,EAAOgqB,EAAIvE,EAAI3K,SACoB,GAA/BrrH,GAAI2pC,EAAOwoD,KAAMxoD,EAAOuoD,KAAyC,GAA7BlyF,GAAI2pC,EAAOwoD,KAAMoe,EAAKre,IAG5Dqe,EAAKre,GAAKi6D,GAAUxiH,GAGpBqsF,EAAI3K,QAAQp4H,KAAK07J,GAAwB7qJ,EAAK6lC,QAE3C,CAEL,IAAI0hE,EAASkvB,EAAIy0B,EAAKx0C,MAMtB,IALKnP,GAAWA,EAAO6wC,QACnBmT,GAAuBvrJ,EAAI6W,IAAKq0I,EAAKx0C,MACzCwb,EAAM,CAAC3K,QAAS,CAACsjC,GAAwB7qJ,EAAK6lC,IACvC8kH,WAAYO,EAAKP,YACxBO,EAAKx0C,KAAKvnH,KAAK+iI,GACRg5B,EAAKx0C,KAAKluH,OAAS0iK,EAAKd,WAC7Bc,EAAKx0C,KAAKxzH,QACLgoK,EAAKx0C,KAAK,GAAG0hC,QAAU8S,EAAKx0C,KAAKxzH,QAG1CgoK,EAAKx0C,KAAKvnH,KAAKi8J,GACfF,EAAKP,aAAeO,EAAKN,cACzBM,EAAKb,YAAca,EAAKZ,YAAc50B,EACtCw1B,EAAKX,OAASW,EAAKV,UAAYa,EAC/BH,EAAKT,WAAaS,EAAKR,cAAgB7kH,EAAOnf,OAEzC+lF,GAAQstB,GAAO/5H,EAAK,gBAG3B,SAASwrJ,GAA0BxrJ,EAAK0mB,EAAQ5nB,EAAM+X,GACpD,IAAIk6G,EAAKrqG,EAAOwqB,OAAO,GACvB,MAAa,KAAN6/E,GACC,KAANA,GACAjyH,EAAKs5I,OAAO5vJ,QAAUquB,EAAIuhI,OAAO5vJ,QACjCsW,EAAKgpJ,qBAAuBjxI,EAAIixI,qBAChC,IAAIlyB,KAAO51H,EAAIitH,QAAQq9B,cAAgBtqJ,EAAIirB,GAAKjrB,EAAIirB,GAAGlnC,QAAQunK,kBAAoB,KAOvF,SAASG,GAAsBzrJ,EAAK6W,EAAKw0I,EAAMtnK,GAC7C,IAAImnK,EAAOlrJ,EAAIitH,QAASvmG,EAAS3iC,GAAWA,EAAQ2iC,OAMhD2kI,GAAQH,EAAKV,WACZ9jI,GAAUwkI,EAAKR,eAAiBhkI,IAC/BwkI,EAAKb,aAAea,EAAKZ,aAAeY,EAAKT,YAAc/jI,GAC3D8kI,GAA0BxrJ,EAAK0mB,EAAQ+vG,EAAIy0B,EAAKx0C,MAAO7/F,IACzDq0I,EAAKx0C,KAAKw0C,EAAKx0C,KAAKluH,OAAS,GAAKquB,EAElC00I,GAAuB10I,EAAKq0I,EAAKx0C,MAErCw0C,EAAKZ,aAAe,IAAI10B,KACxBs1B,EAAKR,cAAgBhkI,EACrBwkI,EAAKV,UAAYa,EACbtnK,IAAiC,IAAtBA,EAAQ2nK,WACnBV,GAAqBE,EAAKf,QAGhC,SAASoB,GAAuB10I,EAAK80I,GACnC,IAAIpqJ,EAAMk1H,EAAIk1B,GACRpqJ,GAAOA,EAAI62I,QAAU72I,EAAImwD,OAAO76C,IAClC80I,EAAKx8J,KAAK0nB,GAIhB,SAASk0I,GAAiB/qJ,EAAK6lC,EAAQwoD,EAAMD,GAC3C,IAAIk7B,EAAWzjF,EAAO,SAAW7lC,EAAI9Y,IAAK8+E,EAAI,EAC9ChmE,EAAIg+H,KAAKrxH,KAAKC,IAAI5M,EAAI1D,MAAO+xF,GAAO1hF,KAAKE,IAAI7M,EAAI1D,MAAQ0D,EAAImpB,KAAMilE,IAAK,SAAU0iC,GAC5EA,EAAK4T,eACJpb,IAAaA,EAAWzjF,EAAO,SAAW7lC,EAAI9Y,IAAM,KAAK8+E,GAAK8qD,EAAK4T,eACtE1+D,KAMN,SAAS4lF,GAAmBznB,GAC1B,IAAKA,EAAS,OAAO,KAErB,IADA,IAAIzS,EACK/lI,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAC9Bw4I,EAAMx4I,GAAGs4I,OAAO4nB,kBAA0Bn6B,IAAOA,EAAMyS,EAAMxiG,MAAM,EAAGh2C,IACjE+lI,GAAOA,EAAIviI,KAAKg1I,EAAMx4I,IAEjC,OAAQ+lI,EAAcA,EAAIlpI,OAASkpI,EAAM,KAA3ByS,EAIhB,SAAS2nB,GAAY9rJ,EAAK6lC,GACxB,IAAIvmB,EAAQumB,EAAO,SAAW7lC,EAAI9Y,IAClC,IAAKo4B,EAAS,OAAO,KAErB,IADA,IAAIylH,EAAK,GACAp5I,EAAI,EAAGA,EAAIk6C,EAAO76C,KAAKxC,SAAUmD,EACtCo5I,EAAG51I,KAAKy8J,GAAmBtsI,EAAM3zB,KACrC,OAAOo5I,EAOT,SAASgnB,GAAc/rJ,EAAK6lC,GAC1B,IAAIgiF,EAAMikC,GAAY9rJ,EAAK6lC,GACvBmmH,EAAYzmB,GAAuBvlI,EAAK6lC,GAC5C,IAAKgiF,EAAO,OAAOmkC,EACnB,IAAKA,EAAa,OAAOnkC,EAEzB,IAAK,IAAIl8H,EAAI,EAAGA,EAAIk8H,EAAIr/H,SAAUmD,EAAG,CACnC,IAAIsgK,EAASpkC,EAAIl8H,GAAIugK,EAAaF,EAAUrgK,GAC5C,GAAIsgK,GAAUC,EACZ/nB,EAAO,IAAK,IAAIphG,EAAI,EAAGA,EAAImpH,EAAW1jK,SAAUu6C,EAAG,CAEjD,IADA,IAAIqhG,EAAO8nB,EAAWnpH,GACb/hB,EAAI,EAAGA,EAAIirI,EAAOzjK,SAAUw4B,EACjC,GAAIirI,EAAOjrI,GAAGijH,QAAUG,EAAKH,OAAU,SAASE,EACpD8nB,EAAO98J,KAAKi1I,QAEL8nB,IACTrkC,EAAIl8H,GAAKugK,GAGb,OAAOrkC,EAKT,SAASskC,GAAiBxlK,EAAQylK,EAAUC,GAE1C,IADA,IAAI1pB,EAAO,GACFh3I,EAAI,EAAGA,EAAIhF,EAAO6B,SAAUmD,EAAG,CACtC,IAAIkD,EAAQlI,EAAOgF,GACnB,GAAIkD,EAAMupJ,OACRzV,EAAKxzI,KAAKk9J,EAAiB5E,GAAUpkK,UAAUukK,SAASzhG,KAAKt3D,GAASA,OADxE,CAIA,IAAI04H,EAAU14H,EAAM04H,QAAS+kC,EAAa,GAC1C3pB,EAAKxzI,KAAK,CAACo4H,QAAS+kC,IACpB,IAAK,IAAIvpH,EAAI,EAAGA,EAAIwkF,EAAQ/+H,SAAUu6C,EAAG,CACvC,IAAI8C,EAAS0hF,EAAQxkF,GAAIrvC,OAAI,EAE7B,GADA44J,EAAWn9J,KAAK,CAACk/F,KAAMxoD,EAAOwoD,KAAMD,GAAIvoD,EAAOuoD,GAAIpjG,KAAM66C,EAAO76C,OAC5DohK,EAAY,IAAK,IAAIt0I,KAAQ+tB,GAAcnyC,EAAIokB,EAAKhpB,MAAM,mBACxDoH,EAAQk2J,EAAUxuI,OAAOlqB,EAAE,MAAQ,IACrC+iI,EAAI61B,GAAYx0I,GAAQ+tB,EAAO/tB,UACxB+tB,EAAO/tB,MAKtB,OAAO6qH,EAWT,SAAS4pB,GAAY1/G,EAAOzlC,EAAMstI,EAAO56H,GACvC,GAAIA,EAAQ,CACV,IAAIq8H,EAAStpG,EAAMspG,OACnB,GAAIzB,EAAO,CACT,IAAI8X,EAAYtwJ,GAAIkL,EAAM+uI,GAAU,EAChCqW,GAActwJ,GAAIw4I,EAAOyB,GAAU,GACrCA,EAAS/uI,EACTA,EAAOstI,GACE8X,GAActwJ,GAAIkL,EAAMstI,GAAS,IAC1CttI,EAAOstI,GAGX,OAAO,IAAImT,GAAM1R,EAAQ/uI,GAEzB,OAAO,IAAIygJ,GAAMnT,GAASttI,EAAMA,GAKpC,SAASqlJ,GAAgBzsJ,EAAKoH,EAAMstI,EAAO3wJ,EAAS+1B,GACpC,MAAVA,IAAkBA,EAAS9Z,EAAIirB,KAAOjrB,EAAIirB,GAAG9yB,QAAQjV,OAAS8c,EAAI8Z,SACtEu4G,GAAaryH,EAAK,IAAIynJ,GAAU,CAAC8E,GAAYvsJ,EAAI6W,IAAImhI,UAAW5wI,EAAMstI,EAAO56H,IAAU,GAAI/1B,GAK7F,SAAS2oK,GAAiB1sJ,EAAK2sJ,EAAO5oK,GAGpC,IAFA,IAAI2tI,EAAM,GACN53G,EAAS9Z,EAAIirB,KAAOjrB,EAAIirB,GAAG9yB,QAAQjV,OAAS8c,EAAI8Z,QAC3CnuB,EAAI,EAAGA,EAAIqU,EAAI6W,IAAIuhI,OAAO5vJ,OAAQmD,IACvC+lI,EAAI/lI,GAAK4gK,GAAYvsJ,EAAI6W,IAAIuhI,OAAOzsJ,GAAIghK,EAAMhhK,GAAI,KAAMmuB,GAE5Du4G,GAAaryH,EADA+nJ,GAAmB/nJ,EAAIirB,GAAIymG,EAAK1xH,EAAI6W,IAAIwhI,WAC3Bt0J,GAI5B,SAAS6oK,GAAoB5sJ,EAAKrU,EAAGkhD,EAAO9oD,GAC1C,IAAIq0J,EAASp4I,EAAI6W,IAAIuhI,OAAOz2G,MAAM,GAClCy2G,EAAOzsJ,GAAKkhD,EACZwlF,GAAaryH,EAAK+nJ,GAAmB/nJ,EAAIirB,GAAImtH,EAAQp4I,EAAI6W,IAAIwhI,WAAYt0J,GAI3E,SAAS8oK,GAAmB7sJ,EAAKm2I,EAAQ/uI,EAAMrjB,GAC7CsuI,GAAaryH,EAAKooJ,GAAgBjS,EAAQ/uI,GAAOrjB,GAKnD,SAAS+oK,GAAsB9sJ,EAAK6W,EAAK9yB,GACvC,IAAI8O,EAAM,CACRulJ,OAAQvhI,EAAIuhI,OACZ3nJ,OAAQ,SAAS2nJ,GACf72J,KAAK62J,OAAS,GACd,IAAK,IAAIzsJ,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAC/BpK,KAAK62J,OAAOzsJ,GAAK,IAAIk8J,GAAM5oB,GAAQj/H,EAAKo4I,EAAOzsJ,GAAGwqJ,QACzBlX,GAAQj/H,EAAKo4I,EAAOzsJ,GAAGyb,QAEtDsf,OAAQ3iC,GAAWA,EAAQ2iC,QAI7B,OAFAqzG,GAAO/5H,EAAK,wBAAyBA,EAAKnN,GACtCmN,EAAIirB,IAAM8uG,GAAO/5H,EAAIirB,GAAI,wBAAyBjrB,EAAIirB,GAAIp4B,GAC1DA,EAAIulJ,QAAUvhI,EAAIuhI,OAAiB2P,GAAmB/nJ,EAAIirB,GAAIp4B,EAAIulJ,OAAQvlJ,EAAIulJ,OAAO5vJ,OAAS,GACpFquB,EAGhB,SAASk2I,GAA2B/sJ,EAAK6W,EAAK9yB,GAC5C,IAAI2yH,EAAO12G,EAAIitH,QAAQvW,KAAMjK,EAAOgqB,EAAI/f,GACpCjK,GAAQA,EAAK2rC,QACf1hC,EAAKA,EAAKluH,OAAS,GAAKquB,EACxBm2I,GAAmBhtJ,EAAK6W,EAAK9yB,IAE7BsuI,GAAaryH,EAAK6W,EAAK9yB,GAK3B,SAASsuI,GAAaryH,EAAK6W,EAAK9yB,GAC9BipK,GAAmBhtJ,EAAK6W,EAAK9yB,GAC7B0nK,GAAsBzrJ,EAAKA,EAAI6W,IAAK7W,EAAIirB,GAAKjrB,EAAIirB,GAAGsvG,MAAMrzI,GAAK+lK,IAAKlpK,GAGtE,SAASipK,GAAmBhtJ,EAAK6W,EAAK9yB,IAChC02I,GAAWz6H,EAAK,0BAA4BA,EAAIirB,IAAMwvG,GAAWz6H,EAAIirB,GAAI,4BACzEpU,EAAMi2I,GAAsB9sJ,EAAK6W,EAAK9yB,IAE1C,IAAI8sJ,EAAO9sJ,GAAWA,EAAQ8sJ,OAC3B30I,GAAI2a,EAAImhI,UAAU5wI,KAAMpH,EAAI6W,IAAImhI,UAAU5wI,MAAQ,GAAK,EAAI,GAC9D8lJ,GAAkBltJ,EAAKmtJ,GAAsBntJ,EAAK6W,EAAKg6H,GAAM,IAEvD9sJ,IAA8B,IAAnBA,EAAQuS,SAAqB0J,EAAIirB,IAAsC,YAAhCjrB,EAAIirB,GAAGguE,UAAU,aACrE2kD,GAAoB59I,EAAIirB,IAG9B,SAASiiI,GAAkBltJ,EAAK6W,GAC1BA,EAAI66C,OAAO1xD,EAAI6W,OAEnB7W,EAAI6W,IAAMA,EAEN7W,EAAIirB,KACNjrB,EAAIirB,GAAGsvG,MAAM4mB,YAAc,EAC3BnhJ,EAAIirB,GAAGsvG,MAAM+mB,kBAAmB,EAChCjnB,GAAqBr6H,EAAIirB,KAE3BwhH,GAAYzsI,EAAK,iBAAkBA,IAKrC,SAASotJ,GAAiBptJ,GACxBktJ,GAAkBltJ,EAAKmtJ,GAAsBntJ,EAAKA,EAAI6W,IAAK,MAAM,IAKnE,SAASs2I,GAAsBntJ,EAAK6W,EAAKg6H,EAAMwc,GAE7C,IADA,IAAI37B,EACK/lI,EAAI,EAAGA,EAAIkrB,EAAIuhI,OAAO5vJ,OAAQmD,IAAK,CAC1C,IAAIkhD,EAAQh2B,EAAIuhI,OAAOzsJ,GACnBk8H,EAAMhxG,EAAIuhI,OAAO5vJ,QAAUwX,EAAI6W,IAAIuhI,OAAO5vJ,QAAUwX,EAAI6W,IAAIuhI,OAAOzsJ,GACnE2hK,EAAYC,GAAWvtJ,EAAK6sC,EAAMspG,OAAQtuB,GAAOA,EAAIsuB,OAAQtF,EAAMwc,GACnEG,EAAUD,GAAWvtJ,EAAK6sC,EAAMzlC,KAAMygH,GAAOA,EAAIzgH,KAAMypI,EAAMwc,IAC7D37B,GAAO47B,GAAazgH,EAAMspG,QAAUqX,GAAW3gH,EAAMzlC,QAClDsqH,IAAOA,EAAM76G,EAAIuhI,OAAOz2G,MAAM,EAAGh2C,IACtC+lI,EAAI/lI,GAAK,IAAIk8J,GAAMyF,EAAWE,IAGlC,OAAO97B,EAAMq2B,GAAmB/nJ,EAAIirB,GAAIymG,EAAK76G,EAAIwhI,WAAaxhI,EAGhE,SAAS42I,GAAgBztJ,EAAK0S,EAAKg7I,EAAQnxC,EAAK8wC,GAC9C,IAAIv8B,EAAO6M,GAAQ39H,EAAK0S,EAAIo+G,MAC5B,GAAIA,EAAK4T,YAAe,IAAK,IAAI/4I,EAAI,EAAGA,EAAImlI,EAAK4T,YAAYl8I,SAAUmD,EAAG,CACxE,IAAIy7I,EAAKtW,EAAK4T,YAAY/4I,GAAI+H,EAAI0zI,EAAGnD,OAKjC0pB,EAAqB,eAAgBj6J,GAAMA,EAAEk6J,WAAal6J,EAAEsxI,cAC5D6oB,EAAsB,gBAAiBn6J,GAAMA,EAAEo6J,YAAcp6J,EAAEyxI,eAEnE,IAAgB,MAAXiC,EAAG/4C,OAAiBs/D,EAAoBvmB,EAAG/4C,MAAQ37E,EAAIq+G,GAAKqW,EAAG/4C,KAAO37E,EAAIq+G,OACjE,MAATqW,EAAGh5C,KAAey/D,EAAqBzmB,EAAGh5C,IAAM17E,EAAIq+G,GAAKqW,EAAGh5C,GAAK17E,EAAIq+G,KAAM,CAC9E,GAAIs8B,IACFtzB,GAAOrmI,EAAG,qBACNA,EAAEm4J,mBAAmB,CACvB,GAAK/6B,EAAK4T,YACL,GAAG/4I,EAAG,SADc,MAI7B,IAAK+H,EAAEq6J,OAAU,SAEjB,GAAIL,EAAQ,CACV,IAAIM,EAAOt6J,EAAErK,KAAKkzH,EAAM,EAAI,GAAK,GAAI9iE,OAAO,EAG5C,IAFI8iE,EAAM,EAAIsxC,EAAqBF,KAC/BK,EAAOC,GAAQjuJ,EAAKguJ,GAAOzxC,EAAKyxC,GAAQA,EAAKl9B,MAAQp+G,EAAIo+G,KAAOA,EAAO,OACvEk9B,GAAQA,EAAKl9B,MAAQp+G,EAAIo+G,OAASr3E,EAAOv9C,GAAI8xJ,EAAMN,MAAanxC,EAAM,EAAI9iE,EAAO,EAAIA,EAAO,GAC5F,OAAOg0G,GAAgBztJ,EAAKguJ,EAAMt7I,EAAK6pG,EAAK8wC,GAGlD,IAAIa,EAAMx6J,EAAErK,KAAKkzH,EAAM,GAAK,EAAI,GAGhC,OAFIA,EAAM,EAAIoxC,EAAoBE,KAC9BK,EAAMD,GAAQjuJ,EAAKkuJ,EAAK3xC,EAAK2xC,EAAIp9B,MAAQp+G,EAAIo+G,KAAOA,EAAO,OACxDo9B,EAAMT,GAAgBztJ,EAAKkuJ,EAAKx7I,EAAK6pG,EAAK8wC,GAAY,MAGjE,OAAO36I,EAIT,SAAS66I,GAAWvtJ,EAAK0S,EAAKg7I,EAAQ7c,EAAMwc,GAC1C,IAAI9wC,EAAMs0B,GAAQ,EACdvxH,EAAQmuI,GAAgBztJ,EAAK0S,EAAKg7I,EAAQnxC,EAAK8wC,KAC7CA,GAAYI,GAAgBztJ,EAAK0S,EAAKg7I,EAAQnxC,GAAK,IACrDkxC,GAAgBztJ,EAAK0S,EAAKg7I,GAASnxC,EAAK8wC,KACtCA,GAAYI,GAAgBztJ,EAAK0S,EAAKg7I,GAASnxC,GAAK,GAC1D,OAAKj9F,IACHtf,EAAImuJ,UAAW,EACRxvB,GAAI3+H,EAAI1D,MAAO,IAK1B,SAAS2xJ,GAAQjuJ,EAAK0S,EAAK6pG,EAAKuU,GAC9B,OAAIvU,EAAM,GAAe,GAAV7pG,EAAIq+G,GACbr+G,EAAIo+G,KAAO9wH,EAAI1D,MAAgB2iI,GAAQj/H,EAAK2+H,GAAIjsH,EAAIo+G,KAAO,IACjD,KACLvU,EAAM,GAAK7pG,EAAIq+G,KAAOD,GAAQ6M,GAAQ39H,EAAK0S,EAAIo+G,OAAO9lI,KAAKxC,OAChEkqB,EAAIo+G,KAAO9wH,EAAI1D,MAAQ0D,EAAImpB,KAAO,EAAYw1G,GAAIjsH,EAAIo+G,KAAO,EAAG,GACtD,KAEP,IAAI6N,GAAIjsH,EAAIo+G,KAAMp+G,EAAIq+G,GAAKxU,GAItC,SAAS9gG,GAAUwP,GACjBA,EAAGonG,aAAasM,GAAI1zG,EAAGo+H,YAAa,GAAI1qB,GAAI1zG,EAAG+8G,YAAahS,GAM9D,SAASo4B,GAAapuJ,EAAK6lC,EAAQp1C,GACjC,IAAIoC,EAAM,CACRw7J,UAAU,EACVhgE,KAAMxoD,EAAOwoD,KACbD,GAAIvoD,EAAOuoD,GACXpjG,KAAM66C,EAAO76C,KACb07B,OAAQmf,EAAOnf,OACf9qB,OAAQ,WAAc,OAAO/I,EAAIw7J,UAAW,IAW9C,OATI59J,IAAUoC,EAAIpC,OAAS,SAAU49F,EAAMD,EAAIpjG,EAAM07B,GAC/C2nE,IAAQx7F,EAAIw7F,KAAO4wC,GAAQj/H,EAAKquF,IAChCD,IAAMv7F,EAAIu7F,GAAK6wC,GAAQj/H,EAAKouF,IAC5BpjG,IAAQ6H,EAAI7H,KAAOA,QACRX,IAAXq8B,IAAwB7zB,EAAI6zB,OAASA,KAE3CqzG,GAAO/5H,EAAK,eAAgBA,EAAKnN,GAC7BmN,EAAIirB,IAAM8uG,GAAO/5H,EAAIirB,GAAI,eAAgBjrB,EAAIirB,GAAIp4B,GAEjDA,EAAIw7J,UACFruJ,EAAIirB,KAAMjrB,EAAIirB,GAAGsvG,MAAM4mB,YAAc,GAClC,MAEF,CAAC9yD,KAAMx7F,EAAIw7F,KAAMD,GAAIv7F,EAAIu7F,GAAIpjG,KAAM6H,EAAI7H,KAAM07B,OAAQ7zB,EAAI6zB,QAKlE,SAAS4nI,GAAWtuJ,EAAK6lC,EAAQ0oH,GAC/B,GAAIvuJ,EAAIirB,GAAI,CACV,IAAKjrB,EAAIirB,GAAGsvG,MAAS,OAAO3J,GAAU5wH,EAAIirB,GAAIqjI,GAAlB19B,CAA8B5wH,EAAK6lC,EAAQ0oH,GACvE,GAAIvuJ,EAAIirB,GAAG4J,MAAM25H,cAAiB,OAGpC,KAAI/zB,GAAWz6H,EAAK,iBAAmBA,EAAIirB,IAAMwvG,GAAWz6H,EAAIirB,GAAI,mBAClE4a,EAASuoH,GAAapuJ,EAAK6lC,GAAQ,IADrC,CAOA,IAAI7iD,EAAQ4gJ,KAAqB2qB,GAAkBvoB,GAAqBhmI,EAAK6lC,EAAOwoD,KAAMxoD,EAAOuoD,IACjG,GAAIprG,EACF,IAAK,IAAI2I,EAAI3I,EAAMwF,OAAS,EAAGmD,GAAK,IAAKA,EACrC8iK,GAAgBzuJ,EAAK,CAACquF,KAAMrrG,EAAM2I,GAAG0iG,KAAMD,GAAIprG,EAAM2I,GAAGyiG,GAAIpjG,KAAMW,EAAI,CAAC,IAAMk6C,EAAO76C,KAAM07B,OAAQmf,EAAOnf,cAE7G+nI,GAAgBzuJ,EAAK6lC,IAIzB,SAAS4oH,GAAgBzuJ,EAAK6lC,GAC5B,GAA0B,GAAtBA,EAAO76C,KAAKxC,QAAiC,IAAlBq9C,EAAO76C,KAAK,IAA2C,GAA/BkR,GAAI2pC,EAAOwoD,KAAMxoD,EAAOuoD,IAA/E,CACA,IAAIg9D,EAAW7C,GAAsBvoJ,EAAK6lC,GAC1CslH,GAAmBnrJ,EAAK6lC,EAAQulH,EAAUprJ,EAAIirB,GAAKjrB,EAAIirB,GAAGsvG,MAAMrzI,GAAK+lK,KAErEyB,GAAoB1uJ,EAAK6lC,EAAQulH,EAAU7lB,GAAuBvlI,EAAK6lC,IACvE,IAAI8oH,EAAU,GAEdhF,GAAW3pJ,GAAK,SAAUA,EAAK6pJ,GACxBA,IAAgD,GAAlC3zJ,EAAQy4J,EAAS3uJ,EAAIitH,WACtC2hC,GAAW5uJ,EAAIitH,QAASpnF,GACxB8oH,EAAQx/J,KAAK6Q,EAAIitH,UAEnByhC,GAAoB1uJ,EAAK6lC,EAAQ,KAAM0/F,GAAuBvlI,EAAK6lC,QAKvE,SAASgpH,GAAsB7uJ,EAAKnd,EAAMisK,GACxC,IAAIC,EAAW/uJ,EAAIirB,IAAMjrB,EAAIirB,GAAG4J,MAAM25H,cACtC,IAAIO,GAAaD,EAAjB,CAQA,IANA,IAAwBjgK,EAApBq8J,EAAOlrJ,EAAIitH,QAAgBm+B,EAAWprJ,EAAI6W,IAC1Cw/B,EAAiB,QAARxzD,EAAiBqoK,EAAKx0C,KAAOw0C,EAAKf,OAAQwB,EAAe,QAAR9oK,EAAiBqoK,EAAKf,OAASe,EAAKx0C,KAI9F/qH,EAAI,EACDA,EAAI0qD,EAAO7tD,SAChBqG,EAAQwnD,EAAO1qD,GACXmjK,GAAqBjgK,EAAMupJ,QAAWvpJ,EAAM6iE,OAAO1xD,EAAI6W,KAAQhoB,EAAMupJ,QAFjDzsJ,KAK1B,GAAIA,GAAK0qD,EAAO7tD,OAAhB,CAGA,IAFA0iK,EAAKT,WAAaS,EAAKR,cAAgB,OAE9B,CAEP,KADA77J,EAAQwnD,EAAOpzD,OACLm1J,OAOH,IAAI2W,EAET,YADA14G,EAAOlnD,KAAKN,GAEL,MARP,GADA08J,GAAuB18J,EAAO88J,GAC1BmD,IAAuBjgK,EAAM6iE,OAAO1xD,EAAI6W,KAE1C,YADAw7G,GAAaryH,EAAKnR,EAAO,CAAC68J,WAAW,IAGvCN,EAAWv8J,EASf,IAAImgK,EAAc,GAClBzD,GAAuBH,EAAUO,GACjCA,EAAKx8J,KAAK,CAACo4H,QAASynC,EAAarE,WAAYO,EAAKP,aAClDO,EAAKP,WAAa97J,EAAM87J,cAAgBO,EAAKN,cA6B7C,IA3BA,IAAIrzI,EAASkjH,GAAWz6H,EAAK,iBAAmBA,EAAIirB,IAAMwvG,GAAWz6H,EAAIirB,GAAI,gBAEzEojB,EAAO,SAAW1iD,GACpB,IAAIk6C,EAASh3C,EAAM04H,QAAQ57H,GAE3B,GADAk6C,EAAOnf,OAAS7jC,EACZ00B,IAAW62I,GAAapuJ,EAAK6lC,GAAQ,GAEvC,OADAwQ,EAAO7tD,OAAS,EACT,GAGTwmK,EAAY7/J,KAAK07J,GAAwB7qJ,EAAK6lC,IAE9C,IAAI+9B,EAAQj4E,EAAI48J,GAAsBvoJ,EAAK6lC,GAAU4wF,EAAIpgF,GACzDq4G,GAAoB1uJ,EAAK6lC,EAAQ+9B,EAAOmoF,GAAc/rJ,EAAK6lC,KACtDl6C,GAAKqU,EAAIirB,IAAMjrB,EAAIirB,GAAG/e,eAAe,CAACmiF,KAAMxoD,EAAOwoD,KAAMD,GAAIi6D,GAAUxiH,KAC5E,IAAI8oH,EAAU,GAGdhF,GAAW3pJ,GAAK,SAAUA,EAAK6pJ,GACxBA,IAAgD,GAAlC3zJ,EAAQy4J,EAAS3uJ,EAAIitH,WACtC2hC,GAAW5uJ,EAAIitH,QAASpnF,GACxB8oH,EAAQx/J,KAAK6Q,EAAIitH,UAEnByhC,GAAoB1uJ,EAAK6lC,EAAQ,KAAMkmH,GAAc/rJ,EAAK6lC,QAIrD2yF,EAAM3pI,EAAM04H,QAAQ/+H,OAAS,EAAGgwI,GAAO,IAAKA,EAAK,CACxD,IAAIy2B,EAAW5gH,EAAMmqF,GAErB,GAAKy2B,EAAW,OAAOA,EAASz1I,KAMpC,SAAS01I,GAASlvJ,EAAKmvJ,GACrB,GAAgB,GAAZA,IACJnvJ,EAAI1D,OAAS6yJ,EACbnvJ,EAAI6W,IAAM,IAAI4wI,GAAUxrJ,EAAI+D,EAAI6W,IAAIuhI,QAAQ,SAAUvrG,GAAS,OAAO,IAAIg7G,GACxElpB,GAAI9xF,EAAMspG,OAAOrlB,KAAOq+B,EAAUtiH,EAAMspG,OAAOplB,IAC/C4N,GAAI9xF,EAAMzlC,KAAK0pH,KAAOq+B,EAAUtiH,EAAMzlC,KAAK2pH,QACtC/wH,EAAI6W,IAAIwhI,WACXr4I,EAAIirB,IAAI,CACV6rH,GAAU92I,EAAIirB,GAAIjrB,EAAI1D,MAAO0D,EAAI1D,MAAQ6yJ,EAAUA,GACnD,IAAK,IAAIrjI,EAAI9rB,EAAIirB,GAAG9yB,QAASyqC,EAAI9W,EAAEu2G,SAAUz/F,EAAI9W,EAAEw2G,OAAQ1/F,IACvD40G,GAAcx3I,EAAIirB,GAAI2X,EAAG,WAMjC,SAAS8rH,GAAoB1uJ,EAAK6lC,EAAQulH,EAAUjnB,GAClD,GAAInkI,EAAIirB,KAAOjrB,EAAIirB,GAAGsvG,MAClB,OAAO3J,GAAU5wH,EAAIirB,GAAIyjI,GAAlB99B,CAAuC5wH,EAAK6lC,EAAQulH,EAAUjnB,GAEzE,GAAIt+F,EAAOuoD,GAAG0iC,KAAO9wH,EAAI1D,MACvB4yJ,GAASlvJ,EAAK6lC,EAAO76C,KAAKxC,OAAS,GAAKq9C,EAAOuoD,GAAG0iC,KAAOjrF,EAAOwoD,KAAKyiC,YAGvE,KAAIjrF,EAAOwoD,KAAKyiC,KAAO9wH,EAAIgoI,YAA3B,CAGA,GAAIniG,EAAOwoD,KAAKyiC,KAAO9wH,EAAI1D,MAAO,CAChC,IAAIpZ,EAAQ2iD,EAAO76C,KAAKxC,OAAS,GAAKwX,EAAI1D,MAAQupC,EAAOwoD,KAAKyiC,MAC9Do+B,GAASlvJ,EAAK9c,GACd2iD,EAAS,CAACwoD,KAAMswC,GAAI3+H,EAAI1D,MAAO,GAAI8xF,GAAIuwC,GAAI94F,EAAOuoD,GAAG0iC,KAAO5tI,EAAO2iD,EAAOuoD,GAAG2iC,IACnE/lI,KAAM,CAACyrI,EAAI5wF,EAAO76C,OAAQ07B,OAAQmf,EAAOnf,QAErD,IAAI+lF,EAAOzsG,EAAIgoI,WACXniG,EAAOuoD,GAAG0iC,KAAOrkB,IACnB5mE,EAAS,CAACwoD,KAAMxoD,EAAOwoD,KAAMD,GAAIuwC,GAAIlyB,EAAMkxB,GAAQ39H,EAAKysG,GAAMzhH,KAAKxC,QACzDwC,KAAM,CAAC66C,EAAO76C,KAAK,IAAK07B,OAAQmf,EAAOnf,SAGnDmf,EAAOztB,QAAU2lH,GAAW/9H,EAAK6lC,EAAOwoD,KAAMxoD,EAAOuoD,IAEhDg9D,IAAYA,EAAW7C,GAAsBvoJ,EAAK6lC,IACnD7lC,EAAIirB,GAAMmkI,GAA4BpvJ,EAAIirB,GAAI4a,EAAQs+F,GACnD+kB,GAAUlpJ,EAAK6lC,EAAQs+F,GAC9B6oB,GAAmBhtJ,EAAKorJ,EAAUp1B,GAE9Bh2H,EAAImuJ,UAAYZ,GAAWvtJ,EAAK2+H,GAAI3+H,EAAIqpJ,YAAa,MACrDrpJ,EAAImuJ,UAAW,IAKrB,SAASiB,GAA4BnkI,EAAI4a,EAAQs+F,GAC/C,IAAInkI,EAAMirB,EAAGjrB,IAAK7H,EAAU8yB,EAAG9yB,QAASk2F,EAAOxoD,EAAOwoD,KAAMD,EAAKvoD,EAAOuoD,GAEpEihE,GAAqB,EAAOC,EAAkBjhE,EAAKyiC,KAClD7lG,EAAGlnC,QAAQg3B,eACdu0I,EAAkBnxB,GAAOuJ,GAAW/J,GAAQ39H,EAAKquF,EAAKyiC,QACtD9wH,EAAIg+H,KAAKsxB,EAAiBlhE,EAAG0iC,KAAO,GAAG,SAAUA,GAC/C,GAAIA,GAAQ34H,EAAQswI,QAElB,OADA4mB,GAAqB,GACd,MAKTrvJ,EAAI6W,IAAIia,SAAS+U,EAAOwoD,KAAMxoD,EAAOuoD,KAAO,GAC5CisC,GAAqBpvG,GAEzBi+H,GAAUlpJ,EAAK6lC,EAAQs+F,EAAO0E,GAAe59G,IAExCA,EAAGlnC,QAAQg3B,eACd/a,EAAIg+H,KAAKsxB,EAAiBjhE,EAAKyiC,KAAOjrF,EAAO76C,KAAKxC,QAAQ,SAAUsoI,GAClE,IAAIrnG,EAAM6+G,GAAWxX,GACjBrnG,EAAMtxB,EAAQuwI,gBAChBvwI,EAAQswI,QAAU3X,EAClB34H,EAAQuwI,cAAgBj/G,EACxBtxB,EAAQwwI,gBAAiB,EACzB0mB,GAAqB,MAGrBA,IAAsBpkI,EAAGsvG,MAAMgnB,eAAgB,IAGrD5d,GAAgB3jI,EAAKquF,EAAKyiC,MAC1ButB,GAAYpzH,EAAI,KAEhB,IAAI8rH,EAAUlxG,EAAO76C,KAAKxC,QAAU4lG,EAAG0iC,KAAOziC,EAAKyiC,MAAQ,EAEvDjrF,EAAOkrD,KACP+lD,GAAU7rH,GACLojE,EAAKyiC,MAAQ1iC,EAAG0iC,MAA8B,GAAtBjrF,EAAO76C,KAAKxC,QAAgBwgK,GAAkB/9H,EAAGjrB,IAAK6lC,GAGnFixG,GAAU7rH,EAAIojE,EAAKyiC,KAAM1iC,EAAG0iC,KAAO,EAAGimB,GAFtCS,GAAcvsH,EAAIojE,EAAKyiC,KAAM,QAIjC,IAAIy+B,EAAiB90B,GAAWxvG,EAAI,WAAYukI,EAAgB/0B,GAAWxvG,EAAI,UAC/E,GAAIukI,GAAiBD,EAAgB,CACnC,IAAI18J,EAAM,CACRw7F,KAAMA,EAAMD,GAAIA,EAChBpjG,KAAM66C,EAAO76C,KACbotB,QAASytB,EAAOztB,QAChBsO,OAAQmf,EAAOnf,QAEb8oI,GAAiB/iB,GAAYxhH,EAAI,SAAUA,EAAIp4B,GAC/C08J,IAAmBtkI,EAAGsvG,MAAM8mB,aAAep2H,EAAGsvG,MAAM8mB,WAAa,KAAKlyJ,KAAK0D,GAEjFo4B,EAAG9yB,QAAQijJ,kBAAoB,KAGjC,SAASvqB,GAAa7wH,EAAK4Z,EAAMy0E,EAAMD,EAAI1nE,GACzC,IAAI6oG,EAECnhC,IAAMA,EAAKC,GACZnyF,GAAIkyF,EAAIC,GAAQ,IAA2BA,GAArBkhC,EAAS,CAACnhC,EAAIC,IAAqB,GAAID,EAAKmhC,EAAO,IAC1D,iBAAR31G,IAAoBA,EAAO5Z,EAAIyvJ,WAAW71I,IACrD00I,GAAWtuJ,EAAK,CAACquF,KAAMA,EAAMD,GAAIA,EAAIpjG,KAAM4uB,EAAM8M,OAAQA,IAK3D,SAASgpI,GAAoBh9I,EAAK27E,EAAMD,EAAI30C,GACtC20C,EAAK17E,EAAIo+G,KACXp+G,EAAIo+G,MAAQr3E,EACH40C,EAAO37E,EAAIo+G,OACpBp+G,EAAIo+G,KAAOziC,EACX37E,EAAIq+G,GAAK,GAWb,SAAS4+B,GAAgBlyH,EAAO4wD,EAAMD,EAAI30C,GACxC,IAAK,IAAI9tD,EAAI,EAAGA,EAAI8xC,EAAMj1C,SAAUmD,EAAG,CACrC,IAAIikK,EAAMnyH,EAAM9xC,GAAIwgE,GAAK,EACzB,GAAIyjG,EAAIxX,OAAR,CACOwX,EAAIC,UAAUD,EAAMnyH,EAAM9xC,GAAKikK,EAAIhI,YAAgBiI,QAAS,GACjE,IAAK,IAAI9sH,EAAI,EAAGA,EAAI6sH,EAAIxX,OAAO5vJ,OAAQu6C,IACrC2sH,GAAoBE,EAAIxX,OAAOr1G,GAAGozG,OAAQ9nD,EAAMD,EAAI30C,GACpDi2G,GAAoBE,EAAIxX,OAAOr1G,GAAG37B,KAAMinF,EAAMD,EAAI30C,OAJtD,CAQA,IAAK,IAAI6/E,EAAM,EAAGA,EAAMs2B,EAAIroC,QAAQ/+H,SAAU8wI,EAAK,CACjD,IAAIpH,EAAM09B,EAAIroC,QAAQ+R,GACtB,GAAIlrC,EAAK8jC,EAAI7jC,KAAKyiC,KAChBoB,EAAI7jC,KAAOswC,GAAIzM,EAAI7jC,KAAKyiC,KAAOr3E,EAAMy4E,EAAI7jC,KAAK0iC,IAC9CmB,EAAI9jC,GAAKuwC,GAAIzM,EAAI9jC,GAAG0iC,KAAOr3E,EAAMy4E,EAAI9jC,GAAG2iC,SACnC,GAAI1iC,GAAQ6jC,EAAI9jC,GAAG0iC,KAAM,CAC9B3kE,GAAK,EACL,OAGCA,IACH1uB,EAAMhmB,OAAO,EAAG9rB,EAAI,GACpBA,EAAI,KAKV,SAASijK,GAAW1D,EAAMrlH,GACxB,IAAIwoD,EAAOxoD,EAAOwoD,KAAKyiC,KAAM1iC,EAAKvoD,EAAOuoD,GAAG0iC,KAAMr3E,EAAO5T,EAAO76C,KAAKxC,QAAU4lG,EAAKC,GAAQ,EAC5FshE,GAAgBzE,EAAKx0C,KAAMroB,EAAMD,EAAI30C,GACrCk2G,GAAgBzE,EAAKf,OAAQ97D,EAAMD,EAAI30C,GAMzC,SAASq2G,GAAW9vJ,EAAKk2G,EAAQ65C,EAAYxrB,GAC3C,IAAInG,EAAKloB,EAAQ4a,EAAO5a,EAGxB,MAFqB,iBAAVA,EAAsB4a,EAAO6M,GAAQ39H,EAAKg/H,GAASh/H,EAAKk2G,IAC5DkoB,EAAKD,GAAOjoB,GACT,MAANkoB,EAAqB,MACrBmG,EAAGzT,EAAMsN,IAAOp+H,EAAIirB,IAAMusH,GAAcx3I,EAAIirB,GAAImzG,EAAI2xB,GACjDj/B,GAgBT,SAASk/B,GAAUr+B,GACjBpwI,KAAKowI,MAAQA,EACbpwI,KAAKyU,OAAS,KAEd,IADA,IAAIrS,EAAS,EACJgI,EAAI,EAAGA,EAAIgmI,EAAMnpI,SAAUmD,EAClCgmI,EAAMhmI,GAAGqK,OAASzU,KAClBoC,GAAUguI,EAAMhmI,GAAGhI,OAErBpC,KAAKoC,OAASA,EAqChB,SAASssK,GAAY3pI,GACnB/kC,KAAK+kC,SAAWA,EAEhB,IADA,IAAI6C,EAAO,EAAGxlC,EAAS,EACdgI,EAAI,EAAGA,EAAI26B,EAAS99B,SAAUmD,EAAG,CACxC,IAAIolI,EAAKzqG,EAAS36B,GAClBw9B,GAAQ4nG,EAAG+M,YAAan6I,GAAUotI,EAAGptI,OACrCotI,EAAG/6H,OAASzU,KAEdA,KAAK4nC,KAAOA,EACZ5nC,KAAKoC,OAASA,EACdpC,KAAKyU,OAAS,KArgChB6xJ,GAAMxkK,UAAUgrG,KAAO,WAAc,OAAO0wC,GAAOx9I,KAAK40J,OAAQ50J,KAAK6lB,OACrEygJ,GAAMxkK,UAAU+qG,GAAK,WAAc,OAAO0wC,GAAOv9I,KAAK40J,OAAQ50J,KAAK6lB,OACnEygJ,GAAMxkK,UAAUiG,MAAQ,WAAc,OAAO/H,KAAK6lB,KAAK0pH,MAAQvvI,KAAK40J,OAAOrlB,MAAQvvI,KAAK6lB,KAAK2pH,IAAMxvI,KAAK40J,OAAOplB,IAu9B/Gi/B,GAAU3sK,UAAY,CACpBy6I,UAAW,WAAa,OAAOv8I,KAAKowI,MAAMnpI,QAG1C0nK,YAAa,SAAS7nK,EAAI29E,GACxB,IAAK,IAAIr6E,EAAItD,EAAI5B,EAAI4B,EAAK29E,EAAGr6E,EAAIlF,IAAKkF,EAAG,CACvC,IAAImlI,EAAOvvI,KAAKowI,MAAMhmI,GACtBpK,KAAKoC,QAAUmtI,EAAKntI,OACpBqlJ,GAAYlY,GACZ2b,GAAY3b,EAAM,UAEpBvvI,KAAKowI,MAAMl6G,OAAOpvB,EAAI29E,IAIxB6uD,SAAU,SAASlD,GACjBA,EAAMxiI,KAAKg8C,MAAMwmF,EAAOpwI,KAAKowI,QAK/Bw+B,YAAa,SAAS9nK,EAAIspI,EAAOhuI,GAC/BpC,KAAKoC,QAAUA,EACfpC,KAAKowI,MAAQpwI,KAAKowI,MAAMhwF,MAAM,EAAGt5C,GAAI23B,OAAO2xG,GAAO3xG,OAAOz+B,KAAKowI,MAAMhwF,MAAMt5C,IAC3E,IAAK,IAAIsD,EAAI,EAAGA,EAAIgmI,EAAMnpI,SAAUmD,EAAKgmI,EAAMhmI,GAAGqK,OAASzU,MAI7D6uK,MAAO,SAAS/nK,EAAI29E,EAAGu+D,GACrB,IAAK,IAAI99I,EAAI4B,EAAK29E,EAAG39E,EAAK5B,IAAK4B,EAC3B,GAAIk8I,EAAGhjJ,KAAKowI,MAAMtpI,IAAQ,OAAO,IAiBzC4nK,GAAY5sK,UAAY,CACtBy6I,UAAW,WAAa,OAAOv8I,KAAK4nC,MAEpC+mI,YAAa,SAAS7nK,EAAI29E,GACxBzkF,KAAK4nC,MAAQ68C,EACb,IAAK,IAAIr6E,EAAI,EAAGA,EAAIpK,KAAK+kC,SAAS99B,SAAUmD,EAAG,CAC7C,IAAIq/C,EAAQzpD,KAAK+kC,SAAS36B,GAAIkyI,EAAK7yF,EAAM8yF,YACzC,GAAIz1I,EAAKw1I,EAAI,CACX,IAAIx/F,EAAK1xB,KAAKE,IAAIm5D,EAAG63D,EAAKx1I,GAAKqzJ,EAAY1wG,EAAMrnD,OAIjD,GAHAqnD,EAAMklH,YAAY7nK,EAAIg2C,GACtB98C,KAAKoC,QAAU+3J,EAAY1wG,EAAMrnD,OAC7Bk6I,GAAMx/F,IAAM98C,KAAK+kC,SAAS7O,OAAO9rB,IAAK,GAAIq/C,EAAMh1C,OAAS,MAC5C,IAAZgwE,GAAK3nC,GAAY,MACtBh2C,EAAK,OACEA,GAAMw1I,EAIjB,GAAIt8I,KAAK4nC,KAAO68C,EAAI,KACfzkF,KAAK+kC,SAAS99B,OAAS,KAAOjH,KAAK+kC,SAAS,aAAc0pI,KAAa,CAC1E,IAAIr+B,EAAQ,GACZpwI,KAAKszI,SAASlD,GACdpwI,KAAK+kC,SAAW,CAAC,IAAI0pI,GAAUr+B,IAC/BpwI,KAAK+kC,SAAS,GAAGtwB,OAASzU,OAI9BszI,SAAU,SAASlD,GACjB,IAAK,IAAIhmI,EAAI,EAAGA,EAAIpK,KAAK+kC,SAAS99B,SAAUmD,EAAKpK,KAAK+kC,SAAS36B,GAAGkpI,SAASlD,IAG7Ew+B,YAAa,SAAS9nK,EAAIspI,EAAOhuI,GAC/BpC,KAAK4nC,MAAQwoG,EAAMnpI,OACnBjH,KAAKoC,QAAUA,EACf,IAAK,IAAIgI,EAAI,EAAGA,EAAIpK,KAAK+kC,SAAS99B,SAAUmD,EAAG,CAC7C,IAAIq/C,EAAQzpD,KAAK+kC,SAAS36B,GAAIkyI,EAAK7yF,EAAM8yF,YACzC,GAAIz1I,GAAMw1I,EAAI,CAEZ,GADA7yF,EAAMmlH,YAAY9nK,EAAIspI,EAAOhuI,GACzBqnD,EAAM2mF,OAAS3mF,EAAM2mF,MAAMnpI,OAAS,GAAI,CAI1C,IADA,IAAIotH,EAAY5qE,EAAM2mF,MAAMnpI,OAAS,GAAK,GACjCkqB,EAAMkjG,EAAWljG,EAAMs4B,EAAM2mF,MAAMnpI,QAAS,CACnD,IAAI6nK,EAAO,IAAIL,GAAUhlH,EAAM2mF,MAAMhwF,MAAMjvB,EAAKA,GAAO,KACvDs4B,EAAMrnD,QAAU0sK,EAAK1sK,OACrBpC,KAAK+kC,SAAS7O,SAAS9rB,EAAG,EAAG0kK,GAC7BA,EAAKr6J,OAASzU,KAEhBypD,EAAM2mF,MAAQ3mF,EAAM2mF,MAAMhwF,MAAM,EAAGi0E,GACnCr0H,KAAK+uK,aAEP,MAEFjoK,GAAMw1I,IAKVyyB,WAAY,WACV,KAAI/uK,KAAK+kC,SAAS99B,QAAU,IAA5B,CACA,IAAI+nK,EAAKhvK,KACT,EAAG,CACD,IACIivK,EAAU,IAAIP,GADJM,EAAGjqI,SAAS7O,OAAO84I,EAAGjqI,SAAS99B,OAAS,EAAG,IAEzD,GAAK+nK,EAAGv6J,OAKF,CACJu6J,EAAGpnI,MAAQqnI,EAAQrnI,KACnBonI,EAAG5sK,QAAU6sK,EAAQ7sK,OACrB,IAAI8sK,EAAUv6J,EAAQq6J,EAAGv6J,OAAOswB,SAAUiqI,GAC1CA,EAAGv6J,OAAOswB,SAAS7O,OAAOg5I,EAAU,EAAG,EAAGD,OAT5B,CACd,IAAI7tB,EAAO,IAAIstB,GAAYM,EAAGjqI,UAC9Bq8G,EAAK3sI,OAASu6J,EACdA,EAAGjqI,SAAW,CAACq8G,EAAM6tB,GACrBD,EAAK5tB,EAOP6tB,EAAQx6J,OAASu6J,EAAGv6J,aACbu6J,EAAGjqI,SAAS99B,OAAS,IAC9B+nK,EAAGv6J,OAAOs6J,eAGZF,MAAO,SAAS/nK,EAAI29E,EAAGu+D,GACrB,IAAK,IAAI54I,EAAI,EAAGA,EAAIpK,KAAK+kC,SAAS99B,SAAUmD,EAAG,CAC7C,IAAIq/C,EAAQzpD,KAAK+kC,SAAS36B,GAAIkyI,EAAK7yF,EAAM8yF,YACzC,GAAIz1I,EAAKw1I,EAAI,CACX,IAAI6yB,EAAO/jJ,KAAKE,IAAIm5D,EAAG63D,EAAKx1I,GAC5B,GAAI2iD,EAAMolH,MAAM/nK,EAAIqoK,EAAMnsB,GAAO,OAAO,EACxC,GAAmB,IAAdv+D,GAAK0qF,GAAc,MACxBroK,EAAK,OACEA,GAAMw1I,KAOrB,IAAI8yB,GAAa,SAAS3wJ,EAAKuiC,EAAMx+C,GACnC,GAAIA,EAAW,IAAK,IAAIqqB,KAAOrqB,EAAeA,EAAQm/B,eAAe9U,KACjE7sB,KAAK6sB,GAAOrqB,EAAQqqB,IACxB7sB,KAAKye,IAAMA,EACXze,KAAKghD,KAAOA,GAqCd,SAASquH,GAA6B3lI,EAAI6lG,EAAMr3E,GAC1C2uF,GAAatX,IAAU7lG,EAAGsvG,OAAStvG,EAAGsvG,MAAMryI,WAAc+iC,EAAGjrB,IAAI9X,YACjEw1J,GAAezyH,EAAIwuB,GAGzB,SAASo3G,GAAc7wJ,EAAKk2G,EAAQ3zE,EAAMx+C,GACxC,IAAIinJ,EAAS,IAAI2lB,GAAW3wJ,EAAKuiC,EAAMx+C,GACnCknC,EAAKjrB,EAAIirB,GAgBb,OAfIA,GAAM+/G,EAAO+D,YAAa9jH,EAAG9yB,QAAQstJ,cAAe,GACxDqK,GAAW9vJ,EAAKk2G,EAAQ,UAAU,SAAU4a,GAC1C,IAAI4d,EAAU5d,EAAK4d,UAAY5d,EAAK4d,QAAU,IAI9C,GAHuB,MAAnB1D,EAAOx1I,SAAoBk5I,EAAQv/I,KAAK67I,GACrC0D,EAAQj3H,OAAO9K,KAAKE,IAAI6hI,EAAQlmJ,OAAQmkB,KAAKC,IAAI,EAAGo+H,EAAOx1I,WAAY,EAAGw1I,GACjFA,EAAOla,KAAOA,EACV7lG,IAAOg9G,GAAajoI,EAAK8wH,GAAO,CAClC,IAAIggC,EAAe1oB,GAAatX,GAAQ9wH,EAAI9X,UAC5Cg2I,GAAiBpN,EAAMA,EAAKntI,OAASurJ,GAAalE,IAC9C8lB,GAAgBpT,GAAezyH,EAAI+/G,EAAOrnJ,QAC9CsnC,EAAGsvG,MAAM4W,aAAc,EAEzB,OAAO,KAELlmH,GAAMwhH,GAAYxhH,EAAI,kBAAmBA,EAAI+/G,EAAyB,iBAAV90B,EAAqBA,EAASioB,GAAOjoB,IAC9F80B,EAzDT2lB,GAAWttK,UAAUogC,MAAQ,WAC3B,IAAIwH,EAAK1pC,KAAKye,IAAIirB,GAAI0jH,EAAKptJ,KAAKuvI,KAAK4d,QAAS5d,EAAOvvI,KAAKuvI,KAAMsN,EAAKD,GAAOrN,GAC5E,GAAU,MAANsN,GAAeuQ,EAAnB,CACA,IAAK,IAAIhjJ,EAAI,EAAGA,EAAIgjJ,EAAGnmJ,SAAUmD,EAASgjJ,EAAGhjJ,IAAMpK,MAAQotJ,EAAGl3H,OAAO9rB,IAAK,GACrEgjJ,EAAGnmJ,SAAUsoI,EAAK4d,QAAU,MACjC,IAAI/qJ,EAASurJ,GAAa3tJ,MAC1B28I,GAAiBpN,EAAMnkH,KAAKC,IAAI,EAAGkkH,EAAKntI,OAASA,IAC7CsnC,IACFi4H,GAAQj4H,GAAI,WACV2lI,GAA6B3lI,EAAI6lG,GAAOntI,GACxC6zJ,GAAcvsH,EAAImzG,EAAI,aAExBqO,GAAYxhH,EAAI,oBAAqBA,EAAI1pC,KAAM68I,MAInDuyB,GAAWttK,UAAUs8C,QAAU,WAC3B,IAAIoxH,EAASxvK,KAEXyvK,EAAOzvK,KAAKoC,OAAQsnC,EAAK1pC,KAAKye,IAAIirB,GAAI6lG,EAAOvvI,KAAKuvI,KACtDvvI,KAAKoC,OAAS,KACd,IAAI81D,EAAOy1F,GAAa3tJ,MAAQyvK,EAC3Bv3G,IACAwuF,GAAa1mJ,KAAKye,IAAK8wH,IAASoN,GAAiBpN,EAAMA,EAAKntI,OAAS81D,GACtExuB,GACFi4H,GAAQj4H,GAAI,WACVA,EAAGsvG,MAAM4W,aAAc,EACvByf,GAA6B3lI,EAAI6lG,EAAMr3E,GACvCgzF,GAAYxhH,EAAI,oBAAqBA,EAAI8lI,EAAQ5yB,GAAOrN,SAI9D4J,GAAWi2B,IA2CX,IAAIM,GAAe,EAEfC,GAAa,SAASlxJ,EAAKnd,GAC7BtB,KAAKowI,MAAQ,GACbpwI,KAAKsB,KAAOA,EACZtB,KAAKye,IAAMA,EACXze,KAAK2F,KAAO+pK,IAkHd,SAASE,GAASnxJ,EAAKquF,EAAMD,EAAIrqG,EAASlB,GAIxC,GAAIkB,GAAWA,EAAQgmK,OAAU,OAAOqH,GAAepxJ,EAAKquF,EAAMD,EAAIrqG,EAASlB,GAE/E,GAAImd,EAAIirB,KAAOjrB,EAAIirB,GAAGsvG,MAAS,OAAO3J,GAAU5wH,EAAIirB,GAAIkmI,GAAlBvgC,CAA4B5wH,EAAKquF,EAAMD,EAAIrqG,EAASlB,GAE1F,IAAIohJ,EAAS,IAAIitB,GAAWlxJ,EAAKnd,GAAO42D,EAAOv9C,GAAImyF,EAAMD,GAGzD,GAFIrqG,GAAWkxI,EAAQlxI,EAASkgJ,GAAQ,GAEpCxqF,EAAO,GAAa,GAARA,IAAuC,IAA1BwqF,EAAO8B,eAChC,OAAO9B,EAQX,GAPIA,EAAOotB,eAETptB,EAAOoD,WAAY,EACnBpD,EAAOiE,WAAa/T,EAAK,OAAQ,CAAC8P,EAAOotB,cAAe,qBACnDttK,EAAQ6qJ,mBAAqB3K,EAAOiE,WAAW3wI,aAAa,mBAAoB,QACjFxT,EAAQkhJ,aAAchB,EAAOiE,WAAWjD,YAAa,IAEvDhB,EAAOoD,UAAW,CACpB,GAAII,GAA0BznI,EAAKquF,EAAKyiC,KAAMziC,EAAMD,EAAI61C,IACpD51C,EAAKyiC,MAAQ1iC,EAAG0iC,MAAQ2W,GAA0BznI,EAAKouF,EAAG0iC,KAAMziC,EAAMD,EAAI61C,GAC1E,MAAM,IAAI50I,MAAM,oEACpB00I,KAGEE,EAAOqtB,cACPnG,GAAmBnrJ,EAAK,CAACquF,KAAMA,EAAMD,GAAIA,EAAI1nE,OAAQ,YAAa1mB,EAAI6W,IAAKo2I,KAE/E,IAAsC1L,EAAlCgQ,EAAUljE,EAAKyiC,KAAM7lG,EAAKjrB,EAAIirB,GA0BlC,GAzBAjrB,EAAIg+H,KAAKuzB,EAASnjE,EAAG0iC,KAAO,GAAG,SAAUA,GACnC7lG,GAAMg5G,EAAOoD,YAAcp8G,EAAGlnC,QAAQg3B,cAAgB2sH,GAAW5W,IAAS7lG,EAAG9yB,QAAQswI,UACrF8Y,GAAgB,GAChBtd,EAAOoD,WAAakqB,GAAWljE,EAAKyiC,MAAQoN,GAAiBpN,EAAM,GACvEwT,GAAcxT,EAAM,IAAIkT,GAAWC,EACAstB,GAAWljE,EAAKyiC,KAAOziC,EAAK0iC,GAAK,KACjCwgC,GAAWnjE,EAAG0iC,KAAO1iC,EAAG2iC,GAAK,MAAO/wH,EAAIirB,IAAMjrB,EAAIirB,GAAGsvG,SACtFg3B,KAGAttB,EAAOoD,WAAarnI,EAAIg+H,KAAK3vC,EAAKyiC,KAAM1iC,EAAG0iC,KAAO,GAAG,SAAUA,GAC7DmX,GAAajoI,EAAK8wH,IAASoN,GAAiBpN,EAAM,MAGpDmT,EAAOutB,cAAgBtgK,GAAG+yI,EAAQ,qBAAqB,WAAc,OAAOA,EAAOxgH,WAEnFwgH,EAAOtpH,WACTmpH,MACI9jI,EAAIitH,QAAQvW,KAAKluH,QAAUwX,EAAIitH,QAAQk9B,OAAO3hK,SAC9CwX,EAAIyxJ,gBAENxtB,EAAOoD,YACTpD,EAAO/8I,KAAO+pK,GACdhtB,EAAO8pB,QAAS,GAEd9iI,EAAI,CAGN,GADIs2H,IAAiBt2H,EAAGsvG,MAAMgnB,eAAgB,GAC1Ctd,EAAOoD,UACPyP,GAAU7rH,EAAIojE,EAAKyiC,KAAM1iC,EAAG0iC,KAAO,QAClC,GAAImT,EAAO3/I,WAAa2/I,EAAOiG,YAAcjG,EAAOkG,UAAYlG,EAAO3rI,KACnE2rI,EAAOrvI,YAAcqvI,EAAOj6I,MACjC,IAAK,IAAI2B,EAAI0iG,EAAKyiC,KAAMnlI,GAAKyiG,EAAG0iC,KAAMnlI,IAAO6rJ,GAAcvsH,EAAIt/B,EAAG,QAClEs4I,EAAO8pB,QAAUX,GAAiBniI,EAAGjrB,KACzCysI,GAAYxhH,EAAI,cAAeA,EAAIg5G,GAErC,OAAOA,EAjLTitB,GAAW7tK,UAAUogC,MAAQ,WAC3B,IAAIliC,KAAKsqK,kBAAT,CACA,IAAI5gI,EAAK1pC,KAAKye,IAAIirB,GAAIymI,EAASzmI,IAAOA,EAAGsvG,MAEzC,GADIm3B,GAAUxQ,GAAej2H,GACzBwvG,GAAWl5I,KAAM,SAAU,CAC7B,IAAI+9B,EAAQ/9B,KAAK8H,OACbi2B,GAASmtH,GAAYlrJ,KAAM,QAAS+9B,EAAM+uE,KAAM/uE,EAAM8uE,IAG5D,IADA,IAAIvhF,EAAM,KAAMD,EAAM,KACbjhB,EAAI,EAAGA,EAAIpK,KAAKowI,MAAMnpI,SAAUmD,EAAG,CAC1C,IAAImlI,EAAOvvI,KAAKowI,MAAMhmI,GAClBy4I,EAAOF,GAAiBpT,EAAK4T,YAAanjJ,MAC1C0pC,IAAO1pC,KAAK8lJ,UAAamQ,GAAcvsH,EAAIkzG,GAAOrN,GAAO,QACpD7lG,IACQ,MAAXm5G,EAAKh2C,KAAcxhF,EAAMuxH,GAAOrN,IACnB,MAAbsT,EAAK/1C,OAAgBxhF,EAAMsxH,GAAOrN,KAExCA,EAAK4T,YAAcL,GAAiBvT,EAAK4T,YAAaN,GACrC,MAAbA,EAAK/1C,MAAgB9sG,KAAK8lJ,YAAcY,GAAa1mJ,KAAKye,IAAK8wH,IAAS7lG,GACxEizG,GAAiBpN,EAAMolB,GAAWjrH,EAAG9yB,UAE3C,GAAI8yB,GAAM1pC,KAAK8lJ,YAAcp8G,EAAGlnC,QAAQg3B,aAAgB,IAAK,IAAIy9G,EAAM,EAAGA,EAAMj3I,KAAKowI,MAAMnpI,SAAUgwI,EAAK,CACxG,IAAIm5B,EAASjqB,GAAWnmJ,KAAKowI,MAAM6G,IAAO/uG,EAAM6+G,GAAWqpB,GACvDloI,EAAMwB,EAAG9yB,QAAQuwI,gBACnBz9G,EAAG9yB,QAAQswI,QAAUkpB,EACrB1mI,EAAG9yB,QAAQuwI,cAAgBj/G,EAC3BwB,EAAG9yB,QAAQwwI,gBAAiB,GAIrB,MAAP97H,GAAeoe,GAAM1pC,KAAK8lJ,WAAayP,GAAU7rH,EAAIpe,EAAKD,EAAM,GACpErrB,KAAKowI,MAAMnpI,OAAS,EACpBjH,KAAKsqK,mBAAoB,EACrBtqK,KAAKwsK,QAAUxsK,KAAKye,IAAImuJ,WAC1B5sK,KAAKye,IAAImuJ,UAAW,EAChBljI,GAAMmiI,GAAiBniI,EAAGjrB,MAE5BirB,GAAMwhH,GAAYxhH,EAAI,gBAAiBA,EAAI1pC,KAAMsrB,EAAKD,GACtD8kJ,GAAUjQ,GAAax2H,GACvB1pC,KAAKyU,QAAUzU,KAAKyU,OAAOytB,UAQjCytI,GAAW7tK,UAAUgG,KAAO,SAAUwqB,EAAMw0H,GAE1C,IAAIh6C,EAAMD,EADE,MAARv6E,GAA6B,YAAbtyB,KAAKsB,OAAsBgxB,EAAO,GAEtD,IAAK,IAAIloB,EAAI,EAAGA,EAAIpK,KAAKowI,MAAMnpI,SAAUmD,EAAG,CAC1C,IAAImlI,EAAOvvI,KAAKowI,MAAMhmI,GAClBy4I,EAAOF,GAAiBpT,EAAK4T,YAAanjJ,MAC9C,GAAiB,MAAb6iJ,EAAK/1C,OACPA,EAAOswC,GAAI0J,EAAUvX,EAAOqN,GAAOrN,GAAOsT,EAAK/1C,OAClC,GAATx6E,GAAc,OAAOw6E,EAE3B,GAAe,MAAX+1C,EAAKh2C,KACPA,EAAKuwC,GAAI0J,EAAUvX,EAAOqN,GAAOrN,GAAOsT,EAAKh2C,IACjC,GAARv6E,GAAa,OAAOu6E,EAG5B,OAAOC,GAAQ,CAACA,KAAMA,EAAMD,GAAIA,IAKlC8iE,GAAW7tK,UAAUs8C,QAAU,WAC3B,IAAIoxH,EAASxvK,KAEXmxB,EAAMnxB,KAAK8H,MAAM,GAAG,GAAO2hJ,EAASzpJ,KAAM0pC,EAAK1pC,KAAKye,IAAIirB,GACvDvY,GAAQuY,GACbi4H,GAAQj4H,GAAI,WACV,IAAI6lG,EAAOp+G,EAAIo+G,KAAMgX,EAAQ3J,GAAOzrH,EAAIo+G,MACpCpsI,EAAOssJ,GAAgB/lH,EAAI68G,GAM/B,GALIpjJ,IACFuuJ,GAA6BvuJ,GAC7BumC,EAAGsvG,MAAM+mB,iBAAmBr2H,EAAGsvG,MAAM4W,aAAc,GAErDlmH,EAAGsvG,MAAMgnB,eAAgB,GACpBtZ,GAAa+C,EAAOhrI,IAAK8wH,IAA0B,MAAjBka,EAAOrnJ,OAAgB,CAC5D,IAAI+3J,EAAY1Q,EAAOrnJ,OACvBqnJ,EAAOrnJ,OAAS,KAChB,IAAIiuK,EAAU1iB,GAAalE,GAAU0Q,EACjCkW,GACA1zB,GAAiBpN,EAAMA,EAAKntI,OAASiuK,GAE3CnlB,GAAYxhH,EAAI,gBAAiBA,EAAI8lI,OAIzCG,GAAW7tK,UAAUshJ,WAAa,SAAU7T,GAC1C,IAAKvvI,KAAKowI,MAAMnpI,QAAUjH,KAAKye,IAAIirB,GAAI,CACrC,IAAIs5G,EAAKhjJ,KAAKye,IAAIirB,GAAGsvG,MAChBgK,EAAGue,qBAA+D,GAAzC5sJ,EAAQquI,EAAGue,mBAAoBvhK,QACxDgjJ,EAAGye,uBAAyBze,EAAGye,qBAAuB,KAAK7zJ,KAAK5N,MAEvEA,KAAKowI,MAAMxiI,KAAK2hI,IAGlBogC,GAAW7tK,UAAUmjJ,WAAa,SAAU1V,GAE1C,GADAvvI,KAAKowI,MAAMl6G,OAAOvhB,EAAQ3U,KAAKowI,MAAOb,GAAO,IACxCvvI,KAAKowI,MAAMnpI,QAAUjH,KAAKye,IAAIirB,GAAI,CACrC,IAAIs5G,EAAKhjJ,KAAKye,IAAIirB,GAAGsvG,OACnBgK,EAAGue,qBAAuBve,EAAGue,mBAAqB,KAAK3zJ,KAAK5N,QAGlEm5I,GAAWw2B,IA8EX,IAAIW,GAAmB,SAAS5rB,EAAS+R,GACvCz2J,KAAK0kJ,QAAUA,EACf1kJ,KAAKy2J,QAAUA,EACf,IAAK,IAAIrsJ,EAAI,EAAGA,EAAIs6I,EAAQz9I,SAAUmD,EAClCs6I,EAAQt6I,GAAGqK,OAASzU,MAgB1B,SAAS6vK,GAAepxJ,EAAKquF,EAAMD,EAAIrqG,EAASlB,IAC9CkB,EAAUkxI,EAAQlxI,IACVgmK,QAAS,EACjB,IAAI9jB,EAAU,CAACkrB,GAASnxJ,EAAKquF,EAAMD,EAAIrqG,EAASlB,IAAQm1J,EAAU/R,EAAQ,GACtE+E,EAASjnJ,EAAQmkJ,WAQrB,OAPAyhB,GAAW3pJ,GAAK,SAAUA,GACpBgrI,IAAUjnJ,EAAQmkJ,WAAa8C,EAAOp4B,WAAU,IACpDqzB,EAAQ92I,KAAKgiK,GAASnxJ,EAAKi/H,GAAQj/H,EAAKquF,GAAO4wC,GAAQj/H,EAAKouF,GAAKrqG,EAASlB,IAC1E,IAAK,IAAI8I,EAAI,EAAGA,EAAIqU,EAAI8pJ,OAAOthK,SAAUmD,EACrC,GAAIqU,EAAI8pJ,OAAOn+J,GAAGmmK,SAAY,OAClC9Z,EAAUvhB,EAAIwP,MAET,IAAI4rB,GAAiB5rB,EAAS+R,GAGvC,SAAS+Z,GAAkB/xJ,GACzB,OAAOA,EAAIgyJ,UAAUrzB,GAAI3+H,EAAI1D,MAAO,GAAI0D,EAAIi/H,QAAQN,GAAI3+H,EAAIgoI,cAAc,SAAUt0I,GAAK,OAAOA,EAAEsC,UAGpG,SAASi8J,GAAkBjyJ,EAAKimI,GAC9B,IAAK,IAAIt6I,EAAI,EAAGA,EAAIs6I,EAAQz9I,OAAQmD,IAAK,CACvC,IAAIs4I,EAASgC,EAAQt6I,GAAI+mB,EAAMuxH,EAAO56I,OAClC6oK,EAAQlyJ,EAAIi/H,QAAQvsH,EAAI27E,MAAO8jE,EAAMnyJ,EAAIi/H,QAAQvsH,EAAI07E,IACzD,GAAIlyF,GAAIg2J,EAAOC,GAAM,CACnB,IAAIC,EAAUjB,GAASnxJ,EAAKkyJ,EAAOC,EAAKluB,EAAO+T,QAAS/T,EAAO+T,QAAQn1J,MACvEohJ,EAAOgC,QAAQ92I,KAAKijK,GACpBA,EAAQp8J,OAASiuI,IAKvB,SAASouB,GAAoBpsB,GAa3B,IAZA,IAAI53F,EAAO,SAAW1iD,GACpB,IAAIs4I,EAASgC,EAAQt6I,GAAIm+J,EAAS,CAAC7lB,EAAO+T,QAAQh4I,KAClD2pJ,GAAW1lB,EAAO+T,QAAQh4I,KAAK,SAAU8rB,GAAK,OAAOg+H,EAAO36J,KAAK28B,MACjE,IAAK,IAAIiX,EAAI,EAAGA,EAAIkhG,EAAOgC,QAAQz9I,OAAQu6C,IAAK,CAC9C,IAAIuvH,EAAYruB,EAAOgC,QAAQljG,IACQ,GAAnC7sC,EAAQ4zJ,EAAQwI,EAAUtyJ,OAC5BsyJ,EAAUt8J,OAAS,KACnBiuI,EAAOgC,QAAQxuH,OAAOsrB,IAAK,MAKxBp3C,EAAI,EAAGA,EAAIs6I,EAAQz9I,OAAQmD,IAAK0iD,EAAM1iD,GAzDjDkmK,GAAiBxuK,UAAUogC,MAAQ,WACjC,IAAIliC,KAAKsqK,kBAAT,CACAtqK,KAAKsqK,mBAAoB,EACzB,IAAK,IAAIlgK,EAAI,EAAGA,EAAIpK,KAAK0kJ,QAAQz9I,SAAUmD,EACvCpK,KAAK0kJ,QAAQt6I,GAAG83B,QACpBgpH,GAAYlrJ,KAAM,WAGpBswK,GAAiBxuK,UAAUgG,KAAO,SAAUwqB,EAAMw0H,GAChD,OAAO9mJ,KAAKy2J,QAAQ3uJ,KAAKwqB,EAAMw0H,IAEjC3N,GAAWm3B,IAiDX,IAAIU,GAAY,EACZC,GAAM,SAASxnK,EAAMgwB,EAAMquI,EAAWoJ,EAAS14J,GACjD,KAAMxY,gBAAgBixK,IAAQ,OAAO,IAAIA,GAAIxnK,EAAMgwB,EAAMquI,EAAWoJ,EAAS14J,GAC5D,MAAbsvJ,IAAqBA,EAAY,GAErC4G,GAAY9pG,KAAK5kE,KAAM,CAAC,IAAIyuK,GAAU,CAAC,IAAIpnB,GAAK,GAAI,UACpDrnJ,KAAK+a,MAAQ+sJ,EACb9nK,KAAK2G,UAAY3G,KAAKojB,WAAa,EACnCpjB,KAAK4sK,UAAW,EAChB5sK,KAAKmxK,gBAAkB,EACvBnxK,KAAKwgJ,aAAexgJ,KAAKugJ,kBAAoBunB,EAC7C,IAAI5/I,EAAQk1H,GAAI0qB,EAAW,GAC3B9nK,KAAKs1B,IAAMuxI,GAAgB3+I,GAC3BloB,KAAK0rI,QAAU,IAAIK,GAAQ,MAC3B/rI,KAAK2F,KAAOqrK,GACZhxK,KAAKunK,WAAa9tI,EAClBz5B,KAAKkxK,QAAUA,EACflxK,KAAKwY,UAA0B,OAAbA,EAAsB,MAAQ,MAChDxY,KAAKu4B,QAAS,EAEK,iBAAR9uB,IAAoBA,EAAOzJ,KAAKkuK,WAAWzkK,IACtDk+J,GAAU3nK,KAAM,CAAC8sG,KAAM5kF,EAAO2kF,GAAI3kF,EAAOze,KAAMA,IAC/CqnI,GAAa9wI,KAAM6mK,GAAgB3+I,GAAQusH,IAG7Cw8B,GAAInvK,UAAYuzI,EAAUq5B,GAAY5sK,UAAW,CAC/CkH,YAAaioK,GAKbx0B,KAAM,SAAS3vC,EAAMD,EAAIm2C,GACnBA,EAAMhjJ,KAAK6uK,MAAM/hE,EAAO9sG,KAAK+a,MAAO8xF,EAAKC,EAAMk2C,GAC5ChjJ,KAAK6uK,MAAM7uK,KAAK+a,MAAO/a,KAAK+a,MAAQ/a,KAAK4nC,KAAMklE,IAIxD06B,OAAQ,SAAS1gI,EAAIspI,GAEnB,IADA,IAAIhuI,EAAS,EACJgI,EAAI,EAAGA,EAAIgmI,EAAMnpI,SAAUmD,EAAKhI,GAAUguI,EAAMhmI,GAAGhI,OAC5DpC,KAAK4uK,YAAY9nK,EAAK9G,KAAK+a,MAAOq1H,EAAOhuI,IAE3Cc,OAAQ,SAAS4D,EAAI29E,GAAKzkF,KAAK2uK,YAAY7nK,EAAK9G,KAAK+a,MAAO0pE,IAK5D3qD,SAAU,SAASo3I,GACjB,IAAI9gC,EAAQsM,GAAS18I,KAAMA,KAAK+a,MAAO/a,KAAK+a,MAAQ/a,KAAK4nC,MACzD,OAAgB,IAAZspI,EAA4B9gC,EACzBA,EAAMruH,KAAKmvJ,GAAWlxK,KAAKoxK,kBAEpCr3I,SAAU8nI,IAAY,SAASxpI,GAC7B,IAAIrY,EAAMo9H,GAAIp9I,KAAK+a,MAAO,GAAImwG,EAAOlrH,KAAK+a,MAAQ/a,KAAK4nC,KAAO,EAC9DmlI,GAAW/sK,KAAM,CAAC8sG,KAAM9sF,EAAK6sF,GAAIuwC,GAAIlyB,EAAMkxB,GAAQp8I,KAAMkrH,GAAMzhH,KAAKxC,QAClDwC,KAAMzJ,KAAKkuK,WAAW71I,GAAO8M,OAAQ,WAAYqqE,MAAM,IAAO,GAC5ExvG,KAAK0pC,IAAM8yH,GAAex8J,KAAK0pC,GAAI,EAAG,GAC1ConG,GAAa9wI,KAAM6mK,GAAgB7mJ,GAAMy0H,MAE3CnF,aAAc,SAASj3G,EAAMy0E,EAAMD,EAAI1nE,GAGrCmqG,GAAatvI,KAAMq4B,EAFnBy0E,EAAO4wC,GAAQ19I,KAAM8sG,GACrBD,EAAKA,EAAK6wC,GAAQ19I,KAAM6sG,GAAMC,EACK3nE,IAErCwqG,SAAU,SAAS7iC,EAAMD,EAAIqkE,GAC3B,IAAI9gC,EAAQoM,GAAWx8I,KAAM09I,GAAQ19I,KAAM8sG,GAAO4wC,GAAQ19I,KAAM6sG,IAChE,OAAgB,IAAZqkE,EAA4B9gC,EAChB,KAAZ8gC,EAAyB9gC,EAAMruH,KAAK,IACjCquH,EAAMruH,KAAKmvJ,GAAWlxK,KAAKoxK,kBAGpCh1B,QAAS,SAAS7M,GAAO,IAAIluF,EAAIrhD,KAAKqxK,cAAc9hC,GAAO,OAAOluF,GAAKA,EAAE53C,MAEzE4nK,cAAe,SAAS9hC,GAAO,GAAIyN,GAAOh9I,KAAMuvI,GAAS,OAAO6M,GAAQp8I,KAAMuvI,IAC9E+hC,cAAe,SAAS/hC,GAAO,OAAOqN,GAAOrN,IAE7CgiC,yBAA0B,SAAShiC,GAEjC,MADmB,iBAARA,IAAoBA,EAAO6M,GAAQp8I,KAAMuvI,IAC7C4W,GAAW5W,IAGpBiiC,UAAW,WAAY,OAAOxxK,KAAK4nC,MACnCkgI,UAAW,WAAY,OAAO9nK,KAAK+a,OACnC0rI,SAAU,WAAY,OAAOzmJ,KAAK+a,MAAQ/a,KAAK4nC,KAAO,GAEtD81G,QAAS,SAASvsH,GAAM,OAAOusH,GAAQ19I,KAAMmxB,IAE7CgJ,UAAW,SAASjS,GAClB,IAAIojC,EAAQtrD,KAAKs1B,IAAImhI,UAKrB,OAJa,MAATvuI,GAA0B,QAATA,EAAyBojC,EAAMzlC,KAClC,UAATqC,EAA2BojC,EAAMspG,OACxB,OAAT1sI,GAA2B,MAATA,IAA2B,IAAVA,EAAyBojC,EAAMuhD,KAC9DvhD,EAAMwhD,QAGrB2kE,eAAgB,WAAa,OAAOzxK,KAAKs1B,IAAIuhI,QAC7C0P,kBAAmB,WAAY,OAAOvmK,KAAKs1B,IAAIixI,qBAE/C92B,UAAWoyB,IAAY,SAAStyB,EAAMC,EAAIhtI,GACxC8oK,GAAmBtrK,KAAM09I,GAAQ19I,KAAqB,iBAARuvI,EAAmB6N,GAAI7N,EAAMC,GAAM,GAAKD,GAAO,KAAM/sI,MAErGsuI,aAAc+wB,IAAY,SAASjN,EAAQ/uI,EAAMrjB,GAC/C8oK,GAAmBtrK,KAAM09I,GAAQ19I,KAAM40J,GAASlX,GAAQ19I,KAAM6lB,GAAQ+uI,GAASpyJ,MAEjF0oK,gBAAiBrJ,IAAY,SAASh8I,EAAMstI,EAAO3wJ,GACjD0oK,GAAgBlrK,KAAM09I,GAAQ19I,KAAM6lB,GAAOstI,GAASzV,GAAQ19I,KAAMmzJ,GAAQ3wJ,MAE5E2oK,iBAAkBtJ,IAAY,SAASuJ,EAAO5oK,GAC5C2oK,GAAiBnrK,KAAM69I,GAAa79I,KAAMorK,GAAQ5oK,MAEpDkvK,mBAAoB7P,IAAY,SAASzvJ,EAAG5P,GAE1C2oK,GAAiBnrK,KAAM69I,GAAa79I,KADxB0a,EAAI1a,KAAKs1B,IAAIuhI,OAAQzkJ,IACiB5P,MAEpDmvK,cAAe9P,IAAY,SAAShL,EAAQJ,EAASj0J,GACnD,GAAKq0J,EAAO5vJ,OAAZ,CAEA,IADA,IAAIkpI,EAAM,GACD/lI,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAC/B+lI,EAAI/lI,GAAK,IAAIk8J,GAAM5oB,GAAQ19I,KAAM62J,EAAOzsJ,GAAGwqJ,QAC1BlX,GAAQ19I,KAAM62J,EAAOzsJ,GAAGyb,MAAQgxI,EAAOzsJ,GAAGwqJ,SAChD,MAAX6B,IAAmBA,EAAUrrI,KAAKE,IAAIurI,EAAO5vJ,OAAS,EAAGjH,KAAKs1B,IAAIwhI,YACtEhmB,GAAa9wI,KAAMwmK,GAAmBxmK,KAAK0pC,GAAIymG,EAAKsmB,GAAUj0J,OAEhEovK,aAAc/P,IAAY,SAASjN,EAAQ/uI,EAAMrjB,GAC/C,IAAIq0J,EAAS72J,KAAKs1B,IAAIuhI,OAAOz2G,MAAM,GACnCy2G,EAAOjpJ,KAAK,IAAI04J,GAAM5oB,GAAQ19I,KAAM40J,GAASlX,GAAQ19I,KAAM6lB,GAAQ+uI,KACnE9jB,GAAa9wI,KAAMwmK,GAAmBxmK,KAAK0pC,GAAImtH,EAAQA,EAAO5vJ,OAAS,GAAIzE,MAG7E4oD,aAAc,SAAS8lH,GAErB,IADA,IAA8B9gC,EAA1BymB,EAAS72J,KAAKs1B,IAAIuhI,OACbzsJ,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CACtC,IAAIkrB,EAAMknH,GAAWx8I,KAAM62J,EAAOzsJ,GAAG0iG,OAAQ+pD,EAAOzsJ,GAAGyiG,MACvDujC,EAAQA,EAAQA,EAAM3xG,OAAOnJ,GAAOA,EAEtC,OAAgB,IAAZ47I,EAA4B9gC,EAClBA,EAAMruH,KAAKmvJ,GAAWlxK,KAAKoxK,kBAE3CS,cAAe,SAASX,GAEtB,IADA,IAAIt+D,EAAQ,GAAIikD,EAAS72J,KAAKs1B,IAAIuhI,OACzBzsJ,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CACtC,IAAIkrB,EAAMknH,GAAWx8I,KAAM62J,EAAOzsJ,GAAG0iG,OAAQ+pD,EAAOzsJ,GAAGyiG,OACvC,IAAZqkE,IAAqB57I,EAAMA,EAAIvT,KAAKmvJ,GAAWlxK,KAAKoxK,kBACxDx+D,EAAMxoG,GAAKkrB,EAEb,OAAOs9E,GAETk/D,iBAAkB,SAASz5I,EAAMi7G,EAAUnuG,GAEzC,IADA,IAAI4sI,EAAM,GACD3nK,EAAI,EAAGA,EAAIpK,KAAKs1B,IAAIuhI,OAAO5vJ,OAAQmD,IACxC2nK,EAAI3nK,GAAKiuB,EACbr4B,KAAKgyK,kBAAkBD,EAAKz+B,EAAUnuG,GAAU,WAElD6sI,kBAAmBnQ,IAAY,SAASxpI,EAAMi7G,EAAUnuG,GAEtD,IADA,IAAI6gG,EAAU,GAAI1wG,EAAMt1B,KAAKs1B,IACpBlrB,EAAI,EAAGA,EAAIkrB,EAAIuhI,OAAO5vJ,OAAQmD,IAAK,CAC1C,IAAIkhD,EAAQh2B,EAAIuhI,OAAOzsJ,GACvB47H,EAAQ57H,GAAK,CAAC0iG,KAAMxhD,EAAMwhD,OAAQD,GAAIvhD,EAAMuhD,KAAMpjG,KAAMzJ,KAAKkuK,WAAW71I,EAAKjuB,IAAK+6B,OAAQA,GAG5F,IADA,IAAI8sI,EAAS3+B,GAAwB,OAAZA,GAAqB4zB,GAAmBlnK,KAAMgmI,EAASsN,GACvE2D,EAAMjR,EAAQ/+H,OAAS,EAAGgwI,GAAO,EAAGA,IACzC81B,GAAW/sK,KAAMgmI,EAAQiR,IACzBg7B,EAAUzG,GAA2BxrK,KAAMiyK,GACtCjyK,KAAK0pC,IAAM2yH,GAAoBr8J,KAAK0pC,OAE/C7I,KAAMghI,IAAY,WAAYyL,GAAsBttK,KAAM,WAC1D8gC,KAAM+gI,IAAY,WAAYyL,GAAsBttK,KAAM,WAC1DkyK,cAAerQ,IAAY,WAAYyL,GAAsBttK,KAAM,QAAQ,MAC3EmyK,cAAetQ,IAAY,WAAYyL,GAAsBttK,KAAM,QAAQ,MAE3EoyK,aAAc,SAAShpK,GAAMpJ,KAAKu4B,OAASnvB,GAC3CipK,aAAc,WAAY,OAAOryK,KAAKu4B,QAEtC+5I,YAAa,WAEX,IADA,IAAI3I,EAAO3pK,KAAK0rI,QAASvW,EAAO,EAAGyzC,EAAS,EACnCx+J,EAAI,EAAGA,EAAIu/J,EAAKx0C,KAAKluH,OAAQmD,IAAYu/J,EAAKx0C,KAAK/qH,GAAGysJ,UAAY1hC,EAC3E,IAAK,IAAI8hB,EAAM,EAAGA,EAAM0yB,EAAKf,OAAO3hK,OAAQgwI,IAAc0yB,EAAKf,OAAO3xB,GAAK4f,UAAY+R,EACvF,MAAO,CAAC/nI,KAAMs0F,EAAMr0F,KAAM8nI,IAE5BsH,aAAc,WACZ,IAAIV,EAASxvK,KAEbA,KAAK0rI,QAAU,IAAIK,GAAQ/rI,KAAK0rI,SAChC08B,GAAWpoK,MAAM,SAAUye,GAAO,OAAOA,EAAIitH,QAAU8jC,EAAO9jC,WAAY,IAG5E6mC,UAAW,WACTvyK,KAAKmxK,gBAAkBnxK,KAAKwyK,kBAAiB,IAE/CA,iBAAkB,SAASC,GAGzB,OAFIA,IACAzyK,KAAK0rI,QAAQs9B,OAAShpK,KAAK0rI,QAAQu9B,UAAYjpK,KAAK0rI,QAAQw9B,WAAa,MACtElpK,KAAK0rI,QAAQ09B,YAEtBsJ,QAAS,SAAUC,GACjB,OAAO3yK,KAAK0rI,QAAQ09B,aAAeuJ,GAAO3yK,KAAKmxK,kBAGjDyB,WAAY,WACV,MAAO,CAACz9C,KAAMy1C,GAAiB5qK,KAAK0rI,QAAQvW,MACpCyzC,OAAQgC,GAAiB5qK,KAAK0rI,QAAQk9B,UAEhDiK,WAAY,SAASC,GACnB,IAAInJ,EAAO3pK,KAAK0rI,QAAU,IAAIK,GAAQ/rI,KAAK0rI,SAC3Ci+B,EAAKx0C,KAAOy1C,GAAiBkI,EAAS39C,KAAK/0E,MAAM,GAAI,MAAM,GAC3DupH,EAAKf,OAASgC,GAAiBkI,EAASlK,OAAOxoH,MAAM,GAAI,MAAM,IAGjE2yH,gBAAiBlR,IAAY,SAAStyB,EAAMyjC,EAAUntK,GACpD,OAAO0oK,GAAWvuK,KAAMuvI,EAAM,UAAU,SAAUA,GAChD,IAAImV,EAAUnV,EAAK+c,gBAAkB/c,EAAK+c,cAAgB,IAG1D,OAFA5H,EAAQsuB,GAAYntK,GACfA,GAAS2wB,GAAQkuH,KAAYnV,EAAK+c,cAAgB,OAChD,QAIX2mB,YAAapR,IAAY,SAASmR,GAChC,IAAIxD,EAASxvK,KAEbA,KAAKy8I,MAAK,SAAUlN,GACdA,EAAK+c,eAAiB/c,EAAK+c,cAAc0mB,IAC3CzE,GAAWiB,EAAQjgC,EAAM,UAAU,WAGjC,OAFAA,EAAK+c,cAAc0mB,GAAY,KAC3Bx8I,GAAQ+4G,EAAK+c,iBAAkB/c,EAAK+c,cAAgB,OACjD,WAMf4mB,SAAU,SAAS3jC,GACjB,IAAI9qD,EACJ,GAAmB,iBAAR8qD,EAAkB,CAC3B,IAAKyN,GAAOh9I,KAAMuvI,GAAS,OAAO,KAGlC,GAFA9qD,EAAI8qD,IACJA,EAAO6M,GAAQp8I,KAAMuvI,IACR,OAAO,UAGpB,GAAS,OADT9qD,EAAIm4D,GAAOrN,IACM,OAAO,KAE1B,MAAO,CAACA,KAAM9qD,EAAGkwC,OAAQ4a,EAAM9lI,KAAM8lI,EAAK9lI,KAAM6iJ,cAAe/c,EAAK+c,cAC5DvM,UAAWxQ,EAAKwQ,UAAWD,QAASvQ,EAAKuQ,QAASiM,UAAWxc,EAAKwc,UAClEoB,QAAS5d,EAAK4d,UAGxBgmB,aAActR,IAAY,SAASltC,EAAQ9jH,EAAO+E,GAChD,OAAO24J,GAAWvuK,KAAM20H,EAAiB,UAAT9jH,EAAoB,SAAW,SAAS,SAAU0+H,GAChF,IAAIh5G,EAAgB,QAAT1lB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC/C,GAAK0+H,EAAKh5G,GACL,IAAIi8G,EAAU58H,GAAK0yC,KAAKinF,EAAKh5G,IAAU,OAAO,EAC5Cg5G,EAAKh5G,IAAS,IAAM3gB,OAFR25H,EAAKh5G,GAAQ3gB,EAGhC,OAAO,QAGXw9J,gBAAiBvR,IAAY,SAASltC,EAAQ9jH,EAAO+E,GACnD,OAAO24J,GAAWvuK,KAAM20H,EAAiB,UAAT9jH,EAAoB,SAAW,SAAS,SAAU0+H,GAChF,IAAIh5G,EAAgB,QAAT1lB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC3C8/H,EAAMpB,EAAKh5G,GACf,IAAKo6G,EAAO,OAAO,EACd,GAAW,MAAP/6H,EAAe25H,EAAKh5G,GAAQ,SAChC,CACH,IAAIwH,EAAQ4yG,EAAIpjI,MAAMilI,EAAU58H,IAChC,IAAKmoB,EAAS,OAAO,EACrB,IAAI+H,EAAM/H,EAAMtO,MAAQsO,EAAM,GAAG92B,OACjCsoI,EAAKh5G,GAAQo6G,EAAIvwF,MAAM,EAAGriB,EAAMtO,QAAWsO,EAAMtO,OAASqW,GAAO6qG,EAAI1pI,OAAc,IAAL,IAAY0pI,EAAIvwF,MAAMta,IAAQ,KAE9G,OAAO,QAIXwpI,cAAezN,IAAY,SAASltC,EAAQ3zE,EAAMx+C,GAChD,OAAO8sK,GAActvK,KAAM20H,EAAQ3zE,EAAMx+C,MAE3C6wK,iBAAkB,SAAS5pB,GAAUA,EAAOvnH,SAE5C0tI,SAAU,SAAS9iE,EAAMD,EAAIrqG,GAC3B,OAAOotK,GAAS5vK,KAAM09I,GAAQ19I,KAAM8sG,GAAO4wC,GAAQ19I,KAAM6sG,GAAKrqG,EAASA,GAAWA,EAAQlB,MAAQ,UAEpGgyK,YAAa,SAASniJ,EAAK3uB,GACzB,IAAI+wK,EAAW,CAACzD,aAActtK,IAAgC,MAApBA,EAAQknD,SAAmBlnD,EAAQinJ,OAASjnJ,GACtEkhJ,WAAYlhJ,GAAWA,EAAQkhJ,WAC/Bc,gBAAgB,EAAOgkB,OAAQhmK,GAAWA,EAAQgmK,OAClDnb,kBAAmB7qJ,GAAWA,EAAQ6qJ,mBAEtD,OAAOuiB,GAAS5vK,KADhBmxB,EAAMusH,GAAQ19I,KAAMmxB,GACOA,EAAKoiJ,EAAU,aAE5CC,YAAa,SAASriJ,GAEpB,IAAIuzH,EAAU,GAAI9B,EAAQxG,GAAQp8I,MADlCmxB,EAAMusH,GAAQ19I,KAAMmxB,IACwBo+G,MAAM4T,YAClD,GAAIP,EAAS,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,SAAUmD,EAAG,CAClD,IAAIy4I,EAAOD,EAAMx4I,IACC,MAAby4I,EAAK/1C,MAAgB+1C,EAAK/1C,MAAQ37E,EAAIq+G,MAC3B,MAAXqT,EAAKh2C,IAAcg2C,EAAKh2C,IAAM17E,EAAIq+G,KACnCkV,EAAQ92I,KAAKi1I,EAAKH,OAAOjuI,QAAUouI,EAAKH,QAE9C,OAAOgC,GAET+rB,UAAW,SAAS3jE,EAAMD,EAAI72E,GAC5B82E,EAAO4wC,GAAQ19I,KAAM8sG,GAAOD,EAAK6wC,GAAQ19I,KAAM6sG,GAC/C,IAAI9uE,EAAQ,GAAI6+G,EAAS9vC,EAAKyiC,KAa9B,OAZAvvI,KAAKy8I,KAAK3vC,EAAKyiC,KAAM1iC,EAAG0iC,KAAO,GAAG,SAAUA,GAC1C,IAAIqT,EAAQrT,EAAK4T,YACjB,GAAIP,EAAS,IAAK,IAAIx4I,EAAI,EAAGA,EAAIw4I,EAAM37I,OAAQmD,IAAK,CAClD,IAAIy4I,EAAOD,EAAMx4I,GACA,MAAXy4I,EAAKh2C,IAAc+vC,GAAU9vC,EAAKyiC,MAAQziC,EAAK0iC,IAAMqT,EAAKh2C,IAC7C,MAAbg2C,EAAK/1C,MAAgB8vC,GAAU9vC,EAAKyiC,MACvB,MAAbsT,EAAK/1C,MAAgB8vC,GAAU/vC,EAAG0iC,MAAQsT,EAAK/1C,MAAQD,EAAG2iC,IAC1Dx5G,IAAUA,EAAO6sH,EAAKH,SACxB3kH,EAAMnwB,KAAKi1I,EAAKH,OAAOjuI,QAAUouI,EAAKH,UAE1C9F,KAEG7+G,GAET01I,YAAa,WACX,IAAI/uB,EAAU,GAMd,OALA1kJ,KAAKy8I,MAAK,SAAUlN,GAClB,IAAIqW,EAAMrW,EAAK4T,YACf,GAAIyC,EAAO,IAAK,IAAIx7I,EAAI,EAAGA,EAAIw7I,EAAI3+I,SAAUmD,EACtB,MAAfw7I,EAAIx7I,GAAG0iG,MAAgB43C,EAAQ92I,KAAKg4I,EAAIx7I,GAAGs4I,WAE9CgC,GAGTgvB,aAAc,SAASj+J,GACrB,IAAI+5H,EAAIoN,EAAS58I,KAAK+a,MAAO44J,EAAU3zK,KAAKoxK,gBAAgBnqK,OAO5D,OANAjH,KAAKy8I,MAAK,SAAUlN,GAClB,IAAI+M,EAAK/M,EAAK9lI,KAAKxC,OAAS0sK,EAC5B,GAAIr3B,EAAK7mI,EAAiB,OAAV+5H,EAAK/5H,GAAY,EACjCA,GAAO6mI,IACLM,KAEGc,GAAQ19I,KAAMo9I,GAAIR,EAAQpN,KAEnCokC,aAAc,SAAUjhB,GAEtB,IAAIljI,GADJkjI,EAASjV,GAAQ19I,KAAM2yJ,IACJnjB,GACnB,GAAImjB,EAAOpjB,KAAOvvI,KAAK+a,OAAS43I,EAAOnjB,GAAK,EAAK,OAAO,EACxD,IAAImkC,EAAU3zK,KAAKoxK,gBAAgBnqK,OAInC,OAHAjH,KAAKy8I,KAAKz8I,KAAK+a,MAAO43I,EAAOpjB,MAAM,SAAUA,GAC3C9/G,GAAS8/G,EAAK9lI,KAAKxC,OAAS0sK,KAEvBlkJ,GAGT2xH,KAAM,SAASyyB,GACb,IAAIp1J,EAAM,IAAIwyJ,GAAIv0B,GAAS18I,KAAMA,KAAK+a,MAAO/a,KAAK+a,MAAQ/a,KAAK4nC,MAC7C5nC,KAAKunK,WAAYvnK,KAAK+a,MAAO/a,KAAKkxK,QAASlxK,KAAKwY,WAQlE,OAPAiG,EAAI9X,UAAY3G,KAAK2G,UAAW8X,EAAI2E,WAAapjB,KAAKojB,WACtD3E,EAAI6W,IAAMt1B,KAAKs1B,IACf7W,EAAI8Z,QAAS,EACTs7I,IACFp1J,EAAIitH,QAAQm9B,UAAY7oK,KAAK0rI,QAAQm9B,UACrCpqJ,EAAIo0J,WAAW7yK,KAAK4yK,eAEfn0J,GAGTq1J,UAAW,SAAStxK,GACbA,IAAWA,EAAU,IAC1B,IAAIsqG,EAAO9sG,KAAK+a,MAAO8xF,EAAK7sG,KAAK+a,MAAQ/a,KAAK4nC,KAC1B,MAAhBplC,EAAQsqG,MAAgBtqG,EAAQsqG,KAAOA,IAAQA,EAAOtqG,EAAQsqG,MAChD,MAAdtqG,EAAQqqG,IAAcrqG,EAAQqqG,GAAKA,IAAMA,EAAKrqG,EAAQqqG,IAC1D,IAAIu0C,EAAO,IAAI6vB,GAAIv0B,GAAS18I,KAAM8sG,EAAMD,GAAKrqG,EAAQi3B,MAAQz5B,KAAKunK,WAAYz6D,EAAM9sG,KAAKkxK,QAASlxK,KAAKwY,WAKvG,OAJIhW,EAAQ8lK,aAAclnB,EAAK1V,QAAU1rI,KAAK0rI,UAC1C1rI,KAAKuoK,SAAWvoK,KAAKuoK,OAAS,KAAK36J,KAAK,CAAC6Q,IAAK2iI,EAAMknB,WAAY9lK,EAAQ8lK,aAC5ElnB,EAAKmnB,OAAS,CAAC,CAAC9pJ,IAAKze,KAAMuwK,UAAU,EAAMjI,WAAY9lK,EAAQ8lK,aAC/DoI,GAAkBtvB,EAAMovB,GAAkBxwK,OACnCohJ,GAET2yB,UAAW,SAAS5gB,GAElB,GADIA,aAAiBh7H,KAAcg7H,EAAQA,EAAM10I,KAC7Cze,KAAKuoK,OAAU,IAAK,IAAIn+J,EAAI,EAAGA,EAAIpK,KAAKuoK,OAAOthK,SAAUmD,EAE3D,GADWpK,KAAKuoK,OAAOn+J,GACdqU,KAAO00I,EAAhB,CACAnzJ,KAAKuoK,OAAOryI,OAAO9rB,EAAG,GACtB+oJ,EAAM4gB,UAAU/zK,MAChB8wK,GAAoBN,GAAkBxwK,OACtC,MAGF,GAAImzJ,EAAMznB,SAAW1rI,KAAK0rI,QAAS,CACjC,IAAIsoC,EAAW,CAAC7gB,EAAMxtJ,IACtByiK,GAAWjV,GAAO,SAAU10I,GAAO,OAAOu1J,EAASpmK,KAAK6Q,EAAI9Y,OAAQ,GACpEwtJ,EAAMznB,QAAU,IAAIK,GAAQ,MAC5BonB,EAAMznB,QAAQvW,KAAOy1C,GAAiB5qK,KAAK0rI,QAAQvW,KAAM6+C,GACzD7gB,EAAMznB,QAAQk9B,OAASgC,GAAiB5qK,KAAK0rI,QAAQk9B,OAAQoL,KAGjEC,eAAgB,SAAS7hK,GAAIg2J,GAAWpoK,KAAMoS,IAE9C+8H,QAAS,WAAY,OAAOnvI,KAAKy5B,MACjCzlB,UAAW,WAAY,OAAOhU,KAAK0pC,IAEnCwkI,WAAY,SAASlxH,GACnB,OAAIh9C,KAAKkxK,QAAkBl0H,EAAIv7C,MAAMzB,KAAKkxK,SACnC92B,GAAep9F,IAExBo0H,cAAe,WAAa,OAAOpxK,KAAKkxK,SAAW,MAEnDgD,aAAcrS,IAAY,SAAU7mC,GACvB,OAAPA,IAAgBA,EAAM,OACtBA,GAAOh7H,KAAKwY,YAChBxY,KAAKwY,UAAYwiH,EACjBh7H,KAAKy8I,MAAK,SAAUlN,GAAQ,OAAOA,EAAKv4H,MAAQ,QAC5ChX,KAAK0pC,IAAMi/H,GAAiB3oK,KAAK0pC,UAKzCunI,GAAInvK,UAAUqyK,SAAWlD,GAAInvK,UAAU26I,KAIvC,IAAI23B,GAAW,EAEf,SAASloK,GAAOhH,GACd,IAAIwkC,EAAK1pC,KAET,GADAq0K,GAAgB3qI,IACZ+uG,GAAe/uG,EAAIxkC,KAAM4oJ,GAAcpkH,EAAG9yB,QAAS1R,GAAvD,CAEAm0I,GAAiBn0I,GACbksI,IAAMgjC,IAAY,IAAI//B,MAC1B,IAAIljH,EAAM+jI,GAAaxrH,EAAIxkC,GAAG,GAAO6E,EAAQ7E,EAAE8E,aAAaD,MAC5D,GAAKonB,IAAOuY,EAAG4qI,aAGf,GAAIvqK,GAASA,EAAM9C,QAAUlH,OAAO+M,YAAc/M,OAAOw0K,KAkCvD,IAjCA,IAAI9vF,EAAI16E,EAAM9C,OAAQwC,EAAOuU,MAAMymE,GAAI+vF,EAAO,EAC1CC,EAAsC,aAClCD,GAAQ/vF,GACZ4qD,GAAU3lG,GAAI,WAEZ,IAAI4a,EAAS,CAACwoD,KADd37E,EAAMusH,GAAQh0G,EAAGjrB,IAAK0S,GACG07E,GAAI17E,EACf1nB,KAAMigC,EAAGjrB,IAAIyvJ,WACTzkK,EAAKusB,QAAO,SAAUhwB,GAAK,OAAY,MAALA,KAAc+b,KAAK2nB,EAAGjrB,IAAI2yJ,kBAChEjsI,OAAQ,SACtB4nI,GAAWrjI,EAAGjrB,IAAK6lC,GACnBknH,GAA2B9hI,EAAGjrB,IAAKooJ,GAAgBnpB,GAAQh0G,EAAGjrB,IAAK0S,GAAMusH,GAAQh0G,EAAGjrB,IAAKqoJ,GAAUxiH,QAPrG+qF,IAWAqlC,EAAmB,SAAUznK,EAAM7C,GACrC,GAAIs/B,EAAGlnC,QAAQmyK,qBAC2C,GAAtDhgK,EAAQ+0B,EAAGlnC,QAAQmyK,mBAAoB1nK,EAAK3L,MAC9CmzK,QAFF,CAKA,IAAIrnK,EAAS,IAAIN,WACjBM,EAAOuY,QAAU,WAAc,OAAO8uJ,KACtCrnK,EAAOwY,OAAS,WACd,IAAI7S,EAAU3F,EAAOnL,OACjB,0BAA0BqmD,KAAKv1C,KAInCtJ,EAAKW,GAAK2I,GAHR0hK,KAMJrnK,EAAOwnK,WAAW3nK,KAEX7C,EAAI,EAAGA,EAAIL,EAAM9C,OAAQmD,IAAOsqK,EAAiB3qK,EAAMK,GAAIA,OAC/D,CAEL,GAAIs/B,EAAG4J,MAAMsmH,cAAgBlwH,EAAGjrB,IAAI6W,IAAIia,SAASpe,IAAQ,EAIvD,OAHAuY,EAAG4J,MAAMsmH,aAAa10J,QAEtB+e,YAAW,WAAc,OAAOylB,EAAG9yB,QAAQtQ,MAAMszB,UAAY,IAG/D,IACE,IAAIi7I,EAAS3vK,EAAE8E,aAAawW,QAAQ,QACpC,GAAIq0J,EAAQ,CACV,IAAIzgK,EAIJ,GAHIs1B,EAAG4J,MAAMsmH,eAAiBlwH,EAAG4J,MAAMsmH,aAAaxY,OAChDhtI,EAAWs1B,EAAG+nI,kBAClBhG,GAAmB/hI,EAAGjrB,IAAKooJ,GAAgB11I,EAAKA,IAC5C/c,EAAY,IAAK,IAAI6iI,EAAM,EAAGA,EAAM7iI,EAASnN,SAAUgwI,EACvD3H,GAAa5lG,EAAGjrB,IAAK,GAAIrK,EAAS6iI,GAAK2d,OAAQxgJ,EAAS6iI,GAAKpxH,KAAM,QACvE6jB,EAAGooI,iBAAiB+C,EAAQ,SAAU,SACtCnrI,EAAG9yB,QAAQtQ,MAAMszB,SAGrB,MAAMy7H,OAIV,SAASyf,GAAYprI,EAAIxkC,GACvB,GAAIksI,KAAQ1nG,EAAG4J,MAAMsmH,eAAiB,IAAIvlB,KAAO+/B,GAAW,KAAQ76B,GAAOr0I,QAC3E,IAAIuzI,GAAe/uG,EAAIxkC,KAAM4oJ,GAAcpkH,EAAG9yB,QAAS1R,KAEvDA,EAAE8E,aAAa6kH,QAAQ,OAAQnlF,EAAG0hB,gBAClClmD,EAAE8E,aAAa+qK,cAAgB,WAI3B7vK,EAAE8E,aAAau2B,eAAiBmxG,GAAQ,CAC1C,IAAIsjC,EAAMriC,EAAI,MAAO,KAAM,KAAM,qCACjCqiC,EAAIzzK,IAAM,6EACNkwI,IACFujC,EAAI3yK,MAAQ2yK,EAAI5yK,OAAS,EACzBsnC,EAAG9yB,QAAQhC,QAAQnN,YAAYutK,GAE/BA,EAAIC,KAAOD,EAAIzxJ,WAEjBre,EAAE8E,aAAau2B,aAAay0I,EAAK,EAAG,GAChCvjC,GAAUujC,EAAI1yJ,WAAWC,YAAYyyJ,IAI7C,SAAShpK,GAAW09B,EAAIxkC,GACtB,IAAIisB,EAAM+jI,GAAaxrH,EAAIxkC,GAC3B,GAAKisB,EAAL,CACA,IAAInY,EAAO9Q,SAASC,yBACpB6uJ,GAAoBttH,EAAIvY,EAAKnY,GACxB0wB,EAAG9yB,QAAQs+J,aACdxrI,EAAG9yB,QAAQs+J,WAAaviC,EAAI,MAAO,KAAM,6CACzCjpG,EAAG9yB,QAAQq3I,UAAUtmJ,aAAa+hC,EAAG9yB,QAAQs+J,WAAYxrI,EAAG9yB,QAAQwiJ,YAEtE1mB,EAAqBhpG,EAAG9yB,QAAQs+J,WAAYl8J,IAG9C,SAASq7J,GAAgB3qI,GACnBA,EAAG9yB,QAAQs+J,aACbxrI,EAAG9yB,QAAQq3I,UAAU1rI,YAAYmnB,EAAG9yB,QAAQs+J,YAC5CxrI,EAAG9yB,QAAQs+J,WAAa,MAQ5B,SAASC,GAAkB/iK,GACzB,GAAKlK,SAASwiH,uBAAd,CAEA,IADA,IAAI0qD,EAAUltK,SAASwiH,uBAAuB,cAAe2qD,EAAU,GAC9DjrK,EAAI,EAAGA,EAAIgrK,EAAQnuK,OAAQmD,IAAK,CACvC,IAAIs/B,EAAK0rI,EAAQhrK,GAAG+tB,WAChBuR,GAAM2rI,EAAQznK,KAAK87B,GAErB2rI,EAAQpuK,QAAUouK,EAAQ,GAAGhmC,WAAU,WACzC,IAAK,IAAIjlI,EAAI,EAAGA,EAAIirK,EAAQpuK,OAAQmD,IAAOgI,EAAEijK,EAAQjrK,QAIzD,IAAIkrK,IAAoB,EACxB,SAASC,KACHD,KACJE,KACAF,IAAoB,GAEtB,SAASE,KAEP,IAAIC,EACJ9lK,GAAG5P,OAAQ,UAAU,WACA,MAAf01K,IAAuBA,EAAcxxJ,YAAW,WAClDwxJ,EAAc,KACdN,GAAkBO,MACjB,SAGL/lK,GAAG5P,OAAQ,QAAQ,WAAc,OAAOo1K,GAAkB5b,OAG5D,SAASmc,GAAShsI,GAChB,IAAIa,EAAIb,EAAG9yB,QAEX2zB,EAAEunH,gBAAkBvnH,EAAEwnH,iBAAmBxnH,EAAE6jH,eAAiB,KAC5D7jH,EAAEo4H,mBAAoB,EACtBj5H,EAAGisI,UAeL,IAZA,IAAIC,GAAW,CACb,EAAG,QAAS,EAAG,YAAa,EAAG,MAAO,GAAI,QAAS,GAAI,QAAS,GAAI,OAAQ,GAAI,MAChF,GAAI,QAAS,GAAI,WAAY,GAAI,MAAO,GAAI,QAAS,GAAI,SAAU,GAAI,WAAY,GAAI,MACvF,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,QAAS,GAAI,OAAQ,GAAI,YAAa,GAAI,SAChF,GAAI,SAAU,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,GAAI,MAAO,GAAI,MAC1D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,aACvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/F,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,KAAM,MAAO,OAAQ,MAAO,OAAQ,MAAO,QAAS,MAAO,SAClG,MAAO,OAAQ,MAAO,MAAO,MAAO,SAAU,MAAO,WAAY,MAAO,UAIjExrK,GAAI,EAAGA,GAAI,GAAIA,KAAOwrK,GAASxrK,GAAI,IAAMwrK,GAASxrK,GAAI,IAAMyhE,OAAOzhE,IAE5E,IAAK,IAAI6sI,GAAM,GAAIA,IAAO,GAAIA,KAAS2+B,GAAS3+B,IAAOprE,OAAOu0D,aAAa6W,IAE3E,IAAK,IAAIC,GAAM,EAAGA,IAAO,GAAIA,KAAS0+B,GAAS1+B,GAAM,KAAO0+B,GAAS1+B,GAAM,OAAS,IAAMA,GAE1F,IAAI2+B,GAAS,GA4Cb,SAASC,GAAiB3xK,GACxB,IAEIsc,EAAKisE,EAAM/qF,EAAO8O,EAFlBmiG,EAAQzuG,EAAK1C,MAAM,UACvB0C,EAAOyuG,EAAMA,EAAM3rG,OAAS,GAE5B,IAAK,IAAImD,EAAI,EAAGA,EAAIwoG,EAAM3rG,OAAS,EAAGmD,IAAK,CACzC,IAAIwtB,EAAMg7E,EAAMxoG,GAChB,GAAI,kBAAkBk+C,KAAK1wB,GAAQnnB,GAAM,OACpC,GAAI,YAAY63C,KAAK1wB,GAAQnX,GAAM,OACnC,GAAI,sBAAsB6nC,KAAK1wB,GAAQ80D,GAAO,MAC9C,KAAI,cAAcpkC,KAAK1wB,GACrB,MAAM,IAAI9pB,MAAM,+BAAiC8pB,GADpBj2B,GAAQ,GAO9C,OAJI8e,IAAOtc,EAAO,OAASA,GACvBuoF,IAAQvoF,EAAO,QAAUA,GACzBsM,IAAOtM,EAAO,OAASA,GACvBxC,IAASwC,EAAO,SAAWA,GACxBA,EAQT,SAAS4xK,GAAgBpmF,GACvB,IAAIyxD,EAAO,GACX,IAAK,IAAI40B,KAAWrmF,EAAU,GAAIA,EAAOhuD,eAAeq0I,GAAU,CAChE,IAAInwK,EAAQ8pF,EAAOqmF,GACnB,GAAI,mCAAmC1tH,KAAK0tH,GAAY,SACxD,GAAa,OAATnwK,EAAgB,QAAS8pF,EAAOqmF,GAAU,SAG9C,IADA,IAAIn0J,EAAOnH,EAAIs7J,EAAQv0K,MAAM,KAAMq0K,IAC1B1rK,EAAI,EAAGA,EAAIyX,EAAK5a,OAAQmD,IAAK,CACpC,IAAIhB,OAAM,EAAUjF,OAAO,EACvBiG,GAAKyX,EAAK5a,OAAS,GACrB9C,EAAO0d,EAAKE,KAAK,KACjB3Y,EAAMvD,IAEN1B,EAAO0d,EAAKu+B,MAAM,EAAGh2C,EAAI,GAAG2X,KAAK,KACjC3Y,EAAM,OAER,IAAImU,EAAO6jI,EAAKj9I,GAChB,GAAKoZ,GACA,GAAIA,GAAQnU,EAAO,MAAM,IAAI0E,MAAM,6BAA+B3J,QAD1Di9I,EAAKj9I,GAAQiF,SAGrBumF,EAAOqmF,GAEhB,IAAK,IAAIz/I,KAAQ6qH,EAAQzxD,EAAOp5D,GAAQ6qH,EAAK7qH,GAC7C,OAAOo5D,EAGT,SAASsmF,GAAU3/I,EAAK5b,EAAKi6G,EAAQn7D,GAEnC,IAAIz7B,GADJrjB,EAAMw7J,GAAUx7J,IACAkqD,KAAOlqD,EAAIkqD,KAAKtuC,EAAKkjC,GAAW9+C,EAAI4b,GACpD,IAAc,IAAVyH,EAAmB,MAAO,UAC9B,GAAc,QAAVA,EAAmB,MAAO,QAC9B,GAAa,MAATA,GAAiB42F,EAAO52F,GAAU,MAAO,UAE7C,GAAIrjB,EAAIy7J,YAAa,CACnB,GAAuD,kBAAnDv0J,OAAO9f,UAAUg3B,SAAS8rC,KAAKlqD,EAAIy7J,aACnC,OAAOF,GAAU3/I,EAAK5b,EAAIy7J,YAAaxhD,EAAQn7D,GACnD,IAAK,IAAIpvD,EAAI,EAAGA,EAAIsQ,EAAIy7J,YAAYlvK,OAAQmD,IAAK,CAC/C,IAAInI,EAASg0K,GAAU3/I,EAAK5b,EAAIy7J,YAAY/rK,GAAIuqH,EAAQn7D,GACxD,GAAIv3D,EAAU,OAAOA,IAO3B,SAASm0K,GAAcvwK,GACrB,IAAI1B,EAAuB,iBAAT0B,EAAoBA,EAAQ+vK,GAAS/vK,EAAM2mC,SAC7D,MAAe,QAARroC,GAA0B,OAARA,GAAyB,SAARA,GAA2B,OAARA,EAG/D,SAASkyK,GAAiBlyK,EAAMmJ,EAAOgpK,GACrC,IAAItvC,EAAO7iI,EAKX,OAJImJ,EAAM2wH,QAAkB,OAAR+I,IAAiB7iI,EAAO,OAASA,IAChDmuI,EAAchlI,EAAM4d,QAAU5d,EAAM2d,UAAoB,QAAR+7G,IAAkB7iI,EAAO,QAAUA,IACnFmuI,EAAchlI,EAAM2d,QAAU3d,EAAM4d,UAAoB,OAAR87G,IAAiB7iI,EAAO,OAASA,IACjFmyK,GAAWhpK,EAAMo1E,UAAoB,SAARskD,IAAmB7iI,EAAO,SAAWA,GAChEA,EAIT,SAASoyK,GAAQjpK,EAAOgpK,GACtB,GAAI7kC,GAA2B,IAAjBnkI,EAAMk/B,SAAiBl/B,EAAY,KAAK,OAAO,EAC7D,IAAInJ,EAAOyxK,GAAStoK,EAAMk/B,SAC1B,OAAY,MAARroC,IAAgBmJ,EAAMkpK,cAGL,GAAjBlpK,EAAMk/B,SAAgBl/B,EAAM+qB,OAAQl0B,EAAOmJ,EAAM+qB,MAC9Cg+I,GAAiBlyK,EAAMmJ,EAAOgpK,IAGvC,SAASJ,GAAU9sK,GACjB,MAAqB,iBAAPA,EAAkBysK,GAAOzsK,GAAOA,EAKhD,SAASqtK,GAAoB/sI,EAAIgtI,GAI/B,IAHA,IAAI7f,EAASntH,EAAGjrB,IAAI6W,IAAIuhI,OAAQ8f,EAAO,GAG9BvsK,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CAEtC,IADA,IAAIwsK,EAASF,EAAQ7f,EAAOzsJ,IACrBusK,EAAK1vK,QAAU0T,GAAIi8J,EAAO9pE,KAAMooC,EAAIyhC,GAAM9pE,KAAO,GAAG,CACzD,IAAIgqE,EAAWF,EAAKj1K,MACpB,GAAIiZ,GAAIk8J,EAAS/pE,KAAM8pE,EAAO9pE,MAAQ,EAAG,CACvC8pE,EAAO9pE,KAAO+pE,EAAS/pE,KACvB,OAGJ6pE,EAAK/oK,KAAKgpK,GAGZjV,GAAQj4H,GAAI,WACV,IAAK,IAAIt/B,EAAIusK,EAAK1vK,OAAS,EAAGmD,GAAK,EAAGA,IAClCklI,GAAa5lG,EAAGjrB,IAAK,GAAIk4J,EAAKvsK,GAAG0iG,KAAM6pE,EAAKvsK,GAAGyiG,GAAI,WACvDwvD,GAAoB3yH,MAIxB,SAASotI,GAAkBvnC,EAAMC,EAAIxU,GACnC,IAAIt3H,EAASkyI,GAAmBrG,EAAK9lI,KAAM+lI,EAAKxU,EAAKA,GACrD,OAAOt3H,EAAS,GAAKA,EAAS6rI,EAAK9lI,KAAKxC,OAAS,KAAOvD,EAG1D,SAASqzK,GAAcxnC,EAAMrnH,EAAO8yG,GAClC,IAAIwU,EAAKsnC,GAAkBvnC,EAAMrnH,EAAMsnH,GAAIxU,GAC3C,OAAa,MAANwU,EAAa,KAAO,IAAI4N,GAAIl1H,EAAMqnH,KAAMC,EAAIxU,EAAM,EAAI,QAAU,UAGzE,SAASg8C,GAAUC,EAAUvtI,EAAIo9G,EAASlK,EAAQ5hB,GAChD,GAAIi8C,EAAU,CACY,OAApBvtI,EAAGjrB,IAAIjG,YAAsBwiH,GAAOA,GACxC,IAAIhkH,EAAQohI,GAAS0O,EAASp9G,EAAGjrB,IAAIjG,WACrC,GAAIxB,EAAO,CACT,IAGIw4H,EAHAlrD,EAAO02C,EAAM,EAAIka,EAAIl+H,GAASA,EAAM,GAEpCq/H,EADsBrb,EAAM,IAAqB,GAAd12C,EAAKmO,OACV,QAAU,SAQ5C,GAAInO,EAAKmO,MAAQ,GAAyB,OAApB/oD,EAAGjrB,IAAIjG,UAAoB,CAC/C,IAAI0+J,EAAO1nB,GAAsB9lH,EAAIo9G,GACrCtX,EAAKxU,EAAM,EAAI8rB,EAAQr9I,KAAKxC,OAAS,EAAI,EACzC,IAAIkwK,EAAY5nB,GAAoB7lH,EAAIwtI,EAAM1nC,GAAIxvH,IAClDwvH,EAAKqG,IAAU,SAAUrG,GAAM,OAAO+f,GAAoB7lH,EAAIwtI,EAAM1nC,GAAIxvH,KAAOm3J,IAAen8C,EAAM,IAAqB,GAAd12C,EAAKmO,OAAcnO,EAAKwoB,KAAOxoB,EAAKuoB,GAAK,EAAG2iC,GACzI,UAAV6G,IAAsB7G,EAAKsnC,GAAkBhwB,EAAStX,EAAI,SACvDA,EAAKxU,EAAM,EAAI12C,EAAKuoB,GAAKvoB,EAAKwoB,KACvC,OAAO,IAAIswC,GAAIR,EAAQpN,EAAI6G,IAG/B,OAAO,IAAI+G,GAAIR,EAAQ5hB,EAAM,EAAI8rB,EAAQr9I,KAAKxC,OAAS,EAAG+zH,EAAM,EAAI,SAAW,SAGjF,SAASo8C,GAAa1tI,EAAI6lG,EAAMrnH,EAAO8yG,GACrC,IAAIq8C,EAAOj/B,GAAS7I,EAAM7lG,EAAGjrB,IAAIjG,WACjC,IAAK6+J,EAAQ,OAAON,GAAcxnC,EAAMrnH,EAAO8yG,GAC3C9yG,EAAMsnH,IAAMD,EAAK9lI,KAAKxC,QACxBihB,EAAMsnH,GAAKD,EAAK9lI,KAAKxC,OACrBihB,EAAMmuH,OAAS,UACNnuH,EAAMsnH,IAAM,IACrBtnH,EAAMsnH,GAAK,EACXtnH,EAAMmuH,OAAS,SAEjB,IAAI6c,EAAU9c,GAAcihC,EAAMnvJ,EAAMsnH,GAAItnH,EAAMmuH,QAAS/xD,EAAO+yF,EAAKnkB,GACvE,GAAwB,OAApBxpH,EAAGjrB,IAAIjG,WAAsB8rE,EAAKmO,MAAQ,GAAK,IAAMuoC,EAAM,EAAI12C,EAAKuoB,GAAK3kF,EAAMsnH,GAAKlrD,EAAKwoB,KAAO5kF,EAAMsnH,IAGxG,OAAOunC,GAAcxnC,EAAMrnH,EAAO8yG,GAGpC,IACIk8C,EADAI,EAAK,SAAUnmJ,EAAK6pG,GAAO,OAAO87C,GAAkBvnC,EAAMp+G,aAAeisH,GAAMjsH,EAAIq+G,GAAKr+G,EAAK6pG,IAE7Fu8C,EAAuB,SAAU/nC,GACnC,OAAK9lG,EAAGlnC,QAAQg3B,cAChB09I,EAAOA,GAAQ1nB,GAAsB9lH,EAAI6lG,GAClCskB,GAAsBnqH,EAAI6lG,EAAM2nC,EAAM1nC,IAFN,CAACokB,MAAO,EAAG9tH,IAAKypG,EAAK9lI,KAAKxC,SAI/D0sJ,EAAoB4jB,EAAqC,UAAhBrvJ,EAAMmuH,OAAqBihC,EAAGpvJ,GAAQ,GAAKA,EAAMsnH,IAE9F,GAAwB,OAApB9lG,EAAGjrB,IAAIjG,WAAoC,GAAd8rE,EAAKmO,MAAY,CAChD,IAAI+kF,EAAoC,GAAdlzF,EAAKmO,OAAgBuoC,EAAM,EACjDwU,EAAK8nC,EAAGpvJ,EAAOsvJ,EAAqB,GAAK,GAC7C,GAAU,MAANhoC,IAAgBgoC,EAAwEhoC,GAAMlrD,EAAKuoB,IAAM2iC,GAAMmkB,EAAkB7tH,IAA5F0pG,GAAMlrD,EAAKwoB,MAAQ0iC,GAAMmkB,EAAkBC,OAAuD,CAEzI,IAAIvd,EAASmhC,EAAqB,SAAW,QAC7C,OAAO,IAAIp6B,GAAIl1H,EAAMqnH,KAAMC,EAAI6G,IAOnC,IAAIohC,EAAqB,SAAUvkB,EAASl4B,EAAK24B,GAK/C,IAJA,IAAI+jB,EAAS,SAAUloC,EAAIgoC,GAAsB,OAAOA,EACpD,IAAIp6B,GAAIl1H,EAAMqnH,KAAM+nC,EAAG9nC,EAAI,GAAI,UAC/B,IAAI4N,GAAIl1H,EAAMqnH,KAAMC,EAAI,UAErB0jB,GAAW,GAAKA,EAAUmkB,EAAKpwK,OAAQisJ,GAAWl4B,EAAK,CAC5D,IAAI12C,EAAO+yF,EAAKnkB,GACZskB,EAAsBx8C,EAAM,IAAqB,GAAd12C,EAAKmO,OACxC+8C,EAAKgoC,EAAqB7jB,EAAkBC,MAAQ0jB,EAAG3jB,EAAkB7tH,KAAM,GACnF,GAAIw+C,EAAKwoB,MAAQ0iC,GAAMA,EAAKlrD,EAAKuoB,GAAM,OAAO6qE,EAAOloC,EAAIgoC,GAEzD,GADAhoC,EAAKgoC,EAAqBlzF,EAAKwoB,KAAOwqE,EAAGhzF,EAAKuoB,IAAK,GAC/C8mD,EAAkBC,OAASpkB,GAAMA,EAAKmkB,EAAkB7tH,IAAO,OAAO4xI,EAAOloC,EAAIgoC,KAKrFruK,EAAMsuK,EAAmBvkB,EAAUl4B,EAAKA,EAAK24B,GACjD,GAAIxqJ,EAAO,OAAOA,EAGlB,IAAIwuK,EAAS38C,EAAM,EAAI24B,EAAkB7tH,IAAMwxI,EAAG3jB,EAAkBC,OAAQ,GAC5E,OAAc,MAAV+jB,GAAoB38C,EAAM,GAAK28C,GAAUpoC,EAAK9lI,KAAKxC,UACrDkC,EAAMsuK,EAAmBz8C,EAAM,EAAI,EAAIq8C,EAAKpwK,OAAS,EAAG+zH,EAAKu8C,EAAqBI,KAK7E,KAJaxuK,EA1QtB0sK,GAAO+B,MAAQ,CACb,KAAQ,aAAc,MAAS,cAAe,GAAM,WAAY,KAAQ,aACxE,IAAO,YAAa,KAAQ,mBAAoB,OAAU,WAAY,SAAY,aAClF,OAAU,eAAgB,UAAa,gBAAiB,kBAAmB,gBAC3E,IAAO,aAAc,YAAa,aAClC,MAAS,mBAAoB,OAAU,kBACvC,IAAO,mBAKT/B,GAAOgC,UAAY,CACjB,SAAU,YAAa,SAAU,aAAc,SAAU,OAAQ,eAAgB,OAAQ,SAAU,OACnG,YAAa,aAAc,WAAY,WAAY,UAAW,WAAY,YAAa,aACvF,YAAa,cAAe,aAAc,eAAgB,WAAY,cAAe,YAAa,YAClG,iBAAkB,iBAAkB,cAAe,gBAAiB,SAAU,OAAQ,SAAU,OAChG,SAAU,WAAY,eAAgB,WAAY,eAAgB,UAAW,eAAgB,aAC7F,SAAU,aAAc,SAAU,aAClC,SAAU,gBAAiB,eAAgB,gBAAiB,QAAS,gBACrE,YAAe,SAGjBhC,GAAOiC,OAAS,CACd,SAAU,cAAe,SAAU,aAAc,SAAU,WAAY,SAAU,aACjF,SAAU,cAAe,SAAU,YAAa,SAAU,aAAc,eAAgB,WACxF,SAAU,eAAgB,SAAU,gBAAiB,gBAAiB,gBAAiB,SAAU,WACjG,SAAU,iBAAkB,SAAU,YAExCjC,GAAOkC,WAAa,CAClB,QAAS,YAAa,QAAS,aAAc,QAAS,OAAQ,cAAe,OAAQ,QAAS,OAC9F,WAAY,aAAc,SAAU,aAAc,UAAW,WAAY,WAAY,WAAY,WAAY,cAC7G,YAAa,eAAgB,WAAY,aAAc,YAAa,cAAe,gBAAiB,iBACpG,qBAAsB,gBAAiB,aAAc,gBAAiB,QAAS,OAAQ,QAAS,OAChG,QAAS,WAAY,cAAe,WAAY,YAAa,UAAW,kBAAmB,aAC3F,QAAS,aAAc,QAAS,aAAc,gBAAiB,qBAAsB,aAAc,sBACnG,QAAS,gBAAiB,cAAe,gBAAiB,UAAW,aAAc,YAAa,WAChG,YAAe,CAAC,QAAS,WAE3BlC,GAAgB,QAAI3jC,EAAM2jC,GAAOkC,WAAalC,GAAOgC,UA6OrD,IAAI59I,GAAW,CACbC,UAAWA,GACX89I,gBAAiB,SAAUtuI,GAAM,OAAOA,EAAGonG,aAAapnG,EAAGvP,UAAU,UAAWuP,EAAGvP,UAAU,QAASs6G,IACtGwjC,SAAU,SAAUvuI,GAAM,OAAO+sI,GAAoB/sI,GAAI,SAAU4hB,GACjE,GAAIA,EAAMvjD,QAAS,CACjB,IAAImgC,EAAMk0G,GAAQ1yG,EAAGjrB,IAAK6sC,EAAMzlC,KAAK0pH,MAAM9lI,KAAKxC,OAChD,OAAIqkD,EAAMzlC,KAAK2pH,IAAMtnG,GAAOojB,EAAMzlC,KAAK0pH,KAAO7lG,EAAG+8G,WACtC,CAAC35C,KAAMxhD,EAAMzlC,KAAMgnF,GAAIuwC,GAAI9xF,EAAMzlC,KAAK0pH,KAAO,EAAG,IAEhD,CAACziC,KAAMxhD,EAAMzlC,KAAMgnF,GAAIuwC,GAAI9xF,EAAMzlC,KAAK0pH,KAAMrnG,IAEvD,MAAO,CAAC4kE,KAAMxhD,EAAMwhD,OAAQD,GAAIvhD,EAAMuhD,UAG1CqrE,WAAY,SAAUxuI,GAAM,OAAO+sI,GAAoB/sI,GAAI,SAAU4hB,GAAS,MAAO,CACnFwhD,KAAMswC,GAAI9xF,EAAMwhD,OAAOyiC,KAAM,GAC7B1iC,GAAI6wC,GAAQh0G,EAAGjrB,IAAK2+H,GAAI9xF,EAAMuhD,KAAK0iC,KAAO,EAAG,SAE/C4oC,YAAa,SAAUzuI,GAAM,OAAO+sI,GAAoB/sI,GAAI,SAAU4hB,GAAS,MAAO,CACpFwhD,KAAMswC,GAAI9xF,EAAMwhD,OAAOyiC,KAAM,GAAI1iC,GAAIvhD,EAAMwhD,YAE7CsrE,mBAAoB,SAAU1uI,GAAM,OAAO+sI,GAAoB/sI,GAAI,SAAU4hB,GAC3E,IAAItrC,EAAM0pB,EAAGopH,WAAWxnG,EAAMzlC,KAAM,OAAO7F,IAAM,EAEjD,MAAO,CAAC8sF,KADMpjE,EAAG8pH,WAAW,CAACzzI,KAAM,EAAGC,IAAKA,GAAM,OAC1B6sF,GAAIvhD,EAAMwhD,YAEnCurE,oBAAqB,SAAU3uI,GAAM,OAAO+sI,GAAoB/sI,GAAI,SAAU4hB,GAC5E,IAAItrC,EAAM0pB,EAAGopH,WAAWxnG,EAAMzlC,KAAM,OAAO7F,IAAM,EAC7Cs4J,EAAW5uI,EAAG8pH,WAAW,CAACzzI,KAAM2pB,EAAG9yB,QAAQqjJ,QAAQ32I,YAAc,IAAKtD,IAAKA,GAAM,OACrF,MAAO,CAAC8sF,KAAMxhD,EAAMwhD,OAAQD,GAAIyrE,OAElCz3I,KAAM,SAAU6I,GAAM,OAAOA,EAAG7I,QAChCC,KAAM,SAAU4I,GAAM,OAAOA,EAAG5I,QAChCoxI,cAAe,SAAUxoI,GAAM,OAAOA,EAAGwoI,iBACzCC,cAAe,SAAUzoI,GAAM,OAAOA,EAAGyoI,iBACzC/3I,WAAY,SAAUsP,GAAM,OAAOA,EAAGwhI,gBAAgB9tB,GAAI1zG,EAAGo+H,YAAa,KAC1EyQ,SAAU,SAAU7uI,GAAM,OAAOA,EAAGwhI,gBAAgB9tB,GAAI1zG,EAAG+8G,cAC3D+xB,YAAa,SAAU9uI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GAAS,OAAO6wF,GAAUzyG,EAAI4hB,EAAMzlC,KAAK0pH,QAC3G,CAACpqG,OAAQ,QAASmqH,KAAM,KAE1BmpB,iBAAkB,SAAU/uI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GAAS,OAAOotH,GAAehvI,EAAI4hB,EAAMzlC,QAChH,CAACsf,OAAQ,QAASmqH,KAAM,KAE1BqpB,UAAW,SAAUjvI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GAAS,OAAOstH,GAAQlvI,EAAI4hB,EAAMzlC,KAAK0pH,QACvG,CAACpqG,OAAQ,QAASmqH,MAAO,KAE3BupB,YAAa,SAAUnvI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GAClE,IAAItrC,EAAM0pB,EAAGqpH,aAAaznG,EAAMzlC,KAAM,OAAO7F,IAAM,EACnD,OAAO0pB,EAAG8pH,WAAW,CAACzzI,KAAM2pB,EAAG9yB,QAAQqjJ,QAAQ32I,YAAc,IAAKtD,IAAKA,GAAM,SAC5E20H,IACHmkC,WAAY,SAAUpvI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GACjE,IAAItrC,EAAM0pB,EAAGqpH,aAAaznG,EAAMzlC,KAAM,OAAO7F,IAAM,EACnD,OAAO0pB,EAAG8pH,WAAW,CAACzzI,KAAM,EAAGC,IAAKA,GAAM,SACzC20H,IACHokC,gBAAiB,SAAUrvI,GAAM,OAAOA,EAAGgoI,oBAAmB,SAAUpmH,GACtE,IAAItrC,EAAM0pB,EAAGqpH,aAAaznG,EAAMzlC,KAAM,OAAO7F,IAAM,EAC/CmR,EAAMuY,EAAG8pH,WAAW,CAACzzI,KAAM,EAAGC,IAAKA,GAAM,OAC7C,OAAImR,EAAIq+G,GAAK9lG,EAAG0yG,QAAQjrH,EAAIo+G,MAAMroF,OAAO,MAAgBwxH,GAAehvI,EAAI4hB,EAAMzlC,MAC3EsL,IACNwjH,IACHqkC,SAAU,SAAUtvI,GAAM,OAAOA,EAAGuvI,OAAO,EAAG,SAC9CC,WAAY,SAAUxvI,GAAM,OAAOA,EAAGuvI,MAAM,EAAG,SAC/CE,SAAU,SAAUzvI,GAAM,OAAOA,EAAGuvI,OAAO,EAAG,SAC9CG,WAAY,SAAU1vI,GAAM,OAAOA,EAAGuvI,MAAM,EAAG,SAC/CI,WAAY,SAAU3vI,GAAM,OAAOA,EAAG4vI,OAAO,EAAG,SAChDC,YAAa,SAAU7vI,GAAM,OAAOA,EAAG4vI,MAAM,EAAG,SAChDE,aAAc,SAAU9vI,GAAM,OAAOA,EAAG4vI,OAAO,EAAG,WAClDG,cAAe,SAAU/vI,GAAM,OAAOA,EAAG4vI,MAAM,EAAG,WAClDI,WAAY,SAAUhwI,GAAM,OAAOA,EAAG4vI,OAAO,EAAG,SAChDK,aAAc,SAAUjwI,GAAM,OAAOA,EAAG4vI,MAAM,EAAG,UACjDM,YAAa,SAAUlwI,GAAM,OAAOA,EAAG4vI,OAAO,EAAG,UACjDO,YAAa,SAAUnwI,GAAM,OAAOA,EAAG4vI,MAAM,EAAG,SAChDQ,cAAe,SAAUpwI,GAAM,OAAOA,EAAGqwI,SAAS,EAAG,cACrDC,aAAc,SAAUtwI,GAAM,OAAOA,EAAGqwI,QAAQ,EAAG,SACnDE,cAAe,SAAUvwI,GAAM,OAAOA,EAAGqwI,SAAS,EAAG,SACrDG,aAAc,SAAUxwI,GAAM,OAAOA,EAAGqwI,QAAQ,EAAG,SACnDI,eAAgB,SAAUzwI,GAAM,OAAOA,EAAGqwI,SAAS,EAAG,UACtDK,cAAe,SAAU1wI,GAAM,OAAOA,EAAGqwI,QAAQ,EAAG,UACpDM,WAAY,SAAU3wI,GAAM,OAAOA,EAAG4wI,gBAAgB,UACtDC,WAAY,SAAU7wI,GAAM,OAAOA,EAAG4wI,gBAAgB,QACtDE,WAAY,SAAU9wI,GAAM,OAAOA,EAAG4wI,gBAAgB,aACtDG,UAAW,SAAU/wI,GAAM,OAAOA,EAAGooI,iBAAiB,OACtD4I,cAAe,SAAUhxI,GAEvB,IADA,IAAIixI,EAAS,GAAI9jB,EAASntH,EAAG+nI,iBAAkBvhC,EAAUxmG,EAAGlnC,QAAQ0tI,QAC3D9lI,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CACtC,IAAI+mB,EAAM0lI,EAAOzsJ,GAAG0iG,OAChBgoC,EAAMlB,EAAYlqG,EAAG0yG,QAAQjrH,EAAIo+G,MAAOp+G,EAAIq+G,GAAIU,GACpDyqC,EAAO/sK,KAAKqnI,EAAS/E,EAAU4E,EAAM5E,IAEvCxmG,EAAGsoI,kBAAkB2I,IAEvBC,WAAY,SAAUlxI,GAChBA,EAAG68H,oBAAuB78H,EAAG4wI,gBAAgB,OAC1C5wI,EAAGsH,YAAY,cASxB6pI,eAAgB,SAAUnxI,GAAM,OAAOi4H,GAAQj4H,GAAI,WAEjD,IADA,IAAImtH,EAASntH,EAAG+nI,iBAAkBQ,EAAS,GAClC7nK,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IACjC,GAAKysJ,EAAOzsJ,GAAGrC,QAAf,CACA,IAAI4oI,EAAMkmB,EAAOzsJ,GAAGyb,KAAM0pH,EAAO6M,GAAQ1yG,EAAGjrB,IAAKkyH,EAAIpB,MAAM9lI,KAC3D,GAAI8lI,EAEF,GADIoB,EAAInB,IAAMD,EAAKtoI,SAAU0pI,EAAM,IAAIyM,GAAIzM,EAAIpB,KAAMoB,EAAInB,GAAK,IAC1DmB,EAAInB,GAAK,EACXmB,EAAM,IAAIyM,GAAIzM,EAAIpB,KAAMoB,EAAInB,GAAK,GACjC9lG,EAAG4lG,aAAaC,EAAK5/E,OAAOghF,EAAInB,GAAK,GAAKD,EAAK5/E,OAAOghF,EAAInB,GAAK,GAC/C4N,GAAIzM,EAAIpB,KAAMoB,EAAInB,GAAK,GAAImB,EAAK,mBAC3C,GAAIA,EAAIpB,KAAO7lG,EAAGjrB,IAAI1D,MAAO,CAClC,IAAIwC,EAAO6+H,GAAQ1yG,EAAGjrB,IAAKkyH,EAAIpB,KAAO,GAAG9lI,KACrC8T,IACFozH,EAAM,IAAIyM,GAAIzM,EAAIpB,KAAM,GACxB7lG,EAAG4lG,aAAaC,EAAK5/E,OAAO,GAAKjmB,EAAGjrB,IAAI2yJ,gBACxB7zJ,EAAKoyC,OAAOpyC,EAAKtW,OAAS,GAC1Bm2I,GAAIzM,EAAIpB,KAAO,EAAGhyH,EAAKtW,OAAS,GAAI0pI,EAAK,eAI/DshC,EAAOrkK,KAAK,IAAI04J,GAAM31B,EAAKA,IAE7BjnG,EAAGioI,cAAcM,OAEnB6I,iBAAkB,SAAUpxI,GAAM,OAAOi4H,GAAQj4H,GAAI,WAEnD,IADA,IAAIhS,EAAOgS,EAAG+nI,iBACLrnK,EAAIstB,EAAKzwB,OAAS,EAAGmD,GAAK,EAAGA,IAClCs/B,EAAG4lG,aAAa5lG,EAAGjrB,IAAI2yJ,gBAAiB15I,EAAKttB,GAAGwqJ,OAAQl9H,EAAKttB,GAAGyb,KAAM,UAC1E6R,EAAOgS,EAAG+nI,iBACV,IAAK,IAAIx6B,EAAM,EAAGA,EAAMv/G,EAAKzwB,OAAQgwI,IACjCvtG,EAAGqmG,WAAWr4G,EAAKu/G,GAAKnqC,OAAOyiC,KAAM,MAAM,GAC/C8sB,GAAoB3yH,OAEtBqxI,SAAU,SAAUrxI,GAAM,OAAOA,EAAGooI,iBAAiB,KAAM,UAC3DkJ,gBAAiB,SAAUtxI,GAAM,OAAOA,EAAGsxI,oBAI7C,SAAS7+B,GAAUzyG,EAAI68G,GACrB,IAAIhX,EAAO6M,GAAQ1yG,EAAGjrB,IAAK8nI,GACvB6pB,EAASjqB,GAAW5W,GAExB,OADI6gC,GAAU7gC,IAAQgX,EAAQ3J,GAAOwzB,IAC9B4G,IAAU,EAAMttI,EAAI0mI,EAAQ7pB,EAAO,GAE5C,SAASqyB,GAAQlvI,EAAI68G,GACnB,IAAIhX,EAAO6M,GAAQ1yG,EAAGjrB,IAAK8nI,GACvB6pB,EAAShqB,GAAc7W,GAE3B,OADI6gC,GAAU7gC,IAAQgX,EAAQ3J,GAAOwzB,IAC9B4G,IAAU,EAAMttI,EAAI6lG,EAAMgX,GAAQ,GAE3C,SAASmyB,GAAehvI,EAAIvY,GAC1B,IAAIjJ,EAAQi0H,GAAUzyG,EAAIvY,EAAIo+G,MAC1BA,EAAO6M,GAAQ1yG,EAAGjrB,IAAKyJ,EAAMqnH,MAC7Bv4H,EAAQohI,GAAS7I,EAAM7lG,EAAGjrB,IAAIjG,WAClC,IAAKxB,GAA2B,GAAlBA,EAAM,GAAGy7E,MAAY,CACjC,IAAIwoF,EAAa7vJ,KAAKC,IAAInD,EAAMsnH,GAAID,EAAK9lI,KAAKy9C,OAAO,OACjDg0H,EAAO/pJ,EAAIo+G,MAAQrnH,EAAMqnH,MAAQp+G,EAAIq+G,IAAMyrC,GAAc9pJ,EAAIq+G,GACjE,OAAO4N,GAAIl1H,EAAMqnH,KAAM2rC,EAAO,EAAID,EAAY/yJ,EAAMmuH,QAEtD,OAAOnuH,EAIT,SAASizJ,GAAgBzxI,EAAI0xI,EAAOC,GAClC,GAAoB,iBAATD,KACTA,EAAQnhJ,GAASmhJ,IACH,OAAO,EAIvB1xI,EAAG9yB,QAAQtQ,MAAMg1K,eACjB,IAAIC,EAAY7xI,EAAG9yB,QAAQjV,MAAOwzH,GAAO,EACzC,IACMzrF,EAAG4qI,eAAgB5qI,EAAG4J,MAAM25H,eAAgB,GAC5CoO,IAAa3xI,EAAG9yB,QAAQjV,OAAQ,GACpCwzH,EAAOimD,EAAM1xI,IAAO8qG,EACpB,QACA9qG,EAAG9yB,QAAQjV,MAAQ45K,EACnB7xI,EAAG4J,MAAM25H,eAAgB,EAE3B,OAAO93C,EAGT,SAASqmD,GAAmB9xI,EAAIvlC,EAAMwwH,GACpC,IAAK,IAAIvqH,EAAI,EAAGA,EAAIs/B,EAAG4J,MAAMmoI,QAAQx0K,OAAQmD,IAAK,CAChD,IAAInI,EAASg0K,GAAU9xK,EAAMulC,EAAG4J,MAAMmoI,QAAQrxK,GAAIuqH,EAAQjrF,GAC1D,GAAIznC,EAAU,OAAOA,EAEvB,OAAQynC,EAAGlnC,QAAQk5K,WAAazF,GAAU9xK,EAAMulC,EAAGlnC,QAAQk5K,UAAW/mD,EAAQjrF,IACzEusI,GAAU9xK,EAAMulC,EAAGlnC,QAAQqzK,OAAQlhD,EAAQjrF,GAMlD,IAAIiyI,GAAU,IAAIznC,EAElB,SAAS0nC,GAAYlyI,EAAIvlC,EAAMe,EAAGyvH,GAChC,IAAIknD,EAAMnyI,EAAG4J,MAAMwoI,OACnB,GAAID,EAAK,CACP,GAAIzF,GAAcjyK,GAAS,MAAO,UAUlC,GATI,MAAMmkD,KAAKnkD,GACXulC,EAAG4J,MAAMwoI,OAAS,KAElBH,GAAQh4K,IAAI,IAAI,WACZ+lC,EAAG4J,MAAMwoI,QAAUD,IACrBnyI,EAAG4J,MAAMwoI,OAAS,KAClBpyI,EAAG9yB,QAAQtQ,MAAMmL,YAGnBsqK,GAAiBryI,EAAImyI,EAAM,IAAM13K,EAAMe,EAAGyvH,GAAW,OAAO,EAElE,OAAOonD,GAAiBryI,EAAIvlC,EAAMe,EAAGyvH,GAGvC,SAASonD,GAAiBryI,EAAIvlC,EAAMe,EAAGyvH,GACrC,IAAI1yH,EAASu5K,GAAmB9xI,EAAIvlC,EAAMwwH,GAY1C,MAVc,SAAV1yH,IACAynC,EAAG4J,MAAMwoI,OAAS33K,GACR,WAAVlC,GACAipJ,GAAYxhH,EAAI,aAAcA,EAAIvlC,EAAMe,GAE9B,WAAVjD,GAAiC,SAAVA,IACzBo3I,GAAiBn0I,GACjBg0J,GAAaxvH,MAGNznC,EAIX,SAAS+5K,GAAiBtyI,EAAIxkC,GAC5B,IAAIf,EAAOoyK,GAAQrxK,GAAG,GACtB,QAAKf,IAEDe,EAAEw9E,WAAah5C,EAAG4J,MAAMwoI,OAInBF,GAAYlyI,EAAI,SAAWvlC,EAAMe,GAAG,SAAU05B,GAAK,OAAOu8I,GAAgBzxI,EAAI9K,GAAG,OACjFg9I,GAAYlyI,EAAIvlC,EAAMe,GAAG,SAAU05B,GACjC,GAAgB,iBAALA,EAAgB,WAAW0pB,KAAK1pB,GAAKA,EAAEq9I,OAC9C,OAAOd,GAAgBzxI,EAAI9K,MAGjCg9I,GAAYlyI,EAAIvlC,EAAMe,GAAG,SAAU05B,GAAK,OAAOu8I,GAAgBzxI,EAAI9K,OAK9E,SAASs9I,GAAkBxyI,EAAIxkC,EAAGsqI,GAChC,OAAOosC,GAAYlyI,EAAI,IAAM8lG,EAAK,IAAKtqI,GAAG,SAAU05B,GAAK,OAAOu8I,GAAgBzxI,EAAI9K,GAAG,MAGzF,IAAIu9I,GAAiB,KACrB,SAASC,GAAUl3K,GACjB,IAAIwkC,EAAK1pC,KACT,KAAIkF,EAAExB,QAAUwB,EAAExB,QAAUgmC,EAAG9yB,QAAQtQ,MAAM+1K,aAC7C3yI,EAAGsvG,MAAMp/G,MAAQk5G,IACb2F,GAAe/uG,EAAIxkC,KAAvB,CAEIksI,GAAMC,EAAa,IAAmB,IAAbnsI,EAAEsnC,UAAiBtnC,EAAEmkE,aAAc,GAChE,IAAIhxC,EAAOnzB,EAAEsnC,QACb9C,EAAG9yB,QAAQjV,MAAgB,IAAR02B,GAAcnzB,EAAEw9E,SACnC,IAAI45F,EAAUN,GAAiBtyI,EAAIxkC,GAC/BusI,IACF0qC,GAAiBG,EAAUjkJ,EAAO,KAE7BikJ,GAAmB,IAARjkJ,GAAeqiH,MAAiBxI,EAAMhtI,EAAEgmB,QAAUhmB,EAAE+lB,UAChEye,EAAGooI,iBAAiB,GAAI,KAAM,QAEhC9gC,IAAUkB,IAAQoqC,GAAmB,IAARjkJ,GAAcnzB,EAAEw9E,WAAax9E,EAAE+lB,SAAW/iB,SAAS8oC,aAChF9oC,SAAS8oC,YAAY,OAGb,IAAR3Y,GAAe,2BAA2BiwB,KAAK5e,EAAG9yB,QAAQqjJ,QAAQl3J,YAClEw5K,GAAc7yI,IAGpB,SAAS6yI,GAAc7yI,GACrB,IAAIuwH,EAAUvwH,EAAG9yB,QAAQqjJ,QAGzB,SAAS9sE,EAAGjoF,GACO,IAAbA,EAAEsnC,SAAkBtnC,EAAE+4H,SACxBwU,EAAQwnB,EAAS,wBACjBxkJ,GAAIvN,SAAU,QAASilF,GACvB13E,GAAIvN,SAAU,YAAailF,IAN/BvoF,EAASq1J,EAAS,wBASlBtqJ,GAAGzH,SAAU,QAASilF,GACtBx9E,GAAGzH,SAAU,YAAailF,GAG5B,SAAS5qD,GAAQr9B,GACE,IAAbA,EAAEsnC,UAAiBxsC,KAAKye,IAAI6W,IAAI3zB,OAAQ,GAC5C82I,GAAez4I,KAAMkF,GAGvB,SAAS4lB,GAAW5lB,GAClB,IAAIwkC,EAAK1pC,KACT,KAAIkF,EAAExB,QAAUwB,EAAExB,QAAUgmC,EAAG9yB,QAAQtQ,MAAM+1K,YACzCvuB,GAAcpkH,EAAG9yB,QAAS1R,IAAMuzI,GAAe/uG,EAAIxkC,IAAMA,EAAE+lB,UAAY/lB,EAAE+4H,QAAUiU,GAAOhtI,EAAEgmB,SAAhG,CACA,IAAIshB,EAAUtnC,EAAEsnC,QAASgwI,EAAWt3K,EAAEs3K,SACtC,GAAI/qC,GAAUjlG,GAAW2vI,GAA6D,OAA5CA,GAAiB,UAAM9iC,GAAiBn0I,GAClF,IAAKusI,GAAYvsI,EAAEqnC,SAASrnC,EAAEqnC,MAAQ,MAAQyvI,GAAiBtyI,EAAIxkC,GAAnE,CACA,IAAIsqI,EAAK3jE,OAAOu0D,aAAyB,MAAZo8C,EAAmBhwI,EAAUgwI,GAEhD,MAANhtC,IACA0sC,GAAkBxyI,EAAIxkC,EAAGsqI,IAC7B9lG,EAAG9yB,QAAQtQ,MAAMwkB,WAAW5lB,MAG9B,IAaIu3K,GAAWC,GAbXC,GAAoB,IAEpBC,GAAY,SAASzoC,EAAMhjH,EAAKnc,GAClChV,KAAKm0I,KAAOA,EACZn0I,KAAKmxB,IAAMA,EACXnxB,KAAKgV,OAASA,GAShB,SAAS6nK,GAAY1rJ,EAAKnc,GACxB,IAAI8nK,GAAO,IAAIzoC,KACf,OAAIqoC,IAAmBA,GAAgBv7H,QAAQ27H,EAAK3rJ,EAAKnc,IACvDynK,GAAYC,GAAkB,KACvB,UACED,IAAaA,GAAUt7H,QAAQ27H,EAAK3rJ,EAAKnc,IAClD0nK,GAAkB,IAAIE,GAAUE,EAAK3rJ,EAAKnc,GAC1CynK,GAAY,KACL,WAEPA,GAAY,IAAIG,GAAUE,EAAK3rJ,EAAKnc,GACpC0nK,GAAkB,KACX,UASX,SAASK,GAAY73K,GACnB,IAAIwkC,EAAK1pC,KAAM4W,EAAU8yB,EAAG9yB,QAC5B,KAAI6hI,GAAe/uG,EAAIxkC,IAAM0R,EAAQquJ,aAAeruJ,EAAQtQ,MAAM02K,iBAIlE,GAHApmK,EAAQtQ,MAAMg1K,eACd1kK,EAAQjV,MAAQuD,EAAEw9E,SAEdorE,GAAcl3I,EAAS1R,GACpBosI,IAGH16H,EAAQ63I,SAASx5I,WAAY,EAC7BgP,YAAW,WAAc,OAAOrN,EAAQ63I,SAASx5I,WAAY,IAAS,WAI1E,IAAIgoK,GAAcvzI,EAAIxkC,GAAtB,CACA,IAAIisB,EAAM+jI,GAAaxrH,EAAIxkC,GAAI8P,EAASykI,GAASv0I,GAAIm4G,EAASlsF,EAAM0rJ,GAAY1rJ,EAAKnc,GAAU,SAC/FjV,OAAO65B,QAGO,GAAV5kB,GAAe00B,EAAG4J,MAAM4pI,eACxBxzI,EAAG4J,MAAM4pI,cAAch4K,GAEvBisB,GAAOgsJ,GAAmBzzI,EAAI10B,EAAQmc,EAAKksF,EAAQn4G,KAEzC,GAAV8P,EACEmc,EAAOisJ,GAAe1zI,EAAIvY,EAAKksF,EAAQn4G,GAClCs0I,GAASt0I,IAAM0R,EAAQ63I,UAAYpV,GAAiBn0I,GAC1C,GAAV8P,GACLmc,GAAO+5I,GAAgBxhI,EAAGjrB,IAAK0S,GACnClN,YAAW,WAAc,OAAOrN,EAAQtQ,MAAMszB,UAAY,KACvC,GAAV5kB,IACLu9H,EAAqB7oG,EAAG9yB,QAAQtQ,MAAM+2K,cAAcn4K,GACjDw0J,GAAehwH,MAI1B,SAASyzI,GAAmBzzI,EAAI10B,EAAQmc,EAAKksF,EAAQ/vG,GACnD,IAAInJ,EAAO,QAKX,MAJc,UAAVk5G,EAAsBl5G,EAAO,SAAWA,EACzB,UAAVk5G,IAAsBl5G,EAAO,SAAWA,GAG1Cy3K,GAAYlyI,EAAK2sI,GAFxBlyK,GAAkB,GAAV6Q,EAAc,OAAmB,GAAVA,EAAc,SAAW,SAAW7Q,EAEpBmJ,GAAQA,GAAO,SAAU8tK,GAEtE,GADoB,iBAATA,IAAqBA,EAAQnhJ,GAASmhJ,KAC5CA,EAAS,OAAO,EACrB,IAAIjmD,GAAO,EACX,IACMzrF,EAAG4qI,eAAgB5qI,EAAG4J,MAAM25H,eAAgB,GAChD93C,EAAOimD,EAAM1xI,EAAIvY,IAAQqjH,EACzB,QACA9qG,EAAG4J,MAAM25H,eAAgB,EAE3B,OAAO93C,KAIX,SAASmoD,GAAe5zI,EAAI2zE,EAAQ/vG,GAClC,IAAIi8D,EAAS7/B,EAAGguE,UAAU,kBACtB7xG,EAAQ0jE,EAASA,EAAO7/B,EAAI2zE,EAAQ/vG,GAAS,GACjD,GAAkB,MAAdzH,EAAMzB,KAAc,CACtB,IAAI8e,EAAOivH,EAAW7kI,EAAMo1E,UAAYp1E,EAAM4d,QAAU5d,EAAM2wH,OAC9Dp4H,EAAMzB,KAAO8e,EAAO,YAAwB,UAAVm6F,EAAqB,OAAmB,UAAVA,EAAqB,OAAS,OAKhG,OAHoB,MAAhBx3G,EAAM0yB,QAAkBmR,EAAGjrB,IAAI8Z,UAAU1yB,EAAM0yB,OAASmR,EAAGjrB,IAAI8Z,QAAUjrB,EAAMo1E,UAC/D,MAAhB78E,EAAMo+F,SAAkBp+F,EAAMo+F,OAASiuC,EAAM5kI,EAAM4d,QAAU5d,EAAM2d,SAC/C,MAApBplB,EAAM03K,aAAsB13K,EAAM03K,aAAerrC,EAAM5kI,EAAM2wH,OAAS3wH,EAAM2d,UACzEplB,EAGT,SAASu3K,GAAe1zI,EAAIvY,EAAKksF,EAAQ/vG,GACnC8jI,EAAMntH,WAAW5gB,EAAKm2J,GAAa9vH,GAAK,GACrCA,EAAGsvG,MAAMp/G,MAAQk5G,IAExB,IAEsB0qC,EAFlBh5G,EAAW84G,GAAe5zI,EAAI2zE,EAAQ/vG,GAEtCgoB,EAAMoU,EAAGjrB,IAAI6W,IACboU,EAAGlnC,QAAQ+2B,UAAYqgH,KAAgBlwG,EAAG4qI,cAChC,UAAVj3D,IAAuBmgE,EAAYloJ,EAAIia,SAASpe,KAAS,IACxDxW,IAAK6iK,EAAYloJ,EAAIuhI,OAAO2mB,IAAY1wE,OAAQ37E,GAAO,GAAKA,EAAIoiI,KAAO,KACvE54I,GAAI6iK,EAAU3wE,KAAM17E,GAAO,GAAKA,EAAIoiI,KAAO,GAC5CkqB,GAAoB/zI,EAAIp8B,EAAO6jB,EAAKqzC,GAEpCk5G,GAAiBh0I,EAAIp8B,EAAO6jB,EAAKqzC,GAKvC,SAASi5G,GAAoB/zI,EAAIp8B,EAAO6jB,EAAKqzC,GAC3C,IAAI5tD,EAAU8yB,EAAG9yB,QAASlB,GAAQ,EAC9BsE,EAAUq1H,GAAU3lG,GAAI,SAAUxkC,GAChCosI,IAAU16H,EAAQ63I,SAASx5I,WAAY,GAC3Cy0B,EAAG4J,MAAMsmH,cAAe,EACpBlwH,EAAG4J,MAAMqmH,oBACPjwH,EAAG9V,WAAc8V,EAAG4J,MAAMqmH,mBAAoB,EAC3CD,GAAehwH,IAExBj0B,GAAImB,EAAQhC,QAAQ8J,cAAe,UAAW1E,GAC9CvE,GAAImB,EAAQhC,QAAQ8J,cAAe,YAAai/J,GAChDloK,GAAImB,EAAQ63I,SAAU,YAAa10I,GACnCtE,GAAImB,EAAQ63I,SAAU,OAAQz0I,GACzBtE,IACH2jI,GAAiBn0I,GACZs/D,EAASy/B,QACVinE,GAAgBxhI,EAAGjrB,IAAK0S,EAAK,KAAM,KAAMqzC,EAASjsC,QAEjD+4G,IAAWI,GAAWN,GAAoB,GAAdC,EAC7BptH,YAAW,WAAarN,EAAQhC,QAAQ8J,cAAczU,KAAK2vB,MAAM,CAACgkJ,eAAe,IAAQhnK,EAAQtQ,MAAMszB,UAAW,IAElHhjB,EAAQtQ,MAAMszB,YAGlB+jJ,EAAY,SAASE,GACvBnoK,EAAQA,GAAS0V,KAAK+lD,IAAI7jE,EAAM2R,QAAU4+J,EAAG5+J,SAAWmM,KAAK+lD,IAAI7jE,EAAM4R,QAAU2+J,EAAG3+J,UAAY,IAE9FnF,EAAY,WAAc,OAAOrE,GAAQ,GAEzC47H,IAAU16H,EAAQ63I,SAASx5I,WAAY,GAC3Cy0B,EAAG4J,MAAMsmH,aAAe5/I,EACxBA,EAAQonI,MAAQ58E,EAAS+4G,WACzB5tK,GAAGiH,EAAQhC,QAAQ8J,cAAe,UAAW1E,GAC7CrK,GAAGiH,EAAQhC,QAAQ8J,cAAe,YAAai/J,GAC/ChuK,GAAGiH,EAAQ63I,SAAU,YAAa10I,GAClCpK,GAAGiH,EAAQ63I,SAAU,OAAQz0I,GAE7B0vB,EAAG4J,MAAMqmH,mBAAoB,EAC7B11I,YAAW,WAAc,OAAOrN,EAAQtQ,MAAMszB,UAAY,IAEtDhjB,EAAQ63I,SAASl1H,UAAY3iB,EAAQ63I,SAASl1H,WAGpD,SAASukJ,GAAap0I,EAAIvY,EAAK/sB,GAC7B,GAAY,QAARA,EAAkB,OAAO,IAAIkiK,GAAMn1I,EAAKA,GAC5C,GAAY,QAAR/sB,EAAkB,OAAOslC,EAAGq0I,WAAW5sJ,GAC3C,GAAY,QAAR/sB,EAAkB,OAAO,IAAIkiK,GAAMlpB,GAAIjsH,EAAIo+G,KAAM,GAAImO,GAAQh0G,EAAGjrB,IAAK2+H,GAAIjsH,EAAIo+G,KAAO,EAAG,KAC3F,IAAIttI,EAASmC,EAAKslC,EAAIvY,GACtB,OAAO,IAAIm1I,GAAMrkK,EAAO6qG,KAAM7qG,EAAO4qG,IAIvC,SAAS6wE,GAAiBh0I,EAAIp8B,EAAO4a,EAAOs8C,GACtC4sE,GAAMsoB,GAAehwH,GACzB,IAAI9yB,EAAU8yB,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IACnC46H,GAAiB/rI,GAEjB,IAAI0wK,EAAUC,EAAUC,EAAWz/J,EAAI6W,IAAKuhI,EAASqnB,EAASrnB,OAY9D,GAXIryF,EAASy/B,SAAWz/B,EAASjsC,QAC/B0lJ,EAAWx/J,EAAI6W,IAAIia,SAASrnB,GAExB81J,EADAC,GAAY,EACDpnB,EAAOonB,GAEP,IAAI3X,GAAMp+I,EAAOA,KAEhC81J,EAAWv/J,EAAI6W,IAAImhI,UACnBwnB,EAAWx/J,EAAI6W,IAAIwhI,WAGA,aAAjBtyF,EAASpgE,KACNogE,EAASy/B,SAAU+5E,EAAW,IAAI1X,GAAMp+I,EAAOA,IACpDA,EAAQgtI,GAAaxrH,EAAIp8B,GAAO,GAAM,GACtC2wK,GAAY,MACP,CACL,IAAI3yH,EAAQwyH,GAAap0I,EAAIxhB,EAAOs8C,EAASpgE,MAEzC45K,EADAx5G,EAASjsC,OACEyyI,GAAYgT,EAAU1yH,EAAMspG,OAAQtpG,EAAMzlC,KAAM2+C,EAASjsC,QAEzD+yB,EAGZkZ,EAASy/B,QAIU,GAAbg6E,GACTA,EAAWpnB,EAAO5vJ,OAClB6pI,GAAaryH,EAAK+nJ,GAAmB98H,EAAImtH,EAAOp4H,OAAO,CAACu/I,IAAYC,GACvD,CAAClpK,QAAQ,EAAOowB,OAAQ,YAC5B0xH,EAAO5vJ,OAAS,GAAK4vJ,EAAOonB,GAAUl2K,SAA4B,QAAjBy8D,EAASpgE,OAAmBogE,EAASjsC,QAC/Fu4G,GAAaryH,EAAK+nJ,GAAmB98H,EAAImtH,EAAOz2G,MAAM,EAAG69H,GAAUx/I,OAAOo4H,EAAOz2G,MAAM69H,EAAW,IAAK,GAC1F,CAAClpK,QAAQ,EAAOowB,OAAQ,WACrC+4I,EAAWz/J,EAAI6W,KAEf+1I,GAAoB5sJ,EAAKw/J,EAAUD,EAAUtpC,IAZ7CupC,EAAW,EACXntC,GAAaryH,EAAK,IAAIynJ,GAAU,CAAC8X,GAAW,GAAItpC,GAChDwpC,EAAWz/J,EAAI6W,KAajB,IAAI4P,EAAUhd,EACd,SAASi2J,EAAShtJ,GAChB,GAAyB,GAArBxW,GAAIuqB,EAAS/T,GAGjB,GAFA+T,EAAU/T,EAEW,aAAjBqzC,EAASpgE,KAAqB,CAKhC,IAJA,IAAIyyJ,EAAS,GAAI3mB,EAAUxmG,EAAGlnC,QAAQ0tI,QAClCkuC,EAAWxqC,EAAYwI,GAAQ39H,EAAKyJ,EAAMqnH,MAAM9lI,KAAMye,EAAMsnH,GAAIU,GAChEmuC,EAASzqC,EAAYwI,GAAQ39H,EAAK0S,EAAIo+G,MAAM9lI,KAAM0nB,EAAIq+G,GAAIU,GAC1DnwH,EAAOqL,KAAKE,IAAI8yJ,EAAUC,GAASr/I,EAAQ5T,KAAKC,IAAI+yJ,EAAUC,GACzD9uC,EAAOnkH,KAAKE,IAAIpD,EAAMqnH,KAAMp+G,EAAIo+G,MAAOzpG,EAAM1a,KAAKE,IAAIoe,EAAG+8G,WAAYr7H,KAAKC,IAAInD,EAAMqnH,KAAMp+G,EAAIo+G,OAClGA,GAAQzpG,EAAKypG,IAAQ,CACxB,IAAI9lI,EAAO2yI,GAAQ39H,EAAK8wH,GAAM9lI,KAAMgoB,EAAUmjH,EAAWnrI,EAAMsW,EAAMmwH,GACjEnwH,GAAQif,EACR63H,EAAOjpJ,KAAK,IAAI04J,GAAMlpB,GAAI7N,EAAM99G,GAAU2rH,GAAI7N,EAAM99G,KAC/ChoB,EAAKxC,OAASwqB,GACnBolI,EAAOjpJ,KAAK,IAAI04J,GAAMlpB,GAAI7N,EAAM99G,GAAU2rH,GAAI7N,EAAMqF,EAAWnrI,EAAMu1B,EAAOkxG,MAE7E2mB,EAAO5vJ,QAAU4vJ,EAAOjpJ,KAAK,IAAI04J,GAAMp+I,EAAOA,IACnD4oH,GAAaryH,EAAK+nJ,GAAmB98H,EAAIw0I,EAASrnB,OAAOz2G,MAAM,EAAG69H,GAAUx/I,OAAOo4H,GAASonB,GAC/E,CAAC94I,OAAQ,SAAUpwB,QAAQ,IACxC20B,EAAG/e,eAAewG,OACb,CACL,IAE8BtL,EAF1By4J,EAAWN,EACX1yH,EAAQwyH,GAAap0I,EAAIvY,EAAKqzC,EAASpgE,MACvCwwJ,EAAS0pB,EAAS1pB,OAClBj6I,GAAI2wC,EAAMspG,OAAQA,GAAU,GAC9B/uI,EAAOylC,EAAMzlC,KACb+uI,EAASpX,GAAO8gC,EAASxxE,OAAQxhD,EAAMspG,UAEvC/uI,EAAOylC,EAAMspG,OACbA,EAASrX,GAAO+gC,EAASzxE,KAAMvhD,EAAMzlC,OAEvC,IAAI04J,EAAWL,EAASrnB,OAAOz2G,MAAM,GACrCm+H,EAASN,GAAYO,GAAa90I,EAAI,IAAI48H,GAAM5oB,GAAQj/H,EAAKm2I,GAAS/uI,IACtEirH,GAAaryH,EAAK+nJ,GAAmB98H,EAAI60I,EAAUN,GAAWvpC,IAIlE,IAAI+pC,EAAa7nK,EAAQhC,QAAQuO,wBAK7BlF,EAAU,EAEd,SAASsa,EAAOrzB,GACd,IAAIw5K,IAAazgK,EACb0yH,EAAMukB,GAAaxrH,EAAIxkC,GAAG,EAAuB,aAAjBs/D,EAASpgE,MAC7C,GAAKusI,EACL,GAAyB,GAArBh2H,GAAIg2H,EAAKzrG,GAAe,CAC1BwE,EAAGsvG,MAAMp/G,MAAQk5G,IACjBqrC,EAASxtC,GACT,IAAIz0D,EAAUq+E,GAAa3jJ,EAAS6H,IAChCkyH,EAAIpB,MAAQrzD,EAAQ2wB,IAAM8jC,EAAIpB,KAAOrzD,EAAQ4wB,OAC7C7oF,WAAWorH,GAAU3lG,GAAI,WAAiBzrB,GAAWygK,GAAYnmJ,EAAOrzB,MAAS,SAChF,CACL,IAAIouJ,EAAUpuJ,EAAEga,QAAUu/J,EAAWz+J,KAAO,GAAK9a,EAAEga,QAAUu/J,EAAWp6G,OAAS,GAAK,EAClFivF,GAAWrvI,WAAWorH,GAAU3lG,GAAI,WAClCzrB,GAAWygK,IACf9nK,EAAQ63I,SAAS9nJ,WAAa2sJ,EAC9B/6H,EAAOrzB,OACL,KAIR,SAASiwH,EAAKjwH,GACZwkC,EAAG4J,MAAM4pI,eAAgB,EACzBj/J,EAAU2kH,EAAAA,EAIN19H,IACFm0I,GAAiBn0I,GACjB0R,EAAQtQ,MAAMszB,SAEhBnkB,GAAImB,EAAQhC,QAAQ8J,cAAe,YAAaqoD,GAChDtxD,GAAImB,EAAQhC,QAAQ8J,cAAe,UAAWyuE,GAC9C1uE,EAAIitH,QAAQy9B,cAAgB,KAG9B,IAAIpiG,EAAOsoE,GAAU3lG,GAAI,SAAUxkC,GACf,IAAdA,EAAEokF,SAAkBmwD,GAASv0I,GAC1BqzB,EAAOrzB,GADyBiwH,EAAKjwH,MAG1CioF,EAAKkiD,GAAU3lG,EAAIyrF,GACvBzrF,EAAG4J,MAAM4pI,cAAgB/vF,EACzBx9E,GAAGiH,EAAQhC,QAAQ8J,cAAe,YAAaqoD,GAC/Cp3D,GAAGiH,EAAQhC,QAAQ8J,cAAe,UAAWyuE,GAK/C,SAASqxF,GAAa90I,EAAI4hB,GACxB,IAAIspG,EAAStpG,EAAMspG,OACf/uI,EAAOylC,EAAMzlC,KACb84J,EAAaviC,GAAQ1yG,EAAGjrB,IAAKm2I,EAAOrlB,MACxC,GAAyB,GAArB50H,GAAIi6I,EAAQ/uI,IAAc+uI,EAAOve,QAAUxwH,EAAKwwH,OAAU,OAAO/qF,EACrE,IAAIt0C,EAAQohI,GAASumC,GACrB,IAAK3nK,EAAS,OAAOs0C,EACrB,IAAI77B,EAAQ2mH,GAAcp/H,EAAO49I,EAAOplB,GAAIolB,EAAOve,QAAS/xD,EAAOttE,EAAMyY,GACzE,GAAI60D,EAAKwoB,MAAQ8nD,EAAOplB,IAAMlrD,EAAKuoB,IAAM+nD,EAAOplB,GAAM,OAAOlkF,EAC7D,IAKIksG,EALAonB,EAAWnvJ,GAAU60D,EAAKwoB,MAAQ8nD,EAAOplB,KAAsB,GAAdlrD,EAAKmO,OAAc,EAAI,GAC5E,GAAgB,GAAZmsF,GAAiBA,GAAY5nK,EAAM/P,OAAU,OAAOqkD,EAKxD,GAAIzlC,EAAK0pH,MAAQqlB,EAAOrlB,KACtBioB,GAAY3xI,EAAK0pH,KAAOqlB,EAAOrlB,OAA6B,OAApB7lG,EAAGjrB,IAAIjG,UAAqB,GAAK,GAAK,MACzE,CACL,IAAIqmK,EAAYzoC,GAAcp/H,EAAO6O,EAAK2pH,GAAI3pH,EAAKwwH,QAC/Crb,EAAM6jD,EAAYpvJ,IAAU5J,EAAK2pH,GAAKolB,EAAOplB,KAAqB,GAAdlrD,EAAKmO,OAAc,EAAI,GAE3E+kE,EADAqnB,GAAaD,EAAW,GAAKC,GAAaD,EAC/B5jD,EAAM,EAENA,EAAM,EAGvB,IAAI8jD,EAAU9nK,EAAM4nK,GAAYpnB,GAAY,EAAI,IAC5C1qD,EAAO0qD,IAA8B,GAAjBsnB,EAAQrsF,OAC5B+8C,EAAK1iC,EAAOgyE,EAAQhyE,KAAOgyE,EAAQjyE,GAAIwpC,EAASvpC,EAAO,QAAU,SACrE,OAAO8nD,EAAOplB,IAAMA,GAAMolB,EAAOve,QAAUA,EAAS/qF,EAAQ,IAAIg7G,GAAM,IAAIlpB,GAAIwX,EAAOrlB,KAAMC,EAAI6G,GAASxwH,GAM1G,SAASk5J,GAAYr1I,EAAIxkC,EAAG5D,EAAMmiF,GAChC,IAAIu7F,EAAIC,EACR,GAAI/5K,EAAE0+E,QACJo7F,EAAK95K,EAAE0+E,QAAQ,GAAG3kE,QAClBggK,EAAK/5K,EAAE0+E,QAAQ,GAAG1kE,aAElB,IAAM8/J,EAAK95K,EAAE+Z,QAASggK,EAAK/5K,EAAEga,QAC7B,MAAMm2I,GAAO,OAAO,EAEtB,GAAI2pB,GAAM5zJ,KAAK2gD,MAAMriC,EAAG9yB,QAAQi3I,QAAQ1qI,wBAAwB6b,OAAU,OAAO,EAC7EykD,GAAW41D,GAAiBn0I,GAEhC,IAAI0R,EAAU8yB,EAAG9yB,QACbsoK,EAAUtoK,EAAQqjJ,QAAQ92I,wBAE9B,GAAI87J,EAAKC,EAAQ76G,SAAW60E,GAAWxvG,EAAIpoC,GAAS,OAAOs3I,GAAmB1zI,GAC9E+5K,GAAMC,EAAQl/J,IAAMpJ,EAAQ27I,WAE5B,IAAK,IAAInoJ,EAAI,EAAGA,EAAIs/B,EAAG9yB,QAAQ+1I,YAAY1lJ,SAAUmD,EAAG,CACtD,IAAIugE,EAAI/zD,EAAQi3I,QAAQz0G,WAAWhvC,GACnC,GAAIugE,GAAKA,EAAExnD,wBAAwB6b,OAASggJ,EAI1C,OADAxmC,GAAO9uG,EAAIpoC,EAAMooC,EAFNozG,GAAapzG,EAAGjrB,IAAKwgK,GACnBv1I,EAAG9yB,QAAQ+1I,YAAYviJ,GACFrH,UAAWmC,GACtC0zI,GAAmB1zI,IAKhC,SAAS+3K,GAAcvzI,EAAIxkC,GACzB,OAAO65K,GAAYr1I,EAAIxkC,EAAG,eAAe,GAQ3C,SAASm4K,GAAc3zI,EAAIxkC,GACrB4oJ,GAAcpkH,EAAG9yB,QAAS1R,IAAMi6K,GAAoBz1I,EAAIxkC,IACxDuzI,GAAe/uG,EAAIxkC,EAAG,gBACrBqtI,GAAqB7oG,EAAG9yB,QAAQtQ,MAAM+2K,cAAcn4K,GAG3D,SAASi6K,GAAoBz1I,EAAIxkC,GAC/B,QAAKg0I,GAAWxvG,EAAI,sBACbq1I,GAAYr1I,EAAIxkC,EAAG,qBAAqB,GAGjD,SAASk6K,GAAa11I,GACpBA,EAAG9yB,QAAQhC,QAAQ7R,UAAY2mC,EAAG9yB,QAAQhC,QAAQ7R,UAAUgJ,QAAQ,eAAgB,IAClF29B,EAAGlnC,QAAQ22B,MAAMptB,QAAQ,aAAc,UACzC8lJ,GAAYnoH,GAxYdkzI,GAAU96K,UAAUq/C,QAAU,SAAUgzF,EAAMhjH,EAAKnc,GACjD,OAAOhV,KAAKm0I,KAAOwoC,GAAoBxoC,GACf,GAAtBx5H,GAAIwW,EAAKnxB,KAAKmxB,MAAanc,GAAUhV,KAAKgV,QAyY9C,IAAIqqK,GAAO,CAACvmJ,SAAU,WAAW,MAAO,oBAEpCrpB,GAAW,GACX6vK,GAAiB,GAErB,SAASC,GAAcpnJ,GACrB,IAAImnJ,EAAiBnnJ,EAAWmnJ,eAEhC,SAAS/1G,EAAOplE,EAAMq7K,EAAO7qD,EAAQ8qD,GACnCtnJ,EAAW1oB,SAAStL,GAAQq7K,EACxB7qD,IAAU2qD,EAAen7K,GAC3Bs7K,EAAY,SAAU/1I,EAAItgC,EAAKk9H,GAAUA,GAAO+4C,IAAQ1qD,EAAOjrF,EAAItgC,EAAKk9H,IAAW3R,GAGvFx8F,EAAWunJ,aAAen2G,EAG1BpxC,EAAWknJ,KAAOA,GAIlB91G,EAAO,QAAS,IAAI,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAG3P,SAAS3wB,MAAS,GACrEmgE,EAAO,OAAQ,MAAM,SAAU7/B,EAAItgC,GACjCsgC,EAAGjrB,IAAI8oJ,WAAan+J,EACpBk+J,GAAS59H,MACR,GAEH6/B,EAAO,aAAc,EAAG+9F,IAAU,GAClC/9F,EAAO,kBAAkB,GACzBA,EAAO,eAAe,GACtBA,EAAO,UAAW,GAAG,SAAU7/B,GAC7B89H,GAAe99H,GACfmoH,GAAYnoH,GACZ6rH,GAAU7rH,MACT,GAEH6/B,EAAO,gBAAiB,MAAM,SAAU7/B,EAAItgC,GAE1C,GADAsgC,EAAGjrB,IAAIyyJ,QAAU9nK,EACZA,EAAL,CACA,IAAIu2K,EAAY,GAAI/iC,EAASlzG,EAAGjrB,IAAI1D,MACpC2uB,EAAGjrB,IAAIg+H,MAAK,SAAUlN,GACpB,IAAK,IAAIp+G,EAAM,IAAK,CAClB,IAAI4M,EAAQwxG,EAAK9lI,KAAKkL,QAAQvL,EAAK+nB,GACnC,IAAc,GAAV4M,EAAe,MACnB5M,EAAM4M,EAAQ30B,EAAInC,OAClB04K,EAAU/xK,KAAKwvI,GAAIR,EAAQ7+G,IAE7B6+G,OAEF,IAAK,IAAIxyI,EAAIu1K,EAAU14K,OAAS,EAAGmD,GAAK,EAAGA,IACvCklI,GAAa5lG,EAAGjrB,IAAKrV,EAAKu2K,EAAUv1K,GAAIgzI,GAAIuiC,EAAUv1K,GAAGmlI,KAAMowC,EAAUv1K,GAAGolI,GAAKpmI,EAAInC,aAE3FsiE,EAAO,eAAgB,8FAA8F,SAAU7/B,EAAItgC,EAAKk9H,GACtI58F,EAAG4J,MAAMy1G,aAAe,IAAIlqF,OAAOz1D,EAAI0rD,QAAU1rD,EAAIk/C,KAAK,MAAQ,GAAK,OAAQ,KAC3Eg+E,GAAO+4C,IAAQ31I,EAAG/P,aAExB4vC,EAAO,yBAA0Bm/E,IAA+B,SAAUh/G,GAAM,OAAOA,EAAG/P,aAAc,GACxG4vC,EAAO,iBAAiB,GACxBA,EAAO,aAAc0oE,EAAS,kBAAoB,YAAY,WAC5D,MAAM,IAAInkI,MAAM,8DACf,GACHy7D,EAAO,cAAc,GAAO,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAGk2I,gBAAgBC,WAAaz2K,KAAQ,GAChGmgE,EAAO,eAAe,GAAO,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAGk2I,gBAAgBE,YAAc12K,KAAQ,GAClGmgE,EAAO,kBAAkB,GAAO,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAGk2I,gBAAgBG,eAAiB32K,KAAQ,GACxGmgE,EAAO,mBAAoB6oE,GAC3B7oE,EAAO,yBAAyB,GAEhCA,EAAO,QAAS,WAAW,SAAU7/B,GACnC01I,GAAa11I,GACbm7H,GAAcn7H,MACb,GACH6/B,EAAO,SAAU,WAAW,SAAU7/B,EAAItgC,EAAKk9H,GAC7C,IAAIt+F,EAAOkuI,GAAU9sK,GACjBmU,EAAO+oH,GAAO+4C,IAAQnJ,GAAU5vC,GAChC/oH,GAAQA,EAAK+zG,QAAU/zG,EAAK+zG,OAAO5nF,EAAI1B,GACvCA,EAAKg4I,QAAUh4I,EAAKg4I,OAAOt2I,EAAInsB,GAAQ,SAE7CgsD,EAAO,YAAa,MACpBA,EAAO,iBAAkB,MAEzBA,EAAO,gBAAgB,EAAO02G,IAAiB,GAC/C12G,EAAO,UAAW,IAAI,SAAU7/B,EAAItgC,GAClCsgC,EAAG9yB,QAAQ+1I,YAAc6X,GAAWp7J,EAAKsgC,EAAGlnC,QAAQ62B,aACpDwrI,GAAcn7H,MACb,GACH6/B,EAAO,eAAe,GAAM,SAAU7/B,EAAItgC,GACxCsgC,EAAG9yB,QAAQi3I,QAAQl3I,MAAMoJ,KAAO3W,EAAMyrJ,GAAqBnrH,EAAG9yB,SAAW,KAAO,IAChF8yB,EAAG/P,aACF,GACH4vC,EAAO,8BAA8B,GAAO,SAAU7/B,GAAM,OAAOm1H,GAAiBn1H,MAAQ,GAC5F6/B,EAAO,iBAAkB,UAAU,SAAU7/B,GAC3C81H,GAAe91H,GACfm1H,GAAiBn1H,GACjBA,EAAG9yB,QAAQqmJ,WAAWJ,aAAanzH,EAAGjrB,IAAI9X,WAC1C+iC,EAAG9yB,QAAQqmJ,WAAWzB,cAAc9xH,EAAGjrB,IAAI2E,eAC1C,GACHmmD,EAAO,eAAe,GAAO,SAAU7/B,EAAItgC,GACzCsgC,EAAG9yB,QAAQ+1I,YAAc6X,GAAW96H,EAAGlnC,QAAQqrJ,QAASzkJ,GACxDy7J,GAAcn7H,MACb,GACH6/B,EAAO,kBAAmB,EAAGs7F,IAAe,GAC5Ct7F,EAAO,uBAAuB,SAAU22G,GAAW,OAAOA,IAAYrb,IAAe,GACrFt7F,EAAO,2BAA2B,EAAO87B,IAAiB,GAE1D97B,EAAO,+BAA+B,GACtCA,EAAO,mBAAmB,GAC1BA,EAAO,0BAA0B,GACjCA,EAAO,sBAAsB,GAE7BA,EAAO,YAAY,GAAO,SAAU7/B,EAAItgC,GAC3B,YAAPA,IACFmwJ,GAAO7vH,GACPA,EAAG9yB,QAAQtQ,MAAMuqC,QAEnBnH,EAAG9yB,QAAQtQ,MAAM65K,gBAAgB/2K,MAGnCmgE,EAAO,oBAAqB,MAAM,SAAU7/B,EAAItgC,GAC9CA,EAAe,KAARA,EAAc,KAAOA,EAC5BsgC,EAAG9yB,QAAQtQ,MAAM85K,yBAAyBh3K,MAG5CmgE,EAAO,gBAAgB,GAAO,SAAU7/B,EAAItgC,GAAWA,GAAOsgC,EAAG9yB,QAAQtQ,MAAMmL,WAAa,GAC5F83D,EAAO,YAAY,EAAM82G,IACzB92G,EAAO,qBAAsB,MAE7BA,EAAO,kBAAmB,KAC1BA,EAAO,qBAAsB,GAC7BA,EAAO,eAAgB,EAAG87B,IAAiB,GAC3C97B,EAAO,6BAA6B,EAAM87B,IAAiB,GAC3D97B,EAAO,WAAY,KACnBA,EAAO,YAAa,KACpBA,EAAO,gBAAgB,EAAMi+F,IAAgB,GAC7Cj+F,EAAO,gBAAgB,EAAOi+F,IAAgB,GAC9Cj+F,EAAO,eAAgB,KACvBA,EAAO,YAAa,KAAK,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAGjrB,IAAIitH,QAAQm9B,UAAYz/J,KAChFmgE,EAAO,oBAAqB,MAC5BA,EAAO,iBAAkB,IAAI,SAAU7/B,GAAM,OAAOA,EAAG/P,aAAc,GACrE4vC,EAAO,qBAAsB,IAAOi+F,IAAgB,GACpDj+F,EAAO,uBAAuB,GAAM,SAAU7/B,EAAItgC,GAC3CA,GAAOsgC,EAAG9yB,QAAQtQ,MAAMg6K,mBAG/B/2G,EAAO,WAAY,MAAM,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAG9yB,QAAQtQ,MAAM+1K,WAAW5uC,SAAWrkI,GAAO,MACnGmgE,EAAO,YAAa,MACpBA,EAAO,YAAa,OAAO,SAAU7/B,EAAItgC,GAAO,OAAOsgC,EAAGjrB,IAAIy1J,aAAa9qK,MAAS,GACpFmgE,EAAO,UAAW,MAGpB,SAAS82G,GAAgB32I,EAAI7jC,EAAOygI,GAElC,IAAKzgI,KADOygI,GAAOA,GAAO+4C,IACJ,CACpB,IAAIkB,EAAQ72I,EAAG9yB,QAAQ4pK,cACnB5gG,EAAS/5E,EAAQ8J,GAAK8F,GAC1BmqE,EAAOl2C,EAAG9yB,QAAQ63I,SAAU,YAAa8xB,EAAMr4J,OAC/C03D,EAAOl2C,EAAG9yB,QAAQ63I,SAAU,YAAa8xB,EAAMxzF,OAC/CnN,EAAOl2C,EAAG9yB,QAAQ63I,SAAU,WAAY8xB,EAAMnhK,MAC9CwgE,EAAOl2C,EAAG9yB,QAAQ63I,SAAU,YAAa8xB,EAAME,OAC/C7gG,EAAOl2C,EAAG9yB,QAAQ63I,SAAU,OAAQ8xB,EAAMl3C,OAI9C,SAAS42C,GAAgBv2I,GACnBA,EAAGlnC,QAAQg3B,cACb50B,EAAS8kC,EAAG9yB,QAAQhC,QAAS,mBAC7B80B,EAAG9yB,QAAQm3I,MAAMp3I,MAAMonJ,SAAW,GAClCr0H,EAAG9yB,QAAQ8gJ,WAAa,OAExBjlB,EAAQ/oG,EAAG9yB,QAAQhC,QAAS,mBAC5BqyI,GAAYv9G,IAEdsrH,GAAoBtrH,GACpB6rH,GAAU7rH,GACVmoH,GAAYnoH,GACZzlB,YAAW,WAAc,OAAO46I,GAAiBn1H,KAAQ,KAM3D,SAASvR,GAAWy4H,EAAOpuJ,GACzB,IAAIgtK,EAASxvK,KAEb,KAAMA,gBAAgBm4B,IAAe,OAAO,IAAIA,GAAWy4H,EAAOpuJ,GAElExC,KAAKwC,QAAUA,EAAUA,EAAUkxI,EAAQlxI,GAAW,GAEtDkxI,EAAQjkI,GAAUjN,GAAS,GAE3B,IAAIic,EAAMjc,EAAQqD,MACA,iBAAP4Y,EAAmBA,EAAM,IAAIwyJ,GAAIxyJ,EAAKjc,EAAQi3B,KAAM,KAAMj3B,EAAQ4uK,cAAe5uK,EAAQgW,WAC3FhW,EAAQi3B,OAAQhb,EAAI8oJ,WAAa/kK,EAAQi3B,MAClDz5B,KAAKye,IAAMA,EAEX,IAAInY,EAAQ,IAAI6xB,GAAWuoJ,YAAYl+K,EAAQm+K,YAAY3gL,MACvD4W,EAAU5W,KAAK4W,QAAU,IAAIkuJ,GAAQlU,EAAOnyI,EAAKnY,EAAO9D,GA2C5D,IAAK,IAAIqqB,KA1CTjW,EAAQhC,QAAQujB,WAAan4B,KAC7Bo/K,GAAap/K,MACTwC,EAAQg3B,eACRx5B,KAAK4W,QAAQhC,QAAQ7R,WAAa,oBACtCy8J,GAAex/J,MAEfA,KAAKszC,MAAQ,CACXmoI,QAAS,GACT97B,SAAU,GACVJ,QAAS,EACT5L,WAAW,EACXgmB,mBAAmB,EACnB7lI,SAAS,EACTm5I,eAAe,EACf2T,eAAgB,EAAGC,aAAc,EACjC3D,eAAe,EACftjB,cAAc,EACdkI,UAAW,IAAI5tB,EACf4nC,OAAQ,KACR/yB,aAAc,MAGZvmJ,EAAQs+K,YAAc7uC,GAAUr7H,EAAQtQ,MAAMszB,QAI9Cw3G,GAAMC,EAAa,IAAMptH,YAAW,WAAc,OAAOurJ,EAAO54J,QAAQtQ,MAAMmL,OAAM,KAAU,IAElGsvK,GAAsB/gL,MACtBu1K,KAEA5V,GAAe3/J,MACfA,KAAKg5I,MAAM4W,aAAc,EACzB6Y,GAAUzoK,KAAMye,GAEXjc,EAAQs+K,YAAc7uC,GAAWjyI,KAAK4zB,WACvC3P,YAAW,WACPurJ,EAAO57I,aAAe47I,EAAOl8H,MAAMxf,SAAW2lI,GAAQ+V,KACzD,IAEDjW,GAAOv5J,MAEKs/K,GAAsBA,GAAe39I,eAAe9U,IAChEyyJ,GAAezyJ,GAAK7sB,KAAMwC,EAAQqqB,GAAMwyJ,IAC5Clc,GAA2BnjK,MACvBwC,EAAQw+K,YAAcx+K,EAAQw+K,WAAWhhL,MAC7C,IAAK,IAAIoK,EAAI,EAAGA,EAAI62K,GAAUh6K,SAAUmD,EAAK62K,GAAU72K,GAAGpK,MAC1DkgK,GAAalgK,MAGTsxI,GAAU9uI,EAAQg3B,cACiC,sBAAnDpM,iBAAiBxW,EAAQqjJ,SAASinB,gBAClCtqK,EAAQqjJ,QAAQtjJ,MAAMuqK,cAAgB,QAS5C,SAASH,GAAsBr3I,GAC7B,IAAIa,EAAIb,EAAG9yB,QACXjH,GAAG46B,EAAEkkH,SAAU,YAAapf,GAAU3lG,EAAIqzI,KAGtCptK,GAAG46B,EAAEkkH,SAAU,WADfrd,GAAMC,EAAa,GACQhC,GAAU3lG,GAAI,SAAUxkC,GACnD,IAAIuzI,GAAe/uG,EAAIxkC,GAAvB,CACA,IAAIisB,EAAM+jI,GAAaxrH,EAAIxkC,GAC3B,GAAKisB,IAAO8rJ,GAAcvzI,EAAIxkC,KAAM4oJ,GAAcpkH,EAAG9yB,QAAS1R,GAA9D,CACAm0I,GAAiBn0I,GACjB,IAAIi8K,EAAOz3I,EAAGq0I,WAAW5sJ,GACzB+5I,GAAgBxhI,EAAGjrB,IAAK0iK,EAAKvsB,OAAQusB,EAAKt7J,WAGf,SAAU3gB,GAAK,OAAOuzI,GAAe/uG,EAAIxkC,IAAMm0I,GAAiBn0I,KAI/FyK,GAAG46B,EAAEkkH,SAAU,eAAe,SAAUvpJ,GAAK,OAAOm4K,GAAc3zI,EAAIxkC,MACtEyK,GAAG46B,EAAEjkC,MAAM+1K,WAAY,eAAe,SAAUn3K,GACzCqlC,EAAEkkH,SAASl/G,SAASrqC,EAAExB,SAAW25K,GAAc3zI,EAAIxkC,MAI1D,IAAIk8K,EAAeC,EAAY,CAACv7I,IAAK,GACrC,SAASw7I,IACH/2I,EAAE06H,cACJmc,EAAgBn9J,YAAW,WAAc,OAAOsmB,EAAE06H,YAAc,OAAS,MACzEoc,EAAY92I,EAAE06H,aACJn/H,KAAO,IAAIuuG,MAGzB,SAASktC,EAAsBr8K,GAC7B,GAAwB,GAApBA,EAAE0+E,QAAQ38E,OAAe,OAAO,EACpC,IAAIu6K,EAAQt8K,EAAE0+E,QAAQ,GACtB,OAAO49F,EAAMC,SAAW,GAAKD,EAAME,SAAW,EAEhD,SAASC,EAAQH,EAAOruB,GACtB,GAAkB,MAAdA,EAAMpzI,KAAgB,OAAO,EACjC,IAAIslJ,EAAKlS,EAAMpzI,KAAOyhK,EAAMzhK,KAAMwlJ,EAAKpS,EAAMnzI,IAAMwhK,EAAMxhK,IACzD,OAAOqlJ,EAAKA,EAAKE,EAAKA,EAAK,IAE7B51J,GAAG46B,EAAEkkH,SAAU,cAAc,SAAUvpJ,GACrC,IAAKuzI,GAAe/uG,EAAIxkC,KAAOq8K,EAAsBr8K,KAAO+3K,GAAcvzI,EAAIxkC,GAAI,CAChFqlC,EAAEjkC,MAAMg1K,eACRxvJ,aAAas1J,GACb,IAAItE,GAAO,IAAIzoC,KACf9pG,EAAE06H,YAAc,CAAC/8I,MAAO40J,EAAKpnK,OAAO,EACnB6H,KAAMu/J,EAAMuE,EAAUv7I,KAAO,IAAMu7I,EAAY,MACxC,GAApBn8K,EAAE0+E,QAAQ38E,SACZsjC,EAAE06H,YAAYllJ,KAAO7a,EAAE0+E,QAAQ,GAAGC,MAClCt5C,EAAE06H,YAAYjlJ,IAAM9a,EAAE0+E,QAAQ,GAAGE,WAIvCn0E,GAAG46B,EAAEkkH,SAAU,aAAa,WACtBlkH,EAAE06H,cAAe16H,EAAE06H,YAAYvvJ,OAAQ,MAE7C/F,GAAG46B,EAAEkkH,SAAU,YAAY,SAAUvpJ,GACnC,IAAIs8K,EAAQj3I,EAAE06H,YACd,GAAIuc,IAAU1zB,GAAcvjH,EAAGrlC,IAAoB,MAAds8K,EAAMzhK,OACtCyhK,EAAM9rK,OAAS,IAAI2+H,KAAOmtC,EAAMt5J,MAAQ,IAAK,CAChD,IAAgDojC,EAA5Cn6B,EAAMuY,EAAG8pH,WAAWjpH,EAAE06H,YAAa,QAEnC35G,GADCk2H,EAAMjkK,MAAQokK,EAAQH,EAAOA,EAAMjkK,MAC5B,IAAI+oJ,GAAMn1I,EAAKA,IACjBqwJ,EAAMjkK,KAAKA,MAAQokK,EAAQH,EAAOA,EAAMjkK,KAAKA,MAC3CmsB,EAAGq0I,WAAW5sJ,GAEd,IAAIm1I,GAAMlpB,GAAIjsH,EAAIo+G,KAAM,GAAImO,GAAQh0G,EAAGjrB,IAAK2+H,GAAIjsH,EAAIo+G,KAAO,EAAG,KAC1E7lG,EAAGonG,aAAaxlF,EAAMspG,OAAQtpG,EAAMzlC,MACpC6jB,EAAG9P,QACHy/G,GAAiBn0I,GAEnBo8K,OAEF3xK,GAAG46B,EAAEkkH,SAAU,cAAe6yB,GAI9B3xK,GAAG46B,EAAEkkH,SAAU,UAAU,WACnBlkH,EAAEkkH,SAASzsE,eACbu5E,GAAgB7xH,EAAIa,EAAEkkH,SAAS9nJ,WAC/B60J,GAAc9xH,EAAIa,EAAEkkH,SAASrrI,YAAY,GACzCo1H,GAAO9uG,EAAI,SAAUA,OAKzB/5B,GAAG46B,EAAEkkH,SAAU,cAAc,SAAUvpJ,GAAK,OAAO0gK,GAAcl8H,EAAIxkC,MACrEyK,GAAG46B,EAAEkkH,SAAU,kBAAkB,SAAUvpJ,GAAK,OAAO0gK,GAAcl8H,EAAIxkC,MAGzEyK,GAAG46B,EAAE31B,QAAS,UAAU,WAAc,OAAO21B,EAAE31B,QAAQjO,UAAY4jC,EAAE31B,QAAQwO,WAAa,KAE1FmnB,EAAEi2I,cAAgB,CAChBzzF,MAAO,SAAU7nF,GAASuzI,GAAe/uG,EAAIxkC,IAAMq0I,GAAOr0I,IAC1Dka,KAAM,SAAUla,GAASuzI,GAAe/uG,EAAIxkC,KAAM8G,GAAW09B,EAAIxkC,GAAIq0I,GAAOr0I,KAC5EgjB,MAAO,SAAUhjB,GAAK,OAAO4vK,GAAYprI,EAAIxkC,IAC7CmkI,KAAMgG,GAAU3lG,EAAIx9B,IACpBu0K,MAAO,SAAUv7K,GAASuzI,GAAe/uG,EAAIxkC,IAAMmvK,GAAgB3qI,KAGrE,IAAI4tE,EAAM/sE,EAAEjkC,MAAM+1K,WAClB1sK,GAAG2nG,EAAK,SAAS,SAAUpyG,GAAK,OAAOq9B,GAAQqiC,KAAKl7B,EAAIxkC,MACxDyK,GAAG2nG,EAAK,UAAW+3B,GAAU3lG,EAAI0yI,KACjCzsK,GAAG2nG,EAAK,WAAY+3B,GAAU3lG,EAAI5e,KAClCnb,GAAG2nG,EAAK,SAAS,SAAUpyG,GAAK,OAAOu0J,GAAQ/vH,EAAIxkC,MACnDyK,GAAG2nG,EAAK,QAAQ,SAAUpyG,GAAK,OAAOq0J,GAAO7vH,EAAIxkC,MAhHnDizB,GAAW1oB,SAAWA,GAEtB0oB,GAAWmnJ,eAAiBA,GAiH5B,IAAI2B,GAAY,GAQhB,SAASlxC,GAAWrmG,EAAI+6C,EAAGm9F,EAAKC,GAC9B,IAAkBvuI,EAAd70B,EAAMirB,EAAGjrB,IACF,MAAPmjK,IAAeA,EAAM,OACd,SAAPA,IAGGnjK,EAAIgb,KAAKqoJ,OACPxuI,EAAQ4sG,GAAiBx2G,EAAI+6C,GAAGnxC,MADfsuI,EAAM,QAIhC,IAAI1xC,EAAUxmG,EAAGlnC,QAAQ0tI,QACrBX,EAAO6M,GAAQ39H,EAAKgmE,GAAIs9F,EAAWnuC,EAAYrE,EAAK9lI,KAAM,KAAMymI,GAChEX,EAAK8Q,aAAc9Q,EAAK8Q,WAAa,MACzC,IAAiD9B,EAA7CyjC,EAAiBzyC,EAAK9lI,KAAK8D,MAAM,QAAQ,GAC7C,GAAKs0K,GAAe,KAAKv5H,KAAKinF,EAAK9lI,OAG5B,GAAW,SAAPm4K,KACTrjC,EAAc9/H,EAAIgb,KAAKqoJ,OAAOxuI,EAAOi8F,EAAK9lI,KAAK22C,MAAM4hI,EAAe/6K,QAASsoI,EAAK9lI,QAC/D+qI,GAAQ+J,EAAc,KAAK,CAC5C,IAAKsjC,EAAc,OACnBD,EAAM,aANRrjC,EAAc,EACdqjC,EAAM,MAQG,QAAPA,EACmBrjC,EAAjB95D,EAAIhmE,EAAI1D,MAAuB64H,EAAYwI,GAAQ39H,EAAKgmE,EAAE,GAAGh7E,KAAM,KAAMymI,GACxD,EACL,OAAP0xC,EACTrjC,EAAcwjC,EAAWr4I,EAAGlnC,QAAQy/K,WACpB,YAAPL,EACTrjC,EAAcwjC,EAAWr4I,EAAGlnC,QAAQy/K,WACb,iBAAPL,IAChBrjC,EAAcwjC,EAAWH,GAE3BrjC,EAAcnzH,KAAKC,IAAI,EAAGkzH,GAE1B,IAAI2jC,EAAe,GAAI/wJ,EAAM,EAC7B,GAAIuY,EAAGlnC,QAAQ2/K,eACX,IAAK,IAAI/3K,EAAIghB,KAAK2gD,MAAMwyE,EAAcrO,GAAU9lI,IAAKA,EAAI+mB,GAAO++G,EAASgyC,GAAgB,KAG7F,GAFI/wJ,EAAMotH,IAAe2jC,GAAgBjtC,EAASsJ,EAAcptH,IAE5D+wJ,GAAgBF,EAGlB,OAFA1yC,GAAa7wH,EAAKyjK,EAAc9kC,GAAI34D,EAAG,GAAI24D,GAAI34D,EAAGu9F,EAAe/6K,QAAS,UAC1EsoI,EAAK8Q,WAAa,MACX,EAIP,IAAK,IAAIpJ,EAAM,EAAGA,EAAMx4H,EAAI6W,IAAIuhI,OAAO5vJ,OAAQgwI,IAAO,CACpD,IAAI3rF,EAAQ7sC,EAAI6W,IAAIuhI,OAAO5f,GAC3B,GAAI3rF,EAAMzlC,KAAK0pH,MAAQ9qD,GAAKn5B,EAAMzlC,KAAK2pH,GAAKwyC,EAAe/6K,OAAQ,CACjE,IAAIm7K,EAAQhlC,GAAI34D,EAAGu9F,EAAe/6K,QAClCokK,GAAoB5sJ,EAAKw4H,EAAK,IAAIqvB,GAAM8b,EAAOA,IAC/C,QA5DRjqJ,GAAWkqJ,eAAiB,SAAUjwK,GAAK,OAAO6uK,GAAUrzK,KAAKwE,IAqEjE,IAAIkwK,GAAa,KAEjB,SAASC,GAAcC,GACrBF,GAAaE,EAGf,SAASC,GAAe/4I,EAAIo9E,EAAU47D,EAASptJ,EAAK6P,GAClD,IAAI1mB,EAAMirB,EAAGjrB,IACbirB,EAAG9yB,QAAQjV,OAAQ,EACd2zB,IAAOA,EAAM7W,EAAI6W,KAEtB,IAAIqtJ,GAAU,IAAItuC,KAAO,IACrBuuC,EAAkB,SAAVz9I,GAAqBuE,EAAG4J,MAAMstI,cAAgB+B,EACtDE,EAAYzoC,GAAetzB,GAAWg8D,EAAa,KAEvD,GAAIF,GAASttJ,EAAIuhI,OAAO5vJ,OAAS,EAC/B,GAAIq7K,IAAcA,GAAW74K,KAAKsY,KAAK,OAAS+kG,GAC9C,GAAIxxF,EAAIuhI,OAAO5vJ,OAASq7K,GAAW74K,KAAKxC,QAAU,EAAG,CACnD67K,EAAa,GACb,IAAK,IAAI14K,EAAI,EAAGA,EAAIk4K,GAAW74K,KAAKxC,OAAQmD,IACxC04K,EAAWl1K,KAAK6Q,EAAIyvJ,WAAWoU,GAAW74K,KAAKW,WAE5Cy4K,EAAU57K,QAAUquB,EAAIuhI,OAAO5vJ,QAAUyiC,EAAGlnC,QAAQugL,yBAC7DD,EAAapoK,EAAImoK,GAAW,SAAUxhI,GAAK,MAAO,CAACA,OAMvD,IAFA,IAAIu+G,EAAcl2H,EAAGsvG,MAAM4mB,YAElB3oB,EAAM3hH,EAAIuhI,OAAO5vJ,OAAS,EAAGgwI,GAAO,EAAGA,IAAO,CACrD,IAAI3rF,EAAQh2B,EAAIuhI,OAAO5f,GACnBnqC,EAAOxhD,EAAMwhD,OAAQD,EAAKvhD,EAAMuhD,KAChCvhD,EAAMvjD,UACJ26K,GAAWA,EAAU,EACrB51E,EAAOswC,GAAItwC,EAAKyiC,KAAMziC,EAAK0iC,GAAKkzC,GAC3Bh5I,EAAG4J,MAAMqgG,YAAcivC,EAC5B/1E,EAAKuwC,GAAIvwC,EAAG0iC,KAAMnkH,KAAKE,IAAI8wH,GAAQ39H,EAAKouF,EAAG0iC,MAAM9lI,KAAKxC,OAAQ4lG,EAAG2iC,GAAK0F,EAAI2tC,GAAW57K,SAChF27K,GAASN,IAAcA,GAAWU,UAAYV,GAAW74K,KAAKsY,KAAK,OAAS8gK,EAAU9gK,KAAK,QAChG+qF,EAAOD,EAAKuwC,GAAItwC,EAAKyiC,KAAM,KAEjC,IAAI0zC,EAAc,CAACn2E,KAAMA,EAAMD,GAAIA,EAAIpjG,KAAMq5K,EAAaA,EAAW7rC,EAAM6rC,EAAW77K,QAAU47K,EAC7E19I,OAAQA,IAAWy9I,EAAQ,QAAUl5I,EAAG4J,MAAMutI,YAAc8B,EAAS,MAAQ,WAChG5V,GAAWrjI,EAAGjrB,IAAKwkK,GACnB/3B,GAAYxhH,EAAI,YAAaA,EAAIu5I,GAE/Bn8D,IAAa87D,GACbM,GAAgBx5I,EAAIo9E,GAExBu1C,GAAoB3yH,GAChBA,EAAGsvG,MAAM4mB,YAAc,IAAKl2H,EAAGsvG,MAAM4mB,YAAcA,GACvDl2H,EAAGsvG,MAAM6mB,QAAS,EAClBn2H,EAAG4J,MAAMstI,cAAgBl3I,EAAG4J,MAAMutI,aAAe,EAGnD,SAASsC,GAAYj+K,EAAGwkC,GACtB,IAAI05I,EAASl+K,EAAE28F,eAAiB38F,EAAE28F,cAAcrhF,QAAQ,QACxD,GAAI4iK,EAIF,OAHAl+K,EAAEmB,iBACGqjC,EAAG4qI,cAAiB5qI,EAAGlnC,QAAQ6gL,cAChC1hB,GAAQj4H,GAAI,WAAc,OAAO+4I,GAAe/4I,EAAI05I,EAAQ,EAAG,KAAM,aAClE,EAIX,SAASF,GAAgBx5I,EAAIo9E,GAE3B,GAAKp9E,EAAGlnC,QAAQ8gL,eAAkB55I,EAAGlnC,QAAQ+gL,YAG7C,IAFA,IAAIjuJ,EAAMoU,EAAGjrB,IAAI6W,IAERlrB,EAAIkrB,EAAIuhI,OAAO5vJ,OAAS,EAAGmD,GAAK,EAAGA,IAAK,CAC/C,IAAIkhD,EAAQh2B,EAAIuhI,OAAOzsJ,GACvB,KAAIkhD,EAAMzlC,KAAK2pH,GAAK,KAAQplI,GAAKkrB,EAAIuhI,OAAOzsJ,EAAI,GAAGyb,KAAK0pH,MAAQjkF,EAAMzlC,KAAK0pH,MAA3E,CACA,IAAI91G,EAAOiQ,EAAG85I,UAAUl4H,EAAMzlC,MAC1Bs8H,GAAW,EACf,GAAI1oH,EAAK6pJ,eACP,IAAK,IAAI9hI,EAAI,EAAGA,EAAI/nB,EAAK6pJ,cAAcr8K,OAAQu6C,IAC3C,GAAIslE,EAASnyG,QAAQ8kB,EAAK6pJ,cAAc3zH,OAAOnO,KAAO,EAAG,CACzD2gG,EAAWpS,GAAWrmG,EAAI4hB,EAAMzlC,KAAK0pH,KAAM,SAC3C,YAEK91G,EAAKgqJ,eACVhqJ,EAAKgqJ,cAAcn7H,KAAK8zF,GAAQ1yG,EAAGjrB,IAAK6sC,EAAMzlC,KAAK0pH,MAAM9lI,KAAK22C,MAAM,EAAGkL,EAAMzlC,KAAK2pH,OAClF2S,EAAWpS,GAAWrmG,EAAI4hB,EAAMzlC,KAAK0pH,KAAM,UAE7C4S,GAAY+I,GAAYxhH,EAAI,gBAAiBA,EAAI4hB,EAAMzlC,KAAK0pH,QAIpE,SAASm0C,GAAeh6I,GAEtB,IADA,IAAIjgC,EAAO,GAAIotJ,EAAS,GACfzsJ,EAAI,EAAGA,EAAIs/B,EAAGjrB,IAAI6W,IAAIuhI,OAAO5vJ,OAAQmD,IAAK,CACjD,IAAImlI,EAAO7lG,EAAGjrB,IAAI6W,IAAIuhI,OAAOzsJ,GAAGyb,KAAK0pH,KACjCo0C,EAAY,CAAC/uB,OAAQxX,GAAI7N,EAAM,GAAI1pH,KAAMu3H,GAAI7N,EAAO,EAAG,IAC3DsnB,EAAOjpJ,KAAK+1K,GACZl6K,EAAKmE,KAAK87B,EAAGimG,SAASg0C,EAAU/uB,OAAQ+uB,EAAU99J,OAEpD,MAAO,CAACpc,KAAMA,EAAMotJ,OAAQA,GAG9B,SAAS+sB,GAAoBC,EAAOhE,EAAYC,EAAaC,GAC3D8D,EAAM7tK,aAAa,cAAe8pK,EAAc,GAAK,OACrD+D,EAAM7tK,aAAa,iBAAkB+pK,EAAiB,GAAK,OAC3D8D,EAAM7tK,aAAa,eAAgB6pK,GAGrC,SAASiE,KACP,IAAItpC,EAAK7H,EAAI,WAAY,KAAM,KAAM,wFACjCkH,EAAMlH,EAAI,MAAO,CAAC6H,GAAK,KAAM,kEAUjC,OALIlJ,EAAUkJ,EAAG7jI,MAAMtU,MAAQ,SACxBm4I,EAAGxkI,aAAa,OAAQ,OAE3B87H,IAAO0I,EAAG7jI,MAAM4J,OAAS,mBAC7BqjK,GAAoBppC,GACbX,EAWT,SAASkqC,GAAiB5rJ,GACxB,IAAImnJ,EAAiBnnJ,EAAWmnJ,eAE5BtgD,EAAU7mG,EAAW6mG,QAAU,GAEnC7mG,EAAWr2B,UAAY,CACrBkH,YAAamvB,EACbyB,MAAO,WAAW75B,OAAO65B,QAAS55B,KAAK4W,QAAQtQ,MAAMszB,SAErDoqJ,UAAW,SAASz6G,EAAQ1jE,GAC1B,IAAIrD,EAAUxC,KAAKwC,QAAS8jI,EAAM9jI,EAAQ+mE,GACtC/mE,EAAQ+mE,IAAW1jE,GAAmB,QAAV0jE,IAChC/mE,EAAQ+mE,GAAU1jE,EACdy5K,EAAe39I,eAAe4nC,IAC9B8lE,GAAUrvI,KAAMs/K,EAAe/1G,GAA/B8lE,CAAwCrvI,KAAM6F,EAAOygI,GACzDkS,GAAOx4I,KAAM,eAAgBA,KAAMupE,KAGrCmuC,UAAW,SAASnuC,GAAS,OAAOvpE,KAAKwC,QAAQ+mE,IACjD5mD,OAAQ,WAAY,OAAO3iB,KAAKye,KAEhCwlK,UAAW,SAASvpK,EAAK2pD,GACvBrkE,KAAKszC,MAAMmoI,QAAQp3G,EAAS,OAAS,WAAW6xG,GAAUx7J,KAE5DwpK,aAAc,SAASxpK,GAErB,IADA,IAAI8tI,EAAOxoJ,KAAKszC,MAAMmoI,QACbrxK,EAAI,EAAGA,EAAIo+I,EAAKvhJ,SAAUmD,EAC/B,GAAIo+I,EAAKp+I,IAAMsQ,GAAO8tI,EAAKp+I,GAAGjG,MAAQuW,EAEtC,OADA8tI,EAAKtyH,OAAO9rB,EAAG,IACR,GAIb+5K,WAAYviB,IAAS,SAASvmB,EAAM74I,GAClC,IAAIi3B,EAAO4hH,EAAK3K,MAAQ2K,EAAOljH,EAAWg3G,QAAQnvI,KAAKwC,QAAS64I,GAChE,GAAI5hH,EAAKsiH,WAAc,MAAM,IAAIjuI,MAAM,iCACvCqnI,EAAan1I,KAAKszC,MAAMqsG,SACX,CAAClmH,KAAMA,EAAM2qJ,SAAU/oC,EAAMwE,OAAQr9I,GAAWA,EAAQq9I,OACvD37F,SAAW1hD,GAAWA,EAAQ0hD,UAAa,IAC5C,SAAUw7F,GAAW,OAAOA,EAAQx7F,YACjDlkD,KAAKszC,MAAMisG,UACXgW,GAAUv1J,SAEZqkL,cAAeziB,IAAS,SAASvmB,GAE/B,IADA,IAAIsE,EAAW3/I,KAAKszC,MAAMqsG,SACjBv1I,EAAI,EAAGA,EAAIu1I,EAAS14I,SAAUmD,EAAG,CACxC,IAAIumI,EAAMgP,EAASv1I,GAAGg6K,SACtB,GAAIzzC,GAAO0K,GAAuB,iBAARA,GAAoB1K,EAAIxsI,MAAQk3I,EAIxD,OAHAsE,EAASzpH,OAAO9rB,EAAG,GACnBpK,KAAKszC,MAAMisG,eACXgW,GAAUv1J,UAMhB+vI,WAAY6xB,IAAS,SAASn9E,EAAGu2C,EAAK6mD,GAClB,iBAAP7mD,GAAiC,iBAAPA,IAChBA,EAAR,MAAPA,EAAqBh7H,KAAKwC,QAAQ+gL,YAAc,QAAU,OACjDvoD,EAAM,MAAQ,YAEzBgiB,GAAOh9I,KAAKye,IAAKgmE,IAAMsrD,GAAW/vI,KAAMykF,EAAGu2C,EAAK6mD,MAEtDvH,gBAAiB1Y,IAAS,SAASggB,GAEjC,IADA,IAAI/qB,EAAS72J,KAAKye,IAAI6W,IAAIuhI,OAAQ/wH,GAAO,EAChC17B,EAAI,EAAGA,EAAIysJ,EAAO5vJ,OAAQmD,IAAK,CACtC,IAAIkhD,EAAQurG,EAAOzsJ,GACnB,GAAKkhD,EAAMvjD,QASAujD,EAAMzlC,KAAK0pH,KAAOzpG,IAC3BiqG,GAAW/vI,KAAMsrD,EAAMzlC,KAAK0pH,KAAMqyC,GAAK,GACvC97I,EAAMwlB,EAAMzlC,KAAK0pH,KACbnlI,GAAKpK,KAAKye,IAAI6W,IAAIwhI,WAAauF,GAAoBr8J,WAZrC,CAClB,IAAI8sG,EAAOxhD,EAAMwhD,OAAQD,EAAKvhD,EAAMuhD,KAChC3kF,EAAQkD,KAAKC,IAAIya,EAAKgnE,EAAKyiC,MAC/BzpG,EAAM1a,KAAKE,IAAItrB,KAAKymJ,WAAY55C,EAAG0iC,MAAQ1iC,EAAG2iC,GAAK,EAAI,IAAM,EAC7D,IAAK,IAAIhuF,EAAIt5B,EAAOs5B,EAAI1b,IAAO0b,EAC3BuuF,GAAW/vI,KAAMwhD,EAAGogI,GACxB,IAAI0C,EAAYtkL,KAAKye,IAAI6W,IAAIuhI,OACd,GAAX/pD,EAAK0iC,IAAWqnB,EAAO5vJ,QAAUq9K,EAAUr9K,QAAUq9K,EAAUl6K,GAAG0iG,OAAO0iC,GAAK,GAC9E67B,GAAoBrrK,KAAKye,IAAKrU,EAAG,IAAIk8J,GAAMx5D,EAAMw3E,EAAUl6K,GAAGyiG,MAAO4nC,QAW/ErF,WAAY,SAASj+G,EAAKsvH,GACxB,OAAOa,GAAUthJ,KAAMmxB,EAAKsvH,IAG9B8jC,cAAe,SAASh1C,EAAMkR,GAC5B,OAAOa,GAAUthJ,KAAMo9I,GAAI7N,GAAOkR,GAAS,IAG7C+jC,eAAgB,SAASrzJ,GACvBA,EAAMusH,GAAQ19I,KAAKye,IAAK0S,GACxB,IAEI7vB,EAFA6a,EAAS6jI,GAAchgJ,KAAMo8I,GAAQp8I,KAAKye,IAAK0S,EAAIo+G,OACnDvpB,EAAS,EAAG3jC,GAASlmE,EAAOlV,OAAS,GAAK,EAAGuoI,EAAKr+G,EAAIq+G,GAE1D,GAAU,GAANA,EAAWluI,EAAO6a,EAAO,QACtB,OAAS,CACd,IAAI65H,EAAOhwB,EAAS3jC,GAAU,EAC9B,IAAK2zD,EAAM75H,EAAa,EAAN65H,EAAU,GAAK,IAAMxG,EAAMntD,EAAQ2zD,MAChD,MAAI75H,EAAa,EAAN65H,EAAU,GAAKxG,GAC1B,CAAEluI,EAAO6a,EAAa,EAAN65H,EAAU,GAAI,MADEhwB,EAASgwB,EAAM,GAGtD,IAAI4f,EAAMt0J,EAAOA,EAAKqT,QAAQ,aAAe,EAC7C,OAAOihJ,EAAM,EAAIt0J,EAAc,GAAPs0J,EAAW,KAAOt0J,EAAK8+C,MAAM,EAAGw1G,EAAM,IAGhE4tB,UAAW,SAASryJ,GAClB,IAAIsI,EAAOz5B,KAAKye,IAAIgb,KACpB,OAAKA,EAAKy1G,UACH/2G,EAAW+2G,UAAUz1G,EAAMz5B,KAAKovI,WAAWj+G,GAAKmiB,OAAO7Z,KADhCA,GAIhCgrJ,UAAW,SAAStzJ,EAAK7vB,GACvB,OAAOtB,KAAK0kL,WAAWvzJ,EAAK7vB,GAAM,IAGpCojL,WAAY,SAASvzJ,EAAK7vB,GACxB,IAAIy8B,EAAQ,GACZ,IAAKihG,EAAQr9F,eAAergC,GAAS,OAAOy8B,EAC5C,IAAI4mJ,EAAO3lD,EAAQ19H,GAAOm4B,EAAOz5B,KAAKwjL,UAAUryJ,GAChD,GAAyB,iBAAdsI,EAAKn4B,GACVqjL,EAAKlrJ,EAAKn4B,KAAUy8B,EAAMnwB,KAAK+2K,EAAKlrJ,EAAKn4B,UACxC,GAAIm4B,EAAKn4B,GACd,IAAK,IAAI8I,EAAI,EAAGA,EAAIqvB,EAAKn4B,GAAM2F,OAAQmD,IAAK,CAC1C,IAAIhB,EAAMu7K,EAAKlrJ,EAAKn4B,GAAM8I,IACtBhB,GAAO20B,EAAMnwB,KAAKxE,QAEfqwB,EAAKkiH,YAAcgpC,EAAKlrJ,EAAKkiH,YACtC59G,EAAMnwB,KAAK+2K,EAAKlrJ,EAAKkiH,aACZgpC,EAAKlrJ,EAAKt1B,OACnB45B,EAAMnwB,KAAK+2K,EAAKlrJ,EAAKt1B,OAEvB,IAAK,IAAI8yI,EAAM,EAAGA,EAAM0tC,EAAKC,QAAQ39K,OAAQgwI,IAAO,CAClD,IAAItG,EAAMg0C,EAAKC,QAAQ3tC,GACnBtG,EAAImF,KAAKr8G,EAAMz5B,QAAqC,GAA5B2U,EAAQopB,EAAO4yG,EAAIvnI,MAC3C20B,EAAMnwB,KAAK+iI,EAAIvnI,KAErB,OAAO20B,GAGT8mJ,cAAe,SAASt1C,EAAMkR,GAC5B,IAAIhiI,EAAMze,KAAKye,IAEf,OAAOyhI,GAAiBlgJ,MADxBuvI,EAAOkO,GAASh/H,EAAa,MAAR8wH,EAAe9wH,EAAI1D,MAAQ0D,EAAImpB,KAAO,EAAG2nG,IACzB,EAAGkR,GAASntG,OAGnDy/G,aAAc,SAAS7qI,EAAOuR,GAC5B,IAAS6xB,EAAQtrD,KAAKye,IAAI6W,IAAImhI,UAI9B,OAAO1D,GAAa/yJ,KAHP,MAATkoB,EAAuBojC,EAAMzlC,KACR,iBAATqC,EAA2Bw1H,GAAQ19I,KAAKye,IAAKyJ,GAChDA,EAAQojC,EAAMwhD,OAASxhD,EAAMuhD,KACXpzE,GAAQ,SAGzCq5H,WAAY,SAAS3hI,EAAKsI,GACxB,OAAOq5H,GAAW9yJ,KAAM09I,GAAQ19I,KAAKye,IAAK0S,GAAMsI,GAAQ,SAG1D+5H,WAAY,SAASb,EAAQl5H,GAE3B,OAAO+5H,GAAWxzJ,MADlB2yJ,EAASD,GAAgB1yJ,KAAM2yJ,EAAQl5H,GAAQ,SAChB1Z,KAAM4yI,EAAO3yI,MAG9C88H,aAAc,SAAS16I,EAAQq3B,GAE7B,OADAr3B,EAASswJ,GAAgB1yJ,KAAM,CAACggB,IAAK5d,EAAQ2d,KAAM,GAAI0Z,GAAQ,QAAQzZ,IAChE88H,GAAa98I,KAAKye,IAAKrc,EAASpC,KAAK4W,QAAQ27I,aAEtD1L,aAAc,SAAStX,EAAM91G,EAAM44H,GACjC,IAAiBvL,EAAbhhH,GAAM,EACV,GAAmB,iBAARypG,EAAkB,CAC3B,IAAIrkB,EAAOlrH,KAAKye,IAAI1D,MAAQ/a,KAAKye,IAAImpB,KAAO,EACxC2nG,EAAOvvI,KAAKye,IAAI1D,MAASw0H,EAAOvvI,KAAKye,IAAI1D,MACpCw0H,EAAOrkB,IAAQqkB,EAAOrkB,EAAMplF,GAAM,GAC3CghH,EAAU1K,GAAQp8I,KAAKye,IAAK8wH,QAE5BuX,EAAUvX,EAEZ,OAAO6iB,GAAgBpyJ,KAAM8mJ,EAAS,CAAC9mI,IAAK,EAAGD,KAAM,GAAI0Z,GAAQ,OAAQ44H,GAAkBvsH,GAAK9lB,KAC7F8lB,EAAM9lC,KAAKye,IAAIrc,OAASykJ,GAAaC,GAAW,IAGrDg+B,kBAAmB,WAAa,OAAOnwB,GAAW30J,KAAK4W,UACvDmuK,iBAAkB,WAAa,OAAOh0B,GAAU/wJ,KAAK4W,UAErDouK,YAAa,WAAa,MAAO,CAACl4E,KAAM9sG,KAAK4W,QAAQkqI,SAAUj0C,GAAI7sG,KAAK4W,QAAQmqI,SAEhFkkC,UAAW,SAAS9zJ,EAAK6vB,EAAMjsC,EAAQ4oJ,EAAMC,GAC3C,IAAIhnJ,EAAU5W,KAAK4W,QAEfoJ,GADJmR,EAAM4hI,GAAa/yJ,KAAM09I,GAAQ19I,KAAKye,IAAK0S,KAC7BkzC,OAAQtkD,EAAOoR,EAAIpR,KAKjC,GAJAihC,EAAKrqC,MAAMsJ,SAAW,WACtB+gC,EAAKhrC,aAAa,mBAAoB,QACtChW,KAAK4W,QAAQtQ,MAAMqjJ,cAAc3oG,GACjCpqC,EAAQm3I,MAAMtmJ,YAAYu5C,GACd,QAAR28G,EACF39I,EAAMmR,EAAInR,SACL,GAAY,SAAR29I,GAA2B,QAARA,EAAgB,CAC5C,IAAIunB,EAAS95J,KAAKC,IAAIzU,EAAQhC,QAAQotE,aAAchiF,KAAKye,IAAIrc,QAC7D+iL,EAAS/5J,KAAKC,IAAIzU,EAAQm3I,MAAMjsE,YAAalrE,EAAQq3I,UAAUnsE,cAElD,SAAR67E,GAAmBxsI,EAAIkzC,OAASrjB,EAAK39B,aAAe6hK,IAAW/zJ,EAAInR,IAAMghC,EAAK39B,aAC/ErD,EAAMmR,EAAInR,IAAMghC,EAAK39B,aAChB8N,EAAIkzC,OAASrjB,EAAK39B,cAAgB6hK,IACvCllK,EAAMmR,EAAIkzC,QACVtkD,EAAOihC,EAAK19B,YAAc6hK,IAC1BplK,EAAOolK,EAASnkI,EAAK19B,aAE3B09B,EAAKrqC,MAAMqJ,IAAMA,EAAM,KACvBghC,EAAKrqC,MAAMoJ,KAAOihC,EAAKrqC,MAAMqoB,MAAQ,GACxB,SAAT4+H,GACF79I,EAAOnJ,EAAQm3I,MAAMjsE,YAAc9gC,EAAK19B,YACxC09B,EAAKrqC,MAAMqoB,MAAQ,QAEN,QAAT4+H,EAAmB79I,EAAO,EACZ,UAAT69I,IAAqB79I,GAAQnJ,EAAQm3I,MAAMjsE,YAAc9gC,EAAK19B,aAAe,GACtF09B,EAAKrqC,MAAMoJ,KAAOA,EAAO,MAEvBhL,GACA4V,GAAe3qB,KAAM,CAAC+f,KAAMA,EAAMC,IAAKA,EAAKgf,MAAOjf,EAAOihC,EAAK19B,YAAa+gD,OAAQrkD,EAAMghC,EAAK39B,gBAGrG+hK,iBAAkBxjB,GAASwa,IAC3BiJ,kBAAmBzjB,GAAS92I,IAC5Bw6J,eAAgB/iJ,GAChBgjJ,mBAAoB3jB,GAASmb,IAE7B/rI,YAAa,SAASvgC,GACpB,GAAIwpB,GAAS0H,eAAelxB,GACxB,OAAOwpB,GAASxpB,GAAKm0D,KAAK,KAAM5kE,OAGtCkjL,gBAAiBthB,IAAS,SAASn4J,GAAQy5K,GAAgBljL,KAAMyJ,MAEjE+7K,SAAU,SAAS14E,EAAMv8B,EAAQnsE,EAAM6yK,GACrC,IAAIj8C,EAAM,EACNzqD,EAAS,IAAKyqD,GAAO,EAAGzqD,GAAUA,GAEtC,IADA,IAAIogE,EAAM+M,GAAQ19I,KAAKye,IAAKquF,GACnB1iG,EAAI,EAAGA,EAAImmE,KAClBogE,EAAM60C,GAASxlL,KAAKye,IAAKkyH,EAAK3V,EAAK52H,EAAM6yK,IACjCwO,UAFoBr7K,GAI9B,OAAOumI,GAGT2oC,MAAO1X,IAAS,SAAS5mC,EAAK52H,GAC5B,IAAIorK,EAASxvK,KAEbA,KAAK0xK,oBAAmB,SAAUpmH,GAChC,OAAIkkH,EAAO54J,QAAQjV,OAAS6tK,EAAO/wJ,IAAI8Z,QAAU+yB,EAAMvjD,QAC5Cy9K,GAAShW,EAAO/wJ,IAAK6sC,EAAMzlC,KAAMm1G,EAAK52H,EAAMorK,EAAOhtK,QAAQkjL,iBAE3D1qD,EAAM,EAAI1vE,EAAMwhD,OAASxhD,EAAMuhD,OACzC8nC,MAGLolC,QAASnY,IAAS,SAAS5mC,EAAK52H,GAC9B,IAAIkxB,EAAMt1B,KAAKye,IAAI6W,IAAK7W,EAAMze,KAAKye,IAC/B6W,EAAIixI,oBACJ9nJ,EAAIqzJ,iBAAiB,GAAI,KAAM,WAE/B2E,GAAoBz2K,MAAM,SAAUsrD,GACpC,IAAI6nG,EAAQqyB,GAAS/mK,EAAK6sC,EAAMzlC,KAAMm1G,EAAK52H,GAAM,GACjD,OAAO42H,EAAM,EAAI,CAACluB,KAAMqmD,EAAOtmD,GAAIvhD,EAAMzlC,MAAQ,CAACinF,KAAMxhD,EAAMzlC,KAAMgnF,GAAIsmD,SAI9EwyB,SAAU,SAAS74E,EAAMv8B,EAAQnsE,EAAMwhL,GACrC,IAAI5qD,EAAM,EAAGp+G,EAAIgpK,EACbr1G,EAAS,IAAKyqD,GAAO,EAAGzqD,GAAUA,GAEtC,IADA,IAAIogE,EAAM+M,GAAQ19I,KAAKye,IAAKquF,GACnB1iG,EAAI,EAAGA,EAAImmE,IAAUnmE,EAAG,CAC/B,IAAIuoJ,EAASI,GAAa/yJ,KAAM2wI,EAAK,OAIrC,GAHS,MAAL/zH,EAAaA,EAAI+1I,EAAO5yI,KACrB4yI,EAAO5yI,KAAOnD,GACrB+zH,EAAMg1C,GAAS3lL,KAAM2yJ,EAAQ33B,EAAK52H,IAC1BqhL,QAAW,MAErB,OAAO90C,GAGTsoC,MAAOrX,IAAS,SAAS5mC,EAAK52H,GAC5B,IAAIorK,EAASxvK,KAETye,EAAMze,KAAKye,IAAKonK,EAAQ,GACxBvyC,GAAYtzI,KAAK4W,QAAQjV,QAAU8c,EAAI8Z,QAAU9Z,EAAI6W,IAAIixI,oBAY7D,GAXA9nJ,EAAIizJ,oBAAmB,SAAUpmH,GAC/B,GAAIgoF,EACA,OAAOtY,EAAM,EAAI1vE,EAAMwhD,OAASxhD,EAAMuhD,KAC1C,IAAIi5E,EAAU/yB,GAAayc,EAAQlkH,EAAMzlC,KAAM,OACvB,MAApBylC,EAAMs6H,aAAsBE,EAAQ/lK,KAAOurC,EAAMs6H,YACrDC,EAAMj4K,KAAKk4K,EAAQ/lK,MACnB,IAAIoR,EAAMw0J,GAASnW,EAAQsW,EAAS9qD,EAAK52H,GAGzC,MAFY,QAARA,GAAkBknD,GAAS7sC,EAAI6W,IAAImhI,WACnC0F,GAAeqT,EAAQ1c,GAAW0c,EAAQr+I,EAAK,OAAOnR,IAAM8lK,EAAQ9lK,KACjEmR,IACNwjH,GACCkxC,EAAM5+K,OAAU,IAAK,IAAImD,EAAI,EAAGA,EAAIqU,EAAI6W,IAAIuhI,OAAO5vJ,OAAQmD,IAC3DqU,EAAI6W,IAAIuhI,OAAOzsJ,GAAGw7K,WAAaC,EAAMz7K,MAI3C2zK,WAAY,SAAS5sJ,GACnB,IAAoBo+G,EAAO6M,GAAjBp8I,KAAKye,IAAyB0S,EAAIo+G,MAAM9lI,KAC9Cye,EAAQiJ,EAAIq+G,GAAI1pG,EAAM3U,EAAIq+G,GAC9B,GAAID,EAAM,CACR,IAAIr/F,EAASlwC,KAAKykL,UAAUtzJ,EAAK,aACd,UAAdA,EAAIklH,QAAsBvwG,GAAOypG,EAAKtoI,SAAWihB,IAA6B4d,IAAlB5d,EAMjE,IALA,IAAI69J,EAAYx2C,EAAK5/E,OAAOznC,GACxBqkG,EAAQkpB,GAAWswC,EAAW71I,GAC9B,SAAUs/F,GAAM,OAAOiG,GAAWjG,EAAIt/F,IACtC,KAAKoY,KAAKy9H,GAAa,SAAUv2C,GAAM,MAAO,KAAKlnF,KAAKknF,IACxD,SAAUA,GAAM,OAAS,KAAKlnF,KAAKknF,KAAQiG,GAAWjG,IACnDtnH,EAAQ,GAAKqkG,EAAMgjB,EAAK5/E,OAAOznC,EAAQ,OAASA,EACvD,KAAO4d,EAAMypG,EAAKtoI,QAAUslH,EAAMgjB,EAAK5/E,OAAO7pB,OAAWA,EAE3D,OAAO,IAAIwgI,GAAMlpB,GAAIjsH,EAAIo+G,KAAMrnH,GAAQk1H,GAAIjsH,EAAIo+G,KAAMzpG,KAGvDk1I,gBAAiB,SAASn1K,GACX,MAATA,GAAiBA,GAAS7F,KAAKszC,MAAMqgG,aACrC3zI,KAAKszC,MAAMqgG,WAAa3zI,KAAKszC,MAAMqgG,WACnC/uI,EAAS5E,KAAK4W,QAAQwiJ,UAAW,wBAEjC3mB,EAAQzyI,KAAK4W,QAAQwiJ,UAAW,wBAEpC5gB,GAAOx4I,KAAM,kBAAmBA,KAAMA,KAAKszC,MAAMqgG,aAEnD//G,SAAU,WAAa,OAAO5zB,KAAK4W,QAAQtQ,MAAM+1K,YAAcvpC,KAC/DwhC,WAAY,WAAa,SAAUt0K,KAAKwC,QAAQ42B,WAAYp5B,KAAKye,IAAImuJ,WAErE5nJ,SAAU48I,IAAS,SAAUhlJ,EAAGC,GAAK2/I,GAAex8J,KAAM4c,EAAGC,MAC7DirG,cAAe,WACb,IAAI2mC,EAAWzuJ,KAAK4W,QAAQ63I,SAC5B,MAAO,CAAC1uI,KAAM0uI,EAASrrI,WAAYpD,IAAKyuI,EAAS9nJ,UACzCvE,OAAQqsJ,EAASuO,aAAe1O,GAAUtuJ,MAAQA,KAAK4W,QAAQg4I,UAC/DvsJ,MAAOosJ,EAAS0O,YAAc7O,GAAUtuJ,MAAQA,KAAK4W,QAAQ83I,SAC7D1sE,aAAc2sE,GAAc3uJ,MAAO8hF,YAAa0sE,GAAaxuJ,QAGvE2qB,eAAgBi3I,IAAS,SAASt2G,EAAOhb,GAC1B,MAATgb,GACFA,EAAQ,CAACwhD,KAAM9sG,KAAKye,IAAI6W,IAAImhI,UAAU5wI,KAAMgnF,GAAI,MAClC,MAAVv8D,IAAkBA,EAAStwC,KAAKwC,QAAQ+5J,qBACnB,iBAATjxG,EAChBA,EAAQ,CAACwhD,KAAMswC,GAAI9xF,EAAO,GAAIuhD,GAAI,MACX,MAAdvhD,EAAMwhD,OACfxhD,EAAQ,CAACwhD,KAAMxhD,EAAOuhD,GAAI,OAEvBvhD,EAAMuhD,KAAMvhD,EAAMuhD,GAAKvhD,EAAMwhD,MAClCxhD,EAAMhb,OAASA,GAAU,EAEF,MAAnBgb,EAAMwhD,KAAKyiC,KACbktB,GAAcz8J,KAAMsrD,GAEpBoxG,GAAoB18J,KAAMsrD,EAAMwhD,KAAMxhD,EAAMuhD,GAAIvhD,EAAMhb,WAI1DqlI,QAAS/T,IAAS,SAASv/J,EAAOD,GAChC,IAAIotK,EAASxvK,KAETgmL,EAAY,SAAU58K,GAAO,MAAqB,iBAAPA,GAAmB,QAAQk/C,KAAKujB,OAAOziE,IAAQA,EAAM,KAAOA,GAC9F,MAAT/G,IAAiBrC,KAAK4W,QAAQhC,QAAQ+B,MAAMtU,MAAQ2jL,EAAU3jL,IACpD,MAAVD,IAAkBpC,KAAK4W,QAAQhC,QAAQ+B,MAAMvU,OAAS4jL,EAAU5jL,IAChEpC,KAAKwC,QAAQg3B,cAAgBm4H,GAA0B3xJ,MAC3D,IAAI48I,EAAS58I,KAAK4W,QAAQkqI,SAC1B9gJ,KAAKye,IAAIg+H,KAAKG,EAAQ58I,KAAK4W,QAAQmqI,QAAQ,SAAUxR,GACnD,GAAIA,EAAK4d,QAAW,IAAK,IAAI/iJ,EAAI,EAAGA,EAAImlI,EAAK4d,QAAQlmJ,OAAQmD,IACzD,GAAImlI,EAAK4d,QAAQ/iJ,GAAGojJ,UAAW,CAAEyI,GAAcuZ,EAAQ5yB,EAAQ,UAAW,QAC5EA,KAEJ58I,KAAKg5I,MAAM4W,aAAc,EACzBpX,GAAOx4I,KAAM,UAAWA,SAG1BqvI,UAAW,SAASj9H,GAAG,OAAOuvJ,GAAQ3hK,KAAMoS,IAC5CutJ,eAAgB,WAAW,OAAOA,GAAe3/J,OACjDkgK,aAAc,WAAW,OAAOA,GAAalgK,OAE7C25B,QAASioI,IAAS,WAChB,IAAIzH,EAAYn6J,KAAK4W,QAAQm7I,iBAC7BwD,GAAUv1J,MACVA,KAAKg5I,MAAM4W,aAAc,EACzBiC,GAAY7xJ,MACZw8J,GAAex8J,KAAMA,KAAKye,IAAI2E,WAAYpjB,KAAKye,IAAI9X,WACnDs9J,GAAkBjkK,KAAK4W,UACN,MAAbujJ,GAAqB/uI,KAAK+lD,IAAIgpF,EAAYxF,GAAW30J,KAAK4W,UAAY,IAAM5W,KAAKwC,QAAQg3B,eACzFw7H,GAAoBh1J,MACxBw4I,GAAOx4I,KAAM,UAAWA,SAG1BimL,QAASrkB,IAAS,SAASnjJ,GACzB,IAAI6nH,EAAMtmI,KAAKye,IAUf,OATA6nH,EAAI58F,GAAK,KAEL1pC,KAAKszC,MAAM4pI,eAAiBl9K,KAAKszC,MAAM4pI,gBAC3CzU,GAAUzoK,KAAMye,GAChBozI,GAAY7xJ,MACZA,KAAK4W,QAAQtQ,MAAMmL,QACnB+qJ,GAAex8J,KAAMye,EAAI2E,WAAY3E,EAAI9X,WACzC3G,KAAKg5I,MAAM+jB,aAAc,EACzB7R,GAAYlrJ,KAAM,UAAWA,KAAMsmI,GAC5BA,KAGT4/C,OAAQ,SAASC,GACf,IAAIC,EAAUpmL,KAAKwC,QAAQ4jL,QAC3B,OAAOA,GAAWxkK,OAAO9f,UAAU6/B,eAAeijC,KAAKwhH,EAASD,GAAcC,EAAQD,GAAcA,GAGtGvG,cAAe,WAAW,OAAO5/K,KAAK4W,QAAQtQ,MAAM+1K,YACpDjlB,kBAAmB,WAAW,OAAOp3J,KAAK4W,QAAQhC,SAClDyxK,mBAAoB,WAAW,OAAOrmL,KAAK4W,QAAQ63I,UACnD63B,iBAAkB,WAAW,OAAOtmL,KAAK4W,QAAQi3I,UAEnD1U,GAAWhhH,GAEXA,EAAWouJ,eAAiB,SAASjlL,EAAM6C,EAAM0B,GAC1Cm5H,EAAQr9F,eAAergC,KAAS09H,EAAQ19H,GAAQ62B,EAAW72B,GAAQ,CAACsjL,QAAS,KAClF5lD,EAAQ19H,GAAM6C,GAAQ0B,GAExBsyB,EAAWquJ,qBAAuB,SAASllL,EAAM6C,EAAMsiL,EAAW5gL,GAChEsyB,EAAWouJ,eAAejlL,EAAM6C,EAAM0B,GACtCm5H,EAAQ19H,GAAMsjL,QAAQh3K,KAAK,CAACkoI,KAAM2wC,EAAWr9K,IAAKvD,KAatD,SAAS2/K,GAAS/mK,EAAK0S,EAAK6pG,EAAK52H,EAAM6yK,GACrC,IAAI9K,EAASh7I,EACTu1J,EAAU1rD,EACV8rB,EAAU1K,GAAQ39H,EAAK0S,EAAIo+G,MAC3Bo3C,EAAU1P,GAA6B,OAAjBx4J,EAAIjG,WAAsBwiH,EAAMA,EAC1D,SAAS4rD,IACP,IAAIvlI,EAAIlwB,EAAIo+G,KAAOo3C,EACnB,QAAItlI,EAAI5iC,EAAI1D,OAASsmC,GAAK5iC,EAAI1D,MAAQ0D,EAAImpB,QAC1CzW,EAAM,IAAIisH,GAAI/7F,EAAGlwB,EAAIq+G,GAAIr+G,EAAIklH,QACtByQ,EAAU1K,GAAQ39H,EAAK4iC,IAEhC,SAASwlI,EAASC,GAChB,IAAI9+I,EACJ,GAAY,aAAR5jC,EAAqB,CACvB,IAAIorI,EAAKsX,EAAQr9I,KAAKikF,WAAWv8D,EAAIq+G,IAAMxU,EAAM,EAAI,GAAK,IAC1D,GAAI1yG,MAAMknH,GACRxnG,EAAO,SACF,CACL,IAAI++I,EAAS/rD,EAAM,EAAIwU,GAAM,OAAUA,EAAK,MAASA,GAAM,OAAUA,EAAK,MAC1ExnG,EAAO,IAAIo1G,GAAIjsH,EAAIo+G,KAAMnkH,KAAKC,IAAI,EAAGD,KAAKE,IAAIw7H,EAAQr9I,KAAKxC,OAAQkqB,EAAIq+G,GAAKxU,GAAO+rD,EAAS,EAAI,MAAO/rD,SAGzGhzF,EADSivI,EACFG,GAAa34J,EAAIirB,GAAIo9G,EAAS31H,EAAK6pG,GAEnC+7C,GAAcjwB,EAAS31H,EAAK6pG,GAErC,GAAY,MAARhzF,EAAc,CAChB,GAAK8+I,IAAeF,IAGhB,OAAO,EAFPz1J,EAAM6lJ,GAAUC,EAAUx4J,EAAIirB,GAAIo9G,EAAS31H,EAAIo+G,KAAMo3C,QAIzDx1J,EAAM6W,EAER,OAAO,EAGT,GAAY,QAAR5jC,GAA0B,aAARA,EACpByiL,SACK,GAAY,UAARziL,EACTyiL,GAAS,QACJ,GAAY,QAARziL,GAA0B,SAARA,EAG3B,IAFA,IAAI4iL,EAAU,KAAMhpI,EAAgB,SAAR55C,EACxB8rC,EAASzxB,EAAIirB,IAAMjrB,EAAIirB,GAAG+6I,UAAUtzJ,EAAK,aACpCpW,GAAQ,IACXigH,EAAM,IAAM6rD,GAAU9rK,GADJA,GAAQ,EAAO,CAErC,IAAI41H,EAAMmW,EAAQr9I,KAAKkmD,OAAOx+B,EAAIq+G,KAAO,KACrCluI,EAAOm0I,GAAW9E,EAAKzgG,GAAU,IACjC8N,GAAgB,MAAP2yF,EAAc,KACtB3yF,GAAS,KAAKsK,KAAKqoF,GAAO,KAC3B,IAEJ,IADI3yF,GAAUjjC,GAAUzZ,IAAQA,EAAO,KACnC0lL,GAAWA,GAAW1lL,EAAM,CAC1B05H,EAAM,IAAIA,EAAM,EAAG6rD,IAAY11J,EAAIklH,OAAS,SAChD,MAIF,GADI/0I,IAAQ0lL,EAAU1lL,GAClB05H,EAAM,IAAM6rD,GAAU9rK,GAAU,MAGxC,IAAI9Y,EAAS+pK,GAAWvtJ,EAAK0S,EAAKg7I,EAAQua,GAAS,GAEnD,OADIrpC,GAAe8uB,EAAQlqK,KAAWA,EAAOwjL,SAAU,GAChDxjL,EAMT,SAAS0jL,GAASj8I,EAAIvY,EAAK6pG,EAAK52H,GAC9B,IAAgCyY,EAS5BnZ,EATA+a,EAAMirB,EAAGjrB,IAAK7B,EAAIuU,EAAIpR,KAC1B,GAAY,QAAR3b,EAAgB,CAClB,IAAI6iL,EAAW77J,KAAKE,IAAIoe,EAAG9yB,QAAQhC,QAAQotE,aAAcjiF,OAAO+6J,aAAe5yJ,SAAS05E,gBAAgBI,cACpGklG,EAAa97J,KAAKC,IAAI47J,EAAW,GAAKtyB,GAAWjrH,EAAG9yB,SAAU,GAClEiG,GAAKm+G,EAAM,EAAI7pG,EAAIkzC,OAASlzC,EAAInR,KAAOg7G,EAAMksD,MAE5B,QAAR9iL,IACTyY,EAAIm+G,EAAM,EAAI7pG,EAAIkzC,OAAS,EAAIlzC,EAAInR,IAAM,GAG3C,MACEtc,EAAS8vJ,GAAW9pH,EAAI9sB,EAAGC,IACfy2I,SAFL,CAGP,GAAIt4B,EAAM,EAAIn+G,GAAK,EAAIA,GAAK4B,EAAIrc,OAAQ,CAAEsB,EAAO+hL,SAAU,EAAM,MACjE5oK,GAAW,EAANm+G,EAEP,OAAOt3H,EAKT,IAAIyjL,GAAuB,SAASz9I,GAClC1pC,KAAK0pC,GAAKA,EACV1pC,KAAKonL,eAAiBpnL,KAAKqnL,iBAAmBrnL,KAAKsnL,cAAgBtnL,KAAKunL,gBAAkB,KAC1FvnL,KAAKwnL,QAAU,IAAItzC,EACnBl0I,KAAKynL,UAAY,KACjBznL,KAAK0nL,aAAc,EACnB1nL,KAAK2nL,eAAiB,MA2XxB,SAASC,GAASl+I,EAAIvY,GACpB,IAAIhuB,EAAOssJ,GAAgB/lH,EAAIvY,EAAIo+G,MACnC,IAAKpsI,GAAQA,EAAKyxF,OAAU,OAAO,KACnC,IAAI26C,EAAO6M,GAAQ1yG,EAAGjrB,IAAK0S,EAAIo+G,MAC3BjgC,EAAO4/C,GAAgB/rJ,EAAMosI,EAAMp+G,EAAIo+G,MAEvCv4H,EAAQohI,GAAS7I,EAAM7lG,EAAGjrB,IAAIjG,WAAY8Z,EAAO,OACjDtb,IAEFsb,EADc8jH,GAAcp/H,EAAOma,EAAIq+G,IACtB,EAAI,QAAU,QAEjC,IAAIvtI,EAASquJ,GAAuBhhD,EAAK50F,IAAKyW,EAAIq+G,GAAIl9G,GAEtD,OADArwB,EAAO2qB,OAA4B,SAAnB3qB,EAAOqxI,SAAsBrxI,EAAO6jC,IAAM7jC,EAAOimB,MAC1DjmB,EAGT,SAAS4lL,GAAW7mI,GAClB,IAAK,IAAI8mI,EAAO9mI,EAAM8mI,EAAMA,EAAOA,EAAKxlK,WACpC,GAAI,4BAA4BgmC,KAAKw/H,EAAK/kL,WAAc,OAAO,EACnE,OAAO,EAGT,SAASglL,GAAO52J,EAAK62J,GAAoC,OAAzBA,IAAO72J,EAAI62J,KAAM,GAAe72J,EAEhE,SAAS82J,GAAev+I,EAAIojE,EAAMD,EAAIgsD,EAAUC,GAC9C,IAAIrvJ,EAAO,GAAIy+K,GAAU,EAAOhX,EAAUxnI,EAAGjrB,IAAI2yJ,gBAAiB+W,GAAiB,EACnF,SAASC,EAAgBziL,GAAM,OAAO,SAAU+8I,GAAU,OAAOA,EAAO/8I,IAAMA,GAC9E,SAASV,IACHijL,IACFz+K,GAAQynK,EACJiX,IAAkB1+K,GAAQynK,GAC9BgX,EAAUC,GAAiB,GAG/B,SAASE,EAAQrrI,GACXA,IACF/3C,IACAwE,GAAQuzC,GAGZ,SAASsrI,EAAKtnI,GACZ,GAAqB,GAAjBA,EAAK0I,SAAe,CACtB,IAAI6+H,EAASvnI,EAAKkiB,aAAa,WAC/B,GAAIqlH,EAEF,YADAF,EAAQE,GAGV,IAA+Cj9H,EAA3Ck9H,EAAWxnI,EAAKkiB,aAAa,aACjC,GAAIslH,EAAU,CACZ,IAAIzqJ,EAAQ2L,EAAG+mI,UAAUrzB,GAAIyb,EAAU,GAAIzb,GAAI0b,EAAS,EAAG,GAAIsvB,GAAiBI,IAGhF,YAFIzqJ,EAAM92B,SAAWqkD,EAAQvtB,EAAM,GAAGj2B,KAAK,KACvCugL,EAAQ7rC,GAAW9yG,EAAGjrB,IAAK6sC,EAAMwhD,KAAMxhD,EAAMuhD,IAAI9qF,KAAKmvJ,KAG5D,GAA4C,SAAxClwH,EAAKkiB,aAAa,mBAAiC,OACvD,IAAIulH,EAAU,6BAA6BngI,KAAKtH,EAAK2iB,UACrD,IAAK,QAAQrb,KAAKtH,EAAK2iB,WAAwC,GAA3B3iB,EAAKjrC,YAAY9O,OAAe,OAEhEwhL,GAAWxjL,IACf,IAAK,IAAImF,EAAI,EAAGA,EAAI42C,EAAK5H,WAAWnyC,OAAQmD,IACxCk+K,EAAKtnI,EAAK5H,WAAWhvC,IAErB,aAAak+C,KAAKtH,EAAK2iB,YAAawkH,GAAiB,GACrDM,IAAWP,GAAU,QACC,GAAjBlnI,EAAK0I,UACd2+H,EAAQrnI,EAAKm9C,UAAUpyF,QAAQ,UAAW,IAAIA,QAAQ,UAAW,MAGrE,KACEu8K,EAAKx7E,GACDA,GAAQD,GACZC,EAAOA,EAAKulB,YACZ81D,GAAiB,EAEnB,OAAO1+K,EAGT,SAASi/K,GAASh/I,EAAIsX,EAAMp0B,GAC1B,IAAI+7J,EACJ,GAAI3nI,GAAQtX,EAAG9yB,QAAQqjJ,QAAS,CAE9B,KADA0uB,EAAWj/I,EAAG9yB,QAAQqjJ,QAAQ7gH,WAAWxsB,IACxB,OAAOm7J,GAAOr+I,EAAGg0G,QAAQN,GAAI1zG,EAAG9yB,QAAQmqI,OAAS,KAAK,GACvE//F,EAAO,KAAMp0B,EAAS,OAEtB,IAAK+7J,EAAW3nI,GAAO2nI,EAAWA,EAASrmK,WAAY,CACrD,IAAKqmK,GAAYA,GAAYj/I,EAAG9yB,QAAQqjJ,QAAW,OAAO,KAC1D,GAAI0uB,EAASrmK,YAAcqmK,EAASrmK,YAAconB,EAAG9yB,QAAQqjJ,QAAW,MAG5E,IAAK,IAAI7vJ,EAAI,EAAGA,EAAIs/B,EAAG9yB,QAAQzT,KAAK8D,OAAQmD,IAAK,CAC/C,IAAI09I,EAAWp+G,EAAG9yB,QAAQzT,KAAKiH,GAC/B,GAAI09I,EAAS9mG,MAAQ2nI,EACjB,OAAOC,GAAqB9gC,EAAU9mG,EAAMp0B,IAIpD,SAASg8J,GAAqB9gC,EAAU9mG,EAAMp0B,GAC5C,IAAIhY,EAAUkzI,EAASr+I,KAAK7B,WAAYogL,GAAM,EAC9C,IAAKhnI,IAASzR,EAAS36B,EAASosC,GAAS,OAAO+mI,GAAO3qC,GAAIR,GAAOkL,EAASvY,MAAO,IAAI,GACtF,GAAIvuF,GAAQpsC,IACVozK,GAAM,EACNhnI,EAAOpsC,EAAQwkC,WAAWxsB,GAC1BA,EAAS,GACJo0B,GAAM,CACT,IAAIuuF,EAAOuY,EAASz0F,KAAO6hF,EAAI4S,EAASz0F,MAAQy0F,EAASvY,KACzD,OAAOw4C,GAAO3qC,GAAIR,GAAOrN,GAAOA,EAAK9lI,KAAKxC,QAAS+gL,GAIvD,IAAIx8H,EAA4B,GAAjBxK,EAAK0I,SAAgB1I,EAAO,KAAM6nI,EAAU7nI,EAK3D,IAJKwK,GAAsC,GAA1BxK,EAAK5H,WAAWnyC,QAA2C,GAA5B+5C,EAAKp5C,WAAW8hD,WAC9D8B,EAAWxK,EAAKp5C,WACZglB,IAAUA,EAAS4+B,EAAS2yC,UAAUl3F,SAErC4hL,EAAQvmK,YAAc1N,GAAWi0K,EAAUA,EAAQvmK,WAC1D,IAAIy3H,EAAU+N,EAAS/N,QAASyO,EAAOzO,EAAQyO,KAE/C,SAAS1gJ,EAAK0jD,EAAUq9H,EAASj8J,GAC/B,IAAK,IAAIxiB,GAAK,EAAGA,GAAKo+I,EAAOA,EAAKvhJ,OAAS,GAAImD,IAE7C,IADA,IAAIsQ,EAAMtQ,EAAI,EAAI2vI,EAAQr/H,IAAM8tI,EAAKp+I,GAC5Bo3C,EAAI,EAAGA,EAAI9mC,EAAIzT,OAAQu6C,GAAK,EAAG,CACtC,IAAIsnI,EAAUpuK,EAAI8mC,EAAI,GACtB,GAAIsnI,GAAWt9H,GAAYs9H,GAAWD,EAAS,CAC7C,IAAIt5C,EAAOqN,GAAOxyI,EAAI,EAAI09I,EAASvY,KAAOuY,EAASz0F,KAAKjpD,IACpDolI,EAAK90H,EAAI8mC,GAAK50B,EAElB,OADIA,EAAS,GAAKk8J,GAAWt9H,KAAYgkF,EAAK90H,EAAI8mC,GAAK50B,EAAS,EAAI,KAC7DwwH,GAAI7N,EAAMC,KAKzB,IAAIzxG,EAAQj2B,EAAK0jD,EAAUq9H,EAASj8J,GACpC,GAAImR,EAAS,OAAOgqJ,GAAOhqJ,EAAOiqJ,GAGlC,IAAK,IAAI3lG,EAAQwmG,EAAQx2D,YAAaqiC,EAAOlpG,EAAWA,EAAS2yC,UAAUl3F,OAAS2lB,EAAS,EAAGy1D,EAAOA,EAAQA,EAAMgwC,YAAa,CAEhI,GADAt0F,EAAQj2B,EAAKu6E,EAAOA,EAAMz6E,WAAY,GAElC,OAAOmgL,GAAO3qC,GAAIr/G,EAAMwxG,KAAMxxG,EAAMyxG,GAAKklB,GAAOszB,GAEhDtzB,GAAQryE,EAAMtsE,YAAY9O,OAEhC,IAAK,IAAI++G,EAAS6iE,EAAQE,gBAAiBC,EAASp8J,EAAQo5F,EAAQA,EAASA,EAAO+iE,gBAAiB,CAEnG,GADAhrJ,EAAQj2B,EAAKk+G,EAAQA,EAAOp+G,YAAa,GAErC,OAAOmgL,GAAO3qC,GAAIr/G,EAAMwxG,KAAMxxG,EAAMyxG,GAAKw5C,GAAShB,GAElDgB,GAAUhjE,EAAOjwG,YAAY9O,QA3gBrCkgL,GAAqBrlL,UAAUsB,KAAO,SAAUwT,GAC5C,IAAI44J,EAASxvK,KAEXsG,EAAQtG,KAAM0pC,EAAKpjC,EAAMojC,GACzBmwG,EAAMvzI,EAAMuzI,IAAMjjI,EAAQqjJ,QAI9B,SAASgvB,EAAe/jL,GACtB,IAAK,IAAIc,EAAId,EAAExB,OAAQsC,EAAGA,EAAIA,EAAEsc,WAAY,CAC1C,GAAItc,GAAK6zI,EAAO,OAAO,EACvB,GAAI,iCAAiCvxF,KAAKtiD,EAAEjD,WAAc,MAE5D,OAAO,EA4BT,SAASmmL,EAAUhkL,GACjB,GAAK+jL,EAAe/jL,KAAMuzI,GAAe/uG,EAAIxkC,GAA7C,CACA,GAAIwkC,EAAG68H,oBACLgc,GAAc,CAACS,UAAU,EAAOv5K,KAAMigC,EAAGmoI,kBAC3B,OAAV3sK,EAAE5D,MAAiBooC,EAAGooI,iBAAiB,GAAI,KAAM,WAChD,KAAKpoI,EAAGlnC,QAAQ2mL,gBACrB,OAEA,IAAItyB,EAAS6sB,GAAeh6I,GAC5B64I,GAAc,CAACS,UAAU,EAAMv5K,KAAMotJ,EAAOptJ,OAC9B,OAAVvE,EAAE5D,MACJooC,EAAG2lG,WAAU,WACX3lG,EAAGioI,cAAc9a,EAAOA,OAAQ,EAAGpiB,GACnC/qG,EAAGooI,iBAAiB,GAAI,KAAM,UAIpC,GAAI5sK,EAAE28F,cAAe,CACnB38F,EAAE28F,cAAcunF,YAChB,IAAIr2K,EAAUuvK,GAAW74K,KAAKsY,KAAK,MAGnC,GADA7c,EAAE28F,cAAcgtB,QAAQ,OAAQ97G,GAC5B7N,EAAE28F,cAAcrhF,QAAQ,SAAWzN,EAErC,YADA7N,EAAEmB,iBAKN,IAAIgjL,EAASvF,KAAkBtpC,EAAK6uC,EAAOzhL,WAC3C8hC,EAAG9yB,QAAQq3I,UAAUtmJ,aAAa0hL,EAAQ3/I,EAAG9yB,QAAQq3I,UAAUrmJ,YAC/D4yI,EAAG30I,MAAQy8K,GAAW74K,KAAKsY,KAAK,MAChC,IAAIunK,EAAWx2C,IACfW,EAAY+G,GACZv2H,YAAW,WACTylB,EAAG9yB,QAAQq3I,UAAU1rI,YAAY8mK,GACjCC,EAAS1vJ,QACL0vJ,GAAYzvC,GAAOvzI,EAAMijL,yBAC5B,KAzEL1vC,EAAI14C,iBAAkB,EACtByiF,GAAoB/pC,EAAKnwG,EAAGlnC,QAAQq9K,WAAYn2I,EAAGlnC,QAAQs9K,YAAap2I,EAAGlnC,QAAQu9K,gBAUnFpwK,GAAGkqI,EAAK,SAAS,SAAU30I,IACpB+jL,EAAe/jL,IAAMuzI,GAAe/uG,EAAIxkC,IAAMi+K,GAAYj+K,EAAGwkC,IAE9D2nG,GAAc,IAAMptH,WAAWorH,GAAU3lG,GAAI,WAAc,OAAO8lI,EAAOga,mBAAqB,OAGpG75K,GAAGkqI,EAAK,oBAAoB,SAAU30I,GACpCsqK,EAAOiY,UAAY,CAAC39K,KAAM5E,EAAE4E,KAAMqrH,MAAM,MAE1CxlH,GAAGkqI,EAAK,qBAAqB,SAAU30I,GAChCsqK,EAAOiY,YAAajY,EAAOiY,UAAY,CAAC39K,KAAM5E,EAAE4E,KAAMqrH,MAAM,OAEnExlH,GAAGkqI,EAAK,kBAAkB,SAAU30I,GAC9BsqK,EAAOiY,YACLviL,EAAE4E,MAAQ0lK,EAAOiY,UAAU39K,MAAQ0lK,EAAOia,kBAC9Cja,EAAOiY,UAAUtyD,MAAO,MAI5BxlH,GAAGkqI,EAAK,cAAc,WAAc,OAAOvzI,EAAMojL,yBAEjD/5K,GAAGkqI,EAAK,SAAS,WACV21B,EAAOiY,WAAajY,EAAOia,qBA0ClC95K,GAAGkqI,EAAK,OAAQqvC,GAChBv5K,GAAGkqI,EAAK,MAAOqvC,IAGjB/B,GAAqBrlL,UAAUs+K,yBAA2B,SAAUttK,GAE/DA,EACD9S,KAAK65I,IAAI7jI,aAAa,aAAclD,GAEpC9S,KAAK65I,IAAI76C,gBAAgB,eAI7BmoF,GAAqBrlL,UAAU00J,iBAAmB,WAChD,IAAIv0J,EAASu0J,GAAiBx2J,KAAK0pC,IAAI,GAEvC,OADAznC,EAAO23B,MAAQk5G,KAAe9yI,KAAK65I,IAC5B53I,GAGTklL,GAAqBrlL,UAAUy0J,cAAgB,SAAUjnD,EAAM4xD,GACxD5xD,GAAStvG,KAAK0pC,GAAG9yB,QAAQzT,KAAK8D,UAC/BqoG,EAAK11E,OAASsnI,IAAalhK,KAAKupL,uBACpCvpL,KAAK2pL,uBAAuBr6E,KAG9B63E,GAAqBrlL,UAAUspD,aAAe,WAC5C,OAAOprD,KAAK0pC,GAAG9yB,QAAQhC,QAAQ8J,cAAc0sC,gBAG/C+7H,GAAqBrlL,UAAUynL,qBAAuB,WACpD,IAAIj0J,EAAMt1B,KAAKorD,eAAgB1hB,EAAK1pC,KAAK0pC,GAAIi9H,EAAOj9H,EAAGjrB,IAAI6W,IAAImhI,UAC3D3pD,EAAO65D,EAAK75D,OAAQD,EAAK85D,EAAK95D,KAElC,GAAInjE,EAAG9yB,QAAQmqI,QAAUr3G,EAAG9yB,QAAQkqI,UAAYh0C,EAAKyiC,MAAQ7lG,EAAG9yB,QAAQmqI,QAAUl0C,EAAG0iC,KAAO7lG,EAAG9yB,QAAQkqI,SACrGxrH,EAAIqsE,sBADN,CAKA,IAAIioF,EAAYlB,GAASh/I,EAAIpU,EAAI6pE,WAAY7pE,EAAIwtI,cAC7C+mB,EAAWnB,GAASh/I,EAAIpU,EAAI8pE,UAAW9pE,EAAIytI,aAC/C,IAAI6mB,GAAcA,EAAU5B,MAAO6B,GAAaA,EAAS7B,KACX,GAA1CrtK,GAAI6iI,GAAOosC,EAAWC,GAAW/8E,IACO,GAAxCnyF,GAAI4iI,GAAOqsC,EAAWC,GAAWh9E,GAFrC,CAKA,IAAI1pG,EAAOumC,EAAG9yB,QAAQzT,KAClB+kB,EAAS4kF,EAAKyiC,MAAQ7lG,EAAG9yB,QAAQkqI,UAAY8mC,GAASl+I,EAAIojE,IAC1D,CAAC9rD,KAAM79C,EAAK,GAAG42I,QAAQr/H,IAAI,GAAIkS,OAAQ,GACvCkZ,EAAM+mE,EAAG0iC,KAAO7lG,EAAG9yB,QAAQmqI,QAAU6mC,GAASl+I,EAAImjE,GACtD,IAAK/mE,EAAK,CACR,IAAIi0G,EAAU52I,EAAKA,EAAK8D,OAAS,GAAG8yI,QAChCr/H,EAAMq/H,EAAQyO,KAAOzO,EAAQyO,KAAKzO,EAAQyO,KAAKvhJ,OAAS,GAAK8yI,EAAQr/H,IACzEorB,EAAM,CAACkb,KAAMtmC,EAAIA,EAAIzT,OAAS,GAAI2lB,OAAQlS,EAAIA,EAAIzT,OAAS,GAAKyT,EAAIA,EAAIzT,OAAS,IAGnF,GAAKihB,GAAU4d,EAAf,CAKA,IAA+CgkJ,EAA3CxjD,EAAMhxG,EAAI+1B,YAAc/1B,EAAIi2B,WAAW,GAC3C,IAAMu+H,EAAMx+H,EAAMpjC,EAAM84B,KAAM94B,EAAM0E,OAAQkZ,EAAIlZ,OAAQkZ,EAAIkb,MAC5D,MAAM97C,IACF4kL,KACG94C,GAAStnG,EAAG4J,MAAMxf,SACrBwB,EAAIg+G,SAASprH,EAAM84B,KAAM94B,EAAM0E,QAC1Bk9J,EAAIhkC,YACPxwH,EAAIqsE,kBACJrsE,EAAIssE,SAASkoF,MAGfx0J,EAAIqsE,kBACJrsE,EAAIssE,SAASkoF,IAEXxjD,GAAyB,MAAlBhxG,EAAI6pE,WAAsB7pE,EAAIssE,SAAS0kC,GACzC0K,GAAShxI,KAAK+pL,oBAEzB/pL,KAAKgqL,yBArBH10J,EAAIqsE,qBAwBRwlF,GAAqBrlL,UAAUioL,iBAAmB,WAC9C,IAAIva,EAASxvK,KAEf8rB,aAAa9rB,KAAK0nL,aAClB1nL,KAAK0nL,YAAczjK,YAAW,WAC5BurJ,EAAOkY,aAAc,EACjBlY,EAAOzP,oBACPyP,EAAO9lI,GAAG2lG,WAAU,WAAc,OAAOmgC,EAAO9lI,GAAGsvG,MAAM+mB,kBAAmB,OAC/E,KAGLonB,GAAqBrlL,UAAU6nL,uBAAyB,SAAUr6E,GAChEojC,EAAqB1yI,KAAK0pC,GAAG9yB,QAAQwiJ,UAAW9pD,EAAKqnD,SACrDjkB,EAAqB1yI,KAAK0pC,GAAG9yB,QAAQ+sJ,aAAcr0D,EAAKnkD,YAG1Dg8H,GAAqBrlL,UAAUkoL,kBAAoB,WACjD,IAAI10J,EAAMt1B,KAAKorD,eACfprD,KAAKonL,eAAiB9xJ,EAAI6pE,WAAYn/F,KAAKqnL,iBAAmB/xJ,EAAIwtI,aAClE9iK,KAAKsnL,cAAgBhyJ,EAAI8pE,UAAWp/F,KAAKunL,gBAAkBjyJ,EAAIytI,aAGjEokB,GAAqBrlL,UAAUmoL,kBAAoB,WACjD,IAAI30J,EAAMt1B,KAAKorD,eACf,IAAK91B,EAAI+1B,WAAc,OAAO,EAC9B,IAAIrK,EAAO1rB,EAAIi2B,WAAW,GAAG2+H,wBAC7B,OAAO36I,EAASvvC,KAAK65I,IAAK74F,IAG5BmmI,GAAqBrlL,UAAU83B,MAAQ,WACL,YAA5B55B,KAAK0pC,GAAGlnC,QAAQ42B,WACbp5B,KAAKiqL,qBAAuBn3C,KAAe9yI,KAAK65I,KACjD75I,KAAKu2J,cAAcv2J,KAAKw2J,oBAAoB,GAChDx2J,KAAK65I,IAAIjgH,UAGbutJ,GAAqBrlL,UAAU+uC,KAAO,WAAc7wC,KAAK65I,IAAIhpG,QAC7Ds2I,GAAqBrlL,UAAUu6K,SAAW,WAAc,OAAOr8K,KAAK65I,KAEpEstC,GAAqBrlL,UAAUk7K,cAAgB,WAAc,OAAO,GAEpEmK,GAAqBrlL,UAAUg4J,cAAgB,WAC3C,IAAI0V,EAASxvK,KAEXsG,EAAQtG,KAMZ,SAASmqL,IACH7jL,EAAMojC,GAAG4J,MAAMxf,UACjBxtB,EAAM8jL,gBACN9jL,EAAMkhL,QAAQ7jL,IAAI2C,EAAMojC,GAAGlnC,QAAQ6nL,aAAcF,IARjDnqL,KAAKiqL,oBACLhmK,YAAW,WAAc,OAAOurJ,EAAO4a,kBAAoB,IAE3DzoB,GAAQ3hK,KAAK0pC,IAAI,WAAc,OAAOpjC,EAAMojC,GAAGsvG,MAAM+mB,kBAAmB,KAQ5E//J,KAAKwnL,QAAQ7jL,IAAI3D,KAAK0pC,GAAGlnC,QAAQ6nL,aAAcF,IAGjDhD,GAAqBrlL,UAAUi+J,iBAAmB,WAChD,IAAIzqI,EAAMt1B,KAAKorD,eACf,OAAO91B,EAAI6pE,YAAcn/F,KAAKonL,gBAAkB9xJ,EAAIwtI,cAAgB9iK,KAAKqnL,kBACvE/xJ,EAAI8pE,WAAap/F,KAAKsnL,eAAiBhyJ,EAAIytI,aAAe/iK,KAAKunL,iBAGnEJ,GAAqBrlL,UAAUsoL,cAAgB,WAC7C,GAA2B,MAAvBpqL,KAAK2nL,iBAA0B3nL,KAAK0nL,aAAgB1nL,KAAK+/J,mBAA7D,CACA,IAAIzqI,EAAMt1B,KAAKorD,eAAgB1hB,EAAK1pC,KAAK0pC,GAOzC,GAAIsoG,GAAWR,GAAUxxI,KAAK0pC,GAAG9yB,QAAQ+1I,YAAY1lJ,QAAU4gL,GAAWvyJ,EAAI6pE,YAI5E,OAHAn/F,KAAK0pC,GAAG07I,iBAAiB,CAAC9jL,KAAM,UAAWkrC,QAAS,EAAGnmC,eAAgB+kB,KAAK+lD,MAC5EnxE,KAAK6wC,YACL7wC,KAAK45B,QAGP,IAAI55B,KAAKynL,UAAT,CACAznL,KAAKgqL,oBACL,IAAIp1B,EAAS8zB,GAASh/I,EAAIpU,EAAI6pE,WAAY7pE,EAAIwtI,cAC1Cj9I,EAAO6iK,GAASh/I,EAAIpU,EAAI8pE,UAAW9pE,EAAIytI,aACvCnO,GAAU/uI,GAAQ87I,GAAQj4H,GAAI,WAChConG,GAAapnG,EAAGjrB,IAAKooJ,GAAgBjS,EAAQ/uI,GAAO4uH,IAChDmgB,EAAOozB,KAAOniK,EAAKmiK,OAAOt+I,EAAGsvG,MAAM+mB,kBAAmB,SAI9DonB,GAAqBrlL,UAAUwoL,YAAc,WAChB,MAAvBtqL,KAAK2nL,iBACP77J,aAAa9rB,KAAK2nL,gBAClB3nL,KAAK2nL,eAAiB,MAGxB,IAQI4C,EAAW1xB,EAAU2xB,EARrB9gJ,EAAK1pC,KAAK0pC,GAAI9yB,EAAU8yB,EAAG9yB,QAAS0e,EAAMoU,EAAGjrB,IAAI6W,IAAImhI,UACrD3pD,EAAOx3E,EAAIw3E,OAAQD,EAAKv3E,EAAIu3E,KAKhC,GAJe,GAAXC,EAAK0iC,IAAW1iC,EAAKyiC,KAAO7lG,EAAGo+H,cAC/Bh7D,EAAOswC,GAAItwC,EAAKyiC,KAAO,EAAG6M,GAAQ1yG,EAAGjrB,IAAKquF,EAAKyiC,KAAO,GAAGtoI,SACzD4lG,EAAG2iC,IAAM4M,GAAQ1yG,EAAGjrB,IAAKouF,EAAG0iC,MAAM9lI,KAAKxC,QAAU4lG,EAAG0iC,KAAO7lG,EAAG+8G,aAC9D55C,EAAKuwC,GAAIvwC,EAAG0iC,KAAO,EAAG,IACtBziC,EAAKyiC,KAAO34H,EAAQkqI,UAAYj0C,EAAG0iC,KAAO34H,EAAQmqI,OAAS,EAAK,OAAO,EAGvEj0C,EAAKyiC,MAAQ34H,EAAQkqI,UAA0D,IAA7CypC,EAAY76B,GAAchmH,EAAIojE,EAAKyiC,QACvEspB,EAAWjc,GAAOhmI,EAAQzT,KAAK,GAAGosI,MAClCi7C,EAAW5zK,EAAQzT,KAAK,GAAG69C,OAE3B63G,EAAWjc,GAAOhmI,EAAQzT,KAAKonL,GAAWh7C,MAC1Ci7C,EAAW5zK,EAAQzT,KAAKonL,EAAY,GAAGvpI,KAAKqxE,aAE9C,IACIymC,EAAQ2xB,EADRC,EAAUh7B,GAAchmH,EAAImjE,EAAG0iC,MAUnC,GARIm7C,GAAW9zK,EAAQzT,KAAK8D,OAAS,GACnC6xJ,EAASliJ,EAAQmqI,OAAS,EAC1B0pC,EAAS7zK,EAAQqjJ,QAAQpmC,YAEzBilC,EAASlc,GAAOhmI,EAAQzT,KAAKunL,EAAU,GAAGn7C,MAAQ,EAClDk7C,EAAS7zK,EAAQzT,KAAKunL,EAAU,GAAG1pI,KAAK+nI,kBAGrCyB,EAAY,OAAO,EAGxB,IAFA,IAAIG,EAAUjhJ,EAAGjrB,IAAIyvJ,WAAW+Z,GAAev+I,EAAI8gJ,EAAUC,EAAQ5xB,EAAUC,IAC3E8xB,EAAUpuC,GAAW9yG,EAAGjrB,IAAK2+H,GAAIyb,EAAU,GAAIzb,GAAI0b,EAAQ1c,GAAQ1yG,EAAGjrB,IAAKq6I,GAAQrvJ,KAAKxC,SACrF0jL,EAAQ1jL,OAAS,GAAK2jL,EAAQ3jL,OAAS,GAC5C,GAAIiuI,EAAIy1C,IAAYz1C,EAAI01C,GAAYD,EAAQjpL,MAAOkpL,EAAQlpL,MAAOo3J,QAC7D,IAAI6xB,EAAQ,IAAMC,EAAQ,GACxB,MAD8BD,EAAQhpL,QAASipL,EAAQjpL,QAASk3J,IAMzE,IAFA,IAAIgyB,EAAW,EAAGC,EAAS,EACvBhvB,EAAS6uB,EAAQ,GAAII,EAASH,EAAQ,GAAII,EAAc5/J,KAAKE,IAAIwwI,EAAO70J,OAAQ8jL,EAAO9jL,QACpF4jL,EAAWG,GAAelvB,EAAOpuE,WAAWm9F,IAAaE,EAAOr9F,WAAWm9F,MAC5EA,EAIN,IAHA,IAAII,EAAS/1C,EAAIy1C,GAAUO,EAASh2C,EAAI01C,GACpCO,EAAY//J,KAAKE,IAAI2/J,EAAOhkL,QAA4B,GAAlB0jL,EAAQ1jL,OAAc4jL,EAAW,GAClDK,EAAOjkL,QAA4B,GAAlB2jL,EAAQ3jL,OAAc4jL,EAAW,IACpEC,EAASK,GACTF,EAAOv9F,WAAWu9F,EAAOhkL,OAAS6jL,EAAS,IAAMI,EAAOx9F,WAAWw9F,EAAOjkL,OAAS6jL,EAAS,MAC7FA,EAEN,GAAsB,GAAlBH,EAAQ1jL,QAAiC,GAAlB2jL,EAAQ3jL,QAAe4xJ,GAAY/rD,EAAKyiC,KACjE,KAAOs7C,GAAYA,EAAW/9E,EAAK0iC,IAC5By7C,EAAOv9F,WAAWu9F,EAAOhkL,OAAS6jL,EAAS,IAAMI,EAAOx9F,WAAWw9F,EAAOjkL,OAAS6jL,EAAS,IACjGD,IACAC,IAIJH,EAAQA,EAAQ1jL,OAAS,GAAKgkL,EAAO7qI,MAAM,EAAG6qI,EAAOhkL,OAAS6jL,GAAQ/+K,QAAQ,WAAY,IAC1F4+K,EAAQ,GAAKA,EAAQ,GAAGvqI,MAAMyqI,GAAU9+K,QAAQ,WAAY,IAE5D,IAAIq/K,EAAShuC,GAAIyb,EAAUgyB,GACvBQ,EAAOjuC,GAAI0b,EAAQ8xB,EAAQ3jL,OAASiuI,EAAI01C,GAAS3jL,OAAS6jL,EAAS,GACvE,OAAIH,EAAQ1jL,OAAS,GAAK0jL,EAAQ,IAAMhwK,GAAIywK,EAAQC,IAClD/7C,GAAa5lG,EAAGjrB,IAAKksK,EAASS,EAAQC,EAAM,WACrC,QAFT,GAMFlE,GAAqBrlL,UAAUw5K,aAAe,WAC5Ct7K,KAAK0pL,uBAEPvC,GAAqBrlL,UAAU2P,MAAQ,WACrCzR,KAAK0pL,uBAEPvC,GAAqBrlL,UAAU4nL,oBAAsB,WAC9C1pL,KAAKynL,YACV37J,aAAa9rB,KAAK2nL,gBAClB3nL,KAAKynL,UAAY,KACjBznL,KAAKwpL,gBACLxpL,KAAK65I,IAAIhpG,OACT7wC,KAAK65I,IAAIjgH,UAEXutJ,GAAqBrlL,UAAU2nL,gBAAkB,WAC7C,IAAIja,EAASxvK,KAEY,MAAvBA,KAAK2nL,iBACT3nL,KAAK2nL,eAAiB1jK,YAAW,WAE/B,GADAurJ,EAAOmY,eAAiB,KACpBnY,EAAOiY,UAAW,CACpB,IAAIjY,EAAOiY,UAAUtyD,KACd,OADsBq6C,EAAOiY,UAAY,KAGlDjY,EAAOga,kBACN,MAGLrC,GAAqBrlL,UAAU0nL,cAAgB,WAC3C,IAAIha,EAASxvK,MAEXA,KAAK0pC,GAAG4qI,cAAiBt0K,KAAKsqL,eAC9B3oB,GAAQ3hK,KAAK0pC,IAAI,WAAc,OAAO6rH,GAAUia,EAAO9lI,QAG7Dy9I,GAAqBrlL,UAAU6nJ,cAAgB,SAAU3oG,GACvDA,EAAKmgD,gBAAkB,SAGzBgmF,GAAqBrlL,UAAUgpB,WAAa,SAAU5lB,GAClC,GAAdA,EAAEs3K,UAAiBx8K,KAAKynL,YAC5BviL,EAAEmB,iBACGrG,KAAK0pC,GAAG4qI,cACTjlC,GAAUrvI,KAAK0pC,GAAI+4I,GAAnBpzC,CAAmCrvI,KAAK0pC,GAAImiC,OAAOu0D,aAA2B,MAAdl7H,EAAEs3K,SAAmBt3K,EAAEsnC,QAAUtnC,EAAEs3K,UAAW,KAGpH2K,GAAqBrlL,UAAUq+K,gBAAkB,SAAU/2K,GACzDpJ,KAAK65I,IAAI14C,gBAAkBt1B,OAAc,YAAPziE,IAGpC+9K,GAAqBrlL,UAAUu7K,cAAgB,aAC/C8J,GAAqBrlL,UAAUw+K,cAAgB,aAE/C6G,GAAqBrlL,UAAU4nJ,uBAAwB,EA2JvD,IAAI4hC,GAAgB,SAAS5hJ,GAC3B1pC,KAAK0pC,GAAKA,EAEV1pC,KAAKurL,UAAY,GAKjBvrL,KAAKwrL,aAAc,EAEnBxrL,KAAKwnL,QAAU,IAAItzC,EAEnBl0I,KAAKu6I,cAAe,EACpBv6I,KAAKynL,UAAY,MA6VnB,SAASnuJ,GAAamyJ,EAAUjpL,GAS9B,IARAA,EAAUA,EAAUkxI,EAAQlxI,GAAW,IAC/BqD,MAAQ4lL,EAAS5lL,OACpBrD,EAAQkpL,UAAYD,EAASh+C,WAC9BjrI,EAAQkpL,SAAWD,EAASh+C,WAC3BjrI,EAAQslD,aAAe2jI,EAAS3jI,cACjCtlD,EAAQslD,YAAc2jI,EAAS3jI,aAGV,MAArBtlD,EAAQs+K,UAAmB,CAC7B,IAAIltJ,EAAWk/G,IACftwI,EAAQs+K,UAAYltJ,GAAY63J,GACQ,MAAtCA,EAASvoH,aAAa,cAAwBtvC,GAAY1rB,SAAS+B,KAGvE,SAAS08H,IAAQ8kD,EAAS5lL,MAAQ6jC,EAAG5P,WAErC,IAAI6xJ,EACJ,GAAIF,EAAS1lL,OACX4J,GAAG87K,EAAS1lL,KAAM,SAAU4gI,IAEvBnkI,EAAQopL,wBAAwB,CACnC,IAAI7lL,EAAO0lL,EAAS1lL,KACpB4lL,EAAa5lL,EAAKwC,OAClB,IACE,IAAIsjL,EAAgB9lL,EAAKwC,OAAS,WAChCo+H,IACA5gI,EAAKwC,OAASojL,EACd5lL,EAAKwC,SACLxC,EAAKwC,OAASsjL,GAEhB,MAAM3mL,KAIZ1C,EAAQw+K,WAAa,SAAUt3I,GAC7BA,EAAGi9F,KAAOA,EACVj9F,EAAGoiJ,YAAc,WAAc,OAAOL,GACtC/hJ,EAAGqiJ,WAAa,WACdriJ,EAAGqiJ,WAAazjK,MAChBq+G,IACA8kD,EAASnpK,WAAWC,YAAYmnB,EAAG0tH,qBACnCq0B,EAAS90K,MAAMC,QAAU,GACrB60K,EAAS1lL,OACX0P,GAAIg2K,EAAS1lL,KAAM,SAAU4gI,GACxBnkI,EAAQopL,wBAAyD,mBAAxBH,EAAS1lL,KAAKwC,SACxDkjL,EAAS1lL,KAAKwC,OAASojL,MAKjCF,EAAS90K,MAAMC,QAAU,OACzB,IAAI8yB,EAAKvR,IAAW,SAAU6oB,GAAQ,OAAOyqI,EAASnpK,WAAW3a,aAAaq5C,EAAMyqI,EAASp5D,eAC3F7vH,GACF,OAAOknC,EAGT,SAASsiJ,GAAe7zJ,GACtBA,EAAW1iB,IAAMA,GACjB0iB,EAAWxoB,GAAKA,GAChBwoB,EAAWwtI,iBAAmBA,GAC9BxtI,EAAW84I,IAAMA,GACjB94I,EAAW+1I,WAAa9zB,GACxBjiH,EAAWy7G,YAAcA,EACzBz7G,EAAWy8G,WAAaA,EACxBz8G,EAAWs9G,WAAaD,GACxBr9G,EAAWq8G,KAAOA,EAClBr8G,EAAWqgH,OAASA,GACpBrgH,EAAWkvH,KAAOA,GAClBlvH,EAAW2uI,UAAYA,GACvB3uI,EAAWonI,eAAiBA,GAC5BpnI,EAAWilH,IAAMA,GACjBjlH,EAAW8zJ,OAAStxK,GACpBwd,EAAW6H,MAAQA,GACnB7H,EAAW6iH,UAAYA,GACvB7iH,EAAWmjH,YAAcA,GACzBnjH,EAAWg3G,QAAUA,GACrBh3G,EAAWsjH,eAAiBA,GAC5BtjH,EAAWk2G,WAAaA,GACxBl2G,EAAW83G,UAAYA,GACvB93G,EAAW4jH,WAAaA,GACxB5jH,EAAW+2G,UAAYA,GACvB/2G,EAAW8B,SAAWA,GACtB9B,EAAW09I,OAASA,GACpB19I,EAAWo+I,QAAUA,GACrBp+I,EAAWi+I,cAAgBA,GAC3Bj+I,EAAW89I,UAAYA,GACvB99I,EAAW49I,gBAAkBA,GAC7B59I,EAAWq4G,aAAeA,GAC1Br4G,EAAWm4I,iBAAmBA,GAC9Bn4I,EAAWw3I,WAAaA,GACxBx3I,EAAWi3I,WAAaA,GACxBj3I,EAAWkhH,iBAAmBA,GAC9BlhH,EAAWmhH,kBAAoBA,GAC/BnhH,EAAWohH,OAASA,GACpBphH,EAAWvzB,SAAWA,EACtBuzB,EAAWoX,SAAWA,EACtBpX,EAAWs6G,QAAUA,EACrBt6G,EAAWy9I,SAAWA,GA5bxB0V,GAAcxpL,UAAUsB,KAAO,SAAUwT,GACrC,IAAI44J,EAASxvK,KAEXsG,EAAQtG,KAAM0pC,EAAK1pC,KAAK0pC,GAC5B1pC,KAAKksL,YAAYt1K,GACjB,IAAI4jI,EAAKx6I,KAAKyrL,SAmBd,SAASU,EAAejnL,GACtB,IAAIuzI,GAAe/uG,EAAIxkC,GAAvB,CACA,GAAIwkC,EAAG68H,oBACLgc,GAAc,CAACS,UAAU,EAAOv5K,KAAMigC,EAAGmoI,sBACpC,KAAKnoI,EAAGlnC,QAAQ2mL,gBACrB,OAEA,IAAItyB,EAAS6sB,GAAeh6I,GAC5B64I,GAAc,CAACS,UAAU,EAAMv5K,KAAMotJ,EAAOptJ,OAC9B,OAAVvE,EAAE5D,KACJooC,EAAGioI,cAAc9a,EAAOA,OAAQ,KAAMpiB,IAEtCnuI,EAAMilL,UAAY,GAClB/wC,EAAG30I,MAAQgxJ,EAAOptJ,KAAKsY,KAAK,MAC5B0xH,EAAY+G,IAGF,OAAVt1I,EAAE5D,OAAiBooC,EAAG4J,MAAMutI,aAAe,IAAIxsC,OAlCrDz9H,EAAQhC,QAAQjN,aAAa3H,KAAK4U,QAASgC,EAAQhC,QAAQhN,YAGvDkqI,IAAO0I,EAAG7jI,MAAMtU,MAAQ,OAE5BsN,GAAG6qI,EAAI,SAAS,WACVpJ,GAAMC,GAAc,GAAKm+B,EAAOj1B,eAAgBi1B,EAAOj1B,aAAe,MAC1Ej0I,EAAM6jL,UAGRx6K,GAAG6qI,EAAI,SAAS,SAAUt1I,GACpBuzI,GAAe/uG,EAAIxkC,IAAMi+K,GAAYj+K,EAAGwkC,KAE5CA,EAAG4J,MAAMstI,eAAiB,IAAIvsC,KAC9B/tI,EAAM8lL,eAsBRz8K,GAAG6qI,EAAI,MAAO2xC,GACdx8K,GAAG6qI,EAAI,OAAQ2xC,GAEfx8K,GAAGiH,EAAQ63I,SAAU,SAAS,SAAUvpJ,GACtC,IAAI4oJ,GAAcl3I,EAAS1R,KAAMuzI,GAAe/uG,EAAIxkC,GAApD,CACA,IAAKs1I,EAAG3zH,cAGN,OAFA6iB,EAAG4J,MAAMstI,eAAiB,IAAIvsC,UAC9B/tI,EAAMszB,QAKR,IAAItsB,EAAQ,IAAIuyE,MAAM,SACtBvyE,EAAMu0F,cAAgB38F,EAAE28F,cACxB24C,EAAG3zH,cAAcvZ,OAInBqC,GAAGiH,EAAQq3I,UAAW,eAAe,SAAU/oJ,GACxC4oJ,GAAcl3I,EAAS1R,IAAMm0I,GAAiBn0I,MAGrDyK,GAAG6qI,EAAI,oBAAoB,WACzB,IAAItyH,EAAQwhB,EAAGvP,UAAU,QACrB7zB,EAAMmhL,WAAanhL,EAAMmhL,UAAUn8H,MAAMppB,QAC7C57B,EAAMmhL,UAAY,CAChBv/J,MAAOA,EACPojC,MAAO5hB,EAAGkmI,SAAS1nJ,EAAOwhB,EAAGvP,UAAU,MAAO,CAACp3B,UAAW,6BAG9D4M,GAAG6qI,EAAI,kBAAkB,WACnBl0I,EAAMmhL,YACRnhL,EAAM6jL,OACN7jL,EAAMmhL,UAAUn8H,MAAMppB,QACtB57B,EAAMmhL,UAAY,UAKxB6D,GAAcxpL,UAAUoqL,YAAc,SAAUG,GAE9CrsL,KAAK4U,QAAUkvK,KAGf9jL,KAAKyrL,SAAWzrL,KAAK4U,QAAQhN,YAG/B0jL,GAAcxpL,UAAUs+K,yBAA2B,SAAUttK,GAExDA,EACD9S,KAAKyrL,SAASz1K,aAAa,aAAclD,GAEzC9S,KAAKyrL,SAASzsF,gBAAgB,eAIlCssF,GAAcxpL,UAAU00J,iBAAmB,WAEzC,IAAI9sH,EAAK1pC,KAAK0pC,GAAI9yB,EAAU8yB,EAAG9yB,QAAS6H,EAAMirB,EAAGjrB,IAC7Cxc,EAASu0J,GAAiB9sH,GAG9B,GAAIA,EAAGlnC,QAAQ8pL,oBAAqB,CAClC,IAAIxG,EAAU/yB,GAAarpH,EAAIjrB,EAAI6W,IAAImhI,UAAU5wI,KAAM,OACnD0mK,EAAU31K,EAAQhC,QAAQuO,wBAAyBqpK,EAAU51K,EAAQqjJ,QAAQ92I,wBACjFlhB,EAAOwqL,MAAQrhK,KAAKC,IAAI,EAAGD,KAAKE,IAAI1U,EAAQhC,QAAQotE,aAAe,GAC/B8jG,EAAQ9lK,IAAMwsK,EAAQxsK,IAAMusK,EAAQvsK,MACxE/d,EAAOyqL,OAASthK,KAAKC,IAAI,EAAGD,KAAKE,IAAI1U,EAAQhC,QAAQktE,YAAc,GAC9BgkG,EAAQ/lK,KAAOysK,EAAQzsK,KAAOwsK,EAAQxsK,OAG7E,OAAO9d,GAGTqpL,GAAcxpL,UAAUy0J,cAAgB,SAAUo2B,GAChD,IAAkB/1K,EAAT5W,KAAK0pC,GAAiB9yB,QAC/B87H,EAAqB97H,EAAQwiJ,UAAWuzB,EAAMh2B,SAC9CjkB,EAAqB97H,EAAQ+sJ,aAAcgpB,EAAMxhI,WAC9B,MAAfwhI,EAAMF,QACRzsL,KAAK4U,QAAQ+B,MAAMqJ,IAAM2sK,EAAMF,MAAQ,KACvCzsL,KAAK4U,QAAQ+B,MAAMoJ,KAAO4sK,EAAMD,OAAS,OAM7CpB,GAAcxpL,UAAU2P,MAAQ,SAAUouJ,GACxC,IAAI7/J,KAAK4sL,qBAAsB5sL,KAAKynL,UAApC,CACA,IAAI/9I,EAAK1pC,KAAK0pC,GACd,GAAIA,EAAG68H,oBAAqB,CAC1BvmK,KAAKurL,UAAY,GACjB,IAAIx4K,EAAU22B,EAAG0hB,eACjBprD,KAAKyrL,SAAS5lL,MAAQkN,EAClB22B,EAAG4J,MAAMxf,SAAW2/G,EAAYzzI,KAAKyrL,UACrCr6C,GAAMC,GAAc,IAAKrxI,KAAKu6I,aAAexnI,QACvC8sJ,IACV7/J,KAAKurL,UAAYvrL,KAAKyrL,SAAS5lL,MAAQ,GACnCurI,GAAMC,GAAc,IAAKrxI,KAAKu6I,aAAe,SAIrD+wC,GAAcxpL,UAAUu6K,SAAW,WAAc,OAAOr8K,KAAKyrL,UAE7DH,GAAcxpL,UAAUk7K,cAAgB,WAAc,OAAO,GAE7DsO,GAAcxpL,UAAU83B,MAAQ,WAC9B,GAAgC,YAA5B55B,KAAK0pC,GAAGlnC,QAAQ42B,YAA4B64G,GAAUa,KAAe9yI,KAAKyrL,UAC5E,IAAMzrL,KAAKyrL,SAAS7xJ,QACpB,MAAO10B,MAIXomL,GAAcxpL,UAAU+uC,KAAO,WAAc7wC,KAAKyrL,SAAS56I,QAE3Dy6I,GAAcxpL,UAAUw+K,cAAgB,WACtCtgL,KAAK4U,QAAQ+B,MAAMqJ,IAAMhgB,KAAK4U,QAAQ+B,MAAMoJ,KAAO,GAGrDurK,GAAcxpL,UAAUg4J,cAAgB,WAAc95J,KAAK6sL,YAI3DvB,GAAcxpL,UAAU+qL,SAAW,WAC/B,IAAIrd,EAASxvK,KAEXA,KAAKwrL,aACTxrL,KAAKwnL,QAAQ7jL,IAAI3D,KAAK0pC,GAAGlnC,QAAQ6nL,cAAc,WAC7C7a,EAAO2a,OACH3a,EAAO9lI,GAAG4J,MAAMxf,SAAW07I,EAAOqd,eAO1CvB,GAAcxpL,UAAUsqL,SAAW,WACjC,IAAIU,GAAS,EAAOxmL,EAAQtG,KAE5B,SAAS42B,IACOtwB,EAAM6jL,QACH2C,GACXxmL,EAAMklL,aAAc,EAAOllL,EAAMumL,aADbC,GAAS,EAAMxmL,EAAMkhL,QAAQ7jL,IAAI,GAAIizB,IAHjEtwB,EAAMklL,aAAc,EAMpBllL,EAAMkhL,QAAQ7jL,IAAI,GAAIizB,IASxB00J,GAAcxpL,UAAUqoL,KAAO,WAC3B,IAAI3a,EAASxvK,KAEX0pC,EAAK1pC,KAAK0pC,GAAIpjC,EAAQtG,KAAKyrL,SAAUF,EAAYvrL,KAAKurL,UAK1D,GAAIvrL,KAAK4sL,qBAAuBljJ,EAAG4J,MAAMxf,SACpCymH,GAAaj0I,KAAWilL,IAAcvrL,KAAKynL,WAC5C/9I,EAAG4qI,cAAgB5qI,EAAGlnC,QAAQ6gL,cAAgB35I,EAAG4J,MAAMwoI,OACvD,OAAO,EAEX,IAAIryK,EAAOnD,EAAMT,MAEjB,GAAI4D,GAAQ8hL,IAAc7hJ,EAAG68H,oBAAuB,OAAO,EAI3D,GAAIn1B,GAAMC,GAAc,GAAKrxI,KAAKu6I,eAAiB9wI,GAC/CyoI,GAAO,kBAAkB5pF,KAAK7+C,GAEhC,OADAigC,EAAG9yB,QAAQtQ,MAAMmL,SACV,EAGT,GAAIi4B,EAAGjrB,IAAI6W,KAAOoU,EAAG9yB,QAAQijJ,kBAAmB,CAC9C,IAAI9+I,EAAQtR,EAAKikF,WAAW,GAE5B,GADa,MAAT3yE,GAAoBwwK,IAAaA,EAAY,KACpC,MAATxwK,EAAiC,OAAd/a,KAAKyR,QAAgBzR,KAAK0pC,GAAGsH,YAAY,QAIlE,IADA,IAAI+7I,EAAO,EAAG1rI,EAAIj2B,KAAKE,IAAIigK,EAAUtkL,OAAQwC,EAAKxC,QAC3C8lL,EAAO1rI,GAAKkqI,EAAU79F,WAAWq/F,IAAStjL,EAAKikF,WAAWq/F,MAAWA,EAgB5E,OAdAprB,GAAQj4H,GAAI,WACV+4I,GAAe/4I,EAAIjgC,EAAK22C,MAAM2sI,GAAOxB,EAAUtkL,OAAS8lL,EACzC,KAAMvd,EAAOiY,UAAY,WAAa,MAGjDh+K,EAAKxC,OAAS,KAAQwC,EAAKkL,QAAQ,OAAS,EAAKrO,EAAMT,MAAQ2pK,EAAO+b,UAAY,GAC/E/b,EAAO+b,UAAY9hL,EAEtB+lK,EAAOiY,YACTjY,EAAOiY,UAAUn8H,MAAMppB,QACvBstI,EAAOiY,UAAUn8H,MAAQ5hB,EAAGkmI,SAASJ,EAAOiY,UAAUv/J,MAAOwhB,EAAGvP,UAAU,MACvC,CAACp3B,UAAW,8BAG5C,GAGTuoL,GAAcxpL,UAAUw5K,aAAe,WACjCt7K,KAAKwrL,aAAexrL,KAAKmqL,SAAUnqL,KAAKwrL,aAAc,IAG5DF,GAAcxpL,UAAUgpB,WAAa,WAC/BsmH,GAAMC,GAAc,IAAKrxI,KAAKu6I,aAAe,MACjDv6I,KAAKosL,YAGPd,GAAcxpL,UAAUu7K,cAAgB,SAAUn4K,GAChD,IAAIoB,EAAQtG,KAAM0pC,EAAKpjC,EAAMojC,GAAI9yB,EAAU8yB,EAAG9yB,QAAS4jI,EAAKl0I,EAAMmlL,SAC9DnlL,EAAMsmL,oBAAsBtmL,EAAMsmL,qBACtC,IAAIz7J,EAAM+jI,GAAaxrH,EAAIxkC,GAAIi2J,EAAYvkJ,EAAQ63I,SAAS9nJ,UAC5D,GAAKwqB,IAAOsgH,EAAZ,CAIY/nG,EAAGlnC,QAAQwqL,8BACmB,GAA7BtjJ,EAAGjrB,IAAI6W,IAAIia,SAASpe,IAC7Bk+G,GAAU3lG,EAAIonG,GAAdzB,CAA4B3lG,EAAGjrB,IAAKooJ,GAAgB11I,GAAMsjH,GAE9D,IAIIw4C,EAJAC,EAAS1yC,EAAG7jI,MAAMkyD,QAASskH,EAAgB7mL,EAAMsO,QAAQ+B,MAAMkyD,QAC/DukH,EAAa9mL,EAAMsO,QAAQwvD,aAAajhD,wBAwD5C,GAvDA7c,EAAMsO,QAAQ+B,MAAMkyD,QAAU,mBAC9B2xE,EAAG7jI,MAAMkyD,QAAU,+DAAiE3jE,EAAEga,QAAUkuK,EAAWptK,IAAM,GAAK,cAAgB9a,EAAE+Z,QAAUmuK,EAAWrtK,KAAO,GAAK,0CAA4CqxH,EAAK,2BAA6B,eAAiB,oHAEpQE,IAAU27C,EAAaltL,OAAOstL,SAClCz2K,EAAQtQ,MAAMszB,QACV03G,GAAUvxI,OAAOilB,SAAS,KAAMioK,GACpCr2K,EAAQtQ,MAAMmL,QAETi4B,EAAG68H,sBAAuB/rB,EAAG30I,MAAQS,EAAMilL,UAAY,KAC5DjlL,EAAMsmL,mBAAqBU,EAC3B12K,EAAQijJ,kBAAoBnwH,EAAGjrB,IAAI6W,IACnCxJ,aAAalV,EAAQ22K,oBA2CjBn8C,GAAMC,GAAc,GAAKm8C,IACzBj7C,EAAmB,CACrBgH,GAAOr0I,GACP,IAAIuoL,EAAU,WACZh4K,GAAI1V,OAAQ,UAAW0tL,GACvBxpK,WAAWqpK,EAAQ,KAErB39K,GAAG5P,OAAQ,UAAW0tL,QAEtBxpK,WAAWqpK,EAAQ,IA/CrB,SAASE,IACP,GAAyB,MAArBhzC,EAAGzG,eAAwB,CAC7B,IAAI3/H,EAAWs1B,EAAG68H,oBACdmnB,EAAS,KAAYt5K,EAAWomI,EAAG30I,MAAQ,IAC/C20I,EAAG30I,MAAQ,IACX20I,EAAG30I,MAAQ6nL,EACXpnL,EAAMilL,UAAYn3K,EAAW,GAAK,IAClComI,EAAGzG,eAAiB,EAAGyG,EAAGxG,aAAe05C,EAAOzmL,OAGhD2P,EAAQijJ,kBAAoBnwH,EAAGjrB,IAAI6W,KAGvC,SAASg4J,IACP,GAAIhnL,EAAMsmL,oBAAsBU,IAChChnL,EAAMsmL,oBAAqB,EAC3BtmL,EAAMsO,QAAQ+B,MAAMkyD,QAAUskH,EAC9B3yC,EAAG7jI,MAAMkyD,QAAUqkH,EACf97C,GAAMC,EAAa,GAAKz6H,EAAQqmJ,WAAWJ,aAAajmJ,EAAQ63I,SAAS9nJ,UAAYw0J,GAGhE,MAArB3gB,EAAGzG,gBAAwB,GACxB3C,GAAOA,GAAMC,EAAa,IAAMm8C,IACrC,IAAIpjL,EAAI,EAAG+/K,EAAO,WACZvzK,EAAQijJ,mBAAqBnwH,EAAGjrB,IAAI6W,KAA4B,GAArBklH,EAAGzG,gBAC9CyG,EAAGxG,aAAe,GAAwB,KAAnB1tI,EAAMilL,UAC/Bl8C,GAAU3lG,EAAIxP,GAAdm1G,CAAyB3lG,GAChBt/B,IAAM,GACfwM,EAAQ22K,mBAAqBtpK,WAAWkmK,EAAM,MAE9CvzK,EAAQijJ,kBAAoB,KAC5BjjJ,EAAQtQ,MAAMmL,UAGlBmF,EAAQ22K,mBAAqBtpK,WAAWkmK,EAAM,QAiBpDmB,GAAcxpL,UAAUq+K,gBAAkB,SAAU/2K,GAC7CA,GAAOpJ,KAAKyR,QACjBzR,KAAKyrL,SAAS9iL,SAAkB,YAAPS,EACzBpJ,KAAKyrL,SAASryJ,WAAahwB,GAG7BkiL,GAAcxpL,UAAU6nJ,cAAgB,aAExC2hC,GAAcxpL,UAAU4nJ,uBAAwB,EAyGhD61B,GAAcpnJ,IAEd4rJ,GAAiB5rJ,IAGjB,IAAIw1J,GAAe,gDAAgDlsL,MAAM,KACzE,IAAK,IAAI80B,MAAQ06I,GAAInvK,UAAiBmvK,GAAInvK,UAAU6/B,eAAepL,KAAS5hB,EAAQg5K,GAAcp3J,IAAQ,IACtG4B,GAAWr2B,UAAUy0B,IAAQ,SAAU/rB,GACvC,OAAO,WAAY,OAAOA,EAAOo/C,MAAM5pD,KAAKye,IAAKsF,YADpB,CAE5BktJ,GAAInvK,UAAUy0B,MAkCnB,OAhCA4iH,GAAW83B,IACX94I,GAAWuoJ,YAAc,CAAC,SAAY4K,GAAe,gBAAmBnE,IAKxEhvJ,GAAW8iH,WAAa,SAAS92I,GAC1Bg0B,GAAW1oB,SAASgqB,MAAgB,QAARt1B,IAAkBg0B,GAAW1oB,SAASgqB,KAAOt1B,GAC9E82I,GAAWrxF,MAAM5pD,KAAM+jB,YAGzBoU,GAAWgjH,WAAaA,GAGxBhjH,GAAW8iH,WAAW,QAAQ,WAAc,MAAO,CAAEvK,MAAO,SAAUH,GAAU,OAAOA,EAAO4N,iBAC9FhmH,GAAWgjH,WAAW,aAAc,QAIpChjH,GAAW42G,gBAAkB,SAAU5qI,EAAMkO,GAC3C8lB,GAAWr2B,UAAUqC,GAAQkO,GAE/B8lB,GAAWy1J,mBAAqB,SAAUzpL,EAAMkO,GAC9C4+J,GAAInvK,UAAUqC,GAAQkO,GAGxB8lB,GAAWmB,aAAeA,GAE1B0yJ,GAAe7zJ,IAEfA,GAAW01J,QAAU,SAEd11J,GA5lTyE14B,I,gBCA/E,SAAS04B,GACZ,aAuZE,SAAS21J,EAAO5xI,GAEd,IADA,IAAIr6B,EAAO,GACFzX,EAAI,EAAGA,EAAI8xC,EAAMj1C,SAAUmD,EAClCyX,EAAKq6B,EAAM9xC,GAAGkvC,gBAAiB,EAEjC,OAAOz3B,EA1ZXsW,EAAW8iH,WAAW,OAAO,SAASv4I,EAAQqrL,GAC5C,IAAIt1H,EAASs1H,EAAat1H,OACrBs1H,EAAaC,mBAAkBD,EAAe51J,EAAWmjH,YAAY,aAE1E,IAiBIh6I,EAAMo3I,EAjBNupC,EAAav/K,EAAOu/K,WACpBgM,EAAaF,EAAaE,WAC1BC,EAAgBH,EAAaG,eAAiB,GAC9CC,EAAaJ,EAAaI,YAAc,GACxCC,EAAgBL,EAAaK,eAAiB,GAC9CC,EAAqBN,EAAaM,oBAAsB,GACxDL,EAAmBD,EAAaC,kBAAoB,GACpDM,EAA8BP,EAAaO,6BAA+B,GAC1EC,EAAiBR,EAAaQ,gBAAkB,GAChDC,EAAqBT,EAAaS,oBAAsB,GACxDC,EAAgBV,EAAaU,eAAiB,GAC9CC,EAAgBX,EAAaW,eAAiB,GAC9CC,EAAcZ,EAAaY,YAC3BC,EAAcb,EAAaa,YAC3BC,GAA2D,IAArCd,EAAac,oBACnCC,GAAuF,IAAhDpsL,EAAOosL,qCAGlD,SAASvqG,EAAI5tE,EAAOo4K,GAAiB,OAAXztL,EAAOytL,EAAWp4K,EAI5C,SAASq4K,EAAUz+C,EAAQj9F,GACzB,IAAIk8F,EAAKe,EAAOvoG,OAChB,GAAIimJ,EAAWz+C,GAAK,CAClB,IAAIvtI,EAASgsL,EAAWz+C,GAAIe,EAAQj9F,GACpC,IAAe,IAAXrxC,EAAkB,OAAOA,EAE/B,MAAU,KAANutI,GACFe,EAAO0N,SAAS,YACT15D,EAAI,MAAOgsD,EAAO9uH,YACV,KAAN+tH,IAAoB,KAANA,GAAmB,KAANA,IAAce,EAAOyN,IAAI,KACtDz5D,EAAI,KAAM,WACF,MAANirD,GAAoB,KAANA,GACvBl8F,EAAM27I,SAAWC,EAAY1/C,GACtBl8F,EAAM27I,SAAS1+C,EAAQj9F,IACf,KAANk8F,GACTe,EAAO0N,SAAS,YACT15D,EAAI,OAAQ,SACJ,KAANirD,GACTe,EAAOhjI,MAAM,WACNg3E,EAAI,UAAW,cACb,KAAKj8B,KAAKknF,IAAa,KAANA,GAAae,EAAOyN,IAAI,OAClDzN,EAAO0N,SAAS,UACT15D,EAAI,SAAU,SACL,MAAPirD,EAYA,WAAWlnF,KAAKknF,GAClBjrD,EAAI,KAAM,aACF,KAANirD,GAAae,EAAOhjI,MAAM,yBAC5Bg3E,EAAI,YAAa,aACf,iBAAiBj8B,KAAKknF,GACxBjrD,EAAI,KAAMirD,GACRe,EAAOhjI,MAAM,mBAClB,mCAAmC+6C,KAAKioF,EAAO9uH,aACjD6xB,EAAM27I,SAAWE,GAEZ5qG,EAAI,kBAAmB,aACrB,WAAWj8B,KAAKknF,IACzBe,EAAO0N,SAAS,YACT15D,EAAI,WAAY,SAEhBA,EAAI,KAAM,MA1Bb,QAAQj8B,KAAKioF,EAAOwN,SACtBxN,EAAO0N,SAAS,UACT15D,EAAI,SAAU,SACZgsD,EAAOhjI,MAAM,gBACtBgjI,EAAO0N,SAAS,YACZ1N,EAAOhjI,MAAM,SAAS,GACjBg3E,EAAI,aAAc,uBACpBA,EAAI,aAAc,aAChBgsD,EAAOhjI,MAAM,SACfg3E,EAAI,OAAQ,aADd,EAsBX,SAAS2qG,EAAYE,GACnB,OAAO,SAAS7+C,EAAQj9F,GAEtB,IADA,IAAqBk8F,EAAjB6/C,GAAU,EACiB,OAAvB7/C,EAAKe,EAAOvoG,SAAiB,CACnC,GAAIwnG,GAAM4/C,IAAUC,EAAS,CACd,KAATD,GAAc7+C,EAAO8N,OAAO,GAChC,MAEFgxC,GAAWA,GAAiB,MAAN7/C,EAGxB,OADIA,GAAM4/C,IAAUC,GAAoB,KAATD,KAAc97I,EAAM27I,SAAW,MACvD1qG,EAAI,SAAU,WAIzB,SAAS4qG,EAAmB5+C,EAAQj9F,GAMlC,OALAi9F,EAAOvoG,OACFuoG,EAAOhjI,MAAM,eAAe,GAG/B+lC,EAAM27I,SAAW,KAFjB37I,EAAM27I,SAAWC,EAAY,KAGxB3qG,EAAI,KAAM,KAKnB,SAAS06D,EAAQ39I,EAAMwgL,EAAQvkK,GAC7Bvd,KAAKsB,KAAOA,EACZtB,KAAK8hL,OAASA,EACd9hL,KAAKud,KAAOA,EAGd,SAAS+xK,EAAYh8I,EAAOi9F,EAAQjvI,EAAMwgL,GAExC,OADAxuI,EAAMkmB,QAAU,IAAIylF,EAAQ39I,EAAMivI,EAAOgO,gBAA4B,IAAXujC,EAAmB,EAAIG,GAAa3uI,EAAMkmB,SAC7Fl4D,EAGT,SAASiuL,EAAWj8I,GAGlB,OAFIA,EAAMkmB,QAAQj8C,OAChB+1B,EAAMkmB,QAAUlmB,EAAMkmB,QAAQj8C,MACzB+1B,EAAMkmB,QAAQl4D,KAGvB,SAASkuL,EAAKluL,EAAMivI,EAAQj9F,GAC1B,OAAOs2C,EAAOt2C,EAAMkmB,QAAQl4D,MAAMA,EAAMivI,EAAQj9F,GAElD,SAASm8I,EAAWnuL,EAAMivI,EAAQj9F,EAAOmxC,GACvC,IAAK,IAAIr6E,EAAIq6E,GAAK,EAAGr6E,EAAI,EAAGA,IAC1BkpC,EAAMkmB,QAAUlmB,EAAMkmB,QAAQj8C,KAChC,OAAOiyK,EAAKluL,EAAMivI,EAAQj9F,GAK5B,SAASo8I,EAAYn/C,GACnB,IAAI4wC,EAAO5wC,EAAO9uH,UAAU63B,cAE1Bo/F,EADEg2C,EAAc/sJ,eAAew/I,GACpB,OACJsN,EAAc9sJ,eAAew/I,GACzB,UAEA,WAGf,IAAIv3F,EAAS,CAEbA,IAAa,SAAStoF,EAAMivI,EAAQj9F,GAClC,GAAY,KAARhyC,EACF,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,SAC7B,GAAY,KAARjvI,GAAegyC,EAAMkmB,QAAQj8C,KACtC,OAAOgyK,EAAWj8I,GACb,GAAIu7I,GAAuB,cAAcvmI,KAAKhnD,GACnD,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,oBAC7B,GAAI,uBAAuBjoF,KAAKhnD,GACrC,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,iBAC7B,GAAI,+CAA+CjoF,KAAKhnD,GAC7D,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,WAC7B,GAAI,+BAA+BjoF,KAAKhnD,GAE7C,OADAgyC,EAAMq8I,SAAWruL,EACV,4BACF,GAAI,sCAAsCgnD,KAAKhnD,GACpD,MAAO,YACF,GAAIA,GAA0B,KAAlBA,EAAKquD,OAAO,GAC7B,OAAO2/H,EAAYh8I,EAAOi9F,EAAQ,MAC7B,GAAY,QAARjvI,EACTo3I,EAAW,eACN,GAAY,QAARp3I,EACTo3I,EAAW,UACN,IAAY,uBAARp3I,EACT,MAAO,YACF,GAAY,iBAARA,EACT,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,iBAC7B,GAAY,KAARjvI,EACT,MAAO,SACF,GAAIqtL,GAAuB,KAARrtL,EACxB,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,UAEpC,OAAOj9F,EAAMkmB,QAAQl4D,MAGvBsoF,MAAe,SAAStoF,EAAMivI,EAAQj9F,GACpC,GAAY,QAARhyC,EAAgB,CAClB,IAAI6/K,EAAO5wC,EAAO9uH,UAAU63B,cAC5B,OAAI00I,EAAiBrsJ,eAAew/I,IAClCzoC,EAAW,WACJ,aACE41C,EAA4B3sJ,eAAew/I,IACpDzoC,EAAWo2C,EAAuC,WAAa,WACxD,aACEH,GACTj2C,EAAWnI,EAAOhjI,MAAM,iBAAiB,GAAS,WAAa,MACxD,UAEPmrI,GAAY,SACL,aAEJ,MAAY,QAARp3I,EACF,QACGqtL,GAAwB,QAARrtL,GAA0B,aAARA,EAIrCsoF,EAAO5pE,IAAI1e,EAAMivI,EAAQj9F,IAHhColG,EAAW,QACJ,UAMX9uD,UAAmB,SAAStoF,EAAMivI,EAAQj9F,GACxC,MAAY,KAARhyC,EAAoBguL,EAAYh8I,EAAOi9F,EAAQ,QAC5Ci/C,EAAKluL,EAAMivI,EAAQj9F,IAG5Bs2C,KAAc,SAAStoF,EAAMivI,EAAQj9F,GACnC,GAAY,KAARhyC,EAAa,OAAOiuL,EAAWj8I,GACnC,GAAY,KAARhyC,GAAeqtL,EAAa,OAAOW,EAAYh8I,EAAOi9F,EAAQ,aAClE,GAAY,KAARjvI,GAAuB,KAARA,EAAa,OAAOmuL,EAAWnuL,EAAMivI,EAAQj9F,GAChE,GAAY,KAARhyC,EAAa,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,UAEnD,GAAY,QAARjvI,GAAmB,sDAAsDgnD,KAAKioF,EAAO9uH,YAElF,GAAY,QAARngB,EACTouL,EAAYn/C,QACP,GAAY,iBAARjvI,EACT,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,sBAJlCmI,GAAY,SAMd,MAAO,QAGT9uD,UAAmB,SAAStoF,EAAMsuL,EAASt8I,GACzC,MAAY,KAARhyC,EAAoBiuL,EAAWj8I,GACvB,QAARhyC,GAAkBo3I,EAAW,WAAmB,aAC7CplG,EAAMkmB,QAAQl4D,MAGvBsoF,OAAgB,SAAStoF,EAAMivI,EAAQj9F,GACrC,MAAY,KAARhyC,GAAuB,KAARA,EAAoBmuL,EAAWnuL,EAAMivI,EAAQj9F,GACpD,KAARhyC,EAAoBiuL,EAAWj8I,GACvB,KAARhyC,EAAoBguL,EAAYh8I,EAAOi9F,EAAQ,UACvC,iBAARjvI,EAAgCguL,EAAYh8I,EAAOi9F,EAAQ,kBACnD,QAARjvI,GAAgBouL,EAAYn/C,GACzB,WAGT3mD,OAAgB,SAAStoF,EAAMivI,EAAQj9F,GACrC,MAAY,QAARhyC,EAAuB,SAEf,QAARA,GACFo3I,EAAW,aACJplG,EAAMkmB,QAAQl4D,MAEhBkuL,EAAKluL,EAAMivI,EAAQj9F,IAG5Bs2C,cAAuB,SAAStoF,EAAMivI,EAAQj9F,GAC5C,MAAY,QAARhyC,GAAkB4sL,EAAcvsJ,eAAe4uG,EAAO9uH,YACxDi3H,EAAW,MACJplG,EAAMkmB,QAAQl4D,MAEdsoF,EAAOimG,QAAQvuL,EAAMivI,EAAQj9F,IAIxCs2C,QAAiB,SAAStoF,EAAMivI,EAAQj9F,GACtC,GAAY,KAARhyC,EAAa,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,kBACnD,GAAY,KAARjvI,GAAuB,KAARA,EAAa,OAAOmuL,EAAWnuL,EAAMivI,EAAQj9F,GAChE,GAAY,KAARhyC,EAAa,OAAOiuL,EAAWj8I,IAAUg8I,EAAYh8I,EAAOi9F,EAAQo+C,EAAc,QAAU,OAEhG,GAAY,iBAARrtL,EAAyB,OAAOguL,EAAYh8I,EAAOi9F,EAAQ,iBAE/D,GAAY,QAARjvI,EAAgB,CAClB,IAAI6/K,EAAO5wC,EAAO9uH,UAAU63B,cAE1Bo/F,EADU,QAARyoC,GAA0B,OAARA,GAAyB,OAARA,GAAyB,MAARA,EAC3C,UACJgN,EAAWxsJ,eAAew/I,GACtB,YACJiN,EAAczsJ,eAAew/I,GACzB,WACJkN,EAAmB1sJ,eAAew/I,GAC9B,UACJ6M,EAAiBrsJ,eAAew/I,GAC5B,WACJmN,EAA4B3sJ,eAAew/I,GACvC2N,EAAuC,WAAa,WACxDJ,EAAc/sJ,eAAew/I,GACzB,OACJsN,EAAc9sJ,eAAew/I,GACzB,UAEA,QAEf,OAAO7tI,EAAMkmB,QAAQl4D,MAGvBsoF,iBAA0B,SAAStoF,EAAMivI,EAAQj9F,GAC/C,MAAY,KAARhyC,EACKmuL,EAAWnuL,EAAMivI,EAAQj9F,GACtB,KAARhyC,EACKiuL,EAAWj8I,IAAUg8I,EAAYh8I,EAAOi9F,EAAQo+C,EAAc,QAAU,OAAO,IAC5E,QAARrtL,IACFo3I,EAAW,SACNplG,EAAMkmB,QAAQl4D,OAGvBsoF,eAAwB,SAAStoF,EAAMivI,EAAQj9F,GAC7C,MAAY,KAARhyC,EAAoBiuL,EAAWj8I,GACvB,KAARhyC,GAAuB,KAARA,EAAoBmuL,EAAWnuL,EAAMivI,EAAQj9F,EAAO,GAChEs2C,EAAOimG,QAAQvuL,EAAMivI,EAAQj9F,IAGtCs2C,0BAAmC,SAAStoF,EAAMivI,EAAQj9F,GACxD,MAAY,KAARhyC,EACKguL,EAAYh8I,EAAOi9F,EAAQ,sBACxB,QAARjvI,GAAoC,kBAAlBgyC,EAAMq8I,UAC1Bj3C,EAAW,WACJ,6BAEF82C,EAAKluL,EAAMivI,EAAQj9F,IAG5Bs2C,mBAA4B,SAAStoF,EAAMivI,EAAQj9F,GACjD,MAAY,KAARhyC,GACFgyC,EAAMq8I,SAAW,KACVJ,EAAWj8I,IAER,QAARhyC,GAGAo3I,EAFqB,cAAlBplG,EAAMq8I,WAA6BpB,EAAe5sJ,eAAe4uG,EAAO9uH,UAAU63B,gBAChE,kBAAlBhG,EAAMq8I,WAAiCnB,EAAmB7sJ,eAAe4uG,EAAO9uH,UAAU63B,eAClF,QAEA,WACN,aAEF,sBAGTswC,UAAmB,SAAStoF,EAAMivI,EAAQj9F,GACxC,MAAY,QAARhyC,GAAkBo3I,EAAW,WAAmB,aACxC,KAARp3I,EAAoBguL,EAAYh8I,EAAOi9F,EAAQ,OAC5Ci/C,EAAKluL,EAAMivI,EAAQj9F,IAG5Bs2C,GAAY,SAAStoF,EAAMivI,EAAQj9F,GACjC,MAAY,KAARhyC,EAAoBiuL,EAAWj8I,GACvB,KAARhyC,GAAuB,KAARA,EAAoBmuL,EAAWnuL,EAAMivI,EAAQj9F,IACpD,QAARhyC,EAAgBo3I,EAAW,MACd,QAARp3I,IAAgBo3I,EAAW,WAC7B,OAGT9uD,cAAuB,SAAStoF,EAAMivI,EAAQj9F,GAC5C,MAAY,KAARhyC,EAAoBiuL,EAAWj8I,GACvB,KAARhyC,GAAuB,KAARA,EAAoBmuL,EAAWnuL,EAAMivI,EAAQj9F,IACpD,QAARhyC,EAAgBo3I,EAAW,WACd,YAARp3I,GAA8B,KAARA,GAAuB,KAARA,IAAao3I,EAAW,SAC/D,mBAGT,MAAO,CACLqD,WAAY,SAAS/U,GACnB,MAAO,CAACioD,SAAU,KACV37I,MAAOmlB,EAAS,QAAU,MAC1Bk3H,SAAU,KACVn2H,QAAS,IAAIylF,EAAQxmF,EAAS,QAAU,MAAOuuE,GAAQ,EAAG,QAGpE0J,MAAO,SAASH,EAAQj9F,GACtB,IAAKA,EAAM27I,UAAY1+C,EAAO2N,WAAY,OAAO,KACjD,IAAIvnI,GAAS28B,EAAM27I,UAAYD,GAAWz+C,EAAQj9F,GAQlD,OAPI38B,GAAyB,iBAATA,IAClBrV,EAAOqV,EAAM,GACbA,EAAQA,EAAM,IAEhB+hI,EAAW/hI,EACC,WAARrV,IACFgyC,EAAMA,MAAQs2C,EAAOt2C,EAAMA,OAAOhyC,EAAMivI,EAAQj9F,IAC3ColG,GAGTopC,OAAQ,SAASxuI,EAAOo7F,GACtB,IAAIohD,EAAKx8I,EAAMkmB,QAASg2E,EAAKd,GAAaA,EAAU/+E,OAAO,GACvDmyH,EAASgO,EAAGhO,OAchB,MAbe,QAAXgO,EAAGxuL,MAAyB,KAANkuI,GAAmB,KAANA,IAAYsgD,EAAKA,EAAGvyK,MACvDuyK,EAAGvyK,OACK,KAANiyH,GAAyB,SAAXsgD,EAAGxuL,MAA8B,OAAXwuL,EAAGxuL,MACd,iBAAXwuL,EAAGxuL,MAAsC,sBAAXwuL,EAAGxuL,MAIlC,KAANkuI,GAAyB,UAAXsgD,EAAGxuL,MAA+B,kBAAXwuL,EAAGxuL,QACzC,KAANkuI,GAAyB,MAAXsgD,EAAGxuL,MAA2B,WAAXwuL,EAAGxuL,QAEtCwgL,EAAS12J,KAAKC,IAAI,EAAGykK,EAAGhO,OAASG,IAJjCH,GADAgO,EAAKA,EAAGvyK,MACIukK,QAOTA,GAGTwB,cAAe,IACfyM,kBAAmB,KACnBC,gBAAiB,KACjBC,qBAAsB,MACtBrB,YAAaA,EACbsB,KAAM,YAYR,IAAIC,EAAiB,CACnB,SAAU,SAAU,MAAO,cAC1BjC,EAAgBJ,EAAOqC,GAEtBC,EAAc,CAChB,MAAO,QAAS,UAAW,WAAY,QAAS,aAAc,SAC9D,MAAO,KAAM,YACZjC,EAAaL,EAAOsC,GAEnBC,EAAiB,CACnB,QAAS,YAAa,YAAa,SAAU,aAAc,aAC3D,eAAgB,mBAAoB,mBAAoB,gBACxD,oBAAqB,oBAAqB,eAC1C,mBAAoB,mBAAoB,sBACxC,0BAA2B,0BAA2B,QAAS,YAC/D,YAAa,cAAe,kBAAmB,kBAC/C,aAAc,iBAAkB,iBAAkB,aAClD,iBAAkB,iBAAkB,OAAQ,OAAQ,cACpD,qBAAsB,yBAA0B,yBAChD,UAAW,cAAe,QAAS,YAAa,wBAC/CjC,EAAgBN,EAAOuC,GAEtBC,EAAsB,CACxB,YAAa,WAAY,OAAQ,SAAU,OAAQ,YAAa,QAChE,YAAa,cACb,OAAQ,SACPjC,EAAqBP,EAAOwC,GAE3BC,EAAoB,CACtB,gBAAiB,cAAe,aAAc,mBAC9C,qBAAsB,MAAO,eAAgB,YAAa,kBAC1D,sBAAuB,qBAAsB,sBAC7C,4BAA6B,iBAAkB,uBAC/C,4BAA6B,aAAc,UAAW,kBACtD,sBAAuB,aAAc,wBACrC,wBAAyB,kBAAmB,mBAC5C,mBAAoB,oBAAqB,sBACzC,wBAAyB,wBAAyB,oBAClD,kBAAmB,iBAAkB,UAAW,QAAS,aACzD,iBAAkB,iBAAkB,iBAAkB,kBACtD,SAAU,gBAAiB,sBAAuB,4BAClD,6BAA8B,sBAAuB,sBACrD,kBAAmB,eAAgB,eAAgB,sBACnD,sBAAuB,qBAAsB,sBAC7C,qBAAsB,cAAe,oBAAqB,oBAC1D,oBAAqB,gBAAiB,eAAgB,qBACtD,qBAAsB,qBAAsB,iBAAkB,eAC9D,aAAc,mBAAoB,yBAClC,0BAA2B,mBAAoB,mBAC/C,eAAgB,SAAU,uBAAwB,aAAc,aAChE,cAAe,eAAgB,eAAgB,eAAgB,cAC/D,QAAS,OAAQ,QAAS,gBAAiB,eAAgB,cAC3D,aAAc,cAAe,oBAAqB,oBAClD,oBAAqB,cAAe,eAAgB,UAAW,UAC/D,UAAW,oBAAqB,gBAAiB,OAAQ,MAAO,YAChE,aAAc,SAAU,YAAa,UAAW,oBAChD,4BAA6B,2BAC7B,6BAA8B,4BAA6B,oBAC3D,qBAAsB,YAAa,cAAe,MAAO,cAAe,eACxE,OAAQ,aAAc,iBAAkB,YAAa,YACrD,cAAe,YAAa,QAAS,eAAgB,YAAa,YAClE,OAAQ,cAAe,wBAAyB,eAChD,yBAA0B,sBAAuB,YACjD,mBAAoB,eAAgB,aAAc,iBAClD,eAAgB,0BAA2B,oBAC3C,0BAA2B,yBAA0B,uBACrD,wBAAyB,0BAA2B,cAAe,MACnE,OAAQ,YAAa,oBAAqB,iBAAkB,iBAC5D,cAAe,kBAAmB,kBAAmB,oBACrD,WAAY,WAAY,eAAgB,eAAgB,iBACxD,gBAAiB,sBAAuB,wBACxC,qBAAsB,sBAAuB,SAAU,UAAW,OAClE,oBAAqB,kBAAmB,mBAAoB,mBAC5D,QAAS,cAAe,kBAAmB,oBAAqB,eAChE,mBAAoB,qBAAsB,YAAa,kBACvD,gBAAiB,eAAgB,OAAQ,iBAAkB,aAC3D,cAAe,mBAAoB,gBAAiB,qBACpD,sBAAuB,yBAA0B,aACjD,mBAAoB,sBAAuB,kBAAmB,SAC9D,gBAAiB,cAAe,eAAgB,aAAc,QAC9D,oBAAqB,eAAgB,qBAAsB,gBAC3D,gBAAiB,YAAa,iBAAkB,aAAc,YAC9D,cAAe,gBAAiB,cAAe,YAAY,YAC3D,iBAAkB,aAAc,kBAChC,YAAa,iBAAkB,aAAc,kBAAmB,YAChE,iBAAkB,UAAW,WAAY,YAAa,WAAY,YAClE,SAAU,aAAc,kBAAmB,SAAU,gBACrD,kBAAmB,cAAe,kBAAmB,gBACrD,UAAW,QAAS,UAAW,UAAW,gBAAiB,iBAC3D,gBAAiB,gBAAiB,WAAY,iBAC9C,gBAAiB,aAAc,aAAc,UAAW,iBACxD,eAAgB,gBAAiB,cAAe,OAAQ,mBACxD,oBAAqB,oBAAqB,cAAe,QACzD,cAAe,eAAgB,cAAe,qBAAsB,QACpE,cAAe,gBAAiB,cAAe,aAAc,cAC7D,WAAY,qBAAsB,mBAAoB,SACtD,qBAAsB,sBAAuB,sBAC7C,kBAAmB,mBAAoB,SAAU,OAAQ,aACzD,cAAe,WAAY,QAAS,SAAU,WAAY,iBAC1D,UAAW,aAAc,gBAAiB,gBAAiB,YAC3D,QAAS,kBAAmB,gBAAiB,sBAC7C,0BAA2B,4BAA6B,uBACxD,uBAAwB,2BACxB,6BAA8B,qBAAsB,sBACpD,oBAAqB,iBAAkB,uBACvC,2BAA4B,6BAC5B,wBAAyB,wBAAyB,4BAClD,8BAA+B,sBAAuB,uBACtD,qBAAsB,oBAAqB,mBAC3C,wBAAyB,eAAgB,eAAgB,gBACzD,OAAQ,QAAS,WAAY,eAAgB,gBAC7C,oBAAqB,cAAe,SAAU,aAAc,WAC5D,eAAgB,SAAU,cAAe,aAAc,kBACvD,aAAc,kBAAmB,uBAAwB,kBACzD,wBAAyB,uBAAwB,uBACjD,2BAA4B,wBAAyB,gBACrD,sBAAuB,yBAA0B,sBACjD,cAAe,cAAe,eAAgB,mBAC9C,eAAgB,gBAAiB,iBAAkB,cACnD,mBAAoB,sBAAuB,iBAC3C,0BAA2B,YAAa,MAAO,eAAgB,YAAa,mBAC5E,kBAAmB,aAAc,mBAAoB,sBACrD,sBAAuB,6BAA8B,YACrD,eAAgB,cAAe,iBAAkB,aAAc,gBAC/D,iBAAkB,eAAgB,cAAe,cAAe,aAChE,eAAgB,eAAgB,SAAU,cAAe,SAAU,QACnE,cAAe,aAAc,eAAgB,YAAa,eAAgB,UAE1E,YAAa,YAAa,OAAQ,oBAAqB,SAAU,cACjE,gBAAiB,iBAAkB,aAAc,eAAgB,iBACjE,sBAAuB,8BACvB,kBAAmB,OAAQ,eAAgB,YAAa,kBACxD,SAAU,aAAc,aAAc,eAAgB,cAAe,kBAAmB,SACxF,mBAAoB,oBAAqB,iBAAkB,kBAC3D,oBAAqB,iBAAkB,eAAgB,iBACvD,iBAAkB,oBAAqB,+BACvC,6BAA8B,cAAe,gBAC5CvC,EAAmBF,EAAOyC,GAEzBC,EAA+B,CACjC,eAAgB,eAAgB,eAAgB,qBAAsB,mBACtE,yBAA0B,yBAA0B,yBACpD,qBAAsB,2BAA4B,2BAClD,2BAA4B,qBAAsB,qBAClD,gBAAiB,sBAAuB,oBACxC,0BAA2B,0BAC3B,0BAA2B,sBAAuB,4BAClD,4BAA6B,4BAC7B,sBAAuB,sBAAuB,qBAAsB,eACpE,mBAAoB,qBAAsB,gBAAiB,oBAC3D,sBAAuB,kBAAmB,sBAAuB,gBAAiB,oBAClF,sBAAuB,iBAAkB,qBACzC,uBAAwB,mBAAoB,2BAC5C,wBAAyB,uBAAwB,8BACjD,uBAAwB,4BAA6B,yBACrD,wBAAyB,4BAA6B,yBACtD,6BAA8B,iCAAkC,eAAgB,QAC/ElC,EAA8BR,EAAO0C,GAKrCjC,EAAiBT,EAHE,CACpB,eAAgB,cAAe,MAAO,gBAAiB,eACtD,wBAAyB,eAAgB,cAAe,eAMxDU,EAAqBV,EAHE,CACxB,mBAAoB,WAAY,WAAY,MAAO,SAAU,QAC7D,WAAY,SAAU,UAAW,WAG/B2C,EAAiB,CACnB,YAAa,eAAgB,OAAQ,aAAc,QAAS,QAC5D,SAAU,QAAS,iBAAkB,OAAQ,aAAc,QAC3D,YAAa,YAAa,aAAc,YAAa,QAAS,iBAC9D,WAAY,UAAW,OAAQ,WAAY,WAAY,gBACvD,WAAY,YAAa,WAAY,YAAa,cAAe,iBACjE,aAAc,aAAc,UAAW,aAAc,eACrD,gBAAiB,gBAAiB,gBAAiB,gBAAiB,aACpE,WAAY,cAAe,UAAW,UAAW,aAAc,YAC/D,cAAe,cAAe,UAAW,YAAa,aACtD,OAAQ,YAAa,OAAQ,OAAQ,QAAS,cAAe,WAC7D,UAAW,YAAa,SAAU,QAAS,QAAS,WACpD,gBAAiB,YAAa,eAAgB,YAAa,aAC3D,YAAa,uBAAwB,YAAa,aAAc,YAAa,YAC7E,cAAe,gBAAiB,eAAgB,iBAAkB,iBAClE,iBAAkB,cAAe,OAAQ,YAAa,QAAS,UAC/D,SAAU,mBAAoB,aAAc,eAAgB,eAC5D,iBAAkB,kBAAmB,oBAAqB,kBAC1D,kBAAmB,eAAgB,YAAa,YAAa,WAC7D,cAAe,OAAQ,UAAW,QAAS,YAAa,SAAU,YAClE,SAAU,gBAAiB,YAAa,gBAAiB,gBACzD,aAAc,YAAa,OAAQ,OAAQ,OAAQ,aACnD,SAAU,gBAAiB,MAAO,YAAa,YAAa,cAC5D,SAAU,aAAc,WAAY,WAAY,SAAU,SAAU,UACpE,YAAa,YAAa,YAAa,OAAQ,cAAe,YAAa,MAC3E,OAAQ,UAAW,SAAU,YAAa,SAAU,QAAS,QAC7D,aAAc,SAAU,eACvBhC,EAAgBX,EAAO2C,GAEtBC,EAAiB,CACnB,QAAS,WAAY,eAAgB,WAAY,gBAAiB,OAClE,oBAAqB,QAAS,QAAS,MAAO,aAAc,aAAc,YAC1E,SAAU,UAAW,kBAAmB,cAAe,eACvD,eAAgB,WAAY,YAAa,OAAQ,OAAQ,YAAa,QAAS,eAAgB,aAC/F,eAAgB,WAAY,aAAc,YAAa,WAAY,QAAS,gBAAiB,SAC7F,UAAW,QAAS,QAAS,aAAc,OAAQ,OAAQ,SAAU,SAAU,aAC/E,OAAQ,SAAU,QAAS,YAAa,aAAc,aAAc,UAAW,SAAU,eACzF,aAAc,kBAAmB,eAAgB,aAAc,OAAQ,YACvE,aAAc,sBAAuB,UAAW,cAAe,QAC/D,OAAQ,SAAU,WAAY,SAAU,cAAe,qBACvD,oBAAqB,kBAAmB,QAAS,OAAQ,cACzD,aAAc,WAAY,QAAS,aAAc,cAAe,SAAU,iBAC1E,UAAW,YAAa,UAAW,UAAW,WAC9C,cAAe,eAAgB,aAAc,WAAY,OAAQ,UAAW,WAAY,QAAS,OACjG,QAAS,YAAa,eAAgB,eAAgB,UAAW,SAAU,SAAU,SAAU,UAC/F,uBAAwB,UAAW,iBAAkB,QAAS,mBAC9D,iBAAkB,kBAAmB,mBAAoB,aAAc,aACvE,OAAQ,UAAW,oBAAqB,kBAAmB,WAC3D,WAAY,eACZ,SAAU,SAAU,OAAQ,cAAe,WAAY,OAAQ,UAAW,cAAe,WACzF,UAAW,UAAW,WAAY,QAAS,MAAO,WAAY,mBAC9D,yBAA0B,uBAAwB,yBAClD,yBAA0B,0BAC1B,0BAA2B,0BAC3B,wBAAyB,0BACzB,2BAA4B,0BAC5B,0BAA2B,0BAA2B,wBACtD,mBAAoB,YAAa,YAAa,WAAY,UAAW,kBACrE,iBAAkB,UAAW,OAAQ,OAAQ,WAAY,QAAS,OAAQ,OAAQ,WAAY,aAAc,YAC5G,WAAY,OAAQ,qBAAsB,WAAY,YAAa,WAAY,OAAQ,SACvF,WAAY,WAAY,OAAQ,SAAU,mBAAoB,aAAc,SAC5E,OAAQ,SAAU,OAAQ,SAAU,YAAa,gBACjD,WAAY,iBAAkB,aAAc,MAAO,OAAQ,MAAO,aAAc,OAAQ,SACxF,iBAAkB,kBAAmB,sBAAuB,WAC5D,iBAAkB,WAAY,UAAW,UAAW,SAAU,cAC9D,eAAgB,cAAe,cAAe,eAAgB,QAAS,SAAU,YAAa,SAC9F,SAAU,kBAAmB,oBAAqB,UAAW,UAC7D,WAAY,iBAAkB,WAAY,QAC1C,uBAAwB,sBAAuB,wBAC/C,YAAa,MAAO,QAAS,SAAU,OAAQ,QAAS,UAAW,UACnE,eAAgB,SAAU,kBAAmB,QAAS,YAAa,UAAW,WAC9E,QAAS,UAAW,OAAQ,QAAS,cAAe,iBACpD,cAAe,oBAAqB,cAAe,kBACnD,cAAe,YAAa,MAAO,aAAc,YAAa,eAAgB,QAAS,SAAU,WACjG,4BAA6B,6BAC7B,0BAA2B,oBAAqB,oBAChD,kCAAmC,sBACnC,yBAA0B,4BAA6B,eACvD,oBAAqB,+BAAgC,sBACrD,gCAAiC,2BAA4B,SAC7D,OAAQ,WAAY,kBAAmB,gBACvC,qBAAsB,WAAY,cAAe,SAAU,gBAC3D,MAAO,YAAa,YAAa,OAAQ,WAAY,uBAAwB,WAAY,UAAW,WACpG,WAAY,YAAa,cAAe,iBAAkB,UAC1D,gBAAiB,YAAa,OAAQ,SAAU,cAAe,SAC/D,YAAa,UAAW,UAAW,YAAa,cAAe,UAAW,QAAS,UAAW,aAC9F,qBAAsB,gBAAiB,QAAS,QAAS,SACzD,UAAW,gBAAiB,UAAW,WAAY,UAAW,cAC9D,UAAW,OAAQ,SAAU,UAAW,cAAe,aAAc,cAAe,eACpF,UAAW,UAAW,WAAY,MAAO,WAAY,WAAY,cACjE,WAAY,cAAe,kBAAmB,QAAS,YACvD,aAAc,4BAA6B,YAAa,SACxD,WAAY,SAAU,4BACtB,4BAA6B,WAAY,WAAY,QAAS,UAC9D,MAAO,OAAQ,QAAS,QAAS,SAAU,WAAY,UAAW,UAClE,UAAW,QAAS,MAAO,aAAc,cAAe,MAAO,SAAU,UACzE,WAAY,aAAc,WAAY,aAAc,QAAS,UAAW,SAAU,SAAU,SAAU,SACtG,SAAU,YAAa,kBAAmB,YAAa,cACvD,4BAA6B,yBAC7B,6BAA8B,iCAAkC,aAAc,WAC9E,iBAAkB,gBAAiB,WAAY,QAAS,QAAS,OAAQ,SACzE,sBAAuB,wBAAyB,SAChD,OAAQ,QAAS,QAAS,mBAAoB,QAAS,oBACvD,kBAAmB,yBAA0B,uBAAwB,OACrE,QAAS,aAAc,gBAAiB,UAAW,aAAc,QAAS,SAC1E,cAAe,YAAa,aAAc,cAAe,QAAS,eAAgB,gBAAiB,eAAgB,YAAa,SAChI,gBAAiB,QAAS,SAAU,aAAc,UAAW,SAAU,aAAc,MACrF,uBAAwB,YAAa,QAAS,YAAa,WAAY,UAAW,YAAa,QAC/F,gBAAiB,aAAc,eAAgB,qBAC/C,qBAAsB,qBAAsB,YAAa,kBACzD,QACA,SAAU,OAAQ,cAAe,WAAY,WAAY,YAAa,OACtE,QAAS,OAAQ,mBAAoB,aAAc,kBACnD,oBAAqB,eAAgB,UAAW,QAAS,cACzD,sBAAuB,cAAe,sBAAuB,KAAM,MACnE,sBAAuB,wBAAyB,YAChD,YAAa,cAAe,aAAc,aAAc,aACxD,cAAe,kBAAmB,iBAAkB,YAAa,qBAAsB,QAAS,KAChG,cAAe,iBAAkB,cAAe,oBAChD,cAAe,kBAAmB,cAAe,YAAa,OAAQ,MACtE,MAAO,WAAY,gBAAiB,WAAY,UAAW,cAAe,iBAC1E,gBAAiB,SAAU,WAAY,OAAQ,OAAQ,QACvD,SAAU,cAAe,aAAc,QAAS,OAAQ,eAAgB,UAAW,UAAW,MAC9F,WAAY,YACXhC,EAAgBZ,EAAO4C,GAEtBC,EAAWR,EAAe1xJ,OAAO2xJ,GAAa3xJ,OAAO4xJ,GAAgB5xJ,OAAO6xJ,GAC7E7xJ,OAAO8xJ,GAAmB9xJ,OAAO+xJ,GAA8B/xJ,OAAOgyJ,GACtEhyJ,OAAOiyJ,GAGV,SAASE,EAAcrgD,EAAQj9F,GAE7B,IADA,IAAsBk8F,EAAlBqhD,GAAW,EACgB,OAAvBrhD,EAAKe,EAAOvoG,SAAiB,CACnC,GAAI6oJ,GAAkB,KAANrhD,EAAW,CACzBl8F,EAAM27I,SAAW,KACjB,MAEF4B,EAAkB,KAANrhD,EAEd,MAAO,CAAC,UAAW,WAXrBr3G,EAAWouJ,eAAe,YAAa,MAAOoK,GAc9Cx4J,EAAWgjH,WAAW,WAAY,CAChC+yC,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfT,WAAY,CACV,IAAK,SAAS19C,EAAQj9F,GACpB,QAAKi9F,EAAOyN,IAAI,OAChB1qG,EAAM27I,SAAW2B,EACVA,EAAcrgD,EAAQj9F,MAGjCnvC,KAAM,QAGRg0B,EAAWgjH,WAAW,cAAe,CACnCgzC,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAS19C,EAAQj9F,GACpB,OAAIi9F,EAAOyN,IAAI,MACbzN,EAAO4N,YACA,CAAC,UAAW,YACV5N,EAAOyN,IAAI,MACpB1qG,EAAM27I,SAAW2B,EACVA,EAAcrgD,EAAQj9F,IAEtB,CAAC,WAAY,aAGxB,IAAK,SAASi9F,GACZ,QAAIA,EAAOhjI,MAAM,UAAU,IAClB,CAAC,KAAM,OAGlB,EAAK,SAASgjI,GAEZ,OADAA,EAAOhjI,MAAM,WACTgjI,EAAOhjI,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,aAExB,IAAK,SAASgjI,GACZ,QAAKA,EAAOyN,IAAI,MACT,CAAC,KAAM,mBAGlB75I,KAAM,MACNw3I,WAAY,SAGdxjH,EAAWgjH,WAAW,cAAe,CACnCgzC,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAS19C,EAAQj9F,GACpB,OAAIi9F,EAAOyN,IAAI,MACbzN,EAAO4N,YACA,CAAC,UAAW,YACV5N,EAAOyN,IAAI,MACpB1qG,EAAM27I,SAAW2B,EACVA,EAAcrgD,EAAQj9F,IAEtB,CAAC,WAAY,aAGxB,IAAK,SAASi9F,GACZ,OAAIA,EAAOyN,IAAI,KAAa,CAAC,KAAM,kBAC/BzN,EAAOhjI,MAAM,yGAAyG,KAC1HgjI,EAAO0N,SAAS,YACZ1N,EAAOhjI,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,cAExB,IAAK,WACH,MAAO,CAAC,OAAQ,UAGpBpJ,KAAM,MACNw3I,WAAY,SAGdxjH,EAAWgjH,WAAW,aAAc,CAClC+yC,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfJ,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfG,qBAAqB,EACrBZ,WAAY,CACV,IAAK,SAAS19C,EAAQj9F,GACpB,QAAKi9F,EAAOyN,IAAI,OAChB1qG,EAAM27I,SAAW2B,EACVA,EAAcrgD,EAAQj9F,MAGjCnvC,KAAM,MACNw3I,WAAY,QAv1BZ/jH,CAAI,EAAQ,Q,gBCKb,SAASO,GACV,aAEA,IAAI24J,EAAc,CAChBnjK,OAAQ,CACN,CAAC,OAAQ,sBAAuB,cAChC,CAAC,OAAQ,kEAAmE,cAC5E,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,eAEfhX,MAAQ,CACN,CAAC,OAAQ,SAAU,OACnB,CAAC,OAAQ,oCAAqC,OAC9C,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,SAIjB,SAASo6K,EAAYxgD,EAAQygD,EAAKr6K,GAChC,IAAIg6H,EAAMJ,EAAO9uH,UAAWxc,EAAQ0rI,EAAIzpF,OAAO8pI,GAO/C,OANI/rL,GAAS,EACXsrI,EAAO8N,OAAO1N,EAAI1pI,OAAShC,GAClB0rI,EAAIpjI,MAAM,WACnBgjI,EAAO8N,OAAO1N,EAAI1pI,QACbspI,EAAOhjI,MAAMyjL,GAAK,IAAQzgD,EAAOhjI,MAAMojI,IAEvCh6H,EAGT,IAAIs6K,EAAkB,GACtB,SAASC,EAActkL,GACrB,IAAIukL,EAASF,EAAgBrkL,GAC7B,OAAIukL,IACGF,EAAgBrkL,GAAQ,IAAIiyD,OAAO,OAASjyD,EAAO,yCAG5D,SAASwkL,EAAa3nL,EAAMmD,GAC1B,IAAIW,EAAQ9D,EAAK8D,MAAM2jL,EAActkL,IACrC,OAAOW,EAAQ,gBAAgBC,KAAKD,EAAM,IAAI,GAAK,GAGrD,SAAS8jL,EAAazqK,EAAS0qK,GAC7B,OAAO,IAAIzyH,QAAQyyH,EAAW,IAAM,IAAM,OAAW1qK,EAAU,MAAQ,KAGzE,SAAS2qK,EAAQzkF,EAAMD,GACrB,IAAK,IAAI3qF,KAAO4qF,EAGd,IAFA,IAAIs9D,EAAOv9D,EAAG3qF,KAAS2qF,EAAG3qF,GAAO,IAC7B4yC,EAASg4C,EAAK5qF,GACT9X,EAAI0qD,EAAO7tD,OAAS,EAAGmD,GAAK,EAAGA,IACtCggK,EAAKrmH,QAAQ+Q,EAAO1qD,IAI1B,SAASonL,EAAiBC,EAASC,GACjC,IAAK,IAAItnL,EAAI,EAAGA,EAAIqnL,EAAQxqL,OAAQmD,IAAK,CACvC,IAAIixI,EAAOo2C,EAAQrnL,GACnB,IAAKixI,EAAK,IAAMA,EAAK,GAAG/yF,KAAK8oI,EAAaM,EAASr2C,EAAK,KAAM,OAAOA,EAAK,IAI9EljH,EAAW8iH,WAAW,aAAa,SAAUv4I,EAAQqrL,GACnD,IAAI4D,EAAWx5J,EAAWg3G,QAAQzsI,EAAQ,CACxCyB,KAAM,MACNwtL,UAAU,EACVC,yBAA0B7D,EAAa6D,yBACvCC,0BAA2B9D,EAAa8D,0BACxCC,oBAAqB/D,EAAa+D,sBAGhCC,EAAO,GACPC,EAAajE,GAAgBA,EAAagE,KAAME,EAAelE,GAAgBA,EAAamE,YAGhG,GAFAX,EAAQT,EAAaiB,GACjBC,GAAYT,EAAQS,EAAYD,GAChCE,EAAc,IAAK,IAAI7nL,EAAI6nL,EAAahrL,OAAS,EAAGmD,GAAK,EAAGA,IAC9D2nL,EAAKpkK,OAAOo2B,QAAQ,CAAC,OAAQkuI,EAAa7nL,GAAG4pB,QAASi+J,EAAa7nL,GAAGqvB,OAExE,SAASv1B,EAAKqsI,EAAQj9F,GACpB,IAAkF1sB,EAA9EjQ,EAAQg7K,EAASjhD,MAAMH,EAAQj9F,EAAM6+I,WAAYjwK,EAAM,UAAUomC,KAAK3xC,GAC1E,GAAIuL,IAAQ,WAAWomC,KAAKioF,EAAO9uH,aAC9BmF,EAAU0sB,EAAM6+I,UAAUvrK,SAAW0sB,EAAM6+I,UAAUvrK,QAAQ0yB,gBAC9Dy4I,EAAKpwJ,eAAe/a,GACtB0sB,EAAM8+I,MAAQxrK,EAAU,SACnB,GAAI0sB,EAAM8+I,OAASlwK,GAAO,KAAKomC,KAAKioF,EAAO9uH,WAAY,CAC5D,IAAI2wK,EAAQ,gBAAgB5kL,KAAK8lC,EAAM8+I,OACvC9+I,EAAM8+I,MAAQ,KACd,IAAIhO,EAA+B,KAApB7zC,EAAO9uH,WAAoB+vK,EAAiBO,EAAKK,EAAM,IAAKA,EAAM,IAC7E34J,EAAOtB,EAAWg3G,QAAQzsI,EAAQ0hL,GAClCiO,EAAUhB,EAAae,EAAM,IAAI,GAAOE,EAASjB,EAAae,EAAM,IAAI,GAC5E9+I,EAAMo9F,MAAQ,SAAUH,EAAQj9F,GAC9B,OAAIi9F,EAAOhjI,MAAM8kL,GAAS,IACxB/+I,EAAMo9F,MAAQxsI,EACdovC,EAAMi/I,WAAaj/I,EAAMk/I,UAAY,KAC9B,MAEFzB,EAAYxgD,EAAQ+hD,EAAQh/I,EAAMk/I,UAAU9hD,MAAMH,EAAQj9F,EAAMi/I,cAEzEj/I,EAAMk/I,UAAY/4J,EAClB6Z,EAAMi/I,WAAap6J,EAAW4jH,WAAWtiH,EAAMk4J,EAAS7P,OAAOxuI,EAAM6+I,UAAW,GAAI,UAC3E7+I,EAAM8+I,QACf9+I,EAAM8+I,OAAS7hD,EAAO9uH,UAClB8uH,EAAOE,QAAOn9F,EAAM8+I,OAAS,MAEnC,OAAOz7K,EAGT,MAAO,CACLolI,WAAY,WAEV,MAAO,CAACrL,MAAOxsI,EAAMkuL,MAAO,KAAMI,UAAW,KAAMD,WAAY,KAAMJ,UADzDh6J,EAAW4jH,WAAW41C,KAIpC1hD,UAAW,SAAU38F,GACnB,IAAIq1D,EAIJ,OAHIr1D,EAAMi/I,aACR5pF,EAAQxwE,EAAW83G,UAAU38F,EAAMk/I,UAAWl/I,EAAMi/I,aAE/C,CAAC7hD,MAAOp9F,EAAMo9F,MAAO0hD,MAAO9+I,EAAM8+I,MACjCI,UAAWl/I,EAAMk/I,UAAWD,WAAY5pF,EACxCwpF,UAAWh6J,EAAW83G,UAAU0hD,EAAUr+I,EAAM6+I,aAG1DzhD,MAAO,SAAUH,EAAQj9F,GACvB,OAAOA,EAAMo9F,MAAMH,EAAQj9F,IAG7BwuI,OAAQ,SAAUxuI,EAAOo7F,EAAWa,GAClC,OAAKj8F,EAAMk/I,WAAa,UAAUlqI,KAAKomF,GAC9BijD,EAAS7P,OAAOxuI,EAAM6+I,UAAWzjD,EAAWa,GAC5Cj8F,EAAMk/I,UAAU1Q,OAChBxuI,EAAMk/I,UAAU1Q,OAAOxuI,EAAMi/I,WAAY7jD,EAAWa,GAEpDp3G,EAAWq8G,MAGtBtF,UAAW,SAAU57F,GACnB,MAAO,CAACA,MAAOA,EAAMi/I,YAAcj/I,EAAM6+I,UAAW14J,KAAM6Z,EAAMk/I,WAAab,OAGhF,MAAO,aAAc,OAExBx5J,EAAWgjH,WAAW,YAAa,aAlJjCvjH,CAAI,EAAQ,MAAyB,EAAQ,MAAe,EAAQ,MAA6B,EAAQ,Q,gBCK1G,SAASO,GACZ,aAEAA,EAAW8iH,WAAW,cAAc,SAASv4I,EAAQqrL,GACnD,IA8CIzsL,EAAMyR,EA9CNkvK,EAAav/K,EAAOu/K,WACpBwQ,EAAkB1E,EAAa0E,gBAC/BC,EAAa3E,EAAa4E,OAC1BhkD,EAAWo/C,EAAapkL,MAAQ+oL,EAChCE,GAAyC,IAA5B7E,EAAa6E,WAC1BC,EAAO9E,EAAa+E,WACpBC,EAAShF,EAAaiF,gBAAkB,mBAIxCC,EAAW,WACb,SAASC,EAAG5xL,GAAO,MAAO,CAACA,KAAMA,EAAMqV,MAAO,WAC9C,IAAIw8K,EAAID,EAAG,aAAcE,EAAIF,EAAG,aAAcG,EAAIH,EAAG,aAAcI,EAAIJ,EAAG,aACtEK,EAAWL,EAAG,YAAaM,EAAO,CAAClyL,KAAM,OAAQqV,MAAO,QAE5D,MAAO,CACL,GAAMu8K,EAAG,MAAO,MAASC,EAAG,KAAQA,EAAG,KAAQC,EAAG,GAAMA,EAAG,IAAOA,EAAG,QAAWA,EAChF,OAAUE,EAAG,MAASA,EAAG,SAAYA,EAAG,IAAOJ,EAAG,OAAQ,OAAUG,EAAG,KAAQA,EAAG,MAASA,EAC3F,SAAYH,EAAG,YAAa,IAAOA,EAAG,OAAQ,MAASA,EAAG,OAAQ,IAAOA,EAAG,OAC5E,SAAYA,EAAG,YAAa,MAASA,EAAG,SACxC,IAAOA,EAAG,OAAQ,OAAUA,EAAG,UAAW,KAAQA,EAAG,QAAS,QAAWA,EAAG,WAC5E,GAAMK,EAAU,OAAUA,EAAU,WAAcA,EAClD,KAAQC,EAAM,MAASA,EAAM,KAAQA,EAAM,UAAaA,EAAM,IAAOA,EAAM,SAAYA,EACvF,KAAQN,EAAG,QAAS,MAASA,EAAG,SAAU,MAASA,EAAG,QACtD,MAASG,EAAG,OAAUH,EAAG,UAAW,OAAUA,EAAG,UAAW,QAAWG,EACvE,MAASA,GAfE,GAmBXI,EAAiB,oBACjBC,EAAkB,wFAEtB,SAASC,EAAWpjD,GAElB,IADA,IAAqBvoG,EAAjBqnJ,GAAU,EAAauE,GAAQ,EACF,OAAzB5rJ,EAAOuoG,EAAOvoG,SAAiB,CACrC,IAAKqnJ,EAAS,CACZ,GAAY,KAARrnJ,IAAgB4rJ,EAAO,OACf,KAAR5rJ,EAAa4rJ,GAAQ,EAChBA,GAAiB,KAAR5rJ,IAAa4rJ,GAAQ,GAEzCvE,GAAWA,GAAmB,MAARrnJ,GAO1B,SAASu8C,EAAIwqG,EAAIp4K,EAAOklB,GAEtB,OADAv6B,EAAOytL,EAAIh8K,EAAU8oB,EACdllB,EAET,SAASq4K,EAAUz+C,EAAQj9F,GACzB,IAAIk8F,EAAKe,EAAOvoG,OAChB,GAAU,KAANwnG,GAAmB,KAANA,EAEf,OADAl8F,EAAM27I,SAAWC,EAAY1/C,GACtBl8F,EAAM27I,SAAS1+C,EAAQj9F,GACzB,GAAU,KAANk8F,GAAae,EAAOhjI,MAAM,kCACnC,OAAOg3E,EAAI,SAAU,UAChB,GAAU,KAANirD,GAAae,EAAOhjI,MAAM,MACnC,OAAOg3E,EAAI,SAAU,QAChB,GAAI,qBAAqBj8B,KAAKknF,GACnC,OAAOjrD,EAAIirD,GACN,GAAU,KAANA,GAAae,EAAOyN,IAAI,KACjC,OAAOz5D,EAAI,KAAM,YACZ,GAAU,KAANirD,GAAae,EAAOhjI,MAAM,yCACnC,OAAOg3E,EAAI,SAAU,UAChB,GAAI,KAAKj8B,KAAKknF,GAEnB,OADAe,EAAOhjI,MAAM,oDACNg3E,EAAI,SAAU,UAChB,GAAU,KAANirD,EACT,OAAIe,EAAOyN,IAAI,MACb1qG,EAAM27I,SAAW4E,EACVA,EAAatjD,EAAQj9F,IACnBi9F,EAAOyN,IAAI,MACpBzN,EAAO4N,YACA55D,EAAI,UAAW,YACbuvG,GAAkBvjD,EAAQj9F,EAAO,IAC1CqgJ,EAAWpjD,GACXA,EAAOhjI,MAAM,qCACNg3E,EAAI,SAAU,cAErBgsD,EAAOyN,IAAI,KACJz5D,EAAI,WAAY,WAAYgsD,EAAO9uH,YAEvC,GAAU,KAAN+tH,EAET,OADAl8F,EAAM27I,SAAW8E,EACVA,EAAWxjD,EAAQj9F,GACrB,GAAU,KAANk8F,GAA8B,KAAjBe,EAAOwN,OAE7B,OADAxN,EAAO4N,YACA55D,EAAI,OAAQ,QACd,GAAU,KAANirD,GAAae,EAAO0N,SAAS80C,GACtC,OAAOxuG,EAAI,WAAY,YAClB,GAAU,KAANirD,GAAae,EAAOhjI,MAAM,QACnB,KAANiiI,GAAae,EAAOhjI,MAAM,QAAU,KAAK+6C,KAAKioF,EAAOK,OAAOxwF,MAAM,EAAGmwF,EAAOroH,QAEtF,OADAqoH,EAAO4N,YACA55D,EAAI,UAAW,WACjB,GAAIkvG,EAAenrI,KAAKknF,GAS7B,MARU,KAANA,GAAcl8F,EAAMs7F,SAAiC,KAAtBt7F,EAAMs7F,QAAQttI,OAC3CivI,EAAOyN,IAAI,KACH,KAANxO,GAAmB,KAANA,GAAWe,EAAOyN,IAAI,KAC9B,cAAc11F,KAAKknF,KAC5Be,EAAOyN,IAAIxO,GACD,KAANA,GAAWe,EAAOyN,IAAIxO,KAGpB,KAANA,GAAae,EAAOyN,IAAI,KAAaz5D,EAAI,KACtCA,EAAI,WAAY,WAAYgsD,EAAO9uH,WACrC,GAAIsxK,EAAOzqI,KAAKknF,GAAK,CAC1Be,EAAO0N,SAAS80C,GAChB,IAAI5R,EAAO5wC,EAAO9uH,UAClB,GAAsB,KAAlB6xB,EAAM0gJ,SAAiB,CACzB,GAAIf,EAASgB,qBAAqB9S,GAAO,CACvC,IAAI+R,EAAKD,EAAS9R,GAClB,OAAO58F,EAAI2uG,EAAG5xL,KAAM4xL,EAAGv8K,MAAOwqK,GAEhC,GAAY,SAARA,GAAmB5wC,EAAOhjI,MAAM,4CAA4C,GAC9E,OAAOg3E,EAAI,QAAS,UAAW48F,GAEnC,OAAO58F,EAAI,WAAY,WAAY48F,IAIvC,SAAS+N,EAAYE,GACnB,OAAO,SAAS7+C,EAAQj9F,GACtB,IAAqBtL,EAAjBqnJ,GAAU,EACd,GAAIqD,GAA+B,KAAjBniD,EAAOwN,QAAiBxN,EAAOhjI,MAAMmmL,GAErD,OADApgJ,EAAM27I,SAAWD,EACVzqG,EAAI,iBAAkB,QAE/B,KAAiC,OAAzBv8C,EAAOuoG,EAAOvoG,UAChBA,GAAQonJ,GAAUC,IACtBA,GAAWA,GAAmB,MAARrnJ,EAGxB,OADKqnJ,IAAS/7I,EAAM27I,SAAWD,GACxBzqG,EAAI,SAAU,WAIzB,SAASsvG,EAAatjD,EAAQj9F,GAE5B,IADA,IAAsBk8F,EAAlBqhD,GAAW,EACRrhD,EAAKe,EAAOvoG,QAAQ,CACzB,GAAU,KAANwnG,GAAaqhD,EAAU,CACzBv9I,EAAM27I,SAAWD,EACjB,MAEF6B,EAAkB,KAANrhD,EAEd,OAAOjrD,EAAI,UAAW,WAGxB,SAASwvG,EAAWxjD,EAAQj9F,GAE1B,IADA,IAAqBtL,EAAjBqnJ,GAAU,EACmB,OAAzBrnJ,EAAOuoG,EAAOvoG,SAAiB,CACrC,IAAKqnJ,IAAoB,KAARrnJ,GAAuB,KAARA,GAAeuoG,EAAOyN,IAAI,MAAO,CAC/D1qG,EAAM27I,SAAWD,EACjB,MAEFK,GAAWA,GAAmB,MAARrnJ,EAExB,OAAOu8C,EAAI,QAAS,WAAYgsD,EAAO9uH,WAGzC,IAAIyyK,EAAW,SAQf,SAASC,EAAa5jD,EAAQj9F,GACxBA,EAAM8gJ,aAAY9gJ,EAAM8gJ,WAAa,MACzC,IAAIC,EAAQ9jD,EAAOK,OAAOj8H,QAAQ,KAAM47H,EAAOroH,OAC/C,KAAImsK,EAAQ,GAAZ,CAEA,GAAIxB,EAAM,CACR,IAAI1gL,EAAI,6CAA6C3E,KAAK+iI,EAAOK,OAAOxwF,MAAMmwF,EAAOroH,MAAOmsK,IACxFliL,IAAGkiL,EAAQliL,EAAEsd,OAInB,IADA,IAAI6kK,EAAQ,EAAGC,GAAe,EACrBpjK,EAAMkjK,EAAQ,EAAGljK,GAAO,IAAKA,EAAK,CACzC,IAAIq+G,EAAKe,EAAOK,OAAOjhF,OAAOx+B,GAC1BqjK,EAAUN,EAASv/K,QAAQ66H,GAC/B,GAAIglD,GAAW,GAAKA,EAAU,EAAG,CAC/B,IAAKF,EAAO,GAAInjK,EAAK,MACrB,GAAe,KAATmjK,EAAY,CAAY,KAAN9kD,IAAW+kD,GAAe,GAAM,YACnD,GAAIC,GAAW,GAAKA,EAAU,IACjCF,OACG,GAAIvB,EAAOzqI,KAAKknF,GACrB+kD,GAAe,OACV,GAAI,UAAUjsI,KAAKknF,GACxB,QAAUr+G,EAAK,CACb,GAAW,GAAPA,EAAU,OAEd,GADWo/G,EAAOK,OAAOjhF,OAAOx+B,EAAM,IAC1Bq+G,GAAuC,MAAjCe,EAAOK,OAAOjhF,OAAOx+B,EAAM,GAAY,CAAEA,IAAO,YAE/D,GAAIojK,IAAiBD,EAAO,GAC/BnjK,EACF,OAGAojK,IAAiBD,IAAOhhJ,EAAM8gJ,WAAajjK,IAKjD,IAAIsjK,EAAc,CAAC,MAAQ,EAAM,QAAU,EAAM,UAAY,EAAM,QAAU,EAC1D,QAAU,EAAM,MAAQ,EAAM,QAAU,EAAM,kBAAkB,GAEnF,SAASC,EAAUvyC,EAAU7D,EAAQh9I,EAAM6iK,EAAO5mJ,EAAM+xF,GACtDtvG,KAAKmiJ,SAAWA,EAChBniJ,KAAKs+I,OAASA,EACdt+I,KAAKsB,KAAOA,EACZtB,KAAKud,KAAOA,EACZvd,KAAKsvG,KAAOA,EACC,MAAT60D,IAAenkK,KAAKmkK,MAAQA,GAGlC,SAASwwB,EAAQrhJ,EAAOshJ,GACtB,IAAKhC,EAAY,OAAO,EACxB,IAAK,IAAI36J,EAAIqb,EAAMuhJ,UAAW58J,EAAGA,EAAIA,EAAE+P,KACrC,GAAI/P,EAAE9zB,MAAQywL,EAAS,OAAO,EAChC,IAAK,IAAI9E,EAAKx8I,EAAMkmB,QAASs2H,EAAIA,EAAKA,EAAGvyK,KACvC,IAAS0a,EAAI63J,EAAGgF,KAAM78J,EAAGA,EAAIA,EAAE+P,KAC7B,GAAI/P,EAAE9zB,MAAQywL,EAAS,OAAO,EAIpC,SAASG,EAAQzhJ,EAAO38B,EAAOrV,EAAMyR,EAASw9H,GAC5C,IAAI73E,EAAKplB,EAAMolB,GAQf,IALAo3H,EAAGx8I,MAAQA,EAAOw8I,EAAGv/C,OAASA,EAAQu/C,EAAGkF,OAAS,KAAMlF,EAAGp3H,GAAKA,EAAIo3H,EAAGn5K,MAAQA,EAE1E28B,EAAMs7F,QAAQjtG,eAAe,WAChC2R,EAAMs7F,QAAQu1B,OAAQ,KAItB,IADiBzrG,EAAGzxD,OAASyxD,EAAGh3D,MAAQitI,EAAWsmD,EAAaC,GACjD5zL,EAAMyR,GAAU,CAC7B,KAAM2lD,EAAGzxD,QAAUyxD,EAAGA,EAAGzxD,OAAS,GAAGkuL,KACnCz8H,EAAGh3D,KAAHg3D,GACF,OAAIo3H,EAAGkF,OAAelF,EAAGkF,OACb,YAAR1zL,GAAsBqzL,EAAQrhJ,EAAOvgC,GAAiB,aACnD4D,GAOb,IAAIm5K,EAAK,CAACx8I,MAAO,KAAMgrG,OAAQ,KAAM02C,OAAQ,KAAMt8H,GAAI,MACvD,SAAS82H,IACP,IAAK,IAAIplL,EAAI2Z,UAAU9c,OAAS,EAAGmD,GAAK,EAAGA,IAAK0lL,EAAGp3H,GAAG9qD,KAAKmW,UAAU3Z,IAEvE,SAASyxB,IAEP,OADA2zJ,EAAK5lI,MAAM,KAAM7lC,YACV,EAET,SAASqxK,EAAOjxL,EAAMipD,GACpB,IAAK,IAAIn1B,EAAIm1B,EAAMn1B,EAAGA,EAAIA,EAAE+P,KAAM,GAAI/P,EAAE9zB,MAAQA,EAAM,OAAO,EAC7D,OAAO,EAET,SAASuhH,EAASkvE,GAChB,IAAIthJ,EAAQw8I,EAAGx8I,MAEf,GADAw8I,EAAGkF,OAAS,MACPpC,EAAL,CACA,GAAIt/I,EAAMkmB,QACR,GAA0B,OAAtBlmB,EAAMs7F,QAAQt/B,MAAiBh8D,EAAMkmB,SAAWlmB,EAAMkmB,QAAQt/C,MAAO,CAEvE,IAAIm7K,EAAaC,EAAkBV,EAASthJ,EAAMkmB,SAClD,GAAkB,MAAd67H,EAEF,YADA/hJ,EAAMkmB,QAAU67H,QAGb,IAAKD,EAAOR,EAASthJ,EAAMuhJ,WAEhC,YADAvhJ,EAAMuhJ,UAAY,IAAIU,EAAIX,EAASthJ,EAAMuhJ,YAKzC9G,EAAayH,aAAeJ,EAAOR,EAASthJ,EAAMkiJ,cACpDliJ,EAAMkiJ,WAAa,IAAID,EAAIX,EAASthJ,EAAMkiJ,cAE9C,SAASF,EAAkBV,EAASp7H,GAClC,GAAKA,EAEE,IAAIA,EAAQt/C,MAAO,CACxB,IAAIokD,EAAQg3H,EAAkBV,EAASp7H,EAAQj8C,MAC/C,OAAK+gD,EACDA,GAAS9E,EAAQj8C,KAAai8C,EAC3B,IAAIylF,EAAQ3gF,EAAO9E,EAAQs7H,MAAM,GAFrB,KAGd,OAAIM,EAAOR,EAASp7H,EAAQs7H,MAC1Bt7H,EAEA,IAAIylF,EAAQzlF,EAAQj8C,KAAM,IAAIg4K,EAAIX,EAASp7H,EAAQs7H,OAAO,GATjE,OAAO,KAaX,SAASW,EAAWtxL,GAClB,MAAe,UAARA,GAA4B,WAARA,GAA6B,aAARA,GAA+B,YAARA,GAA8B,YAARA,EAK/F,SAAS86I,EAAQ1hI,EAAMu3K,EAAM56K,GAASla,KAAKud,KAAOA,EAAMvd,KAAK80L,KAAOA,EAAM90L,KAAKka,MAAQA,EACvF,SAASq7K,EAAIpxL,EAAM6jC,GAAQhoC,KAAKmE,KAAOA,EAAMnE,KAAKgoC,KAAOA,EAEzD,IAAI0tJ,EAAc,IAAIH,EAAI,OAAQ,IAAIA,EAAI,YAAa,OACvD,SAASI,IACP7F,EAAGx8I,MAAMkmB,QAAU,IAAIylF,EAAQ6wC,EAAGx8I,MAAMkmB,QAASs2H,EAAGx8I,MAAMuhJ,WAAW,GACrE/E,EAAGx8I,MAAMuhJ,UAAYa,EAEvB,SAASE,IACP9F,EAAGx8I,MAAMkmB,QAAU,IAAIylF,EAAQ6wC,EAAGx8I,MAAMkmB,QAASs2H,EAAGx8I,MAAMuhJ,WAAW,GACrE/E,EAAGx8I,MAAMuhJ,UAAY,KAEvB,SAASgB,IACP/F,EAAGx8I,MAAMuhJ,UAAY/E,EAAGx8I,MAAMkmB,QAAQs7H,KACtChF,EAAGx8I,MAAMkmB,QAAUs2H,EAAGx8I,MAAMkmB,QAAQj8C,KAGtC,SAASu4K,EAAQx0L,EAAMguG,GACrB,IAAIrtG,EAAS,WACX,IAAIqxC,EAAQw8I,EAAGx8I,MAAOwuI,EAASxuI,EAAM6uG,SACrC,GAA0B,QAAtB7uG,EAAMs7F,QAAQttI,KAAgBwgL,EAASxuI,EAAMs7F,QAAQuT,cACpD,IAAK,IAAInS,EAAQ18F,EAAMs7F,QAASoB,GAAuB,KAAdA,EAAM1uI,MAAe0uI,EAAMm0B,MAAOn0B,EAAQA,EAAMzyH,KAC5FukK,EAAS9xC,EAAMmS,SACjB7uG,EAAMs7F,QAAU,IAAI8lD,EAAU5S,EAAQgO,EAAGv/C,OAAO+N,SAAUh9I,EAAM,KAAMgyC,EAAMs7F,QAASt/B,IAGvF,OADArtG,EAAOkzL,KAAM,EACNlzL,EAET,SAAS8zL,IACP,IAAIziJ,EAAQw8I,EAAGx8I,MACXA,EAAMs7F,QAAQrxH,OACU,KAAtB+1B,EAAMs7F,QAAQttI,OAChBgyC,EAAM6uG,SAAW7uG,EAAMs7F,QAAQuT,UACjC7uG,EAAMs7F,QAAUt7F,EAAMs7F,QAAQrxH,MAKlC,SAASy4K,EAAOC,GACd,SAASC,EAAI50L,GACX,OAAIA,GAAQ20L,EAAep6J,IACR,KAAVo6J,GAAyB,KAAR30L,GAAuB,KAARA,GAAuB,KAARA,EAAoBkuL,IAChE3zJ,EAAKq6J,GAEnB,OAAOA,EAGT,SAAShB,EAAU5zL,EAAMuE,GACvB,MAAY,OAARvE,EAAsBu6B,EAAKi6J,EAAQ,SAAUjwL,GAAQswL,GAAQH,EAAO,KAAMD,GAClE,aAARz0L,EAA4Bu6B,EAAKi6J,EAAQ,QAASM,EAAWlB,EAAWa,GAChE,aAARz0L,EAA4Bu6B,EAAKi6J,EAAQ,QAASZ,EAAWa,GACrD,aAARz0L,EAA4BwuL,EAAGv/C,OAAOhjI,MAAM,SAAS,GAASsuB,IAASA,EAAKi6J,EAAQ,QAASO,EAAiBL,EAAO,KAAMD,GACnH,YAARz0L,EAA2Bu6B,EAAKm6J,EAAO,MAC/B,KAAR10L,EAAoBu6B,EAAKi6J,EAAQ,KAAMF,EAAkB17K,GAAO67K,EAAQF,GAChE,KAARv0L,EAAoBu6B,IACZ,MAARv6B,GAC2B,QAAzBwuL,EAAGx8I,MAAMs7F,QAAQt/B,MAAkBwgF,EAAGx8I,MAAMolB,GAAGo3H,EAAGx8I,MAAMolB,GAAGzxD,OAAS,IAAM8uL,GAC5EjG,EAAGx8I,MAAMolB,GAAGh3D,KAAZouL,GACKj0J,EAAKi6J,EAAQ,QAASM,EAAWlB,EAAWa,EAAQO,KAEjD,YAARh1L,EAA2Bu6B,EAAK06J,IACxB,OAARj1L,EAAsBu6B,EAAKi6J,EAAQ,QAASF,EAAkBY,GAAStB,EAAWW,EAAYE,GACtF,SAARz0L,GAAoBuxL,GAAiB,aAAThtL,GAC9BiqL,EAAGkF,OAAS,UACLn5J,EAAKi6J,EAAQ,OAAgB,SAARx0L,EAAkBA,EAAOuE,GAAQ9C,GAAWgzL,IAE9D,YAARz0L,EACEuxL,GAAiB,WAAThtL,GACViqL,EAAGkF,OAAS,UACLn5J,EAAKq5J,IACHrC,IAAkB,UAAThtL,GAA8B,QAATA,GAA4B,QAATA,IAAoBiqL,EAAGv/C,OAAOhjI,MAAM,UAAU,IACxGuiL,EAAGkF,OAAS,UACC,QAATnvL,EAAwBg2B,EAAK46J,IACf,QAAT5wL,EAAwBg2B,EAAK66J,GAAUV,EAAO,YAAaW,GAAUX,EAAO,MACzEn6J,EAAKi6J,EAAQ,QAASt3C,GAASw3C,EAAO,KAAMF,EAAQ,KAAM57K,GAAO67K,EAAQA,IAC5ElD,GAAiB,aAAThtL,GACjBiqL,EAAGkF,OAAS,UACLn5J,EAAKi6J,EAAQ,QAASb,EAAYC,EAAWa,IAC3ClD,GAAiB,YAAThtL,GACjBiqL,EAAGkF,OAAS,UACLn5J,EAAKq5J,IAELr5J,EAAKi6J,EAAQ,QAASc,IAGrB,UAARt1L,EAAyBu6B,EAAKi6J,EAAQ,QAASM,EAAWJ,EAAO,KAAMF,EAAQ,IAAK,UAAWF,EACjE17K,GAAO67K,EAAQA,EAAQF,GAC7C,QAARv0L,EAAuBu6B,EAAKo5J,EAAYe,EAAO,MACvC,WAAR10L,EAA0Bu6B,EAAKm6J,EAAO,MAC9B,SAAR10L,EAAwBu6B,EAAKi6J,EAAQ,QAASH,EAAakB,EAAmB3B,EAAWa,EAAQF,GACzF,UAARv0L,EAAyBu6B,EAAKi6J,EAAQ,QAASgB,GAAaf,GACpD,UAARz0L,EAAyBu6B,EAAKi6J,EAAQ,QAASiB,GAAahB,GACpD,SAARz0L,EAAwBu6B,EAAKq5J,GACpB,KAATrvL,EAAqBg2B,EAAKo5J,EAAYC,GACnC1F,EAAKsG,EAAQ,QAASb,EAAYe,EAAO,KAAMD,GAExD,SAASc,EAAkBv1L,GACzB,GAAY,KAARA,EAAa,OAAOu6B,EAAKm7J,GAAQhB,EAAO,MAE9C,SAASf,EAAW3zL,EAAMuE,GACxB,OAAOoxL,EAAgB31L,EAAMuE,GAAO,GAEtC,SAASqxL,EAAkB51L,EAAMuE,GAC/B,OAAOoxL,EAAgB31L,EAAMuE,GAAO,GAEtC,SAASuwL,EAAU90L,GACjB,MAAY,KAARA,EAAoBkuL,IACjB3zJ,EAAKi6J,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,GAE1D,SAASkB,EAAgB31L,EAAMuE,EAAOsxL,GACpC,GAAIrH,EAAGx8I,MAAM8gJ,YAActE,EAAGv/C,OAAOroH,MAAO,CAC1C,IAAIje,EAAOktL,EAAUC,GAAmBC,GACxC,GAAY,KAAR/1L,EAAa,OAAOu6B,EAAK85J,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQC,EAAO,MAAO/rL,EAAM4rL,GACtG,GAAY,YAARv0L,EAAoB,OAAOkuL,EAAKmG,EAAan3C,GAASw3C,EAAO,MAAO/rL,EAAM4rL,GAGrF,IAAI0B,EAAUJ,EAAUK,EAAuBC,EAC/C,OAAIhD,EAAY9yJ,eAAergC,GAAcu6B,EAAK07J,GACtC,YAARj2L,EAA2Bu6B,EAAK06J,GAAagB,GACrC,SAARj2L,GAAoBuxL,GAAiB,aAAThtL,GAAyBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKi6J,EAAQ,QAAS4B,GAAiB3B,IAClH,aAARz0L,GAA+B,SAARA,EAAwBu6B,EAAKs7J,EAAUD,EAAoBjC,GAC1E,KAAR3zL,EAAoBu6B,EAAKi6J,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQwB,GACrE,YAARj2L,GAA8B,UAARA,EAAyBu6B,EAAKs7J,EAAUD,EAAoBjC,GAC1E,KAAR3zL,EAAoBu6B,EAAKi6J,EAAQ,KAAM6B,GAAc5B,EAAQwB,GACrD,KAARj2L,EAAoBs2L,GAAaC,GAAS,IAAK,KAAMN,GAC7C,SAARj2L,EAAwBkuL,EAAKsI,EAAOP,GAC5B,OAARj2L,EAAsBu6B,EAAKk8J,GAAYZ,IACpCt7J,IAET,SAASw6J,EAAgB/0L,GACvB,OAAIA,EAAKiM,MAAM,cAAsBiiL,IAC9BA,EAAKyF,GAGd,SAASwC,EAAmBn2L,EAAMuE,GAChC,MAAY,KAARvE,EAAoBu6B,EAAKw6J,GACtBmB,EAAqBl2L,EAAMuE,GAAO,GAE3C,SAAS2xL,EAAqBl2L,EAAMuE,EAAOsxL,GACzC,IAAInoB,EAAgB,GAAXmoB,EAAmBM,EAAqBD,EAC7CQ,EAAkB,GAAXb,EAAmBlC,EAAaiC,EAC3C,MAAY,MAAR51L,EAAqBu6B,EAAK85J,EAAawB,EAAUC,GAAmBC,GAAWxB,GACvE,YAARv0L,EACE,UAAUgnD,KAAKziD,IAAUgtL,GAAiB,KAAThtL,EAAqBg2B,EAAKmzI,GAC3D6jB,GAAiB,KAAThtL,GAAgBiqL,EAAGv/C,OAAOhjI,MAAM,4BAA4B,GAC/DsuB,EAAKi6J,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ/mB,GAChD,KAATnpK,EAAqBg2B,EAAKo5J,EAAYe,EAAO,KAAMgC,GAChDn8J,EAAKm8J,GAEF,SAAR12L,EAA0BkuL,EAAKsI,EAAO9oB,GAC9B,KAAR1tK,EACQ,KAARA,EAAoBs2L,GAAaV,EAAmB,IAAK,OAAQloB,GACzD,KAAR1tK,EAAoBu6B,EAAK66B,GAAUs4G,GAC3B,KAAR1tK,EAAoBu6B,EAAKi6J,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQ/mB,GAC7E6jB,GAAiB,MAAThtL,GAAiBiqL,EAAGkF,OAAS,UAAkBn5J,EAAK86J,GAAU3nB,IAC9D,UAAR1tK,GACFwuL,EAAGx8I,MAAM0gJ,SAAWlE,EAAGkF,OAAS,WAChClF,EAAGv/C,OAAO8N,OAAOyxC,EAAGv/C,OAAOp/G,IAAM2+J,EAAGv/C,OAAOroH,MAAQ,GAC5C2T,EAAKm8J,SAHd,OALA,EAWF,SAASF,EAAMx2L,EAAMuE,GACnB,MAAY,SAARvE,EAAwBkuL,IACS,MAAjC3pL,EAAMu6C,MAAMv6C,EAAMoB,OAAS,GAAmB40B,EAAKi8J,GAChDj8J,EAAKw6J,EAAiB4B,GAE/B,SAASA,EAAc32L,GACrB,GAAY,KAARA,EAGF,OAFAwuL,EAAGkF,OAAS,WACZlF,EAAGx8I,MAAM27I,SAAW8E,EACbl4J,EAAKi8J,GAGhB,SAAST,GAAU/1L,GAEjB,OADA6yL,EAAarE,EAAGv/C,OAAQu/C,EAAGx8I,OACpBk8I,EAAa,KAARluL,EAAc4zL,EAAYD,GAExC,SAASmC,GAAiB91L,GAExB,OADA6yL,EAAarE,EAAGv/C,OAAQu/C,EAAGx8I,OACpBk8I,EAAa,KAARluL,EAAc4zL,EAAYgC,GAExC,SAASa,GAAYZ,GACnB,OAAO,SAAS71L,GACd,MAAY,KAARA,EAAoBu6B,EAAKs7J,EAAUe,GAAgBx0L,IACtC,YAARpC,GAAsBuxL,EAAah3J,EAAKs8J,GAAehB,EAAUK,EAAuBC,GACrFjI,EAAK2H,EAAUD,EAAoBjC,IAGnD,SAASvxL,GAAO68H,EAAG16H,GACjB,GAAa,UAATA,EAA4C,OAAvBiqL,EAAGkF,OAAS,UAAkBn5J,EAAK47J,GAE9D,SAASS,GAAc33D,EAAG16H,GACxB,GAAa,UAATA,EAA4C,OAAvBiqL,EAAGkF,OAAS,UAAkBn5J,EAAK27J,GAE9D,SAASZ,GAAWt1L,GAClB,MAAY,KAARA,EAAoBu6B,EAAKk6J,EAAQb,GAC9B1F,EAAKiI,EAAoBzB,EAAO,KAAMD,GAE/C,SAASr/H,GAASp1D,GAChB,GAAY,YAARA,EAA6C,OAAxBwuL,EAAGkF,OAAS,WAAmBn5J,IAE1D,SAASg8J,GAAQv2L,EAAMuE,GACrB,MAAY,SAARvE,GACFwuL,EAAGkF,OAAS,WACLn5J,EAAKg8J,KACK,YAARv2L,GAAkC,WAAZwuL,EAAGn5K,OAClCm5K,EAAGkF,OAAS,WACC,OAATnvL,GAA2B,OAATA,EAAuBg2B,EAAKu8J,KAE9CvF,GAAQ/C,EAAGx8I,MAAM8gJ,YAActE,EAAGv/C,OAAOroH,QAAU/V,EAAI29K,EAAGv/C,OAAOhjI,MAAM,YAAY,MACrFuiL,EAAGx8I,MAAM8gJ,WAAatE,EAAGv/C,OAAOp/G,IAAMhf,EAAE,GAAGlL,QACtC40B,EAAKw8J,MACK,UAAR/2L,GAA4B,UAARA,GAC7BwuL,EAAGkF,OAAStC,EAAa,WAAc5C,EAAGn5K,MAAQ,YAC3CklB,EAAKw8J,KACK,kBAAR/2L,EACFu6B,EAAKw8J,IACHxF,GAAQ4C,EAAW5vL,IAC5BiqL,EAAGkF,OAAS,UACLn5J,EAAKg8J,KACK,KAARv2L,EACFu6B,EAAKo5J,EAAYqD,GAAWtC,EAAO,KAAMqC,IAC/B,UAAR/2L,EACFu6B,EAAKq7J,EAAmBmB,IACb,KAATxyL,GACTiqL,EAAGkF,OAAS,UACLn5J,EAAKg8J,KACK,KAARv2L,EACFkuL,EAAK6I,SADP,EAnBL,IAAIlmL,EAuBR,SAASimL,GAAa92L,GACpB,MAAY,YAARA,EAA2BkuL,EAAK6I,KACpCvI,EAAGkF,OAAS,WACLn5J,EAAK06J,KAEd,SAAS8B,GAAU/2L,GACjB,MAAY,KAARA,EAAoBu6B,EAAKq7J,GACjB,KAAR51L,EAAoBkuL,EAAK+G,SAA7B,EAEF,SAASe,GAASiB,EAAMzyJ,EAAK+qE,GAC3B,SAAS2nF,EAAQl3L,EAAMuE,GACrB,GAAIgrG,EAAMA,EAAIl8F,QAAQrT,IAAS,EAAY,KAARA,EAAa,CAC9C,IAAI6zL,EAAMrF,EAAGx8I,MAAMs7F,QAEnB,MADgB,QAAZumD,EAAI7lF,OAAgB6lF,EAAIhkK,KAAOgkK,EAAIhkK,KAAO,GAAK,GAC5C0K,GAAK,SAASv6B,EAAMuE,GACzB,OAAIvE,GAAQwkC,GAAOjgC,GAASigC,EAAY0pJ,IACjCA,EAAK+I,KACXC,GAEL,OAAIl3L,GAAQwkC,GAAOjgC,GAASigC,EAAYjK,IACpCg1E,GAAOA,EAAIl8F,QAAQ,MAAQ,EAAU66K,EAAK+I,GACvC18J,EAAKm6J,EAAOlwJ,IAErB,OAAO,SAASxkC,EAAMuE,GACpB,OAAIvE,GAAQwkC,GAAOjgC,GAASigC,EAAYjK,IACjC2zJ,EAAK+I,EAAMC,IAGtB,SAASZ,GAAaW,EAAMzyJ,EAAKwpE,GAC/B,IAAK,IAAIllG,EAAI,EAAGA,EAAI2Z,UAAU9c,OAAQmD,IACpC0lL,EAAGp3H,GAAG9qD,KAAKmW,UAAU3Z,IACvB,OAAOyxB,EAAKi6J,EAAQhwJ,EAAKwpE,GAAOgoF,GAASiB,EAAMzyJ,GAAMiwJ,GAEvD,SAAS77K,GAAM5Y,GACb,MAAY,KAARA,EAAoBu6B,IACjB2zJ,EAAK0F,EAAWh7K,IAEzB,SAASo+K,GAAUh3L,EAAMuE,GACvB,GAAIgtL,EAAM,CACR,GAAY,KAARvxL,EAAa,OAAOu6B,EAAK86J,IAC7B,GAAa,KAAT9wL,EAAc,OAAOg2B,EAAKy8J,KAGlC,SAASG,GAAcn3L,EAAMuE,GAC3B,GAAIgtL,IAAiB,KAARvxL,GAAwB,MAATuE,GAAgB,OAAOg2B,EAAK86J,IAE1D,SAAS+B,GAAap3L,GACpB,GAAIuxL,GAAgB,KAARvxL,EACV,OAAIwuL,EAAGv/C,OAAOhjI,MAAM,kBAAkB,GAAesuB,EAAKo5J,EAAY0D,GAAMhC,IAChE96J,EAAK86J,IAGrB,SAASgC,GAAKp4D,EAAG16H,GACf,GAAa,MAATA,EAEF,OADAiqL,EAAGkF,OAAS,UACLn5J,IAGX,SAAS86J,GAASr1L,EAAMuE,GACtB,MAAa,SAATA,GAA6B,UAATA,GAA8B,SAATA,GAA6B,YAATA,GAC/DiqL,EAAGkF,OAAS,UACLn5J,EAAc,UAATh2B,EAAoBqxL,EAAoBP,KAE1C,YAARr1L,GAA+B,QAATuE,GACxBiqL,EAAGkF,OAAS,OACLn5J,EAAK+8J,KAED,KAAT/yL,GAAyB,KAATA,EAAqBg2B,EAAK86J,IAClC,UAARr1L,GAA4B,UAARA,GAA4B,QAARA,EAAuBu6B,EAAK+8J,IAC5D,KAARt3L,EAAoBu6B,EAAKi6J,EAAQ,KAAMwB,GAASX,GAAU,IAAK,KAAMZ,EAAQ6C,IACrE,KAARt3L,EAAoBu6B,EAAKi6J,EAAQ,KAAM+C,GAAW9C,EAAQ6C,IAClD,KAARt3L,EAAoBu6B,EAAKy7J,GAASwB,GAAS,KAAMC,GAAiBH,IAC1D,KAARt3L,EAAoBu6B,EAAKy7J,GAASX,GAAU,KAAMA,IAC1C,SAARr1L,EAA0BkuL,EAAKwJ,GAAWJ,SAA9C,EAEF,SAASG,GAAgBz3L,GACvB,GAAY,MAARA,EAAc,OAAOu6B,EAAK86J,IAEhC,SAASkC,GAAUv3L,GACjB,OAAIA,EAAKiM,MAAM,YAAoBsuB,IACvB,KAARv6B,GAAuB,KAARA,EAAoBu6B,EAAKg9J,IACrCrJ,EAAKyJ,GAAUJ,IAExB,SAASI,GAAS33L,EAAMuE,GACtB,MAAY,YAARvE,GAAkC,WAAZwuL,EAAGn5K,OAC3Bm5K,EAAGkF,OAAS,WACLn5J,EAAKo9J,KACM,KAATpzL,GAAwB,UAARvE,GAA4B,UAARA,EACtCu6B,EAAKo9J,IACK,KAAR33L,EACFu6B,EAAK86J,IACK,KAARr1L,EACFu6B,EAAKm6J,EAAO,YAAayC,GAAezC,EAAO,KAAMiD,IAC3C,KAAR33L,EACFkuL,EAAK0J,GAAcD,IAChB33L,EAAKiM,MAAM,mBAAhB,EACEsuB,IAGX,SAASm9J,GAAU13L,EAAMuE,GACvB,MAAY,SAARvE,EAAwBkuL,IACS,MAAjC3pL,EAAMu6C,MAAMv6C,EAAMoB,OAAS,GAAmB40B,EAAKm9J,IAChDn9J,EAAK86J,GAAUwC,IAExB,SAASA,GAAkB73L,GACzB,GAAY,KAARA,EAGF,OAFAwuL,EAAGkF,OAAS,WACZlF,EAAGx8I,MAAM27I,SAAW8E,EACbl4J,EAAKm9J,IAGhB,SAASF,GAAQx3L,EAAMuE,GACrB,MAAY,YAARvE,GAAsBwuL,EAAGv/C,OAAOhjI,MAAM,YAAY,IAAmB,KAAT1H,EAAqBg2B,EAAKi9J,IAC9E,KAARx3L,EAAoBu6B,EAAK86J,IACjB,UAARr1L,EAAyBu6B,EAAKi9J,IAC3BtJ,EAAKmH,IAEd,SAASiC,GAAUt3L,EAAMuE,GACvB,MAAa,KAATA,EAAqBg2B,EAAKi6J,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ6C,IAChE,KAAT/yL,GAAwB,KAARvE,GAAwB,KAATuE,EAAqBg2B,EAAK86J,IACjD,KAARr1L,EAAoBu6B,EAAK86J,GAAUX,EAAO,KAAM4C,IACvC,WAAT/yL,GAA+B,cAATA,GAAyBiqL,EAAGkF,OAAS,UAAkBn5J,EAAK86J,KACzE,KAAT9wL,EAAqBg2B,EAAK86J,GAAUX,EAAO,KAAMW,SAArD,EAEF,SAASwB,GAAc53D,EAAG16H,GACxB,GAAa,KAATA,EAAc,OAAOg2B,EAAKi6J,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ6C,IAE/E,SAASQ,KACP,OAAO5J,EAAKmH,GAAU0C,IAExB,SAASA,GAAiB94D,EAAG16H,GAC3B,GAAa,KAATA,EAAc,OAAOg2B,EAAK86J,IAEhC,SAASR,GAAO51D,EAAG16H,GACjB,MAAa,QAATA,GAAkBiqL,EAAGkF,OAAS,UAAkBn5J,EAAK46J,KAClDjH,EAAKhxC,GAAS85C,GAAWgB,GAAaC,IAE/C,SAAS/6C,GAAQl9I,EAAMuE,GACrB,OAAIgtL,GAAQ4C,EAAW5vL,IAAUiqL,EAAGkF,OAAS,UAAkBn5J,EAAK2iH,KACxD,YAARl9I,GAAsBokH,EAAS7/G,GAAeg2B,KACtC,UAARv6B,EAAyBu6B,EAAK2iH,IACtB,KAARl9I,EAAoBs2L,GAAa4B,GAAY,KACrC,KAARl4L,EAAoBs2L,GAAa6B,GAAa,UAAlD,EAEF,SAASA,GAAYn4L,EAAMuE,GACzB,MAAY,YAARvE,GAAuBwuL,EAAGv/C,OAAOhjI,MAAM,SAAS,IAIxC,YAARjM,IAAoBwuL,EAAGkF,OAAS,YACxB,UAAR1zL,EAAyBu6B,EAAK2iH,IACtB,KAARl9I,EAAoBkuL,IACZ,KAARluL,EAAoBu6B,EAAKo5J,EAAYe,EAAO,KAAMA,EAAO,KAAMyD,IAC5D59J,EAAKm6J,EAAO,KAAMx3C,GAAS86C,MAPhC5zE,EAAS7/G,GACFg2B,EAAKy9J,KAQhB,SAASE,KACP,OAAOhK,EAAKhxC,GAAS86C,IAEvB,SAASA,GAAY7qD,EAAO5oI,GAC1B,GAAa,KAATA,EAAc,OAAOg2B,EAAKq7J,GAEhC,SAASqC,GAAWj4L,GAClB,GAAY,KAARA,EAAa,OAAOu6B,EAAKs6J,IAE/B,SAASG,GAAUh1L,EAAMuE,GACvB,GAAY,aAARvE,GAAgC,QAATuE,EAAiB,OAAOg2B,EAAKi6J,EAAQ,OAAQ,QAASZ,EAAWa,GAE9F,SAASS,GAAQl1L,EAAMuE,GACrB,MAAa,SAATA,EAAyBg2B,EAAK26J,IACtB,KAARl1L,EAAoBu6B,EAAKi6J,EAAQ,KAAM4D,GAAU3D,QAArD,EAEF,SAAS2D,GAASp4L,GAChB,MAAY,OAARA,EAAsBu6B,EAAKs6J,GAAQwD,IAC3B,YAARr4L,EAA2Bu6B,EAAK89J,IAC7BnK,EAAKmK,IAEd,SAASA,GAASr4L,EAAMuE,GACtB,MAAY,KAARvE,EAAoBu6B,IACZ,KAARv6B,EAAoBu6B,EAAK89J,IAChB,MAAT9zL,GAA0B,MAATA,GAAiBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKo5J,EAAY0E,KAC9EnK,EAAKyF,EAAY0E,IAE1B,SAASpD,GAAYj1L,EAAMuE,GACzB,MAAa,KAATA,GAAeiqL,EAAGkF,OAAS,UAAkBn5J,EAAK06J,KAC1C,YAARj1L,GAAqBokH,EAAS7/G,GAAeg2B,EAAK06J,KAC1C,KAARj1L,EAAoBu6B,EAAK85J,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ2C,GAAcxD,EAAWW,GAC5GhD,GAAiB,KAAThtL,EAAqBg2B,EAAKi6J,EAAQ,KAAMwB,GAAS8B,GAAW,KAAMrD,EAAQQ,SAAtF,EAEF,SAAS2C,GAAa53L,EAAMuE,GAC1B,MAAa,KAATA,GAAeiqL,EAAGkF,OAAS,UAAkBn5J,EAAKq9J,KAC1C,YAAR53L,GAAqBokH,EAAS7/G,GAAeg2B,EAAKq9J,KAC1C,KAAR53L,EAAoBu6B,EAAK85J,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ2C,GAAc7C,GACjGhD,GAAiB,KAAThtL,EAAqBg2B,EAAKi6J,EAAQ,KAAMwB,GAAS8B,GAAW,KAAMrD,EAAQmD,SAAtF,EAEF,SAASxC,GAASp1L,EAAMuE,GACtB,MAAY,WAARvE,GAA6B,YAARA,GACvBwuL,EAAGkF,OAAS,OACLn5J,EAAK66J,KACM,KAAT7wL,EACFg2B,EAAKi6J,EAAQ,KAAMwB,GAAS8B,GAAW,KAAMrD,QAD/C,EAIT,SAASiB,GAAO11L,EAAMuE,GAEpB,MADa,KAATA,GAAcg2B,EAAKo5J,EAAY+B,IACvB,UAAR11L,EAAyBu6B,EAAKm7J,IAC9BnE,GAAQ4C,EAAW5vL,IAAUiqL,EAAGkF,OAAS,UAAkBn5J,EAAKm7J,KAChEnE,GAAgB,QAARvxL,EAAuBu6B,EAAKy8J,GAAWgB,IAC5C9J,EAAKhxC,GAAS85C,GAAWgB,IAElC,SAAS5B,GAAgBp2L,EAAMuE,GAE7B,MAAY,YAARvE,EAA2ByB,GAAUzB,EAAMuE,GACxC+zL,GAAet4L,EAAMuE,GAE9B,SAAS9C,GAAUzB,EAAMuE,GACvB,GAAY,YAARvE,EAAsC,OAAjBokH,EAAS7/G,GAAeg2B,EAAK+9J,IAExD,SAASA,GAAet4L,EAAMuE,GAC5B,MAAa,KAATA,EAAqBg2B,EAAKi6J,EAAQ,KAAMwB,GAAS8B,GAAW,KAAMrD,EAAQ6D,IACjE,WAAT/zL,GAA+B,cAATA,GAA0BgtL,GAAgB,KAARvxL,GAC7C,cAATuE,IAAuBiqL,EAAGkF,OAAS,WAChCn5J,EAAKg3J,EAAO8D,GAAW1B,EAAY2E,KAEhC,KAARt4L,EAAoBu6B,EAAKi6J,EAAQ,KAAM+D,GAAW9D,QAAtD,EAEF,SAAS8D,GAAUv4L,EAAMuE,GACvB,MAAY,SAARvE,GACS,YAARA,IACU,UAATuE,GAA8B,OAATA,GAA2B,OAATA,GAAmBgtL,GAAQ4C,EAAW5vL,KAC9EiqL,EAAGv/C,OAAOhjI,MAAM,wBAAwB,IAC3CuiL,EAAGkF,OAAS,UACLn5J,EAAKg+J,KAEF,YAARv4L,GAAkC,WAAZwuL,EAAGn5K,OAC3Bm5K,EAAGkF,OAAS,WACLn5J,EAAKi+J,GAAYD,KAEd,UAARv4L,GAA4B,UAARA,EAAyBu6B,EAAKi+J,GAAYD,IACtD,KAARv4L,EACKu6B,EAAKo5J,EAAYqD,GAAWtC,EAAO,KAAM8D,GAAYD,IACjD,KAATh0L,GACFiqL,EAAGkF,OAAS,UACLn5J,EAAKg+J,KAEVhH,GAAgB,KAARvxL,EAAoBkuL,EAAK0J,GAAcW,IACvC,KAARv4L,GAAuB,KAARA,EAAoBu6B,EAAKg+J,IAChC,KAARv4L,EAAoBu6B,IACX,KAATh2B,EAAqBg2B,EAAKo5J,EAAY4E,SAA1C,EAEF,SAASC,GAAWx4L,EAAMuE,GACxB,GAAa,KAATA,EAAc,OAAOg2B,EAAKi+J,IAC9B,GAAa,KAATj0L,EAAc,OAAOg2B,EAAKi+J,IAC9B,GAAY,KAARx4L,EAAa,OAAOu6B,EAAK86J,GAAU2C,IACvC,GAAa,KAATzzL,EAAc,OAAOg2B,EAAKq7J,GAC9B,IAAI19H,EAAUs2H,EAAGx8I,MAAMs7F,QAAQrxH,KAC/B,OAAOiyK,EAD4Ch2H,GAA2B,aAAhBA,EAAQ81C,KAC5C4pF,GAAe3C,IAE3C,SAASO,GAAYx1L,EAAMuE,GACzB,MAAa,KAATA,GAAgBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKk+J,GAAW/D,EAAO,OAC5D,WAATnwL,GAAsBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKo5J,EAAYe,EAAO,OACpE,KAAR10L,EAAoBu6B,EAAKy7J,GAAS0C,GAAa,KAAMD,GAAW/D,EAAO,MACpExG,EAAK0F,GAEd,SAAS8E,GAAY14L,EAAMuE,GACzB,MAAa,MAATA,GAAiBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKm6J,EAAO,cACnD,YAAR10L,EAA2BkuL,EAAK0H,EAAmB8C,SAAvD,EAEF,SAASjD,GAAYz1L,GACnB,MAAY,UAARA,EAAyBu6B,IACjB,KAARv6B,EAAoBkuL,EAAKyF,GACjB,KAAR3zL,EAAoBkuL,EAAKiI,GACtBjI,EAAKyK,GAAYC,GAAkBH,IAE5C,SAASE,GAAW34L,EAAMuE,GACxB,MAAY,KAARvE,EAAoBs2L,GAAaqC,GAAY,MACrC,YAAR34L,GAAoBokH,EAAS7/G,GACpB,KAATA,IAAciqL,EAAGkF,OAAS,WACvBn5J,EAAKs+J,KAEd,SAASD,GAAiB54L,GACxB,GAAY,KAARA,EAAa,OAAOu6B,EAAKo+J,GAAYC,IAE3C,SAASC,GAAQ1rD,EAAO5oI,GACtB,GAAa,MAATA,EAAwC,OAAvBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKo+J,IAE1D,SAASF,GAAUtrD,EAAO5oI,GACxB,GAAa,QAATA,EAA0C,OAAvBiqL,EAAGkF,OAAS,UAAkBn5J,EAAKo5J,GAE5D,SAAS0C,GAAar2L,GACpB,MAAY,KAARA,EAAoBu6B,IACjB2zJ,EAAK8H,GAASJ,EAAmB,MAE1C,SAAST,KACP,OAAOjH,EAAKsG,EAAQ,QAASt3C,GAASw3C,EAAO,KAAMF,EAAQ,KAAMwB,GAAS8C,GAAY,KAAMrE,EAAQA,GAEtG,SAASqE,KACP,OAAO5K,EAAKhxC,GAAS86C,IAGvB,SAASe,GAAqB/mJ,EAAOo7F,GACnC,MAAyB,YAAlBp7F,EAAM0gJ,UAA4C,KAAlB1gJ,EAAM0gJ,UAC3CP,EAAenrI,KAAKomF,EAAU/+E,OAAO,KACrC,OAAOrH,KAAKomF,EAAU/+E,OAAO,IAGjC,SAASmkI,GAAkBvjD,EAAQj9F,EAAO+qG,GACxC,OAAO/qG,EAAM27I,UAAYD,GACvB,iFAAiF1mI,KAAKhV,EAAM0gJ,WACzE,SAAlB1gJ,EAAM0gJ,UAAuB,SAAS1rI,KAAKioF,EAAOK,OAAOxwF,MAAM,EAAGmwF,EAAOp/G,KAAOktH,GAAU,KAK/F,OAhhBAw3C,EAAWV,KAAM,EAoBjBY,EAAOZ,KAAM,EA4fN,CACLp5C,WAAY,SAASu+C,GACnB,IAAIhnJ,EAAQ,CACV27I,SAAUD,EACVgF,SAAU,MACVt7H,GAAI,GACJk2E,QAAS,IAAI8lD,GAAW4F,GAAc,GAAKrY,EAAY,EAAG,SAAS,GACnE4S,UAAW9G,EAAa8G,UACxBr7H,QAASu0H,EAAa8G,WAAa,IAAI51C,EAAQ,KAAM,MAAM,GAC3DkD,SAAUm4C,GAAc,GAI1B,OAFIvM,EAAayH,YAAgD,iBAA3BzH,EAAayH,aACjDliJ,EAAMkiJ,WAAazH,EAAayH,YAC3BliJ,GAGTo9F,MAAO,SAASH,EAAQj9F,GAOtB,GANIi9F,EAAOuN,QACJxqG,EAAMs7F,QAAQjtG,eAAe,WAChC2R,EAAMs7F,QAAQu1B,OAAQ,GACxB7wH,EAAM6uG,SAAW5R,EAAOgO,cACxB41C,EAAa5jD,EAAQj9F,IAEnBA,EAAM27I,UAAY4E,GAAgBtjD,EAAO2N,WAAY,OAAO,KAChE,IAAIvnI,EAAQ28B,EAAM27I,SAAS1+C,EAAQj9F,GACnC,MAAY,WAARhyC,EAA0BqV,GAC9B28B,EAAM0gJ,SAAmB,YAAR1yL,GAAkC,MAAXyR,GAA8B,MAAXA,EAA8BzR,EAAX,SACvEyzL,EAAQzhJ,EAAO38B,EAAOrV,EAAMyR,EAASw9H,KAG9CuxC,OAAQ,SAASxuI,EAAOo7F,GACtB,GAAIp7F,EAAM27I,UAAY4E,GAAgBvgJ,EAAM27I,UAAY8E,EAAY,OAAO57J,EAAWq8G,KACtF,GAAIlhG,EAAM27I,UAAYD,EAAW,OAAO,EACxC,IAA2EhvK,EAAvEy9E,EAAYixC,GAAaA,EAAU/+E,OAAO,GAAIi/E,EAAUt7F,EAAMs7F,QAElE,IAAK,aAAatmF,KAAKomF,GAAY,IAAK,IAAItkI,EAAIkpC,EAAMolB,GAAGzxD,OAAS,EAAGmD,GAAK,IAAKA,EAAG,CAChF,IAAIvB,EAAIyqC,EAAMolB,GAAGtuD,GACjB,GAAIvB,GAAKktL,EAAQnnD,EAAUA,EAAQrxH,UAC9B,GAAI1U,GAAKytL,IAAaztL,GAAKgtL,EAAY,MAE9C,MAAwB,QAAhBjnD,EAAQttI,MAAkC,QAAhBstI,EAAQttI,QACrB,KAAbm8F,IAAsBz9E,EAAMszB,EAAMolB,GAAGplB,EAAMolB,GAAGzxD,OAAS,MACjC+Y,GAAOy3K,GAAsBz3K,GAAOw3K,KACpC,mBAAmBlvI,KAAKomF,KACpDE,EAAUA,EAAQrxH,KAChBk1K,GAAmC,KAAhB7jD,EAAQttI,MAAoC,QAArBstI,EAAQrxH,KAAKjc,OACzDstI,EAAUA,EAAQrxH,MACpB,IAAIjc,EAAOstI,EAAQttI,KAAM4mL,EAAUzqF,GAAan8F,EAEhD,MAAY,UAARA,EAAyBstI,EAAQuT,UAA8B,YAAlB7uG,EAAM0gJ,UAA4C,KAAlB1gJ,EAAM0gJ,SAAkBplD,EAAQt/B,KAAKroG,OAAS,EAAI,GAClH,QAAR3F,GAA+B,KAAbm8F,EAAyBmxC,EAAQuT,SAC3C,QAAR7gJ,EAAuBstI,EAAQuT,SAAW8/B,EAClC,QAAR3gL,EACAstI,EAAQuT,UAAYk4C,GAAqB/mJ,EAAOo7F,GAAa+jD,GAAmBxQ,EAAa,GAC7E,UAAhBrzC,EAAQt/B,MAAqB44E,GAA8C,GAAnC6F,EAAawM,mBAErD3rD,EAAQu1B,MAAcv1B,EAAQ0P,QAAU4pC,EAAU,EAAI,GACnDt5C,EAAQuT,UAAY+lC,EAAU,EAAIjG,GAFrCrzC,EAAQuT,UAAY,sBAAsB75F,KAAKomF,GAAauzC,EAAa,EAAIA,IAKxFwB,cAAe,oCACfsM,kBAAmBphD,EAAW,KAAO,KACrCqhD,gBAAiBrhD,EAAW,KAAO,KACnCshD,qBAAsBthD,EAAW,KAAO,MACxCigD,YAAajgD,EAAW,KAAO,KAC/BuhD,KAAM,QACNsK,cAAe,iBAEf7+C,WAAYhN,EAAW,OAAS,aAChC+jD,WAAYA,EACZ/jD,SAAUA,EAEVmlD,kBAAmBA,GAEnB2G,eAAgB,SAASnnJ,GACvByhJ,EAAQzhJ,EAAO,OAAQ,OAAQ,OAAQ,IAAInb,EAAWq4G,aAAa,GAAI,EAAG,YAKhFr4G,EAAWouJ,eAAe,YAAa,aAAc,SAErDpuJ,EAAWgjH,WAAW,kBAAmB,cACzChjH,EAAWgjH,WAAW,kBAAmB,cACzChjH,EAAWgjH,WAAW,yBAA0B,cAChDhjH,EAAWgjH,WAAW,2BAA4B,cAClDhjH,EAAWgjH,WAAW,yBAA0B,cAChDhjH,EAAWgjH,WAAW,mBAAoB,CAAEh3I,KAAM,aAAcwF,MAAM,IACtEwuB,EAAWgjH,WAAW,qBAAsB,CAAEh3I,KAAM,aAAcwF,MAAM,IACxEwuB,EAAWgjH,WAAW,4BAA6B,CAAEh3I,KAAM,aAAcwF,MAAM,IAC/EwuB,EAAWgjH,WAAW,sBAAuB,CAAEh3I,KAAM,aAAcwuL,QAAQ,IAC3Ex6J,EAAWgjH,WAAW,kBAAmB,CAAEh3I,KAAM,aAAc2uL,YAAY,IAC3E36J,EAAWgjH,WAAW,yBAA0B,CAAEh3I,KAAM,aAAc2uL,YAAY,IAv7B9El7J,CAAI,EAAQ,Q,gBCKb,SAASO,GACZ,aAEA,IAAIuiK,EAAa,CACfC,gBAAiB,CAAC,MAAQ,EAAM,MAAQ,EAAM,IAAM,EAAM,KAAO,EAAM,SAAW,EAChE,OAAS,EAAM,OAAS,EAAM,IAAM,EAAM,KAAO,EAAM,OAAS,EAChE,QAAU,EAAM,MAAQ,EAAM,MAAQ,EAAM,OAAS,EAAM,QAAU,EACrE,OAAS,EAAM,KAAO,EAAM,UAAY,GAC1DC,iBAAkB,CAAC,IAAM,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,GAAK,EAC/D,IAAM,EAAM,IAAM,EAAM,OAAS,EAAM,IAAM,EAAM,OAAS,EAC5D,IAAM,EAAM,IAAM,GACrCC,gBAAiB,CACf,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,GACb,OAAU,CAAC,QAAU,EAAM,UAAY,GACvC,SAAY,CAAC,UAAY,GACzB,EAAK,CAAC,SAAW,EAAM,SAAW,EAAM,OAAS,EAAM,YAAc,EAAM,KAAO,EAC5E,KAAO,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,MAAQ,EACnE,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAClE,QAAU,EAAM,QAAU,EAAM,IAAM,EAAM,MAAQ,EAAM,KAAO,EAAM,IAAM,EAC7E,GAAK,EAAM,KAAO,EAAM,SAAW,EAAM,OAAS,EAAM,IAAM,GACpE,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,GACnB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,IAEfC,YAAa,CAAC,KAAO,GACrBC,eAAe,EACfC,cAAc,EACdC,UAAU,GAGRC,EAAY,CACdP,gBAAiB,GACjBC,iBAAkB,GAClBC,gBAAiB,GACjBC,YAAa,GACbC,eAAe,EACfC,cAAc,EACdlJ,qBAAqB,EACrBmJ,UAAU,GAGZ9iK,EAAW8iH,WAAW,OAAO,SAASkgD,EAAYC,GAChD,IAOI95L,EAAM4gD,EAPN+/H,EAAakZ,EAAWlZ,WACxBv/K,EAAS,GACT+M,EAAW2rL,EAAQzJ,SAAW+I,EAAaQ,EAC/C,IAAK,IAAI3kK,KAAQ9mB,EAAU/M,EAAO6zB,GAAQ9mB,EAAS8mB,GACnD,IAAK,IAAIA,KAAQ6kK,EAAS14L,EAAO6zB,GAAQ6kK,EAAQ7kK,GAKjD,SAAS8kK,EAAO9qD,EAAQj9F,GACtB,SAAS+zF,EAAMtqC,GAEb,OADAzpD,EAAM27I,SAAWlyF,EACVA,EAAOwzC,EAAQj9F,GAGxB,IAAIk8F,EAAKe,EAAOvoG,OAChB,MAAU,KAANwnG,EACEe,EAAOyN,IAAI,KACTzN,EAAOyN,IAAI,KACTzN,EAAOhjI,MAAM,UAAkB85H,EAAMi0D,EAAQ,OAAQ,QAC7C,KACH/qD,EAAOhjI,MAAM,MACf85H,EAAMi0D,EAAQ,UAAW,WACvB/qD,EAAOhjI,MAAM,WAAW,GAAM,IACvCgjI,EAAO0N,SAAS,aACT5W,EAAMk0D,EAAQ,KAEd,KAEAhrD,EAAOyN,IAAI,MACpBzN,EAAO0N,SAAS,aAChB3qG,EAAM27I,SAAWqM,EAAQ,OAAQ,MAC1B,SAEPh6L,EAAOivI,EAAOyN,IAAI,KAAO,WAAa,UACtC1qG,EAAM27I,SAAWmD,EACV,eAEM,KAAN5iD,GAELe,EAAOyN,IAAI,KACTzN,EAAOyN,IAAI,KACRzN,EAAO0N,SAAS,eAAiB1N,EAAOyN,IAAI,KAE5CzN,EAAO0N,SAAS,SAAW1N,EAAOyN,IAAI,KAGxCzN,EAAO0N,SAAS,cAAgB1N,EAAOyN,IAAI,MAEtC,OAAS,SAErBzN,EAAO0N,SAAS,SACT,MAKX,SAASm0C,EAAM7hD,EAAQj9F,GACrB,IAAIk8F,EAAKe,EAAOvoG,OAChB,GAAU,KAANwnG,GAAoB,KAANA,GAAae,EAAOyN,IAAI,KAGxC,OAFA1qG,EAAM27I,SAAWoM,EACjB/5L,EAAa,KAANkuI,EAAY,SAAW,eACvB,cACF,GAAU,KAANA,EAET,OADAluI,EAAO,SACA,KACF,GAAU,KAANkuI,EAAW,CACpBl8F,EAAM27I,SAAWoM,EACjB/nJ,EAAMA,MAAQkoJ,EACdloJ,EAAM1sB,QAAU0sB,EAAMmoJ,SAAW,KACjC,IAAIzzJ,EAAOsL,EAAM27I,SAAS1+C,EAAQj9F,GAClC,OAAOtL,EAAOA,EAAO,aAAe,YAC/B,MAAI,SAASsgB,KAAKknF,IACvBl8F,EAAM27I,SAAWyM,EAAYlsD,GAC7Bl8F,EAAMqoJ,eAAiBprD,EAAO+N,SACvBhrG,EAAM27I,SAAS1+C,EAAQj9F,KAE9Bi9F,EAAOhjI,MAAM,4CACN,QAIX,SAASmuL,EAAYtM,GACnB,IAAIwM,EAAU,SAASrrD,EAAQj9F,GAC7B,MAAQi9F,EAAOE,OACb,GAAIF,EAAOvoG,QAAUonJ,EAAO,CAC1B97I,EAAM27I,SAAWmD,EACjB,MAGJ,MAAO,UAGT,OADAwJ,EAAQC,eAAgB,EACjBD,EAGT,SAASN,EAAQ3kL,EAAOmlL,GACtB,OAAO,SAASvrD,EAAQj9F,GACtB,MAAQi9F,EAAOE,OAAO,CACpB,GAAIF,EAAOhjI,MAAMuuL,GAAa,CAC5BxoJ,EAAM27I,SAAWoM,EACjB,MAEF9qD,EAAOvoG,OAET,OAAOrxB,GAIX,SAAS4kL,EAAQjH,GACf,OAAO,SAAS/jD,EAAQj9F,GAEtB,IADA,IAAIk8F,EAC2B,OAAvBA,EAAKe,EAAOvoG,SAAiB,CACnC,GAAU,KAANwnG,EAEF,OADAl8F,EAAM27I,SAAWsM,EAAQjH,EAAQ,GAC1BhhJ,EAAM27I,SAAS1+C,EAAQj9F,GACzB,GAAU,KAANk8F,EAAW,CACpB,GAAa,GAAT8kD,EAAY,CACdhhJ,EAAM27I,SAAWoM,EACjB,MAGA,OADA/nJ,EAAM27I,SAAWsM,EAAQjH,EAAQ,GAC1BhhJ,EAAM27I,SAAS1+C,EAAQj9F,IAIpC,MAAO,QAIX,SAASyoJ,EAAMn1K,GACb,OAAOA,GAAWA,EAAQ0yB,cAG5B,SAAS2lG,EAAQ3rG,EAAO1sB,EAASo1K,GAC/Bh8L,KAAKud,KAAO+1B,EAAMkmB,QAClBx5D,KAAK4mB,QAAUA,GAAW,GAC1B5mB,KAAK8hL,OAASxuI,EAAM6uG,SACpBniJ,KAAKg8L,YAAcA,GACft5L,EAAOo4L,YAAYn5J,eAAe/a,IAAa0sB,EAAMkmB,SAAWlmB,EAAMkmB,QAAQyiI,YAChFj8L,KAAKi8L,UAAW,GAEpB,SAAS1M,EAAWj8I,GACdA,EAAMkmB,UAASlmB,EAAMkmB,QAAUlmB,EAAMkmB,QAAQj8C,MAEnD,SAAS2+K,EAAgB5oJ,EAAO6oJ,GAE9B,IADA,IAAIC,IACS,CACX,IAAK9oJ,EAAMkmB,QACT,OAGF,GADA4iI,EAAgB9oJ,EAAMkmB,QAAQ5yC,SACzBlkB,EAAOm4L,gBAAgBl5J,eAAeo6J,EAAMK,MAC5C15L,EAAOm4L,gBAAgBkB,EAAMK,IAAgBz6J,eAAeo6J,EAAMI,IACrE,OAEF5M,EAAWj8I,IAIf,SAASkoJ,EAAUl6L,EAAMivI,EAAQj9F,GAC/B,MAAY,WAARhyC,GACFgyC,EAAMmoJ,SAAWlrD,EAAO+N,SACjB+9C,GACU,YAAR/6L,EACFg7L,EAEAd,EAGX,SAASa,EAAa/6L,EAAMivI,EAAQj9F,GAClC,MAAY,QAARhyC,GACFgyC,EAAM1sB,QAAU2pH,EAAO9uH,UACvBygC,EAAW,MACJq6I,GACE75L,EAAOovL,qBAA+B,UAARxwL,GACvC4gD,EAAW,cACJq6I,EAAUj7L,EAAMivI,EAAQj9F,KAE/B4O,EAAW,QACJm6I,GAGX,SAASC,EAAkBh7L,EAAMivI,EAAQj9F,GACvC,GAAY,QAARhyC,EAAgB,CAClB,IAAIslB,EAAU2pH,EAAO9uH,UAIrB,OAHI6xB,EAAMkmB,SAAWlmB,EAAMkmB,QAAQ5yC,SAAWA,GAC1ClkB,EAAOk4L,iBAAiBj5J,eAAeo6J,EAAMzoJ,EAAMkmB,QAAQ5yC,WAC7D2oK,EAAWj8I,GACRA,EAAMkmB,SAAWlmB,EAAMkmB,QAAQ5yC,SAAWA,IAAoC,IAAxBlkB,EAAO85L,cAChEt6I,EAAW,MACJu6I,IAEPv6I,EAAW,YACJw6I,GAEJ,OAAIh6L,EAAOovL,qBAA+B,UAARxwL,GACvC4gD,EAAW,cACJu6I,EAAWn7L,EAAMivI,EAAQj9F,KAEhC4O,EAAW,QACJw6I,GAIX,SAASD,EAAWn7L,EAAMsuL,EAASt8I,GACjC,MAAY,UAARhyC,GACF4gD,EAAW,QACJu6I,IAETlN,EAAWj8I,GACJkoJ,GAET,SAASkB,EAAcp7L,EAAMivI,EAAQj9F,GAEnC,OADA4O,EAAW,QACJu6I,EAAWn7L,EAAMivI,EAAQj9F,GAGlC,SAASipJ,EAAUj7L,EAAMsuL,EAASt8I,GAChC,GAAY,QAARhyC,EAEF,OADA4gD,EAAW,YACJy6I,EACF,GAAY,UAARr7L,GAA4B,gBAARA,EAAwB,CACrD,IAAIslB,EAAU0sB,EAAM1sB,QAAS60K,EAAWnoJ,EAAMmoJ,SAS9C,OARAnoJ,EAAM1sB,QAAU0sB,EAAMmoJ,SAAW,KACrB,gBAARn6L,GACAoB,EAAOi4L,gBAAgBh5J,eAAeo6J,EAAMn1K,IAC9Cs1K,EAAgB5oJ,EAAO1sB,IAEvBs1K,EAAgB5oJ,EAAO1sB,GACvB0sB,EAAMkmB,QAAU,IAAIylF,EAAQ3rG,EAAO1sB,EAAS60K,GAAYnoJ,EAAM6uG,WAEzDq5C,EAGT,OADAt5I,EAAW,QACJq6I,EAET,SAASI,EAAYr7L,EAAMivI,EAAQj9F,GACjC,MAAY,UAARhyC,EAAyBs7L,GACxBl6L,EAAOs4L,eAAc94I,EAAW,SAC9Bq6I,EAAUj7L,EAAMivI,EAAQj9F,IAEjC,SAASspJ,EAAet7L,EAAMivI,EAAQj9F,GACpC,MAAY,UAARhyC,EAAyBu7L,EACjB,QAARv7L,GAAkBoB,EAAOq4L,eAAgB74I,EAAW,SAAiBq6I,IACzEr6I,EAAW,QACJq6I,EAAUj7L,EAAMivI,EAAQj9F,IAEjC,SAASupJ,EAAmBv7L,EAAMivI,EAAQj9F,GACxC,MAAY,UAARhyC,EAAyBu7L,EACtBN,EAAUj7L,EAAMivI,EAAQj9F,GAGjC,OAtMA+nJ,EAAOyB,UAAW,EAsMX,CACL/gD,WAAY,SAASghD,GACnB,IAAIzpJ,EAAQ,CAAC27I,SAAUoM,EACV/nJ,MAAOkoJ,EACPr5C,SAAU46C,GAAc,EACxBn2K,QAAS,KAAM60K,SAAU,KACzBjiI,QAAS,MAEtB,OADkB,MAAdujI,IAAoBzpJ,EAAMypJ,WAAaA,GACpCzpJ,GAGTo9F,MAAO,SAASH,EAAQj9F,GAItB,IAHKA,EAAM1sB,SAAW2pH,EAAOuN,QAC3BxqG,EAAM6uG,SAAW5R,EAAOgO,eAEtBhO,EAAO2N,WAAY,OAAO,KAC9B58I,EAAO,KACP,IAAIqV,EAAQ28B,EAAM27I,SAAS1+C,EAAQj9F,GAOnC,OANK38B,GAASrV,IAAkB,WAATqV,IACrBurC,EAAW,KACX5O,EAAMA,MAAQA,EAAMA,MAAMhyC,GAAQqV,EAAO45H,EAAQj9F,GAC7C4O,IACFvrC,EAAoB,SAAZurC,EAAsBvrC,EAAQ,SAAWurC,IAE9CvrC,GAGTmrK,OAAQ,SAASxuI,EAAOo7F,EAAWsuD,GACjC,IAAIxjI,EAAUlmB,EAAMkmB,QAEpB,GAAIlmB,EAAM27I,SAAS4M,cACjB,OAAIvoJ,EAAMmoJ,UAAYnoJ,EAAM6uG,SACnB7uG,EAAMqoJ,eAAiB,EAEvBroJ,EAAM6uG,SAAW8/B,EAE5B,GAAIzoH,GAAWA,EAAQyiI,SAAU,OAAO9jK,EAAWq8G,KACnD,GAAIlhG,EAAM27I,UAAYmD,GAAS9+I,EAAM27I,UAAYoM,EAC/C,OAAO2B,EAAWA,EAASzvL,MAAM,UAAU,GAAGtG,OAAS,EAEzD,GAAIqsC,EAAM1sB,QACR,OAAyC,IAArClkB,EAAOmvL,0BACFv+I,EAAMmoJ,SAAWnoJ,EAAM1sB,QAAQ3f,OAAS,EAExCqsC,EAAMmoJ,SAAWxZ,GAAcv/K,EAAOkvL,0BAA4B,GAE7E,GAAIlvL,EAAOu6L,YAAc,cAAc30I,KAAKomF,GAAY,OAAO,EAC/D,IAAIwuD,EAAWxuD,GAAa,sBAAsBlhI,KAAKkhI,GACvD,GAAIwuD,GAAYA,EAAS,GACvB,KAAO1jI,GAAS,CACd,GAAIA,EAAQ5yC,SAAWs2K,EAAS,GAAI,CAClC1jI,EAAUA,EAAQj8C,KAClB,MACK,IAAI7a,EAAOk4L,iBAAiBj5J,eAAeo6J,EAAMviI,EAAQ5yC,UAG9D,MAFA4yC,EAAUA,EAAQj8C,UAKjB,GAAI2/K,EACT,KAAO1jI,GAAS,CACd,IAAI2jI,EAAWz6L,EAAOm4L,gBAAgBkB,EAAMviI,EAAQ5yC,UACpD,IAAIu2K,IAAYA,EAASx7J,eAAeo6J,EAAMmB,EAAS,KAGrD,MAFA1jI,EAAUA,EAAQj8C,KAKxB,KAAOi8C,GAAWA,EAAQj8C,OAASi8C,EAAQwiI,aACzCxiI,EAAUA,EAAQj8C,KACpB,OAAIi8C,EAAgBA,EAAQsoH,OAASG,EACzB3uI,EAAMypJ,YAAc,GAGlCtZ,cAAe,gBACfsM,kBAAmB,UACnBC,gBAAiB,SAEjBlhD,cAAepsI,EAAOivL,SAAW,OAAS,MAC1Ch2C,WAAYj5I,EAAOivL,SAAW,OAAS,MAEvCyL,cAAe,SAAS9pJ,GAClBA,EAAMA,OAASspJ,IACjBtpJ,EAAMA,MAAQipJ,IAGlBc,cAAe,SAAS/pJ,GACtB,OAAOA,EAAM1sB,QAAU,CAACziB,KAAMmvC,EAAM1sB,QAAS3hB,MAAqB,YAAdquC,EAAMhyC,MAAsB,MAGlFg8L,kBAAmB,SAAShqJ,GAE1B,IADA,IAAIkmB,EAAU,GACLs2H,EAAKx8I,EAAMkmB,QAASs2H,EAAIA,EAAKA,EAAGvyK,KACvCi8C,EAAQ5rD,KAAKkiL,EAAGlpK,SAClB,OAAO4yC,EAAQ8lB,eAKrBnnD,EAAWgjH,WAAW,WAAY,OAClChjH,EAAWgjH,WAAW,kBAAmB,OACpChjH,EAAW6iH,UAAUr5G,eAAe,cACvCxJ,EAAWgjH,WAAW,YAAa,CAACh3I,KAAM,MAAOwtL,UAAU,IAzZzD/5J,CAAI,EAAQ,Q,SCEhB,IAAI2lK,EAAW,SAAU79L,GACvB,aAEA,IAEIoJ,EAFA00L,EAAK57K,OAAO9f,UACZ27L,EAASD,EAAG77J,eAEZ+7J,EAA4B,mBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAE/C,SAASr+L,EAAO0R,EAAKglB,EAAKzwB,GAOxB,OANA+b,OAAOoyG,eAAe1iH,EAAKglB,EAAK,CAC9BzwB,MAAOA,EACPq4L,YAAY,EACZC,cAAc,EACdC,UAAU,IAEL9sL,EAAIglB,GAEb,IAEE12B,EAAO,GAAI,IACX,MAAOyJ,GACPzJ,EAAS,SAAS0R,EAAKglB,EAAKzwB,GAC1B,OAAOyL,EAAIglB,GAAOzwB,GAItB,SAASi6F,EAAKu+F,EAASC,EAAS/4G,EAAMg5G,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQx8L,qBAAqB28L,EAAYH,EAAUG,EAC/EpjK,EAAYzZ,OAAOogB,OAAOw8J,EAAe18L,WACzC03D,EAAU,IAAIylF,EAAQs/C,GAAe,IAMzC,OAFAljK,EAAUqjK,QAsMZ,SAA0BL,EAAS94G,EAAM/rB,GACvC,IAAIlmB,EAAQqrJ,EAEZ,OAAO,SAAgBn0L,EAAQo0L,GAC7B,GAAItrJ,IAAUurJ,EACZ,MAAM,IAAI/wL,MAAM,gCAGlB,GAAIwlC,IAAUwrJ,EAAmB,CAC/B,GAAe,UAAXt0L,EACF,MAAMo0L,EAKR,OAAOG,IAMT,IAHAvlI,EAAQhvD,OAASA,EACjBgvD,EAAQolI,IAAMA,IAED,CACX,IAAIz0I,EAAWqP,EAAQrP,SACvB,GAAIA,EAAU,CACZ,IAAI60I,EAAiBC,EAAoB90I,EAAUqP,GACnD,GAAIwlI,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBxlI,EAAQhvD,OAGVgvD,EAAQ2lI,KAAO3lI,EAAQ4lI,MAAQ5lI,EAAQolI,SAElC,GAAuB,UAAnBplI,EAAQhvD,OAAoB,CACrC,GAAI8oC,IAAUqrJ,EAEZ,MADArrJ,EAAQwrJ,EACFtlI,EAAQolI,IAGhBplI,EAAQ6lI,kBAAkB7lI,EAAQolI,SAEN,WAAnBplI,EAAQhvD,QACjBgvD,EAAQ8lI,OAAO,SAAU9lI,EAAQolI,KAGnCtrJ,EAAQurJ,EAER,IAAIU,EAASC,EAASnB,EAAS94G,EAAM/rB,GACrC,GAAoB,WAAhB+lI,EAAOj+L,KAAmB,CAO5B,GAJAgyC,EAAQkmB,EAAQ27D,KACZ2pE,EACAW,EAEAF,EAAOX,MAAQM,EACjB,SAGF,MAAO,CACLr5L,MAAO05L,EAAOX,IACdzpE,KAAM37D,EAAQ27D,MAGS,UAAhBoqE,EAAOj+L,OAChBgyC,EAAQwrJ,EAGRtlI,EAAQhvD,OAAS,QACjBgvD,EAAQolI,IAAMW,EAAOX,OA9QPc,CAAiBrB,EAAS94G,EAAM/rB,GAE7Cn+B,EAcT,SAASmkK,EAAS30K,EAAIvZ,EAAKstL,GACzB,IACE,MAAO,CAAEt9L,KAAM,SAAUs9L,IAAK/zK,EAAG+5C,KAAKtzD,EAAKstL,IAC3C,MAAOv1L,GACP,MAAO,CAAE/H,KAAM,QAASs9L,IAAKv1L,IAhBjC3J,EAAQogG,KAAOA,EAoBf,IAAI6+F,EAAyB,iBACzBc,EAAyB,iBACzBZ,EAAoB,YACpBC,EAAoB,YAIpBI,EAAmB,GAMvB,SAAST,KACT,SAASkB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBjC,GAAkB,WAClC,OAAO59L,MAGT,IAAI8/L,EAAWl+K,OAAOm+K,eAClBC,EAA0BF,GAAYA,EAASA,EAAS3wF,EAAO,MAC/D6wF,GACAA,IAA4BxC,GAC5BC,EAAO74H,KAAKo7H,EAAyBpC,KAGvCiC,EAAoBG,GAGtB,IAAIC,EAAKL,EAA2B99L,UAClC28L,EAAU38L,UAAY8f,OAAOogB,OAAO69J,GAWtC,SAASK,EAAsBp+L,GAC7B,CAAC,OAAQ,QAAS,UAAU2K,SAAQ,SAASjC,GAC3C5K,EAAOkC,EAAW0I,GAAQ,SAASo0L,GACjC,OAAO5+L,KAAK0+L,QAAQl0L,EAAQo0L,SAkClC,SAASuB,EAAc9kK,EAAW+kK,GAChC,SAASl3D,EAAO1+H,EAAQo0L,EAAKzxL,EAAStC,GACpC,IAAI00L,EAASC,EAASnkK,EAAU7wB,GAAS6wB,EAAWujK,GACpD,GAAoB,UAAhBW,EAAOj+L,KAEJ,CACL,IAAIW,EAASs9L,EAAOX,IAChB/4L,EAAQ5D,EAAO4D,MACnB,OAAIA,GACiB,iBAAVA,GACP43L,EAAO74H,KAAK/+D,EAAO,WACdu6L,EAAYjzL,QAAQtH,EAAMw6L,SAAS31L,MAAK,SAAS7E,GACtDqjI,EAAO,OAAQrjI,EAAOsH,EAAStC,MAC9B,SAASxB,GACV6/H,EAAO,QAAS7/H,EAAK8D,EAAStC,MAI3Bu1L,EAAYjzL,QAAQtH,GAAO6E,MAAK,SAAS41L,GAI9Cr+L,EAAO4D,MAAQy6L,EACfnzL,EAAQlL,MACP,SAASsH,GAGV,OAAO2/H,EAAO,QAAS3/H,EAAO4D,EAAStC,MAvBzCA,EAAO00L,EAAOX,KA4BlB,IAAI2B,EAgCJvgM,KAAK0+L,QA9BL,SAAiBl0L,EAAQo0L,GACvB,SAAS4B,IACP,OAAO,IAAIJ,GAAY,SAASjzL,EAAStC,GACvCq+H,EAAO1+H,EAAQo0L,EAAKzxL,EAAStC,MAIjC,OAAO01L,EAaLA,EAAkBA,EAAgB71L,KAChC81L,EAGAA,GACEA,KAkHV,SAASvB,EAAoB90I,EAAUqP,GACrC,IAAIhvD,EAAS2/C,EAAS0zI,SAASrkI,EAAQhvD,QACvC,GAAIA,IAAW1B,EAAW,CAKxB,GAFA0wD,EAAQrP,SAAW,KAEI,UAAnBqP,EAAQhvD,OAAoB,CAE9B,GAAI2/C,EAAS0zI,SAAiB,SAG5BrkI,EAAQhvD,OAAS,SACjBgvD,EAAQolI,IAAM91L,EACdm2L,EAAoB90I,EAAUqP,GAEP,UAAnBA,EAAQhvD,QAGV,OAAO00L,EAIX1lI,EAAQhvD,OAAS,QACjBgvD,EAAQolI,IAAM,IAAIxqE,UAChB,kDAGJ,OAAO8qE,EAGT,IAAIK,EAASC,EAASh1L,EAAQ2/C,EAAS0zI,SAAUrkI,EAAQolI,KAEzD,GAAoB,UAAhBW,EAAOj+L,KAIT,OAHAk4D,EAAQhvD,OAAS,QACjBgvD,EAAQolI,IAAMW,EAAOX,IACrBplI,EAAQrP,SAAW,KACZ+0I,EAGT,IAAI5vF,EAAOiwF,EAAOX,IAElB,OAAMtvF,EAOFA,EAAK6lB,MAGP37D,EAAQrP,EAAS85D,YAAc3U,EAAKzpG,MAGpC2zD,EAAQxxB,KAAOmiB,EAASs2I,QAQD,WAAnBjnI,EAAQhvD,SACVgvD,EAAQhvD,OAAS,OACjBgvD,EAAQolI,IAAM91L,GAUlB0wD,EAAQrP,SAAW,KACZ+0I,GANE5vF,GA3BP91C,EAAQhvD,OAAS,QACjBgvD,EAAQolI,IAAM,IAAIxqE,UAAU,oCAC5B56D,EAAQrP,SAAW,KACZ+0I,GAoDX,SAASwB,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxB3gM,KAAKihM,WAAWrzL,KAAKgzL,GAGvB,SAASM,EAAcN,GACrB,IAAIrB,EAASqB,EAAMO,YAAc,GACjC5B,EAAOj+L,KAAO,gBACPi+L,EAAOX,IACdgC,EAAMO,WAAa5B,EAGrB,SAAStgD,EAAQs/C,GAIfv+L,KAAKihM,WAAa,CAAC,CAAEJ,OAAQ,SAC7BtC,EAAY9xL,QAAQi0L,EAAc1gM,MAClCA,KAAKyR,OAAM,GA8Bb,SAAS09F,EAAOiyF,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASxD,GAC9B,GAAIyD,EACF,OAAOA,EAAez8H,KAAKw8H,GAG7B,GAA6B,mBAAlBA,EAASp5J,KAClB,OAAOo5J,EAGT,IAAK94K,MAAM84K,EAASn6L,QAAS,CAC3B,IAAImD,GAAK,EAAG49B,EAAO,SAASA,IAC1B,OAAS59B,EAAIg3L,EAASn6L,QACpB,GAAIw2L,EAAO74H,KAAKw8H,EAAUh3L,GAGxB,OAFA49B,EAAKniC,MAAQu7L,EAASh3L,GACtB49B,EAAKmtF,MAAO,EACLntF,EAOX,OAHAA,EAAKniC,MAAQiD,EACbk/B,EAAKmtF,MAAO,EAELntF,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAM+2J,GAIjB,SAASA,IACP,MAAO,CAAEl5L,MAAOiD,EAAWqsH,MAAM,GA+MnC,OA5mBAwqE,EAAkB79L,UAAYm+L,EAAGj3L,YAAc42L,EAC/CA,EAA2B52L,YAAc22L,EACzCA,EAAkB2B,YAAc1hM,EAC9BggM,EACA5B,EACA,qBAaFt+L,EAAQ6hM,oBAAsB,SAASC,GACrC,IAAIpoD,EAAyB,mBAAXooD,GAAyBA,EAAOx4L,YAClD,QAAOowI,IACHA,IAASumD,GAG2B,uBAAnCvmD,EAAKkoD,aAAeloD,EAAKj1I,QAIhCzE,EAAQilJ,KAAO,SAAS68C,GAQtB,OAPI5/K,OAAO6/K,eACT7/K,OAAO6/K,eAAeD,EAAQ5B,IAE9B4B,EAAOE,UAAY9B,EACnBhgM,EAAO4hM,EAAQxD,EAAmB,sBAEpCwD,EAAO1/L,UAAY8f,OAAOogB,OAAOi+J,GAC1BuB,GAOT9hM,EAAQiiM,MAAQ,SAAS/C,GACvB,MAAO,CAAEyB,QAASzB,IAsEpBsB,EAAsBC,EAAcr+L,WACpCq+L,EAAcr+L,UAAUg8L,GAAuB,WAC7C,OAAO99L,MAETN,EAAQygM,cAAgBA,EAKxBzgM,EAAQkiM,MAAQ,SAASvD,EAASC,EAAS/4G,EAAMg5G,EAAa6B,QACxC,IAAhBA,IAAwBA,EAAcx1L,SAE1C,IAAI6xI,EAAO,IAAI0jD,EACbrgG,EAAKu+F,EAASC,EAAS/4G,EAAMg5G,GAC7B6B,GAGF,OAAO1gM,EAAQ6hM,oBAAoBjD,GAC/B7hD,EACAA,EAAKz0G,OAAOt9B,MAAK,SAASzI,GACxB,OAAOA,EAAOkzH,KAAOlzH,EAAO4D,MAAQ42I,EAAKz0G,WAuKjDk4J,EAAsBD,GAEtBrgM,EAAOqgM,EAAIjC,EAAmB,aAO9BiC,EAAGrC,GAAkB,WACnB,OAAO59L,MAGTigM,EAAGnnK,SAAW,WACZ,MAAO,sBAkCTp5B,EAAQmiB,KAAO,SAAS6sE,GACtB,IAAI7sE,EAAO,GACX,IAAK,IAAIyU,KAAOo4D,EACd7sE,EAAKjU,KAAK0oB,GAMZ,OAJAzU,EAAKy9D,UAIE,SAASt3C,IACd,KAAOnmB,EAAK5a,QAAQ,CAClB,IAAIqvB,EAAMzU,EAAKngB,MACf,GAAI40B,KAAOo4D,EAGT,OAFA1mD,EAAKniC,MAAQywB,EACb0R,EAAKmtF,MAAO,EACLntF,EAQX,OADAA,EAAKmtF,MAAO,EACLntF,IAsCXtoC,EAAQyvG,OAASA,EAMjB8vC,EAAQn9I,UAAY,CAClBkH,YAAai2I,EAEbxtI,MAAO,SAASowL,GAcd,GAbA7hM,KAAKud,KAAO,EACZvd,KAAKgoC,KAAO,EAGZhoC,KAAKm/L,KAAOn/L,KAAKo/L,MAAQt2L,EACzB9I,KAAKm1H,MAAO,EACZn1H,KAAKmqD,SAAW,KAEhBnqD,KAAKwK,OAAS,OACdxK,KAAK4+L,IAAM91L,EAEX9I,KAAKihM,WAAWx0L,QAAQy0L,IAEnBW,EACH,IAAK,IAAI19L,KAAQnE,KAEQ,MAAnBmE,EAAKwrD,OAAO,IACZ8tI,EAAO74H,KAAK5kE,KAAMmE,KACjBmkB,OAAOnkB,EAAKi8C,MAAM,MACrBpgD,KAAKmE,GAAQ2E,IAMrB6H,KAAM,WACJ3Q,KAAKm1H,MAAO,EAEZ,IACI2sE,EADY9hM,KAAKihM,WAAW,GACLE,WAC3B,GAAwB,UAApBW,EAAWxgM,KACb,MAAMwgM,EAAWlD,IAGnB,OAAO5+L,KAAK+hM,MAGd1C,kBAAmB,SAAS2C,GAC1B,GAAIhiM,KAAKm1H,KACP,MAAM6sE,EAGR,IAAIxoI,EAAUx5D,KACd,SAAS20H,EAAOstE,EAAKC,GAYnB,OAXA3C,EAAOj+L,KAAO,QACdi+L,EAAOX,IAAMoD,EACbxoI,EAAQxxB,KAAOi6J,EAEXC,IAGF1oI,EAAQhvD,OAAS,OACjBgvD,EAAQolI,IAAM91L,KAGNo5L,EAGZ,IAAK,IAAI93L,EAAIpK,KAAKihM,WAAWh6L,OAAS,EAAGmD,GAAK,IAAKA,EAAG,CACpD,IAAIw2L,EAAQ5gM,KAAKihM,WAAW72L,GACxBm1L,EAASqB,EAAMO,WAEnB,GAAqB,SAAjBP,EAAMC,OAIR,OAAOlsE,EAAO,OAGhB,GAAIisE,EAAMC,QAAU7gM,KAAKud,KAAM,CAC7B,IAAI4kL,EAAW1E,EAAO74H,KAAKg8H,EAAO,YAC9BwB,EAAa3E,EAAO74H,KAAKg8H,EAAO,cAEpC,GAAIuB,GAAYC,EAAY,CAC1B,GAAIpiM,KAAKud,KAAOqjL,EAAME,SACpB,OAAOnsE,EAAOisE,EAAME,UAAU,GACzB,GAAI9gM,KAAKud,KAAOqjL,EAAMG,WAC3B,OAAOpsE,EAAOisE,EAAMG,iBAGjB,GAAIoB,GACT,GAAIniM,KAAKud,KAAOqjL,EAAME,SACpB,OAAOnsE,EAAOisE,EAAME,UAAU,OAG3B,KAAIsB,EAMT,MAAM,IAAIt0L,MAAM,0CALhB,GAAI9N,KAAKud,KAAOqjL,EAAMG,WACpB,OAAOpsE,EAAOisE,EAAMG,gBAU9BzB,OAAQ,SAASh+L,EAAMs9L,GACrB,IAAK,IAAIx0L,EAAIpK,KAAKihM,WAAWh6L,OAAS,EAAGmD,GAAK,IAAKA,EAAG,CACpD,IAAIw2L,EAAQ5gM,KAAKihM,WAAW72L,GAC5B,GAAIw2L,EAAMC,QAAU7gM,KAAKud,MACrBkgL,EAAO74H,KAAKg8H,EAAO,eACnB5gM,KAAKud,KAAOqjL,EAAMG,WAAY,CAChC,IAAIsB,EAAezB,EACnB,OAIAyB,IACU,UAAT/gM,GACS,aAATA,IACD+gM,EAAaxB,QAAUjC,GACvBA,GAAOyD,EAAatB,aAGtBsB,EAAe,MAGjB,IAAI9C,EAAS8C,EAAeA,EAAalB,WAAa,GAItD,OAHA5B,EAAOj+L,KAAOA,EACdi+L,EAAOX,IAAMA,EAETyD,GACFriM,KAAKwK,OAAS,OACdxK,KAAKgoC,KAAOq6J,EAAatB,WAClB7B,GAGFl/L,KAAKwQ,SAAS+uL,IAGvB/uL,SAAU,SAAS+uL,EAAQyB,GACzB,GAAoB,UAAhBzB,EAAOj+L,KACT,MAAMi+L,EAAOX,IAcf,MAXoB,UAAhBW,EAAOj+L,MACS,aAAhBi+L,EAAOj+L,KACTtB,KAAKgoC,KAAOu3J,EAAOX,IACM,WAAhBW,EAAOj+L,MAChBtB,KAAK+hM,KAAO/hM,KAAK4+L,IAAMW,EAAOX,IAC9B5+L,KAAKwK,OAAS,SACdxK,KAAKgoC,KAAO,OACa,WAAhBu3J,EAAOj+L,MAAqB0/L,IACrChhM,KAAKgoC,KAAOg5J,GAGP9B,GAGTx9B,OAAQ,SAASq/B,GACf,IAAK,IAAI32L,EAAIpK,KAAKihM,WAAWh6L,OAAS,EAAGmD,GAAK,IAAKA,EAAG,CACpD,IAAIw2L,EAAQ5gM,KAAKihM,WAAW72L,GAC5B,GAAIw2L,EAAMG,aAAeA,EAGvB,OAFA/gM,KAAKwQ,SAASowL,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACP1B,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIz2L,EAAIpK,KAAKihM,WAAWh6L,OAAS,EAAGmD,GAAK,IAAKA,EAAG,CACpD,IAAIw2L,EAAQ5gM,KAAKihM,WAAW72L,GAC5B,GAAIw2L,EAAMC,SAAWA,EAAQ,CAC3B,IAAItB,EAASqB,EAAMO,WACnB,GAAoB,UAAhB5B,EAAOj+L,KAAkB,CAC3B,IAAIghM,EAAS/C,EAAOX,IACpBsC,EAAcN,GAEhB,OAAO0B,GAMX,MAAM,IAAIx0L,MAAM,0BAGlBy0L,cAAe,SAASnB,EAAUn9E,EAAYw8E,GAa5C,OAZAzgM,KAAKmqD,SAAW,CACd0zI,SAAU1uF,EAAOiyF,GACjBn9E,WAAYA,EACZw8E,QAASA,GAGS,SAAhBzgM,KAAKwK,SAGPxK,KAAK4+L,IAAM91L,GAGNo2L,IAQJx/L,EA7sBK,CAotBiBC,EAAOD,SAGtC,IACE8iM,mBAAqBjF,EACrB,MAAOkF,GAUPC,SAAS,IAAK,yBAAdA,CAAwCnF,K,ggBCxuB1C,2B,+CAAmD,OAAhB,OAAgB,EAAnD,C,MAAmC,U,0BCFnC,IAAI7iL,EAAM,CACT,gBAAiB,KACjB,mBAAoB,KACpB,eAAgB,KAChB,kBAAmB,KACnB,oBAAqB,KACrB,uBAAwB,KACxB,oBAAqB,KACrB,uBAAwB,KACxB,kBAAmB,KACnB,qBAAsB,KACtB,mBAAoB,KACpB,sBAAuB,KACvB,kBAAmB,KACnB,qBAAsB,KACtB,kBAAmB,KACnB,qBAAsB,KACtB,kBAAmB,KACnB,qBAAsB,KACtB,wBAAyB,KACzB,2BAA4B,KAC5B,kBAAmB,IACnB,qBAAsB,IACtB,oBAAqB,KACrB,uBAAwB,KACxB,mBAAoB,KACpB,sBAAuB,KACvB,eAAgB,KAChB,kBAAmB,KACnB,kBAAmB,KACnB,qBAAsB,KACtB,eAAgB,KAChB,kBAAmB,KACnB,eAAgB,IAChB,kBAAmB,IACnB,eAAgB,KAChB,kBAAmB,KACnB,qBAAsB,KACtB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,mBAAoB,KACpB,sBAAuB,KACvB,YAAa,KACb,eAAgB,KAChB,WAAY,KACZ,cAAe,KACf,oBAAqB,KACrB,uBAAwB,KACxB,mBAAoB,KACpB,sBAAuB,KACvB,eAAgB,KAChB,kBAAmB,KACnB,qBAAsB,KACtB,wBAAyB,MAI1B,SAASioL,EAAeltE,GACvB,IAAI9vH,EAAKi9L,EAAsBntE,GAC/B,OAAOotE,EAAoBl9L,GAE5B,SAASi9L,EAAsBntE,GAC9B,IAAIotE,EAAoBtgM,EAAEmY,EAAK+6G,GAAM,CACpC,IAAIvwH,EAAI,IAAI4I,MAAM,uBAAyB2nH,EAAM,KAEjD,MADAvwH,EAAEmzB,KAAO,mBACHnzB,EAEP,OAAOwV,EAAI+6G,GAEZktE,EAAe9gL,KAAO,WACrB,OAAOD,OAAOC,KAAKnH,IAEpBioL,EAAex1L,QAAUy1L,EACzBjjM,EAAOD,QAAUijM,EACjBA,EAAeh9L,GAAK,M,2BC3EL,SAASm9L,EAAkB7lI,EAAK/0B,IAClC,MAAPA,GAAeA,EAAM+0B,EAAIh2D,UAAQihC,EAAM+0B,EAAIh2D,QAE/C,IAAK,IAAImD,EAAI,EAAG24L,EAAO,IAAI/kL,MAAMkqB,GAAM99B,EAAI89B,EAAK99B,IAC9C24L,EAAK34L,GAAK6yD,EAAI7yD,GAGhB,OAAO24L,E,8CCPM,SAASC,EAAuBz9G,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI09G,eAAe,6DAG3B,OAAO19G,E,8CCLT,SAAS29G,EAAmBvwB,EAAKxlK,EAAStC,EAAQs4L,EAAOC,EAAQ9sK,EAAKsoK,GACpE,IACE,IAAItvF,EAAOqjE,EAAIr8I,GAAKsoK,GAChB/4L,EAAQypG,EAAKzpG,MACjB,MAAO0D,GAEP,YADAsB,EAAOtB,GAIL+lG,EAAK6lB,KACPhoH,EAAQtH,GAER+E,QAAQuC,QAAQtH,GAAO6E,KAAKy4L,EAAOC,GAIxB,SAASC,EAAkBx4K,GACxC,OAAO,WACL,IAAI06D,EAAOvlF,KACPkhC,EAAOnd,UACX,OAAO,IAAInZ,SAAQ,SAAUuC,EAAStC,GACpC,IAAI8nK,EAAM9nJ,EAAG++B,MAAM27B,EAAMrkD,GAEzB,SAASiiK,EAAMt9L,GACbq9L,EAAmBvwB,EAAKxlK,EAAStC,EAAQs4L,EAAOC,EAAQ,OAAQv9L,GAGlE,SAASu9L,EAAO/5L,GACd65L,EAAmBvwB,EAAKxlK,EAAStC,EAAQs4L,EAAOC,EAAQ,QAAS/5L,GAGnE85L,OAAMr6L,O,8CC/BG,SAASw6L,EAAgBr/D,EAAUs/D,GAChD,KAAMt/D,aAAoBs/D,GACxB,MAAM,IAAInvE,UAAU,qC,8CCFxB,SAASovE,EAAkB9/L,EAAQkY,GACjC,IAAK,IAAIxR,EAAI,EAAGA,EAAIwR,EAAM3U,OAAQmD,IAAK,CACrC,IAAIq5L,EAAa7nL,EAAMxR,GACvBq5L,EAAWvF,WAAauF,EAAWvF,aAAc,EACjDuF,EAAWtF,cAAe,EACtB,UAAWsF,IAAYA,EAAWrF,UAAW,GACjDx8K,OAAOoyG,eAAetwH,EAAQ+/L,EAAWntK,IAAKmtK,IAInC,SAASC,EAAaH,EAAar1D,EAAYC,GAM5D,OALID,GAAYs1D,EAAkBD,EAAYzhM,UAAWosI,GACrDC,GAAaq1D,EAAkBD,EAAap1D,GAChDvsH,OAAOoyG,eAAeuvE,EAAa,YAAa,CAC9CnF,UAAU,IAELmF,E,8CChBM,SAASI,EAAgBryL,EAAKglB,EAAKzwB,GAYhD,OAXIywB,KAAOhlB,EACTsQ,OAAOoyG,eAAe1iH,EAAKglB,EAAK,CAC9BzwB,MAAOA,EACPq4L,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ9sL,EAAIglB,GAAOzwB,EAGNyL,E,8CCZM,SAASsyL,EAAgBrhM,GAItC,OAHAqhM,EAAkBhiL,OAAO6/K,eAAiB7/K,OAAOm+K,eAAiB,SAAyBx9L,GACzF,OAAOA,EAAEm/L,WAAa9/K,OAAOm+K,eAAex9L,IAEvCqhM,EAAgBrhM,G,8CCJV,SAASshM,EAAgBthM,EAAGq0B,GAMzC,OALAitK,EAAkBjiL,OAAO6/K,gBAAkB,SAAyBl/L,EAAGq0B,GAErE,OADAr0B,EAAEm/L,UAAY9qK,EACPr0B,GAGFshM,EAAgBthM,EAAGq0B,GCLb,SAASktK,EAAUC,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5vE,UAAU,sDAGtB2vE,EAASjiM,UAAY8f,OAAOogB,OAAOgiK,GAAcA,EAAWliM,UAAW,CACrEkH,YAAa,CACXnD,MAAOk+L,EACP3F,UAAU,EACVD,cAAc,KAGlBv8K,OAAOoyG,eAAe+vE,EAAU,YAAa,CAC3C3F,UAAU,IAER4F,GAAY,EAAeD,EAAUC,G,8CCf5B,SAASC,EAAyBnvI,EAAQovI,GACvD,GAAc,MAAVpvI,EAAgB,MAAO,GAC3B,IACIx+B,EAAKlsB,EADL1G,ECHS,SAAuCoxD,EAAQovI,GAC5D,GAAc,MAAVpvI,EAAgB,MAAO,GAC3B,IAEIx+B,EAAKlsB,EAFL1G,EAAS,GACTygM,EAAaviL,OAAOC,KAAKizC,GAG7B,IAAK1qD,EAAI,EAAGA,EAAI+5L,EAAWl9L,OAAQmD,IACjCksB,EAAM6tK,EAAW/5L,GACb85L,EAASvvL,QAAQ2hB,IAAQ,IAC7B5yB,EAAO4yB,GAAOw+B,EAAOx+B,IAGvB,OAAO5yB,EDTM,CAA6BoxD,EAAQovI,GAGlD,GAAItiL,OAAOwiL,sBAAuB,CAChC,IAAIC,EAAmBziL,OAAOwiL,sBAAsBtvI,GAEpD,IAAK1qD,EAAI,EAAGA,EAAIi6L,EAAiBp9L,OAAQmD,IACvCksB,EAAM+tK,EAAiBj6L,GACnB85L,EAASvvL,QAAQ2hB,IAAQ,GACxB1U,OAAO9f,UAAUmyL,qBAAqBrvH,KAAK9P,EAAQx+B,KACxD5yB,EAAO4yB,GAAOw+B,EAAOx+B,IAIzB,OAAO5yB,E,uFEfM,SAAS4gM,EAA2B/+G,EAAM3gB,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,mBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIwvD,UAAU,4DAGtB,OAAO,OAAsB7uC,K,yDCLhB,SAASg/G,EAAetnI,EAAK7yD,GAC1C,OCLa,SAAyB6yD,GACtC,GAAIj/C,MAAMhD,QAAQiiD,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAK7yD,GACjD,IAAIo6L,EAAY,MAAPvnI,EAAc,KAAyB,oBAAX0gI,QAA0B1gI,EAAI0gI,OAAOE,WAAa5gI,EAAI,cAE3F,GAAU,MAANunI,EAAJ,CACA,IAIIC,EAAIxwD,EAJJywD,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKJ,EAAKA,EAAG5/H,KAAK3H,KAAQ0nI,GAAMF,EAAKD,EAAGx8J,QAAQmtF,QAC9CuvE,EAAK92L,KAAK62L,EAAG5+L,QAETuE,GAAKs6L,EAAKz9L,SAAWmD,GAH4Bu6L,GAAK,IAK5D,MAAOt7L,GACPu7L,GAAK,EACL3wD,EAAK5qI,EACL,QACA,IACOs7L,GAAsB,MAAhBH,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAII,EAAI,MAAM3wD,GAIlB,OAAOywD,GFtBuB,CAAqBznI,EAAK7yD,KAAM,EAAAy6L,EAAA,GAA2B5nI,EAAK7yD,IGLjF,WACb,MAAM,IAAIgqH,UAAU,6IHIgF,K,2BILvF,SAAS0wE,EAAuBC,EAAS3uE,GAKtD,OAJKA,IACHA,EAAM2uE,EAAQ3kJ,MAAM,IAGfx+B,OAAOojL,OAAOpjL,OAAOqjL,iBAAiBF,EAAS,CACpD3uE,IAAK,CACHvwH,MAAO+b,OAAOojL,OAAO5uE,O,yFCHZ,SAAS8uE,EAAmBjoI,GACzC,OCJa,SAA4BA,GACzC,GAAIj/C,MAAMhD,QAAQiiD,GAAM,OAAO,EAAAkoI,EAAA,GAAiBloI,GDGzC,CAAkBA,IELZ,SAA0Bw/E,GACvC,GAAsB,oBAAXkhD,QAAmD,MAAzBlhD,EAAKkhD,OAAOE,WAA2C,MAAtBphD,EAAK,cAAuB,OAAOz+H,MAAM8uF,KAAK2vC,GFInF,CAAgBx/E,KAAQ,EAAA4nI,EAAA,GAA2B5nI,IGLvE,WACb,MAAM,IAAIm3D,UAAU,wIHIwE,K,4BIL/E,SAASgxE,EAAQ9zL,GAG9B,OAAO8zL,EAAU,mBAAqBzH,QAAU,iBAAmBA,OAAOE,SAAW,SAAUvsL,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBqsL,QAAUrsL,EAAItI,cAAgB20L,QAAUrsL,IAAQqsL,OAAO77L,UAAY,gBAAkBwP,GACvH8zL,EAAQ9zL,G,2ECNE,SAAS+zL,EAA4B9iM,EAAG+iM,GACrD,GAAK/iM,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,OAAiBA,EAAG+iM,GACtD,IAAI7gH,EAAI7iE,OAAO9f,UAAUg3B,SAAS8rC,KAAKriE,GAAG69C,MAAM,GAAI,GAEpD,MADU,WAANqkC,GAAkBliF,EAAEyG,cAAay7E,EAAIliF,EAAEyG,YAAY7E,MAC7C,QAANsgF,GAAqB,QAANA,EAAoBzmE,MAAM8uF,KAAKvqG,GACxC,cAANkiF,GAAqB,2CAA2Cn8B,KAAKm8B,IAAW,OAAiBliF,EAAG+iM,QAAxG,K,itICNK,IAAI/hE,EAAU,SAKV/jI,EAAsB,iBAAR+lF,MAAoBA,KAAKA,OAASA,MAAQA,MACxC,iBAAV25C,QAAsBA,OAAOA,SAAWA,QAAUA,QACzDwjE,SAAS,cAATA,IACA,GAGC6C,EAAavnL,MAAMlc,UAAW0jM,EAAW5jL,OAAO9f,UAChD2jM,EAAgC,oBAAX9H,OAAyBA,OAAO77L,UAAY,KAGjE8L,EAAO23L,EAAW33L,KACzBwyC,EAAQmlJ,EAAWnlJ,MACnB,EAAWolJ,EAAS1sK,SACpB,EAAiB0sK,EAAS7jK,eAGnB+jK,EAA6C,oBAAhBC,YACpCC,EAAuC,oBAAbC,SAInBC,EAAgB9nL,MAAMhD,QAC7B+qL,EAAankL,OAAOC,KACpBmkL,EAAepkL,OAAOogB,OACtBikK,EAAeP,GAAuBC,YAAYO,OAG3CC,EAAS79K,MAChB89K,EAAYr6E,SAGLs6E,GAAc,CAACvtK,SAAU,MAAMm7J,qBAAqB,YACpDqS,EAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,kBAGjCC,EAAkBn7K,KAAKo7K,IAAI,EAAG,IAAM,ECrChC,SAASC,EAAcp0L,EAAMu9H,GAE1C,OADAA,EAA2B,MAAdA,EAAqBv9H,EAAKpL,OAAS,GAAK2oI,EAC9C,WAIL,IAHA,IAAI3oI,EAASmkB,KAAKC,IAAItH,UAAU9c,OAAS2oI,EAAY,GACjDv8E,EAAOr1C,MAAM/W,GACbwoB,EAAQ,EACLA,EAAQxoB,EAAQwoB,IACrB4jC,EAAK5jC,GAAS1L,UAAU0L,EAAQmgH,GAElC,OAAQA,GACN,KAAK,EAAG,OAAOv9H,EAAKuyD,KAAK5kE,KAAMqzD,GAC/B,KAAK,EAAG,OAAOhhD,EAAKuyD,KAAK5kE,KAAM+jB,UAAU,GAAIsvC,GAC7C,KAAK,EAAG,OAAOhhD,EAAKuyD,KAAK5kE,KAAM+jB,UAAU,GAAIA,UAAU,GAAIsvC,GAE7D,IAAInyB,EAAOljB,MAAM4xH,EAAa,GAC9B,IAAKngH,EAAQ,EAAGA,EAAQmgH,EAAYngH,IAClCyR,EAAKzR,GAAS1L,UAAU0L,GAG1B,OADAyR,EAAK0uG,GAAcv8E,EACZhhD,EAAKu3C,MAAM5pD,KAAMkhC,ICvBb,SAAS/nB,EAAS7H,GAC/B,IAAIhQ,SAAcgQ,EAClB,MAAgB,aAAThQ,GAAgC,WAATA,KAAuBgQ,ECFxC,SAASoX,EAAOpX,GAC7B,OAAe,OAARA,ECDM,SAASwT,EAAYxT,GAClC,YAAe,IAARA,ECCM,SAAS4sD,EAAU5sD,GAChC,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB,OAAcA,GCHzC,SAASoK,EAAUpK,GAChC,SAAUA,GAAwB,IAAjBA,EAAIo4C,UCCR,SAASg9I,EAAUviM,GAChC,IAAI+d,EAAM,WAAa/d,EAAO,IAC9B,OAAO,SAASmN,GACd,OAAO,OAAcA,KAAS4Q,GCJlC,QAAewkL,EAAU,UCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,QCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,SCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,eCCzB,IAAI7hM,EAAa6hM,EAAU,YAIvBC,EAAWnnM,EAAK0I,UAAY1I,EAAK0I,SAASkxC,WACM,iBAAbwtJ,WAA4C,mBAAZD,IACrE9hM,EAAa,SAASyM,GACpB,MAAqB,mBAAPA,IAAqB,IAIvC,UCZA,EAAeo1L,EAAU,UCIlB,IAAIG,EACLjB,GAAoB,EAAa,IAAIC,SAAS,IAAIF,YAAY,KAEhEmB,EAAyB,oBAARC,KAAuB,EAAa,IAAIA,KCJzDC,EAAaN,EAAU,YAQ3B,QAAgBG,EAJhB,SAAwBv1L,GACtB,OAAc,MAAPA,GAAe,EAAWA,EAAI21L,UAAYC,EAAc51L,EAAI61L,SAGlBH,ECRnD,EAAelB,GAAiBY,EAAU,SCF3B,SAASllK,EAAIlwB,EAAKglB,GAC/B,OAAc,MAAPhlB,GAAe,OAAoBA,EAAKglB,GCDjD,IAAIwsG,EAAc4jE,EAAU,cAI3B,WACM5jE,EAAY/+G,aACf++G,EAAc,SAASxxH,GACrB,OAAOkwB,EAAIlwB,EAAK,YAHtB,GAQA,UCXe,SAAS,EAASA,GAC/B,OAAQ81L,EAAS91L,IAAQ80L,EAAU90L,KAASgX,MAAM+E,WAAW/b,ICDhD,SAAS,EAAMA,GAC5B,OAAO2X,EAAS3X,IAAQ60L,EAAO70L,GCJlB,SAAS+1L,EAASxhM,GAC/B,OAAO,WACL,OAAOA,GCAI,SAASyhM,EAAwBC,GAC9C,OAAO,SAAS9kM,GACd,IAAI+kM,EAAeD,EAAgB9kM,GACnC,MAA8B,iBAAhB+kM,GAA4BA,GAAgB,GAAKA,GAAgBjB,GCLpE,SAASkB,GAAgBnxK,GACtC,OAAO,SAAShlB,GACd,OAAc,MAAPA,OAAc,EAASA,EAAIglB,ICAtC,SAAemxK,GAAgB,cCE/B,GAAeH,EAAwB,ICCvC,IAAII,GAAoB,8EAQxB,SAAehC,EAPf,SAAsBp0L,GAGpB,OAAO20L,EAAgBA,EAAa30L,KAAS,EAAWA,GAC1C,GAAaA,IAAQo2L,GAAkBp/I,KAAK,OAAch3C,KAGtB+1L,GAAS,GCX7D,GAAeI,GAAgB,UCoBhB,SAASE,GAAoBr2L,EAAKuQ,GAC/CA,EAhBF,SAAqBA,GAEnB,IADA,IAAI2lC,EAAO,GACFnG,EAAIx/B,EAAK5a,OAAQmD,EAAI,EAAGA,EAAIi3C,IAAKj3C,EAAGo9C,EAAK3lC,EAAKzX,KAAM,EAC7D,MAAO,CACLmlC,SAAU,SAASjZ,GAAO,OAAOkxB,EAAKlxB,IACtC1oB,KAAM,SAAS0oB,GAEb,OADAkxB,EAAKlxB,IAAO,EACLzU,EAAKjU,KAAK0oB,KASdsxK,CAAY/lL,GACnB,IAAIgmL,EAAavB,EAAmBr/L,OAChC+B,EAAcsI,EAAItI,YAClB8+L,EAAQ,EAAW9+L,IAAgBA,EAAYlH,WAAa0jM,EAG5DjvK,EAAO,cAGX,IAFIiL,EAAIlwB,EAAKilB,KAAU1U,EAAK0tB,SAAShZ,IAAO1U,EAAKjU,KAAK2oB,GAE/CsxK,MACLtxK,EAAO+vK,EAAmBuB,MACdv2L,GAAOA,EAAIilB,KAAUuxK,EAAMvxK,KAAU1U,EAAK0tB,SAAShZ,IAC7D1U,EAAKjU,KAAK2oB,GC7BD,SAAS1U,GAAKvQ,GAC3B,IAAK6H,EAAS7H,GAAM,MAAO,GAC3B,GAAIy0L,EAAY,OAAOA,EAAWz0L,GAClC,IAAIuQ,EAAO,GACX,IAAK,IAAIyU,KAAOhlB,EAASkwB,EAAIlwB,EAAKglB,IAAMzU,EAAKjU,KAAK0oB,GAGlD,OADI+vK,GAAYsB,GAAoBr2L,EAAKuQ,GAClCA,ECNM,SAAS2U,GAAQllB,GAC9B,GAAW,MAAPA,EAAa,OAAO,EAGxB,IAAIrK,EAAS,GAAUqK,GACvB,MAAqB,iBAAVrK,IACT+T,EAAQ1J,IAAQ4H,EAAS5H,IAAQ,EAAYA,IAC1B,IAAXrK,EACsB,IAAzB,GAAU4a,GAAKvQ,ICbT,SAASy2L,GAAQr5G,EAAQ72D,GACtC,IAAImwK,EAAQnmL,GAAKgW,GAAQ5wB,EAAS+gM,EAAM/gM,OACxC,GAAc,MAAVynF,EAAgB,OAAQznF,EAE5B,IADA,IAAIqK,EAAMsQ,OAAO8sE,GACRtkF,EAAI,EAAGA,EAAInD,EAAQmD,IAAK,CAC/B,IAAIksB,EAAM0xK,EAAM59L,GAChB,GAAIytB,EAAMvB,KAAShlB,EAAIglB,MAAUA,KAAOhlB,GAAM,OAAO,EAEvD,OAAO,ECNM,SAASivH,GAAEjvH,GACxB,OAAIA,aAAeivH,GAAUjvH,EACvBtR,gBAAgBugI,QACtBvgI,KAAKioM,SAAW32L,GADiB,IAAIivH,GAAEjvH,GCH1B,SAAS42L,GAAaC,GACnC,OAAO,IAAIC,WACTD,EAAahB,QAAUgB,EACvBA,EAAaE,YAAc,EAC3B,GAAcF,IDGlB5nE,GAAEgD,QAAUA,EAGZhD,GAAEz+H,UAAU+D,MAAQ,WAClB,OAAO7F,KAAKioM,UAKd1nE,GAAEz+H,UAAUwmM,QAAU/nE,GAAEz+H,UAAU01B,OAAS+oG,GAAEz+H,UAAU+D,MAEvD06H,GAAEz+H,UAAUg3B,SAAW,WACrB,OAAO+yC,OAAO7rE,KAAKioM,WEXrB,IAAIM,GAAc,oBAGlB,SAASzwI,GAAGn5B,EAAGC,EAAG4pK,EAAQC,GAGxB,GAAI9pK,IAAMC,EAAG,OAAa,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAE7C,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAID,GAAMA,EAAG,OAAOC,GAAMA,EAE1B,IAAIt9B,SAAcq9B,EAClB,OAAa,aAATr9B,GAAgC,WAATA,GAAiC,iBAALs9B,IAChD8pK,GAAO/pK,EAAGC,EAAG4pK,EAAQC,GAI9B,SAASC,GAAO/pK,EAAGC,EAAG4pK,EAAQC,GAExB9pK,aAAa4hG,KAAG5hG,EAAIA,EAAEspK,UACtBrpK,aAAa2hG,KAAG3hG,EAAIA,EAAEqpK,UAE1B,IAAIllM,EAAY,OAAc47B,GAC9B,GAAI57B,IAAc,OAAc67B,GAAI,OAAO,EAE3C,GAAIioK,GAAgC,mBAAb9jM,GAAkC,EAAW47B,GAAI,CACtE,IAAK,EAAWC,GAAI,OAAO,EAC3B77B,EAAYwlM,GAEd,OAAQxlM,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAK47B,GAAM,GAAKC,EACzB,IAAK,kBAGH,OAAKD,IAAOA,GAAWC,IAAOA,EAEhB,IAAND,EAAU,GAAKA,GAAM,EAAIC,GAAKD,IAAOC,EAC/C,IAAK,gBACL,IAAK,mBAIH,OAAQD,IAAOC,EACjB,IAAK,kBACH,OAAO6mK,EAAY6C,QAAQ1jI,KAAKjmC,KAAO8mK,EAAY6C,QAAQ1jI,KAAKhmC,GAClE,IAAK,uBACL,KAAK2pK,GAEH,OAAOG,GAAOR,GAAavpK,GAAIupK,GAAatpK,GAAI4pK,EAAQC,GAG5D,IAAIE,EAA0B,mBAAd5lM,EAChB,IAAK4lM,GAAa,GAAahqK,GAAI,CAE/B,GADiB,GAAcA,KACZ,GAAcC,GAAI,OAAO,EAC5C,GAAID,EAAEwoK,SAAWvoK,EAAEuoK,QAAUxoK,EAAE0pK,aAAezpK,EAAEypK,WAAY,OAAO,EACnEM,GAAY,EAEhB,IAAKA,EAAW,CACd,GAAgB,iBAALhqK,GAA6B,iBAALC,EAAe,OAAO,EAIzD,IAAIgqK,EAAQjqK,EAAE31B,YAAa6/L,EAAQjqK,EAAE51B,YACrC,GAAI4/L,IAAUC,KAAW,EAAWD,IAAUA,aAAiBA,GACtC,EAAWC,IAAUA,aAAiBA,IACvC,gBAAiBlqK,GAAK,gBAAiBC,EAC7D,OAAO,EASX6pK,EAASA,GAAU,GAEnB,IADA,IAAIxhM,GAFJuhM,EAASA,GAAU,IAECvhM,OACbA,KAGL,GAAIuhM,EAAOvhM,KAAY03B,EAAG,OAAO8pK,EAAOxhM,KAAY23B,EAQtD,GAJA4pK,EAAO56L,KAAK+wB,GACZ8pK,EAAO76L,KAAKgxB,GAGR+pK,EAAW,CAGb,IADA1hM,EAAS03B,EAAE13B,UACI23B,EAAE33B,OAAQ,OAAO,EAEhC,KAAOA,KACL,IAAK6wD,GAAGn5B,EAAE13B,GAAS23B,EAAE33B,GAASuhM,EAAQC,GAAS,OAAO,MAEnD,CAEL,IAAqBnyK,EAAjB0xK,EAAQnmL,GAAK8c,GAGjB,GAFA13B,EAAS+gM,EAAM/gM,OAEX4a,GAAK+c,GAAG33B,SAAWA,EAAQ,OAAO,EACtC,KAAOA,KAGL,IAAMu6B,EAAI5C,EADVtI,EAAM0xK,EAAM/gM,MACS6wD,GAAGn5B,EAAErI,GAAMsI,EAAEtI,GAAMkyK,EAAQC,GAAU,OAAO,EAMrE,OAFAD,EAAO9mM,MACP+mM,EAAO/mM,OACA,EAIM,SAAS0kI,GAAQznG,EAAGC,GACjC,OAAOk5B,GAAGn5B,EAAGC,GCnIA,SAASkqK,GAAQx3L,GAC9B,IAAK6H,EAAS7H,GAAM,MAAO,GAC3B,IAAIuQ,EAAO,GACX,IAAK,IAAIyU,KAAOhlB,EAAKuQ,EAAKjU,KAAK0oB,GAG/B,OADI+vK,GAAYsB,GAAoBr2L,EAAKuQ,GAClCA,ECHF,SAASknL,GAAgB3qL,GAC9B,IAAInX,EAAS,GAAUmX,GACvB,OAAO,SAAS9M,GACd,GAAW,MAAPA,EAAa,OAAO,EAExB,IAAIuQ,EAAOinL,GAAQx3L,GACnB,GAAI,GAAUuQ,GAAO,OAAO,EAC5B,IAAK,IAAIzX,EAAI,EAAGA,EAAInD,EAAQmD,IAC1B,IAAK,EAAWkH,EAAI8M,EAAQhU,KAAM,OAAO,EAK3C,OAAOgU,IAAY4qL,KAAmB,EAAW13L,EAAI23L,MAMzD,IAAIA,GAAc,UAEdC,GAAa,CAAC,QAAS,UACvBC,GAAU,CAAC,MAFD,MAEiB,OAIpBC,GAAaF,GAAWzqK,OAAOwqK,GAAaE,IACnDH,GAAiBE,GAAWzqK,OAAO0qK,IACnCE,GAAa,CAAC,OAAO5qK,OAAOyqK,GAAYD,GAR9B,OCxBd,SAAenC,EAASiC,GAAgBK,IAAc1C,EAAU,OCAhE,GAAeI,EAASiC,GAAgBC,IAAkBtC,EAAU,WCApE,GAAeI,EAASiC,GAAgBM,IAAc3C,EAAU,OCFhE,GAAeA,EAAU,WCCV,SAASv3F,GAAO79F,GAI7B,IAHA,IAAI02L,EAAQnmL,GAAKvQ,GACbrK,EAAS+gM,EAAM/gM,OACfkoG,EAASnxF,MAAM/W,GACVmD,EAAI,EAAGA,EAAInD,EAAQmD,IAC1B+kG,EAAO/kG,GAAKkH,EAAI02L,EAAM59L,IAExB,OAAO+kG,ECNM,SAAS+3B,GAAM51H,GAI5B,IAHA,IAAI02L,EAAQnmL,GAAKvQ,GACbrK,EAAS+gM,EAAM/gM,OACfigI,EAAQlpH,MAAM/W,GACTmD,EAAI,EAAGA,EAAInD,EAAQmD,IAC1B88H,EAAM98H,GAAK,CAAC49L,EAAM59L,GAAIkH,EAAI02L,EAAM59L,KAElC,OAAO88H,ECRM,SAASC,GAAO71H,GAG7B,IAFA,IAAIrP,EAAS,GACT+lM,EAAQnmL,GAAKvQ,GACRlH,EAAI,EAAGnD,EAAS+gM,EAAM/gM,OAAQmD,EAAInD,EAAQmD,IACjDnI,EAAOqP,EAAI02L,EAAM59L,KAAO49L,EAAM59L,GAEhC,OAAOnI,ECNM,SAASqnM,GAAUh4L,GAChC,IAAIy5D,EAAQ,GACZ,IAAK,IAAIz0C,KAAOhlB,EACV,EAAWA,EAAIglB,KAAOy0C,EAAMn9D,KAAK0oB,GAEvC,OAAOy0C,EAAMjpD,OCPA,SAASynL,GAAeC,EAAU/5L,GAC/C,OAAO,SAAS6B,GACd,IAAIrK,EAAS8c,UAAU9c,OAEvB,GADIwI,IAAU6B,EAAMsQ,OAAOtQ,IACvBrK,EAAS,GAAY,MAAPqK,EAAa,OAAOA,EACtC,IAAK,IAAIme,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAIlC,IAHA,IAAIqlC,EAAS/wC,UAAU0L,GACnB5N,EAAO2nL,EAAS10I,GAChBzT,EAAIx/B,EAAK5a,OACJmD,EAAI,EAAGA,EAAIi3C,EAAGj3C,IAAK,CAC1B,IAAIksB,EAAMzU,EAAKzX,GACVqF,QAAyB,IAAb6B,EAAIglB,KAAiBhlB,EAAIglB,GAAOw+B,EAAOx+B,IAG5D,OAAOhlB,GCXX,SAAei4L,GAAeT,ICE9B,GAAeS,GAAe1nL,ICF9B,GAAe0nL,GAAeT,IAAS,GCKxB,SAASW,GAAW3nM,GACjC,IAAKqX,EAASrX,GAAY,MAAO,GACjC,GAAIkkM,EAAc,OAAOA,EAAalkM,GACtC,IAAI4nM,EAPG,aAQPA,EAAK5nM,UAAYA,EACjB,IAAIG,EAAS,IAAIynM,EAEjB,OADAA,EAAK5nM,UAAY,KACVG,ECVM,SAAS+/B,GAAOlgC,EAAW8Z,GACxC,IAAI3Z,EAASwnM,GAAW3nM,GAExB,OADI8Z,GAAO+tL,GAAU1nM,EAAQ2Z,GACtB3Z,ECJM,SAAS2B,GAAM0N,GAC5B,OAAK6H,EAAS7H,GACP0J,EAAQ1J,GAAOA,EAAI8uC,QAAU7nB,GAAO,GAAIjnB,GADpBA,ECHd,SAASs4L,GAAIt4L,EAAKu4L,GAE/B,OADAA,EAAYv4L,GACLA,ECAM,SAASw4L,GAAOh9D,GAC7B,OAAO9xH,EAAQ8xH,GAAQA,EAAO,CAACA,GCDlB,SAAS,GAAOA,GAC7B,OAAOvM,GAAEupE,OAAOh9D,GCLH,SAASi9D,GAAQz4L,EAAKw7H,GAEnC,IADA,IAAI7lI,EAAS6lI,EAAK7lI,OACTmD,EAAI,EAAGA,EAAInD,EAAQmD,IAAK,CAC/B,GAAW,MAAPkH,EAAa,OACjBA,EAAMA,EAAIw7H,EAAK1iI,IAEjB,OAAOnD,EAASqK,OAAM,ECCT,SAAS9P,GAAIktF,EAAQo+C,EAAMk9D,GACxC,IAAInkM,EAAQkkM,GAAQr7G,EAAQ,GAAOo+C,IACnC,OAAOhoH,EAAYjf,GAASmkM,EAAenkM,ECJ9B,SAAS,GAAIyL,EAAKw7H,GAG/B,IADA,IAAI7lI,GADJ6lI,EAAO,GAAOA,IACI7lI,OACTmD,EAAI,EAAGA,EAAInD,EAAQmD,IAAK,CAC/B,IAAIksB,EAAMw2G,EAAK1iI,GACf,IAAK,EAAKkH,EAAKglB,GAAM,OAAO,EAC5BhlB,EAAMA,EAAIglB,GAEZ,QAASrvB,ECbI,SAASgjM,GAASpkM,GAC/B,OAAOA,ECGM,SAASu+H,GAAQvsG,GAE9B,OADAA,EAAQ8xK,GAAU,GAAI9xK,GACf,SAASvmB,GACd,OAAOy2L,GAAQz2L,EAAKumB,ICHT,SAAS6+B,GAASo2E,GAE/B,OADAA,EAAO,GAAOA,GACP,SAASx7H,GACd,OAAOy4L,GAAQz4L,EAAKw7H,ICLT,SAASo9D,GAAW73L,EAAMmnD,EAAS2wI,GAChD,QAAgB,IAAZ3wI,EAAoB,OAAOnnD,EAC/B,OAAoB,MAAZ83L,EAAmB,EAAIA,GAC7B,KAAK,EAAG,OAAO,SAAStkM,GACtB,OAAOwM,EAAKuyD,KAAKpL,EAAS3zD,IAG5B,KAAK,EAAG,OAAO,SAASA,EAAO4pB,EAAOhtB,GACpC,OAAO4P,EAAKuyD,KAAKpL,EAAS3zD,EAAO4pB,EAAOhtB,IAE1C,KAAK,EAAG,OAAO,SAAS2nM,EAAavkM,EAAO4pB,EAAOhtB,GACjD,OAAO4P,EAAKuyD,KAAKpL,EAAS4wI,EAAavkM,EAAO4pB,EAAOhtB,IAGzD,OAAO,WACL,OAAO4P,EAAKu3C,MAAM4P,EAASz1C,YCPhB,SAASsmL,GAAaxkM,EAAO2zD,EAAS2wI,GACnD,OAAa,MAATtkM,EAAsBokM,GACtB,EAAWpkM,GAAeqkM,GAAWrkM,EAAO2zD,EAAS2wI,GACrDhxL,EAAStT,KAAWmV,EAAQnV,GAAeu+H,GAAQv+H,GAChD6wD,GAAS7wD,GCTH,SAASg+H,GAASh+H,EAAO2zD,GACtC,OAAO6wI,GAAaxkM,EAAO2zD,EAASopE,EAAAA,GCDvB,SAASrT,GAAG1pH,EAAO2zD,EAAS2wI,GACzC,OAAI5pE,GAAEsD,WAAaA,GAAiBtD,GAAEsD,SAASh+H,EAAO2zD,GAC/C6wI,GAAaxkM,EAAO2zD,EAAS2wI,GCHvB,SAASG,GAAUh5L,EAAKuyH,EAAUrqE,GAC/CqqE,EAAWtU,GAAGsU,EAAUrqE,GAIxB,IAHA,IAAIwuI,EAAQnmL,GAAKvQ,GACbrK,EAAS+gM,EAAM/gM,OACfm9E,EAAU,GACL30D,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAAS,CAC3C,IAAI86K,EAAavC,EAAMv4K,GACvB20D,EAAQmmH,GAAc1mE,EAASvyH,EAAIi5L,GAAaA,EAAYj5L,GAE9D,OAAO8yE,ECbM,SAAStd,MCGT,SAAS0jI,GAAWl5L,GACjC,OAAW,MAAPA,EAAoBw1D,GACjB,SAASgmE,GACd,OAAOtrI,GAAI8P,EAAKw7H,ICJL,SAAS1lB,GAAM3iC,EAAGo/C,EAAUrqE,GACzC,IAAIixI,EAAQzsL,MAAMoN,KAAKC,IAAI,EAAGo5D,IAC9Bo/C,EAAWqmE,GAAWrmE,EAAUrqE,EAAS,GACzC,IAAK,IAAIpvD,EAAI,EAAGA,EAAIq6E,EAAGr6E,IAAKqgM,EAAMrgM,GAAKy5H,EAASz5H,GAChD,OAAOqgM,ECNM,SAASzqI,GAAO10C,EAAKD,GAKlC,OAJW,MAAPA,IACFA,EAAMC,EACNA,EAAM,GAEDA,EAAMF,KAAK2gD,MAAM3gD,KAAK40C,UAAY30C,EAAMC,EAAM,IhBEvDi1G,GAAEupE,OAASA,GUCXvpE,GAAEsD,SAAWA,GORb,SAAewQ,KAAKyoC,KAAO,WACzB,OAAO,IAAIzoC,MAAOq2D,WCEL,SAASC,GAAcjwL,GACpC,IAAIkwL,EAAU,SAASr9L,GACrB,OAAOmN,EAAInN,IAGTunD,EAAS,MAAQjzC,GAAKnH,GAAKqH,KAAK,KAAO,IACvC8oL,EAAahsI,OAAO/J,GACpBg2I,EAAgBjsI,OAAO/J,EAAQ,KACnC,OAAO,SAAS87E,GAEd,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7Bi6D,EAAWviJ,KAAKsoF,GAAUA,EAAO7kI,QAAQ++L,EAAeF,GAAWh6D,GCb9E,UACE,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UCHP,GAAe+5D,GAAc,ICA7B,GAAeA,GCAAxjE,GAAO,KCAtB,GAAe5G,GAAEwqE,iBAAmB,CAClCC,SAAU,kBACVC,YAAa,mBACbnsJ,OAAQ,oBCAV,IAAIosJ,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAGR70I,GAAe,4BAEnB,SAAS80I,GAAW79L,GAClB,MAAO,KAAO49L,GAAQ59L,GAQxB,IAAI89L,GAAiB,mBAMN,SAAStnM,GAAS0F,EAAMu2F,EAAUsrG,IAC1CtrG,GAAYsrG,IAAatrG,EAAWsrG,GACzCtrG,EAAWvwF,GAAS,GAAIuwF,EAAUugC,GAAEwqE,kBAGpC,IAAI3mE,EAAUvlE,OAAO,EAClBmhC,EAASlhD,QAAUosJ,IAASp2I,QAC5BkrC,EAASirG,aAAeC,IAASp2I,QACjCkrC,EAASgrG,UAAYE,IAASp2I,QAC/B/yC,KAAK,KAAO,KAAM,KAGhB0N,EAAQ,EACRqlC,EAAS,SACbrrD,EAAKsC,QAAQq4H,GAAS,SAAS72H,EAAOuxC,EAAQmsJ,EAAaD,EAAUp+K,GAanE,OAZAkoC,GAAUrrD,EAAK22C,MAAM3wB,EAAO7C,GAAQ7gB,QAAQuqD,GAAc80I,IAC1D37K,EAAQ7C,EAASrf,EAAMtG,OAEnB63C,EACFgW,GAAU,cAAgBhW,EAAS,iCAC1BmsJ,EACTn2I,GAAU,cAAgBm2I,EAAc,uBAC/BD,IACTl2I,GAAU,OAASk2I,EAAW,YAIzBz9L,KAETunD,GAAU,OAEV,IAgBIttD,EAhBA+jM,EAAWvrG,EAASwrG,SACxB,GAAID,GAEF,IAAKF,GAAe/iJ,KAAKijJ,GAAW,MAAM,IAAIz9L,MAC5C,sCAAwCy9L,QAI1Cz2I,EAAS,mBAAqBA,EAAS,MACvCy2I,EAAW,MAGbz2I,EAAS,4FAEPA,EAAS,gBAGX,IACEttD,EAAS,IAAIk7L,SAAS6I,EAAU,IAAKz2I,GACrC,MAAO5vD,GAEP,MADAA,EAAE4vD,OAASA,EACL5vD,EAGR,IAAInB,EAAW,SAAS+F,GACtB,OAAOtC,EAAOo9D,KAAK5kE,KAAM8J,EAAMy2H,KAMjC,OAFAx8H,EAAS+wD,OAAS,YAAcy2I,EAAW,OAASz2I,EAAS,IAEtD/wD,EC7FM,SAAS9B,GAAOqP,EAAKw7H,EAAMzmF,GAExC,IAAIp/C,GADJ6lI,EAAO,GAAOA,IACI7lI,OAClB,IAAKA,EACH,OAAO,EAAWo/C,GAAYA,EAASue,KAAKtzD,GAAO+0C,EAErD,IAAK,IAAIj8C,EAAI,EAAGA,EAAInD,EAAQmD,IAAK,CAC/B,IAAImsB,EAAc,MAAPjlB,OAAc,EAASA,EAAIw7H,EAAK1iI,SAC9B,IAATmsB,IACFA,EAAO8vB,EACPj8C,EAAInD,GAENqK,EAAM,EAAWilB,GAAQA,EAAKquC,KAAKtzD,GAAOilB,EAE5C,OAAOjlB,EClBT,IAAIm6L,GAAY,EACD,SAAS3mE,GAAS5uH,GAC/B,IAAIvQ,IAAO8lM,GAAY,GACvB,OAAOv1L,EAASA,EAASvQ,EAAKA,ECFjB,SAAS0hI,GAAM/1H,GAC5B,IAAI2yH,EAAW1D,GAAEjvH,GAEjB,OADA2yH,EAASynE,QAAS,EACXznE,ECAM,SAAS0nE,GAAaC,EAAYC,EAAWryI,EAASsyI,EAAgB5qK,GACnF,KAAM4qK,aAA0BD,GAAY,OAAOD,EAAWhiJ,MAAM4P,EAASt4B,GAC7E,IAAIqkD,EAAOkkH,GAAWmC,EAAW9pM,WAC7BG,EAAS2pM,EAAWhiJ,MAAM27B,EAAMrkD,GACpC,OAAI/nB,EAASlX,GAAgBA,EACtBsjF,ECHT,IAAI/vB,GAAUixI,GAAc,SAASp0L,EAAM05L,GACzC,IAAIjkJ,EAAc0N,GAAQ1N,YACtBszH,EAAQ,WAGV,IAFA,IAAIn7J,EAAW,EAAGhZ,EAAS8kM,EAAU9kM,OACjCi6B,EAAOljB,MAAM/W,GACRmD,EAAI,EAAGA,EAAInD,EAAQmD,IAC1B82B,EAAK92B,GAAK2hM,EAAU3hM,KAAO09C,EAAc/jC,UAAU9D,KAAc8rL,EAAU3hM,GAE7E,KAAO6V,EAAW8D,UAAU9c,QAAQi6B,EAAKtzB,KAAKmW,UAAU9D,MACxD,OAAO0rL,GAAat5L,EAAM+oK,EAAOp7K,KAAMA,KAAMkhC,IAE/C,OAAOk6I,KAGT5lH,GAAQ1N,YAAcy4E,GACtB,YCjBA,GAAekmE,GAAc,SAASp0L,EAAMmnD,EAASt4B,GACnD,IAAK,EAAW7uB,GAAO,MAAM,IAAI+hH,UAAU,qCAC3C,IAAIgnD,EAAQqrB,GAAc,SAASuF,GACjC,OAAOL,GAAat5L,EAAM+oK,EAAO5hH,EAASx5D,KAAMkhC,EAAKzC,OAAOutK,OAE9D,OAAO5wB,KCJT,GAAeksB,EAAwB,ICDxB,SAAS9+J,GAAQliC,EAAOguL,EAAOl1J,EAAQo9D,GAEpD,GADAA,EAASA,GAAU,GACd83F,GAAmB,IAAVA,GAEP,GAAIA,GAAS,EAClB,OAAO93F,EAAO/9D,OAAOn4B,QAFrBguL,EAAQ1xD,EAAAA,EAKV,IADA,IAAIxoE,EAAMoiC,EAAOv1F,OACRmD,EAAI,EAAGnD,EAAS,GAAUX,GAAQ8D,EAAInD,EAAQmD,IAAK,CAC1D,IAAIvE,EAAQS,EAAM8D,GAClB,GAAI,GAAYvE,KAAWmV,EAAQnV,IAAU,EAAYA,IAEvD,GAAIyuL,EAAQ,EACV9rJ,GAAQ3iC,EAAOyuL,EAAQ,EAAGl1J,EAAQo9D,GAClCpiC,EAAMoiC,EAAOv1F,YAGb,IADA,IAAIu6C,EAAI,EAAGtZ,EAAMriC,EAAMoB,OAChBu6C,EAAItZ,GAAKs0D,EAAOpiC,KAASv0D,EAAM27C,UAE9BpiB,IACVo9D,EAAOpiC,KAASv0D,GAGpB,OAAO22F,ECtBT,SAAeiqG,GAAc,SAASn1L,EAAKuQ,GAEzC,IAAI4N,GADJ5N,EAAO2mB,GAAQ3mB,GAAM,GAAO,IACX5a,OACjB,GAAIwoB,EAAQ,EAAG,MAAM,IAAI3hB,MAAM,yCAC/B,KAAO2hB,KAAS,CACd,IAAI6G,EAAMzU,EAAK4N,GACfne,EAAIglB,GAAOjzB,GAAKiO,EAAIglB,GAAMhlB,GAE5B,OAAOA,KCZM,SAAS26L,GAAQ55L,EAAM65L,GACpC,IAAID,EAAU,SAAS31K,GACrB,IAAI43F,EAAQ+9E,EAAQ/9E,MAChBvmE,EAAU,IAAMukJ,EAASA,EAAOtiJ,MAAM5pD,KAAM+jB,WAAauS,GAE7D,OADKkL,EAAI0sF,EAAOvmE,KAAUumE,EAAMvmE,GAAWt1C,EAAKu3C,MAAM5pD,KAAM+jB,YACrDmqG,EAAMvmE,IAGf,OADAskJ,EAAQ/9E,MAAQ,GACT+9E,ECPT,SAAexF,GAAc,SAASp0L,EAAMqpE,EAAMx6C,GAChD,OAAOjd,YAAW,WAChB,OAAO5R,EAAKu3C,MAAM,KAAM1oB,KACvBw6C,MCDL,GAAe,GAAQgjF,GAAOn+B,GAAG,GCClB,SAAS4rE,GAAS95L,EAAMqpE,EAAMl5E,GAC3C,IAAIm5E,EAASniB,EAASt4B,EAAMj/B,EACxByf,EAAW,EACVlf,IAASA,EAAU,IAExB,IAAI4pM,EAAQ,WACV1qL,GAA+B,IAApBlf,EAAQ6pM,QAAoB,EAAIvvB,KAC3CnhG,EAAU,KACV15E,EAASoQ,EAAKu3C,MAAM4P,EAASt4B,GACxBy6C,IAASniB,EAAUt4B,EAAO,OAG7BorK,EAAY,WACd,IAAIC,EAAOzvB,KACNp7J,IAAgC,IAApBlf,EAAQ6pM,UAAmB3qL,EAAW6qL,GACvD,IAAIl4E,EAAY34C,GAAQ6wH,EAAO7qL,GAc/B,OAbA83C,EAAUx5D,KACVkhC,EAAOnd,UACHswG,GAAa,GAAKA,EAAY34C,GAC5BC,IACF7vD,aAAa6vD,GACbA,EAAU,MAEZj6D,EAAW6qL,EACXtqM,EAASoQ,EAAKu3C,MAAM4P,EAASt4B,GACxBy6C,IAASniB,EAAUt4B,EAAO,OACrBy6C,IAAgC,IAArBn5E,EAAQgqM,WAC7B7wH,EAAU13D,WAAWmoL,EAAO/3E,IAEvBpyH,GAST,OANAqqM,EAAUjyL,OAAS,WACjByR,aAAa6vD,GACbj6D,EAAW,EACXi6D,EAAUniB,EAAUt4B,EAAO,MAGtBorK,ECtCM,SAASv8L,GAASsC,EAAMqpE,EAAM+wH,GAC3C,IAAI9wH,EAASj6D,EAAUwf,EAAMj/B,EAAQu3D,EAEjC4yI,EAAQ,WACV,IAAIM,EAAS5vB,KAAQp7J,EACjBg6D,EAAOgxH,EACT/wH,EAAU13D,WAAWmoL,EAAO1wH,EAAOgxH,IAEnC/wH,EAAU,KACL8wH,IAAWxqM,EAASoQ,EAAKu3C,MAAM4P,EAASt4B,IAExCy6C,IAASz6C,EAAOs4B,EAAU,QAI/BmzI,EAAYlG,GAAc,SAASmG,GAQrC,OAPApzI,EAAUx5D,KACVkhC,EAAO0rK,EACPlrL,EAAWo7J,KACNnhG,IACHA,EAAU13D,WAAWmoL,EAAO1wH,GACxB+wH,IAAWxqM,EAASoQ,EAAKu3C,MAAM4P,EAASt4B,KAEvCj/B,KAQT,OALA0qM,EAAUtyL,OAAS,WACjByR,aAAa6vD,GACbA,EAAUz6C,EAAOs4B,EAAU,MAGtBmzI,ECjCM,SAAS7sG,GAAKztF,EAAMuC,GACjC,OAAO,GAAQA,EAASvC,GCLX,SAASw6L,GAAOpmB,GAC7B,OAAO,WACL,OAAQA,EAAU78H,MAAM5pD,KAAM+jB,YCDnB,SAAS+oL,KACtB,IAAI5rK,EAAOnd,UACPmE,EAAQgZ,EAAKj6B,OAAS,EAC1B,OAAO,WAGL,IAFA,IAAImD,EAAI8d,EACJjmB,EAASi/B,EAAKhZ,GAAO0hC,MAAM5pD,KAAM+jB,WAC9B3Z,KAAKnI,EAASi/B,EAAK92B,GAAGw6D,KAAK5kE,KAAMiC,GACxC,OAAOA,GCRI,SAASogF,GAAM+kC,EAAO/0G,GACnC,OAAO,WACL,KAAM+0G,EAAQ,EACZ,OAAO/0G,EAAKu3C,MAAM5pD,KAAM+jB,YCFf,SAASiiG,GAAOoB,EAAO/0G,GACpC,IAAI06L,EACJ,OAAO,WAKL,QAJM3lF,EAAQ,IACZ2lF,EAAO16L,EAAKu3C,MAAM5pD,KAAM+jB,YAEtBqjG,GAAS,IAAG/0G,EAAO,MAChB06L,GCJX,SAAe,GAAQ/mF,GAAQ,GCDhB,SAASgnF,GAAQ17L,EAAKm1K,EAAWjtH,GAC9CitH,EAAYl3D,GAAGk3D,EAAWjtH,GAE1B,IADA,IAAuBljC,EAAnB0xK,EAAQnmL,GAAKvQ,GACRlH,EAAI,EAAGnD,EAAS+gM,EAAM/gM,OAAQmD,EAAInD,EAAQmD,IAEjD,GAAIq8K,EAAUn1K,EADdglB,EAAM0xK,EAAM59L,IACYksB,EAAKhlB,GAAM,OAAOglB,ECL/B,SAAS22K,GAA2BjyE,GACjD,OAAO,SAAS9+E,EAAOuqI,EAAWjtH,GAChCitH,EAAYl3D,GAAGk3D,EAAWjtH,GAG1B,IAFA,IAAIvyD,EAAS,GAAUi1C,GACnBzsB,EAAQurG,EAAM,EAAI,EAAI/zH,EAAS,EAC5BwoB,GAAS,GAAKA,EAAQxoB,EAAQwoB,GAASurG,EAC5C,GAAIyrD,EAAUvqI,EAAMzsB,GAAQA,EAAOysB,GAAQ,OAAOzsB,EAEpD,OAAQ,GCTZ,SAAew9K,GAA2B,GCA1C,GAAeA,IAA4B,GCE5B,SAASC,GAAYhxJ,EAAO5qC,EAAKuyH,EAAUrqE,GAIxD,IAFA,IAAI3zD,GADJg+H,EAAWtU,GAAGsU,EAAUrqE,EAAS,IACZloD,GACjB67L,EAAM,EAAGC,EAAO,GAAUlxJ,GACvBixJ,EAAMC,GAAM,CACjB,IAAIp3D,EAAM5qH,KAAK2gD,OAAOohI,EAAMC,GAAQ,GAChCvpE,EAAS3nF,EAAM85F,IAAQnwI,EAAOsnM,EAAMn3D,EAAM,EAAQo3D,EAAOp3D,EAE/D,OAAOm3D,ECRM,SAASE,GAAkBryE,EAAKsyE,EAAeJ,GAC5D,OAAO,SAAShxJ,EAAOxvC,EAAM0tD,GAC3B,IAAIhwD,EAAI,EAAGnD,EAAS,GAAUi1C,GAC9B,GAAkB,iBAAPke,EACL4gE,EAAM,EACR5wH,EAAIgwD,GAAO,EAAIA,EAAMhvC,KAAKC,IAAI+uC,EAAMnzD,EAAQmD,GAE5CnD,EAASmzD,GAAO,EAAIhvC,KAAKE,IAAI8uC,EAAM,EAAGnzD,GAAUmzD,EAAMnzD,EAAS,OAE5D,GAAIimM,GAAe9yI,GAAOnzD,EAE/B,OAAOi1C,EADPke,EAAM8yI,EAAYhxJ,EAAOxvC,MACHA,EAAO0tD,GAAO,EAEtC,GAAI1tD,GAASA,EAEX,OADA0tD,EAAMkzI,EAAcltJ,EAAMwkB,KAAK1oB,EAAO9xC,EAAGnD,GAAS,KACpC,EAAImzD,EAAMhwD,GAAK,EAE/B,IAAKgwD,EAAM4gE,EAAM,EAAI5wH,EAAInD,EAAS,EAAGmzD,GAAO,GAAKA,EAAMnzD,EAAQmzD,GAAO4gE,EACpE,GAAI9+E,EAAMke,KAAS1tD,EAAM,OAAO0tD,EAElC,OAAQ,GCjBZ,SAAeizI,GAAkB,EAAGvjE,GAAWojE,ICH/C,GAAeG,IAAmB,EAAGtjE,ICAtB,SAASjiI,GAAKwJ,EAAKm1K,EAAWjtH,GAC3C,IACIljC,GADY,GAAYhlB,GAAOw4H,GAAYkjE,IAC3B17L,EAAKm1K,EAAWjtH,GACpC,QAAY,IAARljC,IAA2B,IAATA,EAAY,OAAOhlB,EAAIglB,GCHhC,SAASgyG,GAAUh3H,EAAKumB,GACrC,OAAO/vB,GAAKwJ,EAAK8yH,GAAQvsG,ICEZ,SAASzvB,GAAKkJ,EAAKuyH,EAAUrqE,GAE1C,IAAIpvD,EAAGnD,EACP,GAFA48H,EAAWqmE,GAAWrmE,EAAUrqE,GAE5B,GAAYloD,GACd,IAAKlH,EAAI,EAAGnD,EAASqK,EAAIrK,OAAQmD,EAAInD,EAAQmD,IAC3Cy5H,EAASvyH,EAAIlH,GAAIA,EAAGkH,OAEjB,CACL,IAAI02L,EAAQnmL,GAAKvQ,GACjB,IAAKlH,EAAI,EAAGnD,EAAS+gM,EAAM/gM,OAAQmD,EAAInD,EAAQmD,IAC7Cy5H,EAASvyH,EAAI02L,EAAM59L,IAAK49L,EAAM59L,GAAIkH,GAGtC,OAAOA,EChBM,SAASoJ,GAAIpJ,EAAKuyH,EAAUrqE,GACzCqqE,EAAWtU,GAAGsU,EAAUrqE,GAIxB,IAHA,IAAIwuI,GAAS,GAAY12L,IAAQuQ,GAAKvQ,GAClCrK,GAAU+gM,GAAS12L,GAAKrK,OACxBm9E,EAAUpmE,MAAM/W,GACXwoB,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAAS,CAC3C,IAAI86K,EAAavC,EAAQA,EAAMv4K,GAASA,EACxC20D,EAAQ30D,GAASo0G,EAASvyH,EAAIi5L,GAAaA,EAAYj5L,GAEzD,OAAO8yE,ECTM,SAASmpH,GAAavyE,GAGnC,IAAIwyE,EAAU,SAASl8L,EAAKuyH,EAAUkpE,EAAMttH,GAC1C,IAAIuoH,GAAS,GAAY12L,IAAQuQ,GAAKvQ,GAClCrK,GAAU+gM,GAAS12L,GAAKrK,OACxBwoB,EAAQurG,EAAM,EAAI,EAAI/zH,EAAS,EAKnC,IAJKw4E,IACHstH,EAAOz7L,EAAI02L,EAAQA,EAAMv4K,GAASA,GAClCA,GAASurG,GAEJvrG,GAAS,GAAKA,EAAQxoB,EAAQwoB,GAASurG,EAAK,CACjD,IAAIuvE,EAAavC,EAAQA,EAAMv4K,GAASA,EACxCs9K,EAAOlpE,EAASkpE,EAAMz7L,EAAIi5L,GAAaA,EAAYj5L,GAErD,OAAOy7L,GAGT,OAAO,SAASz7L,EAAKuyH,EAAUkpE,EAAMvzI,GACnC,IAAIimB,EAAU17D,UAAU9c,QAAU,EAClC,OAAOumM,EAAQl8L,EAAK44L,GAAWrmE,EAAUrqE,EAAS,GAAIuzI,EAAMttH,ICrBhE,SAAe8tH,GAAa,GCD5B,GAAeA,IAAc,GCCd,SAASv3K,GAAO1kB,EAAKm1K,EAAWjtH,GAC7C,IAAI4qB,EAAU,GAKd,OAJAqiG,EAAYl3D,GAAGk3D,EAAWjtH,GAC1BpxD,GAAKkJ,GAAK,SAASzL,EAAO4pB,EAAO29B,GAC3Bq5H,EAAU5gL,EAAO4pB,EAAO29B,IAAOg3B,EAAQx2E,KAAK/H,MAE3Cu+E,ECLM,SAASv5E,GAAOyG,EAAKm1K,EAAWjtH,GAC7C,OAAOxjC,GAAO1kB,EAAKu7L,GAAOt9E,GAAGk3D,IAAajtH,GCD7B,SAAS16B,GAAMxtB,EAAKm1K,EAAWjtH,GAC5CitH,EAAYl3D,GAAGk3D,EAAWjtH,GAG1B,IAFA,IAAIwuI,GAAS,GAAY12L,IAAQuQ,GAAKvQ,GAClCrK,GAAU+gM,GAAS12L,GAAKrK,OACnBwoB,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAAS,CAC3C,IAAI86K,EAAavC,EAAQA,EAAMv4K,GAASA,EACxC,IAAKg3J,EAAUn1K,EAAIi5L,GAAaA,EAAYj5L,GAAM,OAAO,EAE3D,OAAO,ECRM,SAAS6Q,GAAK7Q,EAAKm1K,EAAWjtH,GAC3CitH,EAAYl3D,GAAGk3D,EAAWjtH,GAG1B,IAFA,IAAIwuI,GAAS,GAAY12L,IAAQuQ,GAAKvQ,GAClCrK,GAAU+gM,GAAS12L,GAAKrK,OACnBwoB,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAAS,CAC3C,IAAI86K,EAAavC,EAAQA,EAAMv4K,GAASA,EACxC,GAAIg3J,EAAUn1K,EAAIi5L,GAAaA,EAAYj5L,GAAM,OAAO,EAE1D,OAAO,ECRM,SAASi+B,GAASj+B,EAAK5E,EAAM69K,EAAWkjB,GAGrD,OAFK,GAAYn8L,KAAMA,EAAM69F,GAAO79F,KACZ,iBAAbi5K,GAAyBkjB,KAAOljB,EAAY,GAChD51K,GAAQrD,EAAK5E,EAAM69K,IAAc,ECD1C,SAAekc,GAAc,SAASn1L,EAAKw7H,EAAM5rG,GAC/C,IAAIwsK,EAAar7L,EAQjB,OAPI,EAAWy6H,GACbz6H,EAAOy6H,GAEPA,EAAO,GAAOA,GACd4gE,EAAc5gE,EAAK1sF,MAAM,GAAI,GAC7B0sF,EAAOA,EAAKA,EAAK7lI,OAAS,IAErByT,GAAIpJ,GAAK,SAASkoD,GACvB,IAAIhvD,EAAS6H,EACb,IAAK7H,EAAQ,CAIX,GAHIkjM,GAAeA,EAAYzmM,SAC7BuyD,EAAUuwI,GAAQvwI,EAASk0I,IAEd,MAAXl0I,EAAiB,OACrBhvD,EAASgvD,EAAQszE,GAEnB,OAAiB,MAAVtiI,EAAiBA,EAASA,EAAOo/C,MAAM4P,EAASt4B,SCrB5C,SAAS2iB,GAAMvyC,EAAKglB,GACjC,OAAO5b,GAAIpJ,EAAKolD,GAASpgC,ICAZ,SAASzlB,GAAMS,EAAKumB,GACjC,OAAO7B,GAAO1kB,EAAK8yH,GAAQvsG,ICAd,SAASxM,GAAI/Z,EAAKuyH,EAAUrqE,GACzC,IACI3zD,EAAO8xH,EADP11H,GAAU2gI,EAAAA,EAAU+qE,GAAgB/qE,EAAAA,EAExC,GAAgB,MAAZiB,GAAuC,iBAAZA,GAAyC,iBAAVvyH,EAAI,IAAyB,MAAPA,EAElF,IAAK,IAAIlH,EAAI,EAAGnD,GADhBqK,EAAM,GAAYA,GAAOA,EAAM69F,GAAO79F,IACTrK,OAAQmD,EAAInD,EAAQmD,IAElC,OADbvE,EAAQyL,EAAIlH,KACSvE,EAAQ5D,IAC3BA,EAAS4D,QAIbg+H,EAAWtU,GAAGsU,EAAUrqE,GACxBpxD,GAAKkJ,GAAK,SAAS2mB,EAAGxI,EAAO29B,KAC3BuqE,EAAWkM,EAAS5rG,EAAGxI,EAAO29B,IACfugJ,GAAgBh2E,KAAciL,EAAAA,GAAY3gI,KAAY2gI,EAAAA,KACnE3gI,EAASg2B,EACT01K,EAAeh2E,MAIrB,OAAO11H,ECrBM,SAASqpB,GAAIha,EAAKuyH,EAAUrqE,GACzC,IACI3zD,EAAO8xH,EADP11H,EAAS2gI,EAAAA,EAAU+qE,EAAe/qE,EAAAA,EAEtC,GAAgB,MAAZiB,GAAuC,iBAAZA,GAAyC,iBAAVvyH,EAAI,IAAyB,MAAPA,EAElF,IAAK,IAAIlH,EAAI,EAAGnD,GADhBqK,EAAM,GAAYA,GAAOA,EAAM69F,GAAO79F,IACTrK,OAAQmD,EAAInD,EAAQmD,IAElC,OADbvE,EAAQyL,EAAIlH,KACSvE,EAAQ5D,IAC3BA,EAAS4D,QAIbg+H,EAAWtU,GAAGsU,EAAUrqE,GACxBpxD,GAAKkJ,GAAK,SAAS2mB,EAAGxI,EAAO29B,KAC3BuqE,EAAWkM,EAAS5rG,EAAGxI,EAAO29B,IACfugJ,GAAgBh2E,IAAaiL,EAAAA,GAAY3gI,IAAW2gI,EAAAA,KACjE3gI,EAASg2B,EACT01K,EAAeh2E,MAIrB,OAAO11H,ECjBM,SAASwnI,GAAOn4H,EAAKmzE,EAAGgpH,GACrC,GAAS,MAALhpH,GAAagpH,EAEf,OADK,GAAYn8L,KAAMA,EAAM69F,GAAO79F,IAC7BA,EAAI0uD,GAAO1uD,EAAIrK,OAAS,IAEjC,IAAIwiI,EAAS,GAAYn4H,GAAO1N,GAAM0N,GAAO69F,GAAO79F,GAChDrK,EAAS,GAAUwiI,GACvBhlD,EAAIr5D,KAAKC,IAAID,KAAKE,IAAIm5D,EAAGx9E,GAAS,GAElC,IADA,IAAIikH,EAAOjkH,EAAS,EACXwoB,EAAQ,EAAGA,EAAQg1D,EAAGh1D,IAAS,CACtC,IAAIm+K,EAAO5tI,GAAOvwC,EAAOy7F,GACrB3kC,EAAOkjD,EAAOh6G,GAClBg6G,EAAOh6G,GAASg6G,EAAOmkE,GACvBnkE,EAAOmkE,GAAQrnH,EAEjB,OAAOkjD,EAAOrpF,MAAM,EAAGqkC,GCtBV,SAAS+kD,GAAQl4H,GAC9B,OAAOm4H,GAAOn4H,EAAKsxH,EAAAA,GCCN,SAAS2F,GAAOj3H,EAAKuyH,EAAUrqE,GAC5C,IAAI/pC,EAAQ,EAEZ,OADAo0G,EAAWtU,GAAGsU,EAAUrqE,GACjB3V,GAAMnpC,GAAIpJ,GAAK,SAASzL,EAAOywB,EAAK82B,GACzC,MAAO,CACLvnD,MAAOA,EACP4pB,MAAOA,IACPo+K,SAAUhqE,EAASh+H,EAAOywB,EAAK82B,OAEhCtrC,MAAK,SAAS/B,EAAMif,GACrB,IAAIL,EAAI5e,EAAK8tL,SACTjvK,EAAII,EAAM6uK,SACd,GAAIlvK,IAAMC,EAAG,CACX,GAAID,EAAIC,QAAW,IAAND,EAAc,OAAO,EAClC,GAAIA,EAAIC,QAAW,IAANA,EAAc,OAAQ,EAErC,OAAO7e,EAAK0P,MAAQuP,EAAMvP,SACxB,SClBS,SAASuuB,GAAMwmB,EAAUklE,GACtC,OAAO,SAASp4H,EAAKuyH,EAAUrqE,GAC7B,IAAIv3D,EAASynI,EAAY,CAAC,GAAI,IAAM,GAMpC,OALA7F,EAAWtU,GAAGsU,EAAUrqE,GACxBpxD,GAAKkJ,GAAK,SAASzL,EAAO4pB,GACxB,IAAI6G,EAAMutG,EAASh+H,EAAO4pB,EAAOne,GACjCkzD,EAASviE,EAAQ4D,EAAOywB,MAEnBr0B,GCPX,SAAe+7C,IAAM,SAAS/7C,EAAQ4D,EAAOywB,GACvCkL,EAAIv/B,EAAQq0B,GAAMr0B,EAAOq0B,GAAK1oB,KAAK/H,GAAa5D,EAAOq0B,GAAO,CAACzwB,MCFrE,GAAem4C,IAAM,SAAS/7C,EAAQ4D,EAAOywB,GAC3Cr0B,EAAOq0B,GAAOzwB,KCChB,GAAem4C,IAAM,SAAS/7C,EAAQ4D,EAAOywB,GACvCkL,EAAIv/B,EAAQq0B,GAAMr0B,EAAOq0B,KAAar0B,EAAOq0B,GAAO,KCH1D,GAAe0nB,IAAM,SAAS/7C,EAAQ4D,EAAO2pL,GAC3CvtL,EAAOutL,EAAO,EAAI,GAAG5hL,KAAK/H,MACzB,GCGH,IAAIioM,GAAc,mEACH,SAAS3kE,GAAQ73H,GAC9B,OAAKA,EACD0J,EAAQ1J,GAAa8uC,EAAMwkB,KAAKtzD,GAChC4H,EAAS5H,GAEJA,EAAI/D,MAAMugM,IAEf,GAAYx8L,GAAaoJ,GAAIpJ,EAAK24L,IAC/B96F,GAAO79F,GAPG,GCPJ,SAASs2B,GAAKt2B,GAC3B,OAAW,MAAPA,EAAoB,EACjB,GAAYA,GAAOA,EAAIrK,OAAS4a,GAAKvQ,GAAKrK,OCJpC,SAAS8mM,GAASloM,EAAOywB,EAAKhlB,GAC3C,OAAOglB,KAAOhlB,ECKhB,SAAem1L,GAAc,SAASn1L,EAAKuQ,GACzC,IAAI5f,EAAS,GAAI4hI,EAAWhiH,EAAK,GACjC,GAAW,MAAPvQ,EAAa,OAAOrP,EACpB,EAAW4hI,IACThiH,EAAK5a,OAAS,IAAG48H,EAAWqmE,GAAWrmE,EAAUhiH,EAAK,KAC1DA,EAAOinL,GAAQx3L,KAEfuyH,EAAWkqE,GACXlsL,EAAO2mB,GAAQ3mB,GAAM,GAAO,GAC5BvQ,EAAMsQ,OAAOtQ,IAEf,IAAK,IAAIlH,EAAI,EAAGnD,EAAS4a,EAAK5a,OAAQmD,EAAInD,EAAQmD,IAAK,CACrD,IAAIksB,EAAMzU,EAAKzX,GACXvE,EAAQyL,EAAIglB,GACZutG,EAASh+H,EAAOywB,EAAKhlB,KAAMrP,EAAOq0B,GAAOzwB,GAE/C,OAAO5D,KCfT,GAAewkM,GAAc,SAASn1L,EAAKuQ,GACzC,IAAwB23C,EAApBqqE,EAAWhiH,EAAK,GAUpB,OATI,EAAWgiH,IACbA,EAAWgpE,GAAOhpE,GACdhiH,EAAK5a,OAAS,IAAGuyD,EAAU33C,EAAK,MAEpCA,EAAOnH,GAAI8tB,GAAQ3mB,GAAM,GAAO,GAAQgqD,QACxCg4D,EAAW,SAASh+H,EAAOywB,GACzB,OAAQiZ,GAAS1tB,EAAMyU,KAGpB6rG,GAAK7wH,EAAKuyH,EAAUrqE,MCfd,SAASimB,GAAQvjC,EAAOuoC,EAAGgpH,GACxC,OAAOrtJ,EAAMwkB,KAAK1oB,EAAO,EAAG9wB,KAAKC,IAAI,EAAG6wB,EAAMj1C,QAAe,MAALw9E,GAAagpH,EAAQ,EAAIhpH,KCFpE,SAAS1pE,GAAMmhC,EAAOuoC,EAAGgpH,GACtC,OAAa,MAATvxJ,GAAiBA,EAAMj1C,OAAS,EAAe,MAALw9E,GAAagpH,OAAQ,EAAS,GACnE,MAALhpH,GAAagpH,EAAcvxJ,EAAM,GAC9BujC,GAAQvjC,EAAOA,EAAMj1C,OAASw9E,GCFxB,SAASpxB,GAAKnX,EAAOuoC,EAAGgpH,GACrC,OAAOrtJ,EAAMwkB,KAAK1oB,EAAY,MAALuoC,GAAagpH,EAAQ,EAAIhpH,GCFrC,SAASymC,GAAKhvE,EAAOuoC,EAAGgpH,GACrC,OAAa,MAATvxJ,GAAiBA,EAAMj1C,OAAS,EAAe,MAALw9E,GAAagpH,OAAQ,EAAS,GACnE,MAALhpH,GAAagpH,EAAcvxJ,EAAMA,EAAMj1C,OAAS,GAC7CosD,GAAKnX,EAAO9wB,KAAKC,IAAI,EAAG6wB,EAAMj1C,OAASw9E,ICJjC,SAASupH,GAAQ9xJ,GAC9B,OAAOlmB,GAAOkmB,EAAO9Y,SCAR,SAAS,GAAQ8Y,EAAOo4I,GACrC,OAAO,GAASp4I,EAAOo4I,GAAO,GCEhC,SAAemS,GAAc,SAASvqJ,EAAOmX,GAE3C,OADAA,EAAO7qB,GAAQ6qB,GAAM,GAAM,GACpBr9B,GAAOkmB,GAAO,SAASr2C,GAC5B,OAAQ0pC,GAAS8jB,EAAMxtD,SCN3B,GAAe4gM,GAAc,SAASvqJ,EAAO+xJ,GAC3C,OAAO1kE,GAAWrtF,EAAO+xJ,MCKZ,SAASC,GAAKhyJ,EAAOiyJ,EAAUtqE,EAAUrqE,GACjD0E,EAAUiwI,KACb30I,EAAUqqE,EACVA,EAAWsqE,EACXA,GAAW,GAEG,MAAZtqE,IAAkBA,EAAWtU,GAAGsU,EAAUrqE,IAG9C,IAFA,IAAIv3D,EAAS,GACTmsM,EAAO,GACFhkM,EAAI,EAAGnD,EAAS,GAAUi1C,GAAQ9xC,EAAInD,EAAQmD,IAAK,CAC1D,IAAIvE,EAAQq2C,EAAM9xC,GACdutH,EAAWkM,EAAWA,EAASh+H,EAAOuE,EAAG8xC,GAASr2C,EAClDsoM,IAAatqE,GACVz5H,GAAKgkM,IAASz2E,GAAU11H,EAAO2L,KAAK/H,GACzCuoM,EAAOz2E,GACEkM,EACJt0F,GAAS6+J,EAAMz2E,KAClBy2E,EAAKxgM,KAAK+pH,GACV11H,EAAO2L,KAAK/H,IAEJ0pC,GAASttC,EAAQ4D,IAC3B5D,EAAO2L,KAAK/H,GAGhB,OAAO5D,EC5BT,SAAewkM,GAAc,SAAS4H,GACpC,OAAOH,GAAK1lK,GAAQ6lK,GAAQ,GAAM,OCFrB,SAASC,GAAapyJ,GAGnC,IAFA,IAAIj6C,EAAS,GACTssM,EAAaxqL,UAAU9c,OAClBmD,EAAI,EAAGnD,EAAS,GAAUi1C,GAAQ9xC,EAAInD,EAAQmD,IAAK,CAC1D,IAAIsC,EAAOwvC,EAAM9xC,GACjB,IAAImlC,GAASttC,EAAQyK,GAArB,CACA,IAAI80C,EACJ,IAAKA,EAAI,EAAGA,EAAI+sJ,GACTh/J,GAASxrB,UAAUy9B,GAAI90C,GADF80C,KAGxBA,IAAM+sJ,GAAYtsM,EAAO2L,KAAKlB,IAEpC,OAAOzK,ECXM,SAASusM,GAAMtyJ,GAI5B,IAHA,IAAIj1C,EAASi1C,GAAS7wB,GAAI6wB,EAAO,IAAWj1C,QAAU,EAClDhF,EAAS+b,MAAM/W,GAEVwoB,EAAQ,EAAGA,EAAQxoB,EAAQwoB,IAClCxtB,EAAOwtB,GAASo0B,GAAM3H,EAAOzsB,GAE/B,OAAOxtB,ECRT,SAAewkM,EAAc+H,ICAd,SAAS9/G,GAAOthC,EAAM+hD,GAEnC,IADA,IAAIltG,EAAS,GACJmI,EAAI,EAAGnD,EAAS,GAAUmmD,GAAOhjD,EAAInD,EAAQmD,IAChD+kG,EACFltG,EAAOmrD,EAAKhjD,IAAM+kG,EAAO/kG,GAEzBnI,EAAOmrD,EAAKhjD,GAAG,IAAMgjD,EAAKhjD,GAAG,GAGjC,OAAOnI,ECXM,SAASqpD,GAAMpjC,EAAOvX,EAAMolD,GAC7B,MAARplD,IACFA,EAAOuX,GAAS,EAChBA,EAAQ,GAEL6tC,IACHA,EAAOplD,EAAOuX,GAAS,EAAI,GAM7B,IAHA,IAAIjhB,EAASmkB,KAAKC,IAAID,KAAK6qH,MAAMtlI,EAAOuX,GAAS6tC,GAAO,GACpDzK,EAAQttC,MAAM/W,GAETmzD,EAAM,EAAGA,EAAMnzD,EAAQmzD,IAAOlyC,GAAS6tC,EAC9CzK,EAAM8O,GAAOlyC,EAGf,OAAOojC,ECfM,SAAS+wF,GAAMngG,EAAO+1C,GACnC,GAAa,MAATA,GAAiBA,EAAQ,EAAG,MAAO,GAGvC,IAFA,IAAIhwF,EAAS,GACTmI,EAAI,EAAGnD,EAASi1C,EAAMj1C,OACnBmD,EAAInD,GACThF,EAAO2L,KAAKwyC,EAAMwkB,KAAK1oB,EAAO9xC,EAAGA,GAAK6nF,IAExC,OAAOhwF,ECRM,SAASwsM,GAAYxqE,EAAU3yH,GAC5C,OAAO2yH,EAASynE,OAASnrE,GAAEjvH,GAAK+1H,QAAU/1H,ECG7B,SAASo9L,GAAMp9L,GAS5B,OARAlJ,GAAKkhM,GAAUh4L,IAAM,SAASnN,GAC5B,IAAIkO,EAAOkuH,GAAEp8H,GAAQmN,EAAInN,GACzBo8H,GAAEz+H,UAAUqC,GAAQ,WAClB,IAAI+8B,EAAO,CAAClhC,KAAKioM,UAEjB,OADAr6L,EAAKg8C,MAAM1oB,EAAMnd,WACV0qL,GAAYzuM,KAAMqS,EAAKu3C,MAAM22E,GAAGr/F,QAGpCq/F,GCVTn4H,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,YAAY,SAASjE,GAC9E,IAAIqG,EAAS+6L,EAAWphM,GACxBo8H,GAAEz+H,UAAUqC,GAAQ,WAClB,IAAImN,EAAMtR,KAAKioM,SAOf,OANW,MAAP32L,IACF9G,EAAOo/C,MAAMt4C,EAAKyS,WACJ,UAAT5f,GAA6B,WAATA,GAAqC,IAAfmN,EAAIrK,eAC1CqK,EAAI,IAGRm9L,GAAYzuM,KAAMsR,OAK7BlJ,GAAK,CAAC,SAAU,OAAQ,UAAU,SAASjE,GACzC,IAAIqG,EAAS+6L,EAAWphM,GACxBo8H,GAAEz+H,UAAUqC,GAAQ,WAClB,IAAImN,EAAMtR,KAAKioM,SAEf,OADW,MAAP32L,IAAaA,EAAM9G,EAAOo/C,MAAMt4C,EAAKyS,YAClC0qL,GAAYzuM,KAAMsR,OAI7B,YCRA,IAAI,GAAIo9L,GAAM,GAEd,GAAEnuE,EAAI,GAEN,cCzBIouE,EAA2B,GAG/B,SAAS9L,EAAoB+L,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqB9lM,IAAjB+lM,EACH,OAAOA,EAAanvM,QAGrB,IAAIC,EAASgvM,EAAyBC,GAAY,CAGjDlvM,QAAS,IAOV,OAHAovM,EAAoBF,GAAUhqI,KAAKjlE,EAAOD,QAASC,EAAQA,EAAOD,QAASmjM,GAGpEljM,EAAOD,QCpBfmjM,EAAoBp+G,EAAK9kF,IACxB,IAAIovM,EAASpvM,GAAUA,EAAOqvM,WAC7B,IAAOrvM,EAAiB,QACxB,IAAM,EAEP,OADAkjM,EAAoBt4J,EAAEwkK,EAAQ,CAAEpwK,EAAGowK,IAC5BA,GCLRlM,EAAoBt4J,EAAI,CAAC7qC,EAASiS,KACjC,IAAI,IAAI2kB,KAAO3kB,EACXkxL,EAAoBtgM,EAAEoP,EAAY2kB,KAASusK,EAAoBtgM,EAAE7C,EAAS42B,IAC5E1U,OAAOoyG,eAAet0H,EAAS42B,EAAK,CAAE4nK,YAAY,EAAM18L,IAAKmQ,EAAW2kB,MCJ3EusK,EAAoBl4H,EAAI,WACvB,GAA0B,iBAAf7qE,WAAyB,OAAOA,WAC3C,IACC,OAAOE,MAAQ,IAAI0iM,SAAS,cAAb,GACd,MAAOx9L,GACR,GAAsB,iBAAXnF,OAAqB,OAAOA,QALjB,GCAxB8iM,EAAoBtgM,EAAI,CAAC+O,EAAKilB,IAAU3U,OAAO9f,UAAU6/B,eAAeijC,KAAKtzD,EAAKilB,GCClFssK,EAAoB/kK,EAAKp+B,IACH,oBAAXi+L,QAA0BA,OAAOM,aAC1Cr8K,OAAOoyG,eAAet0H,EAASi+L,OAAOM,YAAa,CAAEp4L,MAAO,WAE7D+b,OAAOoyG,eAAet0H,EAAS,aAAc,CAAEmG,OAAO,K,iICLvD,SAEE1F,YAAa,OAMbuU,WAAY,GAMZiC,MAAO,GAMPs4L,YAAa,EAKbC,YAAa,KAGbC,gBAAgB,EAGhB/9J,aAAa,EAGbqH,qBAAqB,EAIrB22J,YAAY,EAGZhtM,OAAQ,QAGRC,MAAO,OAKPk3D,IAAK,CAAC,UAAW,SAMjBlzC,QAAS,ohBA+BTE,aAAc,kDAIdD,UAAW,GAGX+oL,eAAgB,cAGhB54J,YAAa,EAOb1I,YAAa,EAGb2yE,kBAAmB,EAInB4uF,eAAgB,YAGhB5wI,YAAa,MAGbC,UAAW,MAGXy/B,mBAAoB,EAGpBmxG,UAAU,EAGVzvE,UAAW,EAGX0vE,kBAAmB,EAGnBC,SAAU,GAGVC,QAAS,GAOT5uF,iBAAkB,EAKlB6uF,cAAe,EAUfzyK,YAAa,EAOb0yK,SAAU,EAQVp+J,WAAY,GAGZq+J,SAAU,qFAGV57F,MAAO,CACLhvG,MACE,qLACF8hE,KAAM,kMACN6vC,KAAM,4GACNniB,MAAO,uFACPnH,OACE,oJACF8zD,KAAM,6LACN0uD,QACE,0IAIJjsM,GAAI,GAGJksM,KAAM,GAGN7sE,YAAa,GAGbj7C,aAAc,GAGdtwE,OAAQ,GAGR61B,OAAQ,GAGRo9C,eAAgB,GAGhBolH,eAAgB,GAGhBznH,cAAe,GAGf9+C,MAAO,GAGPwmK,YAAa,GAGbxiK,OAAQ,GAGRxT,SAAU,GAGVi2K,YAAa,GAGbxmH,gBAAiB,GAGjBT,cAAe,GAGfa,aAAc,GAGdzB,aAAc,GAGdoC,aAAc,GAGdvgD,aAAc,OAGd5L,iBAAkB,EAGlB6xK,YAAa,EAIb7wE,UAAU,G,miBC/PL,IAAM8wE,EAAb,iHAAgCvuM,EAAAA,GAEXwuM,EAAAA,SAAAA,I,+HACnB,SAAe7pL,GAAW,WACxB,OAAOxmB,KAAKg2B,QAAO,SAAA5T,GAAC,OAAI,EAAKtE,aAAasE,KAAOoE,KAAW,K,0BAG9D,SAAaA,EAAW5d,GAAM,WACtB4Y,IAASxG,EAAAA,EAAAA,SAAQwL,GAAaA,EAAY,CAACA,IAC9CwP,QAAO,SAAAntB,GAAC,OAAK,EAAKynM,aAAaznM,MAC/B6R,KAAI,SAAA8L,GAAS,MAAK,CAAEA,UAAAA,MACvB,OAAOxmB,KAAK4N,KAAK4T,EAAO5Y,K,0BAG1B,SAAa3F,GACX,OAAOA,EAAMzB,IAAI,e,0BAGnB,SAAaglB,GACX,IAAMvjB,EAAQjD,KAAKuwM,eAAe/pL,GAClC,OAAOvjB,GAASjD,KAAKuvC,SAAStsC,K,2BAGhC,WACE,IAAMioH,EAAOlrH,KAAKkrH,OAClB,OAAOA,GAAQlrH,KAAK8d,aAAaotG,K,2BAGnC,WAAgB,WACd,OAAOlrH,KAAK0a,KAAI,SAAA0H,GAAC,OAAI,EAAKtE,aAAasE,MAAI4T,QAAO,SAAA5rB,GAAC,OAAIA,O,6BAGzD,SAAgBoc,EAAW5d,GAAM,WACzB2Y,IAAYvG,EAAAA,EAAAA,SAAQwL,GAAaA,EAAY,CAACA,IAAY9L,KAAI,SAAA7R,GAAC,OAAI,EAAK0nM,eAAe1nM,MAC7F,OAAO7I,KAAKkD,OAAOqe,EAAU3Y,O,EAhCZynM,CAAiB7qM,EAAAA,YAoCtC6qM,EAASvuM,UAAUmB,MAAQmtM,E,6gCCjC3BznK,IAAAA,EAAaD,EAAAA,QAEb,IAyBI8nK,EACAC,EA1BEC,EAAO,CACX13K,EAAQ,KACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,OC9BV,SAAe,GAAW,IAAR0P,EAAQ,EAARA,EAChB,GAAIA,GAAKA,EAAE5mC,WAA8C,WAAjC4mC,EAAE5mC,UAAUkH,YAAY7E,KAAmB,CACjE,IAAM0mB,EAAK6d,EAAE7d,GAIbA,EAAGhjB,KAAO,WACR,OAAO7H,KAAK+W,IAAI,UAAW,SAG7B8T,EAAG+jB,KAAO,WACR,OAAO5uC,KAAK+W,IAAI,UAAW,UAG7B8T,EAAG+O,MAAQ,WACT,IAAM/1B,EAAK7D,KAAKwB,IAAI,GAEpB,OADAqC,GAAMA,EAAG+1B,QACF55B,MAoCT6qB,EAAGxnB,KAAO,SAAUiI,EAAIqqC,GACtB,OAAO31C,KAAK2P,GAAGrE,EAAIqqC,IAGrB9qB,EAAG+hB,OAAS,SAAUthC,EAAIqqC,GACxB,IAAIx8B,EAAAA,EAAAA,UAAS7N,GAAK,CAChB,IAAK,IAAInH,KAAQmH,EACfA,EAAGq2B,eAAex9B,IAASnE,KAAKyV,IAAItR,EAAMmH,EAAGnH,IAG/C,OAAOnE,KAEP,OAAOA,KAAKyV,IAAInK,EAAIqqC,IAIxB9qB,EAAGxlB,MAAQ,SAAUswC,GACnB,OAAOA,EAAI31C,KAAK2P,GAAG,QAASgmC,GAAK31C,KAAK0E,QAAQ,UAGhDmmB,EAAGy5B,OAAS,SAAU3O,GACpB,OAAOA,EAAI31C,KAAK2P,GAAG,SAAUgmC,GAAK31C,KAAK0E,QAAQ,WAGjDmmB,EAAG23D,QAAU,SAAU7sC,GACrB,OAAOA,EAAI31C,KAAK2P,GAAG,UAAWgmC,GAAK31C,KAAK0E,QAAQ,YAGlDmmB,EAAGs/B,SAAW,SAAU9rB,EAAUj5B,EAAQ0E,EAAMqlF,GAK9C,OAJKA,IACHA,EAAUrlF,GAGL9J,KAAK2P,GAAGvK,EAAQi5B,GAAU,SAAUn5B,GACzCA,EAAE4E,KAAOA,EACTqlF,EAAQjqF,OAIZ2lB,EAAGzH,WAAa,WACd,IAAIvf,EAAK7D,KAAKwB,IAAI,GAEd+iB,GADJ1gB,EAAoB,GAAfA,EAAG6lD,SAAgB7lD,EAAG8a,YAAc9a,aACjB8sM,OAAS9sM,EAAK,KACtC,OAAO0gB,EAAMA,EAAImP,YAAc7vB,EAAGuf,YAAc,GAGlDyH,EAAGlkB,UAAY,WACb,IAAI9C,EAAK7D,KAAKwB,IAAI,GAEd+iB,GADJ1gB,EAAoB,GAAfA,EAAG6lD,SAAgB7lD,EAAG8a,YAAc9a,aACjB8sM,OAAS9sM,EAAK,KACtC,OAAO0gB,EAAMA,EAAIiP,YAAc3vB,EAAG8C,WAAa,GAGjD,IAAMimB,EAAS8b,EAAE5mC,UAAU8qB,OAC3B/B,EAAG+B,OAAS,SAAU+lI,GACpB,IAAI3yI,EAAKD,EAcT,OAZI4yI,IACF3yI,EAAM2yI,EAAO3yI,IACbD,EAAO4yI,EAAO5yI,WAGE,IAAPC,GACThgB,KAAK+W,IAAI,MAAT,UAAmBiJ,EAAnB,YAEiB,IAARD,GACT/f,KAAK+W,IAAI,OAAT,UAAoBgJ,EAApB,OAGK6M,EAAOg4C,KAAK5kE,OAGrB0oC,EAAEhuB,IAAM,SAAUsH,EAAOtY,GAGvB,IAFA,IAAMknM,EAAK,GAEFxmM,EAAI,EAAGA,EAAI4X,EAAM/a,OAAQmD,IAChCwmM,EAAGhjM,KAAKlE,EAAIsY,EAAM5X,GAAIA,IAGxB,OAAOwmM,GAGT,IAAMj8L,EAAUqJ,MAAMlc,UAAU6S,QAEhC+zB,EAAEw2C,QAAU,SAAU91E,EAAK6zD,EAAK7yD,GAC9B,OAAc,MAAP6yD,GAAe,EAAItoD,EAAQiwD,KAAK3H,EAAK7zD,EAAKgB,IAGnDs+B,EAAEm3C,MAAQ,SAAUt+E,EAAKqa,GACvB,KAAM5b,gBAAgB0oC,EAAEm3C,OACtB,OAAO,IAAIn3C,EAAEm3C,MAAMt+E,EAAKqa,GAG1B5b,KAAKsB,KAAOC,EACZvB,KAAK8/E,mBAAqB,kBAAM,KD/GtC+wH,CAAS,CACPloK,SAAUA,IACVD,EAAGC,IAAAA,IAGL,IAAMmoK,EAAO,CACXjsK,MAAOv7B,QAAQiwD,IACf+1C,KAAMhmG,QAAQgmG,KACdyhG,QAASznM,QAAQyhC,KACjBxhC,MAAOD,QAAQC,OAGIynM,EAAAA,SAAAA,I,6HACnB,WACE,MAAO,CACLC,QAAS,EACT78L,SAAU,EACV88L,UAAW,KACX5wI,MAAO,EACPpN,iBAAkB,KAClBi+I,cAAe,KACfv8K,aAAc,EACdw8K,UAAW,GACXC,QAAS,GACTC,OAAQ,GACRl9G,OAAQ,GACR52E,OAAQ,M,wBAIZ,WAAsB,WAAX2I,EAAW,uDAAJ,GAChBnmB,KAAK0C,OAASyjB,EACd,IAAQzjB,EAAW1C,KAAX0C,OACR1C,KAAK2D,IAAI,SAAUjB,GACnB1C,KAAK2D,IAAI,UAAW,IACpB3D,KAAK2D,IAAI,SAAU,IACnB3D,KAAK2D,IAAI,YAAa,IACtB3D,KAAK2D,IAAI,WAAY,IAAI0sM,GACzBrwM,KAAK2D,IAAI,QAASjB,EAAOktM,UACzB,IAAQ/rM,EAAYnB,EAAZmB,GAAI01D,EAAQ72D,EAAR62D,IACNg4I,GAAgB,IAARh4I,GAAe13C,EAAAA,EAAAA,MAAKivL,IAAQ91L,EAAAA,EAAAA,SAAQu+C,GAAOA,EAAM,IAC/DriD,EAAAA,EAAAA,SAAQlX,KAAM,uBAEV6D,GAAMnB,EAAOusM,cACfvsM,EAAOgS,WAAa7Q,EAAGC,WAGzB9D,KAAKwxM,UAAY3tM,GACbslI,EAAAA,EAAAA,SAAQtlI,EAAGwP,YAAY+oC,QAAO,SAACjzC,EAAK6+B,GAElC,OADA7+B,EAAI6+B,EAAK27B,UAAY37B,EAAKm2D,UACnBh1F,IACN,IACH,GAGAzG,EAAOgS,aAAehS,EAAO+uM,cAC/B/uM,EAAO+uM,YAAc,CAAEt7G,MAAO,CAAC,CAAE3vE,UAAW9jB,EAAOgS,eAIrDg8L,EAAKjkM,SAAQ,SAAAtI,GAAI,OAAI,EAAKutM,WAAWvtM,MACrCnE,KAAK2P,GAAG,0BAA2B3P,KAAKkzD,iBAAkBlzD,MAC1DA,KAAK2P,GAAG,sBAAuB3P,KAAK2xM,cAAe3xM,MACnDA,KAAK2P,GAAG,sCAAuC3P,KAAK4xM,YAAa5xM,MACjEuxM,EAAM9kM,SAAQ,SAAAvH,GAAC,OAAI,EAAK2sM,UAAU3sM,MAGlC,CAAC,CAAE4nG,KAAM,2BAA4BD,GAAI,sBAAuBpgG,SAAQ,SAAAa,GACtE,IAAMwkM,EAAYxkM,EAAMw/F,KAClBilG,EAAUzkM,EAAMu/F,GACtB,EAAK7pG,SAAS,EAAM8uM,GAAW,WAAa,2BAAT5wK,EAAS,yBAATA,EAAS,gBAC1C,EAAKx8B,QAAL,QAAI,CAASqtM,GAAT,OAAqB7wK,IACzB,EAAKjB,WAAL,qBAA8B6xK,EAA9B,6CAA4EC,EAA5E,c,yBAKN,WACM/xM,KAAKwB,IAAI,cAAgBxB,KAAKwB,IAAI,iBAAmBxB,KAAKwB,IAAI,UAChExB,KAAK2D,IAAI,SAAS,K,0BAItB,WACE,OAAO3D,KAAK0C,OAAOmB,K,uBAGrB,SAAUyJ,GACRtN,KAAKgD,SAAShD,KAAd,cAA2BsN,GAASwjM,EAAKxjM,M,uBAS3C,SAAUipB,GACR,IAAM7zB,EAAS1C,KAAK0C,OACpB,OAAOoiB,EAAAA,EAAAA,aAAYyR,GAAQ7zB,EAASA,EAAO6zB,K,yBAO7C,WAAc,WAEZv2B,KAAKwB,IAAI,UAAUiL,SAAQ,SAAAg1D,GAAG,OAAIA,EAAI1vD,YAUtCkS,YAAU,iBAAC,yFACHirL,EAAc,EAAKh/L,UAAU,gBAD1B,gBAIP,EAAK8hM,SAAS9C,GAJP,2BAKE,EAAK1tM,IAAI,kBAAkBuqG,cAL7B,0CAOC,EAAK96F,OAPN,yDASL,EAAK05C,SAAL,MATK,QANO,EAAKnpD,IAAI,WACjBiL,SAAQ,SAAAg1D,GAAG,OAAIA,EAAI7gB,UAAY6gB,EAAI7gB,SAAS,MACpD,EAAKj9C,IAAI,YAAa,GAIb,2DAiBX,IAAMs6C,EAAU,IAAI+yJ,EAAY,CAC9B7B,gBAAgB,EAChBvkH,gBAAgB,EAChBs4C,aAAa,IAGf,CAAC,cAAe,UAAUz2H,SAAQ,SAAA6pB,GAAG,OAAI2nB,EAAQz8C,IAAI80B,GAAKvkB,YAC1D/R,KAAK2D,IAAI,UAAWs6C,K,2BAQtB,WAAgB,WACRg0J,EAAMjyM,KAAKwB,IAAI,kBACfwkI,EAAUhmI,KAAKkyM,gBACrBzB,GAAa3kL,aAAa2kL,GAC1BA,EAAYxsL,YAAW,kBAAM,EAAKvf,QAAQ,aAEtC1E,KAAK0C,OAAOysM,iBACdpvM,OAAOoyM,eAAiBnsE,EAAU,SAAA9gI,GAAC,OAAI,GAAI,MAGzC+sM,EAAI3nG,cAAgB07B,GAAWisE,EAAIznG,sBACrCxqG,KAAK+Q,QAAQhG,OAAM,SAAA1B,GAAG,OAAI,EAAKshD,SAASthD,Q,wBAU5C,SAAW+oM,GACT,IAAQ1vM,EAAW1C,KAAX0C,OAEF2vM,EAAM,IADGD,EAAWpxK,SAAWoxK,GAE/BjuM,EAAOkuM,EAAIluM,KAAKwrD,OAAO,GAAGrW,cAAgB+4J,EAAIluM,KAAKi8C,MAAM,GACzDkyJ,GAAaxtL,EAAAA,EAAAA,aAAYpiB,EAAOyB,IAAwBzB,EAAO2vM,EAAIluM,MAA1BzB,EAAOyB,GAChDouM,GAAoB,IAAdD,EAAqB,GAAKA,GAAa,GAOnD,GANAC,EAAI1vM,aAAeH,EAAOG,cAAgB,IAErCiiB,EAAAA,EAAAA,aAAYwtL,IAAeA,IAC9BC,EAAIpoG,SAAW,GAGbkoG,EAAIpjM,YAAcojM,EAAIthM,OAASshM,EAAIphM,KAAM,CAE3C,IAAM2qC,EAAM,CAAC,gBAAiB,eAAejnC,QAAQxQ,IAAS,EAAI,UAAY,OAC9EnE,KAAKwB,IAAI,aAAao6C,GAAKy2J,GAU7B,OAPAE,EAAIzvM,GAAK9C,KACTqyM,EAAIjvM,KAAJ,KAAcmvM,KAGbF,EAAIzqG,SAAW5nG,KAAK2D,IAAI0uM,EAAIluM,KAAMkuM,GACnCA,EAAItgM,QAAU/R,KAAKwB,IAAI,UAAUoM,KAAKykM,GACtCryM,KAAKwB,IAAI,WAAWoM,KAAKykM,GAClBryM,O,kBAST,SAAKyL,GAAmB,IAAX7C,EAAW,uDAAJ,GACd5I,KAAKwyM,YACPxyM,KAAKqhC,WAAWz4B,GAChB5I,KAAKwyM,UAAY,GAEnBxyM,KAAK2D,IAAI,SAAU8H,K,uBAGrB,WACE,OAAOzL,KAAKwB,IAAI,Y,2BAWlB,SAAcyB,EAAOmG,GAAe,WAAVyjB,EAAU,uDAAJ,GAE1B7sB,KAAKyyM,QAAU5lL,EAAI+I,WAAa/I,EAAIgJ,SAAWhJ,EAAIiJ,aAAe91B,KAAKwB,IAAI,WAI/EgvM,GAAiB1kL,aAAa0kL,GAC9BA,EAAgBvsL,YAAW,WACzB,IAAMmkF,EAAO,EAAK8pG,iBAAmB,EACnBtpM,GAASikB,EAAnB9T,OAAR,OAA2B8T,EAA3B,IACA,EAAKlpB,IAAI,eAAgBykG,EAAO,EAAGx/F,KAClC,M,uBAGL,SAAUA,GACR5I,KAAK0yM,cAAc,EAAG,EAAG9pM,K,8BAU3B,SAAiB6C,EAAQ+a,EAAWhkB,GAClC,IAAM+a,EAAOvd,KAAK0hB,SAAS,oBAC3BnE,GAAQvd,KAAK0E,QAAQ,sBAAuB6Y,EAAM/a,GAClDgkB,GAAaxmB,KAAK0E,QAAQ,oBAAqB8hB,EAAWhkB,K,yBAQ5D,WACE,OAAOxC,KAAKwB,IAAI,YAAYmxM,kB,4BAQ9B,WACE,OAAO3yM,KAAKwB,IAAI,YAAYoxM,kB,yBAS9B,SAAY/uM,GAAe,WAAX+E,EAAW,uDAAJ,GACb0E,EAAU1E,EAAV0E,MACF2d,EAAU3d,IAAUA,EAAM2d,SAAW3d,EAAM4d,SACjD,EAAqB5d,GAAS,GAAtBo1E,EAAR,EAAQA,SACFmwH,GAAW73L,EAAAA,EAAAA,SAAQnX,GACnBka,GAAO80L,EAAWhvM,EAAK,CAACA,IAAK6W,KAAI,SAAA7W,GAAE,OAAI4e,EAAAA,EAAAA,UAAS5e,EAAI6kC,EAAAA,YACpDt0B,EAAWpU,KAAK6/B,iBAChBizK,EAAS9yM,KAAKkQ,UAAU,qBAK9B2iM,GAAY7yM,KAAKsjG,eAAelvF,EAAS4hB,QAAO,SAAA5T,GAAC,QAAKmtB,EAAAA,EAAAA,UAASxxB,EAAKqE,OAEpErE,EAAItR,SAAQ,SAAA5I,GACV,IAAIZ,GAAQwf,EAAAA,EAAAA,UAAS5e,GAErB,GAAIZ,IACF,EAAKyB,QAAQ,0BAA2BzB,EAAO2F,IAG1C3F,EAAMzB,IAAI,eAAiBoH,EAAKk5B,OAAO,CAC1C,IAAIl5B,EAAK0pC,SAKP,OAHA,IADA,IAAI79B,EAASxR,EAAMwR,SACZA,IAAWA,EAAOjT,IAAI,eAAeiT,EAASA,EAAOA,SAC5DxR,EAAQwR,EAQd,GAAIwW,GAAW6nL,EACb,OAAO,EAAKC,eAAe9vM,GACtB,GAAIy/E,GAAYowH,EAAQ,CAC7B,EAAKz6E,eAAe,EAAK72H,IAAI,UAAUgjB,aACvC,IAEI8G,EAAKD,EAFH5mB,EAAOxB,EAAMR,WACbgtB,EAAQxsB,EAAMwsB,QAkBpB,GAdA,EAAKoQ,iBAAiBpzB,SAAQ,SAAA6oB,GAC5B,IAAM09K,EAAU19K,EAAI7yB,WACdwwM,EAAW39K,EAAI7F,QACjBujL,IAAYvuM,IACVwuM,EAAWxjL,EAEbnE,GAAMxG,EAAAA,EAAAA,aAAYwG,GAAO2nL,EAAW7nL,KAAKC,IAAIC,EAAK2nL,GACzCA,EAAWxjL,IAEpBpE,GAAMvG,EAAAA,EAAAA,aAAYuG,GAAO4nL,EAAW7nL,KAAKE,IAAID,EAAK4nL,UAKnDnuL,EAAAA,EAAAA,aAAYwG,GACf,KAAOA,IAAQmE,GACb,EAAK02E,YAAY1hG,EAAKqC,GAAGwkB,IACzBA,IAIJ,KAAKxG,EAAAA,EAAAA,aAAYuG,GACf,KAAOA,IAAQoE,GACb,EAAK02E,YAAY1hG,EAAKqC,GAAGukB,IACzBA,IAIJ,OAAO,EAAK86E,YAAYljG,IAGzB4vM,GAAY,EAAKvvG,eAAelvF,EAAS4hB,QAAO,SAAA5T,GAAC,OAAIA,IAAMnf,MAC5D,EAAKkjG,YAAYljG,EAAO2F,GAChB3F,O,yBAUZ,SAAYY,GAAe,WAAX+E,EAAW,uDAAJ,GACf3F,GAAQwf,EAAAA,EAAAA,UAAS5e,EAAI6kC,EAAAA,SACrBp4B,GAAS0K,EAAAA,EAAAA,SAAQ/X,GAASA,EAAQ,CAACA,GAEzCqN,EAAO7D,SAAQ,SAAAxJ,GACb,IAAIA,GAAUA,EAAMzB,IAAI,cAAxB,CACA,IAAM4S,EAAW,EAAK5S,IAAI,YAC1BoH,EAAKysF,aAAe,EAAKiO,eAAergG,EAAO2F,GAC/CwL,EAASm/C,aAAatwD,EAAO2F,GAC7B3F,GAAS,EAAKyB,QAAQ,mBAAoBzB,EAAO2F,S,4BAUrD,SAAe/E,GAAe,IAAX+E,EAAW,uDAAJ,GACxB5I,KAAKwB,IAAI,YAAY0xM,iBAAgBzwL,EAAAA,EAAAA,UAAS5e,EAAI6kC,EAAAA,SAAI9/B,K,4BASxD,SAAe/E,GAAe,WAAX+E,EAAW,uDAAJ,GAClB3F,GAAQwf,EAAAA,EAAAA,UAAS5e,EAAI6kC,EAAAA,SACrBp4B,GAAS0K,EAAAA,EAAAA,SAAQ/X,GAASA,EAAQ,CAACA,GAEzCqN,EAAO7D,SAAQ,SAAAxJ,GACT,EAAKzB,IAAI,YAAY8uM,aAAartM,GACpC,EAAKqgG,eAAergG,EAAO2F,GAE3B,EAAKu9F,YAAYljG,EAAO2F,Q,wBAW9B,SAAW/E,GAAe,IAAX+E,EAAW,uDAAJ,GACpB,IAAK/E,EAAI,OAAO7D,KAAK2D,IAAI,mBAAoB,IAE7C,IAAM2H,EAAK,kBACPrI,GAAQwf,EAAAA,EAAAA,UAAS5e,GAErB,GAAKZ,EAAL,CAMA,GAJA2F,EAAKysF,aAAer1F,KAAK2D,IAAI,mBAAoB,IACjD3D,KAAK0E,QAAL,UAAgB4G,EAAhB,WAA6BrI,EAAO2F,IAG/B3F,EAAMzB,IAAI,aAAc,CAC3B,IAAIoH,EAAK0pC,UAAa1pC,EAAKk5B,MAKzB,OAHA,IADA,IAAIrtB,EAASxR,GAASA,EAAMwR,SACrBA,IAAWA,EAAOjT,IAAI,cAAciT,EAASA,EAAOA,SAC3DxR,EAAQwR,EAMP7L,EAAKk5B,QACR9hC,KAAK2D,IAAI,mBAAoBV,EAAO2F,GACpC5I,KAAK0E,QAAQ4G,EAAIrI,EAAO2F,O,wBAI5B,WACE,OAAO5I,KAAKwB,IAAI,sB,2BAUlB,SAAckT,GAAsB,IAAVmY,EAAU,uDAAJ,GAC9B,OAAO7sB,KAAKwB,IAAI,iBAAiBgyD,cAAc9+C,EAAYmY,K,2BAQ7D,WACE,IAAIlS,EAAM3a,KAAKwB,IAAI,iBACfkoC,EAAK1pC,KAAKwB,IAAI,eAElB,GAAKmZ,GAAQ+uB,EAAb,CAEA,IAAI7lB,EAAMlJ,EAAI24C,gBACd,OAAO5pB,EAAGxN,QAAQrY,EAAK,W,sBAUzB,SAASlN,GAAiB,IAAVkW,EAAU,uDAAJ,GACdmQ,EAAOh9B,KAAKwB,IAAI,eAGtB,OAFAw7B,EAAKkF,MAAMrV,GACXmQ,EAAKntB,SAAShJ,IAAI8P,EAAOkW,GAClB7sB,O,sBAST,SAAS2W,GAAkB,IAAX/N,EAAW,uDAAJ,GACfO,EAAMnJ,KAAK8f,WAAWjZ,IAAI8P,EAAO/N,GACvC,OAAOoS,EAAAA,EAAAA,SAAQ7R,GAAOA,EAAM,CAACA,K,sBAQ/B,WACE,OAAOnJ,KAAKwB,IAAI,eAAeqO,W,sBAQjC,SAAShK,GAEP,OADA7F,KAAK2D,IAAI,QAASkC,GACX7F,O,sBAOT,WACE,OAAOA,KAAKwB,IAAI,UAAY,K,qBAS9B,WAAmB,IAAXoH,EAAW,uDAAJ,GACLlG,EAAW1C,KAAX0C,OACA+sM,EAAa/sM,EAAb+sM,SACF10K,EAAKr4B,EAAO6sM,SAAWvvM,KAAKmzM,MAAMvqM,GAAQ,GAC1C+R,EAAM/R,EAAK4d,WAAaxmB,KAAKwB,IAAI,iBAAiBsc,eACpD5Z,EAAOyW,EACP3a,KAAKwB,IAAI,eAAe06B,QAAQvhB,EAAK,OAArC,OACK80L,GACA7mM,IAEL,GAEJ,OADA1E,GAAQ62B,EAAK,WAAH,OAAcA,EAAd,cAA8B,K,oBAU1C,WAAkB,IAAXnyB,EAAW,uDAAJ,GACNlG,EAAS1C,KAAK0C,OACZgtM,EAAYhtM,EAAZgtM,QACF0D,EAAYxqM,EAAKyqM,eACjB/0K,GAAoBxZ,EAAAA,EAAAA,aAAYlc,EAAK01B,kBAA4C57B,EAAO47B,iBAA/B11B,EAAK01B,iBAC9DtB,EAAOh9B,KAAKwB,IAAI,eAChBqiB,EAAMjb,EAAK4d,WAAaxmB,KAAKwB,IAAI,iBAAiBsc,eAClDw1L,EAAWF,EAAkC,GAAtB1wM,EAAO6jB,aAC9BxP,EACJ8M,GACA7jB,KAAKwB,IAAI,eAAe06B,QAAQrY,EAAK,MAArC,KACEmZ,KAAAA,EACAsB,iBAAAA,GACGoxK,GACA9mM,IAEP,OAAOib,EAAOjb,EAAKe,KAAOoN,EAAMu8L,EAAUv8L,EAAO,K,mBAQnD,WAAiB,IAAXnO,EAAW,uDAAJ,GACPib,EAAMjb,EAAK4d,WAAaxmB,KAAKwB,IAAI,iBAAiBqT,aACtD,OAAOgP,EAAM7jB,KAAKwB,IAAI,eAAe06B,QAAQrY,EAAK,MAAMpd,OAAS,K,wCAOnE,WAAYjE,GAAZ,8EACQsH,EAAO9J,KAAKuzM,YADpB,SAEQvzM,KAAKwB,IAAI,kBAAkBuP,MAAMjH,EAAMtH,GAF/C,cAGExC,KAAKwzM,kBAHP,kBAIS1pM,GAJT,gD,qFAWA,WAAWtH,GAAX,uFACuBxC,KAAKwB,IAAI,kBAAkByP,KAAKzO,GADvD,cACQP,EADR,OAEEjC,KAAKgyM,SAAS/vM,GAFhB,kBAGSA,GAHT,gD,qEAMA,WACE,IAAIA,EAAS,GAEPwxM,EAAazzM,KAAKsqD,aAMxB,OALAmpJ,GAAcA,EAAW/uM,QAAQ,eAAgB,CAAEmxB,SAAS,IAE5D71B,KAAKwB,IAAI,aAAaiL,SAAQ,SAAA0F,GAC5BlQ,EAAS,EAAH,KAAQA,GAAWkQ,EAAEpB,MAAM,OAE5BnH,KAAKC,MAAMD,KAAKqkB,UAAUhsB,M,sBAGnC,WAAoB,IAAX6H,EAAW,uDAAJ,GAEd,OADA9J,KAAKwB,IAAI,aAAaiL,SAAQ,SAAA9M,GAAM,OAAIA,EAAOsR,KAAKnH,MAC7CA,I,4BAQT,WACE,IAAI3F,EAAOnE,KAAKwB,IAAI,UACpB,OAAOxB,KAAKwB,IAAI,iBAAiBA,IAAI2C,K,wBAQvC,WAAsB,IAAXyE,EAAW,uDAAJ,GACZ04B,EAAUthC,KAAKwB,IAAI,YAAYA,IAAIxB,KAAK0C,OAAO2sM,gBAC9C/tK,IAAWthC,KAAK0zM,iBACrBpyK,EAAQ3wB,KAAK3Q,KAAMA,KAAM4I,GACzB04B,EAAQ5wB,IAAI1Q,KAAMA,KAAM4I,GACxB5I,KAAK0zM,eAAiB,K,yBAQxB,WAAuB,IAAX9qM,EAAW,uDAAJ,GACXqxB,EAAWj6B,KAAKwB,IAAI,YACpB8/B,EAAUrH,EAASz4B,IAAIxB,KAAK0C,OAAO2sM,gBACpC/tK,GAAYthC,KAAK0zM,iBACtBpyK,EAAQ3wB,KAAK3Q,KAAMA,KAAM4I,GACzB5I,KAAK0zM,eAAiB,K,2BAOxB,WAAyB,IAAX9qM,EAAW,uDAAJ,GACnB5I,KAAK2D,IAAI,eAAgB,MACzB3D,KAAK2D,IAAI,eAAgB3D,KAAKwB,IAAI,UAAU+uB,aAC5C3nB,EAAKiY,OAAS7gB,KAAK0E,QAAQ,wB,4BAS7B,SAAe6f,IACLA,GAAOxkB,QACbqrD,eAAeu2C,oB,6BAOnB,WACE,IAAMj/F,EAAS1C,KAAK0C,OACd8a,EAASxd,KAAKyd,iBACdihC,EAAYh8C,EAAO4sM,eACnB9lH,EAAU9mF,EAAOg+G,kBACjBr+G,EAAQmb,GAAUA,EAAOhc,IAAI,cACnC,OAAOgc,GAAUnb,IAAUmnF,EAApB,WAAkC9qC,EAAlC,aAAgDr8C,EAAhD,KAA2D,K,wBAOpE,WACE,OAAOrC,KAAKwB,IAAI,iBAAiBqT,e,6BAGnC,SAAgBiM,GACd,OAAO9gB,KAAK2D,IAAI,eAAgBmd,K,6BAGlC,WACE,OAAO9gB,KAAKwB,IAAI,kB,kCAGlB,WACE,OAAQxB,KAAKm0B,mBAAqB,IAAIlxB,Q,qBAGxC,SAAQ4wC,GAEN,OADc7zC,KAAKkQ,UAAU,UAAY,IAC5B2jC,IAAS,K,2BAQxB,WACE,OAAO7zC,KAAKwB,IAAI,kB,6BAGlB,WACE,OAAOxB,KAAK2D,IAAI,eAAgB,K,4BAGlC,WACE,OAAO3D,KAAKwB,IAAI,UAAU0jB,mB,+BAG5B,WACE,OAAOllB,KAAKwB,IAAI,UAAUumB,sB,yBAG5B,SAAYliB,GACV,OAAO7F,KAAK2D,IAAI,QAASkC,K,eAG3B,WAAW,IACT,IAAMkqM,EAAO/vM,KAAKwB,IAAI,QADb,mBAAN0/B,EAAM,yBAANA,EAAM,gBAET,OAAO6uK,MAAAA,OAAP,EAAOA,EAAM/pM,EAAN,MAAA+pM,EAAW7uK,K,4BAOpB,WACE,MAA6B,aAAtBlhC,KAAKwB,IAAI,W,wBAMlB,WAAa,WACHkB,EAAiB1C,KAAjB0C,OAAQS,EAASnD,KAATmD,KACVsI,EAASzL,KAAKgU,YACpB,GAAyBtR,EAAOixM,UAAY,IAApCt+B,QAAAA,OAAR,MAAkB,GAAlB,EACMp3H,EAAUj+C,KAAKwB,IAAI,WACzBy8C,MAAAA,GAAAA,EAAS21J,aACT5zM,KAAKyS,gBACLzS,KAAK4Y,cACL5Y,KAAKwB,IAAI,WACN4+C,QACAk/B,UACA7yE,SAAQ,SAAAmrB,GAAG,OAAIA,EAAIplB,aACtBrP,GAAQA,EAAKD,SACblD,KAAKkiC,MAAM,CAAE1oB,QAAQ,IACrBxZ,KAAKwyM,UAAY,EACjB,CAAC,SAAU,OAAQ,sBAAuB,UAAW,cAAc/lM,SAAQ,SAAArC,GAAC,OAAK,EAAKA,GAAK,MAC3FirK,EAAQn/I,OAAOm/I,EAAQ1gK,QAAQlJ,GAAS,IACxCstB,EAAAA,EAAAA,YAAY2P,EAAAA,EAAAA,SAAEhmC,EAAOmB,IAAIkE,QAAQ6E,KAAK5M,KAAKwxM,a,wBAG7C,WACE,IAAMroM,EAAMnJ,KAAKwB,IAAI,WACrB,OAAQ2H,GAAOA,EAAIlG,OAAU,O,wBAG/B,SAAW4C,GAET,OADA7F,KAAK2D,IAAI,UAAWkC,GACb7F,O,uBAGT,WACE,QAASA,KAAKwB,IAAI,a,iBAGpB,SAAIqqF,GAAgB,IAAXjjF,EAAW,uDAAJ,GACNy+E,EAAwBz+E,EAAxBy+E,GAAR,EAAgCz+E,EAApB6pF,MAAAA,OAAZ,MAAoB,QAApB,EAIA,GAHAzyF,KAAK0E,QAAQ,MAAOmnF,EAAKjjF,GACzB6pF,GAASzyF,KAAK0E,QAAL,cAAoB+tF,GAAS5G,EAAKjjF,GAEvCy+E,EAAI,CACN,IAAMwsH,EAAQ,OAAH,OAAUxsH,GACrBrnF,KAAK0E,QAAQmvM,EAAOhoH,EAAKjjF,GACzB6pF,GAASzyF,KAAK0E,QAAL,UAAgBmvM,EAAhB,YAAyBphH,GAAS5G,EAAKjjF,M,qBAIpD,SAAQijF,EAAKjjF,GACX5I,KAAKu5D,IAAIsyB,EAAT,OAAmBjjF,GAAnB,IAAyB6pF,MAAO,Y,wBAGlC,SAAW5G,EAAKjjF,GACd5I,KAAKu5D,IAAIsyB,EAAT,OAAmBjjF,GAAnB,IAAyB6pF,MAAO,e,sBAGlC,SAAS5G,EAAKjjF,GACZ5I,KAAKu5D,IAAIsyB,EAAT,OAAmBjjF,GAAnB,IAAyB6pF,MAAO,a,iCAGlC,SAAoB5uF,GAAe,IAAX+E,EAAW,uDAAJ,GACvBlG,EAAS1C,KAAKkQ,YACpB,EAA6BxN,EAArBoxM,YAAAA,OAAR,MAAsB,GAAtB,EACMruH,EAAa/iF,EAAOmB,GACpBjB,EAAOF,EAAOvC,YAEpB,OAAOuoC,EAAAA,EAAAA,SAAE7kC,GAAIslE,SAAN,KACLhB,mBAAoB,GAAF,OAAKvlE,EAAL,kBAAmBA,EAAnB,aAClB8P,SAAU+yE,GAAc,OACxB9d,iBAAkB,EAClBN,aAAa,EACbiB,QAAS,GACTD,WAAW,EACXR,WAAY,KACZD,WAAY,KACTh/D,GACAkrM,M,kBASP,SAAKpqM,GACH1J,KAAKyyM,QAAS,EACd,IAAM5xJ,EAAK7gD,KAAKwB,IAAI,eACpBq/C,EAAKA,EAAG0+D,KAAK71G,GAAOA,IACpB1J,KAAKyyM,QAAS,I,kBAWhB,SAAK5uM,EAAIM,EAAM0B,GACb,IAAMkuM,EAAU,YAMhB,GAJKlwM,EAAGkwM,KACNlwM,EAAGkwM,GAAW,KAGZjvL,EAAAA,EAAAA,aAAYjf,GACd,OAAOhC,EAAGkwM,GAAS5vM,GAEnBN,EAAGkwM,GAAS5vM,GAAQ0B,M,EAl1BLmrM,CAAoBnvM,EAAAA,G,wbE9CzC,IAAM6mC,EAAIC,IAAAA,EAEWrO,EAAAA,SAAAA,I,2HACnB,WACE,IAAQr3B,EAAUjD,KAAViD,MACR,EAAgCA,EAAMoQ,WAA9B85B,EAAR,EAAQA,OAAQvM,EAAhB,EAAgBA,YAChB39B,EAAME,KAAOnD,KACbiD,EAAMsnB,KAAK,gBAAgB,WACzB4iB,EAAO5N,SACP4N,EAAO6sD,iBACPp5D,EAAYsB,QACZje,YAAW,WACThhB,EAAMyB,QAAQ,OAAQzB,EAAMzB,IAAI,WAChCyB,EAAMuwM,0B,oBAKZ,WAAS,WACC7uM,EAAe3E,KAAf2E,IAAK1B,EAAUjD,KAAViD,MACb,EAAoCA,EAAMoQ,WAAlC85B,EAAR,EAAQA,OAAQ3wB,EAAhB,EAAgBA,OAAQ60L,EAAxB,EAAwBA,QAClBlrL,EAAOljB,EAAMiN,YACbvN,EAAMwjB,EAAKhmB,YACX6zM,EAAStrK,EAAEviB,EAAKtiB,IAAL,eAAmBsiB,EAAKlW,aACzCsvH,EAAAA,EAAAA,cAAap5G,EAAK0pL,SAAU,CAAExwH,OAAQ,EAAGmgD,QAAS,IAClD76H,EAAIoD,QAEAoe,EAAK9jB,OAAO2xM,EAAOj9L,IAAI,QAASoP,EAAK9jB,OACrC8jB,EAAK/jB,QAAQ4xM,EAAOj9L,IAAI,SAAUoP,EAAK/jB,QAE3CuC,EAAIqD,OAAOwU,EAAOhV,UAClB7C,EAAIqD,OAAOmlC,EAAO3lC,UAGlB,IACMysM,EADUhxM,EAAMzB,IAAI,WACMA,IAAI,UAAUgG,SAQ9C,OAPAysM,EAAgBt9L,MAAMC,QAAU,OAChCjS,EAAIqD,OAAOisM,GAEXtvM,EAAIiI,KAAK,QAAT,UAAqBjK,EAArB,kBAAkCA,EAAlC,kBAA+CA,EAA/C,cACAqxM,EAAOpvM,SAAP,UAAmBjC,EAAnB,gBAAqCoF,QAAQC,OAAOrD,GACpD0sM,EAAQ5kM,SAAQ,SAAA4b,GAAE,OAAIA,EAAGrW,YAAcqW,EAAGrW,WAAW,MAE9ChS,S,EAzCUs6B,CAAmBt2B,EAAAA,M,qkBCuDxC,mBAA2C,IAA3BtB,EAA2B,uDAAlB,GAAIkG,EAAc,uDAAP,GAC1B8/B,EAAM9/B,EAAN8/B,EACJ7/B,EAAI,OACH4G,GACA/M,GAGLmG,EAAEhG,aAAegG,EAAE1I,YACnB,IACI8R,EADAnP,EAAK,IAAIkuM,EAAYnoM,GAGzB,MAAO,CACL6/B,EAAAA,EAMAj9B,OAAQ3I,EAERuuM,QAAS,GAOTjuM,KAhBK,WAgBW,WAAXwF,EAAW,uDAAJ,GA+CV,OA9CA9F,EAAGM,KAAKpD,KAAR,OAAmB6I,GAAMD,IAEzB5I,KAAKqxM,QAAU,CACb,OACA,QACA,SACA,WACA,UACA,QACA,SACA,SACA,SACA,cACA,cACA,iBACA,CAAC,QAAS,eACV,gBACA,CAAC,aAAc,iBACf,eACA,CAAC,SAAU,gBACX,cACA,CAAC,MAAO,eACR,iBACA,CAAC,UAAW,kBACZ,eACA,CAAC,SAAU,gBACX,eACA,CAAC,SAAU,gBACX,eACA,CAAC,SAAU,gBACX,kBACA,CAAC,YAAa,mBACd,eACA,CAAC,SAAU,gBACX,gBACA,CAAC,UAAW,kBAGdrxM,KAAKqxM,QAAQ5kM,SAAQ,SAAA8pB,GACfvY,MAAMhD,QAAQub,GAChB,EAAKA,EAAK,IAAMzzB,EAAGtB,IAAI+0B,EAAK,IAE5B,EAAKA,GAAQzzB,EAAGtB,IAAI+0B,MAIjBv2B,MASTkQ,UAxEK,SAwEKqmB,GACR,OAAOzzB,EAAGoN,UAAUqmB,IAUtB4T,QAnFK,SAmFGvhC,GACN,OAAO9F,EAAGqnC,QAAQvhC,IAapBwhC,OAjGK,SAiGExhC,GACL,OAAO9F,EAAGsnC,OAAOxhC,IASnBuqM,MA3GK,SA2GCvqM,GACJ,OAAO9F,EAAGqwM,MAAMvqM,IAOlB0qD,cAnHK,WAoHH,OAAOxwD,EAAGtB,IAAI,iBAAiB8xD,iBAOjCz+C,WA3HK,WA4HH,OAAO/R,EAAGtB,IAAI,iBAAiBqT,cAiBjC2+C,cA7IK,SA6IS9+C,GAAsB,IAAVmY,EAAU,uDAAJ,GAE9B,OADA/pB,EAAG0wD,cAAc9+C,EAAYmY,GACtB7sB,MAoBTk0M,cAnKK,SAmKSx/L,EAAY9L,GACxB,OAAO5I,KAAK6U,aAAa7M,OAAO0M,EAAY9L,IAO9CkX,SA3KK,WA4KH,OAAOhd,EAAGtB,IAAI,eAAeqO,UAe/BqyC,SA3LK,SA2LIvrC,GAAiB,IAAVkW,EAAU,uDAAJ,GAEpB,OADA/pB,EAAGo/C,SAASvrC,EAAOkW,GACZ7sB,MAUTkgB,SAvMK,SAuMIvJ,GAAkB,IAAX/N,EAAW,uDAAJ,GACrB,OAAO9F,EAAGod,SAASvJ,EAAO/N,IAO5BwD,YA/MK,WAgNH,OAAOtJ,EAAGsJ,eAOZyzB,eAvNK,WAwNH,OAAO/8B,EAAG+8B,kBAWZs0K,mBAnOK,WAoOH,IAAI//L,EAAWtR,EAAGsJ,cAElB,GAAIgI,EACF,OAAOpU,KAAKsuC,aAAa4G,gBAAgB9gC,IAgB7C9P,OAvPK,SAuPET,EAAI+E,GAET,OADA9F,EAAGgS,YAAYjR,EAAI+E,GACZ5I,MAUTmzD,UAnQK,SAmQKtvD,GAER,OADAf,EAAGqjG,YAAYtiG,GACR7D,MAUTozD,aA/QK,SA+QQvvD,GAEX,OADAf,EAAGwgG,eAAez/F,GACX7D,MAUTo0M,aA3RK,SA2RQvwM,GAEX,OADAf,EAAGiwM,eAAelvM,GACX7D,MAYTsqD,WAzSK,WA0SH,OAAOxnD,EAAGwnD,cAWZ+pJ,UArTK,SAqTKlwM,GAER,OADArB,EAAGa,IAAI,SAAUQ,GACVnE,MAWTs0M,UAlUK,WAmUH,OAAOxxM,EAAGtB,IAAI,WAWhB6K,WA9UK,SA8UM1G,GAAkB,IAAdnD,EAAc,uDAAJ,GACvB,OAAOM,EAAGtB,IAAI,YAAYkP,IAAI/K,EAAInD,IAWpCi/B,YA1VK,SA0VO97B,GAAkB,IAAdnD,EAAc,uDAAJ,GACxB,OAAOM,EAAGtB,IAAI,YAAYmP,KAAKhL,EAAInD,IAW/BuO,MAtWD,SAsWOvO,GAAS,sHACNM,EAAGiO,MAAMvO,GADH,sFAWfyO,KAjXD,SAiXMzO,GAAS,sHACLM,EAAGmO,KAAKzO,GADH,sFAWpBwO,eA5XK,WA6XH,OAAOlO,EAAGywM,aASZriM,gBAtYK,SAsYWpH,GACd,OAAOhH,EAAGkvM,SAASloM,IAGrBypM,UA1YK,WA2YH,OAAOzwM,EAAGywM,aAGZvB,SA9YK,SA8YIloM,GACP,OAAOhH,EAAGkvM,SAASloM,IAQrBqH,aAvZK,WAwZH,OAAOtI,EAAEhF,IAQXquM,cAhaK,WAiaH,OAAOpvM,EAAGovM,iBAMZsB,gBAvaK,WAwaH,OAAO1wM,EAAG0wM,mBAYZ75K,QApbK,SAobG/wB,GACN9F,EAAGoS,cAActM,IAgCnB2rM,aArdK,SAqdQjjM,GACXtR,KAAK+/F,eAAe/0C,UAAY15C,GAsBlCkjM,mBA5eK,SA4ecz3G,GAEjB,OADA/8F,KAAK68F,OAAO3sF,YAAY+wC,UAAY87C,EAC7B/8F,MASTy0M,YAvfK,SAufO5uM,GAEV,OADA/C,EAAG2xM,YAAY5uM,GACR7F,MAkBTu5D,IA3gBK,SA2gBDsyB,GAAgB,IAAXjjF,EAAW,uDAAJ,GAEd,OADA9F,EAAGy2D,IAAIsyB,EAAKjjF,GACL5I,MAiBTgG,EA9hBK,WA8hBM,MACT,OAAO,EAAAlD,GAAGkD,EAAH,oBAST2J,GAxiBK,SAwiBFrC,EAAO69G,GAER,OADAroH,EAAG6M,GAAGrC,EAAO69G,GACNnrH,MASTuqB,KAnjBK,SAmjBAjd,EAAO69G,GAEV,OADAroH,EAAGynB,KAAKjd,EAAO69G,GACRnrH,MASTyV,IA9jBK,SA8jBDnI,EAAO69G,GAET,OADAroH,EAAG2S,IAAInI,EAAO69G,GACPnrH,MAQT0E,QAxkBK,SAwkBG4I,GAEN,OADAxK,EAAG4B,QAAQklD,MAAM9mD,EAAIihB,WACd/jB,MAMTwS,QAhlBK,WAglBK,WACH1P,IACLA,EAAG8wM,aACH5zM,KAAKqxM,QAAQ5kM,SAAQ,SAAA8pB,GACfvY,MAAMhD,QAAQub,GAChB,EAAKA,EAAK,IAAM,EAEhB,EAAKA,GAAQ,KAGjBv2B,KAAKqxM,QAAU,EACfp/L,EAAa,EACbnP,EAAK,EACL+F,EAAI,IAQN0L,MArmBK,WAsmBH,OAAOtC,GAAcA,EAAWpO,IAQlC4e,SA9mBK,WA+mBH,OAAO3f,GAOT0E,OAtnBK,WA4nBH,OALAyK,GAAcA,EAAW/O,UACzB+O,EAAa,IAAIqoB,EAAW,CAC1Br3B,MAAOH,EACPJ,OAAQmG,KAEQrB,SAAS3D,IAY7B6wM,QAxoBK,SAwoBGhrM,GACN5G,EAAGtB,IAAI,SAAWkI,EAAI1J,MAAQ8C,EAAG6M,GAAG,OAAQjG,IAc9CxF,KAAAA,EAAAA,IC/tBJ,GACEywM,QAAS,I,skBCKX,WAwBE,IAAI57K,EAAAA,EAAAA,WAnBS,WAUX,IATA,IAAIxrB,EACEqnM,EAAQ70M,OAAO2oE,UAAUC,UACzBrxC,EAAQ,CACZ,CAAC,OAAQ,qBACT,CAAC,KAAM,gBACP,CAAC,KAAM,uCACP,CAAC,KAAM,8CAGAltB,EAAI,EAAGA,EAAIktB,EAAMrwB,OAAQmD,IAAK,CAGrC,GADAmD,EADa+pB,EAAMltB,GACN,GAAGoD,KAAKonM,GACV,MAGb,QAASrnM,EAGKsnM,GAAQ,CACtB,IAAMC,EACJC,kBAAkBjzM,UAAUkzM,mBAC9BD,kBAAkBjzM,UAAUkzM,mBAAqB,SAAAvsM,GAE/C,OADKA,IAAOA,EAAQ,IACbqsM,EAA2BlrJ,MAAM1hD,SAAS+sM,eAAgB,CAACxsM,MC5BxEysM,GAEA,IAAMP,EAAU,ICPhB,SAAejyM,GACb,IAAImG,EAAInG,GAAU,GAGlB,IAAK,IAAIyB,KAAQsL,EACTtL,KAAQ0E,IAAIA,EAAE1E,GAAQsL,EAAStL,IAGvC,IAAIwwM,EAAU,GAEd,MAAO,CAeL9tM,IAfK,SAeDlB,EAAIwvM,GACN,OAAIR,EAAQhvM,GACHgvM,EAAQhvM,IAGjBgvM,EAAQhvM,GAAMwvM,EACPA,IAWT3zM,IAhCK,SAgCDmE,GACF,OAAOgvM,EAAQhvM,IAOjBkK,OAxCK,WAyCH,OAAO8kM,KD3CPt/B,EAAU,GACV+/B,EAAgB,CAEpBC,WAAY,EAGZV,QAAS,GAGTW,YAAa,IAGf,SACE5sK,EAAAA,EAAAA,QAEA2sI,QAAAA,EAEAs/B,QAAAA,EAGA9mB,QAAS0nB,SAkBTnyM,KA1Ba,WA0BK,IAAbV,EAAa,uDAAJ,GACZ,EAAqBA,EAAb8yM,EAAR,EAAQA,SACFz3L,EAAMrb,EAAOuN,UACnB,IAAK8N,IAAQy3L,EAAU,MAAM,IAAI1nM,MAAM,4BACvCpL,EAAS,SAAK0yM,GAAkB1yM,GAA1B,IAAkCixM,SAAU3zM,QAC3C6D,IAAM2xM,KAAa95L,EAAAA,EAAAA,WAAUqC,GAAOA,EAAM7V,SAASnB,cAAcgX,IACxE,IAAMtS,EAAS,IAAIgqM,EAAO/yM,EAAQ,CAAEgmC,EAAAA,EAAAA,UAAKtlC,OACnCN,EAAK2I,EAAOgX,WAgClB,OA7BA/f,EAAOiyM,QAAQloM,SAAQ,SAAAipM,GACrB,IAAIP,GAAStwM,EAAAA,EAAAA,YAAW6wM,GAAYA,EAAWf,EAAQnzM,IAAIk0M,GACrDC,EAAajzM,EAAO4yM,YAAYI,IAAa,GAGnD,IAAKP,EAAQ,CACX,IAAMS,GAAO32E,EAAAA,EAAAA,aAAYy2E,GACzBP,GAASS,MAAAA,OAAA,EAAAA,EAAM50K,UAAW40K,EAGxBT,EACFA,EAAO1pM,EAAQkqM,IACN9wM,EAAAA,EAAAA,YAAW6wM,GACpBA,EAASjqM,EAAQkqM,GAEjB7yM,EAAGm9B,WAAH,iBAAwBy1K,EAAxB,cAA8C,CAC5Cl8I,QAAS,UACT27I,OAAQO,OAQd5yM,EAAG+yM,cACHnzM,EAAO2yM,aAAeG,GAAY/pM,EAAOjE,SACzC6tK,EAAQznK,KAAKnC,GAENA,K","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/@babel/runtime/regenerator/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/AssetView.js","webpack://grapesjs/./src/asset_manager/view/AssetImageView.js","webpack://grapesjs/./src/asset_manager/model/Assets.js","webpack://grapesjs/./src/asset_manager/view/AssetsView.js","webpack://grapesjs/./src/asset_manager/view/FileUploader.js","webpack://grapesjs/./src/asset_manager/index.js","webpack://grapesjs/./src/block_manager/config/config.js","webpack://grapesjs/./src/block_manager/model/Block.js","webpack://grapesjs/./src/block_manager/model/Blocks.js","webpack://grapesjs/./src/block_manager/model/Category.js","webpack://grapesjs/./src/block_manager/model/Categories.js","webpack://grapesjs/./src/block_manager/view/BlockView.js","webpack://grapesjs/./src/block_manager/view/CategoryView.js","webpack://grapesjs/./src/block_manager/view/BlocksView.js","webpack://grapesjs/./src/block_manager/index.js","webpack://grapesjs/./src/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/index.js","webpack://grapesjs/./src/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/code_manager/config/config.js","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.js","webpack://grapesjs/./src/code_manager/model/JsonGenerator.js","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.js","webpack://grapesjs/./src/code_manager/model/JsGenerator.js","webpack://grapesjs/./src/code_manager/view/EditorView.js","webpack://grapesjs/./src/code_manager/index.js","webpack://grapesjs/./src/code_manager/model/CssGenerator.js","webpack://grapesjs/./src/commands/config/config.js","webpack://grapesjs/./src/commands/index.js","webpack://grapesjs/./src/commands/view/CanvasClear.js","webpack://grapesjs/./src/commands/view/CanvasMove.js","webpack://grapesjs/./src/commands/view/CommandAbstract.js","webpack://grapesjs/./src/commands/view/ComponentDelete.js","webpack://grapesjs/./src/commands/view/ComponentDrag.js","webpack://grapesjs/./src/commands/view/ComponentEnter.js","webpack://grapesjs/./src/commands/view/ComponentExit.js","webpack://grapesjs/./src/commands/view/ComponentNext.js","webpack://grapesjs/./src/commands/view/ComponentPrev.js","webpack://grapesjs/./src/commands/view/ComponentStyleClear.js","webpack://grapesjs/./src/commands/view/CopyComponent.js","webpack://grapesjs/./src/commands/view/DeleteComponent.js","webpack://grapesjs/./src/commands/view/ExportTemplate.js","webpack://grapesjs/./src/commands/view/Fullscreen.js","webpack://grapesjs/./src/commands/view/MoveComponent.js","webpack://grapesjs/./src/commands/view/OpenAssets.js","webpack://grapesjs/./src/commands/view/OpenBlocks.js","webpack://grapesjs/./src/commands/view/OpenLayers.js","webpack://grapesjs/./src/commands/view/OpenStyleManager.js","webpack://grapesjs/./src/commands/view/OpenTraitManager.js","webpack://grapesjs/./src/commands/view/PasteComponent.js","webpack://grapesjs/./src/commands/view/Preview.js","webpack://grapesjs/./src/commands/view/Resize.js","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.js","webpack://grapesjs/./src/dom_components/view/ToolbarView.js","webpack://grapesjs/./src/dom_components/model/ToolbarButton.js","webpack://grapesjs/./src/dom_components/model/Toolbar.js","webpack://grapesjs/./src/commands/view/SelectComponent.js","webpack://grapesjs/./src/commands/view/SelectPosition.js","webpack://grapesjs/./src/commands/view/ShowOffset.js","webpack://grapesjs/./src/commands/view/SwitchVisibility.js","webpack://grapesjs/./src/common/module.js","webpack://grapesjs/./src/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/css_composer/view/CssRuleView.js","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.js","webpack://grapesjs/./src/css_composer/view/CssRulesView.js","webpack://grapesjs/./src/device_manager/config/config.js","webpack://grapesjs/./src/device_manager/model/Device.js","webpack://grapesjs/./src/device_manager/model/Devices.js","webpack://grapesjs/./src/device_manager/view/DevicesView.js","webpack://grapesjs/./src/device_manager/index.js","webpack://grapesjs/./src/dom_components/config/config.js","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.js","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.js","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.js","webpack://grapesjs/./src/dom_components/model/ComponentTable.js","webpack://grapesjs/./src/dom_components/view/ComponentTableView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.js","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.js","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.js","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.js","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.js","webpack://grapesjs/./src/dom_components/model/ComponentImage.js","webpack://grapesjs/./src/dom_components/model/ComponentMap.js","webpack://grapesjs/./src/dom_components/view/ComponentImageView.js","webpack://grapesjs/./src/dom_components/view/ComponentMapView.js","webpack://grapesjs/./src/dom_components/model/ComponentText.js","webpack://grapesjs/./src/dom_components/model/ComponentLink.js","webpack://grapesjs/./src/dom_components/view/ComponentTextView.js","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.js","webpack://grapesjs/./src/dom_components/model/ComponentLabel.js","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.js","webpack://grapesjs/./src/dom_components/model/ComponentVideo.js","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.js","webpack://grapesjs/./src/dom_components/model/ComponentScript.js","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.js","webpack://grapesjs/./src/dom_components/model/ComponentSvg.js","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.js","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.js","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.js","webpack://grapesjs/./src/dom_components/model/ComponentComment.js","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.js","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.js","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.js","webpack://grapesjs/./src/dom_components/model/ComponentFrame.js","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.js","webpack://grapesjs/./src/dom_components/index.js","webpack://grapesjs/./src/trait_manager/model/Trait.js","webpack://grapesjs/./src/trait_manager/model/Traits.js","webpack://grapesjs/./src/trait_manager/model/TraitFactory.js","webpack://grapesjs/./src/dom_components/model/Component.js","webpack://grapesjs/./src/dom_components/model/Components.js","webpack://grapesjs/./src/dom_components/view/ComponentView.js","webpack://grapesjs/./src/dom_components/view/ComponentsView.js","webpack://grapesjs/./src/domain_abstract/model/Styleable.js","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.js","webpack://grapesjs/./src/domain_abstract/ui/Input.js","webpack://grapesjs/./src/domain_abstract/ui/InputColor.js","webpack://grapesjs/./src/utils/ColorPicker.js","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.js","webpack://grapesjs/./src/domain_abstract/view/DomainViews.js","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.js","webpack://grapesjs/./src/i18n/index.js","webpack://grapesjs/./src/utils/keymaster.js","webpack://grapesjs/./src/keymaps/index.js","webpack://grapesjs/./src/modal_dialog/config/config.js","webpack://grapesjs/./src/modal_dialog/model/Modal.js","webpack://grapesjs/./src/modal_dialog/view/ModalView.js","webpack://grapesjs/./src/modal_dialog/index.js","webpack://grapesjs/./src/navigator/config/config.js","webpack://grapesjs/./src/navigator/view/ItemView.js","webpack://grapesjs/./src/navigator/index.js","webpack://grapesjs/./src/navigator/view/ItemsView.js","webpack://grapesjs/./src/pages/model/Page.js","webpack://grapesjs/./src/pages/model/Pages.js","webpack://grapesjs/./src/pages/index.js","webpack://grapesjs/./src/panels/config/config.js","webpack://grapesjs/./src/panels/model/Panel.js","webpack://grapesjs/./src/panels/model/Panels.js","webpack://grapesjs/./src/panels/view/ButtonView.js","webpack://grapesjs/./src/panels/view/ButtonsView.js","webpack://grapesjs/./src/panels/view/PanelView.js","webpack://grapesjs/./src/panels/view/PanelsView.js","webpack://grapesjs/./src/panels/index.js","webpack://grapesjs/./src/panels/model/Button.js","webpack://grapesjs/./src/panels/model/Buttons.js","webpack://grapesjs/./src/parser/config/config.js","webpack://grapesjs/./src/parser/model/BrowserParserCss.js","webpack://grapesjs/./src/parser/model/ParserCss.js","webpack://grapesjs/./src/parser/index.js","webpack://grapesjs/./src/parser/model/BrowserParserHtml.js","webpack://grapesjs/./src/parser/model/ParserHtml.js","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.js","webpack://grapesjs/./src/rich_text_editor/config/config.js","webpack://grapesjs/./src/rich_text_editor/index.js","webpack://grapesjs/./src/selector_manager/config/config.js","webpack://grapesjs/./src/selector_manager/model/State.js","webpack://grapesjs/./src/selector_manager/view/ClassTagView.js","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.js","webpack://grapesjs/./src/selector_manager/index.js","webpack://grapesjs/./src/selector_manager/model/Selector.js","webpack://grapesjs/./src/selector_manager/model/Selectors.js","webpack://grapesjs/./src/storage_manager/config/config.js","webpack://grapesjs/./src/storage_manager/model/LocalStorage.js","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.js","webpack://grapesjs/./src/storage_manager/index.js","webpack://grapesjs/./src/style_manager/config/config.js","webpack://grapesjs/./src/style_manager/model/Property.js","webpack://grapesjs/./src/style_manager/model/PropertyComposite.js","webpack://grapesjs/./src/style_manager/model/Layer.js","webpack://grapesjs/./src/style_manager/model/Layers.js","webpack://grapesjs/./src/style_manager/model/PropertyStack.js","webpack://grapesjs/./src/style_manager/view/PropertyView.js","webpack://grapesjs/./src/style_manager/view/PropertiesView.js","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.js","webpack://grapesjs/./src/style_manager/view/LayerView.js","webpack://grapesjs/./src/style_manager/view/LayersView.js","webpack://grapesjs/./src/style_manager/view/PropertyStackView.js","webpack://grapesjs/./src/style_manager/view/PropertyFileView.js","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.js","webpack://grapesjs/./src/style_manager/view/PropertyColorView.js","webpack://grapesjs/./src/style_manager/model/PropertySelect.js","webpack://grapesjs/./src/style_manager/view/PropertySelectView.js","webpack://grapesjs/./src/style_manager/model/PropertyRadio.js","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.js","webpack://grapesjs/./src/style_manager/model/PropertyNumber.js","webpack://grapesjs/./src/style_manager/model/PropertySlider.js","webpack://grapesjs/./src/style_manager/view/PropertySliderView.js","webpack://grapesjs/./src/style_manager/model/Properties.js","webpack://grapesjs/./src/style_manager/model/Sector.js","webpack://grapesjs/./src/style_manager/model/Sectors.js","webpack://grapesjs/./src/style_manager/model/PropertyFactory.js","webpack://grapesjs/./src/style_manager/view/SectorView.js","webpack://grapesjs/./src/style_manager/view/SectorsView.js","webpack://grapesjs/./src/style_manager/index.js","webpack://grapesjs/./src/trait_manager/config/config.js","webpack://grapesjs/./src/trait_manager/view/TraitView.js","webpack://grapesjs/./src/trait_manager/view/TraitsView.js","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.js","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.js","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.js","webpack://grapesjs/./src/trait_manager/view/TraitColorView.js","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.js","webpack://grapesjs/./src/trait_manager/index.js","webpack://grapesjs/./src/undo_manager/index.js","webpack://grapesjs/./src/utils/Dragger.js","webpack://grapesjs/./src/utils/cash-dom.js","webpack://grapesjs/./src/utils/dom.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.js","webpack://grapesjs/./src/utils/html.js","webpack://grapesjs/./src/utils/Sorter.js","webpack://grapesjs/./src/utils/Resizer.js","webpack://grapesjs/./src/utils/index.js","webpack://grapesjs/./src/utils/mixins.js","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./node_modules/regenerator-runtime/runtime.js","webpack://grapesjs/./src/common/Model.ts","webpack://grapesjs/./src/commands/view|sync|/^/.*$","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/editor/config/config.js","webpack://grapesjs/./src/editor/model/Selected.js","webpack://grapesjs/./src/editor/model/Editor.js","webpack://grapesjs/./src/utils/extender.js","webpack://grapesjs/./src/editor/view/EditorView.js","webpack://grapesjs/./src/editor/index.js","webpack://grapesjs/./src/plugin_manager/config/config.js","webpack://grapesjs/./src/utils/polyfills.js","webpack://grapesjs/./src/index.js","webpack://grapesjs/./src/plugin_manager/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), function() {\nreturn ","module.exports = require(\"regenerator-runtime\");\n","export default {\r\n // Default assets\r\n // eg. [\r\n // 'https://...image1.png',\r\n // 'https://...image2.png',\r\n // {type: 'image', src: 'https://...image3.png', someOtherCustomProp: 1},\r\n // ..\r\n // ]\r\n assets: [],\r\n\r\n // Content to add where there is no assets to show\r\n // eg. 'No assets here, drag to upload'\r\n noAssets: '',\r\n\r\n // Style prefix\r\n stylePrefix: 'am-',\r\n\r\n // Upload endpoint, set `false` to disable upload\r\n // upload: 'https://endpoint/upload/assets',\r\n // upload: false,\r\n upload: 0,\r\n\r\n // The name used in POST to pass uploaded files\r\n uploadName: 'files',\r\n\r\n // Custom headers to pass with the upload request\r\n headers: {},\r\n\r\n // Custom parameters to pass with the upload request, eg. csrf token\r\n params: {},\r\n\r\n // The credentials setting for the upload request, eg. 'include', 'omit'\r\n credentials: 'include',\r\n\r\n // Allow uploading multiple files per request.\r\n // If disabled filename will not have '[]' appended\r\n multiUpload: true,\r\n\r\n // If true, tries to add automatically uploaded assets.\r\n // To make it work the server should respond with a JSON containing assets\r\n // in a data key, eg:\r\n // {\r\n // data: [\r\n // 'https://.../image.png',\r\n // ...\r\n // {src: 'https://.../image2.png'},\r\n // ...\r\n // ]\r\n // }\r\n autoAdd: true,\r\n\r\n // To upload your assets, the module uses Fetch API, with this option you\r\n // overwrite it with something else.\r\n // It should return a Promise\r\n // @example\r\n // customFetch: (url, options) => axios(url, { data: options.body }),\r\n customFetch: null,\r\n\r\n // Custom uploadFile function.\r\n // Differently from the `customFetch` option, this gives a total control\r\n // over the uploading process, but you also have to emit all `asset:upload:*` events\r\n // by yourself (if you need to use them somewhere)\r\n // @example\r\n // uploadFile: (e) => {\r\n // var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\r\n // // ...send somewhere\r\n // }\r\n uploadFile: null,\r\n\r\n // In the absence of 'uploadFile' or 'upload' assets will be embedded as Base64\r\n embedAsBase64: true,\r\n\r\n // Handle the image url submit from the built-in 'Add image' form\r\n // @example\r\n // handleAdd: (textFromInput) => {\r\n // // some check...\r\n // editor.AssetManager.add(textFromInput);\r\n // }\r\n handleAdd: null,\r\n\r\n // Method called before upload, on return false upload is canceled.\r\n // @example\r\n // beforeUpload: (files) => {\r\n // // logic...\r\n // var stopUpload = true;\r\n // if(stopUpload) return false;\r\n // }\r\n beforeUpload: null,\r\n\r\n // Toggles visiblity of assets url input\r\n showUrlInput: true,\r\n\r\n // Avoid rendering the default asset manager.\r\n custom: false,\r\n\r\n // WARNING: all the options below are considered DEPRECATED.\r\n // ---------------------------------------------------------------\r\n\r\n // Enable an upload dropzone on the entire editor (not document) when dragging\r\n // files over it\r\n // If active the dropzone disable/hide the upload dropzone in asset modal,\r\n // otherwise you will get double drops (#507)\r\n dropzone: false,\r\n\r\n // Open the asset manager once files are been dropped via the dropzone\r\n openAssetsOnDrop: 1,\r\n\r\n // Any dropzone content to append inside dropzone element\r\n dropzoneContent: ''\r\n};\r\n","import { result } from 'underscore';\r\nimport { Model } from '../../common';\r\n\r\n/**\r\n * @property {String} type Asset type, eg. 'image'.\r\n * @property {String} src Asset URL, eg. 'https://.../image.png'.\r\n */\r\nexport default class Asset extends Model {\r\n defaults() {\r\n return {\r\n type: '',\r\n src: '',\r\n };\r\n }\r\n\r\n /**\r\n * Get asset type.\r\n * @returns {String}\r\n * @example\r\n * // Asset: { src: 'https://.../image.png', type: 'image' }\r\n * asset.getType(); // -> 'image'\r\n * */\r\n getType() {\r\n return this.get('type');\r\n }\r\n\r\n /**\r\n * Get asset URL.\r\n * @returns {String}\r\n * @example\r\n * // Asset: { src: 'https://.../image.png' }\r\n * asset.getSrc(); // -> 'https://.../image.png'\r\n * */\r\n getSrc() {\r\n return this.get('src');\r\n }\r\n\r\n /**\r\n * Get filename of the asset (based on `src`).\r\n * @returns {String}\r\n * @example\r\n * // Asset: { src: 'https://.../image.png' }\r\n * asset.getFilename(); // -> 'image.png'\r\n * // Asset: { src: 'https://.../image' }\r\n * asset.getFilename(); // -> 'image'\r\n * */\r\n getFilename() {\r\n return this.get('src').split('/').pop().split('?').shift();\r\n }\r\n\r\n /**\r\n * Get extension of the asset (based on `src`).\r\n * @returns {String}\r\n * @example\r\n * // Asset: { src: 'https://.../image.png' }\r\n * asset.getExtension(); // -> 'png'\r\n * // Asset: { src: 'https://.../image' }\r\n * asset.getExtension(); // -> ''\r\n * */\r\n getExtension() {\r\n return this.getFilename().split('.').pop();\r\n }\r\n}\r\n\r\nAsset.prototype.idAttribute = 'src';\r\n\r\nAsset.getDefaults = function () {\r\n return result(this.prototype, 'defaults');\r\n};\r\n","import Asset from './Asset';\r\n\r\nexport default class AssetImage extends Asset {\r\n defaults() {\r\n return {\r\n ...Asset.getDefaults(),\r\n type: 'image',\r\n unitDim: 'px',\r\n height: 0,\r\n width: 0\r\n };\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport { clone } from 'underscore';\r\n\r\nexport default class AssetView extends View {\r\n initialize(o = {}) {\r\n this.options = o;\r\n this.collection = o.collection;\r\n const config = o.config || {};\r\n this.config = config;\r\n this.pfx = config.stylePrefix || '';\r\n this.ppfx = config.pStylePrefix || '';\r\n this.em = config.em;\r\n this.className = this.pfx + 'asset';\r\n this.listenTo(this.model, 'destroy remove', this.remove);\r\n this.model.view = this;\r\n const init = this.init && this.init.bind(this);\r\n init && init(o);\r\n }\r\n\r\n __getBhv() {\r\n const { em } = this;\r\n const am = em && em.get('AssetManager');\r\n return (am && am.__getBehaviour()) || {};\r\n }\r\n\r\n template() {\r\n const pfx = this.pfx;\r\n return `\r\n
\r\n ${this.getPreview()}\r\n
\r\n
\r\n ${this.getInfo()}\r\n
\r\n
\r\n ⨯\r\n
\r\n `;\r\n }\r\n\r\n /**\r\n * Update target if exists\r\n * @param {Model} target\r\n * @private\r\n * */\r\n updateTarget(target) {\r\n if (target && target.set) {\r\n target.set('attributes', clone(target.get('attributes')));\r\n target.set('src', this.model.get('src'));\r\n }\r\n }\r\n\r\n getPreview() {\r\n return '';\r\n }\r\n\r\n getInfo() {\r\n return '';\r\n }\r\n\r\n render() {\r\n const el = this.el;\r\n el.innerHTML = this.template(this, this.model);\r\n el.className = this.className;\r\n return this;\r\n }\r\n}\r\n","import { isFunction } from 'underscore';\r\nimport AssetView from './AssetView';\r\nimport html from '../../utils/html';\r\n\r\nexport default class AssetImageView extends AssetView {\r\n getPreview() {\r\n const { pfx, ppfx, model } = this;\r\n const src = model.get('src');\r\n return html`\r\n
\r\n
\r\n `;\r\n }\r\n\r\n getInfo() {\r\n const { pfx, model } = this;\r\n let name = model.get('name');\r\n let width = model.get('width');\r\n let height = model.get('height');\r\n let unit = model.get('unitDim');\r\n let dim = width && height ? `${width}x${height}${unit}` : '';\r\n name = name || model.getFilename();\r\n return html`\r\n
${name}
\r\n
${dim}
\r\n `;\r\n }\r\n\r\n init(o) {\r\n const pfx = this.pfx;\r\n this.className += ` ${pfx}asset-image`;\r\n }\r\n\r\n /**\r\n * Triggered when the asset is clicked\r\n * @private\r\n * */\r\n onClick() {\r\n const { model, pfx } = this;\r\n const { select } = this.__getBhv();\r\n const { onClick } = this.config;\r\n const coll = this.collection;\r\n coll.trigger('deselectAll');\r\n this.$el.addClass(pfx + 'highlight');\r\n\r\n if (isFunction(select)) {\r\n select(model, false);\r\n } else if (isFunction(onClick)) {\r\n onClick(model);\r\n } else {\r\n this.updateTarget(coll.target);\r\n }\r\n }\r\n\r\n /**\r\n * Triggered when the asset is double clicked\r\n * @private\r\n * */\r\n onDblClick() {\r\n const { em, model } = this;\r\n const { select } = this.__getBhv();\r\n const { onDblClick } = this.config;\r\n const { target, onSelect } = this.collection;\r\n\r\n if (isFunction(select)) {\r\n select(model, true);\r\n } else if (isFunction(onDblClick)) {\r\n onDblClick(model);\r\n } else {\r\n this.updateTarget(target);\r\n em && em.get('Modal').close();\r\n }\r\n isFunction(onSelect) && onSelect(model);\r\n }\r\n\r\n /**\r\n * Remove asset from collection\r\n * @private\r\n * */\r\n onRemove(e) {\r\n e.stopImmediatePropagation();\r\n this.model.collection.remove(this.model);\r\n }\r\n}\r\n\r\nAssetImageView.prototype.events = {\r\n 'click [data-toggle=asset-remove]': 'onRemove',\r\n click: 'onClick',\r\n dblclick: 'onDblClick',\r\n};\r\n","import { Collection } from '../../common';\r\nimport AssetImage from './AssetImage';\r\nimport AssetImageView from './../view/AssetImageView';\r\nimport TypeableCollection from '../../domain_abstract/model/TypeableCollection';\r\n\r\nexport default class Assets extends Collection.extend(TypeableCollection) {}\r\n\r\nAssets.prototype.types = [\r\n {\r\n id: 'image',\r\n model: AssetImage,\r\n view: AssetImageView,\r\n isType(value) {\r\n if (typeof value == 'string') {\r\n return {\r\n type: 'image',\r\n src: value,\r\n };\r\n }\r\n return value;\r\n },\r\n },\r\n];\r\n","import { View } from '../../common';\r\n\r\nexport default class AssetsView extends View {\r\n template({ pfx, ppfx, em }) {\r\n let form = '';\r\n if (this.config.showUrlInput) {\r\n form = `\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n `;\r\n }\r\n\r\n return `\r\n
\r\n
\r\n ${form}\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n }\r\n\r\n initialize(o) {\r\n this.options = o;\r\n this.config = o.config;\r\n this.pfx = this.config.stylePrefix || '';\r\n this.ppfx = this.config.pStylePrefix || '';\r\n this.em = this.config.em;\r\n const coll = this.collection;\r\n this.listenTo(coll, 'reset', this.renderAssets);\r\n this.listenTo(coll, 'add', this.addToAsset);\r\n this.listenTo(coll, 'remove', this.removedAsset);\r\n this.listenTo(coll, 'deselectAll', this.deselectAll);\r\n }\r\n\r\n /**\r\n * Add new asset to the collection via string\r\n * @param {Event} e Event object\r\n * @return {this}\r\n * @private\r\n */\r\n handleSubmit(e) {\r\n e.preventDefault();\r\n const input = this.getAddInput();\r\n const url = input && input.value.trim();\r\n const handleAdd = this.config.handleAdd;\r\n\r\n if (!url) {\r\n return;\r\n }\r\n\r\n input.value = '';\r\n this.getAssetsEl().scrollTop = 0;\r\n\r\n if (handleAdd) {\r\n handleAdd.bind(this)(url);\r\n } else {\r\n this.options.globalCollection.add(url, { at: 0 });\r\n }\r\n }\r\n\r\n /**\r\n * Returns assets element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getAssetsEl() {\r\n //if(!this.assets) // Not able to cache as after the rerender it losses the ref\r\n return this.el.querySelector(`.${this.pfx}assets`);\r\n }\r\n\r\n /**\r\n * Returns input url element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getAddInput() {\r\n if (!this.inputUrl || !this.inputUrl.value) this.inputUrl = this.el.querySelector(`.${this.pfx}add-asset input`);\r\n return this.inputUrl;\r\n }\r\n\r\n /**\r\n * Triggered when an asset is removed\r\n * @param {Asset} model Removed asset\r\n * @private\r\n */\r\n removedAsset(model) {\r\n if (!this.collection.length) {\r\n this.toggleNoAssets();\r\n }\r\n }\r\n\r\n /**\r\n * Add asset to collection\r\n * @private\r\n * */\r\n addToAsset(model) {\r\n if (this.collection.length == 1) {\r\n this.toggleNoAssets(1);\r\n }\r\n this.addAsset(model);\r\n }\r\n\r\n /**\r\n * Add new asset to collection\r\n * @param Object Model\r\n * @param Object Fragment collection\r\n * @return Object Object created\r\n * @private\r\n * */\r\n addAsset(model, fragmentEl = null) {\r\n const fragment = fragmentEl;\r\n const collection = this.collection;\r\n const config = this.config;\r\n const rendered = new model.typeView({\r\n model,\r\n collection,\r\n config,\r\n }).render().el;\r\n\r\n if (fragment) {\r\n fragment.appendChild(rendered);\r\n } else {\r\n const assetsEl = this.getAssetsEl();\r\n if (assetsEl) {\r\n assetsEl.insertBefore(rendered, assetsEl.firstChild);\r\n }\r\n }\r\n\r\n return rendered;\r\n }\r\n\r\n /**\r\n * Checks if to show noAssets\r\n * @param {Boolean} hide\r\n * @private\r\n */\r\n toggleNoAssets(hide) {\r\n const assetsEl = this.$el.find(`.${this.pfx}assets`);\r\n\r\n if (hide) {\r\n assetsEl.empty();\r\n } else {\r\n const noAssets = this.config.noAssets;\r\n noAssets && assetsEl.append(noAssets);\r\n }\r\n }\r\n\r\n /**\r\n * Deselect all assets\r\n * @private\r\n * */\r\n deselectAll() {\r\n const pfx = this.pfx;\r\n this.$el.find(`.${pfx}highlight`).removeClass(`${pfx}highlight`);\r\n }\r\n\r\n renderAssets() {\r\n const fragment = document.createDocumentFragment();\r\n const assets = this.$el.find(`.${this.pfx}assets`);\r\n assets.empty();\r\n this.toggleNoAssets(this.collection.length);\r\n this.collection.each(model => this.addAsset(model, fragment));\r\n assets.append(fragment);\r\n }\r\n\r\n render() {\r\n const fuRendered = this.options.fu.render().el;\r\n this.$el.empty();\r\n this.$el.append(fuRendered).append(this.template(this));\r\n this.el.className = `${this.ppfx}asset-manager`;\r\n this.renderAssets();\r\n return this;\r\n }\r\n}\r\n\r\nAssetsView.prototype.events = {\r\n submit: 'handleSubmit',\r\n};\r\n","import { View } from '../../common';\r\nimport fetch from '../../utils/fetch';\r\nimport html from '../../utils/html';\r\n\r\nexport default class FileUploaderView extends View {\r\n template({ pfx, title, uploadId, disabled, multiUpload }) {\r\n return html`\r\n
\r\n
${title}
\r\n \r\n
\r\n \r\n `;\r\n }\r\n\r\n initialize(opts = {}) {\r\n this.options = opts;\r\n const c = opts.config || {};\r\n this.module = opts.module;\r\n this.config = c;\r\n this.em = this.config.em;\r\n this.pfx = c.stylePrefix || '';\r\n this.ppfx = c.pStylePrefix || '';\r\n this.target = this.options.globalCollection || {};\r\n this.uploadId = this.pfx + 'uploadFile';\r\n this.disabled = c.disableUpload !== undefined ? c.disableUpload : !c.upload && !c.embedAsBase64;\r\n this.multiUpload = c.multiUpload !== undefined ? c.multiUpload : true;\r\n this.events = {\r\n [`change #${this.uploadId}`]: 'uploadFile',\r\n };\r\n let uploadFile = c.uploadFile;\r\n\r\n if (uploadFile) {\r\n this.uploadFile = uploadFile.bind(this);\r\n } else if (!c.upload && c.embedAsBase64) {\r\n this.uploadFile = this.constructor.embedAsBase64;\r\n }\r\n\r\n this.delegateEvents();\r\n }\r\n\r\n /**\r\n * Triggered before the upload is started\r\n * @private\r\n */\r\n onUploadStart() {\r\n const { module } = this;\r\n module && module.__propEv('asset:upload:start');\r\n }\r\n\r\n /**\r\n * Triggered after the upload is ended\r\n * @param {Object|string} res End result\r\n * @private\r\n */\r\n onUploadEnd(res) {\r\n const { $el, module } = this;\r\n module && module.__propEv('asset:upload:end', res);\r\n const input = $el.find('input');\r\n input && input.val('');\r\n }\r\n\r\n /**\r\n * Triggered on upload error\r\n * @param {Object} err Error\r\n * @private\r\n */\r\n onUploadError(err) {\r\n const { module } = this;\r\n console.error(err);\r\n this.onUploadEnd(err);\r\n module && module.__propEv('asset:upload:error', err);\r\n }\r\n\r\n /**\r\n * Triggered on upload response\r\n * @param {string} text Response text\r\n * @private\r\n */\r\n onUploadResponse(text, clb) {\r\n const { module, config, target } = this;\r\n let json;\r\n try {\r\n json = typeof text === 'string' ? JSON.parse(text) : text;\r\n } catch (e) {\r\n json = text;\r\n }\r\n\r\n module && module.__propEv('asset:upload:response', json);\r\n\r\n if (config.autoAdd && target) {\r\n target.add(json.data, { at: 0 });\r\n }\r\n\r\n this.onUploadEnd(text);\r\n clb && clb(json);\r\n }\r\n\r\n /**\r\n * Upload files\r\n * @param {Object} e Event\r\n * @return {Promise}\r\n * @private\r\n * */\r\n uploadFile(e, clb) {\r\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\r\n const { config } = this;\r\n const { beforeUpload } = config;\r\n\r\n const beforeUploadResponse = beforeUpload && beforeUpload(files);\r\n if (beforeUploadResponse === false) return;\r\n\r\n const body = new FormData();\r\n const { params, customFetch } = config;\r\n\r\n for (let param in params) {\r\n body.append(param, params[param]);\r\n }\r\n\r\n if (this.multiUpload) {\r\n for (let i = 0; i < files.length; i++) {\r\n body.append(`${config.uploadName}[]`, files[i]);\r\n }\r\n } else if (files.length) {\r\n body.append(config.uploadName, files[0]);\r\n }\r\n\r\n var target = this.target;\r\n const url = config.upload;\r\n const headers = config.headers;\r\n const reqHead = 'X-Requested-With';\r\n\r\n if (typeof headers[reqHead] == 'undefined') {\r\n headers[reqHead] = 'XMLHttpRequest';\r\n }\r\n\r\n if (url) {\r\n this.onUploadStart();\r\n const fetchOpts = {\r\n method: 'post',\r\n credentials: config.credentials || 'include',\r\n headers,\r\n body,\r\n };\r\n const fetchResult = customFetch\r\n ? customFetch(url, fetchOpts)\r\n : fetch(url, fetchOpts).then(res =>\r\n ((res.status / 200) | 0) == 1 ? res.text() : res.text().then(text => Promise.reject(text))\r\n );\r\n return fetchResult.then(text => this.onUploadResponse(text, clb)).catch(err => this.onUploadError(err));\r\n }\r\n }\r\n\r\n /**\r\n * Make input file droppable\r\n * @private\r\n * */\r\n initDrop() {\r\n var that = this;\r\n if (!this.uploadForm) {\r\n this.uploadForm = this.$el.find('form').get(0);\r\n if ('draggable' in this.uploadForm) {\r\n var uploadFile = this.uploadFile;\r\n this.uploadForm.ondragover = function () {\r\n this.className = that.pfx + 'hover';\r\n return false;\r\n };\r\n this.uploadForm.ondragleave = function () {\r\n this.className = '';\r\n return false;\r\n };\r\n this.uploadForm.ondrop = function (e) {\r\n this.className = '';\r\n e.preventDefault();\r\n that.uploadFile(e);\r\n return;\r\n };\r\n }\r\n }\r\n }\r\n\r\n initDropzone(ev) {\r\n let addedCls = 0;\r\n const c = this.config;\r\n const em = ev.model;\r\n const edEl = ev.el;\r\n const editor = em.get('Editor');\r\n const container = em.get('Config').el;\r\n const frameEl = em.get('Canvas').getBody();\r\n const ppfx = this.ppfx;\r\n const updatedCls = `${ppfx}dropzone-active`;\r\n const dropzoneCls = `${ppfx}dropzone`;\r\n const cleanEditorElCls = () => {\r\n edEl.className = edEl.className.replace(updatedCls, '').trim();\r\n addedCls = 0;\r\n };\r\n const onDragOver = () => {\r\n if (!addedCls) {\r\n edEl.className += ` ${updatedCls}`;\r\n addedCls = 1;\r\n }\r\n return false;\r\n };\r\n const onDragLeave = () => {\r\n cleanEditorElCls();\r\n return false;\r\n };\r\n const onDrop = e => {\r\n cleanEditorElCls();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.uploadFile(e);\r\n\r\n if (c.openAssetsOnDrop && editor) {\r\n const target = editor.getSelected();\r\n editor.runCommand('open-assets', {\r\n target,\r\n onSelect() {\r\n editor.Modal.close();\r\n editor.AssetManager.setTarget(null);\r\n },\r\n });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n ev.$el.append(`
${c.dropzoneContent}
`);\r\n cleanEditorElCls();\r\n\r\n if ('draggable' in edEl) {\r\n [edEl, frameEl].forEach(item => {\r\n item.ondragover = onDragOver;\r\n item.ondragleave = onDragLeave;\r\n item.ondrop = onDrop;\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { $el, pfx, em } = this;\r\n $el.html(\r\n this.template({\r\n title: em && em.t('assetManager.uploadTitle'),\r\n uploadId: this.uploadId,\r\n disabled: this.disabled,\r\n multiUpload: this.multiUpload,\r\n pfx,\r\n })\r\n );\r\n this.initDrop();\r\n $el.attr('class', pfx + 'file-uploader');\r\n return this;\r\n }\r\n}\r\n\r\nFileUploaderView.embedAsBase64 = function (e, clb) {\r\n // List files dropped\r\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\r\n const response = { data: [] };\r\n\r\n // Unlikely, widely supported now\r\n if (!FileReader) {\r\n this.onUploadError(new Error('Unsupported platform, FileReader is not defined'));\r\n return;\r\n }\r\n\r\n const promises = [];\r\n const mimeTypeMatcher = /^(.+)\\/(.+)$/;\r\n\r\n for (const file of files) {\r\n // For each file a reader (to read the base64 URL)\r\n // and a promise (to track and merge results and errors)\r\n const promise = new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', event => {\r\n let type;\r\n const name = file.name;\r\n\r\n // Try to find the MIME type of the file.\r\n const match = mimeTypeMatcher.exec(file.type);\r\n if (match) {\r\n type = match[1]; // The first part in the MIME, \"image\" in image/png\r\n } else {\r\n type = file.type;\r\n }\r\n\r\n /*\r\n // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/\r\n var URL = window.URL || window.webkitURL\r\n var file = this.files[0]\r\n var type = file.type\r\n var videoNode = document.createElement('video');\r\n var canPlay = videoNode.canPlayType(type) // can use also for 'audio' types\r\n if (canPlay === '') canPlay = 'no'\r\n var message = 'Can play type \"' + type + '\": ' + canPlay\r\n var isError = canPlay === 'no'\r\n displayMessage(message, isError)\r\n\r\n if (isError) {\r\n return\r\n }\r\n\r\n var fileURL = URL.createObjectURL(file)\r\n videoNode.src = fileURL\r\n */\r\n\r\n // If it's an image, try to find its size\r\n if (type === 'image') {\r\n const data = {\r\n src: reader.result,\r\n name,\r\n type,\r\n height: 0,\r\n width: 0,\r\n };\r\n\r\n const image = new Image();\r\n image.addEventListener('error', error => {\r\n reject(error);\r\n });\r\n image.addEventListener('load', () => {\r\n data.height = image.height;\r\n data.width = image.width;\r\n resolve(data);\r\n });\r\n image.src = data.src;\r\n } else if (type) {\r\n // Not an image, but has a type\r\n resolve({\r\n src: reader.result,\r\n name,\r\n type,\r\n });\r\n } else {\r\n // No type found, resolve with the URL only\r\n resolve(reader.result);\r\n }\r\n });\r\n reader.addEventListener('error', error => {\r\n reject(error);\r\n });\r\n reader.addEventListener('abort', error => {\r\n reject('Aborted');\r\n });\r\n\r\n reader.readAsDataURL(file);\r\n });\r\n\r\n promises.push(promise);\r\n }\r\n\r\n Promise.all(promises).then(\r\n data => {\r\n response.data = data;\r\n this.onUploadResponse(response, clb);\r\n },\r\n error => {\r\n this.onUploadError(error);\r\n }\r\n );\r\n};\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * assetManager: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const assetManager = editor.AssetManager;\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `asset:open` - Asset Manager opened.\r\n * * `asset:close` - Asset Manager closed.\r\n * * `asset:add` - Asset added. The [Asset] is passed as an argument to the callback.\r\n * * `asset:remove` - Asset removed. The [Asset] is passed as an argument to the callback.\r\n * * `asset:update` - Asset updated. The updated [Asset] and the object containing changes are passed as arguments to the callback.\r\n * * `asset:upload:start` - Before the upload is started.\r\n * * `asset:upload:end` - After the upload is ended.\r\n * * `asset:upload:error` - On any error in upload, passes the error as an argument.\r\n * * `asset:upload:response` - On upload response, passes the result as an argument.\r\n * * `asset` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\r\n * * `asset:custom` - Event for handling custom Asset Manager UI.\r\n *\r\n * ## Methods\r\n * * [open](#open)\r\n * * [close](#close)\r\n * * [isOpen](#isopen)\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getAll](#getall)\r\n * * [getAllVisible](#getallvisible)\r\n * * [remove](#remove)\r\n * * [store](#store)\r\n * * [load](#load)\r\n * * [getContainer](#getcontainer)\r\n *\r\n * [Asset]: asset.html\r\n *\r\n * @module AssetManager\r\n */\r\n\r\nimport { debounce, isFunction } from 'underscore';\r\nimport { Module } from '../common';\r\nimport defaults from './config/config';\r\nimport Asset from './model/Assets';\r\nimport Assets from './model/Assets';\r\nimport AssetsView from './view/AssetsView';\r\nimport FileUpload from './view/FileUploader';\r\n\r\nexport const evAll = 'asset';\r\nexport const evPfx = `${evAll}:`;\r\nexport const evSelect = `${evPfx}select`;\r\nexport const evUpdate = `${evPfx}update`;\r\nexport const evAdd = `${evPfx}add`;\r\nexport const evRemove = `${evPfx}remove`;\r\nexport const evRemoveBefore = `${evRemove}:before`;\r\nexport const evCustom = `${evPfx}custom`;\r\nexport const evOpen = `${evPfx}open`;\r\nexport const evClose = `${evPfx}close`;\r\nexport const evUpload = `${evPfx}upload`;\r\nexport const evUploadStart = `${evUpload}:start`;\r\nexport const evUploadEnd = `${evUpload}:end`;\r\nexport const evUploadError = `${evUpload}:error`;\r\nexport const evUploadRes = `${evUpload}:response`;\r\n\r\nexport default () => {\r\n let c = {};\r\n let assets, assetsVis, am, fu;\r\n const assetCmd = 'open-assets';\r\n\r\n return {\r\n ...Module,\r\n\r\n name: 'AssetManager',\r\n\r\n storageKey: 'assets',\r\n\r\n Asset,\r\n\r\n Assets,\r\n\r\n events: {\r\n all: evAll,\r\n select: evSelect,\r\n update: evUpdate,\r\n add: evAdd,\r\n remove: evRemove,\r\n removeBefore: evRemoveBefore,\r\n custom: evCustom,\r\n open: evOpen,\r\n close: evClose,\r\n uploadStart: evUploadStart,\r\n uploadEnd: evUploadEnd,\r\n uploadError: evUploadError,\r\n uploadResponse: evUploadRes,\r\n },\r\n\r\n init(config = {}) {\r\n c = { ...defaults, ...config };\r\n const ppfx = c.pStylePrefix;\r\n const { em } = c;\r\n this.config = c;\r\n this.em = em;\r\n\r\n if (ppfx) {\r\n c.stylePrefix = ppfx + c.stylePrefix;\r\n }\r\n\r\n // Global assets collection\r\n assets = new Assets([]);\r\n assetsVis = new Assets([]);\r\n this.all = assets;\r\n this.__initListen();\r\n\r\n // Setup the sync between the global and public collections\r\n assets.on('add', model => this.getAllVisible().add(model));\r\n assets.on('remove', model => this.getAllVisible().remove(model));\r\n\r\n return this;\r\n },\r\n\r\n __propEv(ev, ...data) {\r\n this.em.trigger(ev, ...data);\r\n this.getAll().trigger(ev, ...data);\r\n },\r\n\r\n __onAllEvent: debounce(function () {\r\n this.__trgCustom();\r\n }),\r\n\r\n __trgCustom() {\r\n const bhv = this.__getBehaviour();\r\n if (!bhv.container && !this.getConfig('custom').open) {\r\n return;\r\n }\r\n this.em.trigger(this.events.custom, this.__customData());\r\n },\r\n\r\n __customData() {\r\n const bhv = this.__getBehaviour();\r\n return {\r\n am: this,\r\n open: this.isOpen(),\r\n assets: this.getAll().models,\r\n types: bhv.types || [],\r\n container: bhv.container,\r\n close: () => this.close(),\r\n remove: (...args) => this.remove(...args),\r\n select: (asset, complete) => {\r\n const res = this.add(asset);\r\n isFunction(bhv.select) && bhv.select(res, complete);\r\n },\r\n // extra\r\n options: bhv.options || {},\r\n };\r\n },\r\n\r\n /**\r\n * Open the asset manager.\r\n * @param {Object} [options] Options for the asset manager.\r\n * @param {Array} [options.types=['image']] Types of assets to show.\r\n * @param {Function} [options.select] Type of operation to perform on asset selection. If not specified, nothing will happen.\r\n * @example\r\n * assetManager.open({\r\n * select(asset, complete) {\r\n * const selected = editor.getSelected();\r\n * if (selected && selected.is('image')) {\r\n * selected.addAttributes({ src: asset.getSrc() });\r\n * // The default AssetManager UI will trigger `select(asset, false)` on asset click\r\n * // and `select(asset, true)` on double-click\r\n * complete && assetManager.close();\r\n * }\r\n * }\r\n * });\r\n * // with your custom types (you should have assets with those types declared)\r\n * assetManager.open({ types: ['doc'], ... });\r\n */\r\n open(options = {}) {\r\n const cmd = this.em.get('Commands');\r\n cmd.run(assetCmd, {\r\n types: ['image'],\r\n select: () => {},\r\n ...options,\r\n });\r\n },\r\n\r\n /**\r\n * Close the asset manager.\r\n * @example\r\n * assetManager.close();\r\n */\r\n close() {\r\n const cmd = this.em.get('Commands');\r\n cmd.stop(assetCmd);\r\n },\r\n\r\n /**\r\n * Checks if the asset manager is open\r\n * @returns {Boolean}\r\n * @example\r\n * assetManager.isOpen(); // true | false\r\n */\r\n isOpen() {\r\n const cmd = this.em.get('Commands');\r\n return !!(cmd && cmd.isActive(assetCmd));\r\n },\r\n\r\n /**\r\n * Add new asset/s to the collection. URLs are supposed to be unique\r\n * @param {String|Object|Array|Array} asset URL strings or an objects representing the resource.\r\n * @param {Object} [opts] Options\r\n * @returns {[Asset]}\r\n * @example\r\n * // As strings\r\n * assetManager.add('http://img.jpg');\r\n * assetManager.add(['http://img.jpg', './path/to/img.png']);\r\n *\r\n * // Using objects you can indicate the type and other meta informations\r\n * assetManager.add({\r\n * // type: 'image',\t// image is default\r\n * \tsrc: 'http://img.jpg',\r\n * \theight: 300,\r\n *\twidth: 200,\r\n * });\r\n * assetManager.add([{ src: 'img2.jpg' }, { src: 'img2.png' }]);\r\n */\r\n add(asset, opts = {}) {\r\n // Put the model at the beginning\r\n if (typeof opts.at == 'undefined') {\r\n opts.at = 0;\r\n }\r\n\r\n return assets.add(asset, opts);\r\n },\r\n\r\n /**\r\n * Return asset by URL\r\n * @param {String} src URL of the asset\r\n * @returns {[Asset]|null}\r\n * @example\r\n * const asset = assetManager.get('http://img.jpg');\r\n */\r\n get(src) {\r\n return assets.where({ src })[0] || null;\r\n },\r\n\r\n /**\r\n * Return the global collection, containing all the assets\r\n * @returns {Collection<[Asset]>}\r\n */\r\n getAll() {\r\n return assets;\r\n },\r\n\r\n /**\r\n * Return the visible collection, which contains assets actually rendered\r\n * @returns {Collection<[Asset]>}\r\n */\r\n getAllVisible() {\r\n return assetsVis;\r\n },\r\n\r\n /**\r\n * Remove asset\r\n * @param {String|[Asset]} asset Asset or asset URL\r\n * @returns {[Asset]} Removed asset\r\n * @example\r\n * const removed = assetManager.remove('http://img.jpg');\r\n * // or by passing the Asset\r\n * const asset = assetManager.get('http://img.jpg');\r\n * assetManager.remove(asset);\r\n */\r\n remove(asset, opts) {\r\n return this.__remove(asset, opts);\r\n },\r\n\r\n store() {\r\n return this.getProjectData();\r\n },\r\n\r\n load(data) {\r\n return this.loadProjectData(data);\r\n },\r\n\r\n /**\r\n * Return the Asset Manager Container\r\n * @returns {HTMLElement}\r\n */\r\n getContainer() {\r\n const bhv = this.__getBehaviour();\r\n return bhv.container || (am && am.el);\r\n },\r\n\r\n /**\r\n * Get assets element container\r\n * @returns {HTMLElement}\r\n * @private\r\n */\r\n getAssetsEl() {\r\n return am.el.querySelector('[data-el=assets]');\r\n },\r\n\r\n /**\r\n * Render assets\r\n * @param {array} assets Assets to render, without the argument will render all global assets\r\n * @returns {HTMLElement}\r\n * @example\r\n * // Render all assets\r\n * assetManager.render();\r\n *\r\n * // Render some of the assets\r\n * const assets = assetManager.getAll();\r\n * assetManager.render(assets.filter(\r\n * asset => asset.get('category') == 'cats'\r\n * ));\r\n */\r\n render(assts) {\r\n if (this.getConfig('custom')) return;\r\n const toRender = assts || this.getAll().models;\r\n\r\n if (!am) {\r\n const obj = this.__viewParams();\r\n obj.fu = this.FileUploader();\r\n const el = am && am.el;\r\n am = new AssetsView({\r\n el,\r\n ...obj,\r\n });\r\n am.render();\r\n }\r\n\r\n assetsVis.reset(toRender);\r\n return this.getContainer();\r\n },\r\n\r\n __viewParams() {\r\n return {\r\n collection: assetsVis, // Collection visible in asset manager\r\n globalCollection: assets,\r\n config: c,\r\n module: this,\r\n };\r\n },\r\n\r\n /**\r\n * Add new type. If you want to get more about type definition we suggest to read the [module's page](/modules/Assets.html)\r\n * @param {string} id Type ID\r\n * @param {Object} definition Definition of the type. Each definition contains\r\n * `model` (business logic), `view` (presentation logic)\r\n * and `isType` function which recognize the type of the\r\n * passed entity\r\n * @private\r\n * @example\r\n * assetManager.addType('my-type', {\r\n * model: {},\r\n * view: {},\r\n * isType: (value) => {},\r\n * })\r\n */\r\n addType(id, definition) {\r\n this.getAll().addType(id, definition);\r\n },\r\n\r\n /**\r\n * Get type\r\n * @param {string} id Type ID\r\n * @returns {Object} Type definition\r\n * @private\r\n */\r\n getType(id) {\r\n return this.getAll().getType(id);\r\n },\r\n\r\n /**\r\n * Get types\r\n * @returns {Array}\r\n * @private\r\n */\r\n getTypes() {\r\n return this.getAll().getTypes();\r\n },\r\n\r\n //-------\r\n\r\n AssetsView() {\r\n return am;\r\n },\r\n\r\n FileUploader() {\r\n if (!fu) {\r\n fu = new FileUpload(this.__viewParams());\r\n }\r\n return fu;\r\n },\r\n\r\n onLoad() {\r\n this.getAll().reset(c.assets);\r\n const { em, events } = this;\r\n em.on(`run:${assetCmd}`, () => this.__propEv(events.open));\r\n em.on(`stop:${assetCmd}`, () => this.__propEv(events.close));\r\n },\r\n\r\n postRender(editorView) {\r\n c.dropzone && fu && fu.initDropzone(editorView);\r\n },\r\n\r\n /**\r\n * Set new target\r\n * @param\t{Object}\tm Model\r\n * @private\r\n * */\r\n setTarget(m) {\r\n assetsVis.target = m;\r\n },\r\n\r\n /**\r\n * Set callback after asset was selected\r\n * @param\t{Object}\tf Callback function\r\n * @private\r\n * */\r\n onSelect(f) {\r\n assetsVis.onSelect = f;\r\n },\r\n\r\n /**\r\n * Set callback to fire when the asset is clicked\r\n * @param {function} func\r\n * @private\r\n */\r\n onClick(func) {\r\n c.onClick = func;\r\n },\r\n\r\n /**\r\n * Set callback to fire when the asset is double clicked\r\n * @param {function} func\r\n * @private\r\n */\r\n onDblClick(func) {\r\n c.onDblClick = func;\r\n },\r\n\r\n __behaviour(opts = {}) {\r\n return (this._bhv = {\r\n ...(this._bhv || {}),\r\n ...opts,\r\n });\r\n },\r\n\r\n __getBehaviour(opts = {}) {\r\n return this._bhv || {};\r\n },\r\n\r\n destroy() {\r\n assets.stopListening();\r\n assetsVis.stopListening();\r\n assets.reset();\r\n assetsVis.reset();\r\n fu && fu.remove();\r\n am && am.remove();\r\n [assets, assetsVis, am, fu].forEach(i => (i = null));\r\n this._bhv = {};\r\n this.all = {};\r\n c = {};\r\n },\r\n };\r\n};\r\n","export default {\r\n // Specify the element to use as a container, string (query) or HTMLElement\r\n // With the empty value, nothing will be rendered\r\n appendTo: '',\r\n\r\n // Append blocks to canvas on click.\r\n // With the `true` value, it will try to append the block to the selected component.\r\n // If there is no selected component, the block will be appened to the wrapper.\r\n // You can also pass a function to this option, use it as a catch-all for all block\r\n // clicks and implement a custom logic for each block.\r\n // appendOnClick: (block, editor) => {\r\n // if (block.get('id') === 'some-id')\r\n // editor.getSelected().append(block.get('content'))\r\n // else\r\n // editor.getWrapper().append(block.get('content'))\r\n // }\r\n appendOnClick: false,\r\n\r\n // Default blocks\r\n blocks: [],\r\n\r\n // Avoid rendering the default block manager.\r\n custom: false\r\n};\r\n","import { Model } from '../../common';\r\nimport { isFunction } from 'underscore';\r\n\r\n/**\r\n * @property {String} label Block label, eg. `My block`\r\n * @property {String|Object} content The content of the block. Might be an HTML string or a [Component Defintion](/modules/Components.html#component-definition)\r\n * @property {String} [media=''] HTML string for the media/icon of the block, eg. ` editor.getWrapper().append(block.get('content'))`\r\n * @property {Object} [attributes={}] Block attributes to apply in the view element\r\n */\r\nexport default class Block extends Model {\r\n defaults() {\r\n return {\r\n label: '',\r\n content: '',\r\n media: '',\r\n category: '',\r\n activate: false,\r\n select: null,\r\n resetId: false,\r\n disable: false,\r\n onClick: null,\r\n attributes: {},\r\n };\r\n }\r\n\r\n /**\r\n * Get block id\r\n * @returns {String}\r\n */\r\n getId() {\r\n return this.id;\r\n }\r\n\r\n /**\r\n * Get block label\r\n * @returns {String}\r\n */\r\n getLabel() {\r\n return this.get('label');\r\n }\r\n\r\n /**\r\n * Get block media\r\n * @returns {String}\r\n */\r\n getMedia() {\r\n return this.get('media');\r\n }\r\n\r\n /**\r\n * Get block content\r\n * @returns {Object|String|Array} Component definition | HTML string\r\n */\r\n getContent() {\r\n return this.get('content');\r\n }\r\n\r\n /**\r\n * Get block category label\r\n * @returns {String}\r\n */\r\n getCategoryLabel() {\r\n const ctg = this.get('category');\r\n return isFunction(ctg.get) ? ctg.get('label') : ctg.label ? ctg.label : ctg;\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Block from './Block';\r\n\r\nexport default class Blocks extends Collection {}\r\n\r\nBlocks.prototype.model = Block;\r\n","import { Model } from '../../common';\r\n\r\nexport default class Category extends Model {\r\n defaults() {\r\n return {\r\n id: '',\r\n label: '',\r\n open: true,\r\n attributes: {},\r\n };\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Category from './Category';\r\n\r\nexport default class Categories extends Collection {}\r\n\r\nCategories.prototype.model = Category;\r\n","import { isFunction } from 'underscore';\r\nimport { View } from '../../common';\r\nimport { on, off, hasDnd } from '../../utils/mixins';\r\n\r\nexport default class BlockView extends View {\r\n events() {\r\n return {\r\n click: 'handleClick',\r\n mousedown: 'startDrag',\r\n dragstart: 'handleDragStart',\r\n drag: 'handleDrag',\r\n dragend: 'handleDragEnd',\r\n };\r\n }\r\n\r\n initialize(o, config = {}) {\r\n const { model } = this;\r\n this.em = config.em;\r\n this.config = config;\r\n this.endDrag = this.endDrag.bind(this);\r\n this.ppfx = config.pStylePrefix || '';\r\n this.listenTo(model, 'destroy remove', this.remove);\r\n this.listenTo(model, 'change', this.render);\r\n }\r\n\r\n __getModule() {\r\n return this.em.get('BlockManager');\r\n }\r\n\r\n handleClick(ev) {\r\n const { config, model, em } = this;\r\n const onClick = model.get('onClick') || config.appendOnClick;\r\n em.trigger('block:click', model, ev);\r\n if (!onClick) {\r\n return;\r\n } else if (isFunction(onClick)) {\r\n return onClick(model, em.getEditor(), { event: ev });\r\n }\r\n const sorter = config.getSorter();\r\n const content = model.get('content');\r\n const selected = em.getSelected();\r\n sorter.setDropContent(content);\r\n let target, valid, insertAt;\r\n\r\n // If there is a selected component, try first to append\r\n // the block inside, otherwise, try to place it as a next sibling\r\n if (selected) {\r\n valid = sorter.validTarget(selected.getEl(), content);\r\n\r\n if (valid.valid) {\r\n target = selected;\r\n } else {\r\n const parent = selected.parent();\r\n valid = sorter.validTarget(parent.getEl(), content);\r\n if (valid.valid) {\r\n target = parent;\r\n insertAt = parent.components().indexOf(selected) + 1;\r\n }\r\n }\r\n }\r\n\r\n // If no target found yet, try to append the block to the wrapper\r\n if (!target) {\r\n const wrapper = em.getWrapper();\r\n valid = sorter.validTarget(wrapper.getEl(), content);\r\n if (valid.valid) target = wrapper;\r\n }\r\n\r\n const result = target && target.append(content, { at: insertAt })[0];\r\n result && em.setSelected(result, { scroll: 1 });\r\n }\r\n\r\n /**\r\n * Start block dragging\r\n * @private\r\n */\r\n startDrag(e) {\r\n const { config, em, model } = this;\r\n const disable = model.get('disable');\r\n //Right or middel click\r\n if (e.button !== 0 || !config.getSorter || this.el.draggable || disable) return;\r\n em.refreshCanvas();\r\n const sorter = config.getSorter();\r\n sorter.setDragHelper(this.el, e);\r\n sorter.setDropContent(this.model.get('content'));\r\n sorter.startSort(this.el);\r\n on(document, 'mouseup', this.endDrag);\r\n }\r\n\r\n handleDragStart(ev) {\r\n this.__getModule().__startDrag(this.model, ev);\r\n }\r\n\r\n handleDrag(ev) {\r\n this.__getModule().__drag(ev);\r\n }\r\n\r\n handleDragEnd() {\r\n this.__getModule().__endDrag();\r\n }\r\n\r\n /**\r\n * Drop block\r\n * @private\r\n */\r\n endDrag(e) {\r\n off(document, 'mouseup', this.endDrag);\r\n const sorter = this.config.getSorter();\r\n\r\n // After dropping the block in the canvas the mouseup event is not yet\r\n // triggerd on 'this.doc' and so clicking outside, the sorter, tries to move\r\n // things (throws false positives). As this method just need to drop away\r\n // the block helper I use the trick of 'moved = 0' to void those errors.\r\n sorter.moved = 0;\r\n sorter.endMove();\r\n }\r\n\r\n render() {\r\n const { em, el, $el, ppfx, model } = this;\r\n const disable = model.get('disable');\r\n const attr = model.get('attributes') || {};\r\n const cls = attr.class || '';\r\n const className = `${ppfx}block`;\r\n const label = (em && em.t(`blockManager.labels.${model.id}`)) || model.get('label');\r\n const render = model.get('render');\r\n const media = model.get('media');\r\n const clsAdd = disable ? `${className}--disable` : `${ppfx}four-color-h`;\r\n $el.attr(attr);\r\n el.className = `${cls} ${className} ${ppfx}one-bg ${clsAdd}`.trim();\r\n el.innerHTML = `\r\n ${media ? `
${media}
` : ''}\r\n
${label}
\r\n `;\r\n el.title = attr.title || el.textContent.trim();\r\n el.setAttribute('draggable', hasDnd(em) && !disable ? true : false);\r\n const result = render && render({ el, model, className, prefix: ppfx });\r\n if (result) el.innerHTML = result;\r\n return this;\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport html from '../../utils/html';\r\n\r\nexport default class CategoryView extends View {\r\n template({ pfx, label }) {\r\n return html`\r\n
\r\n \r\n ${label}\r\n
\r\n
\r\n `;\r\n }\r\n\r\n attributes() {\r\n return this.model.get('attributes');\r\n }\r\n\r\n initialize(o = {}, config = {}) {\r\n this.config = config;\r\n const pfx = config.pStylePrefix || '';\r\n this.em = config.em;\r\n this.pfx = pfx;\r\n this.caretR = 'fa fa-caret-right';\r\n this.caretD = 'fa fa-caret-down';\r\n this.iconClass = `${pfx}caret-icon`;\r\n this.activeClass = `${pfx}open`;\r\n this.className = `${pfx}block-category`;\r\n this.events = {};\r\n this.events[`click .${pfx}title`] = 'toggle';\r\n this.listenTo(this.model, 'change:open', this.updateVisibility);\r\n this.delegateEvents();\r\n this.model.view = this;\r\n }\r\n\r\n updateVisibility() {\r\n if (this.model.get('open')) this.open();\r\n else this.close();\r\n }\r\n\r\n open() {\r\n this.$el.addClass(this.activeClass);\r\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\r\n this.getBlocksEl().style.display = '';\r\n }\r\n\r\n close() {\r\n this.$el.removeClass(this.activeClass);\r\n this.getIconEl().className = `${this.iconClass} ${this.caretR}`;\r\n this.getBlocksEl().style.display = 'none';\r\n }\r\n\r\n toggle() {\r\n var model = this.model;\r\n model.set('open', !model.get('open'));\r\n }\r\n\r\n getIconEl() {\r\n if (!this.iconEl) {\r\n this.iconEl = this.el.querySelector('.' + this.iconClass);\r\n }\r\n\r\n return this.iconEl;\r\n }\r\n\r\n getBlocksEl() {\r\n if (!this.blocksEl) {\r\n this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c');\r\n }\r\n\r\n return this.blocksEl;\r\n }\r\n\r\n append(el) {\r\n this.getBlocksEl().appendChild(el);\r\n }\r\n\r\n render() {\r\n const { em, el, $el, model, pfx } = this;\r\n const label = em.t(`blockManager.categories.${model.id}`) || model.get('label');\r\n el.innerHTML = this.template({ pfx, label });\r\n $el.addClass(this.className);\r\n $el.css({ order: model.get('order') });\r\n this.updateVisibility();\r\n\r\n return this;\r\n }\r\n}\r\n","import { isString, isObject, bindAll } from 'underscore';\r\nimport { View } from '../../common';\r\nimport BlockView from './BlockView';\r\nimport CategoryView from './CategoryView';\r\n\r\nexport default class BlocksView extends View {\r\n initialize(opts, config) {\r\n bindAll(this, 'getSorter', 'onDrag', 'onDrop', 'onMove');\r\n this.config = config || {};\r\n this.categories = opts.categories || '';\r\n this.renderedCategories = [];\r\n var ppfx = this.config.pStylePrefix || '';\r\n this.ppfx = ppfx;\r\n this.noCatClass = `${ppfx}blocks-no-cat`;\r\n this.blockContClass = `${ppfx}blocks-c`;\r\n this.catsClass = `${ppfx}block-categories`;\r\n const coll = this.collection;\r\n this.listenTo(coll, 'add', this.addTo);\r\n this.listenTo(coll, 'reset', this.render);\r\n this.em = this.config.em;\r\n this.tac = 'test-tac';\r\n this.grabbingCls = this.ppfx + 'grabbing';\r\n\r\n if (this.em) {\r\n this.config.getSorter = this.getSorter;\r\n this.canvas = this.em.get('Canvas');\r\n }\r\n }\r\n\r\n updateConfig(opts = {}) {\r\n this.config = {\r\n ...this.config,\r\n ...opts,\r\n };\r\n }\r\n\r\n /**\r\n * Get sorter\r\n * @private\r\n */\r\n getSorter() {\r\n if (!this.em) return;\r\n if (!this.sorter) {\r\n var utils = this.em.get('Utils');\r\n var canvas = this.canvas;\r\n this.sorter = new utils.Sorter({\r\n container: canvas.getBody(),\r\n placer: canvas.getPlacerEl(),\r\n containerSel: '*',\r\n itemSel: '*',\r\n pfx: this.ppfx,\r\n onStart: this.onDrag,\r\n onEndMove: this.onDrop,\r\n onMove: this.onMove,\r\n document: canvas.getFrameEl().contentDocument,\r\n direction: 'a',\r\n wmargin: 1,\r\n nested: 1,\r\n em: this.em,\r\n canvasRelative: 1,\r\n });\r\n }\r\n return this.sorter;\r\n }\r\n\r\n /**\r\n * Callback when block is on drag\r\n * @private\r\n */\r\n onDrag(e) {\r\n this.em.stopDefault();\r\n this.em.trigger('block:drag:start', e);\r\n }\r\n\r\n onMove(e) {\r\n this.em.trigger('block:drag:move', e);\r\n }\r\n\r\n /**\r\n * Callback when block is dropped\r\n * @private\r\n */\r\n onDrop(model) {\r\n const { em } = this;\r\n em.runDefault();\r\n\r\n if (model && model.get) {\r\n const oldActive = 'activeOnRender';\r\n\r\n if (model.get(oldActive)) {\r\n model.trigger('active');\r\n model.unset(oldActive);\r\n }\r\n\r\n em.trigger('block:drag:stop', model);\r\n }\r\n }\r\n\r\n /**\r\n * Add new model to the collection\r\n * @param {Model} model\r\n * @private\r\n * */\r\n addTo(model) {\r\n this.add(model);\r\n }\r\n\r\n /**\r\n * Render new model inside the view\r\n * @param {Model} model\r\n * @param {Object} fragment Fragment collection\r\n * @private\r\n * */\r\n add(model, fragment) {\r\n const { config } = this;\r\n var frag = fragment || null;\r\n var view = new BlockView(\r\n {\r\n model,\r\n attributes: model.get('attributes'),\r\n },\r\n config\r\n );\r\n var rendered = view.render().el;\r\n var category = model.get('category');\r\n\r\n // Check for categories\r\n if (category && this.categories && !config.ignoreCategories) {\r\n if (isString(category)) {\r\n category = {\r\n id: category,\r\n label: category,\r\n };\r\n } else if (isObject(category) && !category.id) {\r\n category.id = category.label;\r\n }\r\n\r\n var catModel = this.categories.add(category);\r\n var catId = catModel.get('id');\r\n var catView = this.renderedCategories[catId];\r\n var categories = this.getCategoriesEl();\r\n model.set('category', catModel, { silent: true });\r\n\r\n if (!catView && categories) {\r\n catView = new CategoryView(\r\n {\r\n model: catModel,\r\n },\r\n this.config\r\n ).render();\r\n this.renderedCategories[catId] = catView;\r\n categories.appendChild(catView.el);\r\n }\r\n\r\n catView && catView.append(rendered);\r\n return;\r\n }\r\n\r\n if (frag) frag.appendChild(rendered);\r\n else this.append(rendered);\r\n }\r\n\r\n getCategoriesEl() {\r\n if (!this.catsEl) {\r\n this.catsEl = this.el.querySelector(`.${this.catsClass}`);\r\n }\r\n\r\n return this.catsEl;\r\n }\r\n\r\n getBlocksEl() {\r\n if (!this.blocksEl) {\r\n this.blocksEl = this.el.querySelector(`.${this.noCatClass} .${this.blockContClass}`);\r\n }\r\n\r\n return this.blocksEl;\r\n }\r\n\r\n append(el) {\r\n let blocks = this.getBlocksEl();\r\n blocks && blocks.appendChild(el);\r\n }\r\n\r\n render() {\r\n const ppfx = this.ppfx;\r\n const frag = document.createDocumentFragment();\r\n this.catsEl = null;\r\n this.blocksEl = null;\r\n this.renderedCategories = [];\r\n this.el.innerHTML = `\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n this.collection.each(model => this.add(model, frag));\r\n this.append(frag);\r\n const cls = `${this.blockContClass}s ${ppfx}one-bg ${ppfx}two-color`;\r\n this.$el.addClass(cls);\r\n this.rendered = true;\r\n return this;\r\n }\r\n}\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * blockManager: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\r\n *\r\n * ```js\r\n * // Listen to events\r\n * editor.on('block:add', (block) => { ... });\r\n *\r\n * // Use the API\r\n * const blockManager = editor.BlockManager;\r\n * blockManager.add(...);\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `block:add` - Block added. The [Block] is passed as an argument to the callback.\r\n * * `block:remove` - Block removed. The [Block] is passed as an argument to the callback.\r\n * * `block:update` - Block updated. The [Block] and the object containing changes are passed as arguments to the callback.\r\n * * `block:drag:start` - Started dragging block, the [Block] is passed as an argument.\r\n * * `block:drag` - Dragging block, the [Block] is passed as an argument.\r\n * * `block:drag:stop` - Dragging of the block is stopped. The dropped [Component] (if dropped successfully) and the [Block] are passed as arguments.\r\n * * `block` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\r\n *\r\n * ## Methods\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getAll](#getall)\r\n * * [getAllVisible](#getallvisible)\r\n * * [remove](#remove)\r\n * * [getConfig](#getconfig)\r\n * * [getCategories](#getcategories)\r\n * * [getContainer](#getcontainer)\r\n * * [render](#render)\r\n *\r\n * [Block]: block.html\r\n * [Component]: component.html\r\n *\r\n * @module BlockManager\r\n */\r\nimport { isElement, isArray } from 'underscore';\r\nimport Module from '../common/module';\r\nimport defaults from './config/config';\r\nimport Block from './model/Block';\r\nimport Blocks from './model/Blocks';\r\nimport Category from './model/Category';\r\nimport Categories from './model/Categories';\r\nimport BlocksView from './view/BlocksView';\r\n\r\nexport const evAll = 'block';\r\nexport const evPfx = `${evAll}:`;\r\nexport const evAdd = `${evPfx}add`;\r\nexport const evUpdate = `${evPfx}update`;\r\nexport const evRemove = `${evPfx}remove`;\r\nexport const evRemoveBefore = `${evRemove}:before`;\r\nexport const evDrag = `${evPfx}drag`;\r\nexport const evDragStart = `${evDrag}:start`;\r\nexport const evDragStop = `${evDrag}:stop`;\r\nexport const evCustom = `${evPfx}custom`;\r\n\r\nexport default () => {\r\n var c = {};\r\n var blocks, blocksVisible, blocksView;\r\n var categories = [];\r\n\r\n return {\r\n ...Module,\r\n\r\n name: 'BlockManager',\r\n\r\n Block,\r\n\r\n Blocks,\r\n\r\n Category,\r\n\r\n Categories,\r\n\r\n events: {\r\n all: evAll,\r\n update: evUpdate,\r\n add: evAdd,\r\n remove: evRemove,\r\n removeBefore: evRemoveBefore,\r\n drag: evDrag,\r\n dragStart: evDragStart,\r\n dragEnd: evDragStop,\r\n custom: evCustom,\r\n },\r\n\r\n init(config = {}) {\r\n c = { ...defaults, ...config };\r\n const { em } = c;\r\n this.em = em;\r\n\r\n // Global blocks collection\r\n blocks = new Blocks(c.blocks);\r\n blocksVisible = new Blocks(blocks.models);\r\n categories = new Categories();\r\n this.all = blocks;\r\n this.__initListen();\r\n\r\n // Setup the sync between the global and public collections\r\n blocks.on('add', model => blocksVisible.add(model));\r\n blocks.on('remove', model => blocksVisible.remove(model));\r\n blocks.on('reset', coll => blocksVisible.reset(coll.models));\r\n\r\n return this;\r\n },\r\n\r\n __trgCustom() {\r\n this.em.trigger(this.events.custom, this.__customData());\r\n },\r\n\r\n __customData() {\r\n const bhv = this.__getBehaviour();\r\n return {\r\n bm: this,\r\n blocks: this.getAll().models,\r\n container: bhv.container,\r\n dragStart: (block, ev) => this.startDrag(block, ev),\r\n drag: ev => this.__drag(ev),\r\n dragStop: cancel => this.endDrag(cancel),\r\n };\r\n },\r\n\r\n __startDrag(block, ev) {\r\n const { em, events } = this;\r\n const content = block.getContent ? block.getContent() : block;\r\n this._dragBlock = block;\r\n em.set({ dragResult: null, dragContent: content });\r\n [em, blocks].map(i => i.trigger(events.dragStart, block, ev));\r\n },\r\n\r\n __drag(ev) {\r\n const { em, events } = this;\r\n const block = this._dragBlock;\r\n [em, blocks].map(i => i.trigger(events.drag, block, ev));\r\n },\r\n\r\n __endDrag() {\r\n const { em, events } = this;\r\n const block = this._dragBlock;\r\n const cmp = em.get('dragResult');\r\n this._dragBlock = null;\r\n\r\n if (cmp) {\r\n const oldKey = 'activeOnRender';\r\n const oldActive = cmp.get && cmp.get(oldKey);\r\n const toActive = block.get('activate') || oldActive;\r\n const toSelect = block.get('select');\r\n const first = isArray(cmp) ? cmp[0] : cmp;\r\n\r\n if (toSelect || (toActive && toSelect !== false)) {\r\n em.setSelected(first);\r\n }\r\n\r\n if (toActive) {\r\n first.trigger('active');\r\n oldActive && first.unset(oldKey);\r\n }\r\n\r\n if (block.get('resetId')) {\r\n first.onAll(block => block.resetId());\r\n }\r\n }\r\n\r\n em.set({ dragResult: null, dragContent: null });\r\n [em, blocks].map(i => i.trigger(events.dragEnd, cmp, block));\r\n },\r\n\r\n __getFrameViews() {\r\n return this.em\r\n .get('Canvas')\r\n .getFrames()\r\n .map(frame => frame.view);\r\n },\r\n\r\n __behaviour(opts = {}) {\r\n return (this._bhv = {\r\n ...(this._bhv || {}),\r\n ...opts,\r\n });\r\n },\r\n\r\n __getBehaviour() {\r\n return this._bhv || {};\r\n },\r\n\r\n startDrag(block, ev) {\r\n this.__startDrag(block, ev);\r\n this.__getFrameViews().forEach(fv => fv.droppable.startCustom());\r\n },\r\n\r\n endDrag(cancel) {\r\n this.__getFrameViews().forEach(fv => fv.droppable.endCustom(cancel));\r\n this.__endDrag();\r\n },\r\n\r\n /**\r\n * Get configuration object\r\n * @return {Object}\r\n */\r\n getConfig() {\r\n return c;\r\n },\r\n\r\n postRender() {\r\n const collection = blocksVisible;\r\n blocksView = new BlocksView({ collection, categories }, c);\r\n const elTo = this.getConfig().appendTo;\r\n\r\n if (elTo) {\r\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\r\n if (!el) return this.__logWarn('\"appendTo\" element not found');\r\n el.appendChild(this.render(blocksVisible.models));\r\n }\r\n\r\n this.__trgCustom();\r\n },\r\n\r\n /**\r\n * Add new block.\r\n * @param {String} id Block ID\r\n * @param {[Block]} props Block properties\r\n * @returns {[Block]} Added block\r\n * @example\r\n * blockManager.add('h1-block', {\r\n * label: 'Heading',\r\n * content: '

Put your title here

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

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

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

Title frame

',\r\n * '

Paragraph frame

',\r\n * ],\r\n * styles: `\r\n * .testh { color: red; }\r\n * .testp { color: blue; }\r\n * `,\r\n * });\r\n */\r\n addFrame(props = {}, opts = {}) {\r\n return canvas.get('frames').add(\r\n {\r\n ...props,\r\n },\r\n {\r\n ...opts,\r\n em: this.em,\r\n }\r\n );\r\n },\r\n\r\n destroy() {\r\n canvas.stopListening();\r\n CanvasView && CanvasView.remove();\r\n [c, canvas, CanvasView].forEach(i => (i = {}));\r\n ['em', 'model', 'droppable'].forEach(i => (this[i] = {}));\r\n },\r\n };\r\n};\r\n","import { result, forEach, isEmpty, isString } from 'underscore';\r\nimport { Model } from '../../common';\r\nimport { isComponent, isObject } from '../../utils/mixins';\r\n\r\nconst keyAutoW = '__aw';\r\nconst keyAutoH = '__ah';\r\n\r\n/**\r\n * @property {Object|String} component Wrapper component definition. You can also pass an HTML string as components of the default wrapper component.\r\n * @property {String} [width=''] Width of the frame. By default, the canvas width will be taken.\r\n * @property {String} [height=''] Height of the frame. By default, the canvas height will be taken.\r\n * @property {Number} [x=0] Horizontal position of the frame in the canvas.\r\n * @property {Number} [y=0] Vertical position of the frame in the canvas.\r\n *\r\n */\r\nexport default class Frame extends Model {\r\n defaults() {\r\n return {\r\n x: 0,\r\n y: 0,\r\n changesCount: 0,\r\n attributes: {},\r\n width: null,\r\n height: null,\r\n head: [],\r\n component: '',\r\n styles: '',\r\n _undo: true,\r\n _undoexc: ['changesCount'],\r\n };\r\n }\r\n\r\n initialize(props, opts = {}) {\r\n const { config } = opts;\r\n const { em } = config;\r\n const { styles, component } = this.attributes;\r\n const domc = em.get('DomComponents');\r\n const conf = domc.getConfig();\r\n const allRules = em.get('CssComposer').getAll();\r\n const idMap = {};\r\n this.em = em;\r\n const modOpts = { em, config: conf, frame: this, idMap };\r\n\r\n if (!isComponent(component)) {\r\n const wrp = isObject(component) ? component : { components: component };\r\n !wrp.type && (wrp.type = 'wrapper');\r\n const Wrapper = domc.getType('wrapper').model;\r\n this.set('component', new Wrapper(wrp, modOpts));\r\n }\r\n\r\n if (!styles) {\r\n this.set('styles', allRules);\r\n } else if (!isObject(styles)) {\r\n // Avoid losing styles on remapped components\r\n const idMapKeys = Object.keys(idMap);\r\n if (idMapKeys.length && Array.isArray(styles)) {\r\n styles.forEach(style => {\r\n const sel = style.selectors;\r\n if (sel && sel.length == 1) {\r\n const sSel = sel[0];\r\n const idSel = sSel.name && sSel.type === 2 && sSel;\r\n if (idSel && idMap[idSel.name]) {\r\n idSel.name = idMap[idSel.name];\r\n } else if (isString(sSel) && sSel[0] === '#') {\r\n const prevId = sSel.substring(1);\r\n if (prevId && idMap[prevId]) {\r\n sel[0] = `#${idMap[prevId]}`;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n allRules.add(styles);\r\n this.set('styles', allRules);\r\n }\r\n\r\n !props.width && this.set(keyAutoW, 1);\r\n !props.height && this.set(keyAutoH, 1);\r\n }\r\n\r\n onRemove() {\r\n this.getComponent().remove({ root: 1 });\r\n }\r\n\r\n changesUp(opt = {}) {\r\n if (opt.temporary || opt.noCount || opt.avoidStore) {\r\n return;\r\n }\r\n this.set('changesCount', this.get('changesCount') + 1);\r\n }\r\n\r\n getComponent() {\r\n return this.get('component');\r\n }\r\n\r\n getStyles() {\r\n return this.get('styles');\r\n }\r\n\r\n disable() {\r\n this.trigger('disable');\r\n }\r\n\r\n remove() {\r\n this.view = 0;\r\n const coll = this.collection;\r\n return coll && coll.remove(this);\r\n }\r\n\r\n getHead() {\r\n const head = this.get('head') || [];\r\n return [...head];\r\n }\r\n\r\n setHead(value) {\r\n return this.set('head', [...value]);\r\n }\r\n\r\n addHeadItem(item) {\r\n const head = this.getHead();\r\n head.push(item);\r\n this.setHead(head);\r\n }\r\n\r\n getHeadByAttr(attr, value, tag) {\r\n const head = this.getHead();\r\n return head.filter(item => item.attributes && item.attributes[attr] == value && (!tag || tag === item.tag))[0];\r\n }\r\n\r\n removeHeadByAttr(attr, value, tag) {\r\n const head = this.getHead();\r\n const item = this.getHeadByAttr(attr, value, tag);\r\n const index = head.indexOf(item);\r\n\r\n if (index >= 0) {\r\n head.splice(index, 1);\r\n this.setHead(head);\r\n }\r\n }\r\n\r\n addLink(href) {\r\n const tag = 'link';\r\n !this.getHeadByAttr('href', href, tag) &&\r\n this.addHeadItem({\r\n tag,\r\n attributes: {\r\n href,\r\n rel: 'stylesheet',\r\n },\r\n });\r\n }\r\n\r\n removeLink(href) {\r\n this.removeHeadByAttr('href', href, 'link');\r\n }\r\n\r\n addScript(src) {\r\n const tag = 'script';\r\n !this.getHeadByAttr('src', src, tag) &&\r\n this.addHeadItem({\r\n tag,\r\n attributes: { src },\r\n });\r\n }\r\n\r\n removeScript(src) {\r\n this.removeHeadByAttr('src', src, 'script');\r\n }\r\n\r\n getPage() {\r\n const coll = this.collection;\r\n return coll && coll.page;\r\n }\r\n\r\n _emitUpdated(data = {}) {\r\n this.em.trigger('frame:updated', { frame: this, ...data });\r\n }\r\n\r\n toJSON(opts = {}) {\r\n const obj = Model.prototype.toJSON.call(this, opts);\r\n const defaults = result(this, 'defaults');\r\n\r\n if (opts.fromUndo) delete obj.component;\r\n delete obj.styles;\r\n delete obj.changesCount;\r\n obj[keyAutoW] && delete obj.width;\r\n obj[keyAutoH] && delete obj.height;\r\n\r\n // Remove private keys\r\n forEach(obj, (value, key) => {\r\n key.indexOf('_') === 0 && delete obj[key];\r\n });\r\n\r\n forEach(defaults, (value, key) => {\r\n if (obj[key] === value) delete obj[key];\r\n });\r\n\r\n forEach(['attributes', 'head'], prop => {\r\n if (isEmpty(obj[prop])) delete obj[prop];\r\n });\r\n\r\n return obj;\r\n }\r\n}\r\n","import { bindAll } from 'underscore';\r\nimport { Collection } from '../../common';\r\nimport Frame from './Frame';\r\n\r\nexport default class Frames extends Collection {\r\n initialize(models, config = {}) {\r\n bindAll(this, 'itemLoaded');\r\n this.config = config;\r\n this.on('reset', this.onReset);\r\n this.on('remove', this.onRemove);\r\n }\r\n\r\n onReset(m, opts = {}) {\r\n const prev = opts.previousModels || [];\r\n prev.map(p => this.onRemove(p));\r\n }\r\n\r\n onRemove(removed) {\r\n removed && removed.onRemove();\r\n }\r\n\r\n itemLoaded() {\r\n this.loadedItems++;\r\n\r\n if (this.loadedItems >= this.itemsToLoad) {\r\n this.trigger('loaded:all');\r\n this.listenToLoadItems(0);\r\n }\r\n }\r\n\r\n listenToLoad() {\r\n this.loadedItems = 0;\r\n this.itemsToLoad = this.length;\r\n this.listenToLoadItems(1);\r\n }\r\n\r\n listenToLoadItems(on) {\r\n this.forEach(item => item[on ? 'on' : 'off']('loaded', this.itemLoaded));\r\n }\r\n\r\n add(m, o = {}) {\r\n const { config } = this;\r\n return Collection.prototype.add.call(this, m, { ...o, config });\r\n }\r\n}\r\n\r\nFrames.prototype.model = Frame;\r\n","export default {\r\n // Style prefix\r\n stylePrefix: 'cm-',\r\n\r\n inlineCss: false\r\n};\r\n","import { Model } from '../../common';\r\n\r\nexport default class HTMLGenerator extends Model {\r\n build(model, opts = {}) {\r\n const htmlOpts = {};\r\n const { em } = opts;\r\n\r\n // Remove unnecessary IDs\r\n if (opts.cleanId && em) {\r\n const rules = em.get('CssComposer').getAll();\r\n const idRules = rules\r\n .toJSON()\r\n .map(rule => {\r\n const sels = rule.selectors;\r\n const sel = sels && sels.length === 1 && sels.models[0];\r\n return sel && sel.isId() && sel.get('name');\r\n })\r\n .filter(i => i);\r\n\r\n htmlOpts.attributes = (mod, attrs) => {\r\n const { id } = attrs;\r\n if (\r\n id &&\r\n id[0] === 'i' && // all autogenerated IDs start with 'i'\r\n !mod.get('script') && // if the component has script, we have to leave the ID\r\n !mod.get('attributes').id && // id is not intentionally in attributes\r\n idRules.indexOf(id) < 0 // we shouldn't have any rule with this ID\r\n ) {\r\n delete attrs.id;\r\n }\r\n return attrs;\r\n };\r\n }\r\n\r\n return model.toHTML(htmlOpts);\r\n }\r\n}\r\n","import { each } from 'underscore';\r\nimport { Model, Collection } from '../../common';\r\n\r\nexport default class JsonGenerator extends Model {\r\n build(model) {\r\n var json = model.toJSON();\r\n this.beforeEach(json);\r\n\r\n each(\r\n json,\r\n function (v, attr) {\r\n var obj = json[attr];\r\n if (obj instanceof Model) {\r\n json[attr] = this.build(obj);\r\n } else if (obj instanceof Collection) {\r\n var coll = obj;\r\n json[attr] = [];\r\n if (coll.length) {\r\n coll.each(function (el, index) {\r\n json[attr][index] = this.build(el);\r\n }, this);\r\n }\r\n }\r\n },\r\n this\r\n );\r\n\r\n return json;\r\n }\r\n\r\n /**\r\n * Execute on each object\r\n * @param {Object} obj\r\n */\r\n beforeEach(obj) {\r\n delete obj.status;\r\n }\r\n}\r\n","import { bindAll } from 'underscore';\r\nimport { Model } from '../../common';\r\nimport { hasWin } from '../../utils/mixins';\r\n\r\nlet CodeMirror;\r\n\r\nif (hasWin()) {\r\n CodeMirror = require('codemirror/lib/codemirror');\r\n require('codemirror/mode/htmlmixed/htmlmixed');\r\n require('codemirror/mode/css/css');\r\n require('codemirror-formatting');\r\n}\r\n\r\nexport default class CodeMirrorEditor extends Model {\r\n defaults() {\r\n return {\r\n input: '',\r\n label: '',\r\n codeName: '',\r\n theme: 'hopscotch',\r\n readOnly: true,\r\n lineNumbers: true,\r\n };\r\n }\r\n\r\n init(el) {\r\n bindAll(this, 'onChange');\r\n this.editor = CodeMirror.fromTextArea(el, {\r\n dragDrop: false,\r\n lineWrapping: true,\r\n mode: this.get('codeName'),\r\n ...this.attributes,\r\n });\r\n this.element = el;\r\n this.editor.on('change', this.onChange);\r\n\r\n return this;\r\n }\r\n\r\n onChange() {\r\n this.trigger('update', this);\r\n }\r\n\r\n getEditor() {\r\n return this.editor;\r\n }\r\n\r\n /**\r\n * The element where the viewer is attached\r\n * @return {HTMLElement}\r\n */\r\n getElement() {\r\n return this.element;\r\n }\r\n\r\n /**\r\n * Set the element which contains the viewer attached.\r\n * Generally, it should be just a textarea, but some editor might require\r\n * a container for it some in that case this method can be used\r\n * @param {HTMLElement} el\r\n * @return {self}\r\n */\r\n setElement(el) {\r\n this.element = el;\r\n return this;\r\n }\r\n\r\n /**\r\n * Refresh the viewer\r\n * @return {self}\r\n */\r\n refresh() {\r\n this.getEditor().refresh();\r\n return this;\r\n }\r\n\r\n /**\r\n * Focus the viewer\r\n * @return {self}\r\n */\r\n focus() {\r\n this.getEditor().focus();\r\n return this;\r\n }\r\n\r\n getContent() {\r\n const ed = this.getEditor();\r\n return ed && ed.getValue();\r\n }\r\n\r\n /** @inheritdoc */\r\n setContent(v, opts = {}) {\r\n const { editor } = this;\r\n if (!editor) return;\r\n editor.setValue(v);\r\n\r\n if (editor.autoFormatRange) {\r\n CodeMirror.commands.selectAll(editor);\r\n editor.autoFormatRange(editor.getCursor(true), editor.getCursor(false));\r\n CodeMirror.commands.goDocStart(editor);\r\n }\r\n\r\n !opts.noRefresh && setTimeout(() => this.refresh());\r\n }\r\n}\r\n\r\nCodeMirrorEditor.prototype.CodeMirror = CodeMirror;\r\n","import { extend } from 'underscore';\r\nimport { Model } from '../../common';\r\n\r\nfunction isFunctionEmpty(fn) {\r\n const content = fn.toString().match(/\\{([\\s\\S]*)\\}/m)[1]; // content between first and last { }\r\n return content.replace(/^\\s*\\/\\/.*$/gm, '').trim().length === 0; // remove comments\r\n}\r\n\r\nexport default class JsGenerator extends Model {\r\n mapModel(model) {\r\n var code = '';\r\n var script = model.get('script-export') || model.get('script');\r\n var type = model.get('type');\r\n var comps = model.get('components');\r\n var id = model.getId();\r\n\r\n if (script) {\r\n // If the component has scripts we need to expose his ID\r\n var attr = model.get('attributes');\r\n attr = extend({}, attr, { id });\r\n model.set('attributes', attr, { silent: 1 });\r\n var scrStr = model.getScriptString(script);\r\n const scrProps = model.get('script-props');\r\n\r\n // If the script was updated, I'll put its code in a separate container\r\n if (model.get('scriptUpdated') && !scrProps) {\r\n this.mapJs[type + '-' + id] = { ids: [id], code: scrStr };\r\n } else {\r\n let props;\r\n const mapType = this.mapJs[type];\r\n\r\n if (scrProps) {\r\n props = model.__getScriptProps();\r\n }\r\n\r\n if (mapType) {\r\n mapType.ids.push(id);\r\n if (props) mapType.props[id] = props;\r\n } else {\r\n const res = { ids: [id], code: scrStr };\r\n if (props) res.props = { [id]: props };\r\n this.mapJs[type] = res;\r\n }\r\n }\r\n }\r\n\r\n comps.each(function (model) {\r\n code += this.mapModel(model);\r\n }, this);\r\n\r\n return code;\r\n }\r\n\r\n build(model) {\r\n this.mapJs = {};\r\n this.mapModel(model);\r\n let code = '';\r\n\r\n for (let type in this.mapJs) {\r\n const mapType = this.mapJs[type];\r\n\r\n if (!mapType.code) {\r\n continue;\r\n }\r\n\r\n if (mapType.props) {\r\n if (isFunctionEmpty(mapType.code)) {\r\n continue;\r\n }\r\n\r\n code += `\r\n var props = ${JSON.stringify(mapType.props)};\r\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\r\n var els = document.querySelectorAll(ids);\r\n for (var i = 0, len = els.length; i < len; i++) {\r\n var el = els[i];\r\n (${mapType.code}.bind(el))(props[el.id]);\r\n }`;\r\n } else {\r\n // Deprecated\r\n const ids = '#' + mapType.ids.join(', #');\r\n code += `\r\n var items = document.querySelectorAll('${ids}');\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n (function(){\\n${mapType.code}\\n}.bind(items[i]))();\r\n }`;\r\n }\r\n }\r\n\r\n return code;\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport html from '../../utils/html';\r\n\r\nexport default class EditorView extends View {\r\n template({ pfx, codeName, label }) {\r\n return html`\r\n
\r\n
${label}
\r\n
\r\n
\r\n `;\r\n }\r\n\r\n initialize(o) {\r\n this.config = o.config || {};\r\n this.pfx = this.config.stylePrefix;\r\n }\r\n\r\n render() {\r\n const { model, pfx, $el } = this;\r\n const obj = model.toJSON();\r\n obj.pfx = pfx;\r\n $el.html(this.template(obj));\r\n $el.attr('class', `${pfx}editor-c`);\r\n $el.find(`#${pfx}code`).append(model.get('input'));\r\n return this;\r\n }\r\n}\r\n","/**\r\n * - [addGenerator](#addgenerator)\r\n * - [getGenerator](#getgenerator)\r\n * - [getGenerators](#getgenerators)\r\n * - [addViewer](#addviewer)\r\n * - [getViewer](#getviewer)\r\n * - [getViewers](#getviewers)\r\n * - [updateViewer](#updateviewer)\r\n * - [getCode](#getcode)\r\n *\r\n *\r\n * Before using methods you should get first the module from the editor instance, in this way:\r\n *\r\n * ```js\r\n * var codeManager = editor.CodeManager;\r\n * ```\r\n *\r\n * @module CodeManager\r\n */\r\nimport { isUndefined } from 'underscore';\r\nimport defaults from './config/config';\r\nimport gHtml from './model/HtmlGenerator';\r\nimport gCss from './model/CssGenerator';\r\nimport gJson from './model/JsonGenerator';\r\nimport gJs from './model/JsGenerator';\r\nimport eCM from './model/CodeMirrorEditor';\r\nimport editorView from './view/EditorView';\r\n\r\nexport default () => {\r\n var c = {};\r\n var generators = {},\r\n defGenerators = {},\r\n viewers = {},\r\n defViewers = {};\r\n\r\n const defaultViewer = 'CodeMirror';\r\n\r\n return {\r\n getConfig() {\r\n return c;\r\n },\r\n\r\n config: c,\r\n\r\n EditorView: editorView,\r\n\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'CodeManager',\r\n\r\n /**\r\n * Initialize module. Automatically called with a new instance of the editor\r\n * @param {Object} config Configurations\r\n */\r\n init(config) {\r\n c = config || {};\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n defGenerators.html = new gHtml();\r\n defGenerators.css = new gCss();\r\n defGenerators.json = new gJson();\r\n defGenerators.js = new gJs();\r\n defViewers.CodeMirror = new eCM();\r\n this.loadDefaultGenerators().loadDefaultViewers();\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Add new code generator to the collection\r\n * @param {string} id Code generator ID\r\n * @param {Object} generator Code generator wrapper\r\n * @param {Function} generator.build Function that builds the code\r\n * @return {this}\r\n * @example\r\n * codeManager.addGenerator('html7',{\r\n * build: function(model){\r\n * return 'myCode';\r\n * }\r\n * });\r\n * */\r\n addGenerator(id, generator) {\r\n generators[id] = generator;\r\n return this;\r\n },\r\n\r\n /**\r\n * Get code generator by id\r\n * @param {string} id Code generator ID\r\n * @return {Object|null}\r\n * @example\r\n * var generator = codeManager.getGenerator('html7');\r\n * generator.build = function(model){\r\n * //extend\r\n * };\r\n * */\r\n getGenerator(id) {\r\n return generators[id] || null;\r\n },\r\n\r\n /**\r\n * Returns all code generators\r\n * @return {Array}\r\n * */\r\n getGenerators() {\r\n return generators;\r\n },\r\n\r\n /**\r\n * Add new code viewer\r\n * @param {string} id Code viewer ID\r\n * @param {Object} viewer Code viewer wrapper\r\n * @param {Function} viewer.init Set element on which viewer will be displayed\r\n * @param {Function} viewer.setContent Set content to the viewer\r\n * @return {this}\r\n * @example\r\n * codeManager.addViewer('ace',{\r\n * init: function(el){\r\n * var ace = require('ace-editor');\r\n * this.editor = ace.edit(el.id);\r\n * },\r\n * setContent: function(code){\r\n * this.editor.setValue(code);\r\n * }\r\n * });\r\n * */\r\n addViewer(id, viewer) {\r\n viewers[id] = viewer;\r\n return this;\r\n },\r\n\r\n /**\r\n * Get code viewer by id\r\n * @param {string} id Code viewer ID\r\n * @return {Object|null}\r\n * @example\r\n * var viewer = codeManager.getViewer('ace');\r\n * */\r\n getViewer(id) {\r\n return viewers[id] || null;\r\n },\r\n\r\n /**\r\n * Returns all code viewers\r\n * @return {Array}\r\n * */\r\n getViewers() {\r\n return viewers;\r\n },\r\n\r\n createViewer(opts = {}) {\r\n const type = !isUndefined(opts.type) ? opts.type : defaultViewer;\r\n const viewer = this.getViewer(type) && this.getViewer(type).clone();\r\n const cont = document.createElement('div');\r\n const txtarea = document.createElement('textarea');\r\n cont.appendChild(txtarea);\r\n viewer.set(opts);\r\n viewer.init(txtarea);\r\n viewer.setElement(cont);\r\n\r\n return viewer;\r\n },\r\n\r\n /**\r\n * Update code viewer content\r\n * @param {Object} viewer Viewer instance\r\n * @param {string} code Code string\r\n * @example\r\n * var AceViewer = codeManager.getViewer('ace');\r\n * // ...\r\n * var viewer = AceViewer.init(el);\r\n * // ...\r\n * codeManager.updateViewer(AceViewer, 'code');\r\n * */\r\n updateViewer(viewer, code) {\r\n viewer.setContent(code);\r\n },\r\n\r\n /**\r\n * Get code from model\r\n * @param {Object} model Any kind of model that will be passed to the build method of generator\r\n * @param {string} genId Code generator id\r\n * @param {Object} [opt] Options\r\n * @return {string}\r\n * @example\r\n * var codeStr = codeManager.getCode(model, 'html');\r\n * */\r\n getCode(model, genId, opt = {}) {\r\n opt.em = c.em;\r\n var generator = this.getGenerator(genId);\r\n return generator ? generator.build(model, opt) : '';\r\n },\r\n\r\n /**\r\n * Load default code generators\r\n * @return {this}\r\n * @private\r\n * */\r\n loadDefaultGenerators() {\r\n for (var id in defGenerators) this.addGenerator(id, defGenerators[id]);\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Load default code viewers\r\n * @return {this}\r\n * @private\r\n * */\r\n loadDefaultViewers() {\r\n for (var id in defViewers) this.addViewer(id, defViewers[id]);\r\n\r\n return this;\r\n },\r\n\r\n destroy() {\r\n [c, generators, defGenerators, viewers, defViewers].forEach(\r\n i => (i = {})\r\n );\r\n }\r\n };\r\n};\r\n","import { bindAll, isUndefined, each } from 'underscore';\r\nimport { Model } from '../../common';\r\nimport { hasWin } from '../../utils/mixins';\r\n\r\nconst maxValue = Number.MAX_VALUE;\r\n\r\nexport const getMediaLength = mediaQuery => {\r\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\r\n return !length ? '' : length[0];\r\n};\r\n\r\nexport default class CssGenerator extends Model {\r\n initialize() {\r\n bindAll(this, 'sortRules');\r\n this.compCls = [];\r\n this.ids = [];\r\n }\r\n\r\n /**\r\n * Get CSS from a component\r\n * @param {Model} model\r\n * @return {String}\r\n */\r\n buildFromModel(model, opts = {}) {\r\n let code = '';\r\n const em = this.em;\r\n const avoidInline = em && em.getConfig('avoidInlineStyle');\r\n const style = model.styleToString();\r\n const classes = model.get('classes');\r\n this.ids.push(`#${model.getId()}`);\r\n\r\n // Let's know what classes I've found\r\n classes.each(model => this.compCls.push(model.getFullName()));\r\n\r\n if (!avoidInline && style) {\r\n code = `#${model.getId()}{${style}}`;\r\n }\r\n\r\n const components = model.components();\r\n components.each(model => (code += this.buildFromModel(model, opts)));\r\n return code;\r\n }\r\n\r\n build(model, opts = {}) {\r\n const { json } = opts;\r\n const em = opts.em || '';\r\n const cssc = opts.cssc || (em && em.get('CssComposer'));\r\n this.em = em;\r\n this.compCls = [];\r\n this.ids = [];\r\n this.model = model;\r\n const codeJson = [];\r\n let code = model ? this.buildFromModel(model, opts) : '';\r\n const clearStyles = isUndefined(opts.clearStyles) && em ? em.getConfig('clearStyles') : opts.clearStyles;\r\n\r\n if (cssc) {\r\n let rules = opts.rules || cssc.getAll();\r\n const atRules = {};\r\n const dump = [];\r\n\r\n if (opts.onlyMatched && model && hasWin()) {\r\n rules = this.matchedRules(model, rules);\r\n }\r\n\r\n rules.forEach(rule => {\r\n const atRule = rule.getAtRule();\r\n\r\n if (atRule) {\r\n const mRules = atRules[atRule];\r\n if (mRules) {\r\n mRules.push(rule);\r\n } else {\r\n atRules[atRule] = [rule];\r\n }\r\n return;\r\n }\r\n\r\n const res = this.buildFromRule(rule, dump, opts);\r\n\r\n if (json) {\r\n codeJson.push(res);\r\n } else {\r\n code += res;\r\n }\r\n });\r\n\r\n this.sortMediaObject(atRules).forEach(item => {\r\n let rulesStr = '';\r\n const atRule = item.key;\r\n const mRules = item.value;\r\n\r\n mRules.forEach(rule => {\r\n const ruleStr = this.buildFromRule(rule, dump, opts);\r\n\r\n if (rule.get('singleAtRule')) {\r\n code += `${atRule}{${ruleStr}}`;\r\n } else {\r\n rulesStr += ruleStr;\r\n }\r\n\r\n json && codeJson.push(ruleStr);\r\n });\r\n\r\n if (rulesStr) {\r\n code += `${atRule}{${rulesStr}}`;\r\n }\r\n });\r\n\r\n em && clearStyles && rules.remove && rules.remove(dump);\r\n }\r\n\r\n return json ? codeJson.filter(r => r) : code;\r\n }\r\n\r\n /**\r\n * Get CSS from the rule model\r\n * @param {Model} rule\r\n * @return {string} CSS string\r\n */\r\n buildFromRule(rule, dump, opts = {}) {\r\n let result = '';\r\n const { model } = this;\r\n const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 });\r\n const selectorsAdd = rule.get('selectorsAdd');\r\n const singleAtRule = rule.get('singleAtRule');\r\n let found;\r\n\r\n // This will not render a rule if there is no its component\r\n rule.get('selectors').each(selector => {\r\n const name = selector.getFullName();\r\n if (this.compCls.indexOf(name) >= 0 || this.ids.indexOf(name) >= 0 || opts.keepUnusedStyles) {\r\n found = 1;\r\n }\r\n });\r\n\r\n if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule || !model) {\r\n const block = rule.getDeclaration({ body: 1 });\r\n block && (opts.json ? (result = rule) : (result += block));\r\n } else {\r\n dump.push(rule);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Get matched rules of a component\r\n * @param {Component} component\r\n * @param {Array} rules\r\n * @returns {Array}\r\n */\r\n matchedRules(component, rules) {\r\n const el = component.getEl();\r\n let result = [];\r\n\r\n rules.forEach(rule => {\r\n try {\r\n if (\r\n rule\r\n .selectorsToString()\r\n .split(',')\r\n .some(selector => el.matches(this.__cleanSelector(selector)))\r\n ) {\r\n result.push(rule);\r\n }\r\n } catch (err) {}\r\n });\r\n\r\n component.components().forEach(component => {\r\n result = result.concat(this.matchedRules(component, rules));\r\n });\r\n\r\n // Remove duplicates\r\n result = result.filter((rule, i) => result.indexOf(rule) === i);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Get the numeric length of the media query string\r\n * @param {String} mediaQuery Media query string\r\n * @return {Number}\r\n */\r\n getQueryLength(mediaQuery) {\r\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\r\n if (!length) return maxValue;\r\n\r\n return parseFloat(length[1]);\r\n }\r\n\r\n /**\r\n * Return a sorted array from media query object\r\n * @param {Object} items\r\n * @return {Array}\r\n */\r\n sortMediaObject(items = {}) {\r\n const itemsArr = [];\r\n each(items, (value, key) => itemsArr.push({ key, value }));\r\n return itemsArr.sort((a, b) => {\r\n const isMobFirst = [a.key, b.key].every(mquery => mquery.indexOf('min-width') !== -1);\r\n const left = isMobFirst ? a.key : b.key;\r\n const right = isMobFirst ? b.key : a.key;\r\n return this.getQueryLength(left) - this.getQueryLength(right);\r\n });\r\n }\r\n\r\n sortRules(a, b) {\r\n const getKey = rule => rule.get('mediaText');\r\n const isMobFirst = [getKey(a), getKey(b)].every(q => q.indexOf('min-width') !== -1);\r\n const left = isMobFirst ? getKey(a) : getKey(b);\r\n const right = isMobFirst ? getKey(b) : getKey(a);\r\n return this.getQueryLength(left) - this.getQueryLength(right);\r\n }\r\n\r\n /**\r\n * Return passed selector without states\r\n * @param {String} selector\r\n * @returns {String}\r\n * @private\r\n */\r\n __cleanSelector(selector) {\r\n return selector\r\n .split(' ')\r\n .map(item => item.split(':')[0])\r\n .join(' ');\r\n }\r\n}\r\n","export default {\r\n stylePrefix: 'com-',\r\n\r\n // Default array of commands\r\n defaults: [],\r\n\r\n // If true, stateful commands (with `run` and `stop` methods) can't be runned multiple times.\r\n // So, if the command is already active, running it again will not execute the `run` method\r\n strict: 1\r\n};\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * commands: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\r\n *\r\n * ```js\r\n * // Listen to events\r\n * editor.on('run', () => { ... });\r\n *\r\n * // Use the API\r\n * const commands = editor.Commands;\r\n * commands.add(...);\r\n * ```\r\n *\r\n ** ## Available Events\r\n * * `run:{commandName}` - Triggered when some command is called to run (eg. editor.runCommand('preview'))\r\n * * `stop:{commandName}` - Triggered when some command is called to stop (eg. editor.stopCommand('preview'))\r\n * * `run:{commandName}:before` - Triggered before the command is called\r\n * * `stop:{commandName}:before` - Triggered before the command is called to stop\r\n * * `abort:{commandName}` - Triggered when the command execution is aborted (`editor.on(`run:preview:before`, opts => opts.abort = 1);`)\r\n * * `run` - Triggered on run of any command. The id and the result are passed as arguments to the callback\r\n * * `stop` - Triggered on stop of any command. The id and the result are passed as arguments to the callback\r\n *\r\n * ## Methods\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getAll](#getall)\r\n * * [extend](#extend)\r\n * * [has](#has)\r\n * * [run](#run)\r\n * * [stop](#stop)\r\n * * [isActive](#isactive)\r\n * * [getActive](#getactive)\r\n *\r\n * @module Commands\r\n */\r\n\r\nimport { isFunction, includes } from 'underscore';\r\nimport CommandAbstract from './view/CommandAbstract';\r\nimport defaults from './config/config';\r\nimport { eventDrag } from '../dom_components/model/Component';\r\n\r\nconst commandsDef = [\r\n ['preview', 'Preview', 'preview'],\r\n ['resize', 'Resize', 'resize'],\r\n ['fullscreen', 'Fullscreen', 'fullscreen'],\r\n ['copy', 'CopyComponent'],\r\n ['paste', 'PasteComponent'],\r\n ['canvas-move', 'CanvasMove'],\r\n ['canvas-clear', 'CanvasClear'],\r\n ['open-code', 'ExportTemplate', 'export-template'],\r\n ['open-layers', 'OpenLayers', 'open-layers'],\r\n ['open-styles', 'OpenStyleManager', 'open-sm'],\r\n ['open-traits', 'OpenTraitManager', 'open-tm'],\r\n ['open-blocks', 'OpenBlocks', 'open-blocks'],\r\n ['open-assets', 'OpenAssets', 'open-assets'],\r\n ['component-select', 'SelectComponent', 'select-comp'],\r\n ['component-outline', 'SwitchVisibility', 'sw-visibility'],\r\n ['component-offset', 'ShowOffset', 'show-offset'],\r\n ['component-move', 'MoveComponent', 'move-comp'],\r\n ['component-next', 'ComponentNext'],\r\n ['component-prev', 'ComponentPrev'],\r\n ['component-enter', 'ComponentEnter'],\r\n ['component-exit', 'ComponentExit', 'select-parent'],\r\n ['component-delete', 'ComponentDelete'],\r\n ['component-style-clear', 'ComponentStyleClear'],\r\n ['component-drag', 'ComponentDrag'],\r\n];\r\n\r\nexport default () => {\r\n let em;\r\n let c = {};\r\n const commands = {};\r\n const defaultCommands = {};\r\n const active = {};\r\n\r\n // Need it here as it would be used below\r\n const add = function (id, obj) {\r\n if (isFunction(obj)) obj = { run: obj };\r\n if (!obj.stop) obj.noStop = 1;\r\n delete obj.initialize;\r\n obj.id = id;\r\n commands[id] = CommandAbstract.extend(obj);\r\n return this;\r\n };\r\n\r\n return {\r\n CommandAbstract,\r\n\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'Commands',\r\n\r\n /**\r\n * Initialize module. Automatically called with a new instance of the editor\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(config = {}) {\r\n c = {\r\n ...defaults,\r\n ...config,\r\n };\r\n em = c.em;\r\n const ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n // Load commands passed via configuration\r\n Object.keys(c.defaults).forEach(k => {\r\n const obj = c.defaults[k];\r\n if (obj.id) this.add(obj.id, obj);\r\n });\r\n\r\n defaultCommands['tlb-delete'] = {\r\n run(ed) {\r\n return ed.runCommand('core:component-delete');\r\n },\r\n };\r\n\r\n defaultCommands['tlb-clone'] = {\r\n run(ed) {\r\n ed.runCommand('core:copy');\r\n ed.runCommand('core:paste', { action: 'clone-component' });\r\n },\r\n };\r\n\r\n defaultCommands['tlb-move'] = {\r\n run(ed, sender, opts = {}) {\r\n let dragger;\r\n const em = ed.getModel();\r\n const event = opts && opts.event;\r\n const { target } = opts;\r\n const sel = target || ed.getSelected();\r\n const selAll = target ? [target] : [...ed.getSelectedAll()];\r\n const nativeDrag = event && event.type == 'dragstart';\r\n const defComOptions = { preserveSelected: 1 };\r\n const modes = ['absolute', 'translate'];\r\n\r\n if (!sel || !sel.get('draggable')) {\r\n return em.logWarning('The element is not draggable');\r\n }\r\n\r\n const mode = sel.get('dmode') || em.get('dmode');\r\n const hideTlb = () => em.stopDefault(defComOptions);\r\n const altMode = includes(modes, mode);\r\n selAll.forEach(sel => sel.trigger('disable'));\r\n\r\n // Without setTimeout the ghost image disappears\r\n nativeDrag ? setTimeout(hideTlb, 0) : hideTlb();\r\n\r\n const onStart = data => {\r\n em.trigger(`${eventDrag}:start`, data);\r\n };\r\n const onDrag = data => {\r\n em.trigger(eventDrag, data);\r\n };\r\n const onEnd = (e, opts, data) => {\r\n selAll.forEach(sel => sel.set('status', 'selected'));\r\n ed.select(selAll);\r\n sel.emitUpdate();\r\n em.trigger(`${eventDrag}:end`, data);\r\n\r\n // Defer selectComponent in order to prevent canvas \"freeze\" #2692\r\n setTimeout(() => em.runDefault(defComOptions));\r\n\r\n // Dirty patch to prevent parent selection on drop\r\n (altMode || data.cancelled) && em.set('_cmpDrag', 1);\r\n };\r\n\r\n if (altMode) {\r\n // TODO move grabbing func in editor/canvas from the Sorter\r\n dragger = ed.runCommand('core:component-drag', {\r\n guidesInfo: 1,\r\n mode,\r\n target: sel,\r\n onStart,\r\n onDrag,\r\n onEnd,\r\n event,\r\n });\r\n } else {\r\n if (nativeDrag) {\r\n event.dataTransfer.setDragImage(sel.view.el, 0, 0);\r\n //sel.set('status', 'freezed');\r\n }\r\n\r\n const cmdMove = ed.Commands.get('move-comp');\r\n cmdMove.onStart = onStart;\r\n cmdMove.onDrag = onDrag;\r\n cmdMove.onEndMoveFromModel = onEnd;\r\n cmdMove.initSorterFromModels(selAll);\r\n }\r\n\r\n selAll.forEach(sel => sel.set('status', 'freezed-selected'));\r\n },\r\n };\r\n\r\n // Core commands\r\n defaultCommands['core:undo'] = e => e.UndoManager.undo();\r\n defaultCommands['core:redo'] = e => e.UndoManager.redo();\r\n commandsDef.forEach(item => {\r\n const oldCmd = item[2];\r\n const cmd = require(`./view/${item[1]}`).default;\r\n const cmdName = `core:${item[0]}`;\r\n defaultCommands[cmdName] = cmd;\r\n if (oldCmd) {\r\n defaultCommands[oldCmd] = cmd;\r\n // Propogate old commands (can be removed once we stop to call old commands)\r\n ['run', 'stop'].forEach(name => {\r\n em.on(`${name}:${oldCmd}`, (...args) => em.trigger(`${name}:${cmdName}`, ...args));\r\n });\r\n }\r\n });\r\n\r\n if (c.em) c.model = c.em.get('Canvas');\r\n\r\n this.loadDefaultCommands();\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Add new command to the collection\r\n * @param\t{string} id Command's ID\r\n * @param\t{Object|Function} command Object representing your command,\r\n * By passing just a function it's intended as a stateless command\r\n * (just like passing an object with only `run` method).\r\n * @return {this}\r\n * @example\r\n * commands.add('myCommand', {\r\n * \trun(editor, sender) {\r\n * \t\talert('Hello world!');\r\n * \t},\r\n * \tstop(editor, sender) {\r\n * \t},\r\n * });\r\n * // As a function\r\n * commands.add('myCommand2', editor => { ... });\r\n * */\r\n add,\r\n\r\n /**\r\n * Get command by ID\r\n * @param\t{string}\tid Command's ID\r\n * @return {Object} Object representing the command\r\n * @example\r\n * var myCommand = commands.get('myCommand');\r\n * myCommand.run();\r\n * */\r\n get(id) {\r\n let el = commands[id];\r\n\r\n if (isFunction(el)) {\r\n el = new el(c);\r\n commands[id] = el;\r\n } else if (!el) {\r\n em.logWarning(`'${id}' command not found`);\r\n }\r\n\r\n return el;\r\n },\r\n\r\n /**\r\n * Extend the command. The command to extend should be defined as an object\r\n * @param\t{string}\tid Command's ID\r\n * @param {Object} Object with the new command functions\r\n * @returns {this}\r\n * @example\r\n * commands.extend('old-command', {\r\n * someInnerFunction() {\r\n * // ...\r\n * }\r\n * });\r\n * */\r\n extend(id, cmd = {}) {\r\n const command = this.get(id);\r\n if (command) {\r\n const cmdObj = {\r\n ...command.constructor.prototype,\r\n ...cmd,\r\n };\r\n this.add(id, cmdObj);\r\n // Extend also old name commands if exist\r\n const oldCmd = commandsDef.filter(cmd => `core:${cmd[0]}` === id && cmd[2])[0];\r\n oldCmd && this.add(oldCmd[2], cmdObj);\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * Check if command exists\r\n * @param\t{string}\tid Command's ID\r\n * @return {Boolean}\r\n * */\r\n has(id) {\r\n return !!commands[id];\r\n },\r\n\r\n /**\r\n * Get an object containing all the commands\r\n * @return {Object}\r\n */\r\n getAll() {\r\n return commands;\r\n },\r\n\r\n /**\r\n * Execute the command\r\n * @param {String} id Command ID\r\n * @param {Object} [options={}] Options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * commands.run('myCommand', { someOption: 1 });\r\n */\r\n run(id, options = {}) {\r\n return this.runCommand(this.get(id), options);\r\n },\r\n\r\n /**\r\n * Stop the command\r\n * @param {String} id Command ID\r\n * @param {Object} [options={}] Options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * commands.stop('myCommand', { someOption: 1 });\r\n */\r\n stop(id, options = {}) {\r\n return this.stopCommand(this.get(id), options);\r\n },\r\n\r\n /**\r\n * Check if the command is active. You activate commands with `run`\r\n * and disable them with `stop`. If the command was created without `stop`\r\n * method it can't be registered as active\r\n * @param {String} id Command id\r\n * @return {Boolean}\r\n * @example\r\n * const cId = 'some-command';\r\n * commands.run(cId);\r\n * commands.isActive(cId);\r\n * // -> true\r\n * commands.stop(cId);\r\n * commands.isActive(cId);\r\n * // -> false\r\n */\r\n isActive(id) {\r\n return this.getActive().hasOwnProperty(id);\r\n },\r\n\r\n /**\r\n * Get all active commands\r\n * @return {Object}\r\n * @example\r\n * console.log(commands.getActive());\r\n * // -> { someCommand: itsLastReturn, anotherOne: ... };\r\n */\r\n getActive() {\r\n return active;\r\n },\r\n\r\n /**\r\n * Load default commands\r\n * @return {this}\r\n * @private\r\n * */\r\n loadDefaultCommands() {\r\n for (var id in defaultCommands) {\r\n this.add(id, defaultCommands[id]);\r\n }\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Run command via its object\r\n * @param {Object} command\r\n * @param {Object} options\r\n * @return {*} Result of the command\r\n * @private\r\n */\r\n runCommand(command, options = {}) {\r\n let result;\r\n\r\n if (command && command.run) {\r\n const id = command.id;\r\n const editor = em.get('Editor');\r\n\r\n if (!this.isActive(id) || options.force || !c.strict) {\r\n result = editor && command.callRun(editor, options);\r\n if (id && command.stop && !command.noStop && !options.abort) {\r\n active[id] = result;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * Stop the command\r\n * @param {Object} command\r\n * @param {Object} options\r\n * @return {*} Result of the command\r\n * @private\r\n */\r\n stopCommand(command, options = {}) {\r\n let result;\r\n\r\n if (command && command.run) {\r\n const id = command.id;\r\n const editor = em.get('Editor');\r\n\r\n if (this.isActive(id) || options.force || !c.strict) {\r\n if (id) delete active[id];\r\n result = command.callStop(editor, options);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * Create anonymous Command instance\r\n * @param {Object} command Command object\r\n * @return {Command}\r\n * @private\r\n * */\r\n create(command) {\r\n if (!command.stop) command.noStop = 1;\r\n const cmd = CommandAbstract.extend(command);\r\n return new cmd(c);\r\n },\r\n\r\n destroy() {\r\n [em, c, commands, defaultCommands, active].forEach(i => (i = {}));\r\n },\r\n };\r\n};\r\n","export default {\r\n run(ed) {\r\n ed.DomComponents.clear();\r\n ed.CssComposer.clear();\r\n }\r\n};\r\n","import { bindAll } from 'underscore';\r\nimport { on, off, getKeyChar } from '../../utils/mixins';\r\nimport Dragger from '../../utils/Dragger';\r\n\r\nexport default {\r\n run(ed) {\r\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\r\n this.editor = ed;\r\n this.canvasModel = this.canvas.getCanvasView().model;\r\n this.toggleMove(1);\r\n },\r\n stop(ed) {\r\n this.toggleMove();\r\n this.disableDragger();\r\n },\r\n\r\n onKeyUp(ev) {\r\n if (getKeyChar(ev) === ' ') {\r\n this.editor.stopCommand(this.id);\r\n }\r\n },\r\n\r\n enableDragger(ev) {\r\n this.toggleDragger(1, ev);\r\n },\r\n\r\n disableDragger(ev) {\r\n this.toggleDragger(0, ev);\r\n },\r\n\r\n toggleDragger(enable, ev) {\r\n const { canvasModel, em } = this;\r\n let { dragger } = this;\r\n const methodCls = enable ? 'add' : 'remove';\r\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\r\n\r\n if (!dragger) {\r\n dragger = new Dragger({\r\n getPosition() {\r\n return {\r\n x: canvasModel.get('x'),\r\n y: canvasModel.get('y'),\r\n };\r\n },\r\n setPosition({ x, y }) {\r\n canvasModel.set({ x, y });\r\n },\r\n onStart(ev, dragger) {\r\n em.trigger('canvas:move:start', dragger);\r\n },\r\n onDrag(ev, dragger) {\r\n em.trigger('canvas:move', dragger);\r\n },\r\n onEnd(ev, dragger) {\r\n em.trigger('canvas:move:end', dragger);\r\n },\r\n });\r\n this.dragger = dragger;\r\n }\r\n\r\n enable ? dragger.start(ev) : dragger.stop();\r\n },\r\n\r\n toggleMove(enable) {\r\n const { ppfx } = this;\r\n const methodCls = enable ? 'add' : 'remove';\r\n const methodEv = enable ? 'on' : 'off';\r\n const methodsEv = { on, off };\r\n const canvas = this.getCanvas();\r\n const classes = [`${ppfx}is__grab`];\r\n !enable && classes.push(`${ppfx}is__grabbing`);\r\n classes.forEach(cls => canvas.classList[methodCls](cls));\r\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\r\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\r\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\r\n },\r\n};\r\n","import { Model } from '../../common';\r\n\r\nexport default class CommandAbstract extends Model {\r\n /**\r\n * Initialize method that can't be removed\r\n * @param {Object} o Options\r\n * @private\r\n * */\r\n initialize(o) {\r\n this.config = o || {};\r\n this.editorModel = this.em = this.config.em || {};\r\n this.pfx = this.config.stylePrefix;\r\n this.ppfx = this.config.pStylePrefix;\r\n this.hoverClass = this.pfx + 'hover';\r\n this.badgeClass = this.pfx + 'badge';\r\n this.plhClass = this.pfx + 'placeholder';\r\n this.freezClass = this.ppfx + 'freezed';\r\n\r\n this.canvas = this.em.get && this.em.get('Canvas');\r\n this.init(this.config);\r\n }\r\n\r\n /**\r\n * On frame scroll callback\r\n * @param {[type]} e [description]\r\n * @return {[type]} [description]\r\n */\r\n onFrameScroll(e) {}\r\n\r\n /**\r\n * Returns canval element\r\n * @return {HTMLElement}\r\n */\r\n getCanvas() {\r\n return this.canvas.getElement();\r\n }\r\n\r\n /**\r\n * Get canvas body element\r\n * @return {HTMLElement}\r\n */\r\n getCanvasBody() {\r\n return this.canvas.getBody();\r\n }\r\n\r\n /**\r\n * Get canvas wrapper element\r\n * @return {HTMLElement}\r\n */\r\n getCanvasTools() {\r\n return this.canvas.getToolsEl();\r\n }\r\n\r\n /**\r\n * Get the offset of the element\r\n * @param {HTMLElement} el\r\n * @return {Object}\r\n */\r\n offset(el) {\r\n var rect = el.getBoundingClientRect();\r\n return {\r\n top: rect.top + el.ownerDocument.body.scrollTop,\r\n left: rect.left + el.ownerDocument.body.scrollLeft,\r\n };\r\n }\r\n\r\n /**\r\n * Callback triggered after initialize\r\n * @param {Object} o Options\r\n * @private\r\n * */\r\n init(o) {}\r\n\r\n /**\r\n * Method that run command\r\n * @param {Object} editor Editor instance\r\n * @param {Object} [options={}] Options\r\n * @private\r\n * */\r\n callRun(editor, options = {}) {\r\n const id = this.id;\r\n editor.trigger(`run:${id}:before`, options);\r\n\r\n if (options && options.abort) {\r\n editor.trigger(`abort:${id}`, options);\r\n return;\r\n }\r\n\r\n const sender = options.sender || editor;\r\n const result = this.run(editor, sender, options);\r\n editor.trigger(`run:${id}`, result, options);\r\n editor.trigger('run', id, result, options);\r\n return result;\r\n }\r\n\r\n /**\r\n * Method that run command\r\n * @param {Object} editor Editor instance\r\n * @param {Object} [options={}] Options\r\n * @private\r\n * */\r\n callStop(editor, options = {}) {\r\n const id = this.id;\r\n const sender = options.sender || editor;\r\n editor.trigger(`stop:${id}:before`, options);\r\n const result = this.stop(editor, sender, options);\r\n editor.trigger(`stop:${id}`, result, options);\r\n editor.trigger('stop', id, result, options);\r\n return result;\r\n }\r\n\r\n /**\r\n * Stop current command\r\n */\r\n stopCommand() {\r\n this.em.get('Commands').stop(this.id);\r\n }\r\n\r\n /**\r\n * Method that run command\r\n * @param {Object} em Editor model\r\n * @param {Object} sender Button sender\r\n * @private\r\n * */\r\n run(em, sender) {}\r\n\r\n /**\r\n * Method that stop command\r\n * @param {Object} em Editor model\r\n * @param {Object} sender Button sender\r\n * @private\r\n * */\r\n stop(em, sender) {}\r\n}\r\n","import { isArray } from 'underscore';\r\n\r\nexport default {\r\n run(ed, s, opts = {}) {\r\n const toSelect = [];\r\n let components = opts.component || ed.getSelectedAll();\r\n components = isArray(components) ? [...components] : [components];\r\n\r\n components.filter(Boolean).forEach(component => {\r\n if (!component.get('removable')) {\r\n toSelect.push(component);\r\n return this.em.logWarning('The element is not removable', {\r\n component,\r\n });\r\n }\r\n component.remove();\r\n });\r\n\r\n ed.select(toSelect);\r\n\r\n return components;\r\n },\r\n};\r\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\r\nimport Dragger from '../../utils/Dragger';\r\n\r\nconst evName = 'dmode';\r\n\r\nexport default {\r\n run(editor, sender, opts = {}) {\r\n bindAll(\r\n this,\r\n 'setPosition',\r\n 'onStart',\r\n 'onDrag',\r\n 'onEnd',\r\n 'getPosition',\r\n 'getGuidesStatic',\r\n 'renderGuide',\r\n 'getGuidesTarget'\r\n );\r\n const { target, event, mode, dragger = {} } = opts;\r\n const el = target.getEl();\r\n const config = {\r\n doc: el.ownerDocument,\r\n onStart: this.onStart,\r\n onEnd: this.onEnd,\r\n onDrag: this.onDrag,\r\n getPosition: this.getPosition,\r\n setPosition: this.setPosition,\r\n guidesStatic: () => this.guidesStatic,\r\n guidesTarget: () => this.guidesTarget,\r\n ...dragger,\r\n };\r\n this.setupGuides();\r\n this.opts = opts;\r\n this.editor = editor;\r\n this.em = editor.getModel();\r\n this.target = target;\r\n this.isTran = mode == 'translate';\r\n this.guidesContainer = this.getGuidesContainer();\r\n this.guidesTarget = this.getGuidesTarget();\r\n this.guidesStatic = this.getGuidesStatic();\r\n let drg = this.dragger;\r\n\r\n if (!drg) {\r\n drg = new Dragger(config);\r\n this.dragger = drg;\r\n } else {\r\n drg.setOptions(config);\r\n }\r\n\r\n event && drg.start(event);\r\n this.toggleDrag(1);\r\n this.em.trigger(`${evName}:start`, this.getEventOpts());\r\n\r\n return drg;\r\n },\r\n\r\n getEventOpts() {\r\n return {\r\n mode: this.opts.mode,\r\n target: this.target,\r\n guidesTarget: this.guidesTarget,\r\n guidesStatic: this.guidesStatic,\r\n };\r\n },\r\n\r\n stop() {\r\n this.toggleDrag();\r\n },\r\n\r\n setupGuides() {\r\n (this.guides || []).forEach(item => {\r\n const { guide } = item;\r\n guide && guide.parentNode.removeChild(guide);\r\n });\r\n this.guides = [];\r\n },\r\n\r\n getGuidesContainer() {\r\n let { guidesEl } = this;\r\n\r\n if (!guidesEl) {\r\n const { editor, em, opts } = this;\r\n const pfx = editor.getConfig('stylePrefix');\r\n const elInfoX = document.createElement('div');\r\n const elInfoY = document.createElement('div');\r\n const guideContent = `
\r\n
\r\n
`;\r\n guidesEl = document.createElement('div');\r\n guidesEl.className = `${pfx}guides`;\r\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\r\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\r\n elInfoX.innerHTML = guideContent;\r\n elInfoY.innerHTML = guideContent;\r\n guidesEl.appendChild(elInfoX);\r\n guidesEl.appendChild(elInfoY);\r\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\r\n this.guidesEl = guidesEl;\r\n this.elGuideInfoX = elInfoX;\r\n this.elGuideInfoY = elInfoY;\r\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\r\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\r\n\r\n em.on(\r\n 'canvas:update frame:scroll',\r\n debounce(() => {\r\n this.updateGuides();\r\n opts.debug && this.guides.forEach(item => this.renderGuide(item));\r\n }, 200)\r\n );\r\n }\r\n\r\n return guidesEl;\r\n },\r\n\r\n getGuidesStatic() {\r\n let result = [];\r\n const el = this.target.getEl();\r\n const { parentNode = {} } = el;\r\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\r\n\r\n return result.concat(this.getElementGuides(parentNode));\r\n },\r\n\r\n getGuidesTarget() {\r\n return this.getElementGuides(this.target.getEl());\r\n },\r\n\r\n updateGuides(guides) {\r\n let lastEl, lastPos;\r\n (guides || this.guides).forEach(item => {\r\n const { origin } = item;\r\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\r\n lastEl = origin;\r\n lastPos = pos;\r\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\r\n item.originRect = pos;\r\n });\r\n },\r\n\r\n getGuidePosUpdate(item, rect) {\r\n const result = {};\r\n const { top, height, left, width } = rect;\r\n\r\n switch (item.type) {\r\n case 't':\r\n result.y = top;\r\n break;\r\n case 'b':\r\n result.y = top + height;\r\n break;\r\n case 'l':\r\n result.x = left;\r\n break;\r\n case 'r':\r\n result.x = left + width;\r\n break;\r\n case 'x':\r\n result.x = left + width / 2;\r\n break;\r\n case 'y':\r\n result.y = top + height / 2;\r\n break;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n renderGuide(item = {}) {\r\n const el = item.guide || document.createElement('div');\r\n const un = 'px';\r\n const guideSize = item.active ? 2 : 1;\r\n let numEl = el.children[0];\r\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\r\n\r\n if (!el.children.length) {\r\n numEl = document.createElement('div');\r\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\r\n el.appendChild(numEl);\r\n }\r\n\r\n if (item.y) {\r\n el.style.width = '100%';\r\n el.style.height = `${guideSize}${un}`;\r\n el.style.top = `${item.y}${un}`;\r\n el.style.left = 0;\r\n } else {\r\n el.style.width = `${guideSize}${un}`;\r\n el.style.height = '100%';\r\n el.style.left = `${item.x}${un}`;\r\n el.style.top = `0${un}`;\r\n }\r\n\r\n !item.guide && this.guidesContainer.appendChild(el);\r\n return el;\r\n },\r\n\r\n getElementPos(el) {\r\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\r\n },\r\n\r\n getElementGuides(el) {\r\n const { opts } = this;\r\n const originRect = this.getElementPos(el);\r\n const { top, height, left, width } = originRect;\r\n const guides = [\r\n { type: 't', y: top }, // Top\r\n { type: 'b', y: top + height }, // Bottom\r\n { type: 'l', x: left }, // Left\r\n { type: 'r', x: left + width }, // Right\r\n { type: 'x', x: left + width / 2 }, // Mid x\r\n { type: 'y', y: top + height / 2 }, // Mid y\r\n ].map(item => ({\r\n ...item,\r\n origin: el,\r\n originRect,\r\n guide: opts.debug && this.renderGuide(item),\r\n }));\r\n guides.forEach(item => this.guides.push(item));\r\n\r\n return guides;\r\n },\r\n\r\n getTranslate(transform, axis = 'x') {\r\n let result = 0;\r\n (transform || '').split(' ').forEach(item => {\r\n const itemStr = item.trim();\r\n const fn = `translate${axis.toUpperCase()}(`;\r\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\r\n });\r\n return result;\r\n },\r\n\r\n setTranslate(transform, axis, value) {\r\n const fn = `translate${axis.toUpperCase()}(`;\r\n const val = `${fn}${value})`;\r\n let result = (transform || '')\r\n .split(' ')\r\n .map(item => {\r\n const itemStr = item.trim();\r\n if (itemStr.indexOf(fn) === 0) item = val;\r\n return item;\r\n })\r\n .join(' ');\r\n if (result.indexOf(fn) < 0) result += ` ${val}`;\r\n\r\n return result;\r\n },\r\n\r\n getPosition() {\r\n const { target, isTran } = this;\r\n const { left, top, transform } = target.getStyle();\r\n let x = 0;\r\n let y = 0;\r\n\r\n if (isTran) {\r\n x = this.getTranslate(transform);\r\n y = this.getTranslate(transform, 'y');\r\n } else {\r\n x = parseFloat(left || 0);\r\n y = parseFloat(top || 0);\r\n }\r\n\r\n return { x, y };\r\n },\r\n\r\n setPosition({ x, y, end, position, width, height }) {\r\n const { target, isTran, em } = this;\r\n const unit = 'px';\r\n const en = !end ? 1 : ''; // this will trigger the final change\r\n const left = `${x}${unit}`;\r\n const top = `${y}${unit}`;\r\n let styleUp = {};\r\n\r\n if (isTran) {\r\n let transform = target.getStyle()['transform'] || '';\r\n transform = this.setTranslate(transform, 'x', left);\r\n transform = this.setTranslate(transform, 'y', top);\r\n styleUp = { transform, en };\r\n target.addStyle(styleUp, { avoidStore: !end });\r\n } else {\r\n const adds = { position, width, height };\r\n const style = { left, top, en };\r\n keys(adds).forEach(add => {\r\n const prop = adds[add];\r\n if (prop) style[add] = prop;\r\n });\r\n styleUp = style;\r\n target.addStyle(styleUp, { avoidStore: !end });\r\n }\r\n\r\n // Update StyleManager properties\r\n em.getSelected() && keys(styleUp).forEach(i => em.trigger(`update:component:style:${i}`));\r\n },\r\n\r\n _getDragData() {\r\n const { target } = this;\r\n return {\r\n target,\r\n parent: target.parent(),\r\n index: target.index(),\r\n };\r\n },\r\n\r\n onStart(event) {\r\n const { target, editor, isTran, opts } = this;\r\n const { center, onStart } = opts;\r\n const { Canvas } = editor;\r\n const style = target.getStyle();\r\n const position = 'absolute';\r\n const relPos = [position, 'relative'];\r\n onStart && onStart(this._getDragData());\r\n if (isTran) return;\r\n\r\n if (style.position !== position) {\r\n let { left, top, width, height } = Canvas.offset(target.getEl());\r\n let parent = target.parent();\r\n let parentRel;\r\n\r\n // Check for the relative parent\r\n do {\r\n const pStyle = parent.getStyle();\r\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\r\n parent = parent.parent();\r\n } while (parent && !parentRel);\r\n\r\n // Center the target to the pointer position (used in Droppable for Blocks)\r\n if (center) {\r\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\r\n left = x;\r\n top = y;\r\n } else if (parentRel) {\r\n const offsetP = Canvas.offset(parentRel.getEl());\r\n left = left - offsetP.left;\r\n top = top - offsetP.top;\r\n }\r\n\r\n this.setPosition({\r\n x: left,\r\n y: top,\r\n width: `${width}px`,\r\n height: `${height}px`,\r\n position,\r\n });\r\n }\r\n },\r\n\r\n onDrag(...args) {\r\n const { guidesTarget, opts } = this;\r\n const { onDrag } = opts;\r\n this.updateGuides(guidesTarget);\r\n opts.debug && guidesTarget.forEach(item => this.renderGuide(item));\r\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter(item => item.active));\r\n onDrag && onDrag(this._getDragData());\r\n },\r\n\r\n onEnd(ev, dragger, opt = {}) {\r\n const { editor, opts, id } = this;\r\n const { onEnd } = opts;\r\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\r\n editor.stopCommand(id);\r\n this.hideGuidesInfo();\r\n this.em.trigger(`${evName}:end`, this.getEventOpts());\r\n },\r\n\r\n hideGuidesInfo() {\r\n ['X', 'Y'].forEach(item => {\r\n const guide = this[`elGuideInfo${item}`];\r\n if (guide) guide.style.display = 'none';\r\n });\r\n },\r\n\r\n /**\r\n * Render guides with spacing information\r\n */\r\n renderGuideInfo(guides = []) {\r\n const { guidesStatic } = this;\r\n this.hideGuidesInfo();\r\n guides.forEach(item => {\r\n const { origin, x } = item;\r\n const rectOrigin = this.getElementPos(origin);\r\n const axis = isUndefined(x) ? 'y' : 'x';\r\n const isY = axis === 'y';\r\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\r\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\r\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\r\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\r\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\r\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\r\n const guideInfoStyle = elGuideInfo.style;\r\n\r\n // Find the nearest element\r\n const res = guidesStatic\r\n .filter(stat => stat.type === item.type)\r\n .map(stat => {\r\n const { left, width, top, height } = stat.originRect;\r\n const statEdge1 = isY ? left : top;\r\n const statEdge2 = isY ? left + width : top + height;\r\n return {\r\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\r\n guide: stat,\r\n };\r\n })\r\n .filter(item => item.gap > 0)\r\n .sort((a, b) => a.gap - b.gap)\r\n .map(item => item.guide)[0];\r\n\r\n if (res) {\r\n const { left, width, top, height, rect } = res.originRect;\r\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\r\n const statEdge1 = isY ? left : top;\r\n const statEdge1Raw = isY ? rect.left : rect.top;\r\n const statEdge2 = isY ? left + width : top + height;\r\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\r\n const posFirst = isY ? item.y : item.x;\r\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\r\n const pos2 = `${posFirst}px`;\r\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\r\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\r\n guideInfoStyle.display = '';\r\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\r\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\r\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\r\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\r\n this.em.trigger(`${evName}:active`, {\r\n ...this.getEventOpts(),\r\n guide: item,\r\n guidesStatic,\r\n matched: res,\r\n posFirst,\r\n posSecond,\r\n size,\r\n sizeRaw,\r\n elGuideInfo,\r\n elGuideInfoCnt,\r\n });\r\n }\r\n });\r\n },\r\n\r\n toggleDrag(enable) {\r\n const { ppfx, editor } = this;\r\n const methodCls = enable ? 'add' : 'remove';\r\n const classes = [`${ppfx}is__grabbing`];\r\n const { Canvas } = editor;\r\n const body = Canvas.getBody();\r\n classes.forEach(cls => body.classList[methodCls](cls));\r\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\r\n },\r\n};\r\n","export default {\r\n run(ed) {\r\n if (!ed.Canvas.hasFocus()) return;\r\n const toSelect = [];\r\n\r\n ed.getSelectedAll().forEach(component => {\r\n const coll = component.components();\r\n const next = coll && coll.filter(c => c.get('selectable'))[0];\r\n next && toSelect.push(next);\r\n });\r\n\r\n toSelect.length && ed.select(toSelect);\r\n }\r\n};\r\n","export default {\r\n run(ed, snd, opts = {}) {\r\n if (!ed.Canvas.hasFocus() && !opts.force) return;\r\n const toSelect = [];\r\n\r\n ed.getSelectedAll().forEach(component => {\r\n let next = component.parent();\r\n\r\n // Recurse through the parent() chain until a selectable parent is found\r\n while (next && !next.get('selectable')) {\r\n next = next.parent();\r\n }\r\n\r\n next && toSelect.push(next);\r\n });\r\n\r\n toSelect.length && ed.select(toSelect);\r\n }\r\n};\r\n","export default {\r\n run(ed) {\r\n if (!ed.Canvas.hasFocus()) return;\r\n const toSelect = [];\r\n\r\n ed.getSelectedAll().forEach(cmp => {\r\n const parent = cmp.parent();\r\n if (!parent) return;\r\n\r\n const len = parent.components().length;\r\n let incr = 0;\r\n let at = 0;\r\n let next;\r\n\r\n // Get the next selectable component\r\n do {\r\n incr++;\r\n at = cmp.index() + incr;\r\n next = at <= len ? parent.getChildAt(at) : null;\r\n } while (next && !next.get('selectable'));\r\n\r\n toSelect.push(next || cmp);\r\n });\r\n\r\n toSelect.length && ed.select(toSelect);\r\n }\r\n};\r\n","export default {\r\n run(ed) {\r\n if (!ed.Canvas.hasFocus()) return;\r\n const toSelect = [];\r\n\r\n ed.getSelectedAll().forEach(cmp => {\r\n const parent = cmp.parent();\r\n if (!parent) return;\r\n\r\n let incr = 0;\r\n let at = 0;\r\n let next;\r\n\r\n // Get the first selectable component\r\n do {\r\n incr++;\r\n at = cmp.index() - incr;\r\n next = at >= 0 ? parent.getChildAt(at) : null;\r\n } while (next && !next.get('selectable'));\r\n\r\n toSelect.push(next || cmp);\r\n });\r\n\r\n toSelect.length && ed.select(toSelect);\r\n }\r\n};\r\n","import { flatten } from 'underscore';\r\n\r\nexport default {\r\n run(ed, s, opts = {}) {\r\n const { target } = opts;\r\n let toRemove = [];\r\n\r\n if (!target.get('styles')) return toRemove;\r\n\r\n // Find all components in the project, of the target component type\r\n const type = target.get('type');\r\n const wrappers = ed.Pages.getAllWrappers();\r\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\r\n\r\n // Remove component related styles only if there are no more components\r\n // of that type in the project\r\n if (!len) {\r\n const rules = ed.CssComposer.getAll();\r\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\r\n rules.remove(toRemove);\r\n }\r\n\r\n return toRemove;\r\n },\r\n};\r\n","export default {\r\n run(ed) {\r\n const em = ed.getModel();\r\n const models = [...ed.getSelectedAll()];\r\n models.length && em.set('clipboard', models);\r\n }\r\n};\r\n","import { extend, bindAll } from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport SelectComponent from './SelectComponent';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default extend({}, SelectComponent, {\r\n init(o) {\r\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\r\n this.hoverClass = this.pfx + 'hover-delete';\r\n this.badgeClass = this.pfx + 'badge-red';\r\n },\r\n\r\n enable() {\r\n var that = this;\r\n this.$el\r\n .find('*')\r\n .mouseover(this.startDelete)\r\n .mouseout(this.stopDelete)\r\n .click(this.onDelete);\r\n },\r\n\r\n /**\r\n * Start command\r\n * @param {Object} e\r\n * @private\r\n */\r\n startDelete(e) {\r\n e.stopPropagation();\r\n var $this = $(e.target);\r\n\r\n // Show badge if possible\r\n if ($this.data('model').get('removable')) {\r\n $this.addClass(this.hoverClass);\r\n this.attachBadge($this.get(0));\r\n }\r\n },\r\n\r\n /**\r\n * Stop command\r\n * @param {Object} e\r\n * @private\r\n */\r\n stopDelete(e) {\r\n e.stopPropagation();\r\n var $this = $(e.target);\r\n $this.removeClass(this.hoverClass);\r\n\r\n // Hide badge if possible\r\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\r\n },\r\n\r\n /**\r\n * Delete command\r\n * @param {Object} e\r\n * @private\r\n */\r\n onDelete(e) {\r\n e.stopPropagation();\r\n var $this = $(e.target);\r\n\r\n // Do nothing in case can't remove\r\n if (!$this.data('model').get('removable')) return;\r\n\r\n $this.data('model').destroy();\r\n this.removeBadge();\r\n this.clean();\r\n },\r\n\r\n /**\r\n * Updates badge label\r\n * @param {Object} model\r\n * @private\r\n * */\r\n updateBadgeLabel(model) {\r\n this.badge.html('Remove ' + model.getName());\r\n }\r\n});\r\n","import Backbone from 'backbone';\r\nconst $ = Backbone.$;\r\n\r\nexport default {\r\n run(editor, sender, opts = {}) {\r\n sender && sender.set && sender.set('active', 0);\r\n const config = editor.getConfig();\r\n const modal = editor.Modal;\r\n const pfx = config.stylePrefix;\r\n this.cm = editor.CodeManager || null;\r\n\r\n if (!this.$editors) {\r\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\r\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\r\n this.htmlEditor = oHtmlEd.el;\r\n this.cssEditor = oCsslEd.el;\r\n const $editors = $(`
`);\r\n $editors.append(oHtmlEd.$el).append(oCsslEd.$el);\r\n this.$editors = $editors;\r\n }\r\n\r\n modal\r\n .open({\r\n title: config.textViewCode,\r\n content: this.$editors\r\n })\r\n .getModel()\r\n .once('change:open', () => editor.stopCommand(this.id));\r\n this.htmlEditor.setContent(editor.getHtml());\r\n this.cssEditor.setContent(editor.getCss());\r\n },\r\n\r\n stop(editor) {\r\n const modal = editor.Modal;\r\n modal && modal.close();\r\n },\r\n\r\n buildEditor(codeName, theme, label) {\r\n const input = document.createElement('textarea');\r\n !this.codeMirror && (this.codeMirror = this.cm.getViewer('CodeMirror'));\r\n\r\n const el = this.codeMirror.clone().set({\r\n label,\r\n codeName,\r\n theme,\r\n input\r\n });\r\n\r\n const $el = new this.cm.EditorView({\r\n model: el,\r\n config: this.cm.getConfig()\r\n }).render().$el;\r\n\r\n el.init(input);\r\n\r\n return { el, $el };\r\n }\r\n};\r\n","import { isElement } from 'underscore';\r\n\r\nexport default {\r\n /**\r\n * Check if fullscreen mode is enabled\r\n * @return {Boolean}\r\n */\r\n isEnabled() {\r\n var d = document;\r\n if (\r\n d.fullscreenElement ||\r\n d.webkitFullscreenElement ||\r\n d.mozFullScreenElement\r\n )\r\n return 1;\r\n else return 0;\r\n },\r\n\r\n /**\r\n * Enable fullscreen mode and return browser prefix\r\n * @param {HTMLElement} el\r\n * @return {string}\r\n */\r\n enable(el) {\r\n var pfx = '';\r\n if (el.requestFullscreen) el.requestFullscreen();\r\n else if (el.webkitRequestFullscreen) {\r\n pfx = 'webkit';\r\n el.webkitRequestFullscreen();\r\n } else if (el.mozRequestFullScreen) {\r\n pfx = 'moz';\r\n el.mozRequestFullScreen();\r\n } else if (el.msRequestFullscreen) el.msRequestFullscreen();\r\n else console.warn('Fullscreen not supported');\r\n return pfx;\r\n },\r\n\r\n /**\r\n * Disable fullscreen mode\r\n */\r\n disable() {\r\n const d = document;\r\n if (this.isEnabled()) {\r\n if (d.exitFullscreen) d.exitFullscreen();\r\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\r\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\r\n else if (d.msExitFullscreen) d.msExitFullscreen();\r\n }\r\n },\r\n\r\n /**\r\n * Triggered when the state of the fullscreen is changed. Inside detects if\r\n * it's enabled\r\n * @param {strinf} pfx Browser prefix\r\n * @param {Event} e\r\n */\r\n fsChanged(pfx, e) {\r\n var d = document;\r\n var ev = (pfx || '') + 'fullscreenchange';\r\n if (!this.isEnabled()) {\r\n this.stop(null, this.sender);\r\n document.removeEventListener(ev, this.fsChanged);\r\n }\r\n },\r\n\r\n run(editor, sender, opts = {}) {\r\n this.sender = sender;\r\n const { target } = opts;\r\n const targetEl = isElement(target)\r\n ? target\r\n : document.querySelector(target);\r\n const pfx = this.enable(targetEl || editor.getContainer());\r\n this.fsChanged = this.fsChanged.bind(this, pfx);\r\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\r\n editor.trigger('change:canvasOffset');\r\n },\r\n\r\n stop(editor, sender) {\r\n if (sender && sender.set) sender.set('active', false);\r\n this.disable();\r\n if (editor) editor.trigger('change:canvasOffset');\r\n }\r\n};\r\n","import { extend, bindAll } from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { on, off } from '../../utils/mixins';\r\nimport SelectComponent from './SelectComponent';\r\nimport SelectPosition from './SelectPosition';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default extend({}, SelectPosition, SelectComponent, {\r\n init(o) {\r\n SelectComponent.init.apply(this, arguments);\r\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\r\n this.opt = o;\r\n this.hoverClass = this.ppfx + 'highlighter-warning';\r\n this.badgeClass = this.ppfx + 'badge-warning';\r\n this.noSelClass = this.ppfx + 'no-select';\r\n },\r\n\r\n enable(...args) {\r\n SelectComponent.enable.apply(this, args);\r\n this.getBadgeEl().addClass(this.badgeClass);\r\n this.getHighlighterEl().addClass(this.hoverClass);\r\n var wp = this.$wrapper;\r\n wp.css('cursor', 'move');\r\n wp.on('mousedown', this.initSorter);\r\n\r\n // Avoid strange moving behavior\r\n wp.addClass(this.noSelClass);\r\n },\r\n\r\n /**\r\n * Overwrite for doing nothing\r\n * @private\r\n */\r\n toggleClipboard() {},\r\n\r\n /**\r\n * Delegate sorting\r\n * @param {Event} e\r\n * @private\r\n * */\r\n initSorter(e) {\r\n var el = $(e.target).data('model');\r\n var drag = el.get('draggable');\r\n if (!drag) return;\r\n\r\n // Avoid badge showing on move\r\n this.cacheEl = null;\r\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\r\n this.sorter.draggable = drag;\r\n this.sorter.onEndMove = this.onEndMove.bind(this);\r\n this.stopSelectComponent();\r\n this.$wrapper.off('mousedown', this.initSorter);\r\n on(this.getContentWindow(), 'keydown', this.rollback);\r\n },\r\n\r\n /**\r\n * Init sorter from model\r\n * @param {Object} model\r\n * @private\r\n */\r\n initSorterFromModel(model) {\r\n var drag = model.get('draggable');\r\n if (!drag) return;\r\n // Avoid badge showing on move\r\n this.cacheEl = null;\r\n var el = model.view.el;\r\n this.startSelectPosition(el, this.frameEl.contentDocument);\r\n this.sorter.draggable = drag;\r\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\r\n\r\n /*\r\n this.sorter.setDragHelper(el);\r\n var dragHelper = this.sorter.dragHelper;\r\n dragHelper.className = this.ppfx + 'drag-helper';\r\n dragHelper.innerHTML = '';\r\n dragHelper.backgroundColor = 'white';\r\n */\r\n\r\n this.stopSelectComponent();\r\n on(this.getContentWindow(), 'keydown', this.rollback);\r\n },\r\n\r\n /**\r\n * Init sorter from models\r\n * @param {Object} model\r\n * @private\r\n */\r\n initSorterFromModels(models) {\r\n // TODO: if one only check for `draggable`\r\n // Avoid badge showing on move\r\n this.cacheEl = null;\r\n const lastModel = models[models.length - 1];\r\n const frame = (this.em.get('currentFrame') || {}).model;\r\n const el = lastModel.getEl(frame);\r\n const doc = el.ownerDocument;\r\n this.startSelectPosition(el, doc, { onStart: this.onStart });\r\n this.sorter.draggable = lastModel.get('draggable');\r\n this.sorter.toMove = models;\r\n this.sorter.onMoveClb = this.onDrag;\r\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\r\n this.stopSelectComponent();\r\n on(this.getContentWindow(), 'keydown', this.rollback);\r\n },\r\n\r\n onEndMoveFromModel() {\r\n off(this.getContentWindow(), 'keydown', this.rollback);\r\n },\r\n\r\n /**\r\n * Callback after sorting\r\n * @private\r\n */\r\n onEndMove() {\r\n this.enable();\r\n off(this.getContentWindow(), 'keydown', this.rollback);\r\n },\r\n\r\n /**\r\n * Say what to do after the component was selected (selectComponent)\r\n * @param {Event} e\r\n * @param {Object} Selected element\r\n * @private\r\n * */\r\n onSelect(e, el) {},\r\n\r\n /**\r\n * Used to bring the previous situation before start moving the component\r\n * @param {Event} e\r\n * @param {Boolean} Indicates if rollback in anycase\r\n * @private\r\n * */\r\n rollback(e, force) {\r\n var key = e.which || e.keyCode;\r\n if (key == 27 || force) {\r\n this.sorter.moved = false;\r\n this.sorter.endMove();\r\n }\r\n return;\r\n },\r\n\r\n /**\r\n * Returns badge element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getBadgeEl() {\r\n if (!this.$badge) this.$badge = $(this.getBadge());\r\n return this.$badge;\r\n },\r\n\r\n /**\r\n * Returns highlighter element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getHighlighterEl() {\r\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\r\n return this.$hl;\r\n },\r\n\r\n stop(...args) {\r\n SelectComponent.stop.apply(this, args);\r\n this.getBadgeEl().removeClass(this.badgeClass);\r\n this.getHighlighterEl().removeClass(this.hoverClass);\r\n var wp = this.$wrapper;\r\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\r\n },\r\n});\r\n","import { isFunction } from 'underscore';\r\nimport { createEl } from '../../utils/dom';\r\n\r\nexport default {\r\n open(content) {\r\n const { editor, title, config, am } = this;\r\n const { custom } = config;\r\n if (isFunction(custom.open)) {\r\n return custom.open(am.__customData());\r\n }\r\n const { Modal } = editor;\r\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\r\n },\r\n\r\n close() {\r\n const { custom } = this.config;\r\n if (isFunction(custom.close)) {\r\n return custom.close(this.am.__customData());\r\n }\r\n const { Modal } = this.editor;\r\n Modal && Modal.close();\r\n },\r\n\r\n run(editor, sender, opts = {}) {\r\n const am = editor.AssetManager;\r\n const config = am.getConfig();\r\n const { types = [], accept, select } = opts;\r\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\r\n this.editor = editor;\r\n this.config = config;\r\n this.am = am;\r\n\r\n am.setTarget(opts.target);\r\n am.onClick(opts.onClick);\r\n am.onDblClick(opts.onDblClick);\r\n am.onSelect(opts.onSelect);\r\n am.__behaviour({\r\n select,\r\n types,\r\n options: opts\r\n });\r\n\r\n if (config.custom) {\r\n this.rendered = this.rendered || createEl('div');\r\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\r\n am.__behaviour({ container: this.rendered });\r\n am.__trgCustom();\r\n } else {\r\n if (!this.rendered || types) {\r\n let assets = am.getAll().filter(i => i);\r\n\r\n if (types && types.length) {\r\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\r\n }\r\n\r\n am.render(assets);\r\n this.rendered = am.getContainer();\r\n }\r\n\r\n if (accept) {\r\n const uploadEl = this.rendered.querySelector(\r\n `input#${config.stylePrefix}uploadFile`\r\n );\r\n uploadEl && uploadEl.setAttribute('accept', accept);\r\n }\r\n }\r\n\r\n this.open(this.rendered);\r\n return this;\r\n },\r\n\r\n stop(editor) {\r\n this.editor = editor;\r\n this.close(this.rendered);\r\n }\r\n};\r\n","import { isFunction } from 'underscore';\r\nimport { createEl } from '../../utils/dom';\r\n\r\nexport default {\r\n open() {\r\n const { container, editor, bm, config } = this;\r\n const { custom, appendTo } = config;\r\n\r\n if (isFunction(custom.open)) {\r\n return custom.open(bm.__customData());\r\n }\r\n\r\n if (this.firstRender && !appendTo) {\r\n const id = 'views-container';\r\n const pn = editor.Panels;\r\n const panels = pn.getPanel(id) || pn.addPanel({ id });\r\n panels.set('appendContent', container).trigger('change:appendContent');\r\n if (!custom) container.appendChild(bm.render());\r\n }\r\n\r\n if (container) container.style.display = 'block';\r\n },\r\n\r\n close() {\r\n const { container, config } = this;\r\n const { custom } = config;\r\n\r\n if (isFunction(custom.close)) {\r\n return custom.close(this.bm.__customData());\r\n }\r\n\r\n if (container) container.style.display = 'none';\r\n },\r\n\r\n run(editor) {\r\n const bm = editor.Blocks;\r\n this.config = bm.getConfig();\r\n this.firstRender = !this.container;\r\n this.container = this.container || createEl('div');\r\n this.editor = editor;\r\n this.bm = bm;\r\n const { container } = this;\r\n bm.__behaviour({\r\n container\r\n });\r\n\r\n if (this.config.custom) {\r\n bm.__trgCustom();\r\n }\r\n\r\n this.open();\r\n },\r\n\r\n stop() {\r\n this.close();\r\n }\r\n};\r\n","export default {\r\n run(editor) {\r\n const lm = editor.LayerManager;\r\n const pn = editor.Panels;\r\n\r\n if (lm.getConfig().appendTo) return;\r\n\r\n if (!this.layers) {\r\n const id = 'views-container';\r\n const layers = document.createElement('div');\r\n const panels = pn.getPanel(id) || pn.addPanel({ id });\r\n layers.appendChild(lm.render());\r\n panels.set('appendContent', layers).trigger('change:appendContent');\r\n this.layers = layers;\r\n }\r\n\r\n this.layers.style.display = 'block';\r\n },\r\n\r\n stop() {\r\n const { layers } = this;\r\n layers && (layers.style.display = 'none');\r\n }\r\n};\r\n","import Backbone from 'backbone';\r\nconst $ = Backbone.$;\r\n\r\nexport default {\r\n run(editor, sender) {\r\n this.sender = sender;\r\n\r\n if (!this.$cn) {\r\n const config = editor.getConfig();\r\n const panels = editor.Panels;\r\n const trgEvCnt = 'change:appendContent';\r\n this.$cn = $('
');\r\n this.$cn2 = $('
');\r\n this.$cn.append(this.$cn2);\r\n\r\n // Device Manager\r\n const dvm = editor.DeviceManager;\r\n if (dvm && config.showDevices) {\r\n const devicePanel = panels.addPanel({ id: 'devices-c' });\r\n const dvEl = dvm.render();\r\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\r\n }\r\n\r\n // Selector Manager container\r\n const slm = editor.SelectorManager;\r\n this.slm = slm;\r\n const slmConfig = slm.getConfig();\r\n if (slmConfig.custom) {\r\n slm.__trgCustom({ container: this.$cn2.get(0) });\r\n } else if (!slmConfig.appendTo) {\r\n this.$cn2.append(slm.render([]));\r\n }\r\n\r\n // Style Manager\r\n const sm = editor.StyleManager;\r\n this.sm = sm;\r\n const smConfig = sm.getConfig();\r\n const pfx = smConfig.stylePrefix;\r\n this.$header = $(`
${editor.t('styleManager.empty')}
`);\r\n this.$cn.append(this.$header);\r\n\r\n if (smConfig.custom) {\r\n sm.__trgCustom({ container: this.$cn2.get(0) });\r\n } else if (!smConfig.appendTo) {\r\n this.$cn2.append(sm.render());\r\n }\r\n\r\n // Create panel if not exists\r\n const pnCnt = 'views-container';\r\n this.panel = panels.getPanel(pnCnt);\r\n if (!this.panel) this.panel = panels.addPanel({ id: pnCnt });\r\n\r\n // Add all containers to the panel\r\n this.panel.set('appendContent', this.$cn).trigger(trgEvCnt);\r\n\r\n // Toggle Style Manager on target selection\r\n this.em = editor.getModel();\r\n this.listenTo(this.em, sm.events.target, this.toggleSm);\r\n }\r\n\r\n this.toggleSm();\r\n },\r\n\r\n /**\r\n * Toggle Style Manager visibility\r\n * @private\r\n */\r\n toggleSm() {\r\n const { sender, sm } = this;\r\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\r\n\r\n if (sm.getSelected()) {\r\n this.$cn2?.show();\r\n this.$header?.hide();\r\n } else {\r\n this.$cn2?.hide();\r\n this.$header?.show();\r\n }\r\n },\r\n\r\n stop() {\r\n this.$cn2?.hide();\r\n this.$header?.hide();\r\n },\r\n};\r\n","import Backbone from 'backbone';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default {\r\n run(editor, sender) {\r\n this.sender = sender;\r\n const em = editor.getModel();\r\n\r\n const config = editor.Config;\r\n const pfx = config.stylePrefix;\r\n const tm = editor.TraitManager;\r\n const confTm = tm.getConfig();\r\n let panelC;\r\n\r\n if (confTm.appendTo) return;\r\n\r\n if (!this.$cn) {\r\n this.$cn = $('
');\r\n this.$cn2 = $('
');\r\n this.$cn.append(this.$cn2);\r\n this.$header = $('
').append(\r\n `
${em.t(\r\n 'traitManager.empty'\r\n )}
`\r\n );\r\n this.$cn.append(this.$header);\r\n this.$cn2.append(\r\n `
${em.t('traitManager.label')}
`\r\n );\r\n this.$cn2.append(tm.render());\r\n var panels = editor.Panels;\r\n\r\n if (!panels.getPanel('views-container'))\r\n panelC = panels.addPanel({ id: 'views-container' });\r\n else panelC = panels.getPanel('views-container');\r\n\r\n panelC\r\n .set('appendContent', this.$cn.get(0))\r\n .trigger('change:appendContent');\r\n\r\n this.target = editor.getModel();\r\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\r\n }\r\n\r\n this.toggleTm();\r\n },\r\n\r\n /**\r\n * Toggle Trait Manager visibility\r\n * @private\r\n */\r\n toggleTm() {\r\n const sender = this.sender;\r\n if (sender && sender.get && !sender.get('active')) return;\r\n\r\n if (this.target.getSelectedAll().length === 1) {\r\n this.$cn2.show();\r\n this.$header.hide();\r\n } else {\r\n this.$cn2.hide();\r\n this.$header.show();\r\n }\r\n },\r\n\r\n stop() {\r\n this.$cn2 && this.$cn2.hide();\r\n this.$header && this.$header.hide();\r\n }\r\n};\r\n","import { isArray, contains } from 'underscore';\r\n\r\nexport default {\r\n run(ed, s, opts = {}) {\r\n const em = ed.getModel();\r\n const clp = em.get('clipboard');\r\n const selected = ed.getSelected();\r\n\r\n if (clp && selected) {\r\n ed.getSelectedAll().forEach(comp => {\r\n if (!comp) return;\r\n\r\n const coll = comp.collection;\r\n if (!coll) return;\r\n\r\n const at = coll.indexOf(comp) + 1;\r\n const addOpts = { at, action: opts.action || 'paste-component' };\r\n const copyable = clp.filter(cop => cop.get('copyable'));\r\n let added;\r\n\r\n if (contains(clp, comp) && comp.get('copyable')) {\r\n added = coll.add(comp.clone(), addOpts);\r\n } else {\r\n added = coll.add(\r\n copyable.map(cop => cop.clone()),\r\n addOpts\r\n );\r\n }\r\n\r\n added = isArray(added) ? added : [added];\r\n added.forEach(add => ed.trigger('component:paste', add));\r\n });\r\n\r\n selected.emitUpdate();\r\n }\r\n },\r\n};\r\n","import { each } from 'underscore';\r\n\r\nconst cmdVis = 'sw-visibility';\r\n\r\nexport default {\r\n getPanels(editor) {\r\n if (!this.panels) {\r\n this.panels = editor.Panels.getPanels();\r\n }\r\n\r\n return this.panels;\r\n },\r\n\r\n preventDrag(opts) {\r\n opts.abort = 1;\r\n },\r\n\r\n tglEffects(on) {\r\n const { em } = this;\r\n const mthEv = on ? 'on' : 'off';\r\n if (em) {\r\n const canvas = em.get('Canvas');\r\n const body = canvas.getBody();\r\n const tlb = canvas.getToolbarEl();\r\n tlb && (tlb.style.display = on ? 'none' : '');\r\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\r\n each(elP, item => (item.style.pointerEvents = on ? 'all' : ''));\r\n em[mthEv]('run:tlb-move:before', this.preventDrag);\r\n }\r\n },\r\n\r\n run(editor, sender) {\r\n this.sender = sender;\r\n this.selected = [...editor.getSelectedAll()];\r\n editor.select();\r\n\r\n if (!this.shouldRunSwVisibility) {\r\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdVis);\r\n }\r\n\r\n this.shouldRunSwVisibility && editor.stopCommand(cmdVis);\r\n editor.getModel().stopDefault();\r\n\r\n const panels = this.getPanels(editor);\r\n const canvas = editor.Canvas.getElement();\r\n const editorEl = editor.getEl();\r\n const pfx = editor.Config.stylePrefix;\r\n\r\n if (!this.helper) {\r\n const helper = document.createElement('span');\r\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\r\n editorEl.appendChild(helper);\r\n helper.onclick = () => this.stopCommand();\r\n this.helper = helper;\r\n }\r\n\r\n this.helper.style.display = 'inline-block';\r\n\r\n panels.forEach(panel => panel.set('visible', false));\r\n\r\n const canvasS = canvas.style;\r\n canvasS.width = '100%';\r\n canvasS.height = '100%';\r\n canvasS.top = '0';\r\n canvasS.left = '0';\r\n canvasS.padding = '0';\r\n canvasS.margin = '0';\r\n editor.refresh();\r\n this.tglEffects(1);\r\n },\r\n\r\n stop(editor) {\r\n const { sender = {}, selected } = this;\r\n sender.set && sender.set('active', 0);\r\n const panels = this.getPanels(editor);\r\n\r\n if (this.shouldRunSwVisibility) {\r\n editor.runCommand(cmdVis);\r\n this.shouldRunSwVisibility = false;\r\n }\r\n\r\n editor.getModel().runDefault();\r\n panels.forEach(panel => panel.set('visible', true));\r\n\r\n const canvas = editor.Canvas.getElement();\r\n canvas.setAttribute('style', '');\r\n selected && editor.select(selected);\r\n delete this.selected;\r\n\r\n if (this.helper) {\r\n this.helper.style.display = 'none';\r\n }\r\n\r\n editor.refresh();\r\n this.tglEffects();\r\n }\r\n};\r\n","export default {\r\n run(editor, sender, opts) {\r\n const opt = opts || {};\r\n const canvas = editor.Canvas;\r\n const canvasView = canvas.getCanvasView();\r\n const options = {\r\n appendTo: canvas.getResizerEl(),\r\n prefix: editor.getConfig().stylePrefix,\r\n posFetcher: canvasView.getElementPos.bind(canvasView),\r\n mousePosFetcher: canvas.getMouseRelativePos,\r\n ...(opt.options || {}),\r\n };\r\n let { canvasResizer } = this;\r\n\r\n // Create the resizer for the canvas if not yet created\r\n if (!canvasResizer || opt.forceNew) {\r\n this.canvasResizer = editor.Utils.Resizer.init(options);\r\n canvasResizer = this.canvasResizer;\r\n }\r\n\r\n canvasResizer.setOptions(options);\r\n canvasResizer.blur();\r\n canvasResizer.focus(opt.el);\r\n return canvasResizer;\r\n },\r\n\r\n stop() {\r\n this.canvasResizer?.blur();\r\n },\r\n};\r\n","import Backbone from 'backbone';\r\n\r\nexport default Backbone.View.extend({\r\n events() {\r\n return (\r\n this.model.get('events') || {\r\n mousedown: 'handleClick'\r\n }\r\n );\r\n },\r\n\r\n attributes() {\r\n return this.model.get('attributes');\r\n },\r\n\r\n initialize(opts = {}) {\r\n const { config = {} } = opts;\r\n this.em = config.em;\r\n this.editor = config.editor;\r\n },\r\n\r\n handleClick(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n /*\r\n * Since the toolbar lives outside the canvas frame, the event's\r\n * generated on it have clientX and clientY relative to the page.\r\n *\r\n * This causes issues during events like dragging, where they depend\r\n * on the clientX and clientY.\r\n *\r\n * This makes sure the offsets are calculated.\r\n *\r\n * More information on\r\n * https://github.com/artf/grapesjs/issues/2372\r\n * https://github.com/artf/grapesjs/issues/2207\r\n */\r\n\r\n const { editor, em } = this;\r\n const { left, top } = editor.Canvas.getFrameEl().getBoundingClientRect();\r\n\r\n const calibrated = {\r\n ...event,\r\n clientX: event.clientX - left,\r\n clientY: event.clientY - top\r\n };\r\n\r\n em.trigger('toolbar:run:before');\r\n this.execCommand(calibrated);\r\n },\r\n\r\n execCommand(event) {\r\n const opts = { event };\r\n const command = this.model.get('command');\r\n const editor = this.editor;\r\n\r\n if (typeof command === 'function') {\r\n command(editor, null, opts);\r\n }\r\n\r\n if (typeof command === 'string') {\r\n editor.runCommand(command, opts);\r\n }\r\n },\r\n\r\n render() {\r\n const { editor, $el, model } = this;\r\n const id = model.get('id');\r\n const label = model.get('label');\r\n const pfx = editor.getConfig('stylePrefix');\r\n $el.addClass(`${pfx}toolbar-item`);\r\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\r\n label && $el.append(label);\r\n return this;\r\n }\r\n});\r\n","import DomainViews from 'domain_abstract/view/DomainViews';\r\nimport ToolbarButtonView from './ToolbarButtonView';\r\n\r\nexport default class ToolbarView extends DomainViews {\r\n constructor(opts = {}, config) {\r\n super(opts, config);\r\n this.config = { editor: opts.editor || '', em: opts.em };\r\n this.listenTo(this.collection, 'reset', this.render);\r\n }\r\n}\r\n\r\nToolbarView.prototype.itemView = ToolbarButtonView;\r\n","import Backbone from 'backbone';\r\n\r\nexport default Backbone.Model.extend({\r\n defaults: {\r\n command: '',\r\n attributes: {}\r\n }\r\n});\r\n","import Backbone from 'backbone';\r\nimport ToolbarButton from './ToolbarButton';\r\n\r\nexport default Backbone.Collection.extend({ model: ToolbarButton });\r\n","import Backbone from 'backbone';\r\nimport { bindAll, isElement, debounce } from 'underscore';\r\nimport { on, off, getUnitFromValue, isTaggableNode, getViewEl, hasWin } from '../../utils/mixins';\r\nimport { isVisible, isDoc } from '../../utils/dom';\r\nimport ToolbarView from '../../dom_components/view/ToolbarView';\r\nimport Toolbar from '../../dom_components/model/Toolbar';\r\n\r\nconst $ = Backbone.$;\r\nlet showOffsets;\r\n/**\r\n * This command is responsible for show selecting components and displaying\r\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\r\n *\r\n * The command manages different boxes to display tools and when something in\r\n * the canvas is updated, the command triggers the appropriate method to update\r\n * their position (across multiple frames/components):\r\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\r\n * This box contains tools intended to be displayed only on ONE component per time,\r\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\r\n * you won't be able to see more than one Component Toolbar (even with multiple\r\n * frames or multiple selected components)\r\n * - Local Tools (updateToolsLocal/updateLocalPos)\r\n * Each frame in the canvas has its own local box, so we're able to see more than\r\n * one active container at the same time. When you put a mouse over an element\r\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\r\n * so those elements are inside the Local Tools box\r\n *\r\n *\r\n */\r\nexport default {\r\n init(o) {\r\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\r\n },\r\n\r\n enable() {\r\n this.frameOff = this.canvasOff = this.adjScroll = null;\r\n this.startSelectComponent();\r\n showOffsets = 1;\r\n },\r\n\r\n /**\r\n * Start select component event\r\n * @private\r\n * */\r\n startSelectComponent() {\r\n this.toggleSelectComponent(1);\r\n this.em.getSelected() && this.onSelect();\r\n },\r\n\r\n /**\r\n * Stop select component event\r\n * @private\r\n * */\r\n stopSelectComponent() {\r\n this.toggleSelectComponent();\r\n },\r\n\r\n /**\r\n * Toggle select component event\r\n * @private\r\n * */\r\n toggleSelectComponent(enable) {\r\n const { em } = this;\r\n const listenToEl = em.getConfig('listenToEl');\r\n const { parentNode } = em.getContainer();\r\n const method = enable ? 'on' : 'off';\r\n const methods = { on, off };\r\n !listenToEl.length && parentNode && listenToEl.push(parentNode);\r\n const trigger = (win, body) => {\r\n methods[method](body, 'mouseover', this.onHover);\r\n methods[method](body, 'mouseleave', this.onOut);\r\n methods[method](body, 'click touchend', this.onClick);\r\n methods[method](win, 'scroll', this.onFrameScroll, true);\r\n };\r\n methods[method](window, 'resize', this.onFrameUpdated);\r\n methods[method](listenToEl, 'scroll', this.onContainerChange);\r\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\r\n em[method]('change:componentHovered', this.onHovered, this);\r\n em[method](\r\n 'component:resize styleable:change component:input', // component:styleUpdate\r\n this.updateGlobalPos,\r\n this\r\n );\r\n em[method]('component:update:toolbar', this._upToolbar, this);\r\n em[method]('change:canvasOffset', this.updateAttached, this);\r\n em[method]('frame:updated', this.onFrameUpdated, this);\r\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\r\n em.get('Canvas')\r\n .getFrames()\r\n .forEach(frame => {\r\n const { view } = frame;\r\n const win = view?.getWindow();\r\n win && trigger(win, view.getBody());\r\n });\r\n },\r\n\r\n /**\r\n * Hover command\r\n * @param {Object} e\r\n * @private\r\n */\r\n onHover(e) {\r\n e.stopPropagation();\r\n const { em } = this;\r\n const trg = e.target;\r\n const view = getViewEl(trg);\r\n const frameView = view && view._getFrame();\r\n const $el = $(trg);\r\n let model = $el.data('model');\r\n\r\n // Get first valid model\r\n if (!model) {\r\n let parent = $el.parent();\r\n while (!model && parent.length && !isDoc(parent[0])) {\r\n model = parent.data('model');\r\n parent = parent.parent();\r\n }\r\n }\r\n\r\n this.currentDoc = trg.ownerDocument;\r\n em.setHovered(model, { useValid: true });\r\n frameView && em.set('currentFrame', frameView);\r\n },\r\n\r\n onFrameUpdated() {\r\n this.updateLocalPos();\r\n this.updateGlobalPos();\r\n },\r\n\r\n onHovered(em, component) {\r\n let result = {};\r\n\r\n if (component) {\r\n component.views.forEach(view => {\r\n const el = view.el;\r\n const pos = this.getElementPos(el);\r\n result = { el, pos, component, view: getViewEl(el) };\r\n this.updateToolsLocal(result);\r\n\r\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\r\n });\r\n } else {\r\n this.currentDoc = null;\r\n this.elHovered = 0;\r\n this.updateToolsLocal();\r\n this.canvas.getFrames().forEach(frame => {\r\n const { view } = frame;\r\n const el = view && view.getToolsEl();\r\n el && this.toggleToolsEl(0, 0, { el });\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Say what to do after the component was selected\r\n * @param {Object} e\r\n * @param {Object} el\r\n * @private\r\n * */\r\n onSelect: debounce(function () {\r\n const { em } = this;\r\n const component = em.getSelected();\r\n const currentFrame = em.get('currentFrame') || {};\r\n const view = component && component.getView(currentFrame.model);\r\n let el = view && view.el;\r\n let result = {};\r\n\r\n if (el && isVisible(el)) {\r\n const pos = this.getElementPos(el);\r\n result = { el, pos, component, view: getViewEl(el) };\r\n }\r\n\r\n this.elSelected = result;\r\n this.updateToolsGlobal();\r\n // This will hide some elements from the select component\r\n this.updateLocalPos(result);\r\n this.initResize(component);\r\n }),\r\n\r\n updateGlobalPos() {\r\n const sel = this.getElSelected();\r\n if (!sel.el) return;\r\n sel.pos = this.getElementPos(sel.el);\r\n this.updateToolsGlobal();\r\n },\r\n\r\n updateLocalPos(data) {\r\n const sel = this.getElHovered();\r\n if (!sel.el) return;\r\n sel.pos = this.getElementPos(sel.el);\r\n this.updateToolsLocal(data);\r\n },\r\n\r\n getElHovered() {\r\n return this.elHovered || {};\r\n },\r\n\r\n getElSelected() {\r\n return this.elSelected || {};\r\n },\r\n\r\n onOut() {\r\n this.em.setHovered(0);\r\n },\r\n\r\n toggleToolsEl(on, view, opts = {}) {\r\n const el = opts.el || this.canvas.getToolsEl(view);\r\n el && (el.style.display = on ? '' : 'none');\r\n return el || {};\r\n },\r\n\r\n /**\r\n * Show element offset viewer\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n showElementOffset(el, pos, opts = {}) {\r\n if (!showOffsets) return;\r\n this.editor.runCommand('show-offset', {\r\n el,\r\n elPos: pos,\r\n view: opts.view,\r\n force: 1,\r\n top: 0,\r\n left: 0,\r\n });\r\n },\r\n\r\n /**\r\n * Hide element offset viewer\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n hideElementOffset(view) {\r\n this.editor.stopCommand('show-offset', {\r\n view,\r\n });\r\n },\r\n\r\n /**\r\n * Show fixed element offset viewer\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n showFixedElementOffset(el, pos) {\r\n this.editor.runCommand('show-offset', {\r\n el,\r\n elPos: pos,\r\n state: 'Fixed',\r\n });\r\n },\r\n\r\n /**\r\n * Hide fixed element offset viewer\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n hideFixedElementOffset(el, pos) {\r\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\r\n },\r\n\r\n /**\r\n * Hide Highlighter element\r\n */\r\n hideHighlighter(view) {\r\n this.canvas.getHighlighter(view).style.opacity = 0;\r\n },\r\n\r\n /**\r\n * On element click\r\n * @param {Event} e\r\n * @private\r\n */\r\n onClick(ev) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n const { em } = this;\r\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\r\n const $el = $(ev.target);\r\n let model = $el.data('model');\r\n\r\n if (!model) {\r\n let parent = $el.parent();\r\n while (!model && parent.length && !isDoc(parent[0])) {\r\n model = parent.data('model');\r\n parent = parent.parent();\r\n }\r\n }\r\n\r\n if (model) {\r\n // Avoid selection of inner text components during editing\r\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\r\n return;\r\n }\r\n this.select(model, ev);\r\n }\r\n },\r\n\r\n /**\r\n * Select component\r\n * @param {Component} model\r\n * @param {Event} event\r\n */\r\n select(model, event = {}) {\r\n if (!model) return;\r\n this.editor.select(model, { event, useValid: true });\r\n this.initResize(model);\r\n },\r\n\r\n /**\r\n * Update badge for the component\r\n * @param {Object} Component\r\n * @param {Object} pos Position object\r\n * @private\r\n * */\r\n updateBadge(el, pos, opts = {}) {\r\n const { canvas } = this;\r\n const model = $(el).data('model');\r\n if (!model || !model.get('badgable')) return;\r\n const badge = this.getBadge(opts);\r\n\r\n if (!opts.posOnly) {\r\n const config = this.canvas.getConfig();\r\n const icon = model.getIcon();\r\n const ppfx = config.pStylePrefix || '';\r\n const clsBadge = `${ppfx}badge`;\r\n const customeLabel = config.customBadgeLabel;\r\n const badgeLabel = `${icon ? `
${icon}
` : ''}\r\n
${model.getName()}
`;\r\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\r\n }\r\n\r\n const un = 'px';\r\n const bStyle = badge.style;\r\n bStyle.display = 'block';\r\n\r\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\r\n pos: pos,\r\n });\r\n\r\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\r\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\r\n\r\n bStyle.top = top + un;\r\n bStyle.left = left + un;\r\n },\r\n\r\n /**\r\n * Update highlighter element\r\n * @param {HTMLElement} el\r\n * @param {Object} pos Position object\r\n * @private\r\n */\r\n showHighlighter(view) {\r\n this.canvas.getHighlighter(view).style.opacity = '';\r\n },\r\n\r\n /**\r\n * Init resizer on the element if possible\r\n * @param {HTMLElement|Component} elem\r\n * @private\r\n */\r\n initResize(elem) {\r\n const { em, canvas } = this;\r\n const editor = em ? em.get('Editor') : '';\r\n const config = em ? em.get('Config') : '';\r\n const pfx = config.stylePrefix || '';\r\n const resizeClass = `${pfx}resizing`;\r\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\r\n const resizable = model && model.get('resizable');\r\n let options = {};\r\n let modelToStyle;\r\n\r\n var toggleBodyClass = (method, e, opts) => {\r\n const docs = opts.docs;\r\n docs &&\r\n docs.forEach(doc => {\r\n const body = doc.body;\r\n const cls = body.className || '';\r\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\r\n });\r\n };\r\n\r\n if (editor && resizable) {\r\n const el = isElement(elem) ? elem : model.getEl();\r\n options = {\r\n // Here the resizer is updated with the current element height and width\r\n onStart(e, opts = {}) {\r\n const { el, config, resizer } = opts;\r\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\r\n toggleBodyClass('add', e, opts);\r\n modelToStyle = em.get('StyleManager').getModelToStyle(model);\r\n canvas.toggleFramesEvents();\r\n const computedStyle = getComputedStyle(el);\r\n const modelStyle = modelToStyle.getStyle();\r\n\r\n let currentWidth = modelStyle[keyWidth];\r\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\r\n if (isNaN(parseFloat(currentWidth))) {\r\n currentWidth = computedStyle[keyWidth];\r\n }\r\n\r\n let currentHeight = modelStyle[keyHeight];\r\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\r\n if (isNaN(parseFloat(currentHeight))) {\r\n currentHeight = computedStyle[keyHeight];\r\n }\r\n\r\n resizer.startDim.w = parseFloat(currentWidth);\r\n resizer.startDim.h = parseFloat(currentHeight);\r\n showOffsets = 0;\r\n\r\n if (currentUnit) {\r\n config.unitHeight = getUnitFromValue(currentHeight);\r\n config.unitWidth = getUnitFromValue(currentWidth);\r\n }\r\n },\r\n\r\n // Update all positioned elements (eg. component toolbar)\r\n onMove() {\r\n editor.trigger('component:resize');\r\n },\r\n\r\n onEnd(e, opts) {\r\n toggleBodyClass('remove', e, opts);\r\n editor.trigger('component:resize');\r\n canvas.toggleFramesEvents(1);\r\n showOffsets = 1;\r\n },\r\n\r\n updateTarget(el, rect, options = {}) {\r\n if (!modelToStyle) {\r\n return;\r\n }\r\n\r\n const { store, selectedHandler, config } = options;\r\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\r\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\r\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\r\n const style = {};\r\n const en = !store ? 1 : ''; // this will trigger the final change\r\n\r\n if (!onlyHeight) {\r\n const bodyw = canvas.getBody().offsetWidth;\r\n const width = rect.w < bodyw ? rect.w : bodyw;\r\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\r\n }\r\n\r\n if (!onlyWidth) {\r\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\r\n }\r\n\r\n modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });\r\n const updateEvent = `update:component:style`;\r\n const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`;\r\n em && em.trigger(eventToListen, null, null, { noEmit: 1 });\r\n },\r\n };\r\n\r\n if (typeof resizable == 'object') {\r\n options = { ...options, ...resizable, parent: options };\r\n }\r\n\r\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\r\n } else {\r\n editor.stopCommand('resize');\r\n this.resizer = null;\r\n }\r\n },\r\n\r\n /**\r\n * Update toolbar if the component has one\r\n * @param {Object} mod\r\n */\r\n updateToolbar(mod) {\r\n const { em } = this.config;\r\n const model = mod == em ? em.getSelected() : mod;\r\n const toolbarEl = this.canvas.getToolbarEl();\r\n const toolbarStyle = toolbarEl.style;\r\n const toolbar = model.get('toolbar');\r\n const showToolbar = em.get('Config').showToolbar;\r\n\r\n if (model && showToolbar && toolbar && toolbar.length) {\r\n toolbarStyle.display = '';\r\n if (!this.toolbar) {\r\n toolbarEl.innerHTML = '';\r\n this.toolbar = new Toolbar(toolbar);\r\n const toolbarView = new ToolbarView({\r\n collection: this.toolbar,\r\n editor: this.editor,\r\n em,\r\n });\r\n toolbarEl.appendChild(toolbarView.render().el);\r\n }\r\n\r\n this.toolbar.reset(toolbar);\r\n toolbarStyle.top = '-100px';\r\n toolbarStyle.left = 0;\r\n } else {\r\n toolbarStyle.display = 'none';\r\n }\r\n },\r\n\r\n /**\r\n * Update toolbar positions\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n updateToolbarPos(pos) {\r\n const unit = 'px';\r\n const { style } = this.canvas.getToolbarEl();\r\n style.top = `${pos.top}${unit}`;\r\n style.left = `${pos.left}${unit}`;\r\n style.opacity = '';\r\n },\r\n\r\n /**\r\n * Return canvas dimensions and positions\r\n * @return {Object}\r\n */\r\n getCanvasPosition() {\r\n return this.canvas.getCanvasView().getPosition();\r\n },\r\n\r\n /**\r\n * Returns badge element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getBadge(opts = {}) {\r\n return this.canvas.getBadgeEl(opts.view);\r\n },\r\n\r\n /**\r\n * On frame scroll callback\r\n * @private\r\n */\r\n onFrameScroll() {\r\n this.updateTools();\r\n },\r\n\r\n updateTools() {\r\n this.updateLocalPos();\r\n this.updateGlobalPos();\r\n },\r\n\r\n isCompSelected(comp) {\r\n return comp && comp.get('status') === 'selected';\r\n },\r\n\r\n /**\r\n * Update tools visible on hover\r\n * @param {HTMLElement} el\r\n * @param {Object} pos\r\n */\r\n updateToolsLocal(data) {\r\n const { el, pos, view, component } = data || this.getElHovered();\r\n\r\n if (!el) {\r\n this.lastHovered = 0;\r\n return;\r\n }\r\n\r\n const isHoverEn = component.get('hoverable');\r\n const isNewEl = this.lastHovered !== el;\r\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\r\n\r\n if (isNewEl && isHoverEn) {\r\n this.lastHovered = el;\r\n this.showHighlighter(view);\r\n this.showElementOffset(el, pos, { view });\r\n }\r\n\r\n if (this.isCompSelected(component)) {\r\n this.hideHighlighter(view);\r\n this.hideElementOffset(view);\r\n }\r\n\r\n const unit = 'px';\r\n const toolsEl = this.toggleToolsEl(1, view);\r\n const { style } = toolsEl;\r\n const frameOff = this.canvas.canvasRectOffset(el, pos);\r\n const topOff = frameOff.top;\r\n const leftOff = frameOff.left;\r\n\r\n this.updateBadge(el, pos, {\r\n ...badgeOpts,\r\n view,\r\n topOff,\r\n leftOff,\r\n });\r\n\r\n style.top = topOff + unit;\r\n style.left = leftOff + unit;\r\n style.width = pos.width + unit;\r\n style.height = pos.height + unit;\r\n\r\n this._trgToolUp('local', {\r\n component,\r\n el: toolsEl,\r\n top: topOff,\r\n left: leftOff,\r\n width: pos.width,\r\n height: pos.height,\r\n });\r\n },\r\n\r\n _upToolbar: debounce(function () {\r\n this.updateToolsGlobal({ force: 1 });\r\n }),\r\n\r\n _trgToolUp(type, opts = {}) {\r\n this.em.trigger('canvas:tools:update', {\r\n type,\r\n ...opts,\r\n });\r\n },\r\n\r\n updateToolsGlobal(opts = {}) {\r\n const { el, pos, component } = this.getElSelected();\r\n\r\n if (!el) {\r\n this.toggleToolsEl(); // Hides toolbar\r\n this.lastSelected = 0;\r\n return;\r\n }\r\n\r\n const { canvas } = this;\r\n const isNewEl = this.lastSelected !== el;\r\n\r\n if (isNewEl || opts.force) {\r\n this.lastSelected = el;\r\n this.updateToolbar(component);\r\n }\r\n\r\n const unit = 'px';\r\n const toolsEl = this.toggleToolsEl(1);\r\n const { style } = toolsEl;\r\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl(), { pos });\r\n const topOff = targetToElem.canvasOffsetTop;\r\n const leftOff = targetToElem.canvasOffsetLeft;\r\n style.top = topOff + unit;\r\n style.left = leftOff + unit;\r\n style.width = pos.width + unit;\r\n style.height = pos.height + unit;\r\n\r\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\r\n this._trgToolUp('global', {\r\n component,\r\n el: toolsEl,\r\n top: topOff,\r\n left: leftOff,\r\n width: pos.width,\r\n height: pos.height,\r\n });\r\n },\r\n\r\n /**\r\n * Update attached elements, eg. component toolbar\r\n */\r\n updateAttached: debounce(function () {\r\n this.updateGlobalPos();\r\n }),\r\n\r\n onContainerChange: debounce(function () {\r\n this.em.refreshCanvas();\r\n }, 150),\r\n\r\n /**\r\n * Returns element's data info\r\n * @param {HTMLElement} el\r\n * @return {Object}\r\n * @private\r\n */\r\n getElementPos(el) {\r\n return this.canvas.getCanvasView().getElementPos(el);\r\n },\r\n\r\n /**\r\n * Hide badge\r\n * @private\r\n * */\r\n hideBadge() {\r\n this.getBadge().style.display = 'none';\r\n },\r\n\r\n /**\r\n * Clean previous model from different states\r\n * @param {Component} model\r\n * @private\r\n */\r\n cleanPrevious(model) {\r\n model &&\r\n model.set({\r\n status: '',\r\n state: '',\r\n });\r\n },\r\n\r\n /**\r\n * Returns content window\r\n * @private\r\n */\r\n getContentWindow() {\r\n return this.canvas.getWindow();\r\n },\r\n\r\n run(editor) {\r\n if (!hasWin()) return;\r\n this.editor = editor && editor.get('Editor');\r\n this.enable();\r\n },\r\n\r\n stop(ed, sender, opts = {}) {\r\n if (!hasWin()) return;\r\n const { em, editor } = this;\r\n this.onHovered(); // force to hide toolbar\r\n this.stopSelectComponent();\r\n !opts.preserveSelected && em.setSelected(null);\r\n this.toggleToolsEl();\r\n editor && editor.stopCommand('resize');\r\n },\r\n};\r\n","import Backbone from 'backbone';\r\nconst $ = Backbone.$;\r\n\r\nexport default {\r\n /**\r\n * Start select position event\r\n * @param {HTMLElement} trg\r\n * @private\r\n * */\r\n startSelectPosition(trg, doc, opts = {}) {\r\n this.isPointed = false;\r\n var utils = this.editorModel.get('Utils');\r\n const container = trg.ownerDocument.body;\r\n\r\n if (utils && !this.sorter)\r\n this.sorter = new utils.Sorter({\r\n container,\r\n placer: this.canvas.getPlacerEl(),\r\n containerSel: '*',\r\n itemSel: '*',\r\n pfx: this.ppfx,\r\n direction: 'a',\r\n document: doc,\r\n wmargin: 1,\r\n nested: 1,\r\n em: this.editorModel,\r\n canvasRelative: 1,\r\n scale: () => this.em.getZoomDecimal()\r\n });\r\n\r\n if (opts.onStart) this.sorter.onStart = opts.onStart;\r\n trg && this.sorter.startSort(trg, { container });\r\n },\r\n\r\n /**\r\n * Get frame position\r\n * @return {Object}\r\n * @private\r\n */\r\n getOffsetDim() {\r\n var frameOff = this.offset(this.canvas.getFrameEl());\r\n var canvasOff = this.offset(this.canvas.getElement());\r\n var top = frameOff.top - canvasOff.top;\r\n var left = frameOff.left - canvasOff.left;\r\n return { top, left };\r\n },\r\n\r\n /**\r\n * Stop select position event\r\n * @private\r\n * */\r\n stopSelectPosition() {\r\n this.posTargetCollection = null;\r\n this.posIndex =\r\n this.posMethod == 'after' && this.cDim.length !== 0\r\n ? this.posIndex + 1\r\n : this.posIndex; //Normalize\r\n if (this.sorter) {\r\n this.sorter.moved = 0;\r\n this.sorter.endMove();\r\n }\r\n if (this.cDim) {\r\n this.posIsLastEl =\r\n this.cDim.length !== 0 &&\r\n this.posMethod == 'after' &&\r\n this.posIndex == this.cDim.length;\r\n this.posTargetEl =\r\n this.cDim.length === 0\r\n ? $(this.outsideElem)\r\n : !this.posIsLastEl && this.cDim[this.posIndex]\r\n ? $(this.cDim[this.posIndex][5]).parent()\r\n : $(this.outsideElem);\r\n this.posTargetModel = this.posTargetEl.data('model');\r\n this.posTargetCollection = this.posTargetEl.data('model-comp');\r\n }\r\n },\r\n\r\n /**\r\n * Enabel select position\r\n * @private\r\n */\r\n enable() {\r\n this.startSelectPosition();\r\n },\r\n\r\n /**\r\n * Check if the pointer is near to the float component\r\n * @param {number} index\r\n * @param {string} method\r\n * @param {Array} dims\r\n * @return {Boolean}\r\n * @private\r\n * */\r\n nearFloat(index, method, dims) {\r\n var i = index || 0;\r\n var m = method || 'before';\r\n var len = dims.length;\r\n var isLast = len !== 0 && m == 'after' && i == len;\r\n if (\r\n len !== 0 &&\r\n ((!isLast && !dims[i][4]) ||\r\n (dims[i - 1] && !dims[i - 1][4]) ||\r\n (isLast && !dims[i - 1][4]))\r\n )\r\n return 1;\r\n return 0;\r\n },\r\n\r\n run() {\r\n this.enable();\r\n },\r\n\r\n stop() {\r\n this.stopSelectPosition();\r\n this.$wrapper.css('cursor', '');\r\n this.$wrapper.unbind();\r\n }\r\n};\r\n","import Backbone from 'backbone';\r\nimport { isUndefined } from 'underscore';\r\nimport { isTextNode } from '../../utils/mixins';\r\nconst $ = Backbone.$;\r\n\r\nexport default {\r\n getOffsetMethod(state) {\r\n var method = state || '';\r\n return 'get' + method + 'OffsetViewerEl';\r\n },\r\n\r\n run(editor, sender, opts) {\r\n var opt = opts || {};\r\n var state = opt.state || '';\r\n var config = editor.getConfig();\r\n const zoom = this.em.getZoomDecimal();\r\n const el = opt.el || '';\r\n\r\n if (!config.showOffsets || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\r\n editor.stopCommand(this.id, opts);\r\n return;\r\n }\r\n\r\n var canvas = editor.Canvas;\r\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\r\n\r\n if (!isUndefined(opt.top)) {\r\n pos.top = opt.top;\r\n }\r\n if (!isUndefined(opt.left)) {\r\n pos.left = opt.left;\r\n }\r\n\r\n var style = window.getComputedStyle(el);\r\n var ppfx = this.ppfx;\r\n var stateVar = state + 'State';\r\n var method = this.getOffsetMethod(state);\r\n var offsetViewer = canvas[method](opts.view);\r\n offsetViewer.style.opacity = '';\r\n\r\n let marginT = this['marginT' + state];\r\n let marginB = this['marginB' + state];\r\n let marginL = this['marginL' + state];\r\n let marginR = this['marginR' + state];\r\n let padT = this['padT' + state];\r\n let padB = this['padB' + state];\r\n let padL = this['padL' + state];\r\n let padR = this['padR' + state];\r\n\r\n if (offsetViewer.childNodes.length) {\r\n this[stateVar] = '1';\r\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\r\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\r\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\r\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\r\n padT = offsetViewer.querySelector('[data-offset-p-t]');\r\n padB = offsetViewer.querySelector('[data-offset-p-b]');\r\n padL = offsetViewer.querySelector('[data-offset-p-l]');\r\n padR = offsetViewer.querySelector('[data-offset-p-r]');\r\n }\r\n\r\n if (!this[stateVar]) {\r\n var stateLow = state.toLowerCase();\r\n var marginName = stateLow + 'margin-v';\r\n var paddingName = stateLow + 'padding-v';\r\n var marginV = $(`
`).get(0);\r\n var paddingV = $(`
`).get(0);\r\n var marginEls = ppfx + marginName + '-el';\r\n var paddingEls = ppfx + paddingName + '-el';\r\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\r\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\r\n marginT = $(`
`).get(0);\r\n marginB = $(`
`).get(0);\r\n marginL = $(`
`).get(0);\r\n marginR = $(`
`).get(0);\r\n padT = $(`
`).get(0);\r\n padB = $(`
`).get(0);\r\n padL = $(`
`).get(0);\r\n padR = $(`
`).get(0);\r\n this['marginT' + state] = marginT;\r\n this['marginB' + state] = marginB;\r\n this['marginL' + state] = marginL;\r\n this['marginR' + state] = marginR;\r\n this['padT' + state] = padT;\r\n this['padB' + state] = padB;\r\n this['padL' + state] = padL;\r\n this['padR' + state] = padR;\r\n marginV.appendChild(marginT);\r\n marginV.appendChild(marginB);\r\n marginV.appendChild(marginL);\r\n marginV.appendChild(marginR);\r\n paddingV.appendChild(padT);\r\n paddingV.appendChild(padB);\r\n paddingV.appendChild(padL);\r\n paddingV.appendChild(padR);\r\n offsetViewer.appendChild(marginV);\r\n offsetViewer.appendChild(paddingV);\r\n this[stateVar] = '1';\r\n }\r\n\r\n var unit = 'px';\r\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\r\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\r\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\r\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\r\n var mtStyle = marginT.style;\r\n var mbStyle = marginB.style;\r\n var mlStyle = marginL.style;\r\n var mrStyle = marginR.style;\r\n var ptStyle = padT.style;\r\n var pbStyle = padB.style;\r\n var plStyle = padL.style;\r\n var prStyle = padR.style;\r\n var posLeft = parseFloat(pos.left);\r\n var widthEl = parseFloat(style.width) * zoom + unit;\r\n\r\n // Margin style\r\n mtStyle.height = marginTopSt + unit;\r\n mtStyle.width = widthEl;\r\n mtStyle.top = pos.top - marginTopSt + unit;\r\n mtStyle.left = posLeft + unit;\r\n\r\n mbStyle.height = marginBottomSt + unit;\r\n mbStyle.width = widthEl;\r\n mbStyle.top = pos.top + pos.height + unit;\r\n mbStyle.left = posLeft + unit;\r\n\r\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\r\n var marginSideT = pos.top - marginTopSt + unit;\r\n mlStyle.height = marginSideH;\r\n mlStyle.width = marginLeftSt + unit;\r\n mlStyle.top = marginSideT;\r\n mlStyle.left = posLeft - marginLeftSt + unit;\r\n\r\n mrStyle.height = marginSideH;\r\n mrStyle.width = marginRightSt + unit;\r\n mrStyle.top = marginSideT;\r\n mrStyle.left = posLeft + pos.width + unit;\r\n\r\n // Padding style\r\n var padTop = parseFloat(style.paddingTop) * zoom;\r\n ptStyle.height = padTop + unit;\r\n // ptStyle.width = widthEl;\r\n // ptStyle.top = pos.top + unit;\r\n // ptStyle.left = posLeft + unit;\r\n\r\n var padBot = parseFloat(style.paddingBottom) * zoom;\r\n pbStyle.height = padBot + unit;\r\n // pbStyle.width = widthEl;\r\n // pbStyle.top = pos.top + pos.height - padBot + unit;\r\n // pbStyle.left = posLeft + unit;\r\n\r\n var padSideH = pos.height - padBot - padTop + unit;\r\n var padSideT = pos.top + padTop + unit;\r\n plStyle.height = padSideH;\r\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\r\n plStyle.top = padSideT;\r\n // plStyle.left = pos.left + unit;\r\n // plStyle.right = 0;\r\n\r\n var padRight = parseFloat(style.paddingRight) * zoom;\r\n prStyle.height = padSideH;\r\n prStyle.width = padRight + unit;\r\n prStyle.top = padSideT;\r\n // prStyle.left = pos.left + pos.width - padRight + unit;\r\n // prStyle.left = 0;\r\n },\r\n\r\n stop(editor, sender, opts = {}) {\r\n var opt = opts || {};\r\n var state = opt.state || '';\r\n var method = this.getOffsetMethod(state);\r\n var canvas = editor.Canvas;\r\n var offsetViewer = canvas[method](opts.view);\r\n offsetViewer.style.opacity = 0;\r\n },\r\n};\r\n","import { bindAll } from 'underscore';\r\n\r\nexport default {\r\n init() {\r\n bindAll(this, '_onFramesChange');\r\n },\r\n\r\n run(ed) {\r\n this.toggleVis(ed);\r\n },\r\n\r\n stop(ed) {\r\n this.toggleVis(ed, 0);\r\n },\r\n\r\n toggleVis(ed, active = 1) {\r\n if (!ed.Commands.isActive('preview')) {\r\n const cv = ed.Canvas;\r\n const mth = active ? 'on' : 'off';\r\n cv.getFrames().forEach(frame => this._upFrame(frame, active));\r\n cv.getModel()[mth]('change:frames', this._onFramesChange);\r\n }\r\n },\r\n\r\n _onFramesChange(m, frames) {\r\n frames.forEach(frame => this._upFrame(frame, 1));\r\n },\r\n\r\n _upFrame(frame, active) {\r\n const method = active ? 'add' : 'remove';\r\n frame.view.getBody().classList[method](`${this.ppfx}dashed`);\r\n }\r\n};\r\n","import { isString, isElement } from 'underscore';\r\nimport { createId, deepMerge, isDef } from 'utils/mixins';\r\n\r\nexport default {\r\n getConfig(name) {\r\n return this.__getConfig(name);\r\n },\r\n\r\n getProjectData(data) {\r\n const obj = {};\r\n const key = this.storageKey;\r\n if (key) {\r\n obj[key] = data || this.getAll();\r\n }\r\n return obj;\r\n },\r\n\r\n loadProjectData(data = {}, { all, onResult, reset } = {}) {\r\n const key = this.storageKey;\r\n const opts = { action: 'load' };\r\n const coll = all || this.getAll();\r\n let result = data[key];\r\n\r\n if (typeof result == 'string') {\r\n try {\r\n result = JSON.parse(result);\r\n } catch (err) {\r\n this.__logWarn('Data parsing failed', { input: result });\r\n }\r\n }\r\n\r\n reset && result && coll.reset(null, opts);\r\n\r\n if (onResult) {\r\n result && onResult(result, opts);\r\n } else if (result && isDef(result.length)) {\r\n coll.reset(result, opts);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n clear(opts = {}) {\r\n const { all } = this;\r\n all && all.reset(null, opts);\r\n return this;\r\n },\r\n\r\n __getConfig(name) {\r\n const res = this.config || {};\r\n return name ? res[name] : res;\r\n },\r\n\r\n getAll(opts = {}) {\r\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\r\n },\r\n\r\n getAllMap() {\r\n return this.getAll().reduce((acc, i) => {\r\n acc[i.get(i.idAttribute)] = i;\r\n return acc;\r\n }, {});\r\n },\r\n\r\n __initConfig(def = {}, conf = {}) {\r\n this.config = deepMerge(def, conf);\r\n this.em = this.config.em;\r\n this.cls = [];\r\n },\r\n\r\n __initListen(opts = {}) {\r\n const { all, em, events } = this;\r\n all &&\r\n em &&\r\n all\r\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\r\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\r\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\r\n .on('all', this.__catchAllEvent, this);\r\n // Register collections\r\n this.cls = [all].concat(opts.collections || []);\r\n // Propagate events\r\n (opts.propagate || []).forEach(({ entity, event }) => {\r\n entity.on('all', (ev, model, coll, opts) => {\r\n const options = opts || coll;\r\n const opt = { event: ev, ...options };\r\n [em, all].map(md => md.trigger(event, model, opt));\r\n });\r\n });\r\n },\r\n\r\n __remove(model, opts = {}) {\r\n const { em } = this;\r\n const md = isString(model) ? this.get(model) : model;\r\n const rm = () => {\r\n md && this.all.remove(md, opts);\r\n return md;\r\n };\r\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\r\n return !opts.abort && rm();\r\n },\r\n\r\n __catchAllEvent(event, model, coll, opts) {\r\n const { em, events } = this;\r\n const options = opts || coll;\r\n em && events.all && em.trigger(events.all, { event, model, options });\r\n this.__onAllEvent();\r\n },\r\n\r\n __appendTo() {\r\n const elTo = this.getConfig().appendTo;\r\n\r\n if (elTo) {\r\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\r\n if (!el) return this.__logWarn('\"appendTo\" element not found');\r\n el.appendChild(this.render());\r\n }\r\n },\r\n\r\n __onAllEvent() {},\r\n\r\n __logWarn(str, opts) {\r\n this.em.logWarning(`[${this.name}]: ${str}`, opts);\r\n },\r\n\r\n _createId(len = 16) {\r\n const all = this.getAll();\r\n const ln = all.length + len;\r\n const allMap = this.getAllMap();\r\n let id;\r\n\r\n do {\r\n id = createId(ln);\r\n } while (allMap[id]);\r\n\r\n return id;\r\n },\r\n\r\n __listenAdd(model, event) {\r\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\r\n },\r\n\r\n __listenRemove(model, event) {\r\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\r\n },\r\n\r\n __listenUpdate(model, event) {\r\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\r\n },\r\n\r\n __destroy() {\r\n this.cls.forEach(coll => {\r\n coll.stopListening();\r\n coll.reset();\r\n });\r\n this.em = 0;\r\n this.config = 0;\r\n this.view?.remove();\r\n this.view = 0;\r\n },\r\n};\r\n","export default {\r\n // Style prefix\r\n stylePrefix: 'css-',\r\n\r\n // Default CSS style\r\n rules: [],\r\n\r\n /**\r\n * Adjust style object before creation/update.\r\n * @example\r\n * onBeforeStyle(style) {\r\n * const padValue = style.padding;\r\n * if (padValue === '10px') {\r\n * delete style.padding;\r\n * style['padding-top'] = padValue;\r\n * // ...\r\n * }\r\n * return style;\r\n * }\r\n */\r\n onBeforeStyle: null\r\n};\r\n","import { isEmpty, forEach, isString, isArray } from 'underscore';\r\nimport { Model } from '../../common';\r\nimport Styleable from '../../domain_abstract/model/Styleable';\r\nimport Selectors from '../../selector_manager/model/Selectors';\r\nimport { getMediaLength } from '../../code_manager/model/CssGenerator';\r\nimport { isEmptyObj, hasWin } from '../../utils/mixins';\r\n\r\nconst { CSS } = hasWin() ? window : {};\r\n\r\n/**\r\n * @typedef CssRule\r\n * @property {Array} selectors Array of selectors\r\n * @property {Object} style Object containing style definitions\r\n * @property {String} [selectorsAdd=''] Additional string css selectors\r\n * @property {String} [atRuleType=''] Type of at-rule, eg. `media`, 'font-face'\r\n * @property {String} [mediaText=''] At-rule value, eg. `(max-width: 1000px)`\r\n * @property {Boolean} [singleAtRule=false] This property is used only on at-rules, like 'page' or 'font-face', where the block containes only style declarations\r\n * @property {String} [state=''] State of the rule, eg: `hover`, `focused`\r\n * @property {Boolean|Array} [important=false] If true, sets `!important` on all properties. You can also pass an array to specify properties on which use important\r\n * @property {Boolean} [stylable=true] Indicates if the rule is stylable from the editor\r\n *\r\n * [Device]: device.html\r\n * [State]: state.html\r\n * [Component]: component.html\r\n */\r\nexport default class CssRule extends Model.extend(Styleable) {\r\n defaults() {\r\n return {\r\n selectors: [],\r\n selectorsAdd: '',\r\n style: {},\r\n mediaText: '',\r\n state: '',\r\n stylable: true,\r\n atRuleType: '',\r\n singleAtRule: false,\r\n important: false,\r\n group: '',\r\n // If true, won't be stored in JSON or showed in CSS\r\n shallow: false,\r\n _undo: true,\r\n };\r\n }\r\n\r\n initialize(c, opt = {}) {\r\n this.config = c || {};\r\n this.opt = opt;\r\n this.em = opt.em;\r\n this.ensureSelectors();\r\n this.on('change', this.__onChange);\r\n }\r\n\r\n __onChange(m, opts) {\r\n const { em } = this;\r\n const changed = this.changedAttributes();\r\n !isEmptyObj(changed) && em && em.changesUp(opts);\r\n }\r\n\r\n clone() {\r\n const opts = { ...this.opt };\r\n const attr = { ...this.attributes };\r\n attr.selectors = this.get('selectors').map(s => s.clone());\r\n return new this.constructor(attr, opts);\r\n }\r\n\r\n ensureSelectors(m, c, opts) {\r\n const { em } = this;\r\n const sm = em && em.get('SelectorManager');\r\n const toListen = [this, 'change:selectors', this.ensureSelectors];\r\n let sels = this.getSelectors();\r\n this.stopListening(...toListen);\r\n\r\n if (sels.models) {\r\n sels = [...sels.models];\r\n }\r\n\r\n sels = isString(sels) ? [sels] : sels;\r\n\r\n if (Array.isArray(sels)) {\r\n const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i));\r\n sels = new Selectors(res);\r\n }\r\n\r\n this.set('selectors', sels, opts);\r\n this.listenTo(...toListen);\r\n }\r\n\r\n /**\r\n * Returns the at-rule statement when exists, eg. `@media (...)`, `@keyframes`\r\n * @returns {String}\r\n * @example\r\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\r\n * atRuleType: 'media',\r\n * atRuleParams: '(min-width: 500px)'\r\n * });\r\n * cssRule.getAtRule(); // \"@media (min-width: 500px)\"\r\n */\r\n getAtRule() {\r\n const type = this.get('atRuleType');\r\n const condition = this.get('mediaText');\r\n // Avoid breaks with the last condition\r\n const typeStr = type ? `@${type}` : condition ? '@media' : '';\r\n\r\n return typeStr + (condition && typeStr ? ` ${condition}` : '');\r\n }\r\n\r\n /**\r\n * Return selectors of the rule as a string\r\n * @param {Object} [opts] Options\r\n * @param {Boolean} [opts.skipState] Skip state from the result\r\n * @returns {String}\r\n * @example\r\n * const cssRule = editor.Css.setRule('.class1:hover', { color: 'red' });\r\n * cssRule.selectorsToString(); // \".class1:hover\"\r\n * cssRule.selectorsToString({ skipState: true }); // \".class1\"\r\n */\r\n selectorsToString(opts = {}) {\r\n const result = [];\r\n const state = this.get('state');\r\n const addSelector = this.get('selectorsAdd');\r\n const selOpts = {\r\n escape: str => (CSS && CSS.escape ? CSS.escape(str) : str),\r\n };\r\n const selectors = this.get('selectors').getFullString(0, selOpts);\r\n const stateStr = state && !opts.skipState ? `:${state}` : '';\r\n selectors && result.push(`${selectors}${stateStr}`);\r\n addSelector && !opts.skipAdd && result.push(addSelector);\r\n return result.join(', ');\r\n }\r\n\r\n /**\r\n * Get declaration block (without the at-rule statement)\r\n * @param {Object} [opts={}] Options (same as in `selectorsToString`)\r\n * @returns {String}\r\n * @example\r\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\r\n * atRuleType: 'media',\r\n * atRuleParams: '(min-width: 500px)'\r\n * });\r\n * cssRule.getDeclaration() // \".class1{color:red;}\"\r\n */\r\n getDeclaration(opts = {}) {\r\n let result = '';\r\n const selectors = this.selectorsToString(opts);\r\n const style = this.styleToString(opts);\r\n const singleAtRule = this.get('singleAtRule');\r\n\r\n if ((selectors || singleAtRule) && (style || opts.allowEmpty)) {\r\n result = singleAtRule ? style : `${selectors}{${style}}`;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Get the Device the rule is related to.\r\n * @returns {[Device]|null}\r\n * @example\r\n * const device = rule.getDevice();\r\n * console.log(device?.getName());\r\n */\r\n getDevice() {\r\n const { em } = this;\r\n const { atRuleType, mediaText } = this.attributes;\r\n const devices = em?.get('DeviceManager').getDevices() || [];\r\n const deviceDefault = devices.filter(d => d.getWidthMedia() === '')[0];\r\n if (atRuleType !== 'media' || !mediaText) {\r\n return deviceDefault || null;\r\n }\r\n return devices.filter(d => d.getWidthMedia() === getMediaLength(mediaText))[0] || null;\r\n }\r\n\r\n /**\r\n * Get the State the rule is related to.\r\n * @returns {[State]|null}\r\n * @example\r\n * const state = rule.getState();\r\n * console.log(state?.getLabel());\r\n */\r\n getState() {\r\n const { em } = this;\r\n const stateValue = this.get('state');\r\n const states = em.get('SelectorManager').getStates() || [];\r\n return states.filter(s => s.getName() === stateValue)[0] || null;\r\n }\r\n\r\n /**\r\n * Returns the related Component (valid only for component-specific rules).\r\n * @returns {[Component]|null}\r\n * @example\r\n * const cmp = rule.getComponent();\r\n * console.log(cmp?.toHTML());\r\n */\r\n getComponent() {\r\n const sel = this.getSelectors();\r\n const sngl = sel.length == 1 && sel.at(0);\r\n const cmpId = sngl && sngl.isId() && sngl.get('name');\r\n return (cmpId && this.em?.get('DomComponents').getById(cmpId)) || null;\r\n }\r\n\r\n /**\r\n * Return the CSS string of the rule\r\n * @param {Object} [opts={}] Options (same as in `getDeclaration`)\r\n * @return {String} CSS string\r\n * @example\r\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\r\n * atRuleType: 'media',\r\n * atRuleParams: '(min-width: 500px)'\r\n * });\r\n * cssRule.toCSS() // \"@media (min-width: 500px){.class1{color:red;}}\"\r\n */\r\n toCSS(opts = {}) {\r\n let result = '';\r\n const atRule = this.getAtRule();\r\n const block = this.getDeclaration(opts);\r\n if (block || opts.allowEmpty) {\r\n result = block;\r\n }\r\n\r\n if (atRule && result) {\r\n result = `${atRule}{${result}}`;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n toJSON(...args) {\r\n const obj = Model.prototype.toJSON.apply(this, args);\r\n\r\n if (this.em.getConfig('avoidDefaults')) {\r\n const defaults = this.defaults();\r\n\r\n forEach(defaults, (value, key) => {\r\n if (obj[key] === value) {\r\n delete obj[key];\r\n }\r\n });\r\n\r\n // Delete the property used for partial updates\r\n delete obj.style.__p;\r\n\r\n if (isEmpty(obj.selectors)) delete obj.selectors;\r\n if (isEmpty(obj.style)) delete obj.style;\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n /**\r\n * Compare the actual model with parameters\r\n * @param {Object} selectors Collection of selectors\r\n * @param {String} state Css rule state\r\n * @param {String} width For which device this style is oriented\r\n * @param {Object} ruleProps Other rule props\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n compare(selectors, state, width, ruleProps = {}) {\r\n const st = state || '';\r\n const wd = width || '';\r\n const selAdd = ruleProps.selectorsAdd || '';\r\n let atRule = ruleProps.atRuleType || '';\r\n const sel = !isArray(selectors) && !selectors.models ? [selectors] : selectors.models || selectors;\r\n\r\n // Fix atRuleType in case is not specified with width\r\n if (wd && !atRule) atRule = 'media';\r\n\r\n const a1 = sel.map(model => model.getFullName());\r\n const a2 = this.get('selectors').map(model => model.getFullName());\r\n\r\n // Check selectors\r\n const a1S = a1.slice().sort();\r\n const a2S = a2.slice().sort();\r\n if (a1.length !== a2.length || !a1S.every((v, i) => v === a2S[i])) {\r\n return false;\r\n }\r\n\r\n // Check other properties\r\n if (\r\n this.get('state') !== st ||\r\n this.get('mediaText') !== wd ||\r\n this.get('selectorsAdd') !== selAdd ||\r\n this.get('atRuleType') !== atRule\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport CssRule from './CssRule';\r\n\r\nexport default class CssRules extends Collection {\r\n initialize(models, opt) {\r\n // Inject editor\r\n if (opt && opt.em) this.editor = opt.em;\r\n\r\n // This will put the listener post CssComposer.postLoad\r\n setTimeout(() => {\r\n this.on('remove', this.onRemove);\r\n this.on('add', this.onAdd);\r\n });\r\n }\r\n\r\n toJSON(opts) {\r\n const result = Collection.prototype.toJSON.call(this, opts);\r\n return result.filter(rule => rule.style && !rule.shallow);\r\n }\r\n\r\n onAdd(model, c, o) {\r\n model.ensureSelectors(model, c, o); // required for undo\r\n }\r\n\r\n onRemove(removed) {\r\n const em = this.editor;\r\n em.stopListening(removed);\r\n em.get('UndoManager').remove(removed);\r\n }\r\n\r\n add(models, opt = {}) {\r\n if (typeof models === 'string') {\r\n models = this.editor.get('Parser').parseCss(models);\r\n }\r\n opt.em = this.editor;\r\n return Collection.prototype.add.apply(this, [models, opt]);\r\n }\r\n}\r\n\r\nCssRules.prototype.model = CssRule;\r\n","/**\r\n * This module manages CSS rules in the canvas.\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * cssComposer: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const css = editor.Css;\r\n * ```\r\n *\r\n * * [addRules](#addrules)\r\n * * [setRule](#setrule)\r\n * * [getRule](#getrule)\r\n * * [getRules](#getrules)\r\n * * [remove](#remove)\r\n * * [clear](#clear)\r\n *\r\n * [CssRule]: css_rule.html\r\n *\r\n * @module CssComposer\r\n */\r\n\r\nimport { isArray, isString, isUndefined } from 'underscore';\r\nimport { isObject } from '../utils/mixins';\r\nimport Module from '../common/module';\r\nimport Selectors from '../selector_manager/model/Selectors';\r\nimport Selector from '../selector_manager/model/Selector';\r\nimport defaults from './config/config';\r\nimport CssRule from './model/CssRule';\r\nimport CssRules from './model/CssRules';\r\nimport CssRulesView from './view/CssRulesView';\r\n\r\nexport default () => {\r\n let em;\r\n var c = {};\r\n var rules, rulesView;\r\n\r\n return {\r\n ...Module,\r\n\r\n Selectors,\r\n\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'CssComposer',\r\n\r\n storageKey: 'styles',\r\n\r\n getConfig() {\r\n return c;\r\n },\r\n\r\n /**\r\n * Initializes module. Automatically called with a new instance of the editor\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(config) {\r\n c = config || {};\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n var elStyle = (c.em && c.em.config.style) || '';\r\n c.rules = elStyle || c.rules;\r\n\r\n em = c.em;\r\n rules = new CssRules([], c);\r\n return this;\r\n },\r\n\r\n /**\r\n * On load callback\r\n * @private\r\n */\r\n onLoad() {\r\n rules.add(c.rules, { silent: 1 });\r\n },\r\n\r\n /**\r\n * Do stuff after load\r\n * @param {Editor} em\r\n * @private\r\n */\r\n postLoad() {\r\n const um = em && em.get('UndoManager');\r\n um && um.add(this.getAll());\r\n },\r\n\r\n store() {\r\n return this.getProjectData();\r\n },\r\n\r\n load(data) {\r\n return this.loadProjectData(data);\r\n },\r\n\r\n /**\r\n * Add new rule to the collection, if not yet exists with the same selectors\r\n * @param {Array} selectors Array of selectors\r\n * @param {String} state Css rule state\r\n * @param {String} width For which device this style is oriented\r\n * @param {Object} props Other props for the rule\r\n * @param {Object} opts Options for the add of new rule\r\n * @return {Model}\r\n * @private\r\n * @example\r\n * var sm = editor.SelectorManager;\r\n * var sel1 = sm.add('myClass1');\r\n * var sel2 = sm.add('myClass2');\r\n * var rule = cssComposer.add([sel1, sel2], 'hover');\r\n * rule.set('style', {\r\n * width: '100px',\r\n * color: '#fff',\r\n * });\r\n * */\r\n add(selectors, state, width, opts = {}, addOpts = {}) {\r\n var s = state || '';\r\n var w = width || '';\r\n var opt = { ...opts };\r\n var rule = this.get(selectors, s, w, opt);\r\n\r\n // do not create rules that were found before\r\n // unless this is a single at-rule, for which multiple declarations\r\n // make sense (e.g. multiple `@font-type`s)\r\n if (rule && rule.config && !rule.config.singleAtRule) {\r\n return rule;\r\n } else {\r\n opt.state = s;\r\n opt.mediaText = w;\r\n opt.selectors = [];\r\n w && (opt.atRuleType = 'media');\r\n rule = new CssRule(opt, c);\r\n rule.get('selectors').add(selectors, addOpts);\r\n rules.add(rule, addOpts);\r\n return rule;\r\n }\r\n },\r\n\r\n /**\r\n * Get the rule\r\n * @param {String|Array} selectors Array of selectors or selector string, eg `.myClass1.myClass2`\r\n * @param {String} state Css rule state, eg. 'hover'\r\n * @param {String} width Media rule value, eg. '(max-width: 992px)'\r\n * @param {Object} ruleProps Other rule props\r\n * @return {Model|null}\r\n * @private\r\n * @example\r\n * const sm = editor.SelectorManager;\r\n * const sel1 = sm.add('myClass1');\r\n * const sel2 = sm.add('myClass2');\r\n * const rule = cssComposer.get([sel1, sel2], 'hover', '(max-width: 992px)');\r\n * // Update the style\r\n * rule.set('style', {\r\n * width: '300px',\r\n * color: '#000',\r\n * });\r\n * */\r\n get(selectors, state, width, ruleProps) {\r\n let slc = selectors;\r\n if (isString(selectors)) {\r\n const sm = em.get('SelectorManager');\r\n const singleSel = selectors.split(',')[0].trim();\r\n const node = em.get('Parser').parserCss.checkNode({ selectors: singleSel })[0];\r\n slc = sm.get(node.selectors);\r\n }\r\n return rules.find(rule => rule.compare(slc, state, width, ruleProps)) || null;\r\n },\r\n\r\n getAll() {\r\n return rules;\r\n },\r\n\r\n /**\r\n * Add a raw collection of rule objects\r\n * This method overrides styles, in case, of already defined rule\r\n * @param {String|Array} data CSS string or an array of rule objects, eg. [{selectors: ['class1'], style: {....}}, ..]\r\n * @param {Object} opts Options\r\n * @param {Object} props Additional properties to add on rules\r\n * @return {Array}\r\n * @private\r\n */\r\n addCollection(data, opts = {}, props = {}) {\r\n const result = [];\r\n\r\n if (isString(data)) {\r\n data = em.get('Parser').parseCss(data);\r\n }\r\n\r\n const d = data instanceof Array ? data : [data];\r\n\r\n for (var i = 0, l = d.length; i < l; i++) {\r\n var rule = d[i] || {};\r\n if (!rule.selectors) continue;\r\n var sm = c.em && c.em.get('SelectorManager');\r\n if (!sm) console.warn('Selector Manager not found');\r\n var sl = rule.selectors;\r\n var sels = sl instanceof Array ? sl : [sl];\r\n var newSels = [];\r\n\r\n for (var j = 0, le = sels.length; j < le; j++) {\r\n var selec = sm.add(sels[j]);\r\n newSels.push(selec);\r\n }\r\n\r\n var modelExists = this.get(newSels, rule.state, rule.mediaText, rule);\r\n var model = this.add(newSels, rule.state, rule.mediaText, rule, opts);\r\n var updateStyle = !modelExists || !opts.avoidUpdateStyle;\r\n const style = rule.style || {};\r\n\r\n isObject(props) && model.set(props, opts);\r\n\r\n if (updateStyle) {\r\n let styleUpdate = opts.extend ? { ...model.get('style'), ...style } : style;\r\n model.set('style', styleUpdate, opts);\r\n }\r\n\r\n result.push(model);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * Add CssRules via CSS string.\r\n * @param {String} css CSS string of rules to add.\r\n * @returns {Array<[CssRule]>} Array of rules\r\n * @example\r\n * const addedRules = css.addRules('.my-cls{ color: red } @media (max-width: 992px) { .my-cls{ color: darkred } }');\r\n * // Check rules\r\n * console.log(addedRules.map(rule => rule.toCSS()));\r\n */\r\n addRules(css) {\r\n return this.addCollection(css);\r\n },\r\n\r\n /**\r\n * Add/update the CssRule.\r\n * @param {String} selectors Selector string, eg. `.myclass`\r\n * @param {Object} style Style properties and values\r\n * @param {Object} [opts={}] Additional properties\r\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\r\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. `(min-width: 500px)`\r\n * @returns {[CssRule]} The new/updated CssRule\r\n * @example\r\n * // Simple class-based rule\r\n * const rule = css.setRule('.class1.class2', { color: 'red' });\r\n * console.log(rule.toCSS()) // output: .class1.class2 { color: red }\r\n * // With state and other mixed selector\r\n * const rule = css.setRule('.class1.class2:hover, div#myid', { color: 'red' });\r\n * // output: .class1.class2:hover, div#myid { color: red }\r\n * // With media\r\n * const rule = css.setRule('.class1:hover', { color: 'red' }, {\r\n * atRuleType: 'media',\r\n * atRuleParams: '(min-width: 500px)',\r\n * });\r\n * // output: @media (min-width: 500px) { .class1:hover { color: red } }\r\n */\r\n setRule(selectors, style, opts = {}) {\r\n const { atRuleType, atRuleParams } = opts;\r\n const node = em.get('Parser').parserCss.checkNode({\r\n selectors,\r\n style,\r\n })[0];\r\n const { state, selectorsAdd } = node;\r\n const sm = em.get('SelectorManager');\r\n const selector = sm.add(node.selectors);\r\n const rule = this.add(selector, state, atRuleParams, {\r\n selectorsAdd,\r\n atRule: atRuleType,\r\n });\r\n rule.setStyle(style, opts);\r\n return rule;\r\n },\r\n\r\n /**\r\n * Get the CssRule.\r\n * @param {String} selectors Selector string, eg. `.myclass:hover`\r\n * @param {Object} [opts={}] Additional properties\r\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\r\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'\r\n * @returns {[CssRule]}\r\n * @example\r\n * const rule = css.getRule('.myclass1:hover');\r\n * const rule2 = css.getRule('.myclass1:hover, div#myid');\r\n * const rule3 = css.getRule('.myclass1', {\r\n * atRuleType: 'media',\r\n * atRuleParams: '(min-width: 500px)',\r\n * });\r\n */\r\n getRule(selectors, opts = {}) {\r\n const sm = em.get('SelectorManager');\r\n const node = em.get('Parser').parserCss.checkNode({ selectors })[0];\r\n const selector = sm.get(node.selectors);\r\n const { state, selectorsAdd } = node;\r\n const { atRuleType, atRuleParams } = opts;\r\n return (\r\n selector &&\r\n this.get(selector, state, atRuleParams, {\r\n selectorsAdd,\r\n atRule: atRuleType,\r\n })\r\n );\r\n },\r\n\r\n /**\r\n * Get all rules or filtered by a matching selector.\r\n * @param {String} [selector=''] Selector, eg. `.myclass`\r\n * @returns {Array<[CssRule]>}\r\n * @example\r\n * // Take all the component specific rules\r\n * const id = someComponent.getId();\r\n * const rules = css.getRules(`#${id}`);\r\n * console.log(rules.map(rule => rule.toCSS()))\r\n * // All rules in the project\r\n * console.log(css.getRules())\r\n */\r\n getRules(selector) {\r\n const rules = this.getAll();\r\n if (!selector) return [...rules.models];\r\n const sels = isString(selector) ? selector.split(',').map(s => s.trim()) : selector;\r\n const result = rules.filter(r => sels.indexOf(r.getSelectors().getFullString()) >= 0);\r\n return result;\r\n },\r\n\r\n /**\r\n * Add/update the CSS rule with id selector\r\n * @param {string} name Id selector name, eg. 'my-id'\r\n * @param {Object} style Style properties and values\r\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\r\n * @return {CssRule} The new/updated rule\r\n * @private\r\n * @example\r\n * const rule = css.setIdRule('myid', { color: 'red' });\r\n * const ruleHover = css.setIdRule('myid', { color: 'blue' }, { state: 'hover' });\r\n * // This will add current CSS:\r\n * // #myid { color: red }\r\n * // #myid:hover { color: blue }\r\n */\r\n setIdRule(name, style = {}, opts = {}) {\r\n const { addOpts = {}, mediaText } = opts;\r\n const state = opts.state || '';\r\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\r\n const sm = em.get('SelectorManager');\r\n const selector = sm.add({ name, type: Selector.TYPE_ID }, addOpts);\r\n const rule = this.add(selector, state, media, {}, addOpts);\r\n rule.setStyle(style, { ...opts, ...addOpts });\r\n return rule;\r\n },\r\n\r\n /**\r\n * Get the CSS rule by id selector\r\n * @param {string} name Id selector name, eg. 'my-id'\r\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\r\n * @return {CssRule}\r\n * @private\r\n * @example\r\n * const rule = css.getIdRule('myid');\r\n * const ruleHover = css.setIdRule('myid', { state: 'hover' });\r\n */\r\n getIdRule(name, opts = {}) {\r\n const { mediaText } = opts;\r\n const state = opts.state || '';\r\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\r\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_ID);\r\n return selector && this.get(selector, state, media);\r\n },\r\n\r\n /**\r\n * Add/update the CSS rule with class selector\r\n * @param {string} name Class selector name, eg. 'my-class'\r\n * @param {Object} style Style properties and values\r\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\r\n * @return {CssRule} The new/updated rule\r\n * @private\r\n * @example\r\n * const rule = css.setClassRule('myclass', { color: 'red' });\r\n * const ruleHover = css.setClassRule('myclass', { color: 'blue' }, { state: 'hover' });\r\n * // This will add current CSS:\r\n * // .myclass { color: red }\r\n * // .myclass:hover { color: blue }\r\n */\r\n setClassRule(name, style = {}, opts = {}) {\r\n const state = opts.state || '';\r\n const media = opts.mediaText || em.getCurrentMedia();\r\n const sm = em.get('SelectorManager');\r\n const selector = sm.add({ name, type: Selector.TYPE_CLASS });\r\n const rule = this.add(selector, state, media);\r\n rule.setStyle(style, opts);\r\n return rule;\r\n },\r\n\r\n /**\r\n * Get the CSS rule by class selector\r\n * @param {string} name Class selector name, eg. 'my-class'\r\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\r\n * @return {CssRule}\r\n * @private\r\n * @example\r\n * const rule = css.getClassRule('myclass');\r\n * const ruleHover = css.getClassRule('myclass', { state: 'hover' });\r\n */\r\n getClassRule(name, opts = {}) {\r\n const state = opts.state || '';\r\n const media = opts.mediaText || em.getCurrentMedia();\r\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_CLASS);\r\n return selector && this.get(selector, state, media);\r\n },\r\n\r\n /**\r\n * Remove rule, by CssRule or matching selector (eg. the selector will match also at-rules like `@media`)\r\n * @param {String|[CssRule]|Array<[CssRule]>} rule CssRule or matching selector.\r\n * @return {Array<[CssRule]>} Removed rules\r\n * @example\r\n * // Remove by CssRule\r\n * const toRemove = css.getRules('.my-cls');\r\n * css.remove(toRemove);\r\n * // Remove by selector\r\n * css.remove('.my-cls-2');\r\n */\r\n remove(rule, opts) {\r\n const toRemove = isString(rule) ? this.getRules(rule) : rule;\r\n const result = this.getAll().remove(toRemove, opts);\r\n return isArray(result) ? result : [result];\r\n },\r\n\r\n /**\r\n * Remove all rules\r\n * @return {this}\r\n */\r\n clear(opts = {}) {\r\n this.getAll().reset(null, opts);\r\n return this;\r\n },\r\n\r\n getComponentRules(cmp, opts = {}) {\r\n let { state, mediaText, current } = opts;\r\n if (current) {\r\n state = em.get('state') || '';\r\n mediaText = em.getCurrentMedia();\r\n }\r\n const id = cmp.getId();\r\n const rules = this.getAll().filter(r => {\r\n if (!isUndefined(state) && r.get('state') !== state) return;\r\n if (!isUndefined(mediaText) && r.get('mediaText') !== mediaText) return;\r\n return r.getSelectorsString() === `#${id}`;\r\n });\r\n return rules;\r\n },\r\n\r\n /**\r\n * Render the block of CSS rules\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n render() {\r\n rulesView && rulesView.remove();\r\n rulesView = new CssRulesView({\r\n collection: rules,\r\n config: c,\r\n });\r\n return rulesView.render().el;\r\n },\r\n\r\n destroy() {\r\n rules.reset();\r\n rules.stopListening();\r\n rulesView && rulesView.remove();\r\n [em, rules, rulesView].forEach(i => (i = null));\r\n c = {};\r\n },\r\n };\r\n};\r\n","import { View } from '../../common';\r\n\r\nexport default class CssRuleView extends View {\r\n tagName() {\r\n return 'style';\r\n }\r\n\r\n initialize(o = {}) {\r\n this.config = o.config || {};\r\n const { model } = this;\r\n this.listenTo(model, 'change', this.render);\r\n this.listenTo(model, 'destroy remove', this.remove);\r\n this.listenTo(model.get('selectors'), 'change', this.render);\r\n }\r\n\r\n render() {\r\n const { model, el } = this;\r\n const important = model.get('important');\r\n el.innerHTML = model.toCSS({ important });\r\n return this;\r\n }\r\n}\r\n","import CssRuleView from './CssRuleView';\r\n\r\nexport default class CssGroupRuleView extends CssRuleView {\r\n _createElement() {\r\n return document.createTextNode('');\r\n }\r\n\r\n render() {\r\n const model = this.model;\r\n const important = model.get('important');\r\n this.el.textContent = model.getDeclaration({ important });\r\n return this;\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport { createEl } from '../../utils/dom';\r\nimport CssRuleView from './CssRuleView';\r\nimport CssGroupRuleView from './CssGroupRuleView';\r\n\r\nconst getBlockId = (pfx, order) => `${pfx}${order ? `-${parseFloat(order)}` : ''}`;\r\n\r\nexport default class CssRulesView extends View {\r\n initialize(o) {\r\n const config = o.config || {};\r\n this.atRules = {};\r\n this.config = config;\r\n this.em = config.em;\r\n this.pfx = config.stylePrefix || '';\r\n this.className = this.pfx + 'rules';\r\n const coll = this.collection;\r\n this.listenTo(coll, 'add', this.addTo);\r\n this.listenTo(coll, 'reset', this.render);\r\n }\r\n\r\n /**\r\n * Add to collection\r\n * @param {Object} model\r\n * @private\r\n * */\r\n addTo(model) {\r\n this.addToCollection(model);\r\n }\r\n\r\n /**\r\n * Add new object to collection\r\n * @param {Object} model\r\n * @param {Object} fragmentEl\r\n * @return {Object}\r\n * @private\r\n * */\r\n addToCollection(model, fragmentEl) {\r\n // If the render is not yet started\r\n if (!this.renderStarted) {\r\n return;\r\n }\r\n\r\n const fragment = fragmentEl || null;\r\n const { config } = this;\r\n const opts = { model, config };\r\n let rendered, view;\r\n\r\n // I have to render keyframes of the same name together\r\n // Unfortunately at the moment I didn't find the way of appending them\r\n // if not staticly, via appendData\r\n if (model.get('atRuleType') === 'keyframes') {\r\n const atRule = model.getAtRule();\r\n let atRuleEl = this.atRules[atRule];\r\n\r\n if (!atRuleEl) {\r\n const styleEl = document.createElement('style');\r\n atRuleEl = document.createTextNode('');\r\n styleEl.appendChild(document.createTextNode(`${atRule}{`));\r\n styleEl.appendChild(atRuleEl);\r\n styleEl.appendChild(document.createTextNode(`}`));\r\n this.atRules[atRule] = atRuleEl;\r\n rendered = styleEl;\r\n }\r\n\r\n view = new CssGroupRuleView(opts);\r\n atRuleEl.appendData(view.render().el.textContent);\r\n } else {\r\n view = new CssRuleView(opts);\r\n rendered = view.render().el;\r\n }\r\n\r\n const clsName = this.className;\r\n const mediaText = model.get('mediaText');\r\n const defaultBlockId = getBlockId(clsName);\r\n let blockId = defaultBlockId;\r\n\r\n // If the rule contains a media query it might have a different container\r\n // for it (eg. rules created with Device Manager)\r\n if (mediaText) {\r\n blockId = getBlockId(clsName, this.getMediaWidth(mediaText));\r\n }\r\n\r\n if (rendered) {\r\n const container = fragment || this.el;\r\n let contRules;\r\n\r\n // Try to find a specific container for the rule (if it\r\n // containes a media query), otherwise get the default one\r\n try {\r\n contRules = container.querySelector(`#${blockId}`);\r\n } catch (e) {}\r\n\r\n if (!contRules) {\r\n contRules = container.querySelector(`#${defaultBlockId}`);\r\n }\r\n\r\n contRules.appendChild(rendered);\r\n }\r\n\r\n return rendered;\r\n }\r\n\r\n getMediaWidth(mediaText) {\r\n return mediaText && mediaText.replace(`(${this.em.getConfig('mediaCondition')}: `, '').replace(')', '');\r\n }\r\n\r\n render() {\r\n this.renderStarted = 1;\r\n this.atRules = {};\r\n const { em, $el, className, collection } = this;\r\n const frag = document.createDocumentFragment();\r\n $el.empty();\r\n\r\n // Create devices related DOM structure, ensure also to have a default container\r\n const prs = em.get('DeviceManager').getAll().pluck('priority');\r\n prs.every(pr => pr) && prs.unshift(0);\r\n prs.forEach(pr => frag.appendChild(createEl('div', { id: getBlockId(className, pr) })));\r\n\r\n collection.each(model => this.addToCollection(model, frag));\r\n $el.append(frag);\r\n $el.attr('class', className);\r\n return this;\r\n }\r\n}\r\n","export default {\r\n // The device `id` to select on start, if not indicated, the first available from `devices` will be used.\r\n default: null,\r\n\r\n // Default devices\r\n devices: [\r\n {\r\n id: 'desktop',\r\n name: 'Desktop',\r\n width: '',\r\n },\r\n {\r\n id: 'tablet',\r\n name: 'Tablet',\r\n width: '770px',\r\n widthMedia: '992px',\r\n },\r\n {\r\n id: 'mobileLandscape',\r\n name: 'Mobile landscape',\r\n width: '568px',\r\n widthMedia: '768px',\r\n },\r\n {\r\n id: 'mobilePortrait',\r\n name: 'Mobile portrait',\r\n width: '320px',\r\n widthMedia: '480px',\r\n },\r\n ],\r\n};\r\n","import { Model } from '../../common';\r\n\r\n/**\r\n * @typedef Device\r\n * @property {String} [name=''] Device type, eg. `Mobile`\r\n * @property {String} [width] Width to set for the editor iframe, eg. '900px'\r\n * @property {String} [height=''] Height to set for the editor iframe, eg. '600px'\r\n * @property {String} [widthMedia=''] The width which will be used in media queries, If empty the width will be used\r\n * @property {Number} [priority=null] Setup the order of media queries\r\n */\r\nexport default class Device extends Model {\r\n defaults() {\r\n return {\r\n name: '',\r\n width: null,\r\n height: '',\r\n widthMedia: null,\r\n priority: null,\r\n };\r\n }\r\n\r\n initialize() {\r\n this.get('widthMedia') === null && this.set('widthMedia', this.get('width'));\r\n this.get('width') === null && this.set('width', this.get('widthMedia'));\r\n !this.get('priority') && this.set('priority', parseFloat(this.get('widthMedia')) || 0);\r\n const toCheck = ['width', 'height', 'widthMedia'];\r\n toCheck.forEach(prop => this.checkUnit(prop));\r\n }\r\n\r\n checkUnit(prop) {\r\n const pr = this.get(prop) || '';\r\n const noUnit = (parseFloat(pr) || 0).toString() === pr.toString();\r\n noUnit && this.set(prop, `${pr}px`);\r\n }\r\n\r\n getName() {\r\n return this.get('name') || this.get('id');\r\n }\r\n\r\n getWidthMedia() {\r\n return this.get('widthMedia') || '';\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Device from './Device';\r\n\r\nexport default class Devices extends Collection {\r\n comparator(left, right) {\r\n const max = Number.MAX_VALUE;\r\n return (right.get('priority') || max) - (left.get('priority') || max);\r\n }\r\n\r\n getSorted() {\r\n return this.sort();\r\n }\r\n}\r\n\r\nDevices.prototype.model = Device;\r\n","import { View } from '../../common';\r\nimport html from '../../utils/html';\r\n\r\nexport default class DevicesView extends View {\r\n template({ ppfx, label }) {\r\n return html`\r\n
${label}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n `;\r\n }\r\n\r\n events() {\r\n return {\r\n change: 'updateDevice',\r\n };\r\n }\r\n\r\n initialize(o) {\r\n this.config = o.config || {};\r\n this.em = this.config.em;\r\n this.ppfx = this.config.pStylePrefix || '';\r\n this.events['click .' + this.ppfx + 'add-trasp'] = this.startAdd;\r\n this.listenTo(this.em, 'change:device', this.updateSelect);\r\n this.delegateEvents();\r\n }\r\n\r\n /**\r\n * Start adding new device\r\n * @return {[type]} [description]\r\n * @private\r\n */\r\n startAdd() {}\r\n\r\n /**\r\n * Update device of the editor\r\n * @private\r\n */\r\n updateDevice() {\r\n var em = this.em;\r\n if (em) {\r\n var devEl = this.devicesEl;\r\n var val = devEl ? devEl.val() : '';\r\n em.set('device', val);\r\n }\r\n }\r\n\r\n /**\r\n * Update select value on device update\r\n * @private\r\n */\r\n updateSelect() {\r\n var em = this.em;\r\n var devEl = this.devicesEl;\r\n if (em && em.getDeviceModel && devEl) {\r\n var device = em.getDeviceModel();\r\n var name = device ? device.get('id') : '';\r\n devEl.val(name);\r\n }\r\n }\r\n\r\n /**\r\n * Return devices options\r\n * @return {string} String of options\r\n * @private\r\n */\r\n getOptions() {\r\n const { collection, em } = this;\r\n let result = '';\r\n\r\n collection.each(device => {\r\n const { name, id } = device.attributes;\r\n const label = (em && em.t && em.t(`deviceManager.devices.${id}`)) || name;\r\n result += ``;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n render() {\r\n const { em, ppfx, $el, el } = this;\r\n const label = em && em.t && em.t('deviceManager.device');\r\n $el.html(this.template({ ppfx, label }));\r\n this.devicesEl = $el.find(`.${ppfx}devices`);\r\n this.devicesEl.append(this.getOptions());\r\n this.devicesEl.val(em.get('device'));\r\n el.className = `${ppfx}devices-c`;\r\n return this;\r\n }\r\n}\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * deviceManager: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const deviceManager = editor.Devices;\r\n * ```\r\n * ## Available Events\r\n * * `device:add` - Added new device. The [Device] is passed as an argument to the callback\r\n * * `device:remove` - Device removed. The [Device] is passed as an argument to the callback\r\n * * `device:select` - New device selected. The newly selected [Device] and the previous one, are passed as arguments to the callback\r\n * * `device:update` - Device updated. The updated [Device] and the object containing changes are passed as arguments to the callback\r\n * * `device` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\r\n *\r\n * ## Methods\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getDevices](#getdevices)\r\n * * [remove](#remove)\r\n * * [select](#select)\r\n * * [getSelected](#getselected)\r\n *\r\n * [Device]: device.html\r\n *\r\n * @module Devices\r\n */\r\nimport { isString } from 'underscore';\r\nimport Module from '../common/module';\r\nimport defaults from './config/config';\r\nimport Device from './model/Device';\r\nimport Devices from './model/Devices';\r\nimport DevicesView from './view/DevicesView';\r\n\r\nexport const evAll = 'device';\r\nexport const evPfx = `${evAll}:`;\r\nexport const evSelect = `${evPfx}select`;\r\nexport const evSelectBefore = `${evSelect}:before`;\r\nexport const evUpdate = `${evPfx}update`;\r\nexport const evAdd = `${evPfx}add`;\r\nexport const evAddBefore = `${evAdd}:before`;\r\nexport const evRemove = `${evPfx}remove`;\r\nexport const evRemoveBefore = `${evRemove}:before`;\r\nconst chnSel = 'change:device';\r\n\r\nexport default () => {\r\n let c = {};\r\n let devices;\r\n let view;\r\n\r\n return {\r\n ...Module,\r\n\r\n name: 'DeviceManager',\r\n\r\n Device,\r\n\r\n Devices,\r\n\r\n events: {\r\n all: evAll,\r\n select: evSelect,\r\n // selectBefore: evSelectBefore,\r\n update: evUpdate,\r\n add: evAdd,\r\n // addBefore: evAddBefore,\r\n remove: evRemove,\r\n removeBefore: evRemoveBefore,\r\n },\r\n\r\n init(config = {}) {\r\n c = { ...defaults, ...config };\r\n const { em } = c;\r\n\r\n devices = new Devices();\r\n c.devices.forEach(dv => this.add(dv));\r\n this.em = em;\r\n this.all = devices;\r\n this.select(c.default || devices.at(0));\r\n this.__initListen();\r\n em.on(chnSel, this._onSelect, this);\r\n\r\n return this;\r\n },\r\n\r\n _onSelect(m, deviceId, opts) {\r\n const { em, events } = this;\r\n const prevId = m.previous('device');\r\n const newDevice = this.get(deviceId);\r\n const ev = events.select;\r\n em.trigger(ev, newDevice, this.get(prevId));\r\n this.__catchAllEvent(ev, newDevice, opts);\r\n },\r\n\r\n /**\r\n * Add new device\r\n * @param {Object} props Device properties\r\n * @returns {[Device]} Added device\r\n * @example\r\n * const device1 = deviceManager.add({\r\n * // Without an explicit ID, the `name` will be taken. In case of missing `name`, a random ID will be created.\r\n * id: 'tablet',\r\n * name: 'Tablet',\r\n * width: '900px', // This width will be applied on the canvas frame and for the CSS media\r\n * });\r\n * const device2 = deviceManager.add({\r\n * id: 'tablet2',\r\n * name: 'Tablet 2',\r\n * width: '800px', // This width will be applied on the canvas frame\r\n * widthMedia: '810px', // This width that will be used for the CSS media\r\n * height: '600px', // Height will be applied on the canvas frame\r\n * });\r\n */\r\n add(props, options = {}) {\r\n let result;\r\n let opts = options;\r\n\r\n // Support old API\r\n if (isString(props)) {\r\n const width = options;\r\n opts = arguments[2] || {};\r\n result = {\r\n ...opts,\r\n id: props,\r\n name: opts.name || props,\r\n width,\r\n };\r\n } else {\r\n result = props;\r\n }\r\n\r\n if (!result.id) {\r\n result.id = result.name || this._createId();\r\n }\r\n\r\n return devices.add(result, opts);\r\n },\r\n\r\n /**\r\n * Return device by ID\r\n * @param {String} id ID of the device\r\n * @returns {[Device]|null}\r\n * @example\r\n * const device = deviceManager.get('Tablet');\r\n * console.log(JSON.stringify(device));\r\n * // {name: 'Tablet', width: '900px'}\r\n */\r\n get(id) {\r\n // Support old API\r\n const byName = this.getAll().filter(d => d.get('name') === id)[0];\r\n return byName || devices.get(id) || null;\r\n },\r\n\r\n /**\r\n * Remove device\r\n * @param {String|[Device]} device Device or device id\r\n * @returns {[Device]} Removed device\r\n * @example\r\n * const removed = deviceManager.remove('device-id');\r\n * // or by passing the Device\r\n * const device = deviceManager.get('device-id');\r\n * deviceManager.remove(device);\r\n */\r\n remove(device, opts = {}) {\r\n return this.__remove(device, opts);\r\n },\r\n\r\n /**\r\n * Return all devices\r\n * @returns {Array<[Device]>}\r\n * @example\r\n * const devices = deviceManager.getDevices();\r\n * console.log(JSON.stringify(devices));\r\n * // [{name: 'Desktop', width: ''}, ...]\r\n */\r\n getDevices() {\r\n return devices.models;\r\n },\r\n\r\n /**\r\n * Change the selected device. This will update the frame in the canvas\r\n * @param {String|[Device]} device Device or device id\r\n * @example\r\n * deviceManager.select('some-id');\r\n * // or by passing the page\r\n * const device = deviceManager.get('some-id');\r\n * deviceManager.select(device);\r\n */\r\n select(device, opts = {}) {\r\n const md = isString(device) ? this.get(device) : device;\r\n md && this.em.set('device', md.get('id'), opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Get the selected device\r\n * @returns {[Device]}\r\n * @example\r\n * const selected = deviceManager.getSelected();\r\n */\r\n getSelected() {\r\n return this.get(this.em.get('device'));\r\n },\r\n\r\n getAll() {\r\n return devices;\r\n },\r\n\r\n render() {\r\n view && view.remove();\r\n view = new DevicesView({\r\n collection: devices,\r\n config: c,\r\n });\r\n return view.render().el;\r\n },\r\n\r\n destroy() {\r\n devices.stopListening();\r\n devices.reset();\r\n view && view.remove();\r\n [devices, view].forEach(i => (i = null));\r\n c = {};\r\n },\r\n };\r\n};\r\n","export default {\r\n stylePrefix: 'comp-',\r\n\r\n // Could be used for default components\r\n components: [],\r\n\r\n // If the component is draggable you can drag the component itself (not only from the toolbar)\r\n draggableComponents: 1,\r\n\r\n /**\r\n * You can setup a custom component definition processor before adding it into the editor.\r\n * It might be useful to transform custom objects (es. some framework specific JSX) to GrapesJS component one.\r\n * This custom function will be executed on ANY new added component to the editor so make smart checks/conditions\r\n * to avoid doing useless executions\r\n * By default, GrapesJS supports already elements generated from React JSX preset\r\n * @example\r\n * processor: (obj) => {\r\n * if (obj.$$typeof) { // eg. this is a React Element\r\n * const gjsComponent = {\r\n * type: obj.type,\r\n * components: obj.props.children,\r\n * ...\r\n * };\r\n * ...\r\n * return gjsComponent;\r\n * }\r\n * }\r\n */\r\n processor: 0,\r\n\r\n // List of HTML void elements\r\n // https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#void-elements\r\n voidElements: [\r\n 'area',\r\n 'base',\r\n 'br',\r\n 'col',\r\n 'embed',\r\n 'hr',\r\n 'img',\r\n 'input',\r\n 'keygen',\r\n 'link',\r\n 'menuitem',\r\n 'meta',\r\n 'param',\r\n 'source',\r\n 'track',\r\n 'wbr',\r\n ],\r\n};\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default class ComponentWrapperView extends ComponentView {\r\n tagName() {\r\n return 'div';\r\n }\r\n}\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type: 'cell',\r\n tagName: 'td',\r\n draggable: ['tr']\r\n }\r\n },\r\n {\r\n isComponent: el => ['td', 'th'].indexOf(toLowerCase(el.tagName)) >= 0\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({});\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst tagName = 'tr';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n tagName,\r\n draggable: ['thead', 'tbody', 'tfoot'],\r\n droppable: ['th', 'td']\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === tagName\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({});\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'table';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n droppable: ['tbody', 'thead', 'tfoot']\r\n },\r\n\r\n initialize(o, opt) {\r\n Component.prototype.initialize.apply(this, arguments);\r\n const components = this.get('components');\r\n !components.length && components.add({ type: 'tbody' });\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({\r\n events: {}\r\n});\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'tbody';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n draggable: ['table'],\r\n droppable: ['tr'],\r\n columns: 1,\r\n rows: 1\r\n },\r\n\r\n initialize(o, opt) {\r\n Component.prototype.initialize.apply(this, arguments);\r\n const components = this.get('components');\r\n let columns = this.get('columns');\r\n let rows = this.get('rows');\r\n\r\n // Init components if empty\r\n if (!components.length) {\r\n const rowsToAdd = [];\r\n\r\n while (rows--) {\r\n const columnsToAdd = [];\r\n let clm = columns;\r\n\r\n while (clm--) {\r\n columnsToAdd.push({\r\n type: 'cell',\r\n classes: ['cell']\r\n });\r\n }\r\n\r\n rowsToAdd.push({\r\n type: 'row',\r\n classes: ['row'],\r\n components: columnsToAdd\r\n });\r\n }\r\n\r\n components.add(rowsToAdd);\r\n }\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentTableBody from './ComponentTableBody';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'thead';\r\n\r\nexport default ComponentTableBody.extend(\r\n {\r\n defaults: {\r\n ...ComponentTableBody.prototype.defaults,\r\n type,\r\n tagName: type\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({});\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({});\r\n","import ComponentTableBody from './ComponentTableBody';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'tfoot';\r\n\r\nexport default ComponentTableBody.extend(\r\n {\r\n defaults: {\r\n ...ComponentTableBody.prototype.defaults,\r\n type,\r\n tagName: type\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({});\r\n","import { result } from 'underscore';\r\nimport Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst svgAttrs =\r\n 'xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" viewBox=\"0 0 24 24\" style=\"fill: rgba(0,0,0,0.15); transform: scale(0.75)\"';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type: 'image',\r\n tagName: 'img',\r\n void: true,\r\n droppable: 0,\r\n editable: 1,\r\n highlightable: 0,\r\n resizable: { ratioDefault: 1 },\r\n traits: ['alt'],\r\n\r\n src: `\r\n \r\n `,\r\n\r\n // Fallback image in case the src can't be loaded\r\n // If you use SVG, xmlns=\"http://www.w3.org/2000/svg\" is required\r\n fallback: `\r\n \r\n `,\r\n\r\n // File to load asynchronously once the model is rendered\r\n file: ''\r\n },\r\n\r\n initialize(o, opt) {\r\n Component.prototype.initialize.apply(this, arguments);\r\n const { src } = this.get('attributes');\r\n if (src) this.set('src', src, { silent: 1 });\r\n },\r\n\r\n initToolbar(...args) {\r\n Component.prototype.initToolbar.apply(this, args);\r\n const em = this.em;\r\n\r\n if (em) {\r\n var cmd = em.get('Commands');\r\n var cmdName = 'image-editor';\r\n\r\n // Add Image Editor button only if the default command exists\r\n if (cmd.has(cmdName)) {\r\n let hasButtonBool = false;\r\n var tb = this.get('toolbar');\r\n\r\n for (let i = 0; i < tb.length; i++) {\r\n if (tb[i].command === 'image-editor') {\r\n hasButtonBool = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!hasButtonBool) {\r\n tb.push({\r\n attributes: { class: 'fa fa-pencil' },\r\n command: cmdName\r\n });\r\n this.set('toolbar', tb);\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Returns object of attributes for HTML\r\n * @return {Object}\r\n * @private\r\n */\r\n getAttrToHTML(...args) {\r\n const attr = Component.prototype.getAttrToHTML.apply(this, args);\r\n const src = this.getSrcResult();\r\n if (src) attr.src = src;\r\n return attr;\r\n },\r\n\r\n getSrcResult(opt = {}) {\r\n const src = this.get(opt.fallback ? 'fallback' : 'src') || '';\r\n let result = src;\r\n\r\n if (src && src.substr(0, 4) === ' toLowerCase(el.tagName) === 'img'\r\n }\r\n);\r\n","import Component from './ComponentImage';\r\nimport OComponent from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type: 'map',\r\n src: '',\r\n void: 0,\r\n mapUrl: 'https://maps.google.com/maps',\r\n tagName: 'iframe',\r\n mapType: 'q',\r\n address: '',\r\n zoom: '1',\r\n attributes: { frameborder: 0 },\r\n toolbar: OComponent.prototype.defaults.toolbar,\r\n traits: [\r\n {\r\n label: 'Address',\r\n name: 'address',\r\n placeholder: 'eg. London, UK',\r\n changeProp: 1\r\n },\r\n {\r\n type: 'select',\r\n label: 'Map type',\r\n name: 'mapType',\r\n changeProp: 1,\r\n options: [\r\n { value: 'q', name: 'Roadmap' },\r\n { value: 'w', name: 'Satellite' }\r\n ]\r\n },\r\n {\r\n label: 'Zoom',\r\n name: 'zoom',\r\n type: 'range',\r\n min: '1',\r\n max: '20',\r\n changeProp: 1\r\n }\r\n ]\r\n },\r\n\r\n initialize(o, opt) {\r\n if (this.get('src')) this.parseFromSrc();\r\n else this.updateSrc();\r\n Component.prototype.initialize.apply(this, arguments);\r\n this.listenTo(\r\n this,\r\n 'change:address change:zoom change:mapType',\r\n this.updateSrc\r\n );\r\n },\r\n\r\n updateSrc() {\r\n this.set('src', this.getMapUrl());\r\n },\r\n\r\n /**\r\n * Returns url of the map\r\n * @return {string}\r\n * @private\r\n */\r\n getMapUrl() {\r\n var md = this;\r\n var addr = md.get('address');\r\n var zoom = md.get('zoom');\r\n var type = md.get('mapType');\r\n var size = '';\r\n addr = addr ? '&q=' + addr : '';\r\n zoom = zoom ? '&z=' + zoom : '';\r\n type = type ? '&t=' + type : '';\r\n var result = md.get('mapUrl') + '?' + addr + zoom + type;\r\n result += '&output=embed';\r\n return result;\r\n },\r\n\r\n /**\r\n * Set attributes by src string\r\n * @private\r\n */\r\n parseFromSrc() {\r\n var uri = this.parseUri(this.get('src'));\r\n var qr = uri.query;\r\n if (qr.q) this.set('address', qr.q);\r\n if (qr.z) this.set('zoom', qr.z);\r\n if (qr.t) this.set('mapType', qr.t);\r\n }\r\n },\r\n {\r\n /**\r\n * Detect if the passed element is a valid component.\r\n * In case the element is valid an object abstracted\r\n * from the element will be returned\r\n * @param {HTMLElement}\r\n * @return {Object}\r\n * @private\r\n */\r\n isComponent(el) {\r\n var result = '';\r\n if (\r\n toLowerCase(el.tagName) == 'iframe' &&\r\n /maps\\.google\\.com/.test(el.src)\r\n ) {\r\n result = { type: 'map', src: el.src };\r\n }\r\n return result;\r\n }\r\n }\r\n);\r\n","import { isString } from 'underscore';\r\nimport ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({\r\n tagName: 'img',\r\n\r\n events: {\r\n dblclick: 'onActive',\r\n click: 'initResize',\r\n error: 'onError',\r\n load: 'onLoad',\r\n dragstart: 'noDrag',\r\n },\r\n\r\n initialize(o) {\r\n ComponentView.prototype.initialize.apply(this, arguments);\r\n this.listenTo(this.model, 'change:src', this.updateSrc);\r\n this.classEmpty = `${this.ppfx}plh-image`;\r\n this.fetchFile();\r\n },\r\n\r\n /**\r\n * Fetch file if exists\r\n */\r\n fetchFile() {\r\n if (this.modelOpt.temporary) return;\r\n const { model, em } = this;\r\n const file = model.get('file');\r\n\r\n if (file && em) {\r\n const fu = em.get('AssetManager').FileUploader();\r\n fu?.uploadFile({ dataTransfer: { files: [file] } }, res => {\r\n const obj = res && res.data && res.data[0];\r\n const src = obj && (isString(obj) ? obj : obj.src);\r\n src && model.set({ src });\r\n });\r\n model.set('file', '');\r\n }\r\n },\r\n\r\n /**\r\n * Update src attribute\r\n * @private\r\n * */\r\n updateSrc() {\r\n const { model, classEmpty, $el } = this;\r\n const src = model.getSrcResult();\r\n const srcExists = src && !model.isDefaultSrc();\r\n model.addAttributes({ src });\r\n $el[srcExists ? 'removeClass' : 'addClass'](classEmpty);\r\n },\r\n\r\n /**\r\n * Open dialog for image changing\r\n * @param {Object} e Event\r\n * @private\r\n * */\r\n onActive(ev) {\r\n ev && ev.stopPropagation();\r\n const { em, model } = this;\r\n const am = em && em.get('AssetManager');\r\n\r\n if (am && model.get('editable')) {\r\n am.open({\r\n select(asset, complete) {\r\n model.set({ src: asset.getSrc() });\r\n complete && am.close();\r\n },\r\n target: model,\r\n types: ['image'],\r\n accept: 'image/*',\r\n });\r\n }\r\n },\r\n\r\n onError() {\r\n const fallback = this.model.getSrcResult({ fallback: 1 });\r\n if (fallback) this.el.src = fallback;\r\n },\r\n\r\n onLoad() {\r\n // Used to update component tools box (eg. toolbar, resizer) once the image is loaded\r\n this.em.trigger('change:canvasOffset');\r\n },\r\n\r\n noDrag(ev) {\r\n ev.preventDefault();\r\n return false;\r\n },\r\n\r\n render() {\r\n this.renderAttributes();\r\n if (this.modelOpt.temporary) return this;\r\n this.updateSrc();\r\n const { $el, model } = this;\r\n const cls = $el.attr('class') || '';\r\n !model.get('src') && $el.attr('class', `${cls} ${this.classEmpty}`.trim());\r\n this.postRender();\r\n\r\n return this;\r\n },\r\n});\r\n","import Backbone from 'backbone';\r\nimport ComponentView from './ComponentImageView';\r\n\r\nexport default ComponentView.extend({\r\n tagName: 'div',\r\n\r\n events: {},\r\n\r\n initialize(o) {\r\n ComponentView.prototype.initialize.apply(this, arguments);\r\n this.classEmpty = this.ppfx + 'plh-map';\r\n },\r\n\r\n /**\r\n * Update the map on the canvas\r\n * @private\r\n */\r\n updateSrc() {\r\n this.getIframe().src = this.model.get('src');\r\n },\r\n\r\n getIframe() {\r\n if (!this.iframe) {\r\n var ifrm = document.createElement('iframe');\r\n ifrm.src = this.model.get('src');\r\n ifrm.frameBorder = 0;\r\n ifrm.style.height = '100%';\r\n ifrm.style.width = '100%';\r\n ifrm.className = this.ppfx + 'no-pointer';\r\n this.iframe = ifrm;\r\n }\r\n return this.iframe;\r\n },\r\n\r\n render(...args) {\r\n ComponentView.prototype.render.apply(this, args);\r\n this.updateClasses();\r\n this.el.appendChild(this.getIframe());\r\n return this;\r\n }\r\n});\r\n","import Component from './Component';\r\n\r\nexport default class ComponentText extends Component {}\r\n\r\nComponentText.prototype.defaults = {\r\n ...Component.getDefaults(),\r\n type: 'text',\r\n droppable: false,\r\n editable: true,\r\n};\r\n","import { forEach } from 'underscore';\r\nimport { toLowerCase } from 'utils/mixins';\r\nimport ComponentText from './ComponentText';\r\n\r\nconst type = 'link';\r\n\r\nexport default class ComponentLink extends ComponentText {}\r\n\r\nComponentLink.prototype.defaults = {\r\n ...ComponentText.getDefaults(),\r\n type,\r\n tagName: 'a',\r\n traits: ['title', 'href', 'target'],\r\n};\r\n\r\nComponentLink.isComponent = (el, opts = {}) => {\r\n let result;\r\n\r\n if (toLowerCase(el.tagName) === 'a') {\r\n const textTags = opts.textTags || [];\r\n result = { type, editable: false };\r\n\r\n // The link is editable only if, at least, one of its\r\n // children is a text node (not empty one)\r\n const children = el.childNodes;\r\n const len = children.length;\r\n if (!len) delete result.editable;\r\n\r\n forEach(children, child => {\r\n const { tagName } = child;\r\n if (\r\n (child.nodeType == 3 && child.textContent.trim() !== '') ||\r\n (tagName && textTags.indexOf(toLowerCase(tagName)) >= 0)\r\n ) {\r\n delete result.editable;\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n};\r\n","import { on, off, getModel } from 'utils/mixins';\r\nimport ComponentView from './ComponentView';\r\nimport { bindAll } from 'underscore';\r\n\r\nconst compProt = ComponentView.prototype;\r\n\r\nexport default ComponentView.extend({\r\n events: {\r\n dblclick: 'onActive',\r\n input: 'onInput',\r\n },\r\n\r\n initialize(o) {\r\n compProt.initialize.apply(this, arguments);\r\n bindAll(this, 'disableEditing', 'onDisable');\r\n const model = this.model;\r\n const em = this.em;\r\n this.listenTo(model, 'focus', this.onActive);\r\n this.listenTo(model, 'change:content', this.updateContentText);\r\n this.listenTo(model, 'sync:content', this.syncContent);\r\n this.rte = em && em.get('RichTextEditor');\r\n },\r\n\r\n updateContentText(m, v, opts = {}) {\r\n !opts.fromDisable && this.disableEditing();\r\n },\r\n\r\n canActivate() {\r\n const { model, rteEnabled, em } = this;\r\n const modelInEdit = em?.getEditing();\r\n const sameInEdit = modelInEdit === model;\r\n let result = true;\r\n let isInnerText = false;\r\n let delegate;\r\n\r\n if (rteEnabled || !model.get('editable') || sameInEdit || (isInnerText = model.isChildOf('text'))) {\r\n result = false;\r\n // If the current is inner text, select the closest text\r\n if (isInnerText && !model.get('textable')) {\r\n let parent = model.parent();\r\n\r\n while (parent && !parent.isInstanceOf('text')) {\r\n parent = parent.parent();\r\n }\r\n\r\n if (parent && parent.get('editable')) {\r\n delegate = parent;\r\n } else {\r\n result = true;\r\n }\r\n }\r\n }\r\n\r\n return { result, delegate };\r\n },\r\n\r\n /**\r\n * Enable element content editing\r\n * @private\r\n * */\r\n async onActive(ev) {\r\n const { rte, em } = this;\r\n const { result, delegate } = this.canActivate();\r\n\r\n // We place this before stopPropagation in case of nested\r\n // text components will not block the editing (#1394)\r\n if (!result) {\r\n if (delegate) {\r\n ev?.stopPropagation?.();\r\n em.setSelected(delegate);\r\n delegate.trigger('active', ev);\r\n }\r\n return;\r\n }\r\n\r\n ev?.stopPropagation?.();\r\n this.lastContent = this.getContent();\r\n\r\n if (rte) {\r\n try {\r\n this.activeRte = await rte.enable(this, this.activeRte, { event: ev });\r\n } catch (err) {\r\n em.logError(err);\r\n }\r\n }\r\n\r\n this.toggleEvents(1);\r\n },\r\n\r\n onDisable() {\r\n this.disableEditing();\r\n },\r\n\r\n /**\r\n * Disable element content editing\r\n * @private\r\n * */\r\n async disableEditing(opts = {}) {\r\n const { model, rte, activeRte, em } = this;\r\n // There are rare cases when disableEditing is called when the view is already removed\r\n // so, we have to check for the model, this will avoid breaking stuff.\r\n const editable = model && model.get('editable');\r\n\r\n if (rte) {\r\n try {\r\n await rte.disable(this, activeRte);\r\n } catch (err) {\r\n em.logError(err);\r\n }\r\n\r\n if (editable && this.getContent() !== this.lastContent) {\r\n this.syncContent(opts);\r\n this.lastContent = '';\r\n }\r\n }\r\n\r\n this.toggleEvents();\r\n },\r\n\r\n /**\r\n * get content from RTE\r\n * @return string\r\n */\r\n getContent() {\r\n const { activeRte } = this;\r\n const canGetRteContent = activeRte && typeof activeRte.getContent === 'function';\r\n\r\n return canGetRteContent ? activeRte.getContent() : this.getChildrenContainer().innerHTML;\r\n },\r\n\r\n /**\r\n * Merge content from the DOM to the model\r\n */\r\n syncContent(opts = {}) {\r\n const { model, rte, rteEnabled } = this;\r\n if (!rteEnabled && !opts.force) return;\r\n const content = this.getContent();\r\n const comps = model.components();\r\n const contentOpt = { fromDisable: 1, ...opts };\r\n model.set('content', '', contentOpt);\r\n\r\n // If there is a custom RTE the content is just baked staticly\r\n // inside 'content'\r\n if (rte.customRte) {\r\n comps.length && comps.reset(null, opts);\r\n model.set('content', content, contentOpt);\r\n } else {\r\n comps.resetFromString(content, opts);\r\n }\r\n },\r\n\r\n insertComponent(content, opts = {}) {\r\n const { model, el } = this;\r\n const doc = el.ownerDocument;\r\n const selection = doc.getSelection();\r\n\r\n if (selection?.rangeCount) {\r\n const range = selection.getRangeAt(0);\r\n const textNode = range.startContainer;\r\n const offset = range.startOffset;\r\n const textModel = getModel(textNode);\r\n const newCmps = [];\r\n\r\n if (textModel && textModel.is?.('textnode')) {\r\n const cmps = textModel.collection;\r\n cmps.forEach(cmp => {\r\n if (cmp === textModel) {\r\n const type = 'textnode';\r\n const cnt = cmp.get('content');\r\n newCmps.push({ type, content: cnt.slice(0, offset) });\r\n newCmps.push(content);\r\n newCmps.push({ type, content: cnt.slice(offset) });\r\n } else {\r\n newCmps.push(cmp);\r\n }\r\n });\r\n\r\n const result = newCmps.filter(Boolean);\r\n const index = result.indexOf(content);\r\n cmps.reset(result, opts);\r\n\r\n return cmps.at(index);\r\n }\r\n }\r\n\r\n return model.append(content, opts);\r\n },\r\n\r\n /**\r\n * Callback on input event\r\n * @param {Event} e\r\n */\r\n onInput() {\r\n const { em } = this;\r\n const evPfx = 'component';\r\n const ev = [`${evPfx}:update`, `${evPfx}:input`].join(' ');\r\n\r\n // Update toolbars\r\n em && em.trigger(ev, this.model);\r\n },\r\n\r\n /**\r\n * Isolate disable propagation method\r\n * @param {Event}\r\n * @private\r\n * */\r\n disablePropagation(e) {\r\n e.stopPropagation();\r\n },\r\n\r\n /**\r\n * Enable/Disable events\r\n * @param {Boolean} enable\r\n */\r\n toggleEvents(enable) {\r\n const { em, model, $el } = this;\r\n const mixins = { on, off };\r\n const method = enable ? 'on' : 'off';\r\n em.setEditing(enable ? this : 0);\r\n this.rteEnabled = !!enable;\r\n\r\n // The ownerDocument is from the frame\r\n var elDocs = [this.el.ownerDocument, document];\r\n mixins.off(elDocs, 'mousedown', this.onDisable);\r\n mixins[method](elDocs, 'mousedown', this.onDisable);\r\n em[method]('toolbar:run:before', this.onDisable);\r\n if (model) {\r\n model[method]('removed', this.onDisable);\r\n model.trigger(`rte:${enable ? 'enable' : 'disable'}`);\r\n }\r\n\r\n // Avoid closing edit mode on component click\r\n $el && $el.off('mousedown', this.disablePropagation);\r\n $el && $el[method]('mousedown', this.disablePropagation);\r\n\r\n // Fixes #2210 but use this also as a replacement\r\n // of this fix: bd7b804f3b46eb45b4398304b2345ce870f232d2\r\n if (this.config.draggableComponents) {\r\n let { el } = this;\r\n\r\n while (el) {\r\n el.draggable = enable ? !1 : !0;\r\n // Note: el.parentNode is sometimes null here\r\n el = el.parentNode;\r\n el && el.tagName == 'BODY' && (el = 0);\r\n }\r\n }\r\n },\r\n});\r\n","import ComponentView from './ComponentTextView';\r\n\r\nexport default ComponentView.extend({\r\n render(...args) {\r\n ComponentView.prototype.render.apply(this, args);\r\n\r\n // I need capturing instead of bubbling as bubbled clicks from other\r\n // children will execute the link event\r\n this.el.addEventListener('click', this.prevDef, true);\r\n\r\n return this;\r\n }\r\n});\r\n","import Component from './ComponentText';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'label';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n traits: ['id', 'title', 'for']\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentLinkView from './ComponentLinkView';\r\n\r\nexport default ComponentLinkView.extend({\r\n tagName: 'span' // Avoid Firefox bug with label editing #2332\r\n});\r\n","import Component from './ComponentImage';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'video';\r\nconst yt = 'yt';\r\nconst vi = 'vi';\r\nconst ytnc = 'ytnc';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n videoId: '',\r\n void: 0,\r\n provider: 'so', // on change of provider, traits are switched\r\n ytUrl: 'https://www.youtube.com/embed/',\r\n ytncUrl: 'https://www.youtube-nocookie.com/embed/',\r\n viUrl: 'https://player.vimeo.com/video/',\r\n loop: 0,\r\n poster: '',\r\n muted: 0,\r\n autoplay: 0,\r\n controls: 1,\r\n color: '',\r\n list: '',\r\n rel: 1, // YT related videos\r\n modestbranding: 0, // YT modest branding\r\n sources: [],\r\n attributes: { allowfullscreen: 'allowfullscreen' }\r\n },\r\n\r\n initialize(o, opt) {\r\n this.em = opt.em;\r\n if (this.get('src')) this.parseFromSrc();\r\n this.updateTraits();\r\n this.listenTo(this, 'change:provider', this.updateTraits);\r\n this.listenTo(this, 'change:videoId change:provider', this.updateSrc);\r\n Component.prototype.initialize.apply(this, arguments);\r\n },\r\n\r\n /**\r\n * Update traits by provider\r\n * @private\r\n */\r\n updateTraits() {\r\n const prov = this.get('provider');\r\n let tagName = 'iframe';\r\n let traits;\r\n\r\n switch (prov) {\r\n case yt:\r\n case ytnc:\r\n traits = this.getYoutubeTraits();\r\n break;\r\n case vi:\r\n traits = this.getVimeoTraits();\r\n break;\r\n default:\r\n tagName = 'video';\r\n traits = this.getSourceTraits();\r\n }\r\n\r\n this.set({ tagName }, { silent: 1 }); // avoid break in view\r\n this.set({ traits });\r\n this.em.trigger('component:toggled');\r\n },\r\n\r\n /**\r\n * Set attributes by src string\r\n */\r\n parseFromSrc() {\r\n var prov = this.get('provider');\r\n var uri = this.parseUri(this.get('src'));\r\n var qr = uri.query;\r\n switch (prov) {\r\n case yt:\r\n case ytnc:\r\n case vi:\r\n var videoId = uri.pathname.split('/').pop();\r\n this.set('videoId', videoId);\r\n qr.list && this.set('list', qr.list);\r\n if (qr.autoplay) this.set('autoplay', 1);\r\n if (qr.loop) this.set('loop', 1);\r\n if (parseInt(qr.controls) === 0) this.set('controls', 0);\r\n if (qr.color) this.set('color', qr.color);\r\n if (qr.rel === '0') this.set('rel', 0);\r\n if (qr.modestbranding === '1') this.set('modestbranding', 1);\r\n break;\r\n default:\r\n }\r\n },\r\n\r\n /**\r\n * Update src on change of video ID\r\n * @private\r\n */\r\n updateSrc() {\r\n const prov = this.get('provider');\r\n let src = '';\r\n\r\n switch (prov) {\r\n case yt:\r\n src = this.getYoutubeSrc();\r\n break;\r\n case ytnc:\r\n src = this.getYoutubeNoCookieSrc();\r\n break;\r\n case vi:\r\n src = this.getVimeoSrc();\r\n break;\r\n }\r\n\r\n this.set({ src });\r\n },\r\n\r\n /**\r\n * Returns object of attributes for HTML\r\n * @return {Object}\r\n * @private\r\n */\r\n getAttrToHTML(...args) {\r\n var attr = Component.prototype.getAttrToHTML.apply(this, args);\r\n var prov = this.get('provider');\r\n switch (prov) {\r\n case yt:\r\n case ytnc:\r\n case vi:\r\n break;\r\n default:\r\n if (this.get('loop')) attr.loop = 'loop';\r\n if (this.get('autoplay')) attr.autoplay = 'autoplay';\r\n if (this.get('controls')) attr.controls = 'controls';\r\n }\r\n return attr;\r\n },\r\n\r\n // Listen provider change and switch traits, in TraitView listen traits change\r\n\r\n /**\r\n * Return the provider trait\r\n * @return {Object}\r\n * @private\r\n */\r\n getProviderTrait() {\r\n return {\r\n type: 'select',\r\n label: 'Provider',\r\n name: 'provider',\r\n changeProp: 1,\r\n options: [\r\n { value: 'so', name: 'HTML5 Source' },\r\n { value: yt, name: 'Youtube' },\r\n { value: ytnc, name: 'Youtube (no cookie)' },\r\n { value: vi, name: 'Vimeo' }\r\n ]\r\n };\r\n },\r\n\r\n /**\r\n * Return traits for the source provider\r\n * @return {Array}\r\n * @private\r\n */\r\n getSourceTraits() {\r\n return [\r\n this.getProviderTrait(),\r\n {\r\n label: 'Source',\r\n name: 'src',\r\n placeholder: 'eg. ./media/video.mp4',\r\n changeProp: 1\r\n },\r\n {\r\n label: 'Poster',\r\n name: 'poster',\r\n placeholder: 'eg. ./media/image.jpg'\r\n // changeProp: 1\r\n },\r\n this.getAutoplayTrait(),\r\n this.getLoopTrait(),\r\n this.getControlsTrait()\r\n ];\r\n },\r\n /**\r\n * Return traits for the source provider\r\n * @return {Array}\r\n * @private\r\n */\r\n getYoutubeTraits() {\r\n return [\r\n this.getProviderTrait(),\r\n {\r\n label: 'Video ID',\r\n name: 'videoId',\r\n placeholder: 'eg. jNQXAC9IVRw',\r\n changeProp: 1\r\n },\r\n this.getAutoplayTrait(),\r\n this.getLoopTrait(),\r\n this.getControlsTrait(),\r\n {\r\n type: 'checkbox',\r\n label: 'Related',\r\n name: 'rel',\r\n changeProp: 1\r\n },\r\n {\r\n type: 'checkbox',\r\n label: 'Modest',\r\n name: 'modestbranding',\r\n changeProp: 1\r\n }\r\n ];\r\n },\r\n\r\n /**\r\n * Return traits for the source provider\r\n * @return {Array}\r\n * @private\r\n */\r\n getVimeoTraits() {\r\n return [\r\n this.getProviderTrait(),\r\n {\r\n label: 'Video ID',\r\n name: 'videoId',\r\n placeholder: 'eg. 123456789',\r\n changeProp: 1\r\n },\r\n {\r\n label: 'Color',\r\n name: 'color',\r\n placeholder: 'eg. FF0000',\r\n changeProp: 1\r\n },\r\n this.getAutoplayTrait(),\r\n this.getLoopTrait()\r\n ];\r\n },\r\n\r\n /**\r\n * Return object trait\r\n * @return {Object}\r\n * @private\r\n */\r\n getAutoplayTrait() {\r\n return {\r\n type: 'checkbox',\r\n label: 'Autoplay',\r\n name: 'autoplay',\r\n changeProp: 1\r\n };\r\n },\r\n\r\n /**\r\n * Return object trait\r\n * @return {Object}\r\n * @private\r\n */\r\n getLoopTrait() {\r\n return {\r\n type: 'checkbox',\r\n label: 'Loop',\r\n name: 'loop',\r\n changeProp: 1\r\n };\r\n },\r\n\r\n /**\r\n * Return object trait\r\n * @return {Object}\r\n * @private\r\n */\r\n getControlsTrait() {\r\n return {\r\n type: 'checkbox',\r\n label: 'Controls',\r\n name: 'controls',\r\n changeProp: 1\r\n };\r\n },\r\n\r\n /**\r\n * Returns url to youtube video\r\n * @return {string}\r\n * @private\r\n */\r\n getYoutubeSrc() {\r\n const id = this.get('videoId');\r\n let url = this.get('ytUrl');\r\n const list = this.get('list');\r\n url += id + (id.indexOf('?') < 0 ? '?' : '');\r\n url += list ? `&list=${list}` : '';\r\n url += this.get('autoplay') ? '&autoplay=1' : '';\r\n url += !this.get('controls') ? '&controls=0&showinfo=0' : '';\r\n // Loop works only with playlist enabled\r\n // https://stackoverflow.com/questions/25779966/youtube-iframe-loop-doesnt-work\r\n url += this.get('loop') ? `&loop=1&playlist=${id}` : '';\r\n url += this.get('rel') ? '' : '&rel=0';\r\n url += this.get('modestbranding') ? '&modestbranding=1' : '';\r\n return url;\r\n },\r\n\r\n /**\r\n * Returns url to youtube no cookie video\r\n * @return {string}\r\n * @private\r\n */\r\n getYoutubeNoCookieSrc() {\r\n let url = this.getYoutubeSrc();\r\n url = url.replace(this.get('ytUrl'), this.get('ytncUrl'));\r\n return url;\r\n },\r\n\r\n /**\r\n * Returns url to vimeo video\r\n * @return {string}\r\n * @private\r\n */\r\n getVimeoSrc() {\r\n var url = this.get('viUrl');\r\n url += this.get('videoId') + '?';\r\n url += this.get('autoplay') ? '&autoplay=1' : '';\r\n url += this.get('loop') ? '&loop=1' : '';\r\n url += !this.get('controls') ? '&title=0&portrait=0&badge=0' : '';\r\n url += this.get('color') ? '&color=' + this.get('color') : '';\r\n return url;\r\n }\r\n },\r\n {\r\n /**\r\n * Detect if the passed element is a valid component.\r\n * In case the element is valid an object abstracted\r\n * from the element will be returned\r\n * @param {HTMLElement}\r\n * @return {Object}\r\n * @private\r\n */\r\n isComponent(el) {\r\n let result = '';\r\n const { tagName, src } = el;\r\n const isYtProv = /youtube\\.com\\/embed/.test(src);\r\n const isYtncProv = /youtube-nocookie\\.com\\/embed/.test(src);\r\n const isViProv = /player\\.vimeo\\.com\\/video/.test(src);\r\n const isExtProv = isYtProv || isYtncProv || isViProv;\r\n if (\r\n toLowerCase(tagName) == type ||\r\n (toLowerCase(tagName) == 'iframe' && isExtProv)\r\n ) {\r\n result = { type: 'video' };\r\n if (src) result.src = src;\r\n if (isExtProv) {\r\n if (isYtProv) result.provider = yt;\r\n else if (isYtncProv) result.provider = ytnc;\r\n else if (isViProv) result.provider = vi;\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n);\r\n","import ComponentView from './ComponentImageView';\r\nimport OComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({\r\n tagName: 'div',\r\n\r\n events: {},\r\n\r\n initialize(o) {\r\n OComponentView.prototype.initialize.apply(this, arguments);\r\n const { model } = this;\r\n const props = [\r\n 'loop',\r\n 'autoplay',\r\n 'controls',\r\n 'color',\r\n 'rel',\r\n 'modestbranding',\r\n 'poster'\r\n ];\r\n const events = props.map(p => `change:${p}`).join(' ');\r\n this.listenTo(model, 'change:provider', this.updateProvider);\r\n this.listenTo(model, 'change:src', this.updateSrc);\r\n this.listenTo(model, events, this.updateVideo);\r\n },\r\n\r\n /**\r\n * Rerender on update of the provider\r\n * @private\r\n */\r\n updateProvider() {\r\n var prov = this.model.get('provider');\r\n this.el.innerHTML = '';\r\n this.el.appendChild(this.renderByProvider(prov));\r\n },\r\n\r\n /**\r\n * Update the source of the video\r\n * @private\r\n */\r\n updateSrc() {\r\n const { model, videoEl } = this;\r\n if (!videoEl) return;\r\n const prov = model.get('provider');\r\n let src = model.get('src');\r\n\r\n switch (prov) {\r\n case 'yt':\r\n src = model.getYoutubeSrc();\r\n break;\r\n case 'ytnc':\r\n src = model.getYoutubeNoCookieSrc();\r\n break;\r\n case 'vi':\r\n src = model.getVimeoSrc();\r\n break;\r\n }\r\n\r\n videoEl.src = src;\r\n },\r\n\r\n /**\r\n * Update video parameters\r\n * @private\r\n */\r\n updateVideo() {\r\n var prov = this.model.get('provider');\r\n var videoEl = this.videoEl;\r\n var md = this.model;\r\n switch (prov) {\r\n case 'yt':\r\n case 'ytnc':\r\n case 'vi':\r\n this.model.trigger('change:videoId');\r\n break;\r\n default:\r\n videoEl.loop = md.get('loop');\r\n videoEl.autoplay = md.get('autoplay');\r\n videoEl.controls = md.get('controls');\r\n videoEl.poster = md.get('poster');\r\n }\r\n },\r\n\r\n renderByProvider(prov) {\r\n var videoEl;\r\n switch (prov) {\r\n case 'yt':\r\n videoEl = this.renderYoutube();\r\n break;\r\n case 'ytnc':\r\n videoEl = this.renderYoutubeNoCookie();\r\n break;\r\n case 'vi':\r\n videoEl = this.renderVimeo();\r\n break;\r\n default:\r\n videoEl = this.renderSource();\r\n }\r\n this.videoEl = videoEl;\r\n return videoEl;\r\n },\r\n\r\n renderSource() {\r\n var el = document.createElement('video');\r\n el.src = this.model.get('src');\r\n this.initVideoEl(el);\r\n return el;\r\n },\r\n\r\n renderYoutube() {\r\n var el = document.createElement('iframe');\r\n el.src = this.model.getYoutubeSrc();\r\n el.frameBorder = 0;\r\n el.setAttribute('allowfullscreen', true);\r\n this.initVideoEl(el);\r\n return el;\r\n },\r\n\r\n renderYoutubeNoCookie() {\r\n var el = document.createElement('iframe');\r\n el.src = this.model.getYoutubeNoCookieSrc();\r\n el.frameBorder = 0;\r\n el.setAttribute('allowfullscreen', true);\r\n this.initVideoEl(el);\r\n return el;\r\n },\r\n\r\n renderVimeo() {\r\n var el = document.createElement('iframe');\r\n el.src = this.model.getVimeoSrc();\r\n el.frameBorder = 0;\r\n el.setAttribute('allowfullscreen', true);\r\n this.initVideoEl(el);\r\n return el;\r\n },\r\n\r\n initVideoEl(el) {\r\n el.className = this.ppfx + 'no-pointer';\r\n el.style.height = '100%';\r\n el.style.width = '100%';\r\n },\r\n\r\n render(...args) {\r\n ComponentView.prototype.render.apply(this, args);\r\n this.updateClasses();\r\n var prov = this.model.get('provider');\r\n this.el.appendChild(this.renderByProvider(prov));\r\n this.updateVideo();\r\n return this;\r\n }\r\n});\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'script';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n droppable: false,\r\n draggable: false,\r\n layerable: false\r\n }\r\n },\r\n {\r\n isComponent(el) {\r\n if (toLowerCase(el.tagName) == type) {\r\n const result = { type };\r\n\r\n if (el.src) {\r\n result.src = el.src;\r\n result.onload = el.onload;\r\n }\r\n\r\n return result;\r\n }\r\n }\r\n }\r\n);\r\n","import ComponentView from './ComponentImageView';\r\n\r\nexport default ComponentView.extend({\r\n tagName: 'script',\r\n\r\n events: {},\r\n\r\n render() {\r\n const { model, em } = this;\r\n const src = model.get('src');\r\n const scrCnt = em && em.get('scriptCount');\r\n const scriptCount = scrCnt ? scrCnt : 0;\r\n let content = '';\r\n\r\n // If it's an external script\r\n if (src) {\r\n const onload = model.get('onload');\r\n const svar = `script${scriptCount}`;\r\n const svarNext = `script${scriptCount + 1}`;\r\n const svarFn = `${svar}Start`;\r\n const svarNextFn = `${svarNext}Start`;\r\n // Load multiple external scripts in the correct order\r\n content = `\r\n var ${svar} = document.createElement('script');\r\n ${svar}.onload = function() {\r\n ${onload ? `${onload}();\\n` : ''}\r\n typeof ${svarNextFn} == 'function' && ${svarNextFn}();\r\n };\r\n ${svar}.src = '${src}';\r\n function ${svarFn}() { document.body.appendChild(${svar}); };\r\n ${!scriptCount ? `${svarFn}();` : ''}\r\n `;\r\n em && em.set('scriptCount', scriptCount + 1);\r\n } else {\r\n content = model.__innerHTML();\r\n }\r\n\r\n this.el.innerHTML = content;\r\n this.postRender();\r\n return this;\r\n }\r\n});\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'svg';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n highlightable: 0,\r\n resizable: { ratioDefault: 1 }\r\n },\r\n\r\n getName() {\r\n let name = this.get('tagName');\r\n let customName = this.get('custom-name');\r\n name = name.charAt(0).toUpperCase() + name.slice(1);\r\n return customName || name;\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import Component from './ComponentSvg';\r\n\r\n/**\r\n * Component for inner SVG elements\r\n */\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n selectable: false,\r\n hoverable: false,\r\n layerable: false\r\n }\r\n },\r\n {\r\n isComponent: (el, opts = {}) => !!opts.inSvg\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({\r\n _createElement: function(tagName) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n});\r\n","import Component from './Component';\r\nimport { escape } from 'utils/mixins';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults,\r\n tagName: '',\r\n droppable: false,\r\n layerable: false,\r\n selectable: false,\r\n editable: true\r\n },\r\n\r\n toHTML() {\r\n const parent = this.parent();\r\n const cnt = this.get('content');\r\n return parent && parent.is('script') ? cnt : escape(cnt);\r\n }\r\n },\r\n {\r\n isComponent(el) {\r\n var result = '';\r\n if (el.nodeType === 3) {\r\n result = {\r\n type: 'textnode',\r\n content: el.textContent\r\n };\r\n }\r\n return result;\r\n }\r\n }\r\n);\r\n","import Component from './ComponentTextNode';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults: {\r\n ...Component.prototype.defaults\r\n },\r\n\r\n toHTML() {\r\n return ``;\r\n }\r\n },\r\n {\r\n isComponent(el) {\r\n if (el.nodeType == 8) {\r\n return {\r\n tagName: 'NULL',\r\n type: 'comment',\r\n content: el.textContent\r\n };\r\n }\r\n }\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\n\r\nexport default ComponentView.extend({\r\n initialize() {\r\n ComponentView.prototype.initialize.apply(this, arguments);\r\n },\r\n\r\n // Clear methods used on Nodes with attributes\r\n _setAttributes() {},\r\n renderAttributes() {},\r\n updateStatus() {},\r\n updateClasses() {},\r\n setAttribute() {},\r\n updateAttributes() {},\r\n initClasses() {},\r\n initComponents() {},\r\n delegateEvents() {},\r\n\r\n _createElement() {\r\n return document.createTextNode('');\r\n },\r\n\r\n render() {\r\n const { model, el } = this;\r\n if (model.opt.temporary) return this;\r\n el.textContent = model.get('content');\r\n return this;\r\n }\r\n});\r\n","import ComponentView from './ComponentTextNodeView';\r\n\r\nexport default ComponentView.extend({\r\n _createElement() {\r\n return document.createComment(this.model.get('content'));\r\n }\r\n});\r\n","import Component from './Component';\r\n\r\nexport default class ComponentWrapper extends Component {\r\n defaults() {\r\n return {\r\n ...Component.getDefaults(),\r\n tagName: 'body',\r\n removable: false,\r\n copyable: false,\r\n draggable: false,\r\n components: [],\r\n traits: [],\r\n stylable: [\r\n 'background',\r\n 'background-color',\r\n 'background-image',\r\n 'background-repeat',\r\n 'background-attachment',\r\n 'background-position',\r\n 'background-size',\r\n ],\r\n };\r\n }\r\n\r\n __postAdd() {\r\n const um = this.em && this.em.get('UndoManager');\r\n um && !this.__hasUm && um.add(this);\r\n return Component.prototype.__postAdd.call(this, arguments);\r\n }\r\n\r\n __postRemove() {\r\n const um = this.em && this.em.get('UndoManager');\r\n um && um.remove(this);\r\n return Component.prototype.__postRemove.call(this, arguments);\r\n }\r\n}\r\n\r\nComponentWrapper.isComponent = () => false;\r\n","import Component from './Component';\r\nimport { toLowerCase } from 'utils/mixins';\r\n\r\nconst type = 'iframe';\r\n\r\nexport default Component.extend(\r\n {\r\n defaults() {\r\n return {\r\n ...Component.prototype.defaults,\r\n type,\r\n tagName: type,\r\n droppable: false,\r\n resizable: true,\r\n traits: ['id', 'title', 'src'],\r\n attributes: { frameborder: '0' }\r\n };\r\n }\r\n },\r\n {\r\n isComponent: el => toLowerCase(el.tagName) === type\r\n }\r\n);\r\n","import ComponentView from './ComponentView';\r\nimport { createEl, find, attrUp } from 'utils/dom';\r\n\r\nexport default ComponentView.extend({\r\n tagName: 'div',\r\n\r\n initialize(...args) {\r\n ComponentView.prototype.initialize.apply(this, args);\r\n this.listenTo(this.model, 'change:attributes:src', this.updateSrc);\r\n },\r\n\r\n updateSrc() {\r\n const frame = find(this.el, 'iframe')[0];\r\n frame && attrUp(frame, { src: this.__getSrc() });\r\n },\r\n\r\n render(...args) {\r\n ComponentView.prototype.render.apply(this, args);\r\n const frame = createEl('iframe', {\r\n class: `${this.ppfx}no-pointer`,\r\n style: 'width: 100%; height: 100%; border: none',\r\n src: this.__getSrc()\r\n });\r\n this.el.appendChild(frame);\r\n return this;\r\n },\r\n\r\n __getSrc() {\r\n return this.model.getAttributes().src || '';\r\n }\r\n});\r\n","/**\r\n * With this module is possible to manage components inside the canvas. You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/dom_components/config/config.js)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * domComponents: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\r\n *\r\n * ```js\r\n * // Listen to events\r\n * editor.on('component:create', () => { ... });\r\n *\r\n * // Use the API\r\n * const cmp = editor.Components;\r\n * cmp.addType(...);\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `component:create` - Component is created (only the model, is not yet mounted in the canvas), called after the init() method\r\n * * `component:mount` - Component is mounted to an element and rendered in canvas\r\n * * `component:add` - Triggered when a new component is added to the editor, the model is passed as an argument to the callback\r\n * * `component:remove` - Triggered when a component is removed, the model is passed as an argument to the callback\r\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\r\n * * `component:clone` - Triggered when a component is cloned, the new model is passed as an argument to the callback\r\n * * `component:update` - Triggered when a component is updated (moved, styled, etc.), the model is passed as an argument to the callback\r\n * * `component:update:{propertyName}` - Listen any property change, the model is passed as an argument to the callback\r\n * * `component:styleUpdate` - Triggered when the style of the component is updated, the model is passed as an argument to the callback\r\n * * `component:styleUpdate:{propertyName}` - Listen for a specific style property change, the model is passed as an argument to the callback\r\n * * `component:selected` - New component selected, the selected model is passed as an argument to the callback\r\n * * `component:deselected` - Component deselected, the deselected model is passed as an argument to the callback\r\n * * `component:toggled` - Component selection changed, toggled model is passed as an argument to the callback\r\n * * `component:type:add` - New component type added, the new type is passed as an argument to the callback\r\n * * `component:type:update` - Component type updated, the updated type is passed as an argument to the callback\r\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)\r\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\r\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\r\n *\r\n * ## Methods\r\n * * [getWrapper](#getwrapper)\r\n * * [getComponents](#getcomponents)\r\n * * [addComponent](#addcomponent)\r\n * * [clear](#clear)\r\n * * [load](#load)\r\n * * [store](#store)\r\n * * [addType](#addtype)\r\n * * [getType](#gettype)\r\n * * [getTypes](#gettypes)\r\n * * [render](#render)\r\n *\r\n * @module Components\r\n */\r\nimport { isEmpty, isObject, isArray, isFunction, isString, result, debounce } from 'underscore';\r\nimport defaults from './config/config';\r\nimport Component, { keyUpdate, keyUpdateInside } from './model/Component';\r\nimport Components from './model/Components';\r\nimport ComponentView from './view/ComponentView';\r\nimport ComponentWrapperView from './view/ComponentWrapperView';\r\nimport ComponentsView from './view/ComponentsView';\r\nimport ComponentTableCell from './model/ComponentTableCell';\r\nimport ComponentTableCellView from './view/ComponentTableCellView';\r\nimport ComponentTableRow from './model/ComponentTableRow';\r\nimport ComponentTableRowView from './view/ComponentTableRowView';\r\nimport ComponentTable from './model/ComponentTable';\r\nimport ComponentTableView from './view/ComponentTableView';\r\nimport ComponentTableHead from './model/ComponentTableHead';\r\nimport ComponentTableHeadView from './view/ComponentTableHeadView';\r\nimport ComponentTableBody from './model/ComponentTableBody';\r\nimport ComponentTableBodyView from './view/ComponentTableBodyView';\r\nimport ComponentTableFoot from './model/ComponentTableFoot';\r\nimport ComponentTableFootView from './view/ComponentTableFootView';\r\nimport ComponentMap from './model/ComponentMap';\r\nimport ComponentMapView from './view/ComponentMapView';\r\nimport ComponentLink from './model/ComponentLink';\r\nimport ComponentLinkView from './view/ComponentLinkView';\r\nimport ComponentLabel from './model/ComponentLabel';\r\nimport ComponentLabelView from './view/ComponentLabelView';\r\nimport ComponentVideo from './model/ComponentVideo';\r\nimport ComponentVideoView from './view/ComponentVideoView';\r\nimport ComponentImage from './model/ComponentImage';\r\nimport ComponentImageView from './view/ComponentImageView';\r\nimport ComponentScript from './model/ComponentScript';\r\nimport ComponentScriptView from './view/ComponentScriptView';\r\nimport ComponentSvg from './model/ComponentSvg';\r\nimport ComponentSvgIn from './model/ComponentSvgIn';\r\nimport ComponentSvgView from './view/ComponentSvgView';\r\nimport ComponentComment from './model/ComponentComment';\r\nimport ComponentCommentView from './view/ComponentCommentView';\r\nimport ComponentTextNode from './model/ComponentTextNode';\r\nimport ComponentTextNodeView from './view/ComponentTextNodeView';\r\nimport ComponentText from './model/ComponentText';\r\nimport ComponentTextView from './view/ComponentTextView';\r\nimport ComponentWrapper from './model/ComponentWrapper';\r\nimport ComponentFrame from './model/ComponentFrame';\r\nimport ComponentFrameView from './view/ComponentFrameView';\r\nimport Module from 'common/module';\r\n\r\nexport default () => {\r\n var c = {};\r\n let em;\r\n const componentsById = {};\r\n\r\n var component, componentView;\r\n var componentTypes = [\r\n {\r\n id: 'cell',\r\n model: ComponentTableCell,\r\n view: ComponentTableCellView,\r\n },\r\n {\r\n id: 'row',\r\n model: ComponentTableRow,\r\n view: ComponentTableRowView,\r\n },\r\n {\r\n id: 'table',\r\n model: ComponentTable,\r\n view: ComponentTableView,\r\n },\r\n {\r\n id: 'thead',\r\n model: ComponentTableHead,\r\n view: ComponentTableHeadView,\r\n },\r\n {\r\n id: 'tbody',\r\n model: ComponentTableBody,\r\n view: ComponentTableBodyView,\r\n },\r\n {\r\n id: 'tfoot',\r\n model: ComponentTableFoot,\r\n view: ComponentTableFootView,\r\n },\r\n {\r\n id: 'map',\r\n model: ComponentMap,\r\n view: ComponentMapView,\r\n },\r\n {\r\n id: 'link',\r\n model: ComponentLink,\r\n view: ComponentLinkView,\r\n },\r\n {\r\n id: 'label',\r\n model: ComponentLabel,\r\n view: ComponentLabelView,\r\n },\r\n {\r\n id: 'video',\r\n model: ComponentVideo,\r\n view: ComponentVideoView,\r\n },\r\n {\r\n id: 'image',\r\n model: ComponentImage,\r\n view: ComponentImageView,\r\n },\r\n {\r\n id: 'script',\r\n model: ComponentScript,\r\n view: ComponentScriptView,\r\n },\r\n {\r\n id: 'svg-in',\r\n model: ComponentSvgIn,\r\n view: ComponentSvgView,\r\n },\r\n {\r\n id: 'svg',\r\n model: ComponentSvg,\r\n view: ComponentSvgView,\r\n },\r\n {\r\n id: 'iframe',\r\n model: ComponentFrame,\r\n view: ComponentFrameView,\r\n },\r\n {\r\n id: 'comment',\r\n model: ComponentComment,\r\n view: ComponentCommentView,\r\n },\r\n {\r\n id: 'textnode',\r\n model: ComponentTextNode,\r\n view: ComponentTextNodeView,\r\n },\r\n {\r\n id: 'text',\r\n model: ComponentText,\r\n view: ComponentTextView,\r\n },\r\n {\r\n id: 'wrapper',\r\n model: ComponentWrapper,\r\n view: ComponentWrapperView,\r\n },\r\n {\r\n id: 'default',\r\n model: Component,\r\n view: ComponentView,\r\n },\r\n ];\r\n\r\n return {\r\n ...Module,\r\n\r\n Component,\r\n\r\n Components,\r\n\r\n ComponentsView,\r\n\r\n componentTypes,\r\n\r\n componentsById,\r\n\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'DomComponents',\r\n\r\n storageKey: 'components',\r\n\r\n /**\r\n * Returns config\r\n * @return {Object} Config object\r\n * @private\r\n */\r\n getConfig() {\r\n return c;\r\n },\r\n\r\n /**\r\n * Initialize module. Called on a new instance of the editor with configurations passed\r\n * inside 'domComponents' field\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(config) {\r\n c = config || {};\r\n em = c.em;\r\n this.em = em;\r\n\r\n if (em) {\r\n c.components = em.config.components || c.components;\r\n }\r\n\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n // Load dependencies\r\n if (em) {\r\n c.modal = em.get('Modal') || '';\r\n c.am = em.get('AssetManager') || '';\r\n em.get('Parser').compTypes = componentTypes;\r\n em.on('change:componentHovered', this.componentHovered, this);\r\n\r\n const selected = em.get('selected');\r\n em.listenTo(selected, 'add', (sel, c, opts) => this.selectAdd(selected.getComponent(sel), opts));\r\n em.listenTo(selected, 'remove', (sel, c, opts) => this.selectRemove(selected.getComponent(sel), opts));\r\n }\r\n\r\n return this;\r\n },\r\n\r\n load(data) {\r\n return this.loadProjectData(data, {\r\n onResult: result => {\r\n const wrapper = this.getWrapper();\r\n if (isArray(result)) {\r\n result.length && wrapper.components(result);\r\n } else {\r\n const { components = [], ...rest } = result;\r\n wrapper.set(rest);\r\n wrapper.components(components);\r\n }\r\n },\r\n });\r\n },\r\n\r\n store() {\r\n return {};\r\n },\r\n\r\n /**\r\n * Returns privately the main wrapper\r\n * @return {Object}\r\n * @private\r\n */\r\n getComponent() {\r\n const sel = this.em.get('PageManager').getSelected();\r\n const frame = sel && sel.getMainFrame();\r\n return frame && frame.getComponent();\r\n },\r\n\r\n /**\r\n * Returns root component inside the canvas. Something like `` inside HTML page\r\n * The wrapper doesn't differ from the original Component Model\r\n * @return {Component} Root Component\r\n * @example\r\n * // Change background of the wrapper and set some attribute\r\n * var wrapper = cmp.getWrapper();\r\n * wrapper.set('style', {'background-color': 'red'});\r\n * wrapper.set('attributes', {'title': 'Hello!'});\r\n */\r\n getWrapper() {\r\n return this.getComponent();\r\n },\r\n\r\n /**\r\n * Returns wrapper's children collection. Once you have the collection you can\r\n * add other Components(Models) inside. Each component can have several nested\r\n * components inside and you can nest them as more as you wish.\r\n * @return {Components} Collection of components\r\n * @example\r\n * // Let's add some component\r\n * var wrapperChildren = cmp.getComponents();\r\n * var comp1 = wrapperChildren.add({\r\n * style: { 'background-color': 'red'}\r\n * });\r\n * var comp2 = wrapperChildren.add({\r\n * tagName: 'span',\r\n * attributes: { title: 'Hello!'}\r\n * });\r\n * // Now let's add an other one inside first component\r\n * // First we have to get the collection inside. Each\r\n * // component has 'components' property\r\n * var comp1Children = comp1.get('components');\r\n * // Procede as before. You could also add multiple objects\r\n * comp1Children.add([\r\n * { style: { 'background-color': 'blue'}},\r\n * { style: { height: '100px', width: '100px'}}\r\n * ]);\r\n * // Remove comp2\r\n * wrapperChildren.remove(comp2);\r\n */\r\n getComponents() {\r\n const wrp = this.getWrapper();\r\n return wrp && wrp.get('components');\r\n },\r\n\r\n /**\r\n * Add new components to the wrapper's children. It's the same\r\n * as 'cmp.getComponents().add(...)'\r\n * @param {Object|Component|Array} component Component/s to add\r\n * @param {string} [component.tagName='div'] Tag name\r\n * @param {string} [component.type=''] Type of the component. Available: ''(default), 'text', 'image'\r\n * @param {boolean} [component.removable=true] If component is removable\r\n * @param {boolean} [component.draggable=true] If is possible to move the component around the structure\r\n * @param {boolean} [component.droppable=true] If is possible to drop inside other components\r\n * @param {boolean} [component.badgable=true] If the badge is visible when the component is selected\r\n * @param {boolean} [component.stylable=true] If is possible to style component\r\n * @param {boolean} [component.copyable=true] If is possible to copy&paste the component\r\n * @param {string} [component.content=''] String inside component\r\n * @param {Object} [component.style={}] Style object\r\n * @param {Object} [component.attributes={}] Attribute object\r\n * @param {Object} opt the options object to be used by the [Components.add]{@link getComponents} method\r\n * @return {Component|Array} Component/s added\r\n * @example\r\n * // Example of a new component with some extra property\r\n * var comp1 = cmp.addComponent({\r\n * tagName: 'div',\r\n * removable: true, // Can't remove it\r\n * draggable: true, // Can't move it\r\n * copyable: true, // Disable copy/past\r\n * content: 'Content text', // Text inside component\r\n * style: { color: 'red'},\r\n * attributes: { title: 'here' }\r\n * });\r\n */\r\n addComponent(component, opt = {}) {\r\n return this.getComponents().add(component, opt);\r\n },\r\n\r\n /**\r\n * Render and returns wrapper element with all components inside.\r\n * Once the wrapper is rendered, and it's what happens when you init the editor,\r\n * the all new components will be added automatically and property changes are all\r\n * updated immediately\r\n * @return {HTMLElement}\r\n */\r\n render() {\r\n return componentView.render().el;\r\n },\r\n\r\n /**\r\n * Remove all components\r\n * @return {this}\r\n */\r\n clear(opts = {}) {\r\n this.getComponents()\r\n .map(i => i)\r\n .forEach(i => i.remove(opts));\r\n return this;\r\n },\r\n\r\n /**\r\n * Set components\r\n * @param {Object|string} components HTML string or components model\r\n * @param {Object} opt the options object to be used by the {@link addComponent} method\r\n * @return {this}\r\n * @private\r\n */\r\n setComponents(components, opt = {}) {\r\n this.clear(opt).addComponent(components, opt);\r\n },\r\n\r\n /**\r\n * Add new component type.\r\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\r\n * @param {string} type Component ID\r\n * @param {Object} methods Component methods\r\n * @return {this}\r\n */\r\n addType(type, methods) {\r\n const { em } = this;\r\n const { model = {}, view = {}, isComponent, extend, extendView, extendFn = [], extendFnView = [] } = methods;\r\n const compType = this.getType(type);\r\n const extendType = this.getType(extend);\r\n const extendViewType = this.getType(extendView);\r\n const typeToExtend = extendType ? extendType : compType ? compType : this.getType('default');\r\n const modelToExt = typeToExtend.model;\r\n const viewToExt = extendViewType ? extendViewType.view : typeToExtend.view;\r\n\r\n // Function for extending source object methods\r\n const getExtendedObj = (fns, target, srcToExt) =>\r\n fns.reduce((res, next) => {\r\n const fn = target[next];\r\n const parentFn = srcToExt.prototype[next];\r\n if (fn && parentFn) {\r\n res[next] = function (...args) {\r\n parentFn.bind(this)(...args);\r\n fn.bind(this)(...args);\r\n };\r\n }\r\n return res;\r\n }, {});\r\n\r\n // If the model/view is a simple object I need to extend it\r\n if (typeof model === 'object') {\r\n methods.model = modelToExt.extend(\r\n {\r\n ...model,\r\n ...getExtendedObj(extendFn, model, modelToExt),\r\n defaults: {\r\n ...(result(modelToExt.prototype, 'defaults') || {}),\r\n ...(result(model, 'defaults') || {}),\r\n },\r\n },\r\n {\r\n isComponent: compType && !extendType && !isComponent ? modelToExt.isComponent : isComponent || (() => 0),\r\n }\r\n );\r\n }\r\n\r\n if (typeof view === 'object') {\r\n methods.view = viewToExt.extend({\r\n ...view,\r\n ...getExtendedObj(extendFnView, view, viewToExt),\r\n });\r\n }\r\n\r\n if (compType) {\r\n compType.model = methods.model;\r\n compType.view = methods.view;\r\n } else {\r\n methods.id = type;\r\n componentTypes.unshift(methods);\r\n }\r\n\r\n const event = `component:type:${compType ? 'update' : 'add'}`;\r\n em && em.trigger(event, compType || methods);\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Get component type.\r\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\r\n * @param {string} type Component ID\r\n * @return {Object} Component type definition, eg. `{ model: ..., view: ... }`\r\n */\r\n getType(type) {\r\n var df = componentTypes;\r\n\r\n for (var it = 0; it < df.length; it++) {\r\n var dfId = df[it].id;\r\n if (dfId == type) {\r\n return df[it];\r\n }\r\n }\r\n return;\r\n },\r\n\r\n /**\r\n * Remove component type\r\n * @param {string} type Component ID\r\n * @returns {Object|undefined} Removed component type, undefined otherwise\r\n */\r\n removeType(id) {\r\n const df = componentTypes;\r\n const type = this.getType(id);\r\n if (!type) return;\r\n const index = df.indexOf(type);\r\n df.splice(index, 1);\r\n return type;\r\n },\r\n\r\n /**\r\n * Return the array of all types\r\n * @return {Array}\r\n */\r\n getTypes() {\r\n return componentTypes;\r\n },\r\n\r\n selectAdd(component, opts = {}) {\r\n if (component) {\r\n component.set({\r\n status: 'selected',\r\n });\r\n ['component:selected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\r\n }\r\n },\r\n\r\n selectRemove(component, opts = {}) {\r\n if (component) {\r\n const { em } = this;\r\n component.set({\r\n status: '',\r\n state: '',\r\n });\r\n ['component:deselected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\r\n }\r\n },\r\n\r\n /**\r\n * Triggered when the component is hovered\r\n * @private\r\n */\r\n componentHovered() {\r\n const em = c.em;\r\n const model = em.get('componentHovered');\r\n const previous = em.previous('componentHovered');\r\n const state = 'hovered';\r\n\r\n // Deselect the previous component\r\n previous &&\r\n previous.get('status') == state &&\r\n previous.set({\r\n status: '',\r\n state: '',\r\n });\r\n\r\n model && isEmpty(model.get('status')) && model.set('status', state);\r\n },\r\n\r\n getShallowWrapper() {\r\n let { shallow, em } = this;\r\n\r\n if (!shallow && em) {\r\n const shallowEm = em.get('shallow');\r\n if (!shallowEm) return;\r\n const domc = shallowEm.get('DomComponents');\r\n domc.componentTypes = this.componentTypes;\r\n shallow = domc.getWrapper();\r\n if (shallow) {\r\n const events = [keyUpdate, keyUpdateInside].join(' ');\r\n shallow.on(\r\n events,\r\n debounce(() => shallow.components(''), 100)\r\n );\r\n }\r\n this.shallow = shallow;\r\n }\r\n\r\n return shallow;\r\n },\r\n\r\n /**\r\n * Check if the component can be moved inside another.\r\n * @param {[Component]} target The target Component is the one that is supposed to receive the source one.\r\n * @param {[Component]|String} source The source can be another Component or an HTML string.\r\n * @param {Number} [index] Index position. If not specified, the check will perform against appending the source to target.\r\n * @returns {Object} Object containing the `result` (Boolean), `source`, `target` (as Components), and a `reason` (Number) with these meanings:\r\n * * `0` - Invalid source. This is a default value and should be ignored in case the `result` is true.\r\n * * `1` - Source doesn't accept target as destination.\r\n * * `2` - Target doesn't accept source.\r\n * @private\r\n */\r\n canMove(target, source, index) {\r\n const at = index || index === 0 ? index : null;\r\n const result = {\r\n result: false,\r\n reason: 0,\r\n target,\r\n source: null,\r\n };\r\n\r\n if (!source) return result;\r\n\r\n let srcModel = source?.toHTML ? source : null;\r\n\r\n if (!srcModel) {\r\n const wrapper = this.getShallowWrapper();\r\n srcModel = wrapper?.append(source)[0];\r\n }\r\n\r\n result.source = srcModel;\r\n\r\n if (!srcModel) return result;\r\n\r\n // Check if the source is draggable in the target\r\n let draggable = srcModel.get('draggable');\r\n\r\n if (isFunction(draggable)) {\r\n draggable = !!draggable(srcModel, target, at);\r\n } else {\r\n const el = target.getEl();\r\n draggable = isArray(draggable) ? draggable.join(',') : draggable;\r\n draggable = isString(draggable) ? el?.matches(draggable) : draggable;\r\n }\r\n\r\n if (!draggable) return { ...result, reason: 1 };\r\n\r\n // Check if the target accepts the source\r\n let droppable = target.get('droppable');\r\n\r\n if (isFunction(droppable)) {\r\n droppable = !!droppable(srcModel, target, at);\r\n } else {\r\n if (droppable === false && target.isInstanceOf('text') && srcModel.get('textable')) {\r\n droppable = true;\r\n } else {\r\n const el = srcModel.getEl();\r\n droppable = isArray(droppable) ? droppable.join(',') : droppable;\r\n droppable = isString(droppable) ? el?.matches(droppable) : droppable;\r\n }\r\n }\r\n\r\n if (!droppable) return { ...result, reason: 2 };\r\n\r\n return { ...result, result: true };\r\n },\r\n\r\n allById() {\r\n return componentsById;\r\n },\r\n\r\n getById(id) {\r\n return componentsById[id] || null;\r\n },\r\n\r\n destroy() {\r\n const all = this.allById();\r\n Object.keys(all).forEach(id => all[id] && all[id].remove());\r\n componentView && componentView.remove();\r\n [c, em, componentsById, component, componentView].forEach(i => (i = {}));\r\n this.em = {};\r\n },\r\n };\r\n};\r\n","import { isUndefined } from 'underscore';\r\nimport { Model } from '../../common';\r\n\r\n/**\r\n * @typedef Trait\r\n * @property {String} id Trait id, eg. `my-trait-id`.\r\n * @property {String} type Trait type, defines how the trait should rendered. Possible values: `text` (default), `number`, `select`, `checkbox`, `color`, `button`\r\n * @property {String} label The trait label to show for the rendered trait.\r\n * @property {String} name The name of the trait used as a key for the attribute/property. By default, the name is used as attribute name or property in case `changeProp` in enabled.\r\n * @property {Boolean} changeProp If `true` the trait value is applied on component\r\n *\r\n */\r\nexport default class Trait extends Model {\r\n initialize() {\r\n const { target, name, changeProp } = this.attributes;\r\n !this.get('id') && this.set('id', name);\r\n\r\n if (target) {\r\n this.target = target;\r\n this.unset('target');\r\n const targetEvent = changeProp ? `change:${name}` : `change:attributes:${name}`;\r\n this.listenTo(target, targetEvent, this.targetUpdated);\r\n }\r\n }\r\n\r\n /**\r\n * Get the trait id.\r\n * @returns {String}\r\n */\r\n getId() {\r\n return this.get('id');\r\n }\r\n\r\n /**\r\n * Get the trait type.\r\n * @returns {String}\r\n */\r\n getType() {\r\n return this.get('type');\r\n }\r\n\r\n /**\r\n * Get the trait name.\r\n * @returns {String}\r\n */\r\n getName() {\r\n return this.get('name');\r\n }\r\n\r\n /**\r\n * Get the trait label.\r\n * @param {Object} [opts={}] Options.\r\n * @param {Boolean} [opts.locale=true] Use the locale string from i18n module.\r\n * @returns {String}\r\n */\r\n getLabel(opts = {}) {\r\n const { locale = true } = opts;\r\n const id = this.getId();\r\n const name = this.get('label') || this.getName();\r\n return (locale && this.em?.t(`traitManager.traits.labels.${id}`)) || name;\r\n }\r\n\r\n /**\r\n * Get the trait value.\r\n * The value is taken from component attributes by default or from properties if the trait has the `changeProp` enabled.\r\n * @returns {any}\r\n */\r\n getValue() {\r\n return this.getTargetValue();\r\n }\r\n\r\n /**\r\n * Update the trait value.\r\n * The value is applied on component attributes by default or on properties if the trait has the `changeProp` enabled.\r\n * @param {any} value Value of the trait.\r\n * @param {Object} [opts={}] Options.\r\n * @param {Boolean} [opts.partial] If `true` the update won't be considered complete (not stored in UndoManager).\r\n */\r\n setValue(value, opts = {}) {\r\n const valueOpts = {};\r\n\r\n if (opts.partial) {\r\n valueOpts.avoidStore = true;\r\n }\r\n\r\n this.setTargetValue(value, valueOpts);\r\n\r\n if (opts.partial === false) {\r\n this.setTargetValue('');\r\n this.setTargetValue(value);\r\n }\r\n }\r\n\r\n props() {\r\n return this.attributes;\r\n }\r\n\r\n targetUpdated() {\r\n const value = this.getTargetValue();\r\n this.set({ value }, { fromTarget: 1 });\r\n this.em?.trigger('trait:update', {\r\n trait: this,\r\n component: this.target,\r\n });\r\n }\r\n\r\n getTargetValue() {\r\n const name = this.get('name');\r\n const target = this.target;\r\n let value;\r\n\r\n if (this.get('changeProp')) {\r\n value = target.get(name);\r\n } else {\r\n value = target.getAttributes()[name];\r\n }\r\n\r\n return !isUndefined(value) ? value : '';\r\n }\r\n\r\n setTargetValue(value, opts = {}) {\r\n const target = this.target;\r\n const name = this.get('name');\r\n if (isUndefined(value)) return;\r\n let valueToSet = value;\r\n\r\n if (value === 'false') {\r\n valueToSet = false;\r\n } else if (value === 'true') {\r\n valueToSet = true;\r\n }\r\n\r\n if (this.get('changeProp')) {\r\n target.set(name, valueToSet, opts);\r\n } else {\r\n const attrs = { ...target.get('attributes') };\r\n attrs[name] = valueToSet;\r\n target.set('attributes', attrs, opts);\r\n }\r\n }\r\n\r\n setValueFromInput(value, final = 1, opts = {}) {\r\n const toSet = { value };\r\n this.set(toSet, { ...opts, avoidStore: 1 });\r\n\r\n // Have to trigger the change\r\n if (final) {\r\n this.set('value', '', opts);\r\n this.set(toSet, opts);\r\n }\r\n }\r\n\r\n getInitValue() {\r\n const target = this.target;\r\n const name = this.get('name');\r\n let value;\r\n\r\n if (target) {\r\n const attrs = target.get('attributes');\r\n value = this.get('changeProp') ? target.get(name) : attrs[name];\r\n }\r\n\r\n return value || this.get('value') || this.get('default');\r\n }\r\n}\r\n\r\nTrait.prototype.defaults = {\r\n type: 'text',\r\n label: '',\r\n name: '',\r\n min: '',\r\n max: '',\r\n unit: '',\r\n step: 1,\r\n value: '',\r\n target: '',\r\n default: '',\r\n placeholder: '',\r\n changeProp: 0,\r\n options: [],\r\n};\r\n","import { isString, isArray } from 'underscore';\r\nimport { Collection } from '../../common';\r\nimport Trait from './Trait';\r\nimport TraitFactory from './TraitFactory';\r\n\r\nexport default class Traits extends Collection {\r\n initialize(coll, options = {}) {\r\n this.em = options.em;\r\n this.listenTo(this, 'add', this.handleAdd);\r\n this.listenTo(this, 'reset', this.handleReset);\r\n }\r\n\r\n handleReset(coll, { previousModels = [] } = {}) {\r\n previousModels.forEach(model => model.trigger('remove'));\r\n }\r\n\r\n handleAdd(model) {\r\n model.em = this.em;\r\n const target = this.target;\r\n\r\n if (target) {\r\n model.target = target;\r\n }\r\n }\r\n\r\n setTarget(target) {\r\n this.target = target;\r\n }\r\n\r\n add(models, opt) {\r\n const em = this.em;\r\n\r\n // Use TraitFactory if necessary\r\n if (isString(models) || isArray(models)) {\r\n const tm = em && em.get && em.get('TraitManager');\r\n const tmOpts = tm && tm.getConfig();\r\n const tf = TraitFactory(tmOpts);\r\n\r\n if (isString(models)) {\r\n models = [models];\r\n }\r\n\r\n for (var i = 0, len = models.length; i < len; i++) {\r\n const str = models[i];\r\n const model = isString(str) ? tf.build(str)[0] : str;\r\n model.target = this.target;\r\n models[i] = model;\r\n }\r\n }\r\n\r\n return Collection.prototype.add.apply(this, [models, opt]);\r\n }\r\n}\r\n\r\nTraits.prototype.model = Trait;\r\n","export default (config = {}) => ({\r\n /**\r\n * Build props object by their name\r\n * @param {Array|string} props Array of properties name\r\n * @return {Array}\r\n */\r\n build(props) {\r\n const objs = [];\r\n\r\n if (typeof props === 'string') props = [props];\r\n\r\n for (let i = 0; i < props.length; i++) {\r\n const obj = {};\r\n const prop = props[i];\r\n obj.name = prop;\r\n\r\n switch (prop) {\r\n case 'target':\r\n obj.type = 'select';\r\n obj.default = false;\r\n obj.options = config.optionsTarget;\r\n break;\r\n }\r\n\r\n objs.push(obj);\r\n }\r\n\r\n return objs;\r\n }\r\n});\r\n","import {\r\n isUndefined,\r\n isFunction,\r\n isArray,\r\n isEmpty,\r\n isBoolean,\r\n has,\r\n isString,\r\n forEach,\r\n result,\r\n bindAll,\r\n keys,\r\n} from 'underscore';\r\nimport { shallowDiff, capitalize, isEmptyObj, isObject, toLowerCase } from 'utils/mixins';\r\nimport Styleable from 'domain_abstract/model/Styleable';\r\nimport { Model } from 'backbone';\r\nimport Components from './Components';\r\nimport Selector from 'selector_manager/model/Selector';\r\nimport Selectors from 'selector_manager/model/Selectors';\r\nimport Traits from 'trait_manager/model/Traits';\r\n\r\nconst escapeRegExp = str => {\r\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\r\n};\r\n\r\nconst avoidInline = em => em && em.getConfig('avoidInlineStyle');\r\n\r\nexport const eventDrag = 'component:drag';\r\nexport const keySymbols = '__symbols';\r\nexport const keySymbol = '__symbol';\r\nexport const keySymbolOvrd = '__symbol_ovrd';\r\nexport const keyUpdate = 'component:update';\r\nexport const keyUpdateInside = `${keyUpdate}-inside`;\r\n\r\n/**\r\n * The Component object represents a single node of our template structure, so when you update its properties the changes are\r\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\r\n * the tree of nodes).\r\n * An example on how to update properties:\r\n * ```js\r\n * component.set({\r\n * tagName: 'span',\r\n * attributes: { ... },\r\n * removable: false,\r\n * });\r\n * component.get('tagName');\r\n * // -> 'span'\r\n * ```\r\n *\r\n * [Component]: component.html\r\n *\r\n * @typedef Component\r\n * @property {String} [type=''] Component type, eg. `text`, `image`, `video`, etc.\r\n * @property {String} [tagName='div'] HTML tag of the component, eg. `span`. Default: `div`\r\n * @property {Object} [attributes={}] Key-value object of the component's attributes, eg. `{ title: 'Hello' }` Default: `{}`\r\n * @property {String} [name=''] Name of the component. Will be used, for example, in Layers and badges\r\n * @property {Boolean} [removable=true] When `true` the component is removable from the canvas, default: `true`\r\n * @property {Boolean|String|Function} [draggable=true] Indicates if it's possible to drag the component inside others.\r\n * You can also specify a query string to indentify elements,\r\n * eg. `'.some-class[title=Hello], [data-gjs-type=column]'` means you can drag the component only inside elements\r\n * containing `some-class` class and `Hello` title, and `column` components. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drag is possible. Default: `true`\r\n * @property {Boolean|String|Function} [droppable=true] Indicates if it's possible to drop other components inside. You can use\r\n * a query string as with `draggable`. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drop is possible. Default: `true`\r\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`\r\n * @property {Boolean|Array} [stylable=true] True if it's possible to style the component.\r\n * You can also indicate an array of CSS properties which is possible to style, eg. `['color', 'width']`, all other properties\r\n * will be hidden from the style manager. Default: `true`\r\n * @property {Array} [stylable-require=[]] Indicate an array of style properties to show up which has been marked as `toRequire`. Default: `[]`\r\n * @property {Array} [unstylable=[]] Indicate an array of style properties which should be hidden from the style manager. Default: `[]`\r\n * @property {Boolean} [highlightable=true] It can be highlighted with 'dotted' borders if true. Default: `true`\r\n * @property {Boolean} [copyable=true] True if it's possible to clone the component. Default: `true`\r\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`\r\n * @property {Boolean} [editable=false] Allow to edit the content of the component (used on Text components). Default: `false`\r\n * @property {Boolean} [layerable=true] Set to `false` if you need to hide the component inside Layers. Default: `true`\r\n * @property {Boolean} [selectable=true] Allow component to be selected when clicked. Default: `true`\r\n * @property {Boolean} [hoverable=true] Shows a highlight outline when hovering on the element if `true`. Default: `true`\r\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`\r\n * @property {Object} [style={}] Component default style, eg. `{ width: '100px', height: '100px', 'background-color': 'red' }`\r\n * @property {String} [styles=''] Component related styles, eg. `.my-component-class { color: red }`\r\n * @property {String} [content=''] Content of the component (not escaped) which will be appended before children rendering. Default: `''`\r\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: `''`\r\n * @property {String|Function} [script=''] Component's javascript. More about it [here](/modules/Components-js.html). Default: `''`\r\n * @property {String|Function} [script-export=''] You can specify javascript available only in export functions (eg. when you get the HTML).\r\n * If this property is defined it will overwrite the `script` one (in export functions). Default: `''`\r\n * @property {Array} [traits=''] Component's traits. More about it [here](/modules/Traits.html). Default: `['id', 'title']`\r\n * @property {Array} [propagate=[]] Indicates an array of properties which will be inhereted by all NEW appended children.\r\n * For example if you create a component likes this: `{ removable: false, draggable: false, propagate: ['removable', 'draggable'] }`\r\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: `[]`\r\n * @property {Array} [toolbar=null] Set an array of items to show up inside the toolbar when the component is selected (move, clone, delete).\r\n * Eg. `toolbar: [ { attributes: {class: 'fa fa-arrows'}, command: 'tlb-move' }, ... ]`.\r\n * By default, when `toolbar` property is falsy the editor will add automatically commands `core:component-exit` (select parent component, added if there is one), `tlb-move` (added if `draggable`) , `tlb-clone` (added if `copyable`), `tlb-delete` (added if `removable`).\r\n * @property {Collection} [components=null] Children components. Default: `null`\r\n */\r\nexport default class Component extends Model.extend(Styleable) {\r\n /**\r\n * Hook method, called once the model is created\r\n */\r\n init() {}\r\n\r\n /**\r\n * Hook method, called when the model has been updated (eg. updated some model's property)\r\n * @param {String} property Property name, if triggered after some property update\r\n * @param {*} value Property value, if triggered after some property update\r\n * @param {*} previous Property previous value, if triggered after some property update\r\n */\r\n updated(property, value, previous) {}\r\n\r\n /**\r\n * Hook method, called once the model has been removed\r\n */\r\n removed() {}\r\n\r\n initialize(props = {}, opt = {}) {\r\n bindAll(this, '__upSymbProps', '__upSymbCls', '__upSymbComps');\r\n const em = opt.em;\r\n\r\n // Propagate properties from parent if indicated\r\n const parent = this.parent();\r\n const parentAttr = parent && parent.attributes;\r\n const propagate = this.get('propagate');\r\n propagate && this.set('propagate', isArray(propagate) ? propagate : [propagate]);\r\n\r\n if (parentAttr && parentAttr.propagate && !propagate) {\r\n const newAttr = {};\r\n const toPropagate = parentAttr.propagate;\r\n toPropagate.forEach(prop => (newAttr[prop] = parent.get(prop)));\r\n newAttr.propagate = toPropagate;\r\n this.set({ ...newAttr, ...props });\r\n }\r\n\r\n // Check void elements\r\n if (opt && opt.config && opt.config.voidElements.indexOf(this.get('tagName')) >= 0) {\r\n this.set('void', true);\r\n }\r\n\r\n opt.em = em;\r\n this.opt = opt;\r\n this.em = em;\r\n this.frame = opt.frame;\r\n this.config = opt.config || {};\r\n this.set('attributes', {\r\n ...(result(this, 'defaults').attributes || {}),\r\n ...(this.get('attributes') || {}),\r\n });\r\n this.ccid = Component.createId(this, opt);\r\n this.initClasses();\r\n this.initTraits();\r\n this.initComponents();\r\n this.initToolbar();\r\n this.initScriptProps();\r\n this.listenTo(this, 'change:script', this.scriptUpdated);\r\n this.listenTo(this, 'change:tagName', this.tagUpdated);\r\n this.listenTo(this, 'change:attributes', this.attrUpdated);\r\n this.listenTo(this, 'change:attributes:id', this._idUpdated);\r\n this.on('change:toolbar', this.__emitUpdateTlb);\r\n this.on('change', this.__onChange);\r\n this.on(keyUpdateInside, this.__propToParent);\r\n this.set('status', '');\r\n this.views = [];\r\n\r\n // Register global updates for collection properties\r\n ['classes', 'traits', 'components'].forEach(name => {\r\n const events = `add remove ${name !== 'components' ? 'change' : ''}`;\r\n this.listenTo(this.get(name), events.trim(), (...args) => this.emitUpdate(name, ...args));\r\n });\r\n\r\n if (!opt.temporary) {\r\n // Add component styles\r\n const cssc = em && em.get('CssComposer');\r\n const { styles, type } = this.attributes;\r\n if (styles && cssc) {\r\n cssc.addCollection(styles, {}, { group: `cmp:${type}` });\r\n }\r\n\r\n this.__postAdd();\r\n this.init();\r\n this.__isSymbolOrInst() && this.__initSymb();\r\n em && em.trigger('component:create', this);\r\n }\r\n }\r\n\r\n __postAdd(opts = {}) {\r\n const { em } = this;\r\n const um = em && em.get('UndoManager');\r\n const comps = this.components();\r\n if (um && !this.__hasUm) {\r\n um.add(comps);\r\n um.add(this.getSelectors());\r\n this.__hasUm = 1;\r\n }\r\n opts.recursive && comps.map(c => c.__postAdd(opts));\r\n }\r\n\r\n __postRemove() {\r\n const { em } = this;\r\n const um = em && em.get('UndoManager');\r\n if (um) {\r\n um.remove(this.components());\r\n um.remove(this.getSelectors());\r\n delete this.__hasUm;\r\n }\r\n }\r\n\r\n __onChange(m, opts) {\r\n const changed = this.changedAttributes();\r\n ['status', 'open', 'toolbar', 'traits'].forEach(name => delete changed[name]);\r\n // Propagate component prop changes\r\n if (!isEmptyObj(changed)) {\r\n this.__changesUp(opts);\r\n this.__propSelfToParent({ component: this, changed, options: opts });\r\n }\r\n }\r\n\r\n __changesUp(opts) {\r\n const { em, frame } = this;\r\n [frame, em].forEach(md => md && md.changesUp(opts));\r\n }\r\n\r\n __propSelfToParent(props) {\r\n this.trigger(keyUpdate, props);\r\n this.__propToParent(props);\r\n }\r\n\r\n __propToParent(props) {\r\n const parent = this.parent();\r\n parent && parent.trigger(keyUpdateInside, props);\r\n }\r\n\r\n __emitUpdateTlb() {\r\n this.emitUpdate('toolbar');\r\n }\r\n\r\n /**\r\n * Check component's type\r\n * @param {string} type Component type\r\n * @return {Boolean}\r\n * @example\r\n * component.is('image')\r\n * // -> false\r\n */\r\n is(type) {\r\n return !!(this.get('type') == type);\r\n }\r\n\r\n /**\r\n * Return all the propeties\r\n * @returns {Object}\r\n */\r\n props() {\r\n return this.attributes;\r\n }\r\n\r\n /**\r\n * Get the index of the component in the parent collection.\r\n * @return {Number}\r\n */\r\n index() {\r\n const { collection } = this;\r\n return collection ? collection.indexOf(this) : 0;\r\n }\r\n\r\n /**\r\n * Change the drag mode of the component.\r\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\r\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\r\n * @returns {this}\r\n */\r\n setDragMode(value) {\r\n return this.set('dmode', value);\r\n }\r\n\r\n /**\r\n * Find inner components by query string.\r\n * **ATTENTION**: this method works only with already rendered component\r\n * @param {String} query Query string\r\n * @return {Array} Array of components\r\n * @example\r\n * component.find('div > .class');\r\n * // -> [Component, Component, ...]\r\n */\r\n find(query) {\r\n const result = [];\r\n const $els = this.view.$el.find(query);\r\n $els.each(i => {\r\n const $el = $els.eq(i);\r\n const model = $el.data('model');\r\n model && result.push(model);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Find all inner components by component type.\r\n * The advantage of this method over `find` is that you can use it\r\n * also before rendering the component\r\n * @param {String} type Component type\r\n * @returns {Array}\r\n * @example\r\n * const allImages = component.findType('image');\r\n * console.log(allImages[0]) // prints the first found component\r\n */\r\n findType(type) {\r\n const result = [];\r\n const find = components =>\r\n components.forEach(item => {\r\n item.is(type) && result.push(item);\r\n find(item.components());\r\n });\r\n find(this.components());\r\n return result;\r\n }\r\n\r\n /**\r\n * Find the closest parent component by query string.\r\n * **ATTENTION**: this method works only with already rendered component\r\n * @param {string} query Query string\r\n * @return {Component}\r\n * @example\r\n * component.closest('div.some-class');\r\n * // -> Component\r\n */\r\n closest(query) {\r\n const result = this.view.$el.closest(query);\r\n return result.length && result.data('model');\r\n }\r\n\r\n /**\r\n * Find the closest parent component by its type.\r\n * The advantage of this method over `closest` is that you can use it\r\n * also before rendering the component\r\n * @param {String} type Component type\r\n * @returns {Component} Found component, otherwise `undefined`\r\n * @example\r\n * const Section = component.closestType('section');\r\n * console.log(Section);\r\n */\r\n closestType(type) {\r\n let parent = this.parent();\r\n\r\n while (parent && !parent.is(type)) {\r\n parent = parent.parent();\r\n }\r\n\r\n return parent;\r\n }\r\n\r\n /**\r\n * The method returns a Boolean value indicating whether the passed\r\n * component is a descendant of a given component\r\n * @param {Component} component Component to check\r\n * @returns {Boolean}\r\n */\r\n contains(component) {\r\n let result = !1;\r\n if (!component) return result;\r\n const contains = components => {\r\n !result &&\r\n components.forEach(item => {\r\n if (item === component) result = !0;\r\n !result && contains(item.components());\r\n });\r\n };\r\n contains(this.components());\r\n return result;\r\n }\r\n\r\n /**\r\n * Once the tag is updated I have to rerender the element\r\n * @private\r\n */\r\n tagUpdated() {\r\n this.trigger('rerender');\r\n }\r\n\r\n /**\r\n * Replace a component with another one\r\n * @param {String|Component} el Component or HTML string\r\n * @return {Component|Array} New added component/s\r\n * @example\r\n * component.replaceWith('
Some new content
');\r\n * // -> Component\r\n */\r\n replaceWith(el) {\r\n const coll = this.collection;\r\n const at = coll.indexOf(this);\r\n coll.remove(this);\r\n return coll.add(el, { at });\r\n }\r\n\r\n /**\r\n * Emit changes for each updated attribute\r\n * @private\r\n */\r\n attrUpdated(m, v, opts = {}) {\r\n const attrs = this.get('attributes');\r\n // Handle classes\r\n const classes = attrs.class;\r\n classes && this.setClass(classes);\r\n delete attrs.class;\r\n\r\n // Handle style\r\n const style = attrs.style;\r\n style && this.setStyle(style);\r\n delete attrs.style;\r\n\r\n const attrPrev = { ...this.previous('attributes') };\r\n const diff = shallowDiff(attrPrev, this.get('attributes'));\r\n keys(diff).forEach(pr => this.trigger(`change:attributes:${pr}`, this, diff[pr], opts));\r\n }\r\n\r\n /**\r\n * Update attributes of the component\r\n * @param {Object} attrs Key value attributes\r\n * @param {Object} options Options for the model update\r\n * @return {this}\r\n * @example\r\n * component.setAttributes({ id: 'test', 'data-key': 'value' });\r\n */\r\n setAttributes(attrs, opts = {}) {\r\n this.set('attributes', { ...attrs }, opts);\r\n return this;\r\n }\r\n\r\n /**\r\n * Add attributes to the component\r\n * @param {Object} attrs Key value attributes\r\n * @param {Object} options Options for the model update\r\n * @return {this}\r\n * @example\r\n * component.addAttributes({ 'data-key': 'value' });\r\n */\r\n addAttributes(attrs, opts = {}) {\r\n return this.setAttributes(\r\n {\r\n ...this.getAttributes({ noClass: 1 }),\r\n ...attrs,\r\n },\r\n opts\r\n );\r\n }\r\n\r\n /**\r\n * Remove attributes from the component\r\n * @param {String|Array} attrs Array of attributes to remove\r\n * @param {Object} options Options for the model update\r\n * @return {this}\r\n * @example\r\n * component.removeAttributes('some-attr');\r\n * component.removeAttributes(['some-attr1', 'some-attr2']);\r\n */\r\n removeAttributes(attrs = [], opts = {}) {\r\n const attrArr = Array.isArray(attrs) ? attrs : [attrs];\r\n const compAttr = this.getAttributes();\r\n attrArr.map(i => delete compAttr[i]);\r\n return this.setAttributes(compAttr, opts);\r\n }\r\n\r\n /**\r\n * Get the style of the component\r\n * @return {Object}\r\n */\r\n getStyle(options = {}, optsAdd = {}) {\r\n const em = this.em;\r\n const prop = isString(options) ? options : '';\r\n const opts = prop ? optsAdd : options;\r\n\r\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\r\n const state = em.get('state');\r\n const cc = em.get('CssComposer');\r\n const rule = cc.getIdRule(this.getId(), { state, ...opts });\r\n this.rule = rule;\r\n\r\n if (rule) {\r\n return rule.getStyle(prop);\r\n }\r\n }\r\n\r\n return Styleable.getStyle.call(this, prop);\r\n }\r\n\r\n /**\r\n * Set the style on the component\r\n * @param {Object} prop Key value style object\r\n * @return {Object}\r\n * @example\r\n * component.setStyle({ color: 'red' });\r\n */\r\n setStyle(prop = {}, opts = {}) {\r\n const em = this.em;\r\n const { opt } = this;\r\n\r\n if (em && em.getConfig('avoidInlineStyle') && !opt.temporary && !opts.inline) {\r\n const style = this.get('style') || {};\r\n prop = isString(prop) ? this.parseStyle(prop) : prop;\r\n prop = { ...prop, ...style };\r\n const state = em.get('state');\r\n const cc = em.get('CssComposer');\r\n const propOrig = this.getStyle(opts);\r\n this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state });\r\n const diff = shallowDiff(propOrig, prop);\r\n this.set('style', '', { silent: 1 });\r\n keys(diff).forEach(pr => this.trigger(`change:style:${pr}`));\r\n } else {\r\n prop = Styleable.setStyle.apply(this, arguments);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n /**\r\n * Return all component's attributes\r\n * @return {Object}\r\n */\r\n getAttributes(opts = {}) {\r\n const { em } = this;\r\n const classes = [];\r\n const attributes = { ...this.get('attributes') };\r\n const sm = em && em.get('SelectorManager');\r\n const id = this.getId();\r\n\r\n // Add classes\r\n if (!opts.noClass) {\r\n this.get('classes').forEach(cls => classes.push(isString(cls) ? cls : cls.get('name')));\r\n classes.length && (attributes.class = classes.join(' '));\r\n }\r\n\r\n // Add style\r\n if (!opts.noStyle) {\r\n const style = this.get('style');\r\n if (isObject(style) && !isEmptyObj(style)) {\r\n attributes.style = this.styleToString({ inline: 1 });\r\n }\r\n }\r\n\r\n // Check if we need an ID on the component\r\n if (!has(attributes, 'id')) {\r\n let addId;\r\n\r\n // If we don't rely on inline styling we have to check\r\n // for the ID selector\r\n if (avoidInline(em)) {\r\n addId = sm && sm.get(id, sm.Selector.TYPE_ID);\r\n } else if (!isEmpty(this.getStyle())) {\r\n addId = 1;\r\n }\r\n\r\n // Symbols should always have an id\r\n if (this.__getSymbol() || this.__getSymbols()) {\r\n addId = 1;\r\n }\r\n\r\n if (addId) {\r\n attributes.id = id;\r\n }\r\n }\r\n\r\n return attributes;\r\n }\r\n\r\n /**\r\n * Add classes\r\n * @param {Array|String} classes Array or string of classes\r\n * @return {Array} Array of added selectors\r\n * @example\r\n * model.addClass('class1');\r\n * model.addClass('class1 class2');\r\n * model.addClass(['class1', 'class2']);\r\n * // -> [SelectorObject, ...]\r\n */\r\n addClass(classes) {\r\n const added = this.em.get('SelectorManager').addClass(classes);\r\n return this.get('classes').add(added);\r\n }\r\n\r\n /**\r\n * Set classes (resets current collection)\r\n * @param {Array|String} classes Array or string of classes\r\n * @return {Array} Array of added selectors\r\n * @example\r\n * model.setClass('class1');\r\n * model.setClass('class1 class2');\r\n * model.setClass(['class1', 'class2']);\r\n * // -> [SelectorObject, ...]\r\n */\r\n setClass(classes) {\r\n this.get('classes').reset();\r\n return this.addClass(classes);\r\n }\r\n\r\n /**\r\n * Remove classes\r\n * @param {Array|String} classes Array or string of classes\r\n * @return {Array} Array of removed selectors\r\n * @example\r\n * model.removeClass('class1');\r\n * model.removeClass('class1 class2');\r\n * model.removeClass(['class1', 'class2']);\r\n * // -> [SelectorObject, ...]\r\n */\r\n removeClass(classes) {\r\n const removed = [];\r\n classes = isArray(classes) ? classes : [classes];\r\n const selectors = this.get('classes');\r\n const type = Selector.TYPE_CLASS;\r\n\r\n classes.forEach(classe => {\r\n const classes = classe.split(' ');\r\n classes.forEach(name => {\r\n const selector = selectors.where({ name, type })[0];\r\n selector && removed.push(selectors.remove(selector));\r\n });\r\n });\r\n\r\n return removed;\r\n }\r\n\r\n /**\r\n * Returns component's classes as an array of strings\r\n * @return {Array}\r\n */\r\n getClasses() {\r\n const attr = this.getAttributes();\r\n const classStr = attr.class;\r\n return classStr ? classStr.split(' ') : [];\r\n }\r\n\r\n __logSymbol(type, toUp, opts = {}) {\r\n const symbol = this.__getSymbol();\r\n const symbols = this.__getSymbols();\r\n if (!symbol && !symbols) return;\r\n this.em.log(type, { model: this, toUp, context: 'symbols', opts });\r\n }\r\n\r\n __initSymb() {\r\n if (this.__symbReady) return;\r\n this.on('change', this.__upSymbProps);\r\n this.__symbReady = 1;\r\n }\r\n\r\n __isSymbol() {\r\n return isArray(this.get(keySymbols));\r\n }\r\n\r\n __isSymbolOrInst() {\r\n return !!(this.__isSymbol() || this.get(keySymbol));\r\n }\r\n\r\n __isSymbolTop() {\r\n const parent = this.parent();\r\n const symb = this.__isSymbolOrInst();\r\n return symb && (!parent || (parent && !parent.__isSymbol() && !parent.__getSymbol()));\r\n }\r\n\r\n __isSymbolNested() {\r\n if (!this.__isSymbolOrInst() || this.__isSymbolTop()) return false;\r\n const symbTopSelf = (this.__isSymbol() ? this : this.__getSymbol()).__getSymbTop();\r\n const symbTop = this.__getSymbTop();\r\n const symbTopMain = symbTop.__isSymbol() ? symbTop : symbTop.__getSymbol();\r\n return symbTopMain !== symbTopSelf;\r\n }\r\n\r\n __getAllById() {\r\n const { em } = this;\r\n return em ? em.get('DomComponents').allById() : {};\r\n }\r\n\r\n __getSymbol() {\r\n let symb = this.get(keySymbol);\r\n if (symb && isString(symb)) {\r\n const ref = this.__getAllById()[symb];\r\n if (ref) {\r\n symb = ref;\r\n this.set(keySymbol, ref);\r\n } else {\r\n symb = 0;\r\n }\r\n }\r\n return symb;\r\n }\r\n\r\n __getSymbols() {\r\n let symbs = this.get(keySymbols);\r\n if (symbs && isArray(symbs)) {\r\n symbs.forEach((symb, idx) => {\r\n if (symb && isString(symb)) {\r\n symbs[idx] = this.__getAllById()[symb];\r\n }\r\n });\r\n symbs = symbs.filter(symb => symb && !isString(symb));\r\n }\r\n return symbs;\r\n }\r\n\r\n __isSymbOvrd(prop = '') {\r\n const ovrd = this.get(keySymbolOvrd);\r\n const [prp] = prop.split(':');\r\n const props = prop !== prp ? [prop, prp] : [prop];\r\n return ovrd === true || (isArray(ovrd) && props.some(p => ovrd.indexOf(p) >= 0));\r\n }\r\n\r\n __getSymbToUp(opts = {}) {\r\n let result = [];\r\n const { em } = this;\r\n const { changed } = opts;\r\n const symbEnabled = em && em.get('symbols');\r\n\r\n if (\r\n opts.fromInstance ||\r\n opts.noPropagate ||\r\n opts.fromUndo ||\r\n !symbEnabled ||\r\n // Avoid updating others if the current component has override\r\n (changed && this.__isSymbOvrd(changed))\r\n ) {\r\n return result;\r\n }\r\n\r\n const symbols = this.__getSymbols() || [];\r\n const symbol = this.__getSymbol();\r\n const all = symbol ? [symbol, ...(symbol.__getSymbols() || [])] : symbols;\r\n result = all\r\n .filter(s => s !== this)\r\n // Avoid updating those with override\r\n .filter(s => !(changed && s.__isSymbOvrd(changed)));\r\n\r\n return result;\r\n }\r\n\r\n __getSymbTop(opts) {\r\n let result = this;\r\n let parent = this.parent(opts);\r\n\r\n while (parent && (parent.__isSymbol() || parent.__getSymbol())) {\r\n result = parent;\r\n parent = parent.parent(opts);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n __upSymbProps(m, opts = {}) {\r\n const changed = this.changedAttributes();\r\n const attrs = changed.attributes || {};\r\n delete changed.status;\r\n delete changed.open;\r\n delete changed[keySymbols];\r\n delete changed[keySymbol];\r\n delete changed[keySymbolOvrd];\r\n delete changed.attributes;\r\n delete attrs.id;\r\n if (!isEmptyObj(attrs)) changed.attributes = attrs;\r\n if (!isEmptyObj(changed)) {\r\n const toUp = this.__getSymbToUp(opts);\r\n // Avoid propagating overrides to other symbols\r\n keys(changed).map(prop => {\r\n if (this.__isSymbOvrd(prop)) delete changed[prop];\r\n });\r\n\r\n this.__logSymbol('props', toUp, { opts, changed });\r\n toUp.forEach(child => {\r\n const propsChanged = { ...changed };\r\n // Avoid updating those with override\r\n keys(propsChanged).map(prop => {\r\n if (child.__isSymbOvrd(prop)) delete propsChanged[prop];\r\n });\r\n child.set(propsChanged, { fromInstance: this, ...opts });\r\n });\r\n }\r\n }\r\n\r\n __upSymbCls(m, c, opts = {}) {\r\n const toUp = this.__getSymbToUp(opts);\r\n this.__logSymbol('classes', toUp, { opts });\r\n toUp.forEach(child => {\r\n // This will propagate the change up to __upSymbProps\r\n child.set('classes', this.get('classes'), { fromInstance: this });\r\n });\r\n this.__changesUp(opts);\r\n }\r\n\r\n __upSymbComps(m, c, o) {\r\n const optUp = o || c || {};\r\n const { fromInstance, fromUndo } = optUp;\r\n const toUpOpts = { fromInstance, fromUndo };\r\n const isTemp = m.opt.temporary;\r\n\r\n // Reset\r\n if (!o) {\r\n const toUp = this.__getSymbToUp({\r\n ...toUpOpts,\r\n changed: 'components:reset',\r\n });\r\n this.__logSymbol('reset', toUp, { components: m.models });\r\n toUp.forEach(symb => {\r\n const newMods = m.models.map(mod => mod.clone({ symbol: 1 }));\r\n symb.components().reset(newMods, { fromInstance: this, ...c });\r\n });\r\n // Add\r\n } else if (o.add) {\r\n let addedInstances = [];\r\n const isMainSymb = !!this.__getSymbols();\r\n const toUp = this.__getSymbToUp({\r\n ...toUpOpts,\r\n changed: 'components:add',\r\n });\r\n if (toUp.length) {\r\n const addSymb = m.__getSymbol();\r\n addedInstances = (addSymb ? addSymb.__getSymbols() : m.__getSymbols()) || [];\r\n addedInstances = [...addedInstances];\r\n addedInstances.push(addSymb ? addSymb : m);\r\n }\r\n !isTemp &&\r\n this.__logSymbol('add', toUp, {\r\n opts: o,\r\n addedInstances: addedInstances.map(c => c.cid),\r\n added: m.cid,\r\n });\r\n // Here, before appending a new symbol, I have to ensure there are no previously\r\n // created symbols (eg. used mainly when drag components around)\r\n toUp.forEach(symb => {\r\n const symbTop = symb.__getSymbTop();\r\n const symbPrev = addedInstances.filter(addedInst => {\r\n const addedTop = addedInst.__getSymbTop({ prev: 1 });\r\n return symbTop && addedTop && addedTop === symbTop;\r\n })[0];\r\n const toAppend = symbPrev || m.clone({ symbol: 1, symbolInv: isMainSymb });\r\n symb.append(toAppend, { fromInstance: this, ...o });\r\n });\r\n // Remove\r\n } else {\r\n // Remove instance reference from the symbol\r\n const symb = m.__getSymbol();\r\n symb &&\r\n !o.temporary &&\r\n symb.set(\r\n keySymbols,\r\n symb.__getSymbols().filter(i => i !== m)\r\n );\r\n\r\n // Propagate remove only if the component is an inner symbol\r\n if (!m.__isSymbolTop()) {\r\n const changed = 'components:remove';\r\n const { index } = o;\r\n const parent = m.parent();\r\n const opts = { fromInstance: m, ...o };\r\n const isSymbNested = m.__isSymbolNested();\r\n let toUpFn = symb => {\r\n const symbPrnt = symb.parent();\r\n symbPrnt && !symbPrnt.__isSymbOvrd(changed) && symb.remove(opts);\r\n };\r\n // Check if the parent allows the removing\r\n let toUp = !parent.__isSymbOvrd(changed) ? m.__getSymbToUp(toUpOpts) : [];\r\n\r\n if (isSymbNested) {\r\n toUp = parent.__getSymbToUp({ ...toUpOpts, changed });\r\n toUpFn = symb => {\r\n const toRemove = symb.components().at(index);\r\n toRemove && toRemove.remove({ fromInstance: parent, ...opts });\r\n };\r\n }\r\n\r\n !isTemp &&\r\n this.__logSymbol('remove', toUp, {\r\n opts: o,\r\n removed: m.cid,\r\n isSymbNested,\r\n });\r\n toUp.forEach(toUpFn);\r\n }\r\n }\r\n\r\n this.__changesUp(optUp);\r\n }\r\n\r\n initClasses(m, c, opts = {}) {\r\n const event = 'change:classes';\r\n const attrCls = this.get('attributes').class || [];\r\n const toListen = [this, event, this.initClasses];\r\n const cls = this.get('classes') || attrCls;\r\n const clsArr = isString(cls) ? cls.split(' ') : cls;\r\n this.stopListening(...toListen);\r\n const classes = this.normalizeClasses(clsArr);\r\n const selectors = new Selectors([]);\r\n this.set('classes', selectors, opts);\r\n selectors.add(classes);\r\n selectors.on('add remove reset', this.__upSymbCls);\r\n this.listenTo(...toListen);\r\n return this;\r\n }\r\n\r\n initComponents() {\r\n const event = 'change:components';\r\n const toListen = [this, event, this.initComponents];\r\n this.stopListening(...toListen);\r\n // Have to add components after the init, otherwise the parent\r\n // is not visible\r\n const comps = new Components(null, this.opt);\r\n comps.parent = this;\r\n const components = this.get('components');\r\n const addChild = !this.opt.avoidChildren;\r\n this.set('components', comps);\r\n addChild && components && comps.add(isFunction(components) ? components(this) : components, this.opt);\r\n comps.on('add remove reset', this.__upSymbComps);\r\n this.listenTo(...toListen);\r\n return this;\r\n }\r\n\r\n initTraits(changed) {\r\n const { em } = this;\r\n const event = 'change:traits';\r\n this.off(event, this.initTraits);\r\n this.__loadTraits();\r\n const attrs = { ...this.get('attributes') };\r\n const traits = this.get('traits');\r\n traits.each(trait => {\r\n if (!trait.get('changeProp')) {\r\n const name = trait.get('name');\r\n const value = trait.getInitValue();\r\n if (name && value) attrs[name] = value;\r\n }\r\n });\r\n traits.length && this.set('attributes', attrs);\r\n this.on(event, this.initTraits);\r\n changed && em && em.trigger('component:toggled');\r\n return this;\r\n }\r\n\r\n initScriptProps() {\r\n if (this.opt.temporary) return;\r\n const prop = 'script-props';\r\n const toListen = [`change:${prop}`, this.initScriptProps];\r\n this.off(...toListen);\r\n const prevProps = this.previous(prop) || [];\r\n const newProps = this.get(prop) || [];\r\n const prevPropsEv = prevProps.map(e => `change:${e}`).join(' ');\r\n const newPropsEv = newProps.map(e => `change:${e}`).join(' ');\r\n prevPropsEv && this.off(prevPropsEv, this.__scriptPropsChange);\r\n newPropsEv && this.on(newPropsEv, this.__scriptPropsChange);\r\n this.on(...toListen);\r\n }\r\n\r\n __scriptPropsChange(m, v, opts = {}) {\r\n if (opts.avoidStore) return;\r\n this.trigger('rerender');\r\n }\r\n\r\n /**\r\n * Add new component children\r\n * @param {Component|String} components Component to add\r\n * @param {Object} [opts={}] Options for the append action\r\n * @return {Array} Array of appended components\r\n * @example\r\n * someComponent.get('components').length // -> 0\r\n * const videoComponent = someComponent.append('
')[0];\r\n * // This will add 2 components (`video` and `div`) to your `someComponent`\r\n * someComponent.get('components').length // -> 2\r\n * // You can pass components directly\r\n * otherComponent.append(otherComponent2);\r\n * otherComponent.append([otherComponent3, otherComponent4]);\r\n * // append at specific index (eg. at the beginning)\r\n * someComponent.append(otherComponent, { at: 0 });\r\n */\r\n append(components, opts = {}) {\r\n const compArr = isArray(components) ? components : [components];\r\n const toAppend = compArr.map(comp => {\r\n if (isString(comp)) {\r\n return comp;\r\n } else {\r\n // I have to remove components from the old container before adding them to a new one\r\n comp.collection && comp.collection.remove(comp, { temporary: 1 });\r\n return comp;\r\n }\r\n });\r\n const result = this.components().add(toAppend, opts);\r\n return isArray(result) ? result : [result];\r\n }\r\n\r\n /**\r\n * Set new collection if `components` are provided, otherwise the\r\n * current collection is returned\r\n * @param {Component|String} [components] Component Definitions or HTML string\r\n * @param {Object} [opts={}] Options, same as in `Component.append()`\r\n * @returns {Collection|Array<[Component]>}\r\n * @example\r\n * // Set new collection\r\n * component.components('
');\r\n * // Get current collection\r\n * const collection = component.components();\r\n * console.log(collection.length);\r\n * // -> 2\r\n */\r\n components(components, opts = {}) {\r\n const coll = this.get('components');\r\n\r\n if (isUndefined(components)) {\r\n return coll;\r\n } else {\r\n coll.reset(null, opts);\r\n return components ? this.append(components, opts) : [];\r\n }\r\n }\r\n\r\n /**\r\n * If exists, returns the child component at specific index.\r\n * @param {Number} index Index of the component to return\r\n * @returns {[Component]|null}\r\n * @example\r\n * // Return first child\r\n * component.getChildAt(0);\r\n * // Return second child\r\n * component.getChildAt(1);\r\n */\r\n getChildAt(index) {\r\n return this.components().at(index || 0) || null;\r\n }\r\n\r\n /**\r\n * If exists, returns the last child component.\r\n * @returns {[Component]|null}\r\n * @example\r\n * const lastChild = component.getLastChild();\r\n */\r\n getLastChild() {\r\n const children = this.components();\r\n return children.at(children.length - 1) || null;\r\n }\r\n\r\n /**\r\n * Remove all inner components\r\n * * @return {this}\r\n */\r\n empty(opts = {}) {\r\n this.components().reset(null, opts);\r\n return this;\r\n }\r\n\r\n /**\r\n * Get the parent component, if exists\r\n * @return {Component|null}\r\n * @example\r\n * component.parent();\r\n * // -> Component\r\n */\r\n parent(opts = {}) {\r\n const coll = this.collection || (opts.prev && this.prevColl);\r\n return coll ? coll.parent : null;\r\n }\r\n\r\n /**\r\n * Script updated\r\n * @private\r\n */\r\n scriptUpdated() {\r\n this.set('scriptUpdated', 1);\r\n }\r\n\r\n /**\r\n * Init toolbar\r\n * @private\r\n */\r\n initToolbar() {\r\n const { em } = this;\r\n const model = this;\r\n const ppfx = (em && em.getConfig('stylePrefix')) || '';\r\n\r\n if (!model.get('toolbar') && em) {\r\n const tb = [];\r\n model.collection &&\r\n tb.push({\r\n label: em.getIcon('arrowUp'),\r\n command: ed => ed.runCommand('core:component-exit', { force: 1 }),\r\n });\r\n model.get('draggable') &&\r\n tb.push({\r\n attributes: { class: `${ppfx}no-touch-actions`, draggable: true },\r\n label: em.getIcon('move'),\r\n command: 'tlb-move',\r\n });\r\n model.get('copyable') &&\r\n tb.push({\r\n label: em.getIcon('copy'),\r\n command: 'tlb-clone',\r\n });\r\n model.get('removable') &&\r\n tb.push({\r\n label: em.getIcon('delete'),\r\n command: 'tlb-delete',\r\n });\r\n model.set('toolbar', tb);\r\n }\r\n }\r\n\r\n __loadTraits(tr, opts = {}) {\r\n let traitsI = tr || this.get('traits');\r\n\r\n if (!(traitsI instanceof Traits)) {\r\n traitsI = isFunction(traitsI) ? traitsI(this) : traitsI;\r\n const traits = new Traits([], this.opt);\r\n traits.setTarget(this);\r\n\r\n if (traitsI.length) {\r\n traitsI.forEach(tr => tr.attributes && delete tr.attributes.value);\r\n traits.add(traitsI);\r\n }\r\n\r\n this.set({ traits }, opts);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get traits.\r\n * @returns {Array}\r\n * @example\r\n * const traits = component.getTraits();\r\n * console.log(traits);\r\n * // [Trait, Trait, Trait, ...]\r\n */\r\n getTraits() {\r\n this.__loadTraits();\r\n return [...this.get('traits').models];\r\n }\r\n\r\n /**\r\n * Replace current collection of traits with a new one.\r\n * @param {Array} traits Array of trait definitions\r\n * @returns {Array}\r\n * @example\r\n * const traits = component.setTraits([{ type: 'checkbox', name: 'disabled'}, ...]);\r\n * console.log(traits);\r\n * // [Trait, ...]\r\n */\r\n setTraits(traits) {\r\n const tr = isArray(traits) ? traits : [traits];\r\n this.set({ traits: tr });\r\n return this.getTraits();\r\n }\r\n\r\n /**\r\n * Get the trait by id/name.\r\n * @param {String} id The `id` or `name` of the trait\r\n * @return {Trait|null} Trait getModelToStyle\r\n * @example\r\n * const traitTitle = component.getTrait('title');\r\n * traitTitle && traitTitle.set('label', 'New label');\r\n */\r\n getTrait(id) {\r\n return (\r\n this.getTraits().filter(trait => {\r\n return trait.get('id') === id || trait.get('name') === id;\r\n })[0] || null\r\n );\r\n }\r\n\r\n /**\r\n * Update a trait.\r\n * @param {String} id The `id` or `name` of the trait\r\n * @param {Object} props Object with the props to update\r\n * @return {this}\r\n * @example\r\n * component.updateTrait('title', {\r\n * type: 'select',\r\n * options: [ 'Option 1', 'Option 2' ],\r\n * });\r\n */\r\n updateTrait(id, props) {\r\n const trait = this.getTrait(id);\r\n trait && trait.set(props);\r\n this.em?.trigger('component:toggled');\r\n return this;\r\n }\r\n\r\n /**\r\n * Get the trait position index by id/name. Useful in case you want to\r\n * replace some trait, at runtime, with something else.\r\n * @param {String} id The `id` or `name` of the trait\r\n * @return {Number} Index position of the current trait\r\n * @example\r\n * const traitTitle = component.getTraitIndex('title');\r\n * console.log(traitTitle); // 1\r\n */\r\n getTraitIndex(id) {\r\n const trait = this.getTrait(id);\r\n return trait ? this.get('traits').indexOf(trait) : -1;\r\n }\r\n\r\n /**\r\n * Remove trait/s by id/s.\r\n * @param {String|Array} id The `id`/`name` of the trait (or an array)\r\n * @return {Array} Array of removed traits\r\n * @example\r\n * component.removeTrait('title');\r\n * component.removeTrait(['title', 'id']);\r\n */\r\n removeTrait(id) {\r\n const ids = isArray(id) ? id : [id];\r\n const toRemove = ids.map(id => this.getTrait(id));\r\n const traits = this.get('traits');\r\n const removed = toRemove.length ? traits.remove(toRemove) : [];\r\n this.em?.trigger('component:toggled');\r\n return isArray(removed) ? removed : [removed];\r\n }\r\n\r\n /**\r\n * Add new trait/s.\r\n * @param {String|Object|Array} trait Trait to add (or an array of traits)\r\n * @param {Options} opts Options for the add\r\n * @return {Array} Array of added traits\r\n * @example\r\n * component.addTrait('title', { at: 1 }); // Add title trait (`at` option is the position index)\r\n * component.addTrait({\r\n * type: 'checkbox',\r\n * name: 'disabled',\r\n * });\r\n * component.addTrait(['title', {...}, ...]);\r\n */\r\n addTrait(trait, opts = {}) {\r\n this.__loadTraits();\r\n const added = this.get('traits').add(trait, opts);\r\n this.em?.trigger('component:toggled');\r\n return isArray(added) ? added : [added];\r\n }\r\n\r\n /**\r\n * Normalize input classes from array to array of objects\r\n * @param {Array} arr\r\n * @return {Array}\r\n * @private\r\n */\r\n normalizeClasses(arr) {\r\n const res = [];\r\n const { em } = this;\r\n const clm = em && em.get('SelectorManager');\r\n if (!clm) return;\r\n if (arr.models) return [...arr.models];\r\n arr.forEach(val => res.push(clm.add(val)));\r\n return res;\r\n }\r\n\r\n /**\r\n * Override original clone method\r\n * @private\r\n */\r\n clone(opt = {}) {\r\n const em = this.em;\r\n const attr = { ...this.attributes };\r\n const opts = { ...this.opt };\r\n const id = this.getId();\r\n const cssc = em && em.get('CssComposer');\r\n attr.attributes = { ...attr.attributes };\r\n delete attr.attributes.id;\r\n attr.components = [];\r\n attr.classes = [];\r\n attr.traits = [];\r\n\r\n if (this.__isSymbolTop()) {\r\n opt.symbol = 1;\r\n }\r\n\r\n this.get('components').each((md, i) => {\r\n attr.components[i] = md.clone({ ...opt, _inner: 1 });\r\n });\r\n this.get('traits').each((md, i) => {\r\n attr.traits[i] = md.clone();\r\n });\r\n this.get('classes').each((md, i) => {\r\n attr.classes[i] = md.get('name');\r\n });\r\n\r\n attr.status = '';\r\n opts.collection = null;\r\n\r\n const cloned = new this.constructor(attr, opts);\r\n\r\n // Clone component specific rules\r\n const newId = `#${cloned.getId()}`;\r\n const rulesToClone = cssc ? cssc.getRules(`#${id}`) : [];\r\n rulesToClone.forEach(rule => {\r\n const newRule = rule.clone();\r\n newRule.set('selectors', [newId]);\r\n cssc.getAll().add(newRule);\r\n });\r\n\r\n // Symbols\r\n // If I clone an inner symbol, I have to reset it\r\n cloned.set(keySymbols, 0);\r\n const symbol = this.__getSymbol();\r\n const symbols = this.__getSymbols();\r\n\r\n if (!opt.symbol && (symbol || symbols)) {\r\n cloned.set(keySymbol, 0);\r\n cloned.set(keySymbols, 0);\r\n } else if (symbol) {\r\n // Contains already a reference to a symbol\r\n symbol.set(keySymbols, [...symbol.__getSymbols(), cloned]);\r\n cloned.__initSymb();\r\n } else if (opt.symbol) {\r\n // Request to create a symbol\r\n if (this.__isSymbol()) {\r\n // Already a symbol, cloned should be an instance\r\n this.set(keySymbols, [...symbols, cloned]);\r\n cloned.set(keySymbol, this);\r\n cloned.__initSymb();\r\n } else if (opt.symbolInv) {\r\n // Inverted, cloned is the instance, the origin is the main symbol\r\n this.set(keySymbols, [cloned]);\r\n cloned.set(keySymbol, this);\r\n [this, cloned].map(i => i.__initSymb());\r\n } else {\r\n // Cloned becomes the main symbol\r\n cloned.set(keySymbols, [this]);\r\n [this, cloned].map(i => i.__initSymb());\r\n this.set(keySymbol, cloned);\r\n }\r\n }\r\n\r\n const event = 'component:clone';\r\n em && em.trigger(event, cloned);\r\n this.trigger(event, cloned);\r\n\r\n return cloned;\r\n }\r\n\r\n /**\r\n * Get the name of the component\r\n * @return {String}\r\n * */\r\n getName() {\r\n const { em } = this;\r\n const { type, tagName, name } = this.attributes;\r\n const defName = type || tagName;\r\n const nameTag = !type && tagName;\r\n const i18nPfx = 'domComponents.names.';\r\n const i18nName = name && em?.t(`${i18nPfx}${name}`);\r\n const i18nNameTag = nameTag && em?.t(`${i18nPfx}${nameTag}`);\r\n const i18nDefName = em && (em.t(`${i18nPfx}${type}`) || em.t(`${i18nPfx}${tagName}`));\r\n return (\r\n this.get('custom-name') || // Used in Layers (when the user changes the name)\r\n i18nName || // Use local component `name` key (eg. `domComponents.names.myComponentName`)\r\n name || // Use component `name` key\r\n i18nNameTag || // Use local component `tagName` key (eg. `domComponents.names.div`)\r\n capitalize(nameTag) || // Use component `tagName` key\r\n i18nDefName || // Use local component `type` key (eg. `domComponents.names.image`)\r\n capitalize(defName) // Use component `type` key\r\n );\r\n }\r\n\r\n /**\r\n * Get the icon string\r\n * @return {String}\r\n */\r\n getIcon() {\r\n let icon = this.get('icon');\r\n return icon ? icon + ' ' : '';\r\n }\r\n\r\n /**\r\n * Return HTML string of the component\r\n * @param {Object} [opts={}] Options\r\n * @param {String} [opts.tag] Custom tagName\r\n * @param {Object|Function} [opts.attributes=null] You can pass an object of custom attributes to replace with the current ones or you can even pass a function to generate attributes dynamically.\r\n * @param {Boolean} [opts.withProps] Include component properties as `data-gjs-*` attributes. This allows you to have re-importable HTML.\r\n * @param {Boolean} [opts.altQuoteAttr] In case the attribute value contains a `\"` char, instead of escaping it (`attr=\"value "\"`), the attribute will be quoted using single quotes (`attr='value \"'`).\r\n * @return {String} HTML string\r\n * @example\r\n * // Simple HTML return\r\n * component.set({ tagName: 'span' });\r\n * component.setAttributes({ title: 'Hello' });\r\n * component.toHTML();\r\n * // -> \r\n *\r\n * // Custom attributes\r\n * component.toHTML({ attributes: { 'data-test': 'Hello' } });\r\n * // -> \r\n *\r\n * // Custom dynamic attributes\r\n * component.toHTML({\r\n * attributes(component, attributes) {\r\n * if (component.get('tagName') == 'span') {\r\n * attributes.title = 'Custom attribute';\r\n * }\r\n * return attributes;\r\n * },\r\n * });\r\n * // -> \r\n */\r\n toHTML(opts = {}) {\r\n const model = this;\r\n const attrs = [];\r\n const customTag = opts.tag;\r\n const tag = customTag || model.get('tagName');\r\n const sTag = model.get('void');\r\n const customAttr = opts.attributes;\r\n let attributes = this.getAttrToHTML();\r\n delete opts.tag;\r\n\r\n // Get custom attributes if requested\r\n if (customAttr) {\r\n if (isFunction(customAttr)) {\r\n attributes = customAttr(model, attributes) || {};\r\n } else if (isObject(customAttr)) {\r\n attributes = customAttr;\r\n }\r\n }\r\n\r\n if (opts.withProps) {\r\n const props = this.toJSON();\r\n\r\n forEach(props, (value, key) => {\r\n const skipProps = ['classes', 'attributes', 'components'];\r\n if (key[0] !== '_' && skipProps.indexOf(key) < 0) {\r\n attributes[`data-gjs-${key}`] = isArray(value) || isObject(value) ? JSON.stringify(value) : value;\r\n }\r\n });\r\n }\r\n\r\n for (let attr in attributes) {\r\n const val = attributes[attr];\r\n\r\n if (!isUndefined(val) && val !== null) {\r\n if (isBoolean(val)) {\r\n val && attrs.push(attr);\r\n } else {\r\n let valueRes = '';\r\n if (opts.altQuoteAttr && isString(val) && val.indexOf('\"') >= 0) {\r\n valueRes = `'${val.replace(/'/g, ''')}'`;\r\n } else {\r\n const value = isString(val) ? val.replace(/\"/g, '"') : val;\r\n valueRes = `\"${value}\"`;\r\n }\r\n\r\n attrs.push(`${attr}=${valueRes}`);\r\n }\r\n }\r\n }\r\n\r\n const attrString = attrs.length ? ` ${attrs.join(' ')}` : '';\r\n const inner = model.getInnerHTML(opts);\r\n let code = `<${tag}${attrString}${sTag ? '/' : ''}>${inner}`;\r\n !sTag && (code += ``);\r\n\r\n return code;\r\n }\r\n\r\n /**\r\n * Get inner HTML of the component\r\n * @param {Object} [opts={}] Same options of `toHTML`\r\n * @returns {String} HTML string\r\n */\r\n getInnerHTML(opts) {\r\n return this.__innerHTML(opts);\r\n }\r\n\r\n __innerHTML(opts = {}) {\r\n const cmps = this.components();\r\n return !cmps.length ? this.get('content') : cmps.map(c => c.toHTML(opts)).join('');\r\n }\r\n\r\n /**\r\n * Returns object of attributes for HTML\r\n * @return {Object}\r\n * @private\r\n */\r\n getAttrToHTML() {\r\n var attr = this.getAttributes();\r\n delete attr.style;\r\n return attr;\r\n }\r\n\r\n /**\r\n * Return a shallow copy of the model's attributes for JSON\r\n * stringification.\r\n * @return {Object}\r\n * @private\r\n */\r\n toJSON(opts = {}) {\r\n const obj = Model.prototype.toJSON.call(this, opts);\r\n obj.attributes = this.getAttributes();\r\n delete obj.attributes.class;\r\n delete obj.toolbar;\r\n delete obj.traits;\r\n delete obj.status;\r\n delete obj.open; // used in Layers\r\n\r\n if (!opts.fromUndo) {\r\n const symbol = obj[keySymbol];\r\n const symbols = obj[keySymbols];\r\n if (symbols && isArray(symbols)) {\r\n obj[keySymbols] = symbols.filter(i => i).map(i => (i.getId ? i.getId() : i));\r\n }\r\n if (symbol && !isString(symbol)) {\r\n obj[keySymbol] = symbol.getId();\r\n }\r\n }\r\n\r\n if (this.em.getConfig('avoidDefaults')) {\r\n this.getChangedProps(obj);\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n /**\r\n * Return an object containing only changed props\r\n */\r\n getChangedProps(res) {\r\n const obj = res || Model.prototype.toJSON.apply(this);\r\n const defaults = result(this, 'defaults');\r\n\r\n forEach(defaults, (value, key) => {\r\n if (['type'].indexOf(key) === -1 && obj[key] === value) {\r\n delete obj[key];\r\n }\r\n });\r\n\r\n if (isEmpty(obj.type)) {\r\n delete obj.type;\r\n }\r\n\r\n forEach(['attributes', 'style'], prop => {\r\n if (isEmpty(defaults[prop]) && isEmpty(obj[prop])) {\r\n delete obj[prop];\r\n }\r\n });\r\n\r\n forEach(['classes', 'components'], prop => {\r\n if (!obj[prop] || (isEmpty(defaults[prop]) && !obj[prop].length)) {\r\n delete obj[prop];\r\n }\r\n });\r\n\r\n return obj;\r\n }\r\n\r\n /**\r\n * Return the component id\r\n * @return {String}\r\n */\r\n getId() {\r\n let attrs = this.get('attributes') || {};\r\n return attrs.id || this.ccid || this.cid;\r\n }\r\n\r\n /**\r\n * Set new id on the component\r\n * @param {String} id\r\n * @return {this}\r\n */\r\n setId(id, opts) {\r\n const attrs = { ...this.get('attributes') };\r\n attrs.id = id;\r\n this.set('attributes', attrs, opts);\r\n return this;\r\n }\r\n\r\n /**\r\n * Get the DOM element of the component.\r\n * This works only if the component is already rendered\r\n * @param {Frame} frame Specific frame from which taking the element\r\n * @return {HTMLElement}\r\n */\r\n getEl(frame) {\r\n const view = this.getView(frame);\r\n return view && view.el;\r\n }\r\n\r\n /**\r\n * Get the View of the component.\r\n * This works only if the component is already rendered\r\n * @param {Frame} frame Get View of a specific frame\r\n * @return {ComponentView}\r\n */\r\n getView(frame) {\r\n let { view, views } = this;\r\n\r\n if (frame) {\r\n view = views.filter(view => view._getFrame() === frame.view)[0];\r\n }\r\n\r\n return view;\r\n }\r\n\r\n getCurrentView() {\r\n const frame = (this.em.get('currentFrame') || {}).model;\r\n return this.getView(frame);\r\n }\r\n\r\n __getScriptProps() {\r\n const modelProps = this.props();\r\n const scrProps = this.get('script-props') || [];\r\n return scrProps.reduce((acc, prop) => {\r\n acc[prop] = modelProps[prop];\r\n return acc;\r\n }, {});\r\n }\r\n\r\n /**\r\n * Return script in string format, cleans 'function() {..' from scripts\r\n * if it's a function\r\n * @param {string|Function} script\r\n * @return {string}\r\n * @private\r\n */\r\n getScriptString(script) {\r\n let scr = script || this.get('script');\r\n\r\n if (!scr) {\r\n return scr;\r\n }\r\n\r\n if (this.get('script-props')) {\r\n scr = scr.toString().trim();\r\n } else {\r\n // Deprecated\r\n // Need to convert script functions to strings\r\n if (typeof scr == 'function') {\r\n var scrStr = scr.toString().trim();\r\n scrStr = scrStr.replace(/^function[\\s\\w]*\\(\\)\\s?\\{/, '').replace(/\\}$/, '');\r\n scr = scrStr.trim();\r\n }\r\n\r\n var config = this.em.getConfig();\r\n var tagVarStart = escapeRegExp(config.tagVarStart || '{[ ');\r\n var tagVarEnd = escapeRegExp(config.tagVarEnd || ' ]}');\r\n var reg = new RegExp(`${tagVarStart}([\\\\w\\\\d-]*)${tagVarEnd}`, 'g');\r\n scr = scr.replace(reg, (match, v) => {\r\n // If at least one match is found I have to track this change for a\r\n // better optimization inside JS generator\r\n this.scriptUpdated();\r\n const result = this.attributes[v] || '';\r\n return isArray(result) || typeof result == 'object' ? JSON.stringify(result) : result;\r\n });\r\n }\r\n return scr;\r\n }\r\n\r\n emitUpdate(property, ...args) {\r\n const { em } = this;\r\n const event = keyUpdate + (property ? `:${property}` : '');\r\n const item = property && this.get(property);\r\n property && this.updated(property, item, property && this.previous(property), ...args);\r\n this.trigger(event, ...args);\r\n em && em.trigger(event, this, ...args);\r\n ['components', 'classes'].indexOf(property) >= 0 &&\r\n this.__propSelfToParent({\r\n component: this,\r\n changed: { [property]: item },\r\n options: args[2] || args[1] || {},\r\n });\r\n }\r\n\r\n /**\r\n * Execute callback function on itself and all inner components\r\n * @param {Function} clb Callback function, the model is passed as an argument\r\n * @return {this}\r\n * @example\r\n * component.onAll(component => {\r\n * // do something with component\r\n * })\r\n */\r\n onAll(clb) {\r\n if (isFunction(clb)) {\r\n clb(this);\r\n this.components().forEach(model => model.onAll(clb));\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove the component\r\n * @return {this}\r\n */\r\n remove(opts = {}) {\r\n const { em } = this;\r\n const coll = this.collection;\r\n const remove = () => {\r\n coll && coll.remove(this, { ...opts, action: 'remove-component' });\r\n // Component without parent\r\n if (!coll) {\r\n this.components('', opts);\r\n this.components().removeChildren(this, null, opts);\r\n }\r\n };\r\n const rmOpts = { ...opts };\r\n [this, em].map(i => i.trigger('component:remove:before', this, remove, rmOpts));\r\n !rmOpts.abort && remove();\r\n return this;\r\n }\r\n\r\n /**\r\n * Move the component to another destination component\r\n * @param {Component} component Destination component (so the current one will be appended as a child)\r\n * @param {Object} opts Options for the append action\r\n * @returns {this}\r\n * @example\r\n * // Move the selected component on top of the wrapper\r\n * const dest = editor.getWrapper();\r\n * editor.getSelected().move(dest, { at: 0 });\r\n */\r\n move(component, opts = {}) {\r\n this.remove({ temporary: 1 });\r\n component && component.append(this, opts);\r\n return this;\r\n }\r\n\r\n /**\r\n * Check if the component is an instance of some component type.\r\n * @param {String} type Component type\r\n * @returns {Boolean}\r\n * @example\r\n * // Add a new component type by extending an existing one\r\n * editor.Components.addType('text-ext', { extend: 'text' });\r\n * // Append a new component somewhere\r\n * const newTextExt = editor.getSelected().append({ type: 'text-ext' })[0];\r\n * newTextExt.isInstanceOf('text-ext'); // true\r\n * newTextExt.isInstanceOf('text'); // true\r\n */\r\n isInstanceOf(type) {\r\n const cmp = this.em?.get('DomComponents').getType(type)?.model;\r\n\r\n if (!cmp) return false;\r\n\r\n return this instanceof cmp;\r\n }\r\n\r\n /**\r\n * Check if the component is a child of some other component (or component type)\r\n * @param {[Component]|String} component Component parent to check. In case a string is passed,\r\n * the check will be performed on the component type.\r\n * @returns {Boolean}\r\n * @example\r\n * const newTextComponent = editor.getSelected().append({\r\n * type: 'text',\r\n * components: 'My text here',\r\n * })[0];\r\n * const innerComponent = newTextComponent.find('b')[0];\r\n * innerComponent.isChildOf(newTextComponent); // true\r\n * innerComponent.isChildOf('text'); // true\r\n */\r\n isChildOf(component) {\r\n const byType = isString(component);\r\n let parent = this.parent();\r\n\r\n while (parent) {\r\n if (byType) {\r\n if (parent.isInstanceOf(component)) {\r\n return true;\r\n }\r\n } else {\r\n if (parent === component) {\r\n return true;\r\n }\r\n }\r\n\r\n parent = parent.parent();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Reset id of the component and any of its style rule\r\n * @param {Object} [opts={}] Options\r\n * @return {this}\r\n * @private\r\n */\r\n resetId(opts = {}) {\r\n const { em } = this;\r\n const oldId = this.getId();\r\n if (!oldId) return;\r\n const newId = Component.createId(this);\r\n this.setId(newId);\r\n const rule = em && em.get('CssComposer').getIdRule(oldId);\r\n const selector = rule && rule.get('selectors').at(0);\r\n selector && selector.set('name', newId);\r\n return this;\r\n }\r\n\r\n _getStyleRule({ id } = {}) {\r\n const { em } = this;\r\n const idS = id || this.getId();\r\n return em && em.get('CssComposer').getIdRule(idS);\r\n }\r\n\r\n _getStyleSelector(opts) {\r\n const rule = this._getStyleRule(opts);\r\n return rule && rule.get('selectors').at(0);\r\n }\r\n\r\n _idUpdated(m, v, opts = {}) {\r\n if (opts.idUpdate) return;\r\n\r\n const { ccid } = this;\r\n const { id } = this.get('attributes') || {};\r\n const idPrev = (this.previous('attributes') || {}).id || ccid;\r\n const list = Component.getList(this);\r\n\r\n // If the ID already exists I need to rollback to the old one\r\n if (list[id] || (!id && idPrev)) {\r\n return this.setId(idPrev, { idUpdate: 1 });\r\n }\r\n\r\n // Remove the old ID reference and add the new one\r\n delete list[idPrev];\r\n list[id] = this;\r\n this.ccid = id;\r\n\r\n // Update the style selector name\r\n const selector = this._getStyleSelector({ id: idPrev });\r\n selector && selector.set({ name: id, label: id });\r\n }\r\n}\r\n\r\n/**\r\n * Detect if the passed element is a valid component.\r\n * In case the element is valid an object abstracted\r\n * from the element will be returned\r\n * @param {HTMLElement}\r\n * @return {Object}\r\n * @private\r\n */\r\nComponent.isComponent = el => {\r\n return { tagName: toLowerCase(el.tagName) };\r\n};\r\n\r\nComponent.ensureInList = model => {\r\n const list = Component.getList(model);\r\n const id = model.getId();\r\n const current = list[id];\r\n\r\n if (!current) {\r\n // Insert in list\r\n list[id] = model;\r\n } else if (current !== model) {\r\n // Create new ID\r\n const nextId = Component.getIncrementId(id, list);\r\n model.setId(nextId);\r\n list[nextId] = model;\r\n }\r\n\r\n model.components().forEach(i => Component.ensureInList(i));\r\n};\r\n\r\n/**\r\n * Relying simply on the number of components becomes a problem when you\r\n * store and load them back, you might hit collisions with new components\r\n * @param {Model} model\r\n * @return {string}\r\n * @private\r\n */\r\nComponent.createId = (model, opts = {}) => {\r\n const list = Component.getList(model);\r\n const { idMap = {} } = opts;\r\n let { id } = model.get('attributes');\r\n let nextId;\r\n\r\n if (id) {\r\n nextId = Component.getIncrementId(id, list, opts);\r\n model.setId(nextId);\r\n if (id !== nextId) idMap[id] = nextId;\r\n } else {\r\n nextId = Component.getNewId(list);\r\n }\r\n\r\n list[nextId] = model;\r\n return nextId;\r\n};\r\n\r\nComponent.getNewId = list => {\r\n const count = Object.keys(list).length;\r\n // Testing 1000000 components with `+ 2` returns 0 collisions\r\n const ilen = count.toString().length + 2;\r\n const uid = (Math.random() + 1.1).toString(36).slice(-ilen);\r\n let newId = `i${uid}`;\r\n\r\n while (list[newId]) {\r\n newId = Component.getNewId(list);\r\n }\r\n\r\n return newId;\r\n};\r\n\r\nComponent.getIncrementId = (id, list, opts = {}) => {\r\n const { keepIds = [] } = opts;\r\n let counter = 1;\r\n let newId = id;\r\n\r\n if (keepIds.indexOf(id) < 0) {\r\n while (list[newId]) {\r\n counter++;\r\n newId = `${id}-${counter}`;\r\n }\r\n }\r\n\r\n return newId;\r\n};\r\n\r\n/**\r\n * The list of components is taken from the Components module.\r\n * Initially, the list, was set statically on the Component object but it was\r\n * not ok, as it was shared between multiple editor instances\r\n * @private\r\n */\r\nComponent.getList = model => {\r\n const { opt = {} } = model;\r\n const { domc, em } = opt;\r\n const dm = domc || (em && em.get('DomComponents'));\r\n return dm ? dm.componentsById : {};\r\n};\r\n\r\n/**\r\n * This method checks, for each parsed component and style object\r\n * (are not Components/CSSRules yet), for duplicated id and fixes them\r\n * This method is used in Components.js just after the parsing\r\n * @private\r\n */\r\nComponent.checkId = (components, styles = [], list = {}, opts = {}) => {\r\n const comps = isArray(components) ? components : [components];\r\n const { keepIds = [] } = opts;\r\n comps.forEach(comp => {\r\n const { attributes = {}, components } = comp;\r\n const { id } = attributes;\r\n\r\n // Check if we have collisions with current components\r\n if (id && list[id] && keepIds.indexOf(id) < 0) {\r\n const newId = Component.getIncrementId(id, list);\r\n attributes.id = newId;\r\n // Update passed styles\r\n isArray(styles) &&\r\n styles.forEach(style => {\r\n const { selectors } = style;\r\n selectors.forEach((sel, idx) => {\r\n if (sel === `#${id}`) selectors[idx] = `#${newId}`;\r\n });\r\n });\r\n }\r\n\r\n components && Component.checkId(components, styles, list, opts);\r\n });\r\n};\r\n\r\nComponent.getDefaults = function () {\r\n return result(this.prototype, 'defaults');\r\n};\r\n\r\nComponent.prototype.defaults = {\r\n tagName: 'div',\r\n type: '',\r\n name: '',\r\n removable: true,\r\n draggable: true,\r\n droppable: true,\r\n badgable: true,\r\n stylable: true,\r\n 'stylable-require': '',\r\n 'style-signature': '',\r\n unstylable: '',\r\n highlightable: true,\r\n copyable: true,\r\n resizable: false,\r\n editable: false,\r\n layerable: true,\r\n selectable: true,\r\n hoverable: true,\r\n void: false,\r\n state: '', // Indicates if the component is in some CSS state like ':hover', ':active', etc.\r\n status: '', // State, eg. 'selected'\r\n content: '',\r\n icon: '',\r\n style: '',\r\n styles: '', // Component related styles\r\n classes: '', // Array of classes\r\n script: '',\r\n 'script-props': '',\r\n 'script-export': '',\r\n attributes: '',\r\n traits: ['id', 'title'],\r\n propagate: '',\r\n dmode: '',\r\n toolbar: null,\r\n [keySymbol]: 0,\r\n [keySymbols]: 0,\r\n [keySymbolOvrd]: 0,\r\n _undo: true,\r\n _undoexc: ['status', 'open'],\r\n};\r\n","import Backbone from 'backbone';\r\nimport { isEmpty, isArray, isString, isFunction, each, includes, extend, flatten, debounce } from 'underscore';\r\nimport Component, { keySymbol, keySymbols } from './Component';\r\n\r\nexport const getComponentIds = (cmp, res = []) => {\r\n if (!cmp) return [];\r\n const cmps = isArray(cmp) || isFunction(cmp.map) ? cmp : [cmp];\r\n cmps.map(cmp => {\r\n res.push(cmp.getId());\r\n getComponentIds(cmp.components().models, res);\r\n });\r\n return res;\r\n};\r\n\r\nconst getComponentsFromDefs = (items, all = {}, opts = {}) => {\r\n const itms = isArray(items) ? items : [items];\r\n\r\n return itms.map(item => {\r\n const { attributes = {}, components, tagName } = item;\r\n const { id } = attributes;\r\n let result = item;\r\n\r\n if (id && all[id]) {\r\n result = all[id];\r\n tagName && result.set({ tagName }, { ...opts, silent: true });\r\n }\r\n\r\n if (components) {\r\n const newComponents = getComponentsFromDefs(components, all);\r\n\r\n if (isFunction(result.components)) {\r\n const cmps = result.components();\r\n cmps.length > 0 && cmps.reset(newComponents, opts);\r\n } else {\r\n result.components = newComponents;\r\n }\r\n }\r\n\r\n return result;\r\n });\r\n};\r\n\r\nexport default Backbone.Collection.extend({\r\n initialize(models, opt = {}) {\r\n this.opt = opt;\r\n this.listenTo(this, 'add', this.onAdd);\r\n this.listenTo(this, 'remove', this.removeChildren);\r\n this.listenTo(this, 'reset', this.resetChildren);\r\n const { em, config } = opt;\r\n this.config = config;\r\n this.em = em;\r\n this.domc = opt.domc || (em && em.get('DomComponents'));\r\n },\r\n\r\n resetChildren(models, opts = {}) {\r\n const coll = this;\r\n const prev = opts.previousModels || [];\r\n const toRemove = prev.filter(prev => !models.get(prev.cid));\r\n const newIds = getComponentIds(models);\r\n opts.keepIds = getComponentIds(prev).filter(pr => newIds.indexOf(pr) >= 0);\r\n toRemove.forEach(md => this.removeChildren(md, coll, opts));\r\n models.each(model => this.onAdd(model));\r\n },\r\n\r\n resetFromString(input = '', opts = {}) {\r\n opts.keepIds = getComponentIds(this);\r\n const { domc } = this;\r\n const allByID = domc?.allById() || {};\r\n const parsed = this.parseString(input, opts);\r\n const cmps = isArray(parsed) ? parsed : [parsed];\r\n const newCmps = getComponentsFromDefs(cmps, allByID, opts);\r\n this.reset(newCmps, opts);\r\n this.em?.trigger('component:content', this.parent, opts, input);\r\n },\r\n\r\n removeChildren(removed, coll, opts = {}) {\r\n // Removing a parent component can cause this function\r\n // to be called with an already removed child element\r\n if (!removed) {\r\n return;\r\n }\r\n\r\n const { domc, em } = this;\r\n const isTemp = opts.temporary || opts.fromUndo;\r\n removed.prevColl = this; // This one is required for symbols\r\n\r\n if (!isTemp) {\r\n // Remove the component from the global list\r\n const id = removed.getId();\r\n const sels = em.get('SelectorManager').getAll();\r\n const rules = em.get('CssComposer').getAll();\r\n const canRemoveStyle = (opts.keepIds || []).indexOf(id) < 0;\r\n const allByID = domc ? domc.allById() : {};\r\n delete allByID[id];\r\n\r\n // Remove all component related styles\r\n const rulesRemoved = canRemoveStyle\r\n ? rules.remove(\r\n rules.filter(r => r.getSelectors().getFullString() === `#${id}`),\r\n opts\r\n )\r\n : [];\r\n\r\n // Clean selectors\r\n sels.remove(rulesRemoved.map(rule => rule.getSelectors().at(0)));\r\n\r\n if (!removed.opt.temporary) {\r\n em.get('Commands').run('core:component-style-clear', {\r\n target: removed,\r\n });\r\n removed.removed();\r\n removed.trigger('removed');\r\n em.trigger('component:remove', removed);\r\n }\r\n\r\n const inner = removed.components();\r\n inner.forEach(it => this.removeChildren(it, coll, opts));\r\n }\r\n\r\n // Remove stuff registered in DomComponents.handleChanges\r\n const inner = removed.components();\r\n em.stopListening(inner);\r\n em.stopListening(removed);\r\n em.stopListening(removed.get('classes'));\r\n removed.__postRemove();\r\n },\r\n\r\n model(attrs, options) {\r\n const { opt } = options.collection;\r\n const { em } = opt;\r\n let model;\r\n const df = em.get('DomComponents').componentTypes;\r\n options.em = em;\r\n options.config = opt.config;\r\n options.componentTypes = df;\r\n options.domc = opt.domc;\r\n\r\n for (let it = 0; it < df.length; it++) {\r\n const dfId = df[it].id;\r\n if (dfId == attrs.type) {\r\n model = df[it].model;\r\n break;\r\n }\r\n }\r\n\r\n // If no model found, get the default one\r\n if (!model) {\r\n model = df[df.length - 1].model;\r\n em &&\r\n attrs.type &&\r\n em.logWarning(`Component type '${attrs.type}' not found`, {\r\n attrs,\r\n options,\r\n });\r\n }\r\n\r\n return new model(attrs, options);\r\n },\r\n\r\n parseString(value, opt = {}) {\r\n const { em, domc } = this;\r\n const cssc = em.get('CssComposer');\r\n const parsed = em.get('Parser').parseHtml(value);\r\n // We need this to avoid duplicate IDs\r\n Component.checkId(parsed.html, parsed.css, domc.componentsById, opt);\r\n\r\n if (parsed.css && cssc && !opt.temporary) {\r\n const { at, ...optsToPass } = opt;\r\n cssc.addCollection(parsed.css, {\r\n ...optsToPass,\r\n extend: 1,\r\n });\r\n }\r\n\r\n return parsed.html;\r\n },\r\n\r\n add(models, opt = {}) {\r\n opt.keepIds = [...(opt.keepIds || []), ...getComponentIds(opt.previousModels)];\r\n\r\n if (isString(models)) {\r\n models = this.parseString(models, opt);\r\n } else if (isArray(models)) {\r\n models = [...models];\r\n models.forEach((item, index) => {\r\n if (isString(item)) {\r\n const nodes = this.parseString(item, opt);\r\n models[index] = isArray(nodes) && !nodes.length ? null : nodes;\r\n }\r\n });\r\n }\r\n\r\n const isMult = isArray(models);\r\n models = (isMult ? models : [models]).filter(i => i).map(model => this.processDef(model));\r\n models = isMult ? flatten(models, 1) : models[0];\r\n\r\n const result = Backbone.Collection.prototype.add.apply(this, [models, opt]);\r\n this.__firstAdd = result;\r\n return result;\r\n },\r\n\r\n /**\r\n * Process component definition.\r\n */\r\n processDef(mdl) {\r\n // Avoid processing Models\r\n if (mdl.cid && mdl.ccid) return mdl;\r\n const { em, config = {} } = this;\r\n const { processor } = config;\r\n let model = mdl;\r\n\r\n if (processor) {\r\n model = { ...model }; // Avoid 'Cannot delete property ...'\r\n const modelPr = processor(model);\r\n if (modelPr) {\r\n each(model, (val, key) => delete model[key]);\r\n extend(model, modelPr);\r\n }\r\n }\r\n\r\n // React JSX preset\r\n if (model.$$typeof && typeof model.props == 'object') {\r\n model = { ...model };\r\n model.props = { ...model.props };\r\n const domc = em.get('DomComponents');\r\n const parser = em.get('Parser');\r\n const { parserHtml } = parser;\r\n\r\n each(model, (value, key) => {\r\n if (!includes(['props', 'type'], key)) delete model[key];\r\n });\r\n const { props } = model;\r\n const comps = props.children;\r\n delete props.children;\r\n delete model.props;\r\n const res = parserHtml.splitPropsFromAttr(props);\r\n model.attributes = res.attrs;\r\n\r\n if (comps) {\r\n model.components = comps;\r\n }\r\n if (!model.type) {\r\n model.type = 'textnode';\r\n } else if (!domc.getType(model.type)) {\r\n model.tagName = model.type;\r\n delete model.type;\r\n }\r\n\r\n extend(model, res.props);\r\n }\r\n\r\n return model;\r\n },\r\n\r\n onAdd(model, c, opts = {}) {\r\n const { domc, em } = this;\r\n const style = model.getStyle();\r\n const avoidInline = em && em.getConfig('avoidInlineStyle');\r\n domc && domc.Component.ensureInList(model);\r\n\r\n if (!isEmpty(style) && !avoidInline && em && em.get && em.getConfig('forceClass') && !opts.temporary) {\r\n const name = model.cid;\r\n const rule = em.get('CssComposer').setClassRule(name, style);\r\n model.setStyle({});\r\n model.addClass(name);\r\n }\r\n\r\n model.__postAdd({ recursive: 1 });\r\n this.__onAddEnd();\r\n },\r\n\r\n __onAddEnd: debounce(function () {\r\n // TODO to check symbols on load, probably this might be removed as symbols\r\n // are always recovered from the model\r\n // const { domc } = this;\r\n // const allComp = (domc && domc.allById()) || {};\r\n // const firstAdd = this.__firstAdd;\r\n // const toCheck = isArray(firstAdd) ? firstAdd : [firstAdd];\r\n // const silent = { silent: true };\r\n // const onAll = comps => {\r\n // comps.forEach(comp => {\r\n // const symbol = comp.get(keySymbols);\r\n // const symbolOf = comp.get(keySymbol);\r\n // if (symbol && isArray(symbol) && isString(symbol[0])) {\r\n // comp.set(\r\n // keySymbols,\r\n // symbol.map(smb => allComp[smb]).filter(i => i),\r\n // silent\r\n // );\r\n // }\r\n // if (isString(symbolOf)) {\r\n // comp.set(keySymbol, allComp[symbolOf], silent);\r\n // }\r\n // onAll(comp.components());\r\n // });\r\n // };\r\n // onAll(toCheck);\r\n }),\r\n});\r\n","import Backbone from 'backbone';\r\nimport { isEmpty, each, keys } from 'underscore';\r\nimport Components from '../model/Components';\r\nimport ComponentsView from './ComponentsView';\r\nimport Selectors from 'selector_manager/model/Selectors';\r\nimport { replaceWith } from 'utils/dom';\r\nimport { setViewEl } from 'utils/mixins';\r\n\r\nexport default Backbone.View.extend({\r\n className() {\r\n return this.getClasses();\r\n },\r\n\r\n tagName() {\r\n return this.model.get('tagName');\r\n },\r\n\r\n initialize(opt = {}) {\r\n const model = this.model;\r\n const config = opt.config || {};\r\n const em = config.em;\r\n const modelOpt = model.opt || {};\r\n const { $el, el } = this;\r\n this.opts = opt;\r\n this.modelOpt = modelOpt;\r\n this.config = config;\r\n this.em = em || '';\r\n this.pfx = config.stylePrefix || '';\r\n this.ppfx = config.pStylePrefix || '';\r\n this.attr = model.get('attributes');\r\n this.classe = this.attr.class || [];\r\n this.listenTo(model, 'change:style', this.updateStyle);\r\n this.listenTo(model, 'change:attributes', this.renderAttributes);\r\n this.listenTo(model, 'change:highlightable', this.updateHighlight);\r\n this.listenTo(model, 'change:status', this.updateStatus);\r\n this.listenTo(model, 'change:script rerender', this.reset);\r\n this.listenTo(model, 'change:content', this.updateContent);\r\n this.listenTo(model, 'change', this.handleChange);\r\n this.listenTo(model, 'active', this.onActive);\r\n this.listenTo(model, 'disable', this.onDisable);\r\n $el.data('model', model);\r\n setViewEl(el, this);\r\n model.view = this;\r\n this._getFrame() && model.views.push(this);\r\n this.initClasses();\r\n this.initComponents({ avoidRender: 1 });\r\n this.events = {\r\n ...this.events,\r\n dragstart: 'handleDragStart',\r\n };\r\n this.delegateEvents();\r\n !modelOpt.temporary && this.init(this._clbObj());\r\n },\r\n\r\n __isDraggable() {\r\n const { model, config } = this;\r\n const { draggable } = model.attributes;\r\n return config.draggableComponents && draggable;\r\n },\r\n\r\n _clbObj() {\r\n const { em, model, el } = this;\r\n return {\r\n editor: em && em.getEditor(),\r\n model,\r\n el,\r\n };\r\n },\r\n\r\n /**\r\n * Initialize callback\r\n */\r\n init() {},\r\n\r\n /**\r\n * Remove callback\r\n */\r\n removed() {},\r\n\r\n /**\r\n * Callback executed when the `active` event is triggered on component\r\n */\r\n onActive() {},\r\n\r\n /**\r\n * Callback executed when the `disable` event is triggered on component\r\n */\r\n onDisable() {},\r\n\r\n remove() {\r\n Backbone.View.prototype.remove.apply(this, arguments);\r\n const { model, $el } = this;\r\n const { views } = model;\r\n const frame = this._getFrame() || {};\r\n model.components().forEach(comp => {\r\n const view = comp.getView(frame.model);\r\n view?.remove();\r\n });\r\n this.childrenView?.remove();\r\n views.splice(views.indexOf(this), 1);\r\n this.removed(this._clbObj());\r\n $el.data({ model: '', collection: '', view: '' });\r\n // delete model.view; // Sorter relies on this property\r\n return this;\r\n },\r\n\r\n handleDragStart(event) {\r\n if (!this.__isDraggable()) return false;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.em.get('Commands').run('tlb-move', {\r\n target: this.model,\r\n event,\r\n });\r\n },\r\n\r\n initClasses() {\r\n const { model } = this;\r\n const event = 'change:classes';\r\n const classes = model.get('classes');\r\n\r\n if (classes instanceof Selectors) {\r\n this.stopListening(model, event, this.initClasses);\r\n this.listenTo(model, event, this.initClasses);\r\n this.listenTo(classes, 'add remove change', this.updateClasses);\r\n classes.length && this.importClasses();\r\n }\r\n },\r\n\r\n initComponents(opts = {}) {\r\n const { model, $el, childrenView } = this;\r\n const event = 'change:components';\r\n const comps = model.get('components');\r\n const toListen = [model, event, this.initComponents];\r\n\r\n if (comps instanceof Components) {\r\n $el.data('collection', comps);\r\n childrenView && childrenView.remove();\r\n this.stopListening(...toListen);\r\n !opts.avoidRender && this.renderChildren();\r\n this.listenTo(...toListen);\r\n }\r\n },\r\n\r\n /**\r\n * Handle any property change\r\n * @private\r\n */\r\n handleChange() {\r\n const { model } = this;\r\n const chgArr = keys(model.changed);\r\n if (chgArr.length === 1 && chgArr[0] === 'status') return;\r\n model.emitUpdate();\r\n\r\n for (let prop in model.changed) {\r\n model.emitUpdate(prop);\r\n }\r\n },\r\n\r\n /**\r\n * Import, if possible, classes inside main container\r\n * @private\r\n * */\r\n importClasses() {\r\n var clm = this.config.em.get('SelectorManager');\r\n\r\n if (clm) {\r\n this.model.get('classes').each(m => {\r\n clm.add(m.get('name'));\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Update item on status change\r\n * @param {Event} e\r\n * @private\r\n * */\r\n updateStatus(opts = {}) {\r\n const { em } = this;\r\n const { extHl } = em ? em.get('Canvas').getConfig() : {};\r\n const el = this.el;\r\n const status = this.model.get('status');\r\n const ppfx = this.ppfx;\r\n const selectedCls = `${ppfx}selected`;\r\n const selectedParentCls = `${selectedCls}-parent`;\r\n const freezedCls = `${ppfx}freezed`;\r\n const hoveredCls = `${ppfx}hovered`;\r\n const toRemove = [selectedCls, selectedParentCls, freezedCls, hoveredCls];\r\n const selCls = extHl && !opts.noExtHl ? '' : selectedCls;\r\n this.$el.removeClass(toRemove.join(' '));\r\n var actualCls = el.getAttribute('class') || '';\r\n var cls = '';\r\n\r\n switch (status) {\r\n case 'selected':\r\n cls = `${actualCls} ${selCls}`;\r\n break;\r\n case 'selected-parent':\r\n cls = `${actualCls} ${selectedParentCls}`;\r\n break;\r\n case 'freezed':\r\n cls = `${actualCls} ${freezedCls}`;\r\n break;\r\n case 'freezed-selected':\r\n cls = `${actualCls} ${freezedCls} ${selCls}`;\r\n break;\r\n case 'hovered':\r\n cls = !opts.avoidHover ? `${actualCls} ${hoveredCls}` : '';\r\n break;\r\n }\r\n\r\n cls = cls.trim();\r\n cls && el.setAttribute('class', cls);\r\n },\r\n\r\n /**\r\n * Update highlight attribute\r\n * @private\r\n * */\r\n updateHighlight() {\r\n const { model } = this;\r\n const isTextable = model.get('textable');\r\n const hl = model.get('highlightable') && (isTextable || !model.isChildOf('text'));\r\n this.setAttribute('data-gjs-highlightable', hl ? true : '');\r\n },\r\n\r\n /**\r\n * Update style attribute\r\n * @private\r\n * */\r\n updateStyle(m, v, opts = {}) {\r\n const { model, em } = this;\r\n\r\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\r\n const style = model.getStyle();\r\n !isEmpty(style) && model.setStyle(style);\r\n } else {\r\n this.setAttribute('style', model.styleToString(opts));\r\n }\r\n },\r\n\r\n /**\r\n * Update classe attribute\r\n * @private\r\n * */\r\n updateClasses() {\r\n const str = this.model.get('classes').pluck('name').join(' ');\r\n this.setAttribute('class', str);\r\n\r\n // Regenerate status class\r\n this.updateStatus();\r\n this.onAttrUpdate();\r\n },\r\n\r\n /**\r\n * Update single attribute\r\n * @param {[type]} name [description]\r\n * @param {[type]} value [description]\r\n */\r\n setAttribute(name, value) {\r\n const el = this.$el;\r\n value ? el.attr(name, value) : el.removeAttr(name);\r\n },\r\n\r\n /**\r\n * Get classes from attributes.\r\n * This method is called before initialize\r\n *\r\n * @return {Array}|null\r\n * @private\r\n * */\r\n getClasses() {\r\n return this.model.getClasses().join(' ');\r\n },\r\n\r\n /**\r\n * Update attributes\r\n * @private\r\n * */\r\n updateAttributes() {\r\n const attrs = [];\r\n const { model, $el, el } = this;\r\n const { textable, type } = model.attributes;\r\n\r\n const defaultAttr = {\r\n id: model.getId(),\r\n 'data-gjs-type': type || 'default',\r\n ...(this.__isDraggable() && { draggable: true }),\r\n ...(textable && { contenteditable: 'false' }),\r\n };\r\n\r\n // Remove all current attributes\r\n each(el.attributes, attr => attrs.push(attr.nodeName));\r\n attrs.forEach(attr => $el.removeAttr(attr));\r\n this.updateStyle();\r\n this.updateHighlight();\r\n const attr = {\r\n ...defaultAttr,\r\n ...model.getAttributes(),\r\n };\r\n\r\n // Remove all `false` attributes\r\n keys(attr).forEach(key => attr[key] === false && delete attr[key]);\r\n\r\n $el.attr(attr);\r\n },\r\n\r\n /**\r\n * Update component content\r\n * @private\r\n * */\r\n updateContent() {\r\n const content = this.model.get('content');\r\n const hasComps = this.model.components().length;\r\n this.getChildrenContainer().innerHTML = hasComps ? '' : content;\r\n },\r\n\r\n /**\r\n * Prevent default helper\r\n * @param {Event} e\r\n * @private\r\n */\r\n prevDef(e) {\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Render component's script\r\n * @private\r\n */\r\n updateScript() {\r\n const { model, em } = this;\r\n if (!model.get('script')) return;\r\n em && em.get('Canvas').getCanvasView().updateScript(this);\r\n },\r\n\r\n /**\r\n * Return children container\r\n * Differently from a simple component where children container is the\r\n * component itself\r\n * \r\n * \r\n * \r\n * You could have the children container more deeper\r\n * \r\n *
\r\n *
\r\n *
\r\n *
\r\n * \r\n *
\r\n *
\r\n *
\r\n * @return HTMLElement\r\n * @private\r\n */\r\n getChildrenContainer() {\r\n var container = this.el;\r\n\r\n if (typeof this.getChildrenSelector == 'function') {\r\n container = this.el.querySelector(this.getChildrenSelector());\r\n } else if (typeof this.getTemplate == 'function') {\r\n // Need to find deepest first child\r\n }\r\n\r\n return container;\r\n },\r\n\r\n /**\r\n * This returns rect informations not affected by the canvas zoom.\r\n * The method `getBoundingClientRect` doesn't work here and we\r\n * have to take in account offsetParent\r\n */\r\n getOffsetRect() {\r\n const rect = {};\r\n const target = this.el;\r\n let gtop = 0;\r\n let gleft = 0;\r\n\r\n const assignRect = el => {\r\n const { offsetParent } = el;\r\n\r\n if (offsetParent) {\r\n gtop += offsetParent.offsetTop;\r\n gleft += offsetParent.offsetLeft;\r\n assignRect(offsetParent);\r\n } else {\r\n rect.top = target.offsetTop + gtop;\r\n rect.left = target.offsetLeft + gleft;\r\n rect.bottom = rect.top + target.offsetHeight;\r\n rect.right = rect.left + target.offsetWidth;\r\n }\r\n };\r\n assignRect(target);\r\n\r\n return rect;\r\n },\r\n\r\n isInViewport({ rect } = {}) {\r\n const { el } = this;\r\n const elDoc = el.ownerDocument;\r\n const { body } = elDoc;\r\n const { frameElement } = elDoc.defaultView;\r\n const { top, left } = rect || this.getOffsetRect();\r\n const frame = this._getFrame().getOffsetRect();\r\n\r\n return (\r\n top >= frame.scrollTop &&\r\n left >= frame.scrollLeft &&\r\n top <= frame.scrollBottom &&\r\n left <= frameElement.offsetWidth + body.scrollLeft\r\n );\r\n },\r\n\r\n scrollIntoView(opts = {}) {\r\n const rect = this.getOffsetRect();\r\n const isInViewport = this.isInViewport({ rect });\r\n\r\n if (!isInViewport || opts.force) {\r\n const { el } = this;\r\n\r\n // PATCH: scrollIntoView won't work with multiple requests from iframes\r\n if (opts.behavior !== 'smooth') {\r\n el.ownerDocument.defaultView.scrollTo(0, rect.top);\r\n } else {\r\n el.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n ...opts,\r\n });\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Recreate the element of the view\r\n */\r\n reset() {\r\n const { el } = this;\r\n this.el = '';\r\n this._ensureElement();\r\n this._setData();\r\n replaceWith(el, this.el);\r\n this.render();\r\n },\r\n\r\n _setData() {\r\n const { model } = this;\r\n const collection = model.components();\r\n const view = this;\r\n this.$el.data({ model, collection, view });\r\n },\r\n\r\n _getFrame() {\r\n return this.config.frameView;\r\n },\r\n\r\n /**\r\n * Render children components\r\n * @private\r\n */\r\n renderChildren() {\r\n this.updateContent();\r\n const container = this.getChildrenContainer();\r\n const view =\r\n this.childrenView ||\r\n new ComponentsView({\r\n collection: this.model.get('components'),\r\n config: this.config,\r\n componentTypes: this.opts.componentTypes,\r\n });\r\n\r\n view.render(container);\r\n this.childrenView = view;\r\n const childNodes = Array.prototype.slice.call(view.el.childNodes);\r\n\r\n for (var i = 0, len = childNodes.length; i < len; i++) {\r\n container.appendChild(childNodes.shift());\r\n }\r\n },\r\n\r\n renderAttributes() {\r\n this.updateAttributes();\r\n this.updateClasses();\r\n },\r\n\r\n onAttrUpdate() {},\r\n\r\n render() {\r\n this.renderAttributes();\r\n if (this.modelOpt.temporary) return this;\r\n this.renderChildren();\r\n this.updateScript();\r\n setViewEl(this.el, this);\r\n this.postRender();\r\n\r\n return this;\r\n },\r\n\r\n postRender() {\r\n if (!this.modelOpt.temporary) {\r\n this.onRender(this._clbObj());\r\n }\r\n },\r\n\r\n onRender() {},\r\n});\r\n","import Backbone from 'backbone';\r\nimport { isUndefined } from 'underscore';\r\nimport { removeEl } from '../../utils/dom';\r\n\r\nexport default Backbone.View.extend({\r\n initialize(o) {\r\n this.opts = o || {};\r\n this.config = o.config || {};\r\n this.em = this.config.em;\r\n const coll = this.collection;\r\n this.listenTo(coll, 'add', this.addTo);\r\n this.listenTo(coll, 'reset', this.resetChildren);\r\n this.listenTo(coll, 'remove', this.removeChildren);\r\n },\r\n\r\n removeChildren(removed, coll, opts = {}) {\r\n removed.views.forEach(view => {\r\n if (!view) return;\r\n const { childrenView, scriptContainer } = view;\r\n childrenView && childrenView.stopListening();\r\n removeEl(scriptContainer);\r\n view.remove.apply(view);\r\n });\r\n\r\n const inner = removed.components();\r\n inner.forEach(it => this.removeChildren(it, coll, opts));\r\n },\r\n\r\n /**\r\n * Add to collection\r\n * @param {Model} model\r\n * @param {Collection} coll\r\n * @param {Object} opts\r\n * @private\r\n * */\r\n addTo(model, coll = {}, opts = {}) {\r\n const em = this.config.em;\r\n const i = this.collection.indexOf(model);\r\n this.addToCollection(model, null, i);\r\n\r\n if (em && !opts.temporary) {\r\n const triggerAdd = model => {\r\n em.trigger('component:add', model);\r\n model.components().forEach(comp => triggerAdd(comp));\r\n };\r\n triggerAdd(model);\r\n }\r\n },\r\n\r\n /**\r\n * Add new object to collection\r\n * @param {Object} Model\r\n * @param {Object} Fragment collection\r\n * @param {Integer} Index of append\r\n *\r\n * @return {Object} Object rendered\r\n * @private\r\n * */\r\n addToCollection(model, fragmentEl, index) {\r\n if (!this.compView) this.compView = require('./ComponentView').default;\r\n const { config, opts, em } = this;\r\n const fragment = fragmentEl || null;\r\n const { frameView = {} } = config;\r\n const sameFrameView = frameView.model && model.getView(frameView.model);\r\n const dt = opts.componentTypes || (em && em.get('DomComponents').getTypes());\r\n const type = model.get('type') || 'default';\r\n let viewObject = this.compView;\r\n\r\n for (let it = 0; it < dt.length; it++) {\r\n if (dt[it].id == type) {\r\n viewObject = dt[it].view;\r\n break;\r\n }\r\n }\r\n const view =\r\n sameFrameView ||\r\n new viewObject({\r\n model,\r\n config,\r\n componentTypes: dt,\r\n });\r\n let rendered;\r\n\r\n try {\r\n // Avoid breaking on DOM rendering (eg. invalid attribute name)\r\n rendered = view.render().el;\r\n } catch (error) {\r\n rendered = document.createTextNode('');\r\n em.logError(error);\r\n }\r\n\r\n if (fragment) {\r\n fragment.appendChild(rendered);\r\n } else {\r\n const parent = this.parentEl;\r\n const children = parent.childNodes;\r\n\r\n if (!isUndefined(index)) {\r\n const lastIndex = children.length == index;\r\n\r\n // If the added model is the last of collection\r\n // need to change the logic of append\r\n if (lastIndex) {\r\n index--;\r\n }\r\n\r\n // In case the added is new in the collection index will be -1\r\n if (lastIndex || !children.length) {\r\n parent.appendChild(rendered);\r\n } else {\r\n parent.insertBefore(rendered, children[index]);\r\n }\r\n } else {\r\n parent.appendChild(rendered);\r\n }\r\n }\r\n\r\n if (!model.opt.temporary) {\r\n em?.trigger('component:mount', model);\r\n }\r\n\r\n return rendered;\r\n },\r\n\r\n resetChildren(models, { previousModels = [] } = {}) {\r\n this.parentEl.innerHTML = '';\r\n previousModels.forEach(md => this.removeChildren(md, this.collection));\r\n models.each(model => this.addToCollection(model));\r\n },\r\n\r\n render(parent) {\r\n const el = this.el;\r\n const frag = document.createDocumentFragment();\r\n this.parentEl = parent || this.el;\r\n this.collection.each(model => this.addToCollection(model, frag));\r\n el.innerHTML = '';\r\n el.appendChild(frag);\r\n return this;\r\n },\r\n});\r\n","import { isString, isArray, keys, isUndefined } from 'underscore';\r\nimport { shallowDiff } from '../../utils/mixins';\r\nimport ParserHtml from '../../parser/model/ParserHtml';\r\n\r\nconst parseStyle = ParserHtml().parseStyle;\r\n\r\nexport default {\r\n parseStyle,\r\n\r\n /**\r\n * To trigger the style change event on models I have to\r\n * pass a new object instance\r\n * @param {Object} prop\r\n * @return {Object}\r\n */\r\n extendStyle(prop) {\r\n return { ...this.getStyle(), ...prop };\r\n },\r\n\r\n /**\r\n * Get style object\r\n * @return {Object}\r\n */\r\n getStyle(prop) {\r\n const style = this.get('style') || {};\r\n const result = { ...style };\r\n return prop && isString(prop) ? result[prop] : result;\r\n },\r\n\r\n /**\r\n * Set new style object\r\n * @param {Object|string} prop\r\n * @param {Object} opts\r\n * @return {Object} Applied properties\r\n */\r\n setStyle(prop = {}, opts = {}) {\r\n if (isString(prop)) {\r\n prop = parseStyle(prop);\r\n }\r\n\r\n const propOrig = this.getStyle(opts);\r\n const propNew = { ...prop };\r\n this.set('style', propNew, opts);\r\n const diff = shallowDiff(propOrig, propNew);\r\n keys(diff).forEach(pr => {\r\n const em = this.em;\r\n if (opts.noEvent) return;\r\n this.trigger(`change:style:${pr}`);\r\n if (em) {\r\n em.trigger(`styleable:change`, this, pr, opts);\r\n em.trigger(`styleable:change:${pr}`, this, pr, opts);\r\n }\r\n });\r\n\r\n return propNew;\r\n },\r\n\r\n /**\r\n * Add style property\r\n * @param {Object|string} prop\r\n * @param {string} value\r\n * @example\r\n * this.addStyle({color: 'red'});\r\n * this.addStyle('color', 'blue');\r\n */\r\n addStyle(prop, value = '', opts = {}) {\r\n if (typeof prop == 'string') {\r\n prop = {\r\n prop: value,\r\n };\r\n } else {\r\n opts = value || {};\r\n }\r\n\r\n prop = this.extendStyle(prop);\r\n this.setStyle(prop, opts);\r\n },\r\n\r\n /**\r\n * Remove style property\r\n * @param {string} prop\r\n */\r\n removeStyle(prop) {\r\n let style = this.getStyle();\r\n delete style[prop];\r\n this.setStyle(style);\r\n },\r\n\r\n /**\r\n * Returns string of style properties\r\n * @param {Object} [opts={}] Options\r\n * @return {String}\r\n */\r\n styleToString(opts = {}) {\r\n const result = [];\r\n const style = this.getStyle(opts);\r\n\r\n for (let prop in style) {\r\n const imp = opts.important;\r\n const important = isArray(imp) ? imp.indexOf(prop) >= 0 : imp;\r\n const value = `${style[prop]}${important ? ' !important' : ''}`;\r\n const propPrv = prop.substr(0, 2) == '__';\r\n value && !propPrv && result.push(`${prop}:${value};`);\r\n }\r\n\r\n return result.join('');\r\n },\r\n\r\n getSelectors() {\r\n return this.get('selectors') || this.get('classes');\r\n },\r\n\r\n getSelectorsString(opts) {\r\n return this.selectorsToString ? this.selectorsToString(opts) : this.getSelectors().getFullString();\r\n },\r\n\r\n _validate(attr, opts) {\r\n const { style } = attr;\r\n const em = this.em || opts.em;\r\n const onBeforeStyle = em?.get('CssComposer')?.getConfig().onBeforeStyle;\r\n\r\n if (style && onBeforeStyle) {\r\n const newStyle = onBeforeStyle({ ...style });\r\n newStyle &&\r\n keys(style).map(prop => {\r\n if (isUndefined(newStyle[prop])) delete attr.style[prop];\r\n });\r\n newStyle &&\r\n keys(newStyle).map(prop => {\r\n attr.style[prop] = newStyle[prop];\r\n });\r\n }\r\n\r\n return true;\r\n },\r\n};\r\n","import { isFunction } from 'underscore';\r\nimport { View, Model } from '../../common';\r\n\r\nexport default {\r\n types: [],\r\n\r\n initialize(models, opts = {}) {\r\n const { em } = opts;\r\n this.em = em;\r\n this.opts = opts;\r\n this.model = (attrs = {}, options = {}) => {\r\n let Model, View, type;\r\n\r\n if (attrs && attrs.type) {\r\n const baseType = this.getBaseType();\r\n type = this.getType(attrs.type);\r\n Model = type ? type.model : baseType.model;\r\n View = type ? type.view : baseType.view;\r\n } else {\r\n const typeFound = this.recognizeType(attrs);\r\n type = typeFound.type;\r\n Model = type.model;\r\n View = type.view;\r\n attrs = typeFound.attributes;\r\n }\r\n\r\n const model = new Model(attrs, { ...options, em });\r\n model.typeView = View;\r\n return model;\r\n };\r\n const init = this.init && this.init.bind(this);\r\n init && init();\r\n },\r\n\r\n /**\r\n * Recognize type by any value\r\n * @param {mixed} value\r\n * @return {Object} Found type\r\n */\r\n recognizeType(value) {\r\n const types = this.getTypes();\r\n\r\n for (let i = 0; i < types.length; i++) {\r\n const type = types[i];\r\n let typeFound = type.isType(value);\r\n typeFound = typeof typeFound == 'boolean' && typeFound ? { type: type.id } : typeFound;\r\n\r\n if (typeFound) {\r\n return {\r\n type,\r\n attributes: typeFound,\r\n };\r\n }\r\n }\r\n\r\n // If, for any reason, the type is not found it'll return the base one\r\n return {\r\n type: this.getBaseType(),\r\n attributes: value,\r\n };\r\n },\r\n\r\n /**\r\n * Returns the base type (last object in the stack)\r\n * @return {Object}\r\n */\r\n getBaseType() {\r\n const types = this.getTypes();\r\n return types[types.length - 1];\r\n },\r\n\r\n /**\r\n * Get types\r\n * @return {Array}\r\n */\r\n getTypes() {\r\n return this.types;\r\n },\r\n\r\n /**\r\n * Get type\r\n * @param {string} id Type ID\r\n * @return {Object} Type definition\r\n */\r\n getType(id) {\r\n const types = this.getTypes();\r\n\r\n for (let i = 0; i < types.length; i++) {\r\n const type = types[i];\r\n if (type.id === id) {\r\n return type;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Add new type\r\n * @param {string} id Type ID\r\n * @param {Object} definition Definition of the type. Each definition contains\r\n * `model` (business logic), `view` (presentation logic)\r\n * and `isType` function which recognize the type of the\r\n * passed entity\r\n * addType('my-type', {\r\n * model: {},\r\n * view: {},\r\n * isType: (value) => {},\r\n * })\r\n */\r\n addType(id, definition) {\r\n const type = this.getType(id);\r\n const baseType = this.getBaseType();\r\n const ModelInst = type ? type.model : baseType.model;\r\n const ViewInst = type ? type.view : baseType.view;\r\n let { model, view, isType } = definition;\r\n model = model instanceof Model || isFunction(model) ? model : ModelInst.extend(model || {});\r\n view = view instanceof View || isFunction(view) ? view : ViewInst.extend(view || {});\r\n\r\n // New API\r\n if (this.extendViewApi && !definition.model && !definition.view) {\r\n view = view.extend(definition);\r\n }\r\n\r\n if (type) {\r\n type.model = model;\r\n type.view = view;\r\n type.isType = isType || type.isType;\r\n } else {\r\n definition.id = id;\r\n definition.model = model;\r\n definition.view = view;\r\n definition.isType =\r\n isType ||\r\n function (value) {\r\n if (value && value.type == id) {\r\n return true;\r\n }\r\n };\r\n this.getTypes().unshift(definition);\r\n }\r\n },\r\n};\r\n","import Backbone from 'backbone';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default class Input extends Backbone.View {\r\n template() {\r\n return ``;\r\n }\r\n\r\n inputClass() {\r\n return `${this.ppfx}field`;\r\n }\r\n\r\n holderClass() {\r\n return `${this.ppfx}input-holder`;\r\n }\r\n\r\n constructor(opts = {}) {\r\n super(opts);\r\n const ppfx = opts.ppfx || '';\r\n this.opts = opts;\r\n this.ppfx = ppfx;\r\n this.em = opts.target || {};\r\n !opts.onChange && this.listenTo(this.model, 'change:value', this.handleModelChange);\r\n }\r\n\r\n /**\r\n * Fired when the element of the property is updated\r\n */\r\n elementUpdated() {\r\n this.model.trigger('el:change');\r\n }\r\n\r\n /**\r\n * Set value to the input element\r\n * @param {string} value\r\n */\r\n setValue(value) {\r\n const model = this.model;\r\n let val = value || model.get('defaults');\r\n const input = this.getInputEl();\r\n input && (input.value = val);\r\n }\r\n\r\n /**\r\n * Updates the view when the model is changed\r\n * */\r\n handleModelChange(model, value, opts) {\r\n this.setValue(value, opts);\r\n }\r\n\r\n /**\r\n * Handled when the view is changed\r\n */\r\n handleChange(e) {\r\n e.stopPropagation();\r\n const value = this.getInputEl().value;\r\n this.__onInputChange(value);\r\n this.elementUpdated();\r\n }\r\n\r\n __onInputChange(value) {\r\n this.model.set({ value }, { fromInput: 1 });\r\n }\r\n\r\n /**\r\n * Get the input element\r\n * @return {HTMLElement}\r\n */\r\n getInputEl() {\r\n if (!this.inputEl) {\r\n const { model, opts } = this;\r\n const type = opts.type || 'text';\r\n const plh = model.get('placeholder') || model.get('defaults') || model.get('default') || '';\r\n this.inputEl = $(``);\r\n }\r\n\r\n return this.inputEl.get(0);\r\n }\r\n\r\n render() {\r\n this.inputEl = null;\r\n const el = this.$el;\r\n el.addClass(this.inputClass());\r\n el.html(this.template());\r\n el.find(`.${this.holderClass()}`).append(this.getInputEl());\r\n return this;\r\n }\r\n}\r\n\r\nInput.prototype.events = {\r\n change: 'handleChange',\r\n};\r\n","import Backbone from 'backbone';\r\nimport { isUndefined } from 'underscore';\r\nimport ColorPicker from '../../utils/ColorPicker';\r\nimport Input from './Input';\r\n\r\nconst { $ } = Backbone;\r\n$ && ColorPicker($);\r\n\r\nconst getColor = color => {\r\n const name = color.getFormat() === 'name' && color.toName();\r\n const cl = color.getAlpha() == 1 ? color.toHexString() : color.toRgbString();\r\n return name || cl.replace(/ /g, '');\r\n};\r\n\r\nexport default class InputColor extends Input {\r\n template() {\r\n const ppfx = this.ppfx;\r\n return `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n }\r\n\r\n inputClass() {\r\n const ppfx = this.ppfx;\r\n return `${ppfx}field ${ppfx}field-color`;\r\n }\r\n\r\n holderClass() {\r\n return `${this.ppfx}input-holder`;\r\n }\r\n\r\n remove() {\r\n Input.prototype.remove.apply(this, arguments);\r\n this.colorEl.spectrum('destroy');\r\n }\r\n\r\n handleChange(e) {\r\n e.stopPropagation();\r\n const { value } = e.target;\r\n if (isUndefined(value)) return;\r\n this.__onInputChange(value);\r\n }\r\n\r\n __onInputChange(val) {\r\n const { model, opts } = this;\r\n const { onChange } = opts;\r\n let value = val;\r\n const colorEl = this.getColorEl();\r\n\r\n // Check the color by using the ColorPicker's parser\r\n if (colorEl) {\r\n colorEl.spectrum('set', value);\r\n const tc = colorEl.spectrum('get');\r\n const color = value && getColor(tc);\r\n color && (value = color);\r\n }\r\n\r\n onChange ? onChange(value) : model.set({ value }, { fromInput: 1 });\r\n }\r\n\r\n /**\r\n * Set value to the model\r\n * @param {string} val\r\n * @param {Object} opts\r\n */\r\n setValue(val, opts = {}) {\r\n const { model } = this;\r\n const def = !isUndefined(opts.def) ? opts.def : model.get('defaults');\r\n const value = !isUndefined(val) ? val : !isUndefined(def) ? def : '';\r\n const inputEl = this.getInputEl();\r\n const colorEl = this.getColorEl();\r\n const valueClr = value != 'none' ? value : '';\r\n inputEl.value = value;\r\n colorEl.get(0).style.backgroundColor = valueClr;\r\n\r\n // This prevents from adding multiple thumbs in spectrum\r\n if (opts.fromTarget || (opts.fromInput && !opts.avoidStore)) {\r\n colorEl.spectrum('set', valueClr);\r\n this.noneColor = value == 'none';\r\n }\r\n }\r\n\r\n /**\r\n * Get the color input element\r\n * @return {HTMLElement}\r\n */\r\n getColorEl() {\r\n if (!this.colorEl) {\r\n const { em, model, opts } = this;\r\n const self = this;\r\n const ppfx = this.ppfx;\r\n const { onChange } = opts;\r\n\r\n var colorEl = $(`
`);\r\n var cpStyle = colorEl.get(0).style;\r\n var elToAppend = em && em.config ? em.config.el : '';\r\n var colorPickerConfig = (em && em.getConfig && em.getConfig('colorPicker')) || {};\r\n\r\n let changed = 0;\r\n let previousColor;\r\n this.$el.find(`[data-colorp-c]`).append(colorEl);\r\n colorEl.spectrum({\r\n color: model.getValue() || false,\r\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\r\n appendTo: elToAppend || 'body',\r\n maxSelectionSize: 8,\r\n showPalette: true,\r\n showAlpha: true,\r\n chooseText: 'Ok',\r\n cancelText: '⨯',\r\n palette: [],\r\n\r\n // config expanded here so that the functions below are not overridden\r\n ...colorPickerConfig,\r\n ...(model.get('colorPicker') || {}),\r\n\r\n move(color) {\r\n const cl = getColor(color);\r\n cpStyle.backgroundColor = cl;\r\n onChange ? onChange(cl, true) : model.setValueFromInput(cl, 0);\r\n },\r\n change(color) {\r\n changed = 1;\r\n const cl = getColor(color);\r\n cpStyle.backgroundColor = cl;\r\n if (onChange) {\r\n onChange(cl);\r\n } else {\r\n model.setValueFromInput(0, 0); // for UndoManager\r\n model.setValueFromInput(cl);\r\n }\r\n self.noneColor = 0;\r\n },\r\n show(color) {\r\n changed = 0;\r\n previousColor = onChange ? model.getValue({ noDefault: true }) : getColor(color);\r\n },\r\n hide(color) {\r\n if (!changed && (previousColor || onChange)) {\r\n if (self.noneColor) {\r\n previousColor = '';\r\n }\r\n cpStyle.backgroundColor = previousColor;\r\n colorEl.spectrum('set', previousColor);\r\n onChange ? onChange(previousColor, true) : model.setValueFromInput(previousColor, 0);\r\n }\r\n },\r\n });\r\n\r\n if (em && em.on) {\r\n this.listenTo(em, 'component:selected', () => {\r\n changed = 1;\r\n colorEl.spectrum('hide');\r\n });\r\n }\r\n\r\n this.colorEl = colorEl;\r\n }\r\n return this.colorEl;\r\n }\r\n\r\n render() {\r\n Input.prototype.render.call(this);\r\n // This will make the color input available on render\r\n this.getColorEl();\r\n return this;\r\n }\r\n}\r\n","// Without jquery I have to update few stuff\r\n//\r\n// Spectrum Colorpicker v1.8.0\r\n// https://github.com/bgrins/spectrum\r\n// Author: Brian Grinstead\r\n// License: MIT\r\nimport { hasWin } from './mixins';\r\n\r\nexport default function ($, undefined) {\r\n 'use strict';\r\n if (!hasWin()) return;\r\n\r\n var defaultOpts = {\r\n // Callbacks\r\n beforeShow: noop,\r\n move: noop,\r\n change: noop,\r\n show: noop,\r\n hide: noop,\r\n\r\n // Options\r\n color: false,\r\n flat: false,\r\n showInput: false,\r\n allowEmpty: false,\r\n showButtons: true,\r\n clickoutFiresChange: true,\r\n showInitial: false,\r\n showPalette: false,\r\n showPaletteOnly: false,\r\n hideAfterPaletteSelect: false,\r\n togglePaletteOnly: false,\r\n showSelectionPalette: true,\r\n localStorageKey: false,\r\n appendTo: 'body',\r\n maxSelectionSize: 7,\r\n cancelText: 'cancel',\r\n chooseText: 'choose',\r\n togglePaletteMoreText: 'more',\r\n togglePaletteLessText: 'less',\r\n clearText: 'Clear Color Selection',\r\n noColorSelectedText: 'No Color Selected',\r\n preferredFormat: false,\r\n className: '', // Deprecated - use containerClassName and replacerClassName instead.\r\n containerClassName: '',\r\n replacerClassName: '',\r\n showAlpha: false,\r\n theme: 'sp-light',\r\n palette: [['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00', '#008000', '#0000ff', '#4b0082', '#9400d3']],\r\n selectionPalette: [],\r\n disabled: false,\r\n offset: null,\r\n },\r\n spectrums = [],\r\n IE = !!/msie/i.exec(window.navigator.userAgent),\r\n rgbaSupport = (function () {\r\n function contains(str, substr) {\r\n return !!~('' + str).indexOf(substr);\r\n }\r\n\r\n var elem = document.createElement('div');\r\n var style = elem.style;\r\n style.cssText = 'background-color:rgba(0,0,0,.5)';\r\n return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');\r\n })(),\r\n replaceInput = [\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n '
',\r\n ].join(''),\r\n markup = (function () {\r\n // IE does not support gradients with multiple stops, so we need to simulate\r\n // that for the rainbow slider with 8 divs that each have a single gradient\r\n var gradientFix = '';\r\n if (IE) {\r\n for (var i = 1; i <= 6; i++) {\r\n gradientFix += \"
\";\r\n }\r\n }\r\n\r\n return [\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"\",\r\n '
',\r\n '
',\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n \"
\",\r\n '
',\r\n '
',\r\n '
',\r\n \"
\",\r\n '
',\r\n \"
\",\r\n \"
\",\r\n gradientFix,\r\n '
',\r\n '
',\r\n \"
\",\r\n '
',\r\n \"
\",\r\n \"\",\r\n '
',\r\n \"
\",\r\n \"
\",\r\n \"\",\r\n \"\",\r\n '
',\r\n '
',\r\n '
',\r\n ].join('');\r\n })();\r\n\r\n function paletteTemplate(p, color, className, opts) {\r\n var html = [];\r\n for (var i = 0; i < p.length; i++) {\r\n var current = p[i];\r\n if (current) {\r\n var tiny = tinycolor(current);\r\n var c = tiny.toHsl().l < 0.5 ? 'sp-thumb-el sp-thumb-dark' : 'sp-thumb-el sp-thumb-light';\r\n c += tinycolor.equals(color, current) ? ' sp-thumb-active' : '';\r\n var formattedString = tiny.toString(opts.preferredFormat || 'rgb');\r\n var swatchStyle = rgbaSupport ? 'background-color:' + tiny.toRgbString() : 'filter:' + tiny.toFilter();\r\n html.push(\r\n ''\r\n );\r\n } else {\r\n var cls = 'sp-clear-display';\r\n html.push(\r\n $('
')\r\n .append(\r\n $('').attr(\r\n 'title',\r\n opts.noColorSelectedText\r\n )\r\n )\r\n .html()\r\n );\r\n }\r\n }\r\n return \"
\" + html.join('') + '
';\r\n }\r\n\r\n function hideAll() {\r\n for (var i = 0; i < spectrums.length; i++) {\r\n if (spectrums[i]) {\r\n spectrums[i].hide();\r\n }\r\n }\r\n }\r\n\r\n function instanceOptions(o, callbackContext) {\r\n var opts = $.extend({}, defaultOpts, o);\r\n opts.callbacks = {\r\n move: bind(opts.move, callbackContext),\r\n change: bind(opts.change, callbackContext),\r\n show: bind(opts.show, callbackContext),\r\n hide: bind(opts.hide, callbackContext),\r\n beforeShow: bind(opts.beforeShow, callbackContext),\r\n };\r\n return opts;\r\n }\r\n\r\n function spectrum(element, o) {\r\n var opts = instanceOptions(o, element),\r\n flat = opts.flat,\r\n showSelectionPalette = opts.showSelectionPalette,\r\n localStorageKey = opts.localStorageKey,\r\n theme = opts.theme,\r\n callbacks = opts.callbacks,\r\n resize = throttle(reflow, 10),\r\n visible = false,\r\n isDragging = false,\r\n isDefault = true,\r\n dragWidth = 0,\r\n dragHeight = 0,\r\n dragHelperHeight = 0,\r\n slideHeight = 0,\r\n slideWidth = 0,\r\n alphaWidth = 0,\r\n alphaSlideHelperWidth = 0,\r\n slideHelperHeight = 0,\r\n currentHue = 0,\r\n currentSaturation = 0,\r\n currentValue = 0,\r\n currentAlpha = 1,\r\n palette = [],\r\n paletteArray = [],\r\n paletteLookup = {},\r\n selectionPalette = opts.selectionPalette.slice(0),\r\n maxSelectionSize = opts.maxSelectionSize,\r\n draggingClass = 'sp-dragging',\r\n shiftMovementDirection = null;\r\n\r\n var doc = element.ownerDocument,\r\n body = doc.body,\r\n boundElement = $(element),\r\n disabled = false,\r\n container = $(markup, doc).addClass(theme),\r\n pickerContainer = container.find('.sp-picker-container'),\r\n dragger = container.find('.sp-color'),\r\n dragHelper = container.find('.sp-dragger'),\r\n slider = container.find('.sp-hue'),\r\n slideHelper = container.find('.sp-slider'),\r\n alphaSliderInner = container.find('.sp-alpha-inner'),\r\n alphaSlider = container.find('.sp-alpha'),\r\n alphaSlideHelper = container.find('.sp-alpha-handle'),\r\n textInput = container.find('.sp-input'),\r\n paletteContainer = container.find('.sp-palette'),\r\n initialColorContainer = container.find('.sp-initial'),\r\n cancelButton = container.find('.sp-cancel'),\r\n clearButton = container.find('.sp-clear'),\r\n chooseButton = container.find('.sp-choose'),\r\n toggleButton = container.find('.sp-palette-toggle'),\r\n isInput = boundElement.is('input'),\r\n isInputTypeColor = isInput && boundElement.attr('type') === 'color' && inputTypeColorSupport(),\r\n shouldReplace = isInput && !flat,\r\n replacer = shouldReplace\r\n ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName)\r\n : $([]),\r\n offsetElement = shouldReplace ? replacer : boundElement,\r\n previewElement = replacer.find('.sp-preview-inner'),\r\n initialColor = opts.color || (isInput && boundElement.val()),\r\n colorOnShow = false,\r\n currentPreferredFormat = opts.preferredFormat,\r\n clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,\r\n isEmpty = !initialColor,\r\n allowEmpty = opts.allowEmpty && !isInputTypeColor;\r\n\r\n function applyOptions() {\r\n if (opts.showPaletteOnly) {\r\n opts.showPalette = true;\r\n }\r\n\r\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\r\n\r\n if (opts.palette) {\r\n palette = opts.palette.slice(0);\r\n paletteArray = $.isArray(palette[0]) ? palette : [palette];\r\n paletteLookup = {};\r\n for (var i = 0; i < paletteArray.length; i++) {\r\n for (var j = 0; j < paletteArray[i].length; j++) {\r\n var rgb = tinycolor(paletteArray[i][j]).toRgbString();\r\n paletteLookup[rgb] = true;\r\n }\r\n }\r\n }\r\n\r\n container.toggleClass('sp-flat', flat);\r\n container.toggleClass('sp-input-disabled', !opts.showInput);\r\n container.toggleClass('sp-alpha-enabled', opts.showAlpha);\r\n container.toggleClass('sp-clear-enabled', allowEmpty);\r\n container.toggleClass('sp-buttons-disabled', !opts.showButtons);\r\n container.toggleClass('sp-palette-buttons-disabled', !opts.togglePaletteOnly);\r\n container.toggleClass('sp-palette-disabled', !opts.showPalette);\r\n container.toggleClass('sp-palette-only', opts.showPaletteOnly);\r\n container.toggleClass('sp-initial-disabled', !opts.showInitial);\r\n container.addClass(opts.className).addClass(opts.containerClassName);\r\n\r\n reflow();\r\n }\r\n\r\n function initialize() {\r\n if (IE) {\r\n container.find('*:not(input)').attr('unselectable', 'on');\r\n }\r\n\r\n applyOptions();\r\n\r\n if (shouldReplace) {\r\n boundElement.after(replacer).hide();\r\n }\r\n\r\n if (!allowEmpty) {\r\n clearButton.hide();\r\n }\r\n\r\n if (flat) {\r\n boundElement.after(container).hide();\r\n } else {\r\n var appendTo = opts.appendTo === 'parent' ? boundElement.parent() : $(opts.appendTo);\r\n if (appendTo.length !== 1) {\r\n appendTo = $('body');\r\n }\r\n\r\n appendTo.append(container);\r\n }\r\n\r\n updateSelectionPaletteFromStorage();\r\n\r\n offsetElement.bind('click.spectrum touchstart.spectrum', function (e) {\r\n if (!disabled) {\r\n toggle();\r\n }\r\n\r\n e.stopPropagation();\r\n\r\n if (!$(e.target).is('input')) {\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n if (boundElement.is(':disabled') || opts.disabled === true) {\r\n disable();\r\n }\r\n\r\n // Prevent clicks from bubbling up to document. This would cause it to be hidden.\r\n container.click(stopPropagation);\r\n\r\n // Handle user typed input\r\n textInput.change(setFromTextInput);\r\n textInput.bind('paste', function () {\r\n setTimeout(setFromTextInput, 1);\r\n });\r\n textInput.keydown(function (e) {\r\n if (e.keyCode == 13) {\r\n setFromTextInput();\r\n }\r\n });\r\n\r\n cancelButton.text(opts.cancelText);\r\n cancelButton.bind('click.spectrum', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n revert();\r\n hide();\r\n });\r\n\r\n clearButton.attr('title', opts.clearText);\r\n clearButton.bind('click.spectrum', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n isEmpty = true;\r\n move();\r\n\r\n if (flat) {\r\n //for the flat style, this is a change event\r\n updateOriginalInput(true);\r\n }\r\n });\r\n\r\n chooseButton.text(opts.chooseText);\r\n chooseButton.bind('click.spectrum', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if (IE && textInput.is(':focus')) {\r\n textInput.trigger('change');\r\n }\r\n\r\n if (isValid()) {\r\n updateOriginalInput(true);\r\n hide();\r\n }\r\n });\r\n\r\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\r\n toggleButton.bind('click.spectrum', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n opts.showPaletteOnly = !opts.showPaletteOnly;\r\n\r\n // To make sure the Picker area is drawn on the right, next to the\r\n // Palette area (and not below the palette), first move the Palette\r\n // to the left to make space for the picker, plus 5px extra.\r\n // The 'applyOptions' function puts the whole container back into place\r\n // and takes care of the button-text and the sp-palette-only CSS class.\r\n if (!opts.showPaletteOnly && !flat) {\r\n container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));\r\n }\r\n applyOptions();\r\n });\r\n\r\n draggable(\r\n alphaSlider,\r\n function (dragX, dragY, e) {\r\n currentAlpha = dragX / alphaWidth;\r\n isEmpty = false;\r\n if (e.shiftKey) {\r\n currentAlpha = Math.round(currentAlpha * 10) / 10;\r\n }\r\n\r\n move();\r\n },\r\n dragStart,\r\n dragStop\r\n );\r\n\r\n draggable(\r\n slider,\r\n function (dragX, dragY) {\r\n currentHue = parseFloat(dragY / slideHeight);\r\n isEmpty = false;\r\n if (!opts.showAlpha) {\r\n currentAlpha = 1;\r\n }\r\n move();\r\n },\r\n dragStart,\r\n dragStop\r\n );\r\n\r\n draggable(\r\n dragger,\r\n function (dragX, dragY, e) {\r\n // shift+drag should snap the movement to either the x or y axis.\r\n if (!e.shiftKey) {\r\n shiftMovementDirection = null;\r\n } else if (!shiftMovementDirection) {\r\n var oldDragX = currentSaturation * dragWidth;\r\n var oldDragY = dragHeight - currentValue * dragHeight;\r\n var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);\r\n\r\n shiftMovementDirection = furtherFromX ? 'x' : 'y';\r\n }\r\n\r\n var setSaturation = !shiftMovementDirection || shiftMovementDirection === 'x';\r\n var setValue = !shiftMovementDirection || shiftMovementDirection === 'y';\r\n\r\n if (setSaturation) {\r\n currentSaturation = parseFloat(dragX / dragWidth);\r\n }\r\n if (setValue) {\r\n currentValue = parseFloat((dragHeight - dragY) / dragHeight);\r\n }\r\n\r\n isEmpty = false;\r\n if (!opts.showAlpha) {\r\n currentAlpha = 1;\r\n }\r\n\r\n move();\r\n },\r\n dragStart,\r\n dragStop\r\n );\r\n\r\n if (!!initialColor) {\r\n set(initialColor);\r\n\r\n // In case color was black - update the preview UI and set the format\r\n // since the set function will not run (default color is black).\r\n updateUI();\r\n currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).getFormat();\r\n\r\n addColorToSelectionPalette(initialColor);\r\n } else {\r\n updateUI();\r\n }\r\n\r\n if (flat) {\r\n show();\r\n }\r\n\r\n function paletteElementClick(e) {\r\n if (e.data && e.data.ignore) {\r\n set($(e.target).closest('.sp-thumb-el').data('color'));\r\n move();\r\n } else {\r\n set($(e.target).closest('.sp-thumb-el').data('color'));\r\n move();\r\n if (opts.hideAfterPaletteSelect) {\r\n updateOriginalInput(true);\r\n hide();\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n var paletteEvent = IE ? 'mousedown.spectrum' : 'click.spectrum touchstart.spectrum';\r\n paletteContainer.delegate('.sp-thumb-el', paletteEvent, paletteElementClick);\r\n initialColorContainer.delegate('.sp-thumb-el:nth-child(1)', paletteEvent, { ignore: true }, paletteElementClick);\r\n }\r\n\r\n function updateSelectionPaletteFromStorage() {\r\n if (localStorageKey && window.localStorage) {\r\n // Migrate old palettes over to new format. May want to remove this eventually.\r\n try {\r\n var oldPalette = window.localStorage[localStorageKey].split(',#');\r\n if (oldPalette.length > 1) {\r\n delete window.localStorage[localStorageKey];\r\n $.each(oldPalette, function (i, c) {\r\n addColorToSelectionPalette(c);\r\n });\r\n }\r\n } catch (e) {}\r\n\r\n try {\r\n selectionPalette = window.localStorage[localStorageKey].split(';');\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n function addColorToSelectionPalette(color) {\r\n if (showSelectionPalette) {\r\n var rgb = tinycolor(color).toRgbString();\r\n if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {\r\n selectionPalette.push(rgb);\r\n while (selectionPalette.length > maxSelectionSize) {\r\n selectionPalette.shift();\r\n }\r\n }\r\n\r\n if (localStorageKey && window.localStorage) {\r\n try {\r\n window.localStorage[localStorageKey] = selectionPalette.join(';');\r\n } catch (e) {}\r\n }\r\n }\r\n }\r\n\r\n function getUniqueSelectionPalette() {\r\n var unique = [];\r\n if (opts.showPalette) {\r\n for (var i = 0; i < selectionPalette.length; i++) {\r\n var rgb = tinycolor(selectionPalette[i]).toRgbString();\r\n\r\n if (!paletteLookup[rgb]) {\r\n unique.push(selectionPalette[i]);\r\n }\r\n }\r\n }\r\n\r\n return unique.reverse().slice(0, opts.maxSelectionSize);\r\n }\r\n\r\n function drawPalette() {\r\n var currentColor = get();\r\n\r\n var html = $.map(paletteArray, function (palette, i) {\r\n return paletteTemplate(palette, currentColor, 'sp-palette-row sp-palette-row-' + i, opts);\r\n });\r\n\r\n updateSelectionPaletteFromStorage();\r\n\r\n if (selectionPalette) {\r\n html.push(\r\n paletteTemplate(getUniqueSelectionPalette(), currentColor, 'sp-palette-row sp-palette-row-selection', opts)\r\n );\r\n }\r\n\r\n paletteContainer.html(html.join(''));\r\n }\r\n\r\n function drawInitial() {\r\n if (opts.showInitial) {\r\n var initial = colorOnShow;\r\n var current = get();\r\n initialColorContainer.html(paletteTemplate([initial, current], current, 'sp-palette-row-initial', opts));\r\n }\r\n }\r\n\r\n function dragStart() {\r\n if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {\r\n reflow();\r\n }\r\n isDragging = true;\r\n container.addClass(draggingClass);\r\n shiftMovementDirection = null;\r\n boundElement.trigger('dragstart.spectrum', [get()]);\r\n }\r\n\r\n function dragStop() {\r\n isDragging = false;\r\n container.removeClass(draggingClass);\r\n boundElement.trigger('dragstop.spectrum', [get()]);\r\n }\r\n\r\n function setFromTextInput() {\r\n var value = textInput.val();\r\n\r\n if ((value === null || value === '') && allowEmpty) {\r\n set(null);\r\n updateOriginalInput(true);\r\n } else {\r\n var tiny = tinycolor(value);\r\n if (tiny.isValid()) {\r\n set(tiny);\r\n updateOriginalInput(true);\r\n } else {\r\n textInput.addClass('sp-validation-error');\r\n }\r\n }\r\n }\r\n\r\n function toggle() {\r\n if (visible) {\r\n hide();\r\n } else {\r\n show();\r\n }\r\n }\r\n\r\n function show() {\r\n var event = $.Event('beforeShow.spectrum');\r\n\r\n if (visible) {\r\n reflow();\r\n return;\r\n }\r\n\r\n boundElement.trigger('beforeShow.spectrum', [get()]);\r\n\r\n if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n hideAll();\r\n visible = true;\r\n\r\n var $doc = $(doc);\r\n $doc.bind('keydown.spectrum', onkeydown);\r\n $doc.bind('click.spectrum', clickout);\r\n $(window).bind('resize.spectrum', resize);\r\n replacer.addClass('sp-active');\r\n container.removeClass('sp-hidden');\r\n\r\n reflow();\r\n updateUI();\r\n\r\n colorOnShow = get();\r\n\r\n drawInitial();\r\n callbacks.show(colorOnShow);\r\n boundElement.trigger('show.spectrum', [colorOnShow]);\r\n }\r\n\r\n function onkeydown(e) {\r\n // Close on ESC\r\n if (e.keyCode === 27) {\r\n hide();\r\n }\r\n }\r\n\r\n function clickout(e) {\r\n // Return on right click.\r\n if (e.button == 2) {\r\n return;\r\n }\r\n\r\n // If a drag event was happening during the mouseup, don't hide\r\n // on click.\r\n if (isDragging) {\r\n return;\r\n }\r\n\r\n if (clickoutFiresChange) {\r\n updateOriginalInput(true);\r\n } else {\r\n revert();\r\n }\r\n hide();\r\n }\r\n\r\n function hide() {\r\n // Return if hiding is unnecessary\r\n if (!visible || flat) {\r\n return;\r\n }\r\n visible = false;\r\n\r\n $(doc).unbind('keydown.spectrum', onkeydown);\r\n $(doc).unbind('click.spectrum', clickout);\r\n $(window).unbind('resize.spectrum', resize);\r\n\r\n replacer.removeClass('sp-active');\r\n container.addClass('sp-hidden');\r\n\r\n callbacks.hide(get());\r\n boundElement.trigger('hide.spectrum', [get()]);\r\n }\r\n\r\n function revert() {\r\n set(colorOnShow, true);\r\n }\r\n\r\n function set(color, ignoreFormatChange) {\r\n if (tinycolor.equals(color, get())) {\r\n // Update UI just in case a validation error needs\r\n // to be cleared.\r\n updateUI();\r\n return;\r\n }\r\n\r\n var newColor, newHsv;\r\n if (!color && allowEmpty) {\r\n isEmpty = true;\r\n } else {\r\n isEmpty = false;\r\n isDefault = !color; // if no color is available an empty string will be passed. tinycolor will then set it to #000\r\n newColor = tinycolor(color);\r\n newHsv = newColor.toHsv();\r\n\r\n currentHue = (newHsv.h % 360) / 360;\r\n currentSaturation = newHsv.s;\r\n currentValue = newHsv.v;\r\n currentAlpha = newHsv.a;\r\n }\r\n updateUI();\r\n\r\n if (newColor && newColor.isValid() && !ignoreFormatChange) {\r\n currentPreferredFormat = opts.preferredFormat || newColor.getFormat();\r\n }\r\n }\r\n\r\n function get(opts) {\r\n opts = opts || {};\r\n\r\n if (allowEmpty && isEmpty) {\r\n return null;\r\n }\r\n\r\n return tinycolor.fromRatio(\r\n {\r\n h: currentHue,\r\n s: currentSaturation,\r\n v: currentValue,\r\n a: Math.round(currentAlpha * 100) / 100,\r\n },\r\n { format: opts.format || currentPreferredFormat }\r\n );\r\n }\r\n\r\n function isValid() {\r\n return !textInput.hasClass('sp-validation-error');\r\n }\r\n\r\n function move() {\r\n updateUI();\r\n\r\n callbacks.move(get());\r\n boundElement.trigger('move.spectrum', [get()]);\r\n }\r\n\r\n function updateUI() {\r\n textInput.removeClass('sp-validation-error');\r\n\r\n updateHelperLocations();\r\n\r\n // Update dragger background color (gradients take care of saturation and value).\r\n var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });\r\n dragger.css('background-color', flatColor.toHexString());\r\n\r\n // Get a format that alpha will be included in (hex and names ignore alpha)\r\n var format = currentPreferredFormat;\r\n if (currentAlpha < 1 && !(currentAlpha === 0 && format === 'name')) {\r\n if (format === 'hex' || format === 'hex3' || format === 'hex6' || format === 'name') {\r\n format = 'rgb';\r\n }\r\n }\r\n\r\n var realColor = get({ format: format }),\r\n displayColor = '';\r\n\r\n //reset background info for preview element\r\n previewElement.removeClass('sp-clear-display');\r\n previewElement.css('background-color', 'transparent');\r\n\r\n if (!realColor && allowEmpty) {\r\n // Update the replaced elements background with icon indicating no color selection\r\n previewElement.addClass('sp-clear-display');\r\n } else {\r\n var realHex = realColor.toHexString(),\r\n realRgb = realColor.toRgbString();\r\n\r\n // Update the replaced elements background color (with actual selected color)\r\n if (rgbaSupport || realColor.alpha === 1) {\r\n previewElement.css('background-color', realRgb);\r\n } else {\r\n previewElement.css('background-color', 'transparent');\r\n previewElement.css('filter', realColor.toFilter());\r\n }\r\n\r\n if (opts.showAlpha) {\r\n var rgb = realColor.toRgb();\r\n rgb.a = 0;\r\n var realAlpha = tinycolor(rgb).toRgbString();\r\n var gradient = 'linear-gradient(left, ' + realAlpha + ', ' + realHex + ')';\r\n\r\n if (IE) {\r\n alphaSliderInner.css('filter', tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));\r\n } else {\r\n alphaSliderInner.css('background', '-webkit-' + gradient);\r\n alphaSliderInner.css('background', '-moz-' + gradient);\r\n alphaSliderInner.css('background', '-ms-' + gradient);\r\n // Use current syntax gradient on unprefixed property.\r\n alphaSliderInner.css('background', 'linear-gradient(to right, ' + realAlpha + ', ' + realHex + ')');\r\n }\r\n }\r\n\r\n displayColor = realColor.toString(format);\r\n }\r\n\r\n // Update the text entry input as it changes happen\r\n if (opts.showInput) {\r\n textInput.val(displayColor);\r\n }\r\n\r\n if (opts.showPalette) {\r\n drawPalette();\r\n }\r\n\r\n drawInitial();\r\n }\r\n\r\n function updateHelperLocations() {\r\n var s = currentSaturation;\r\n var v = currentValue;\r\n\r\n if (allowEmpty && isEmpty) {\r\n //if selected color is empty, hide the helpers\r\n alphaSlideHelper.hide();\r\n slideHelper.hide();\r\n dragHelper.hide();\r\n } else {\r\n //make sure helpers are visible\r\n alphaSlideHelper.show();\r\n slideHelper.show();\r\n dragHelper.show();\r\n\r\n // Where to show the little circle in that displays your current selected color\r\n var dragX = s * dragWidth;\r\n var dragY = dragHeight - v * dragHeight;\r\n dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight));\r\n dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight));\r\n dragHelper.css({\r\n top: dragY + 'px',\r\n left: dragX + 'px',\r\n });\r\n\r\n var alphaX = currentAlpha * alphaWidth;\r\n alphaSlideHelper.css({\r\n left: alphaX - alphaSlideHelperWidth / 2 + 'px',\r\n });\r\n\r\n // Where to show the bar that displays your current selected hue\r\n var slideY = currentHue * slideHeight;\r\n slideHelper.css({\r\n top: slideY - slideHelperHeight + 'px',\r\n });\r\n }\r\n }\r\n\r\n function updateOriginalInput(fireCallback) {\r\n var color = get(),\r\n displayColor = '',\r\n hasChanged = isDefault ? true : !tinycolor.equals(color, colorOnShow);\r\n\r\n if (color) {\r\n displayColor = color.toString(currentPreferredFormat);\r\n // Update the selection palette with the current color\r\n !visible && addColorToSelectionPalette(color);\r\n }\r\n\r\n if (isInput) {\r\n boundElement.val(displayColor);\r\n }\r\n\r\n if (fireCallback && hasChanged) {\r\n callbacks.change(color);\r\n boundElement.trigger('change', [color]);\r\n }\r\n }\r\n\r\n function reflow() {\r\n if (!visible) {\r\n return; // Calculations would be useless and wouldn't be reliable anyways\r\n }\r\n dragWidth = dragger.width();\r\n dragHeight = dragger.height();\r\n dragHelperHeight = dragHelper.height();\r\n slideWidth = slider.width();\r\n slideHeight = slider.height();\r\n slideHelperHeight = slideHelper.height();\r\n alphaWidth = alphaSlider.width();\r\n alphaSlideHelperWidth = alphaSlideHelper.width();\r\n\r\n if (!flat) {\r\n container.css('position', 'absolute');\r\n if (opts.offset) {\r\n container.offset(opts.offset);\r\n } else {\r\n container.offset(getOffset(container, offsetElement));\r\n }\r\n }\r\n\r\n updateHelperLocations();\r\n\r\n if (opts.showPalette) {\r\n drawPalette();\r\n }\r\n\r\n boundElement.trigger('reflow.spectrum');\r\n }\r\n\r\n function destroy() {\r\n boundElement.show();\r\n offsetElement.unbind('click.spectrum touchstart.spectrum');\r\n container.remove();\r\n replacer.remove();\r\n spectrums[spect.id] = null;\r\n }\r\n\r\n function option(optionName, optionValue) {\r\n if (optionName === undefined) {\r\n return $.extend({}, opts);\r\n }\r\n if (optionValue === undefined) {\r\n return opts[optionName];\r\n }\r\n\r\n opts[optionName] = optionValue;\r\n\r\n if (optionName === 'preferredFormat') {\r\n currentPreferredFormat = opts.preferredFormat;\r\n }\r\n applyOptions();\r\n }\r\n\r\n function enable() {\r\n disabled = false;\r\n boundElement.attr('disabled', false);\r\n offsetElement.removeClass('sp-disabled');\r\n }\r\n\r\n function disable() {\r\n hide();\r\n disabled = true;\r\n boundElement.attr('disabled', true);\r\n offsetElement.addClass('sp-disabled');\r\n }\r\n\r\n function setOffset(coord) {\r\n opts.offset = coord;\r\n reflow();\r\n }\r\n\r\n initialize();\r\n\r\n var spect = {\r\n show: show,\r\n hide: hide,\r\n toggle: toggle,\r\n reflow: reflow,\r\n option: option,\r\n enable: enable,\r\n disable: disable,\r\n offset: setOffset,\r\n set: function (c) {\r\n set(c);\r\n updateOriginalInput();\r\n },\r\n get: get,\r\n destroy: destroy,\r\n container: container,\r\n };\r\n\r\n spect.id = spectrums.push(spect) - 1;\r\n\r\n return spect;\r\n }\r\n\r\n /**\r\n * checkOffset - get the offset below/above and left/right element depending on screen position\r\n * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js\r\n */\r\n function getOffset(picker, input) {\r\n var extraY = 0;\r\n var dpWidth = picker.outerWidth();\r\n var dpHeight = picker.outerHeight();\r\n var inputHeight = input.outerHeight();\r\n var doc = picker[0].ownerDocument;\r\n var docElem = doc.documentElement;\r\n var cW = docElem.clientWidth;\r\n var cH = docElem.clientHeight;\r\n var scL = $(doc).scrollLeft();\r\n var scT = $(doc).scrollTop();\r\n var viewWidth = cW + scL;\r\n var viewHeight = cH + scT;\r\n var offset = input.offset();\r\n\r\n offset.top += inputHeight;\r\n\r\n offset.left -= Math.min(\r\n offset.left,\r\n offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0\r\n );\r\n\r\n offset.top -= Math.min(\r\n offset.top,\r\n offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY\r\n );\r\n\r\n return offset;\r\n }\r\n\r\n /**\r\n * noop - do nothing\r\n */\r\n function noop() {}\r\n\r\n /**\r\n * stopPropagation - makes the code only doing this a little easier to read in line\r\n */\r\n function stopPropagation(e) {\r\n e.stopPropagation();\r\n }\r\n\r\n /**\r\n * Create a function bound to a given object\r\n * Thanks to underscore.js\r\n */\r\n function bind(func, obj) {\r\n var slice = Array.prototype.slice;\r\n var args = slice.call(arguments, 2);\r\n return function () {\r\n return func.apply(obj, args.concat(slice.call(arguments)));\r\n };\r\n }\r\n\r\n /**\r\n * Lightweight drag helper. Handles containment within the element, so that\r\n * when dragging, the x is within [0,element.width] and y is within [0,element.height]\r\n */\r\n function draggable(element, onmove, onstart, onstop) {\r\n onmove = onmove || function () {};\r\n onstart = onstart || function () {};\r\n onstop = onstop || function () {};\r\n var doc = document;\r\n var dragging = false;\r\n var offset = {};\r\n var maxHeight = 0;\r\n var maxWidth = 0;\r\n var hasTouch = 'ontouchstart' in window;\r\n\r\n var duringDragEvents = {};\r\n duringDragEvents['selectstart'] = prevent;\r\n duringDragEvents['dragstart'] = prevent;\r\n duringDragEvents['touchmove mousemove'] = move;\r\n duringDragEvents['touchend mouseup'] = stop;\r\n\r\n function prevent(e) {\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n }\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n e.returnValue = false;\r\n }\r\n\r\n function move(e) {\r\n if (dragging) {\r\n // Mouseup happened outside of window\r\n if (IE && doc.documentMode < 9 && !e.button) {\r\n return stop();\r\n }\r\n\r\n var t0 = e && e.touches && e.touches[0];\r\n var pageX = (t0 && t0.pageX) || e.pageX;\r\n var pageY = (t0 && t0.pageY) || e.pageY;\r\n\r\n var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));\r\n var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));\r\n\r\n if (hasTouch) {\r\n // Stop scrolling in iOS\r\n prevent(e);\r\n }\r\n\r\n onmove.apply(element, [dragX, dragY, e]);\r\n }\r\n }\r\n\r\n function start(e) {\r\n var rightclick = e.which ? e.which == 3 : e.button == 2;\r\n\r\n if (!rightclick && !dragging) {\r\n if (onstart.apply(element, arguments) !== false) {\r\n dragging = true;\r\n maxHeight = $(element).height();\r\n maxWidth = $(element).width();\r\n offset = $(element).offset();\r\n\r\n $(doc).bind(duringDragEvents);\r\n $(doc.body).addClass('sp-dragging');\r\n\r\n move(e);\r\n\r\n prevent(e);\r\n }\r\n }\r\n }\r\n\r\n function stop() {\r\n if (dragging) {\r\n $(doc).unbind(duringDragEvents);\r\n $(doc.body).removeClass('sp-dragging');\r\n\r\n // Wait a tick before notifying observers to allow the click event\r\n // to fire in Chrome.\r\n setTimeout(function () {\r\n onstop.apply(element, arguments);\r\n }, 0);\r\n }\r\n dragging = false;\r\n }\r\n\r\n $(element).bind('touchstart mousedown', start);\r\n }\r\n\r\n function throttle(func, wait, debounce) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var throttler = function () {\r\n timeout = null;\r\n func.apply(context, args);\r\n };\r\n if (debounce) clearTimeout(timeout);\r\n if (debounce || !timeout) timeout = setTimeout(throttler, wait);\r\n };\r\n }\r\n\r\n function inputTypeColorSupport() {\r\n return $.fn.spectrum.inputTypeColorSupport();\r\n }\r\n\r\n /**\r\n * Define a jQuery plugin\r\n */\r\n var dataID = 'spectrum.id';\r\n $.fn.spectrum = function (opts, extra) {\r\n if (typeof opts == 'string') {\r\n var returnValue = this;\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n this.each(function () {\r\n var spect = spectrums[$(this).data(dataID)];\r\n if (spect) {\r\n var method = spect[opts];\r\n if (!method) {\r\n throw new Error(\"Spectrum: no such method: '\" + opts + \"'\");\r\n }\r\n\r\n if (opts == 'get') {\r\n returnValue = spect.get();\r\n } else if (opts == 'container') {\r\n returnValue = spect.container;\r\n } else if (opts == 'option') {\r\n returnValue = spect.option.apply(spect, args);\r\n } else if (opts == 'destroy') {\r\n spect.destroy();\r\n $(this).removeData(dataID);\r\n } else {\r\n method.apply(spect, args);\r\n }\r\n }\r\n });\r\n\r\n return returnValue;\r\n }\r\n\r\n // Initializing a new instance of spectrum\r\n return this.spectrum('destroy').each(function () {\r\n var options = $.extend({}, opts, $(this).data());\r\n var spect = spectrum(this, options);\r\n $(this).data(dataID, spect.id);\r\n });\r\n };\r\n\r\n $.fn.spectrum.load = true;\r\n $.fn.spectrum.loadOpts = {};\r\n $.fn.spectrum.draggable = draggable;\r\n $.fn.spectrum.defaults = defaultOpts;\r\n $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {\r\n if (typeof inputTypeColorSupport._cachedResult === 'undefined') {\r\n var colorInput = $(\"\")[0]; // if color element is supported, value will default to not null\r\n inputTypeColorSupport._cachedResult = colorInput.type === 'color' && colorInput.value !== '';\r\n }\r\n return inputTypeColorSupport._cachedResult;\r\n };\r\n\r\n $.spectrum = {};\r\n $.spectrum.localization = {};\r\n $.spectrum.palettes = {};\r\n\r\n $.fn.spectrum.processNativeColorInputs = function () {\r\n var colorInputs = $('input[type=color]');\r\n if (colorInputs.length && !inputTypeColorSupport()) {\r\n colorInputs.spectrum({\r\n preferredFormat: 'hex6',\r\n });\r\n }\r\n };\r\n\r\n // TinyColor v1.1.2\r\n // https://github.com/bgrins/TinyColor\r\n // Brian Grinstead, MIT License\r\n\r\n //(function() {\r\n\r\n var trimLeft = /^[\\s,#]+/,\r\n trimRight = /\\s+$/,\r\n tinyCounter = 0,\r\n math = Math,\r\n mathRound = math.round,\r\n mathMin = math.min,\r\n mathMax = math.max,\r\n mathRandom = math.random;\r\n\r\n var tinycolor = function (color, opts) {\r\n color = color ? color : '';\r\n opts = opts || {};\r\n\r\n // If input is already a tinycolor, return itself\r\n if (color instanceof tinycolor) {\r\n return color;\r\n }\r\n // If we are called as a function, call using new instead\r\n if (!(this instanceof tinycolor)) {\r\n return new tinycolor(color, opts);\r\n }\r\n\r\n var rgb = inputToRGB(color);\r\n (this._originalInput = color),\r\n (this._r = rgb.r),\r\n (this._g = rgb.g),\r\n (this._b = rgb.b),\r\n (this._a = rgb.a),\r\n (this._roundA = mathRound(100 * this._a) / 100),\r\n (this._format = opts.format || rgb.format);\r\n this._gradientType = opts.gradientType;\r\n\r\n // Don't let the range of [0,255] come back in [0,1].\r\n // Potentially lose a little bit of precision here, but will fix issues where\r\n // .5 gets interpreted as half of the total, instead of half of 1\r\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\r\n if (this._r < 1) {\r\n this._r = mathRound(this._r);\r\n }\r\n if (this._g < 1) {\r\n this._g = mathRound(this._g);\r\n }\r\n if (this._b < 1) {\r\n this._b = mathRound(this._b);\r\n }\r\n\r\n this._ok = rgb.ok;\r\n this._tc_id = tinyCounter++;\r\n };\r\n\r\n tinycolor.prototype = {\r\n isDark: function () {\r\n return this.getBrightness() < 128;\r\n },\r\n isLight: function () {\r\n return !this.isDark();\r\n },\r\n isValid: function () {\r\n return this._ok;\r\n },\r\n getOriginalInput: function () {\r\n return this._originalInput;\r\n },\r\n getFormat: function () {\r\n return this._format;\r\n },\r\n getAlpha: function () {\r\n return this._a;\r\n },\r\n getBrightness: function () {\r\n var rgb = this.toRgb();\r\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\r\n },\r\n setAlpha: function (value) {\r\n this._a = boundAlpha(value);\r\n this._roundA = mathRound(100 * this._a) / 100;\r\n return this;\r\n },\r\n toHsv: function () {\r\n var hsv = rgbToHsv(this._r, this._g, this._b);\r\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\r\n },\r\n toHsvString: function () {\r\n var hsv = rgbToHsv(this._r, this._g, this._b);\r\n var h = mathRound(hsv.h * 360),\r\n s = mathRound(hsv.s * 100),\r\n v = mathRound(hsv.v * 100);\r\n return this._a == 1\r\n ? 'hsv(' + h + ', ' + s + '%, ' + v + '%)'\r\n : 'hsva(' + h + ', ' + s + '%, ' + v + '%, ' + this._roundA + ')';\r\n },\r\n toHsl: function () {\r\n var hsl = rgbToHsl(this._r, this._g, this._b);\r\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\r\n },\r\n toHslString: function () {\r\n var hsl = rgbToHsl(this._r, this._g, this._b);\r\n var h = mathRound(hsl.h * 360),\r\n s = mathRound(hsl.s * 100),\r\n l = mathRound(hsl.l * 100);\r\n return this._a == 1\r\n ? 'hsl(' + h + ', ' + s + '%, ' + l + '%)'\r\n : 'hsla(' + h + ', ' + s + '%, ' + l + '%, ' + this._roundA + ')';\r\n },\r\n toHex: function (allow3Char) {\r\n return rgbToHex(this._r, this._g, this._b, allow3Char);\r\n },\r\n toHexString: function (allow3Char) {\r\n return '#' + this.toHex(allow3Char);\r\n },\r\n toHex8: function () {\r\n return rgbaToHex(this._r, this._g, this._b, this._a);\r\n },\r\n toHex8String: function () {\r\n return '#' + this.toHex8();\r\n },\r\n toRgb: function () {\r\n return {\r\n r: mathRound(this._r),\r\n g: mathRound(this._g),\r\n b: mathRound(this._b),\r\n a: this._a,\r\n };\r\n },\r\n toRgbString: function () {\r\n return this._a == 1\r\n ? 'rgb(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ')'\r\n : 'rgba(' +\r\n mathRound(this._r) +\r\n ', ' +\r\n mathRound(this._g) +\r\n ', ' +\r\n mathRound(this._b) +\r\n ', ' +\r\n this._roundA +\r\n ')';\r\n },\r\n toPercentageRgb: function () {\r\n return {\r\n r: mathRound(bound01(this._r, 255) * 100) + '%',\r\n g: mathRound(bound01(this._g, 255) * 100) + '%',\r\n b: mathRound(bound01(this._b, 255) * 100) + '%',\r\n a: this._a,\r\n };\r\n },\r\n toPercentageRgbString: function () {\r\n return this._a == 1\r\n ? 'rgb(' +\r\n mathRound(bound01(this._r, 255) * 100) +\r\n '%, ' +\r\n mathRound(bound01(this._g, 255) * 100) +\r\n '%, ' +\r\n mathRound(bound01(this._b, 255) * 100) +\r\n '%)'\r\n : 'rgba(' +\r\n mathRound(bound01(this._r, 255) * 100) +\r\n '%, ' +\r\n mathRound(bound01(this._g, 255) * 100) +\r\n '%, ' +\r\n mathRound(bound01(this._b, 255) * 100) +\r\n '%, ' +\r\n this._roundA +\r\n ')';\r\n },\r\n toName: function () {\r\n if (this._a === 0) {\r\n return 'transparent';\r\n }\r\n\r\n if (this._a < 1) {\r\n return false;\r\n }\r\n\r\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\r\n },\r\n toFilter: function (secondColor) {\r\n var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);\r\n var secondHex8String = hex8String;\r\n var gradientType = this._gradientType ? 'GradientType = 1, ' : '';\r\n\r\n if (secondColor) {\r\n var s = tinycolor(secondColor);\r\n secondHex8String = s.toHex8String();\r\n }\r\n\r\n return (\r\n 'progid:DXImageTransform.Microsoft.gradient(' +\r\n gradientType +\r\n 'startColorstr=' +\r\n hex8String +\r\n ',endColorstr=' +\r\n secondHex8String +\r\n ')'\r\n );\r\n },\r\n toString: function (format) {\r\n var formatSet = !!format;\r\n format = format || this._format;\r\n\r\n var formattedString = false;\r\n var hasAlpha = this._a < 1 && this._a >= 0;\r\n var needsAlphaFormat =\r\n !formatSet && hasAlpha && (format === 'hex' || format === 'hex6' || format === 'hex3' || format === 'name');\r\n\r\n if (needsAlphaFormat) {\r\n // Special case for \"transparent\", all other non-alpha formats\r\n // will return rgba when there is transparency.\r\n if (format === 'name' && this._a === 0) {\r\n return this.toName();\r\n }\r\n return this.toRgbString();\r\n }\r\n if (format === 'rgb') {\r\n formattedString = this.toRgbString();\r\n }\r\n if (format === 'prgb') {\r\n formattedString = this.toPercentageRgbString();\r\n }\r\n if (format === 'hex' || format === 'hex6') {\r\n formattedString = this.toHexString();\r\n }\r\n if (format === 'hex3') {\r\n formattedString = this.toHexString(true);\r\n }\r\n if (format === 'hex8') {\r\n formattedString = this.toHex8String();\r\n }\r\n if (format === 'name') {\r\n formattedString = this.toName();\r\n }\r\n if (format === 'hsl') {\r\n formattedString = this.toHslString();\r\n }\r\n if (format === 'hsv') {\r\n formattedString = this.toHsvString();\r\n }\r\n\r\n return formattedString || this.toHexString();\r\n },\r\n\r\n _applyModification: function (fn, args) {\r\n var color = fn.apply(null, [this].concat([].slice.call(args)));\r\n this._r = color._r;\r\n this._g = color._g;\r\n this._b = color._b;\r\n this.setAlpha(color._a);\r\n return this;\r\n },\r\n lighten: function () {\r\n return this._applyModification(lighten, arguments);\r\n },\r\n brighten: function () {\r\n return this._applyModification(brighten, arguments);\r\n },\r\n darken: function () {\r\n return this._applyModification(darken, arguments);\r\n },\r\n desaturate: function () {\r\n return this._applyModification(desaturate, arguments);\r\n },\r\n saturate: function () {\r\n return this._applyModification(saturate, arguments);\r\n },\r\n greyscale: function () {\r\n return this._applyModification(greyscale, arguments);\r\n },\r\n spin: function () {\r\n return this._applyModification(spin, arguments);\r\n },\r\n\r\n _applyCombination: function (fn, args) {\r\n return fn.apply(null, [this].concat([].slice.call(args)));\r\n },\r\n analogous: function () {\r\n return this._applyCombination(analogous, arguments);\r\n },\r\n complement: function () {\r\n return this._applyCombination(complement, arguments);\r\n },\r\n monochromatic: function () {\r\n return this._applyCombination(monochromatic, arguments);\r\n },\r\n splitcomplement: function () {\r\n return this._applyCombination(splitcomplement, arguments);\r\n },\r\n triad: function () {\r\n return this._applyCombination(triad, arguments);\r\n },\r\n tetrad: function () {\r\n return this._applyCombination(tetrad, arguments);\r\n },\r\n };\r\n\r\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\r\n // String input requires \"1.0\" as input, so 1 will be treated as 1\r\n tinycolor.fromRatio = function (color, opts) {\r\n if (typeof color == 'object') {\r\n var newColor = {};\r\n for (var i in color) {\r\n if (color.hasOwnProperty(i)) {\r\n if (i === 'a') {\r\n newColor[i] = color[i];\r\n } else {\r\n newColor[i] = convertToPercentage(color[i]);\r\n }\r\n }\r\n }\r\n color = newColor;\r\n }\r\n\r\n return tinycolor(color, opts);\r\n };\r\n\r\n // Given a string or object, convert that input to RGB\r\n // Possible string inputs:\r\n //\r\n // \"red\"\r\n // \"#f00\" or \"f00\"\r\n // \"#ff0000\" or \"ff0000\"\r\n // \"#ff000000\" or \"ff000000\"\r\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\r\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\r\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\r\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\r\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\r\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\r\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\r\n //\r\n function inputToRGB(color) {\r\n var rgb = { r: 0, g: 0, b: 0 };\r\n var a = 1;\r\n var ok = false;\r\n var format = false;\r\n\r\n if (typeof color == 'string') {\r\n color = stringInputToObject(color);\r\n }\r\n\r\n if (typeof color == 'object') {\r\n if (color.hasOwnProperty('r') && color.hasOwnProperty('g') && color.hasOwnProperty('b')) {\r\n rgb = rgbToRgb(color.r, color.g, color.b);\r\n ok = true;\r\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\r\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('v')) {\r\n color.s = convertToPercentage(color.s);\r\n color.v = convertToPercentage(color.v);\r\n rgb = hsvToRgb(color.h, color.s, color.v);\r\n ok = true;\r\n format = 'hsv';\r\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('l')) {\r\n color.s = convertToPercentage(color.s);\r\n color.l = convertToPercentage(color.l);\r\n rgb = hslToRgb(color.h, color.s, color.l);\r\n ok = true;\r\n format = 'hsl';\r\n }\r\n\r\n if (color.hasOwnProperty('a')) {\r\n a = color.a;\r\n }\r\n }\r\n\r\n a = boundAlpha(a);\r\n\r\n return {\r\n ok: ok,\r\n format: color.format || format,\r\n r: mathMin(255, mathMax(rgb.r, 0)),\r\n g: mathMin(255, mathMax(rgb.g, 0)),\r\n b: mathMin(255, mathMax(rgb.b, 0)),\r\n a: a,\r\n };\r\n }\r\n\r\n // Conversion Functions\r\n // --------------------\r\n\r\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\r\n // \r\n\r\n // `rgbToRgb`\r\n // Handle bounds / percentage checking to conform to CSS color spec\r\n // \r\n // *Assumes:* r, g, b in [0, 255] or [0, 1]\r\n // *Returns:* { r, g, b } in [0, 255]\r\n function rgbToRgb(r, g, b) {\r\n return {\r\n r: bound01(r, 255) * 255,\r\n g: bound01(g, 255) * 255,\r\n b: bound01(b, 255) * 255,\r\n };\r\n }\r\n\r\n // `rgbToHsl`\r\n // Converts an RGB color value to HSL.\r\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\r\n // *Returns:* { h, s, l } in [0,1]\r\n function rgbToHsl(r, g, b) {\r\n r = bound01(r, 255);\r\n g = bound01(g, 255);\r\n b = bound01(b, 255);\r\n\r\n var max = mathMax(r, g, b),\r\n min = mathMin(r, g, b);\r\n var h,\r\n s,\r\n l = (max + min) / 2;\r\n\r\n if (max == min) {\r\n h = s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return { h: h, s: s, l: l };\r\n }\r\n\r\n // `hslToRgb`\r\n // Converts an HSL color value to RGB.\r\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\r\n // *Returns:* { r, g, b } in the set [0, 255]\r\n function hslToRgb(h, s, l) {\r\n var r, g, b;\r\n\r\n h = bound01(h, 360);\r\n s = bound01(s, 100);\r\n l = bound01(l, 100);\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n if (s === 0) {\r\n r = g = b = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return { r: r * 255, g: g * 255, b: b * 255 };\r\n }\r\n\r\n // `rgbToHsv`\r\n // Converts an RGB color value to HSV\r\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\r\n // *Returns:* { h, s, v } in [0,1]\r\n function rgbToHsv(r, g, b) {\r\n r = bound01(r, 255);\r\n g = bound01(g, 255);\r\n b = bound01(b, 255);\r\n\r\n var max = mathMax(r, g, b),\r\n min = mathMin(r, g, b);\r\n var h,\r\n s,\r\n v = max;\r\n\r\n var d = max - min;\r\n s = max === 0 ? 0 : d / max;\r\n\r\n if (max == min) {\r\n h = 0; // achromatic\r\n } else {\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n return { h: h, s: s, v: v };\r\n }\r\n\r\n // `hsvToRgb`\r\n // Converts an HSV color value to RGB.\r\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\r\n // *Returns:* { r, g, b } in the set [0, 255]\r\n function hsvToRgb(h, s, v) {\r\n h = bound01(h, 360) * 6;\r\n s = bound01(s, 100);\r\n v = bound01(v, 100);\r\n\r\n var i = math.floor(h),\r\n f = h - i,\r\n p = v * (1 - s),\r\n q = v * (1 - f * s),\r\n t = v * (1 - (1 - f) * s),\r\n mod = i % 6,\r\n r = [v, q, p, p, t, v][mod],\r\n g = [t, v, v, q, p, p][mod],\r\n b = [p, p, t, v, v, q][mod];\r\n\r\n return { r: r * 255, g: g * 255, b: b * 255 };\r\n }\r\n\r\n // `rgbToHex`\r\n // Converts an RGB color to hex\r\n // Assumes r, g, and b are contained in the set [0, 255]\r\n // Returns a 3 or 6 character hex\r\n function rgbToHex(r, g, b, allow3Char) {\r\n var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))];\r\n\r\n // Return a 3 character hex if possible\r\n if (\r\n allow3Char &&\r\n hex[0].charAt(0) == hex[0].charAt(1) &&\r\n hex[1].charAt(0) == hex[1].charAt(1) &&\r\n hex[2].charAt(0) == hex[2].charAt(1)\r\n ) {\r\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\r\n }\r\n\r\n return hex.join('');\r\n }\r\n // `rgbaToHex`\r\n // Converts an RGBA color plus alpha transparency to hex\r\n // Assumes r, g, b and a are contained in the set [0, 255]\r\n // Returns an 8 character hex\r\n function rgbaToHex(r, g, b, a) {\r\n var hex = [\r\n pad2(convertDecimalToHex(a)),\r\n pad2(mathRound(r).toString(16)),\r\n pad2(mathRound(g).toString(16)),\r\n pad2(mathRound(b).toString(16)),\r\n ];\r\n\r\n return hex.join('');\r\n }\r\n\r\n // `equals`\r\n // Can be called with any tinycolor input\r\n tinycolor.equals = function (color1, color2) {\r\n if (!color1 || !color2) {\r\n return false;\r\n }\r\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\r\n };\r\n tinycolor.random = function () {\r\n return tinycolor.fromRatio({\r\n r: mathRandom(),\r\n g: mathRandom(),\r\n b: mathRandom(),\r\n });\r\n };\r\n\r\n // Modification Functions\r\n // ----------------------\r\n // Thanks to less.js for some of the basics here\r\n // \r\n\r\n function desaturate(color, amount) {\r\n amount = amount === 0 ? 0 : amount || 10;\r\n var hsl = tinycolor(color).toHsl();\r\n hsl.s -= amount / 100;\r\n hsl.s = clamp01(hsl.s);\r\n return tinycolor(hsl);\r\n }\r\n\r\n function saturate(color, amount) {\r\n amount = amount === 0 ? 0 : amount || 10;\r\n var hsl = tinycolor(color).toHsl();\r\n hsl.s += amount / 100;\r\n hsl.s = clamp01(hsl.s);\r\n return tinycolor(hsl);\r\n }\r\n\r\n function greyscale(color) {\r\n return tinycolor(color).desaturate(100);\r\n }\r\n\r\n function lighten(color, amount) {\r\n amount = amount === 0 ? 0 : amount || 10;\r\n var hsl = tinycolor(color).toHsl();\r\n hsl.l += amount / 100;\r\n hsl.l = clamp01(hsl.l);\r\n return tinycolor(hsl);\r\n }\r\n\r\n function brighten(color, amount) {\r\n amount = amount === 0 ? 0 : amount || 10;\r\n var rgb = tinycolor(color).toRgb();\r\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\r\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\r\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\r\n return tinycolor(rgb);\r\n }\r\n\r\n function darken(color, amount) {\r\n amount = amount === 0 ? 0 : amount || 10;\r\n var hsl = tinycolor(color).toHsl();\r\n hsl.l -= amount / 100;\r\n hsl.l = clamp01(hsl.l);\r\n return tinycolor(hsl);\r\n }\r\n\r\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\r\n // Values outside of this range will be wrapped into this range.\r\n function spin(color, amount) {\r\n var hsl = tinycolor(color).toHsl();\r\n var hue = (mathRound(hsl.h) + amount) % 360;\r\n hsl.h = hue < 0 ? 360 + hue : hue;\r\n return tinycolor(hsl);\r\n }\r\n\r\n // Combination Functions\r\n // ---------------------\r\n // Thanks to jQuery xColor for some of the ideas behind these\r\n // \r\n\r\n function complement(color) {\r\n var hsl = tinycolor(color).toHsl();\r\n hsl.h = (hsl.h + 180) % 360;\r\n return tinycolor(hsl);\r\n }\r\n\r\n function triad(color) {\r\n var hsl = tinycolor(color).toHsl();\r\n var h = hsl.h;\r\n return [\r\n tinycolor(color),\r\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\r\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }),\r\n ];\r\n }\r\n\r\n function tetrad(color) {\r\n var hsl = tinycolor(color).toHsl();\r\n var h = hsl.h;\r\n return [\r\n tinycolor(color),\r\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\r\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\r\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }),\r\n ];\r\n }\r\n\r\n function splitcomplement(color) {\r\n var hsl = tinycolor(color).toHsl();\r\n var h = hsl.h;\r\n return [\r\n tinycolor(color),\r\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\r\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\r\n ];\r\n }\r\n\r\n function analogous(color, results, slices) {\r\n results = results || 6;\r\n slices = slices || 30;\r\n\r\n var hsl = tinycolor(color).toHsl();\r\n var part = 360 / slices;\r\n var ret = [tinycolor(color)];\r\n\r\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\r\n hsl.h = (hsl.h + part) % 360;\r\n ret.push(tinycolor(hsl));\r\n }\r\n return ret;\r\n }\r\n\r\n function monochromatic(color, results) {\r\n results = results || 6;\r\n var hsv = tinycolor(color).toHsv();\r\n var h = hsv.h,\r\n s = hsv.s,\r\n v = hsv.v;\r\n var ret = [];\r\n var modification = 1 / results;\r\n\r\n while (results--) {\r\n ret.push(tinycolor({ h: h, s: s, v: v }));\r\n v = (v + modification) % 1;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // Utility Functions\r\n // ---------------------\r\n\r\n tinycolor.mix = function (color1, color2, amount) {\r\n amount = amount === 0 ? 0 : amount || 50;\r\n\r\n var rgb1 = tinycolor(color1).toRgb();\r\n var rgb2 = tinycolor(color2).toRgb();\r\n\r\n var p = amount / 100;\r\n var w = p * 2 - 1;\r\n var a = rgb2.a - rgb1.a;\r\n\r\n var w1;\r\n\r\n if (w * a == -1) {\r\n w1 = w;\r\n } else {\r\n w1 = (w + a) / (1 + w * a);\r\n }\r\n\r\n w1 = (w1 + 1) / 2;\r\n\r\n var w2 = 1 - w1;\r\n\r\n var rgba = {\r\n r: rgb2.r * w1 + rgb1.r * w2,\r\n g: rgb2.g * w1 + rgb1.g * w2,\r\n b: rgb2.b * w1 + rgb1.b * w2,\r\n a: rgb2.a * p + rgb1.a * (1 - p),\r\n };\r\n\r\n return tinycolor(rgba);\r\n };\r\n\r\n // Readability Functions\r\n // ---------------------\r\n // \r\n\r\n // `readability`\r\n // Analyze the 2 colors and returns an object with the following properties:\r\n // `brightness`: difference in brightness between the two colors\r\n // `color`: difference in color/hue between the two colors\r\n tinycolor.readability = function (color1, color2) {\r\n var c1 = tinycolor(color1);\r\n var c2 = tinycolor(color2);\r\n var rgb1 = c1.toRgb();\r\n var rgb2 = c2.toRgb();\r\n var brightnessA = c1.getBrightness();\r\n var brightnessB = c2.getBrightness();\r\n var colorDiff =\r\n Math.max(rgb1.r, rgb2.r) -\r\n Math.min(rgb1.r, rgb2.r) +\r\n Math.max(rgb1.g, rgb2.g) -\r\n Math.min(rgb1.g, rgb2.g) +\r\n Math.max(rgb1.b, rgb2.b) -\r\n Math.min(rgb1.b, rgb2.b);\r\n\r\n return {\r\n brightness: Math.abs(brightnessA - brightnessB),\r\n color: colorDiff,\r\n };\r\n };\r\n\r\n // `readable`\r\n // http://www.w3.org/TR/AERT#color-contrast\r\n // Ensure that foreground and background color combinations provide sufficient contrast.\r\n // *Example*\r\n // tinycolor.isReadable(\"#000\", \"#111\") => false\r\n tinycolor.isReadable = function (color1, color2) {\r\n var readability = tinycolor.readability(color1, color2);\r\n return readability.brightness > 125 && readability.color > 500;\r\n };\r\n\r\n // `mostReadable`\r\n // Given a base color and a list of possible foreground or background\r\n // colors for that base, returns the most readable color.\r\n // *Example*\r\n // tinycolor.mostReadable(\"#123\", [\"#fff\", \"#000\"]) => \"#000\"\r\n tinycolor.mostReadable = function (baseColor, colorList) {\r\n var bestColor = null;\r\n var bestScore = 0;\r\n var bestIsReadable = false;\r\n for (var i = 0; i < colorList.length; i++) {\r\n // We normalize both around the \"acceptable\" breaking point,\r\n // but rank brightness constrast higher than hue.\r\n\r\n var readability = tinycolor.readability(baseColor, colorList[i]);\r\n var readable = readability.brightness > 125 && readability.color > 500;\r\n var score = 3 * (readability.brightness / 125) + readability.color / 500;\r\n\r\n if (\r\n (readable && !bestIsReadable) ||\r\n (readable && bestIsReadable && score > bestScore) ||\r\n (!readable && !bestIsReadable && score > bestScore)\r\n ) {\r\n bestIsReadable = readable;\r\n bestScore = score;\r\n bestColor = tinycolor(colorList[i]);\r\n }\r\n }\r\n return bestColor;\r\n };\r\n\r\n // Big List of Colors\r\n // ------------------\r\n // \r\n var names = (tinycolor.names = {\r\n aliceblue: 'f0f8ff',\r\n antiquewhite: 'faebd7',\r\n aqua: '0ff',\r\n aquamarine: '7fffd4',\r\n azure: 'f0ffff',\r\n beige: 'f5f5dc',\r\n bisque: 'ffe4c4',\r\n black: '000',\r\n blanchedalmond: 'ffebcd',\r\n blue: '00f',\r\n blueviolet: '8a2be2',\r\n brown: 'a52a2a',\r\n burlywood: 'deb887',\r\n burntsienna: 'ea7e5d',\r\n cadetblue: '5f9ea0',\r\n chartreuse: '7fff00',\r\n chocolate: 'd2691e',\r\n coral: 'ff7f50',\r\n cornflowerblue: '6495ed',\r\n cornsilk: 'fff8dc',\r\n crimson: 'dc143c',\r\n cyan: '0ff',\r\n darkblue: '00008b',\r\n darkcyan: '008b8b',\r\n darkgoldenrod: 'b8860b',\r\n darkgray: 'a9a9a9',\r\n darkgreen: '006400',\r\n darkgrey: 'a9a9a9',\r\n darkkhaki: 'bdb76b',\r\n darkmagenta: '8b008b',\r\n darkolivegreen: '556b2f',\r\n darkorange: 'ff8c00',\r\n darkorchid: '9932cc',\r\n darkred: '8b0000',\r\n darksalmon: 'e9967a',\r\n darkseagreen: '8fbc8f',\r\n darkslateblue: '483d8b',\r\n darkslategray: '2f4f4f',\r\n darkslategrey: '2f4f4f',\r\n darkturquoise: '00ced1',\r\n darkviolet: '9400d3',\r\n deeppink: 'ff1493',\r\n deepskyblue: '00bfff',\r\n dimgray: '696969',\r\n dimgrey: '696969',\r\n dodgerblue: '1e90ff',\r\n firebrick: 'b22222',\r\n floralwhite: 'fffaf0',\r\n forestgreen: '228b22',\r\n fuchsia: 'f0f',\r\n gainsboro: 'dcdcdc',\r\n ghostwhite: 'f8f8ff',\r\n gold: 'ffd700',\r\n goldenrod: 'daa520',\r\n gray: '808080',\r\n green: '008000',\r\n greenyellow: 'adff2f',\r\n grey: '808080',\r\n honeydew: 'f0fff0',\r\n hotpink: 'ff69b4',\r\n indianred: 'cd5c5c',\r\n indigo: '4b0082',\r\n ivory: 'fffff0',\r\n khaki: 'f0e68c',\r\n lavender: 'e6e6fa',\r\n lavenderblush: 'fff0f5',\r\n lawngreen: '7cfc00',\r\n lemonchiffon: 'fffacd',\r\n lightblue: 'add8e6',\r\n lightcoral: 'f08080',\r\n lightcyan: 'e0ffff',\r\n lightgoldenrodyellow: 'fafad2',\r\n lightgray: 'd3d3d3',\r\n lightgreen: '90ee90',\r\n lightgrey: 'd3d3d3',\r\n lightpink: 'ffb6c1',\r\n lightsalmon: 'ffa07a',\r\n lightseagreen: '20b2aa',\r\n lightskyblue: '87cefa',\r\n lightslategray: '789',\r\n lightslategrey: '789',\r\n lightsteelblue: 'b0c4de',\r\n lightyellow: 'ffffe0',\r\n lime: '0f0',\r\n limegreen: '32cd32',\r\n linen: 'faf0e6',\r\n magenta: 'f0f',\r\n maroon: '800000',\r\n mediumaquamarine: '66cdaa',\r\n mediumblue: '0000cd',\r\n mediumorchid: 'ba55d3',\r\n mediumpurple: '9370db',\r\n mediumseagreen: '3cb371',\r\n mediumslateblue: '7b68ee',\r\n mediumspringgreen: '00fa9a',\r\n mediumturquoise: '48d1cc',\r\n mediumvioletred: 'c71585',\r\n midnightblue: '191970',\r\n mintcream: 'f5fffa',\r\n mistyrose: 'ffe4e1',\r\n moccasin: 'ffe4b5',\r\n navajowhite: 'ffdead',\r\n navy: '000080',\r\n oldlace: 'fdf5e6',\r\n olive: '808000',\r\n olivedrab: '6b8e23',\r\n orange: 'ffa500',\r\n orangered: 'ff4500',\r\n orchid: 'da70d6',\r\n palegoldenrod: 'eee8aa',\r\n palegreen: '98fb98',\r\n paleturquoise: 'afeeee',\r\n palevioletred: 'db7093',\r\n papayawhip: 'ffefd5',\r\n peachpuff: 'ffdab9',\r\n peru: 'cd853f',\r\n pink: 'ffc0cb',\r\n plum: 'dda0dd',\r\n powderblue: 'b0e0e6',\r\n purple: '800080',\r\n rebeccapurple: '663399',\r\n red: 'f00',\r\n rosybrown: 'bc8f8f',\r\n royalblue: '4169e1',\r\n saddlebrown: '8b4513',\r\n salmon: 'fa8072',\r\n sandybrown: 'f4a460',\r\n seagreen: '2e8b57',\r\n seashell: 'fff5ee',\r\n sienna: 'a0522d',\r\n silver: 'c0c0c0',\r\n skyblue: '87ceeb',\r\n slateblue: '6a5acd',\r\n slategray: '708090',\r\n slategrey: '708090',\r\n snow: 'fffafa',\r\n springgreen: '00ff7f',\r\n steelblue: '4682b4',\r\n tan: 'd2b48c',\r\n teal: '008080',\r\n thistle: 'd8bfd8',\r\n tomato: 'ff6347',\r\n turquoise: '40e0d0',\r\n violet: 'ee82ee',\r\n wheat: 'f5deb3',\r\n white: 'fff',\r\n whitesmoke: 'f5f5f5',\r\n yellow: 'ff0',\r\n yellowgreen: '9acd32',\r\n });\r\n\r\n // Make it easy to access colors via `hexNames[hex]`\r\n var hexNames = (tinycolor.hexNames = flip(names));\r\n\r\n // Utilities\r\n // ---------\r\n\r\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\r\n function flip(o) {\r\n var flipped = {};\r\n for (var i in o) {\r\n if (o.hasOwnProperty(i)) {\r\n flipped[o[i]] = i;\r\n }\r\n }\r\n return flipped;\r\n }\r\n\r\n // Return a valid alpha value [0,1] with all invalid values being set to 1\r\n function boundAlpha(a) {\r\n a = parseFloat(a);\r\n\r\n if (isNaN(a) || a < 0 || a > 1) {\r\n a = 1;\r\n }\r\n\r\n return a;\r\n }\r\n\r\n // Take input from [0, n] and return it as [0, 1]\r\n function bound01(n, max) {\r\n if (isOnePointZero(n)) {\r\n n = '100%';\r\n }\r\n\r\n var processPercent = isPercentage(n);\r\n n = mathMin(max, mathMax(0, parseFloat(n)));\r\n\r\n // Automatically convert percentage into number\r\n if (processPercent) {\r\n n = parseInt(n * max, 10) / 100;\r\n }\r\n\r\n // Handle floating point rounding errors\r\n if (math.abs(n - max) < 0.000001) {\r\n return 1;\r\n }\r\n\r\n // Convert into [0, 1] range if it isn't already\r\n return (n % max) / parseFloat(max);\r\n }\r\n\r\n // Force a number between 0 and 1\r\n function clamp01(val) {\r\n return mathMin(1, mathMax(0, val));\r\n }\r\n\r\n // Parse a base-16 hex value into a base-10 integer\r\n function parseIntFromHex(val) {\r\n return parseInt(val, 16);\r\n }\r\n\r\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\r\n // \r\n function isOnePointZero(n) {\r\n return typeof n == 'string' && n.indexOf('.') != -1 && parseFloat(n) === 1;\r\n }\r\n\r\n // Check to see if string passed in is a percentage\r\n function isPercentage(n) {\r\n return typeof n === 'string' && n.indexOf('%') != -1;\r\n }\r\n\r\n // Force a hex value to have 2 characters\r\n function pad2(c) {\r\n return c.length == 1 ? '0' + c : '' + c;\r\n }\r\n\r\n // Replace a decimal with it's percentage value\r\n function convertToPercentage(n) {\r\n if (n <= 1) {\r\n n = n * 100 + '%';\r\n }\r\n\r\n return n;\r\n }\r\n\r\n // Converts a decimal to a hex value\r\n function convertDecimalToHex(d) {\r\n return Math.round(parseFloat(d) * 255).toString(16);\r\n }\r\n // Converts a hex value to a decimal\r\n function convertHexToDecimal(h) {\r\n return parseIntFromHex(h) / 255;\r\n }\r\n\r\n var matchers = (function () {\r\n // \r\n var CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\r\n\r\n // \r\n var CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\r\n\r\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\r\n var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\r\n\r\n // Actual matching.\r\n // Parentheses and commas are optional, but not required.\r\n // Whitespace can take the place of commas or opening paren\r\n var PERMISSIVE_MATCH3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\r\n var PERMISSIVE_MATCH4 =\r\n '[\\\\s|\\\\(]+(' +\r\n CSS_UNIT +\r\n ')[,|\\\\s]+(' +\r\n CSS_UNIT +\r\n ')[,|\\\\s]+(' +\r\n CSS_UNIT +\r\n ')[,|\\\\s]+(' +\r\n CSS_UNIT +\r\n ')\\\\s*\\\\)?';\r\n\r\n return {\r\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\r\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\r\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\r\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\r\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\r\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\r\n hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\r\n hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\r\n hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\r\n };\r\n })();\r\n\r\n // `stringInputToObject`\r\n // Permissive string parsing. Take in a number of formats, and output an object\r\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\r\n function stringInputToObject(color) {\r\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\r\n var named = false;\r\n if (names[color]) {\r\n color = names[color];\r\n named = true;\r\n } else if (color == 'transparent') {\r\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\r\n }\r\n\r\n // Try to match string input using regular expressions.\r\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\r\n // Just return an object and let the conversion functions handle that.\r\n // This way the result will be the same whether the tinycolor is initialized with string or object.\r\n var match;\r\n if ((match = matchers.rgb.exec(color))) {\r\n return { r: match[1], g: match[2], b: match[3] };\r\n }\r\n if ((match = matchers.rgba.exec(color))) {\r\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\r\n }\r\n if ((match = matchers.hsl.exec(color))) {\r\n return { h: match[1], s: match[2], l: match[3] };\r\n }\r\n if ((match = matchers.hsla.exec(color))) {\r\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\r\n }\r\n if ((match = matchers.hsv.exec(color))) {\r\n return { h: match[1], s: match[2], v: match[3] };\r\n }\r\n if ((match = matchers.hsva.exec(color))) {\r\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\r\n }\r\n if ((match = matchers.hex8.exec(color))) {\r\n return {\r\n a: convertHexToDecimal(match[1]),\r\n r: parseIntFromHex(match[2]),\r\n g: parseIntFromHex(match[3]),\r\n b: parseIntFromHex(match[4]),\r\n format: named ? 'name' : 'hex8',\r\n };\r\n }\r\n if ((match = matchers.hex6.exec(color))) {\r\n return {\r\n r: parseIntFromHex(match[1]),\r\n g: parseIntFromHex(match[2]),\r\n b: parseIntFromHex(match[3]),\r\n format: named ? 'name' : 'hex',\r\n };\r\n }\r\n if ((match = matchers.hex3.exec(color))) {\r\n return {\r\n r: parseIntFromHex(match[1] + '' + match[1]),\r\n g: parseIntFromHex(match[2] + '' + match[2]),\r\n b: parseIntFromHex(match[3] + '' + match[3]),\r\n format: named ? 'name' : 'hex',\r\n };\r\n }\r\n\r\n return false;\r\n }\r\n\r\n window.tinycolor = tinycolor;\r\n //})();\r\n\r\n $(function () {\r\n if ($.fn.spectrum.load) {\r\n $.fn.spectrum.processNativeColorInputs();\r\n }\r\n });\r\n}\r\n","import Backbone from 'backbone';\r\nimport { bindAll, isUndefined, indexOf } from 'underscore';\r\nimport { on, off } from '../../utils/mixins';\r\nimport Input from './Input';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default class InputNumber extends Input {\r\n template() {\r\n const ppfx = this.ppfx;\r\n return `\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n `;\r\n }\r\n\r\n inputClass() {\r\n const ppfx = this.ppfx;\r\n return this.opts.contClass || `${ppfx}field ${ppfx}field-integer`;\r\n }\r\n\r\n constructor(opts = {}) {\r\n super(opts);\r\n bindAll(this, 'moveIncrement', 'upIncrement');\r\n this.doc = document;\r\n this.listenTo(this.model, 'change:unit', this.handleModelChange);\r\n }\r\n\r\n /**\r\n * Set value to the model\r\n * @param {string} value\r\n * @param {Object} opts\r\n */\r\n setValue(value, opts) {\r\n var opt = opts || {};\r\n var valid = this.validateInputValue(value, { deepCheck: 1 });\r\n var validObj = { value: valid.value };\r\n\r\n // If found some unit value\r\n if (valid.unit || valid.force) {\r\n validObj.unit = valid.unit;\r\n }\r\n\r\n this.model.set(validObj, opt);\r\n\r\n // Generally I get silent when I need to reflect data to view without\r\n // reupdating the target\r\n if (opt.silent) {\r\n this.handleModelChange();\r\n }\r\n }\r\n\r\n /**\r\n * Handled when the view is changed\r\n */\r\n handleChange(e) {\r\n e.stopPropagation();\r\n this.setValue(this.getInputEl().value);\r\n this.elementUpdated();\r\n }\r\n\r\n /**\r\n * Handled when the view is changed\r\n */\r\n handleUnitChange(e) {\r\n e.stopPropagation();\r\n var value = this.getUnitEl().value;\r\n this.model.set('unit', value);\r\n this.elementUpdated();\r\n }\r\n\r\n /**\r\n * Handled when user uses keyboard\r\n */\r\n handleKeyDown(e) {\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n this.upArrowClick();\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n this.downArrowClick();\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the element of the property is updated\r\n */\r\n elementUpdated() {\r\n this.model.trigger('el:change');\r\n }\r\n\r\n /**\r\n * Updates the view when the model is changed\r\n * */\r\n handleModelChange() {\r\n const model = this.model;\r\n this.getInputEl().value = model.get('value');\r\n const unitEl = this.getUnitEl();\r\n unitEl && (unitEl.value = model.get('unit') || '');\r\n }\r\n\r\n /**\r\n * Get the unit element\r\n * @return {HTMLElement}\r\n */\r\n getUnitEl() {\r\n if (!this.unitEl) {\r\n const model = this.model;\r\n const units = model.get('units') || [];\r\n\r\n if (units.length) {\r\n const options = [''];\r\n\r\n units.forEach(unit => {\r\n const selected = unit == model.get('unit') ? 'selected' : '';\r\n options.push(``);\r\n });\r\n\r\n const temp = document.createElement('div');\r\n temp.innerHTML = ``;\r\n this.unitEl = temp.firstChild;\r\n }\r\n }\r\n\r\n return this.unitEl;\r\n }\r\n\r\n /**\r\n * Invoked when the up arrow is clicked\r\n * */\r\n upArrowClick() {\r\n const { model } = this;\r\n const step = model.get('step');\r\n let value = parseFloat(model.get('value'));\r\n this.setValue(this.normalizeValue(value + step));\r\n this.elementUpdated();\r\n }\r\n\r\n /**\r\n * Invoked when the down arrow is clicked\r\n * */\r\n downArrowClick() {\r\n const { model } = this;\r\n const step = model.get('step');\r\n const value = parseFloat(model.get('value'));\r\n this.setValue(this.normalizeValue(value - step));\r\n this.elementUpdated();\r\n }\r\n\r\n /**\r\n * Change easily integer input value with click&drag method\r\n * @param Event\r\n *\r\n * @return void\r\n * */\r\n downIncrement(e) {\r\n e.preventDefault();\r\n this.moved = 0;\r\n var value = this.model.get('value') || 0;\r\n value = this.normalizeValue(value);\r\n this.current = { y: e.pageY, val: value };\r\n on(this.doc, 'mousemove', this.moveIncrement);\r\n on(this.doc, 'mouseup', this.upIncrement);\r\n }\r\n\r\n /** While the increment is clicked, moving the mouse will update input value\r\n * @param Object\r\n *\r\n * @return bool\r\n * */\r\n moveIncrement(ev) {\r\n this.moved = 1;\r\n const model = this.model;\r\n const step = model.get('step');\r\n const data = this.current;\r\n var pos = this.normalizeValue(data.val + (data.y - ev.pageY) * step);\r\n const { value, unit } = this.validateInputValue(pos);\r\n this.prValue = value;\r\n model.set({ value, unit }, { avoidStore: 1 });\r\n return false;\r\n }\r\n\r\n /**\r\n * Stop moveIncrement method\r\n * */\r\n upIncrement() {\r\n const model = this.model;\r\n const step = model.get('step');\r\n off(this.doc, 'mouseup', this.upIncrement);\r\n off(this.doc, 'mousemove', this.moveIncrement);\r\n\r\n if (this.prValue && this.moved) {\r\n var value = this.prValue - step;\r\n model.set('value', value, { avoidStore: 1 }).set('value', value + step);\r\n this.elementUpdated();\r\n }\r\n }\r\n\r\n normalizeValue(value, defValue = 0) {\r\n const model = this.model;\r\n const step = model.get('step');\r\n let stepDecimals = 0;\r\n\r\n if (isNaN(value)) {\r\n return defValue;\r\n }\r\n\r\n value = parseFloat(value);\r\n\r\n if (Math.floor(value) !== value) {\r\n const side = step.toString().split('.')[1];\r\n stepDecimals = side ? side.length : 0;\r\n }\r\n\r\n return stepDecimals ? parseFloat(value.toFixed(stepDecimals)) : value;\r\n }\r\n\r\n /**\r\n * Validate input value\r\n * @param {String} value Raw value\r\n * @param {Object} opts Options\r\n * @return {Object} Validated string\r\n */\r\n validateInputValue(value, opts = {}) {\r\n var force = 0;\r\n var opt = opts || {};\r\n var model = this.model;\r\n const defValue = ''; //model.get('defaults');\r\n var val = !isUndefined(value) ? value : defValue;\r\n var units = opts.units || model.get('units') || [];\r\n var unit = model.get('unit') || (units.length && units[0]) || '';\r\n var max = !isUndefined(opts.max) ? opts.max : model.get('max');\r\n var min = !isUndefined(opts.min) ? opts.min : model.get('min');\r\n var limitlessMax = !!model.get('limitlessMax');\r\n var limitlessMin = !!model.get('limitlessMin');\r\n\r\n if (opt.deepCheck) {\r\n var fixed = model.get('fixedValues') || [];\r\n\r\n if (val === '') unit = '';\r\n\r\n if (val) {\r\n // If the value is one of the fixed values I leave it as it is\r\n var regFixed = new RegExp('^' + fixed.join('|'), 'g');\r\n if (fixed.length && regFixed.test(val)) {\r\n val = val.match(regFixed)[0];\r\n unit = '';\r\n force = 1;\r\n } else {\r\n var valCopy = val + '';\r\n val += ''; // Make it suitable for replace\r\n val = parseFloat(val.replace(',', '.'));\r\n val = !isNaN(val) ? val : defValue;\r\n var uN = valCopy.replace(val, '');\r\n // Check if exists as unit\r\n if (indexOf(units, uN) >= 0) unit = uN;\r\n }\r\n }\r\n }\r\n\r\n if (!limitlessMax && !isUndefined(max) && max !== '') val = val > max ? max : val;\r\n if (!limitlessMin && !isUndefined(min) && min !== '') val = val < min ? min : val;\r\n\r\n return {\r\n force,\r\n value: val,\r\n unit,\r\n };\r\n }\r\n\r\n render() {\r\n Input.prototype.render.call(this);\r\n this.unitEl = null;\r\n const unit = this.getUnitEl();\r\n unit && this.$el.find(`.${this.ppfx}field-units`).get(0).appendChild(unit);\r\n return this;\r\n }\r\n}\r\n\r\nInputNumber.prototype.events = {\r\n 'change input': 'handleChange',\r\n 'change select': 'handleUnitChange',\r\n 'click [data-arrow-up]': 'upArrowClick',\r\n 'click [data-arrow-down]': 'downArrowClick',\r\n 'mousedown [data-arrows]': 'downIncrement',\r\n keydown: 'handleKeyDown',\r\n};\r\n","import { includes } from 'underscore';\r\nimport Backbone from 'backbone';\r\n\r\nexport default class DomainViews extends Backbone.View {\r\n // Defines the View per type\r\n itemsView = '';\r\n\r\n itemType = 'type';\r\n\r\n reuseView = false;\r\n\r\n constructor(opts = {}, config, autoAdd = false) {\r\n super(opts);\r\n this.config = config || opts.config || {};\r\n autoAdd && this.listenTo(this.collection, 'add', this.addTo);\r\n this.items = [];\r\n }\r\n\r\n /**\r\n * Add new model to the collection\r\n * @param {Model} model\r\n * @private\r\n * */\r\n addTo(model) {\r\n this.add(model);\r\n }\r\n\r\n itemViewNotFound(type) {\r\n const { config, ns } = this;\r\n const { em } = config;\r\n const warn = `${ns ? `[${ns}]: ` : ''}'${type}' type not found`;\r\n em && em.logWarning(warn);\r\n }\r\n\r\n /**\r\n * Render new model inside the view\r\n * @param {Model} model\r\n * @param {Object} fragment Fragment collection\r\n * @private\r\n * */\r\n add(model, fragment) {\r\n const { config, reuseView, items, itemsView = {} } = this;\r\n const inputTypes = [\r\n 'button',\r\n 'checkbox',\r\n 'color',\r\n 'date',\r\n 'datetime-local',\r\n 'email',\r\n 'file',\r\n 'hidden',\r\n 'image',\r\n 'month',\r\n 'number',\r\n 'password',\r\n 'radio',\r\n 'range',\r\n 'reset',\r\n 'search',\r\n 'submit',\r\n 'tel',\r\n 'text',\r\n 'time',\r\n 'url',\r\n 'week',\r\n ];\r\n var frag = fragment || null;\r\n var itemView = this.itemView;\r\n var typeField = model.get(this.itemType);\r\n let view;\r\n\r\n if (itemsView[typeField]) {\r\n itemView = itemsView[typeField];\r\n } else if (typeField && !itemsView[typeField] && !includes(inputTypes, typeField)) {\r\n this.itemViewNotFound(typeField);\r\n }\r\n\r\n if (model.view && reuseView) {\r\n view = model.view;\r\n } else {\r\n view = new itemView({ model, config }, config);\r\n }\r\n\r\n items && items.push(view);\r\n const rendered = view.render().el;\r\n\r\n if (frag) frag.appendChild(rendered);\r\n else this.$el.append(rendered);\r\n }\r\n\r\n render() {\r\n var frag = document.createDocumentFragment();\r\n this.clearItems();\r\n this.$el.empty();\r\n\r\n if (this.collection.length)\r\n this.collection.each(function (model) {\r\n this.add(model, frag);\r\n }, this);\r\n\r\n this.$el.append(frag);\r\n this.onRender();\r\n return this;\r\n }\r\n\r\n onRender() {}\r\n\r\n onRemoveBefore() {}\r\n onRemove() {}\r\n\r\n remove(opts = {}) {\r\n const { items } = this;\r\n this.onRemoveBefore(items, opts);\r\n this.clearItems();\r\n Backbone.View.prototype.remove.apply(this, arguments);\r\n this.onRemove(items, opts);\r\n }\r\n\r\n clearItems() {\r\n const items = this.items || [];\r\n // TODO Traits do not update the target anymore\r\n // items.forEach(item => item.remove());\r\n // this.items = [];\r\n }\r\n}\r\n\r\n// Default view\r\nDomainViews.prototype.itemView = '';\r\n","const traitInputAttr = { placeholder: 'eg. Text here' };\r\n\r\nexport default {\r\n assetManager: {\r\n addButton: 'Add image',\r\n inputPlh: 'http://path/to/the/image.jpg',\r\n modalTitle: 'Select Image',\r\n uploadTitle: 'Drop files here or click to upload',\r\n },\r\n // Here just as a reference, GrapesJS core doesn't contain any block,\r\n // so this should be omitted from other local files\r\n blockManager: {\r\n labels: {\r\n // 'block-id': 'Block Label',\r\n },\r\n categories: {\r\n // 'category-id': 'Category Label',\r\n },\r\n },\r\n domComponents: {\r\n names: {\r\n '': 'Box',\r\n wrapper: 'Body',\r\n text: 'Text',\r\n comment: 'Comment',\r\n image: 'Image',\r\n video: 'Video',\r\n label: 'Label',\r\n link: 'Link',\r\n map: 'Map',\r\n tfoot: 'Table foot',\r\n tbody: 'Table body',\r\n thead: 'Table head',\r\n table: 'Table',\r\n row: 'Table row',\r\n cell: 'Table cell',\r\n },\r\n },\r\n deviceManager: {\r\n device: 'Device',\r\n devices: {\r\n desktop: 'Desktop',\r\n tablet: 'Tablet',\r\n mobileLandscape: 'Mobile Landscape',\r\n mobilePortrait: 'Mobile Portrait',\r\n },\r\n },\r\n panels: {\r\n buttons: {\r\n titles: {\r\n preview: 'Preview',\r\n fullscreen: 'Fullscreen',\r\n 'sw-visibility': 'View components',\r\n 'export-template': 'View code',\r\n 'open-sm': 'Open Style Manager',\r\n 'open-tm': 'Settings',\r\n 'open-layers': 'Open Layer Manager',\r\n 'open-blocks': 'Open Blocks',\r\n },\r\n },\r\n },\r\n selectorManager: {\r\n label: 'Classes',\r\n selected: 'Selected',\r\n emptyState: '- State -',\r\n states: {\r\n hover: 'Hover',\r\n active: 'Click',\r\n 'nth-of-type(2n)': 'Even/Odd',\r\n },\r\n },\r\n styleManager: {\r\n empty: 'Select an element before using Style Manager',\r\n layer: 'Layer',\r\n fileButton: 'Images',\r\n sectors: {\r\n general: 'General',\r\n layout: 'Layout',\r\n typography: 'Typography',\r\n decorations: 'Decorations',\r\n extra: 'Extra',\r\n flex: 'Flex',\r\n dimension: 'Dimension',\r\n },\r\n // Default names for sub properties in Composite and Stack types.\r\n // Other labels are generated directly from their property names (eg. 'font-size' will be 'Font size').\r\n properties: {\r\n 'text-shadow-h': 'X',\r\n 'text-shadow-v': 'Y',\r\n 'text-shadow-blur': 'Blur',\r\n 'text-shadow-color': 'Color',\r\n 'box-shadow-h': 'X',\r\n 'box-shadow-v': 'Y',\r\n 'box-shadow-blur': 'Blur',\r\n 'box-shadow-spread': 'Spread',\r\n 'box-shadow-color': 'Color',\r\n 'box-shadow-type': 'Type',\r\n 'margin-top-sub': 'Top',\r\n 'margin-right-sub': 'Right',\r\n 'margin-bottom-sub': 'Bottom',\r\n 'margin-left-sub': 'Left',\r\n 'padding-top-sub': 'Top',\r\n 'padding-right-sub': 'Right',\r\n 'padding-bottom-sub': 'Bottom',\r\n 'padding-left-sub': 'Left',\r\n 'border-width-sub': 'Width',\r\n 'border-style-sub': 'Style',\r\n 'border-color-sub': 'Color',\r\n 'border-top-left-radius-sub': 'Top Left',\r\n 'border-top-right-radius-sub': 'Top Right',\r\n 'border-bottom-right-radius-sub': 'Bottom Right',\r\n 'border-bottom-left-radius-sub': 'Bottom Left',\r\n 'transform-rotate-x': 'Rotate X',\r\n 'transform-rotate-y': 'Rotate Y',\r\n 'transform-rotate-z': 'Rotate Z',\r\n 'transform-scale-x': 'Scale X',\r\n 'transform-scale-y': 'Scale Y',\r\n 'transform-scale-z': 'Scale Z',\r\n 'transition-property-sub': 'Property',\r\n 'transition-duration-sub': 'Duration',\r\n 'transition-timing-function-sub': 'Timing',\r\n 'background-image-sub': 'Image',\r\n 'background-repeat-sub': 'Repeat',\r\n 'background-position-sub': 'Position',\r\n 'background-attachment-sub': 'Attachment',\r\n 'background-size-sub': 'Size',\r\n },\r\n // Translate options in style properties\r\n // options: {\r\n // float: { // Id of the property\r\n // ...\r\n // left: 'Left', // {option id}: {Option label}\r\n // }\r\n // }\r\n },\r\n traitManager: {\r\n empty: 'Select an element before using Trait Manager',\r\n label: 'Component settings',\r\n traits: {\r\n // The core library generates the name by their `name` property\r\n labels: {\r\n // id: 'Id',\r\n // alt: 'Alt',\r\n // title: 'Title',\r\n // href: 'Href',\r\n },\r\n // In a simple trait, like text input, these are used on input attributes\r\n attributes: {\r\n id: traitInputAttr,\r\n alt: traitInputAttr,\r\n title: traitInputAttr,\r\n href: { placeholder: 'eg. https://google.com' },\r\n },\r\n // In a trait like select, these are used to translate option names\r\n options: {\r\n target: {\r\n false: 'This window',\r\n _blank: 'New window',\r\n },\r\n },\r\n },\r\n },\r\n storageManager: {\r\n recover: 'Do you want to recover unsaved changes?',\r\n },\r\n};\r\n","import en from './locale/en';\r\n\r\nexport default {\r\n // Locale value\r\n locale: 'en',\r\n\r\n // Fallback locale\r\n localeFallback: 'en',\r\n\r\n // Detect locale by checking browser language\r\n detectLocale: true,\r\n\r\n // Show warnings when some of the i18n resources are missing\r\n debug: false,\r\n\r\n // Messages to translate\r\n messages: {\r\n en,\r\n },\r\n\r\n // Additional messages. This allows extending the default `messages` set directly from the configuration.\r\n messagesAdd: null,\r\n};\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * i18n: {\r\n * locale: 'en',\r\n * localeFallback: 'en',\r\n * messages: {\r\n * it: { hello: 'Ciao', ... },\r\n * ...\r\n * }\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const i18n = editor.I18n;\r\n * ```\r\n *\r\n * ### Events\r\n * * `i18n:add` - New set of messages is added\r\n * * `i18n:update` - The set of messages is updated\r\n * * `i18n:locale` - Locale changed\r\n *\r\n * @module I18n\r\n */\r\nimport { isUndefined, isString } from 'underscore';\r\nimport { hasWin } from '../utils/mixins';\r\nimport config from './config';\r\n\r\nconst isObj = el => !Array.isArray(el) && el !== null && typeof el === 'object';\r\n\r\nconst deepAssign = (...args) => {\r\n const target = { ...args[0] };\r\n\r\n for (let i = 1; i < args.length; i++) {\r\n const source = { ...args[i] };\r\n\r\n for (let key in source) {\r\n const targValue = target[key];\r\n const srcValue = source[key];\r\n\r\n if (isObj(targValue) && isObj(srcValue)) {\r\n target[key] = deepAssign(targValue, srcValue);\r\n } else {\r\n target[key] = srcValue;\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n};\r\n\r\nexport default () => {\r\n return {\r\n name: 'I18n',\r\n\r\n config,\r\n\r\n /**\r\n * Initialize module\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(opts = {}) {\r\n this.config = {\r\n ...config,\r\n ...opts,\r\n messages: {\r\n ...config.messages,\r\n ...(opts.messages || {}),\r\n },\r\n };\r\n const add = this.config.messagesAdd;\r\n add && this.addMessages(add);\r\n\r\n if (this.config.detectLocale) {\r\n this.config.locale = this._localLang();\r\n }\r\n\r\n this.em = opts.em;\r\n return this;\r\n },\r\n\r\n /**\r\n * Get module configurations\r\n * @returns {Object} Configuration object\r\n */\r\n getConfig() {\r\n return this.config;\r\n },\r\n\r\n /**\r\n * Update current locale\r\n * @param {String} locale Locale value\r\n * @returns {this}\r\n * @example\r\n * i18n.setLocale('it');\r\n */\r\n setLocale(locale) {\r\n const { em, config } = this;\r\n const evObj = { value: locale, valuePrev: config.locale };\r\n em && em.trigger('i18n:locale', evObj);\r\n config.locale = locale;\r\n return this;\r\n },\r\n\r\n /**\r\n * Get current locale\r\n * @returns {String} Current locale value\r\n */\r\n getLocale() {\r\n return this.config.locale;\r\n },\r\n\r\n /**\r\n * Get all messages\r\n * @param {String} [lang] Specify the language of messages to return\r\n * @param {Object} [opts] Options\r\n * @param {Boolean} [opts.debug] Show warnings in case of missing language\r\n * @returns {Object}\r\n * @example\r\n * i18n.getMessages();\r\n * // -> { en: { hello: '...' }, ... }\r\n * i18n.getMessages('en');\r\n * // -> { hello: '...' }\r\n */\r\n getMessages(lang, opts = {}) {\r\n const { messages } = this.config;\r\n lang && !messages[lang] && this._debug(`'${lang}' i18n lang not found`, opts);\r\n return lang ? messages[lang] : messages;\r\n },\r\n\r\n /**\r\n * Set new set of messages\r\n * @param {Object} msg Set of messages\r\n * @returns {this}\r\n * @example\r\n * i18n.getMessages();\r\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\r\n * i18n.setMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\r\n * // Set replaced\r\n * i18n.getMessages();\r\n * // -> { en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }\r\n */\r\n setMessages(msg) {\r\n const { em, config } = this;\r\n config.messages = msg;\r\n em && em.trigger('i18n:update', msg);\r\n return this;\r\n },\r\n\r\n /**\r\n * Update messages\r\n * @param {Object} msg Set of messages to add\r\n * @returns {this}\r\n * @example\r\n * i18n.getMessages();\r\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\r\n * i18n.addMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\r\n * // Set updated\r\n * i18n.getMessages();\r\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2 up', msg3: 'Msg 3', } }\r\n */\r\n addMessages(msg) {\r\n const { em } = this;\r\n const { messages } = this.config;\r\n em && em.trigger('i18n:add', msg);\r\n this.setMessages(deepAssign(messages, msg));\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Translate the locale message\r\n * @param {String} key Label to translate\r\n * @param {Object} [opts] Options for the translation\r\n * @param {Object} [opts.params] Params for the translation\r\n * @param {Boolean} [opts.debug] Show warnings in case of missing resources\r\n * @returns {String}\r\n * @example\r\n * obj.setMessages({\r\n * en: { msg: 'Msg', msg2: 'Msg {test}'},\r\n * it: { msg2: 'Msg {test} it'},\r\n * });\r\n * obj.t('msg');\r\n * // -> outputs `Msg`\r\n * obj.t('msg2', { params: { test: 'hello' } }); // use params\r\n * // -> outputs `Msg hello`\r\n * obj.t('msg2', { l: 'it', params: { test: 'hello' } }); // custom local\r\n * // -> outputs `Msg hello it`\r\n */\r\n t(key, opts = {}) {\r\n const { config } = this;\r\n const param = opts.params || {};\r\n const locale = opts.l || this.getLocale();\r\n const localeFlb = opts.lFlb || config.localeFallback;\r\n let result = this._getMsg(key, locale, opts);\r\n\r\n // Try with fallback\r\n if (!result) result = this._getMsg(key, localeFlb, opts);\r\n\r\n !result && this._debug(`'${key}' i18n key not found in '${locale}' lang`, opts);\r\n result = result && isString(result) ? this._addParams(result, param) : result;\r\n\r\n return result;\r\n },\r\n\r\n _localLang() {\r\n const nav = (hasWin() && window.navigator) || {};\r\n const lang = nav.language || nav.userLanguage;\r\n return lang ? lang.split('-')[0] : 'en';\r\n },\r\n\r\n _addParams(str, params) {\r\n const reg = new RegExp(`\\{([\\\\w\\\\d-]*)\\}`, 'g');\r\n return str.replace(reg, (m, val) => params[val] || '').trim();\r\n },\r\n\r\n _getMsg(key, locale, opts = {}) {\r\n const msgSet = this.getMessages(locale, opts);\r\n\r\n // Lang set is missing\r\n if (!msgSet) return;\r\n\r\n let result = msgSet[key];\r\n\r\n // Check for nested getter\r\n if (!result && key.indexOf('.') > 0) {\r\n result = key.split('.').reduce((lang, key) => {\r\n if (isUndefined(lang)) return;\r\n return lang[key];\r\n }, msgSet);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n _debug(str, opts = {}) {\r\n const { em, config } = this;\r\n (opts.debug || config.debug) && em && em.logWarning(str);\r\n },\r\n\r\n destroy() {\r\n this.config = config;\r\n this.em = {};\r\n },\r\n };\r\n};\r\n","// The initial version of this library was borrowed from https://github.com/madrobby/keymaster\r\n// and adapted to the GrapesJS's need\r\n\r\nvar k,\r\n _handlers = {},\r\n _mods = {\r\n 16: false,\r\n 18: false,\r\n 17: false,\r\n 91: false,\r\n },\r\n _scope = 'all',\r\n // modifier keys\r\n _MODIFIERS = {\r\n '⇧': 16,\r\n shift: 16,\r\n '⌥': 18,\r\n alt: 18,\r\n option: 18,\r\n '⌃': 17,\r\n ctrl: 17,\r\n control: 17,\r\n '⌘': 91,\r\n command: 91,\r\n },\r\n // special keys\r\n _MAP = {\r\n backspace: 8,\r\n tab: 9,\r\n clear: 12,\r\n enter: 13,\r\n return: 13,\r\n esc: 27,\r\n escape: 27,\r\n space: 32,\r\n left: 37,\r\n up: 38,\r\n right: 39,\r\n down: 40,\r\n del: 46,\r\n delete: 46,\r\n home: 36,\r\n end: 35,\r\n pageup: 33,\r\n pagedown: 34,\r\n ',': 188,\r\n '.': 190,\r\n '/': 191,\r\n '`': 192,\r\n '-': 189,\r\n '=': 187,\r\n ';': 186,\r\n \"'\": 222,\r\n '[': 219,\r\n ']': 221,\r\n '\\\\': 220,\r\n },\r\n code = function (x) {\r\n return _MAP[x] || x.toUpperCase().charCodeAt(0);\r\n },\r\n _downKeys = [];\r\n\r\nfor (k = 1; k < 20; k++) _MAP['f' + k] = 111 + k;\r\n\r\n// IE doesn't support Array#indexOf, so have a simple replacement\r\nfunction index(array, item) {\r\n var i = array.length;\r\n while (i--) if (array[i] === item) return i;\r\n return -1;\r\n}\r\n\r\n// for comparing mods before unassignment\r\nfunction compareArray(a1, a2) {\r\n if (a1.length != a2.length) return false;\r\n for (var i = 0; i < a1.length; i++) {\r\n if (a1[i] !== a2[i]) return false;\r\n }\r\n return true;\r\n}\r\n\r\nvar modifierMap = {\r\n 16: 'shiftKey',\r\n 18: 'altKey',\r\n 17: 'ctrlKey',\r\n 91: 'metaKey',\r\n};\r\n\r\nfunction updateModifierKey(event) {\r\n for (k in _mods) _mods[k] = event[modifierMap[k]];\r\n}\r\n\r\n// handle keydown event\r\nfunction dispatch(event) {\r\n var key, handler, k, i, modifiersMatch, scope;\r\n key = event.keyCode;\r\n\r\n if (index(_downKeys, key) == -1) {\r\n _downKeys.push(key);\r\n }\r\n\r\n // if a modifier key, set the key. property to true and return\r\n if (key == 93 || key == 224) key = 91; // right command on webkit, command on Gecko\r\n if (key in _mods) {\r\n _mods[key] = true;\r\n // 'assignKey' from inside this closure is exported to window.key\r\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = true;\r\n return;\r\n }\r\n updateModifierKey(event);\r\n\r\n // see if we need to ignore the keypress (filter() can can be overridden)\r\n // by default ignore key presses if a select, textarea, or input is focused\r\n if (!assignKey.filter.call(this, event)) return;\r\n\r\n // abort if no potentially matching shortcuts found\r\n if (!(key in _handlers)) return;\r\n\r\n scope = getScope();\r\n\r\n // for each potential shortcut\r\n for (i = 0; i < _handlers[key].length; i++) {\r\n handler = _handlers[key][i];\r\n\r\n // see if it's in the current scope\r\n if (handler.scope == scope || handler.scope == 'all') {\r\n // check if modifiers match if any\r\n modifiersMatch = handler.mods.length > 0;\r\n for (k in _mods)\r\n if ((!_mods[k] && index(handler.mods, +k) > -1) || (_mods[k] && index(handler.mods, +k) == -1))\r\n modifiersMatch = false;\r\n // call the handler and stop the event if neccessary\r\n if ((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch) {\r\n if (handler.method(event, handler) === false) {\r\n if (event.preventDefault) event.preventDefault();\r\n else event.returnValue = false;\r\n if (event.stopPropagation) event.stopPropagation();\r\n if (event.cancelBubble) event.cancelBubble = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n// unset modifier keys on keyup\r\nfunction clearModifier(event) {\r\n var key = event.keyCode,\r\n k,\r\n i = index(_downKeys, key);\r\n\r\n // remove key from _downKeys\r\n if (i >= 0) {\r\n _downKeys.splice(i, 1);\r\n }\r\n\r\n if (key == 93 || key == 224) key = 91;\r\n if (key in _mods) {\r\n _mods[key] = false;\r\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = false;\r\n }\r\n}\r\n\r\nfunction resetModifiers() {\r\n for (k in _mods) _mods[k] = false;\r\n for (k in _MODIFIERS) assignKey[k] = false;\r\n}\r\n\r\n// parse and assign shortcut\r\nfunction assignKey(key, scope, method) {\r\n var keys, mods;\r\n keys = getKeys(key);\r\n if (method === undefined) {\r\n method = scope;\r\n scope = 'all';\r\n }\r\n\r\n // for each shortcut\r\n for (var i = 0; i < keys.length; i++) {\r\n // set modifier keys if any\r\n mods = [];\r\n key = keys[i].split('+');\r\n if (key.length > 1) {\r\n mods = getMods(key);\r\n key = [key[key.length - 1]];\r\n }\r\n // convert to keycode and...\r\n key = key[0];\r\n key = code(key);\r\n // ...store handler\r\n if (!(key in _handlers)) _handlers[key] = [];\r\n _handlers[key].push({\r\n shortcut: keys[i],\r\n scope: scope,\r\n method: method,\r\n key: keys[i],\r\n mods: mods,\r\n });\r\n }\r\n}\r\n\r\n// unbind all handlers for given key in current scope\r\nfunction unbindKey(key, scope) {\r\n var multipleKeys,\r\n keys,\r\n mods = [],\r\n i,\r\n j,\r\n obj;\r\n\r\n multipleKeys = getKeys(key);\r\n\r\n for (j = 0; j < multipleKeys.length; j++) {\r\n keys = multipleKeys[j].split('+');\r\n\r\n if (keys.length > 1) {\r\n mods = getMods(keys);\r\n }\r\n\r\n key = keys[keys.length - 1];\r\n key = code(key);\r\n\r\n if (scope === undefined) {\r\n scope = getScope();\r\n }\r\n if (!_handlers[key]) {\r\n return;\r\n }\r\n for (i = 0; i < _handlers[key].length; i++) {\r\n obj = _handlers[key][i];\r\n // only clear handlers if correct scope and mods match\r\n if (obj.scope === scope && compareArray(obj.mods, mods)) {\r\n _handlers[key][i] = {};\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Returns true if the key with code 'keyCode' is currently down\r\n// Converts strings into key codes.\r\nfunction isPressed(keyCode) {\r\n if (typeof keyCode == 'string') {\r\n keyCode = code(keyCode);\r\n }\r\n return index(_downKeys, keyCode) != -1;\r\n}\r\n\r\nfunction getPressedKeyCodes() {\r\n return _downKeys.slice(0);\r\n}\r\n\r\nfunction filter(event) {\r\n var tagName = (event.target || event.srcElement).tagName;\r\n // ignore keypressed in any elements that support keyboard data input\r\n return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\r\n}\r\n\r\n// initialize key. to false\r\nfor (k in _MODIFIERS) assignKey[k] = false;\r\n\r\n// set current scope (default 'all')\r\nfunction setScope(scope) {\r\n _scope = scope || 'all';\r\n}\r\n\r\nfunction getScope() {\r\n return _scope || 'all';\r\n}\r\n\r\n// delete all handlers for a given scope\r\nfunction deleteScope(scope) {\r\n var key, handlers, i;\r\n\r\n for (key in _handlers) {\r\n handlers = _handlers[key];\r\n for (i = 0; i < handlers.length; ) {\r\n if (handlers[i].scope === scope) handlers.splice(i, 1);\r\n else i++;\r\n }\r\n }\r\n}\r\n\r\n// abstract key logic for assign and unassign\r\nfunction getKeys(key) {\r\n var keys;\r\n key = key.replace(/\\s/g, '');\r\n keys = key.split(',');\r\n if (keys[keys.length - 1] == '') {\r\n keys[keys.length - 2] += ',';\r\n }\r\n return keys;\r\n}\r\n\r\n// abstract mods logic for assign and unassign\r\nfunction getMods(key) {\r\n var mods = key.slice(0, key.length - 1);\r\n for (var mi = 0; mi < mods.length; mi++) mods[mi] = _MODIFIERS[mods[mi]];\r\n return mods;\r\n}\r\n\r\n// cross-browser events\r\nfunction addEvent(object, event, method) {\r\n if (object.addEventListener) object.addEventListener(event, method, false);\r\n else if (object.attachEvent)\r\n object.attachEvent('on' + event, function () {\r\n method(window.event);\r\n });\r\n}\r\n\r\n// set window.key and window.key.set/get/deleteScope, and the default filter\r\nassignKey.setScope = setScope;\r\nassignKey.getScope = getScope;\r\nassignKey.deleteScope = deleteScope;\r\nassignKey.filter = filter;\r\nassignKey.isPressed = isPressed;\r\nassignKey.getPressedKeyCodes = getPressedKeyCodes;\r\nassignKey.unbind = unbindKey;\r\nassignKey.handlers = _handlers;\r\nassignKey.init = win => {\r\n // set the handlers globally on document\r\n // Passing _scope to a callback to ensure it remains the same by execution. Fixes #48\r\n addEvent(win.document, 'keydown', function (event) {\r\n dispatch(event);\r\n });\r\n addEvent(win.document, 'keyup', clearModifier);\r\n addEvent(win, 'focus', resetModifiers);\r\n};\r\n\r\nexport default assignKey;\r\n","/**\r\n * You can customize the initial state of the module from the editor initialization\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * keymaps: {\r\n * // Object of keymaps\r\n * defaults: {\r\n * 'your-namespace:keymap-name' {\r\n * keys: '⌘+z, ctrl+z',\r\n * handler: 'some-command-id'\r\n * },\r\n * ...\r\n * }\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\r\n *\r\n * ```js\r\n * // Listen to events\r\n * editor.on('keymap:add', () => { ... });\r\n *\r\n * // Use the API\r\n * const keymaps = editor.Keymaps;\r\n * keymaps.add(...);\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `keymap:add` - New keymap added. The new keyamp object is passed as an argument\r\n * * `keymap:remove` - Keymap removed. The removed keyamp object is passed as an argument\r\n * * `keymap:emit` - Some keymap emitted, in arguments you get keymapId, shortcutUsed, Event\r\n * * `keymap:emit:{keymapId}` - `keymapId` emitted, in arguments you get keymapId, shortcutUsed, Event\r\n *\r\n * ## Methods\r\n * * [getConfig](#getconfig)\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getAll](#getAll)\r\n * * [remove](#remove)\r\n * * [removeAll](#removeall)\r\n *\r\n * @module Keymaps\r\n */\r\n\r\nimport { isString } from 'underscore';\r\nimport { hasWin } from '../utils/mixins';\r\nimport keymaster from '../utils/keymaster';\r\n\r\nhasWin() && keymaster.init(window);\r\n\r\nexport default () => {\r\n const configDef = {\r\n defaults: {\r\n 'core:undo': {\r\n keys: '⌘+z, ctrl+z',\r\n handler: 'core:undo',\r\n },\r\n 'core:redo': {\r\n keys: '⌘+shift+z, ctrl+shift+z',\r\n handler: 'core:redo',\r\n },\r\n 'core:copy': {\r\n keys: '⌘+c, ctrl+c',\r\n handler: 'core:copy',\r\n },\r\n 'core:paste': {\r\n keys: '⌘+v, ctrl+v',\r\n handler: 'core:paste',\r\n },\r\n 'core:component-next': {\r\n keys: 's',\r\n handler: 'core:component-next',\r\n },\r\n 'core:component-prev': {\r\n keys: 'w',\r\n handler: 'core:component-prev',\r\n },\r\n 'core:component-enter': {\r\n keys: 'd',\r\n handler: 'core:component-enter',\r\n },\r\n 'core:component-exit': {\r\n keys: 'a',\r\n handler: 'core:component-exit',\r\n },\r\n 'core:component-delete': {\r\n keys: 'backspace, delete',\r\n handler: 'core:component-delete',\r\n opts: { prevent: 1 },\r\n },\r\n },\r\n };\r\n\r\n return {\r\n keymaster,\r\n\r\n name: 'Keymaps',\r\n\r\n /**\r\n * Get module configurations\r\n * @return {Object} Configuration object\r\n */\r\n getConfig() {\r\n return this.config;\r\n },\r\n\r\n /**\r\n * Initialize module\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(opts = {}) {\r\n this.config = { ...configDef, ...opts };\r\n this.em = this.config.em;\r\n this.keymaps = {};\r\n return this;\r\n },\r\n\r\n onLoad() {\r\n const defKeys = this.config.defaults;\r\n\r\n for (let id in defKeys) {\r\n const value = defKeys[id];\r\n this.add(id, value.keys, value.handler, value.opts || {});\r\n }\r\n },\r\n\r\n /**\r\n * Add new keymap\r\n * @param {string} id Keymap id\r\n * @param {string} keys Keymap keys, eg. `ctrl+a`, `⌘+z, ctrl+z`\r\n * @param {Function|string} handler Keymap handler, might be a function\r\n * @param {Object} [opts={}] Options\r\n * @return {Object} Added keymap\r\n * or just a command id as a string\r\n * @example\r\n * // 'ns' is just a custom namespace\r\n * keymaps.add('ns:my-keymap', '⌘+j, ⌘+u, ctrl+j, alt+u', editor => {\r\n * console.log('do stuff');\r\n * });\r\n * // or\r\n * keymaps.add('ns:my-keymap', '⌘+s, ctrl+s', 'some-gjs-command');\r\n *\r\n * // listen to events\r\n * editor.on('keymap:emit', (id, shortcut, e) => {\r\n * // ...\r\n * })\r\n */\r\n add(id, keys, handler, opts = {}) {\r\n const { em } = this;\r\n const cmd = em.get('Commands');\r\n const editor = em.getEditor();\r\n const canvas = em.get('Canvas');\r\n const keymap = { id, keys, handler };\r\n const pk = this.keymaps[id];\r\n pk && this.remove(id);\r\n this.keymaps[id] = keymap;\r\n keymaster(keys, (e, h) => {\r\n // It's safer putting handlers resolution inside the callback\r\n const opt = { event: e, h };\r\n handler = isString(handler) ? cmd.get(handler) : handler;\r\n const ableTorun = !em.isEditing() && !editor.Canvas.isInputFocused();\r\n if (ableTorun || opts.force) {\r\n opts.prevent && canvas.getCanvasView().preventDefault(e);\r\n typeof handler == 'object' ? cmd.runCommand(handler, opt) : handler(editor, 0, opt);\r\n const args = [id, h.shortcut, e];\r\n em.trigger('keymap:emit', ...args);\r\n em.trigger(`keymap:emit:${id}`, ...args);\r\n }\r\n });\r\n em.trigger('keymap:add', keymap);\r\n return keymap;\r\n },\r\n\r\n /**\r\n * Get the keymap by id\r\n * @param {string} id Keymap id\r\n * @return {Object} Keymap object\r\n * @example\r\n * keymaps.get('ns:my-keymap');\r\n * // -> {keys, handler};\r\n */\r\n get(id) {\r\n return this.keymaps[id];\r\n },\r\n\r\n /**\r\n * Get all keymaps\r\n * @return {Object}\r\n * @example\r\n * keymaps.getAll();\r\n * // -> {id1: {}, id2: {}};\r\n */\r\n getAll() {\r\n return this.keymaps;\r\n },\r\n\r\n /**\r\n * Remove the keymap by id\r\n * @param {string} id Keymap id\r\n * @return {Object} Removed keymap\r\n * @example\r\n * keymaps.remove('ns:my-keymap');\r\n * // -> {keys, handler};\r\n */\r\n remove(id) {\r\n const em = this.em;\r\n const keymap = this.get(id);\r\n\r\n if (keymap) {\r\n delete this.keymaps[id];\r\n keymap.keys.split(', ').forEach(k => keymaster.unbind(k.trim()));\r\n em && em.trigger('keymap:remove', keymap);\r\n return keymap;\r\n }\r\n },\r\n\r\n /**\r\n * Remove all binded keymaps\r\n * @return {this}\r\n */\r\n removeAll() {\r\n Object.keys(this.keymaps).forEach(keymap => this.remove(keymap));\r\n keymaster.handlers = {};\r\n return this;\r\n },\r\n\r\n destroy() {\r\n this.removeAll();\r\n this.keymaps = {};\r\n this.em = {};\r\n },\r\n };\r\n};\r\n","export default {\r\n stylePrefix: 'mdl-',\r\n\r\n title: '',\r\n\r\n content: '',\r\n\r\n backdrop: true,\r\n\r\n // Avoid rendering the default modal.\r\n custom: false,\r\n\r\n /**\r\n * Extend ModalView object (view/ModalView.js)\r\n * @example\r\n * extend: {\r\n * template() {\r\n * return '
...New modal template...
';\r\n * },\r\n * },\r\n */\r\n extend: {}\r\n};\r\n","import { Model } from '../../common';\r\n\r\nexport default class Modal extends Model {\r\n defaults() {\r\n return {\r\n title: '',\r\n content: '',\r\n attributes: {},\r\n open: false,\r\n };\r\n }\r\n\r\n open() {\r\n this.set('open', true);\r\n }\r\n\r\n close() {\r\n this.set('open', false);\r\n }\r\n}\r\n","import { View } from '../../common';\r\n\r\nexport default class ModalView extends View {\r\n template({ pfx, ppfx, content, title }) {\r\n return `
\r\n
\r\n
${title}
\r\n
\r\n
\r\n
\r\n
${content}
\r\n
\r\n
\r\n
\r\n
`;\r\n }\r\n\r\n events() {\r\n return {\r\n click: 'onClick',\r\n 'click [data-close-modal]': 'hide',\r\n };\r\n }\r\n\r\n initialize(o) {\r\n const model = this.model;\r\n const config = o.config || {};\r\n const pfx = config.stylePrefix || '';\r\n this.config = config;\r\n this.pfx = pfx;\r\n this.ppfx = config.pStylePrefix || '';\r\n this.listenTo(model, 'change:open', this.updateOpen);\r\n this.listenTo(model, 'change:title', this.updateTitle);\r\n this.listenTo(model, 'change:content', this.updateContent);\r\n }\r\n\r\n onClick(e) {\r\n const bkd = this.config.backdrop;\r\n bkd && e.target === this.el && this.hide();\r\n }\r\n\r\n /**\r\n * Returns collector element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getCollector() {\r\n if (!this.$collector) this.$collector = this.$el.find('.' + this.pfx + 'collector');\r\n return this.$collector;\r\n }\r\n\r\n /**\r\n * Returns content element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getContent() {\r\n const pfx = this.pfx;\r\n\r\n if (!this.$content) {\r\n this.$content = this.$el.find(`.${pfx}content #${pfx}c`);\r\n }\r\n\r\n return this.$content;\r\n }\r\n\r\n /**\r\n * Returns title element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getTitle(opts = {}) {\r\n if (!this.$title) this.$title = this.$el.find('.' + this.pfx + 'title');\r\n return opts.$ ? this.$title : this.$title.get(0);\r\n }\r\n\r\n /**\r\n * Update content\r\n * @private\r\n * */\r\n updateContent() {\r\n var content = this.getContent();\r\n const children = content.children();\r\n const coll = this.getCollector();\r\n const body = this.model.get('content');\r\n children.length && coll.append(children);\r\n content.empty().append(body);\r\n }\r\n\r\n /**\r\n * Update title\r\n * @private\r\n * */\r\n updateTitle() {\r\n const title = this.getTitle({ $: true });\r\n title && title.empty().append(this.model.get('title'));\r\n }\r\n\r\n /**\r\n * Update open\r\n * @private\r\n * */\r\n updateOpen() {\r\n this.el.style.display = this.model.get('open') ? '' : 'none';\r\n }\r\n\r\n /**\r\n * Hide modal\r\n * @private\r\n * */\r\n hide() {\r\n this.model.close();\r\n }\r\n\r\n /**\r\n * Show modal\r\n * @private\r\n * */\r\n show() {\r\n this.model.open();\r\n }\r\n\r\n updateAttr(attr) {\r\n const { pfx, $el, el } = this;\r\n const currAttr = [].slice.call(el.attributes).map(i => i.name);\r\n $el.removeAttr(currAttr.join(' '));\r\n $el.attr({\r\n ...(attr || {}),\r\n class: `${pfx}container ${(attr && attr.class) || ''}`.trim(),\r\n });\r\n }\r\n\r\n render() {\r\n const el = this.$el;\r\n const obj = this.model.toJSON();\r\n obj.pfx = this.pfx;\r\n obj.ppfx = this.ppfx;\r\n el.html(this.template(obj));\r\n this.updateAttr();\r\n this.updateOpen();\r\n return this;\r\n }\r\n}\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * modal: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const modal = editor.Modal;\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `modal:open` - Modal is opened\r\n * * `modal:close` - Modal is closed\r\n * * `modal` - Event triggered on any change related to the modal. An object containing all the available data about the triggered event is passed as an argument to the callback.\r\n *\r\n * ## Methods\r\n * * [open](#open)\r\n * * [close](#close)\r\n * * [isOpen](#isopen)\r\n * * [setTitle](#settitle)\r\n * * [getTitle](#gettitle)\r\n * * [setContent](#setcontent)\r\n * * [getContent](#getcontent)\r\n * * [onceClose](#onceclose)\r\n * * [onceOpen](#onceopen)\r\n *\r\n * @module Modal\r\n */\r\n\r\nimport { debounce, isFunction, isString } from 'underscore';\r\nimport { createText } from '../utils/dom';\r\nimport defaults from './config/config';\r\nimport ModalM from './model/Modal';\r\nimport ModalView from './view/ModalView';\r\n\r\nexport default () => {\r\n var c = {};\r\n var model, modal;\r\n\r\n const triggerEvent = (enable, em) => {\r\n em && em.trigger(`modal:${enable ? 'open' : 'close'}`);\r\n };\r\n\r\n return {\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'Modal',\r\n\r\n getConfig() {\r\n return c;\r\n },\r\n\r\n /**\r\n * Initialize module. Automatically called with a new instance of the editor\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(config = {}) {\r\n c = {\r\n ...defaults,\r\n ...config\r\n };\r\n\r\n const em = c.em;\r\n this.em = em;\r\n var ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n model = new ModalM(c);\r\n model.on('change:open', (m, enb) => triggerEvent(enb, em));\r\n model.on(\r\n 'change',\r\n debounce(() => {\r\n const data = this._evData();\r\n const { custom } = this.getConfig();\r\n isFunction(custom) && custom(data);\r\n em.trigger('modal', data);\r\n })\r\n );\r\n\r\n return this;\r\n },\r\n\r\n _evData() {\r\n const titl = this.getTitle();\r\n const cnt = this.getContent();\r\n const { open, attributes } = model.attributes;\r\n return {\r\n open,\r\n attributes,\r\n title: isString(titl) ? createText(titl) : titl,\r\n content: isString(cnt) ? createText(cnt) : cnt.get ? cnt.get(0) : cnt,\r\n close: () => this.close()\r\n };\r\n },\r\n\r\n postRender(view) {\r\n const el = view.model.getConfig().el || view.el;\r\n const res = this.render();\r\n res && res.appendTo(el);\r\n },\r\n\r\n /**\r\n * Open the modal window\r\n * @param {Object} [opts={}] Options\r\n * @param {String|HTMLElement} [opts.title] Title to set for the modal\r\n * @param {String|HTMLElement} [opts.content] Content to set for the modal\r\n * @param {Object} [opts.attributes] Updates the modal wrapper with custom attributes\r\n * @returns {this}\r\n * @example\r\n * modal.open({\r\n * title: 'My title',\r\n * content: 'My content',\r\n * attributes: { class: 'my-class' },\r\n * });\r\n */\r\n open(opts = {}) {\r\n const attr = opts.attributes || {};\r\n opts.title && this.setTitle(opts.title);\r\n opts.content && this.setContent(opts.content);\r\n model.set('attributes', attr);\r\n model.open();\r\n modal && modal.updateAttr(attr);\r\n return this;\r\n },\r\n\r\n /**\r\n * Close the modal window\r\n * @returns {this}\r\n * @example\r\n * modal.close();\r\n */\r\n close() {\r\n model.close();\r\n return this;\r\n },\r\n\r\n /**\r\n * Execute callback when the modal will be closed.\r\n * The callback will be called one only time\r\n * @param {Function} clb Callback to call\r\n * @returns {this}\r\n * @example\r\n * modal.onceClose(() => {\r\n * console.log('The modal is closed');\r\n * });\r\n */\r\n onceClose(clb) {\r\n this.em.once('modal:close', clb);\r\n return this;\r\n },\r\n\r\n /**\r\n * Execute callback when the modal will be opened.\r\n * The callback will be called one only time\r\n * @param {Function} clb Callback to call\r\n * @returns {this}\r\n * @example\r\n * modal.onceOpen(() => {\r\n * console.log('The modal is opened');\r\n * });\r\n */\r\n onceOpen(clb) {\r\n this.em.once('modal:open', clb);\r\n return this;\r\n },\r\n\r\n /**\r\n * Checks if the modal window is open\r\n * @returns {Boolean}\r\n * @example\r\n * modal.isOpen(); // true | false\r\n */\r\n isOpen() {\r\n return !!model.get('open');\r\n },\r\n\r\n /**\r\n * Set the title to the modal window\r\n * @param {string | HTMLElement} title Title\r\n * @returns {this}\r\n * @example\r\n * // pass a string\r\n * modal.setTitle('Some title');\r\n * // or an HTMLElement\r\n * const el = document.createElement('div');\r\n * el.innerText = 'New title';\r\n * modal.setTitle(el);\r\n */\r\n setTitle(title) {\r\n model.set('title', title);\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns the title of the modal window\r\n * @returns {string | HTMLElement}\r\n * @example\r\n * modal.getTitle();\r\n */\r\n getTitle() {\r\n return model.get('title');\r\n },\r\n\r\n /**\r\n * Set the content of the modal window\r\n * @param {string | HTMLElement} content Content\r\n * @returns {this}\r\n * @example\r\n * // pass a string\r\n * modal.setContent('Some content');\r\n * // or an HTMLElement\r\n * const el = document.createElement('div');\r\n * el.innerText = 'New content';\r\n * modal.setContent(el);\r\n */\r\n setContent(content) {\r\n model.set('content', ' ');\r\n model.set('content', content);\r\n return this;\r\n },\r\n\r\n /**\r\n * Get the content of the modal window\r\n * @returns {string | HTMLElement}\r\n * @example\r\n * modal.getContent();\r\n */\r\n getContent() {\r\n return model.get('content');\r\n },\r\n\r\n /**\r\n * Returns content element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getContentEl() {\r\n return modal.getContent().get(0);\r\n },\r\n\r\n /**\r\n * Returns modal model\r\n * @return {Model}\r\n * @private\r\n */\r\n getModel() {\r\n return model;\r\n },\r\n\r\n /**\r\n * Render the modal window\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n render() {\r\n if (this.getConfig().custom) return;\r\n const View = ModalView.extend(c.extend);\r\n const el = modal && modal.el;\r\n modal = new View({\r\n el,\r\n model,\r\n config: c\r\n });\r\n return modal.render().$el;\r\n },\r\n\r\n destroy() {\r\n modal && modal.remove();\r\n [c, model, modal].forEach(i => (i = {}));\r\n this.em = {};\r\n }\r\n };\r\n};\r\n","export default {\r\n stylePrefix: '',\r\n\r\n // Specify the element to use as a container, string (query) or HTMLElement\r\n // With the empty value, nothing will be rendered\r\n appendTo: '',\r\n\r\n // Enable/Disable globally the possibility to sort layers\r\n sortable: 1,\r\n\r\n // Enable/Disable globally the possibility to hide layers\r\n hidable: 1,\r\n\r\n // Hide textnodes\r\n hideTextnode: 1,\r\n\r\n // Indicate a query string of the element to be selected as the root of layers.\r\n // By default the root is the wrapper\r\n root: '',\r\n\r\n // Indicates if the wrapper is visible in layers\r\n showWrapper: 1,\r\n\r\n // Show hovered components in canvas\r\n showHover: 1,\r\n\r\n // Scroll to selected component in Canvas when it's selected in Layers\r\n // true, false or `scrollIntoView`-like options,\r\n // `block: 'nearest'` avoids the issue of window scrolling\r\n scrollCanvas: { behavior: 'smooth', block: 'nearest' },\r\n\r\n // Scroll to selected component in Layers when it's selected in Canvas\r\n // true, false or `scrollIntoView`-like options\r\n scrollLayers: { behavior: 'auto', block: 'nearest' },\r\n\r\n // Highlight when a layer component is hovered\r\n highlightHover: 1,\r\n\r\n /**\r\n * WARNING: Experimental option\r\n * A callback triggered once the component layer is initialized.\r\n * Useful to trigger updates on some component prop change.\r\n * @example\r\n * onInit({ component, render, listenTo }) {\r\n * listenTo(component, 'change:some-prop', render);\r\n * };\r\n */\r\n onInit: () => {},\r\n\r\n /**\r\n * WARNING: Experimental option\r\n * A callback triggered once the component layer is rendered.\r\n * A callback useful to update the layer DOM on some component change\r\n * @example\r\n * onRender({ component, el }) { // el is the DOM of the layer\r\n * if (component.get('some-prop')) {\r\n * // do changes using the `el` DOM\r\n * }\r\n * }\r\n */\r\n onRender: () => {},\r\n\r\n /**\r\n * Extend Layer view object (view/ItemView.js)\r\n * @example\r\n * extend: {\r\n * setName(name) {\r\n * // this.model is the component of the layer\r\n * this.model.set('another-prop-for-name', name);\r\n * },\r\n * },\r\n */\r\n extend: {}\r\n};\r\n","import { isUndefined, isString, bindAll } from 'underscore';\r\nimport { View } from '../../common';\r\nimport { getModel, isEscKey, isEnterKey } from '../../utils/mixins';\r\nimport ComponentView from '../../dom_components/view/ComponentView';\r\nimport { eventDrag } from '../../dom_components/model/Component';\r\n\r\nconst inputProp = 'contentEditable';\r\nconst styleOpts = { mediaText: '' };\r\nconst isStyleHidden = (style = {}) => {\r\n return (style.display || '').trim().indexOf('none') === 0;\r\n};\r\nlet ItemsView;\r\n\r\nexport default class ItemView extends View {\r\n events() {\r\n return {\r\n 'mousedown [data-toggle-move]': 'startSort',\r\n 'touchstart [data-toggle-move]': 'startSort',\r\n 'click [data-toggle-visible]': 'toggleVisibility',\r\n 'click [data-toggle-open]': 'toggleOpening',\r\n 'click [data-toggle-select]': 'handleSelect',\r\n 'mouseover [data-toggle-select]': 'handleHover',\r\n 'mouseout [data-toggle-select]': 'handleHoverOut',\r\n 'dblclick [data-name]': 'handleEdit',\r\n 'keydown [data-name]': 'handleEditKey',\r\n 'focusout [data-name]': 'handleEditEnd',\r\n };\r\n }\r\n\r\n template(model) {\r\n const { pfx, ppfx, config, clsNoEdit } = this;\r\n const { hidable } = config;\r\n const count = this.countChildren(model);\r\n const addClass = !count ? this.clsNoChild : '';\r\n const clsTitle = `${this.clsTitle} ${addClass}`;\r\n const clsTitleC = `${this.clsTitleC} ${ppfx}one-bg`;\r\n const clsCaret = `${this.clsCaret} fa fa-chevron-right`;\r\n const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`;\r\n const level = this.level + 1;\r\n const gut = `${30 + level * 10}px`;\r\n const name = model.getName();\r\n const icon = model.getIcon();\r\n const clsBase = `${pfx}layer`;\r\n\r\n return `\r\n ${\r\n hidable\r\n ? ``\r\n : ''\r\n }\r\n
\r\n
\r\n
\r\n \r\n ${icon ? `${icon}` : ''}\r\n ${name}\r\n
\r\n
\r\n
\r\n
${count || ''}
\r\n
\r\n \r\n
\r\n
`;\r\n }\r\n\r\n initialize(o = {}) {\r\n bindAll(this, '__render');\r\n this.opt = o;\r\n this.level = o.level;\r\n const config = o.config || {};\r\n const { onInit } = config;\r\n this.config = config;\r\n this.em = o.config.em;\r\n this.ppfx = this.em.get('Config').stylePrefix;\r\n this.sorter = o.sorter || '';\r\n this.pfx = this.config.stylePrefix;\r\n this.parentView = o.parentView;\r\n const pfx = this.pfx;\r\n const ppfx = this.ppfx;\r\n const model = this.model;\r\n const components = model.get('components');\r\n const type = model.get('type') || 'default';\r\n model.set('open', false);\r\n this.listenTo(components, 'remove add reset', this.checkChildren);\r\n [\r\n ['change:status', this.updateStatus],\r\n ['change:open', this.updateOpening],\r\n ['change:layerable', this.updateLayerable],\r\n ['change:style:display', this.updateVisibility],\r\n ['rerender:layer', this.render],\r\n ['change:name change:custom-name', this.updateName],\r\n ].forEach(item => this.listenTo(model, item[0], item[1]));\r\n this.className = `${pfx}layer ${pfx}layer__t-${type} no-select ${ppfx}two-color`;\r\n this.inputNameCls = `${ppfx}layer-name`;\r\n this.clsTitleC = `${pfx}layer-title-c`;\r\n this.clsTitle = `${pfx}layer-title`;\r\n this.clsCaret = `${pfx}layer-caret`;\r\n this.clsCount = `${pfx}layer-count`;\r\n this.clsMove = `${pfx}layer-move`;\r\n this.clsChildren = `${pfx}layer-children`;\r\n this.clsNoChild = `${pfx}layer-no-chld`;\r\n this.clsEdit = `${this.inputNameCls}--edit`;\r\n this.clsNoEdit = `${this.inputNameCls}--no-edit`;\r\n this.$el.data('model', model);\r\n this.$el.data('collection', components);\r\n model.viewLayer = this;\r\n onInit.bind(this)({\r\n component: model,\r\n render: this.__render,\r\n listenTo: this.listenTo,\r\n });\r\n }\r\n\r\n updateName() {\r\n this.getInputName().innerText = this.model.getName();\r\n }\r\n\r\n getVisibilityEl() {\r\n if (!this.eyeEl) {\r\n this.eyeEl = this.$el.children(`.${this.pfx}layer-vis`);\r\n }\r\n\r\n return this.eyeEl;\r\n }\r\n\r\n updateVisibility() {\r\n const pfx = this.pfx;\r\n const model = this.model;\r\n const hClass = `${pfx}layer-hidden`;\r\n const hideIcon = 'fa-eye-slash';\r\n const hidden = isStyleHidden(model.getStyle(styleOpts));\r\n const method = hidden ? 'addClass' : 'removeClass';\r\n this.$el[method](hClass);\r\n this.getVisibilityEl()[method](hideIcon);\r\n }\r\n\r\n /**\r\n * Toggle visibility\r\n * @param\tEvent\r\n *\r\n * @return \tvoid\r\n * */\r\n toggleVisibility(e) {\r\n e && e.stopPropagation();\r\n const { model, em } = this;\r\n const prevDspKey = '__prev-display';\r\n const prevDisplay = model.get(prevDspKey);\r\n const style = model.getStyle(styleOpts);\r\n const { display } = style;\r\n const hidden = isStyleHidden(style);\r\n\r\n if (hidden) {\r\n delete style.display;\r\n\r\n if (prevDisplay) {\r\n style.display = prevDisplay;\r\n model.unset(prevDspKey);\r\n }\r\n } else {\r\n display && model.set(prevDspKey, display);\r\n style.display = 'none';\r\n }\r\n\r\n model.setStyle(style, styleOpts);\r\n em && em.trigger('component:toggled'); // Updates Style Manager #2938\r\n }\r\n\r\n /**\r\n * Handle the edit of the component name\r\n */\r\n handleEdit(e) {\r\n e && e.stopPropagation();\r\n const { em, $el, clsNoEdit, clsEdit } = this;\r\n const inputEl = this.getInputName();\r\n inputEl[inputProp] = true;\r\n inputEl.focus();\r\n document.execCommand('selectAll', false, null);\r\n em && em.setEditing(1);\r\n $el.find(`.${this.inputNameCls}`).removeClass(clsNoEdit).addClass(clsEdit);\r\n }\r\n\r\n handleEditKey(ev) {\r\n ev.stopPropagation();\r\n (isEscKey(ev) || isEnterKey(ev)) && this.handleEditEnd(ev);\r\n }\r\n\r\n /**\r\n * Handle with the end of editing of the component name\r\n */\r\n handleEditEnd(e) {\r\n e && e.stopPropagation();\r\n const { em, $el, clsNoEdit, clsEdit } = this;\r\n const inputEl = this.getInputName();\r\n const name = inputEl.textContent;\r\n inputEl.scrollLeft = 0;\r\n inputEl[inputProp] = false;\r\n this.setName(name, { component: this.model, propName: 'custom-name' });\r\n em && em.setEditing(0);\r\n $el.find(`.${this.inputNameCls}`).addClass(clsNoEdit).removeClass(clsEdit);\r\n }\r\n\r\n setName(name, { propName }) {\r\n this.model.set(propName, name);\r\n }\r\n\r\n /**\r\n * Get the input containing the name of the component\r\n * @return {HTMLElement}\r\n */\r\n getInputName() {\r\n if (!this.inputName) {\r\n this.inputName = this.el.querySelector(`.${this.inputNameCls}`);\r\n }\r\n return this.inputName;\r\n }\r\n\r\n /**\r\n * Update item opening\r\n *\r\n * @return void\r\n * */\r\n updateOpening() {\r\n var opened = this.opt.opened || {};\r\n var model = this.model;\r\n const chvDown = 'fa-chevron-down';\r\n\r\n if (model.get('open')) {\r\n this.$el.addClass('open');\r\n this.getCaret().addClass(chvDown);\r\n opened[model.cid] = model;\r\n } else {\r\n this.$el.removeClass('open');\r\n this.getCaret().removeClass(chvDown);\r\n delete opened[model.cid];\r\n }\r\n }\r\n\r\n /**\r\n * Toggle item opening\r\n * @param {Object}\te\r\n *\r\n * @return void\r\n * */\r\n toggleOpening(e) {\r\n const { model } = this;\r\n e.stopImmediatePropagation();\r\n\r\n if (!model.get('components').length) return;\r\n\r\n model.set('open', !model.get('open'));\r\n }\r\n\r\n /**\r\n * Handle component selection\r\n */\r\n handleSelect(e) {\r\n e.stopPropagation();\r\n const { em, config, model } = this;\r\n\r\n if (em) {\r\n em.setSelected(model, { fromLayers: 1, event: e });\r\n const scroll = config.scrollCanvas;\r\n scroll && model.views.forEach(view => view.scrollIntoView(scroll));\r\n }\r\n }\r\n\r\n /**\r\n * Handle component selection\r\n */\r\n handleHover(e) {\r\n e.stopPropagation();\r\n const { em, config, model } = this;\r\n em && config.showHover && em.setHovered(model, { fromLayers: 1 });\r\n }\r\n\r\n handleHoverOut(ev) {\r\n ev.stopPropagation();\r\n const { em, config } = this;\r\n em && config.showHover && em.setHovered(0, { fromLayers: 1 });\r\n }\r\n\r\n /**\r\n * Delegate to sorter\r\n * @param\tEvent\r\n * */\r\n startSort(e) {\r\n e.stopPropagation();\r\n const { em, sorter } = this;\r\n // Right or middel click\r\n if (e.button && e.button !== 0) return;\r\n\r\n if (sorter) {\r\n sorter.onStart = data => em.trigger(`${eventDrag}:start`, data);\r\n sorter.onMoveClb = data => em.trigger(eventDrag, data);\r\n sorter.startSort(e.target);\r\n }\r\n }\r\n\r\n /**\r\n * Freeze item\r\n * @return\tvoid\r\n * */\r\n freeze() {\r\n this.$el.addClass(this.pfx + 'opac50');\r\n this.model.set('open', 0);\r\n }\r\n\r\n /**\r\n * Unfreeze item\r\n * @return\tvoid\r\n * */\r\n unfreeze() {\r\n this.$el.removeClass(this.pfx + 'opac50');\r\n }\r\n\r\n /**\r\n * Update item on status change\r\n * @param\tEvent\r\n * */\r\n updateStatus(e) {\r\n ComponentView.prototype.updateStatus.apply(this, [\r\n {\r\n avoidHover: !this.config.highlightHover,\r\n noExtHl: 1,\r\n },\r\n ]);\r\n }\r\n\r\n /**\r\n * Check if component is visible\r\n *\r\n * @return boolean\r\n * */\r\n isVisible() {\r\n return !isStyleHidden(this.model.getStyle());\r\n }\r\n\r\n /**\r\n * Update item aspect after children changes\r\n *\r\n * @return void\r\n * */\r\n checkChildren() {\r\n const { model, clsNoChild } = this;\r\n const count = this.countChildren(model);\r\n const title = this.$el.children(`.${this.clsTitleC}`).children(`.${this.clsTitle}`);\r\n let { cnt } = this;\r\n\r\n if (!cnt) {\r\n cnt = this.$el.children('[data-count]').get(0);\r\n this.cnt = cnt;\r\n }\r\n\r\n title[count ? 'removeClass' : 'addClass'](clsNoChild);\r\n if (cnt) cnt.innerHTML = count || '';\r\n !count && model.set('open', 0);\r\n }\r\n\r\n /**\r\n * Count children inside model\r\n * @param {Object} model\r\n * @return {number}\r\n * @private\r\n */\r\n countChildren(model) {\r\n var count = 0;\r\n model.get('components').each(function (m) {\r\n var isCountable = this.opt.isCountable;\r\n var hide = this.config.hideTextnode;\r\n if (isCountable && !isCountable(m, hide)) return;\r\n count++;\r\n }, this);\r\n return count;\r\n }\r\n\r\n getCaret() {\r\n if (!this.caret || !this.caret.length) {\r\n const pfx = this.pfx;\r\n this.caret = this.$el.children(`.${this.clsTitleC}`).find(`.${this.clsCaret}`);\r\n }\r\n\r\n return this.caret;\r\n }\r\n\r\n setRoot(el) {\r\n el = isString(el) ? this.em.getWrapper().find(el)[0] : el;\r\n const model = getModel(el);\r\n if (!model) return;\r\n this.stopListening();\r\n this.model = model;\r\n this.initialize(this.opt);\r\n this._rendered && this.render();\r\n }\r\n\r\n updateLayerable() {\r\n const { parentView } = this;\r\n const toRerender = parentView || this;\r\n toRerender.render();\r\n }\r\n\r\n __clearItems() {\r\n const { items } = this;\r\n items && items.remove();\r\n }\r\n\r\n remove() {\r\n View.prototype.remove.apply(this, arguments);\r\n this.__clearItems();\r\n }\r\n\r\n render() {\r\n const { model, config, pfx, ppfx, opt } = this;\r\n this.__clearItems();\r\n const { isCountable } = opt;\r\n const hidden = isCountable && !isCountable(model, config.hideTextnode);\r\n const vis = this.isVisible();\r\n const el = this.$el.empty();\r\n const level = this.level + 1;\r\n this.inputName = 0;\r\n\r\n if (isUndefined(ItemsView)) {\r\n ItemsView = require('./ItemsView').default;\r\n }\r\n\r\n this.items = new ItemsView({\r\n ItemView: opt.ItemView,\r\n collection: model.get('components'),\r\n config: this.config,\r\n sorter: this.sorter,\r\n opened: this.opt.opened,\r\n parentView: this,\r\n parent: model,\r\n level,\r\n });\r\n const children = this.items.render().$el;\r\n\r\n if (!this.config.showWrapper && level === 1) {\r\n el.append(children);\r\n } else {\r\n el.html(this.template(model));\r\n el.find(`.${this.clsChildren}`).append(children);\r\n }\r\n\r\n if (!model.get('draggable') || !this.config.sortable) {\r\n el.children(`.${this.clsMove}`).remove();\r\n }\r\n\r\n !vis && (this.className += ` ${pfx}hide`);\r\n hidden && (this.className += ` ${ppfx}hidden`);\r\n el.attr('class', this.className);\r\n this.updateOpening();\r\n this.updateStatus();\r\n this.updateVisibility();\r\n this.__render();\r\n this._rendered = 1;\r\n return this;\r\n }\r\n\r\n __render() {\r\n const { model, config, el } = this;\r\n const { onRender } = config;\r\n const opt = { component: model, el };\r\n onRender.bind(this)(opt);\r\n this.em.trigger('layer:render', opt);\r\n }\r\n}\r\n","import { isElement } from 'underscore';\r\nimport defaults from './config/config';\r\nimport View from './view/ItemView';\r\n\r\nexport default () => {\r\n let em;\r\n let layers;\r\n let config = {};\r\n\r\n return {\r\n name: 'LayerManager',\r\n\r\n init(opts = {}) {\r\n config = { ...defaults, ...opts };\r\n config.stylePrefix = opts.pStylePrefix;\r\n em = config.em;\r\n return this;\r\n },\r\n\r\n getConfig() {\r\n return config;\r\n },\r\n\r\n onLoad() {\r\n em && em.on('component:selected', this.componentChanged);\r\n this.componentChanged();\r\n },\r\n\r\n postRender() {\r\n const elTo = config.appendTo;\r\n const root = config.root;\r\n root && this.setRoot(root);\r\n\r\n if (elTo) {\r\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\r\n el.appendChild(this.render());\r\n }\r\n },\r\n\r\n /**\r\n * Set new root for layers\r\n * @param {HTMLElement|Component|String} el Component to be set as the root\r\n * @return {self}\r\n */\r\n setRoot(el) {\r\n layers && layers.setRoot(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Get the root of layers\r\n * @return {Component}\r\n */\r\n getRoot() {\r\n return layers && layers.model;\r\n },\r\n\r\n /**\r\n * Return the view of layers\r\n * @return {View}\r\n */\r\n getAll() {\r\n return layers;\r\n },\r\n\r\n /**\r\n * Triggered when the selected component is changed\r\n * @private\r\n */\r\n componentChanged(selected, opts = {}) {\r\n if (opts.fromLayers) return;\r\n const opened = em.get('opened');\r\n const model = em.getSelected();\r\n const scroll = config.scrollLayers;\r\n let parent = model && model.collection ? model.collection.parent : null;\r\n for (let cid in opened) opened[cid].set('open', 0);\r\n\r\n while (parent) {\r\n parent.set('open', 1);\r\n opened[parent.cid] = parent;\r\n parent = parent.collection ? parent.collection.parent : null;\r\n }\r\n\r\n if (model && scroll) {\r\n const el = model.viewLayer && model.viewLayer.el;\r\n el && el.scrollIntoView(scroll);\r\n }\r\n },\r\n\r\n render() {\r\n const ItemView = View.extend(config.extend);\r\n layers && layers.remove();\r\n layers = new ItemView({\r\n ItemView,\r\n level: 0,\r\n config,\r\n opened: config.opened || {},\r\n model: em.get('DomComponents').getWrapper(),\r\n });\r\n return layers.render().el;\r\n },\r\n\r\n destroy() {\r\n layers && layers.remove();\r\n [em, layers, config].forEach(i => (i = {}));\r\n },\r\n };\r\n};\r\n","import { View } from '../../common';\r\nimport { eventDrag } from '../../dom_components/model/Component';\r\n\r\nexport default class ItemsView extends View {\r\n initialize(o = {}) {\r\n this.items = [];\r\n this.opt = o;\r\n const config = o.config || {};\r\n this.level = o.level;\r\n this.config = config;\r\n this.preview = o.preview;\r\n this.ppfx = config.pStylePrefix || '';\r\n this.pfx = config.stylePrefix || '';\r\n this.parent = o.parent;\r\n this.parentView = o.parentView;\r\n const pfx = this.pfx;\r\n const ppfx = this.ppfx;\r\n const parent = this.parent;\r\n const coll = this.collection;\r\n this.listenTo(coll, 'add', this.addTo);\r\n this.listenTo(coll, 'reset resetNavigator', this.render);\r\n this.listenTo(coll, 'remove', this.removeChildren);\r\n this.className = `${pfx}layers`;\r\n const em = config.em;\r\n\r\n if (config.sortable && !this.opt.sorter) {\r\n const utils = em.get('Utils');\r\n this.opt.sorter = new utils.Sorter({\r\n container: config.sortContainer || this.el,\r\n containerSel: `.${this.className}`,\r\n itemSel: `.${pfx}layer`,\r\n ignoreViewChildren: 1,\r\n onEndMove(created, sorter, data) {\r\n const srcModel = sorter.getSourceModel();\r\n em.setSelected(srcModel, { forceChange: 1 });\r\n em.trigger(`${eventDrag}:end`, data);\r\n },\r\n avoidSelectOnEnd: 1,\r\n nested: 1,\r\n ppfx,\r\n pfx,\r\n });\r\n }\r\n\r\n this.sorter = this.opt.sorter || '';\r\n\r\n // For the sorter\r\n this.$el.data('collection', coll);\r\n parent && this.$el.data('model', parent);\r\n }\r\n\r\n removeChildren(removed) {\r\n const view = removed.viewLayer;\r\n if (!view) return;\r\n view.remove();\r\n removed.viewLayer = 0;\r\n }\r\n\r\n /**\r\n * Add to collection\r\n * @param Object Model\r\n *\r\n * @return Object\r\n * */\r\n addTo(model) {\r\n var i = this.collection.indexOf(model);\r\n this.addToCollection(model, null, i);\r\n }\r\n\r\n /**\r\n * Add new object to collection\r\n * @param Object Model\r\n * @param Object Fragment collection\r\n * @param integer Index of append\r\n *\r\n * @return Object Object created\r\n * */\r\n addToCollection(model, fragmentEl, index) {\r\n const { level, parentView, opt } = this;\r\n const { ItemView } = opt;\r\n const fragment = fragmentEl || null;\r\n const item = new ItemView({\r\n ItemView,\r\n level,\r\n model,\r\n parentView,\r\n config: this.config,\r\n sorter: this.sorter,\r\n isCountable: this.isCountable,\r\n opened: this.opt.opened,\r\n });\r\n const rendered = item.render().el;\r\n\r\n if (fragment) {\r\n fragment.appendChild(rendered);\r\n } else {\r\n if (typeof index != 'undefined') {\r\n var method = 'before';\r\n // If the added model is the last of collection\r\n // need to change the logic of append\r\n if (this.$el.children().length == index) {\r\n index--;\r\n method = 'after';\r\n }\r\n // In case the added is new in the collection index will be -1\r\n if (index < 0) {\r\n this.$el.append(rendered);\r\n } else this.$el.children().eq(index)[method](rendered);\r\n } else this.$el.append(rendered);\r\n }\r\n this.items.push(item);\r\n return rendered;\r\n }\r\n\r\n remove() {\r\n View.prototype.remove.apply(this, arguments);\r\n this.items.map(i => i.remove());\r\n }\r\n\r\n /**\r\n * Check if the model could be count by the navigator\r\n * @param {Object} model\r\n * @return {Boolean}\r\n * @private\r\n */\r\n isCountable(model, hide) {\r\n var type = model.get('type');\r\n var tag = model.get('tagName');\r\n if (((type == 'textnode' || tag == 'br') && hide) || !model.get('layerable')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n render() {\r\n const frag = document.createDocumentFragment();\r\n const el = this.el;\r\n el.innerHTML = '';\r\n this.collection.each(model => this.addToCollection(model, frag));\r\n el.appendChild(frag);\r\n el.className = this.className;\r\n return this;\r\n }\r\n}\r\n","import { result, forEach } from 'underscore';\r\nimport { Model } from '../../common';\r\nimport Frames from '../../canvas/model/Frames';\r\n\r\nexport default class Page extends Model {\r\n defaults() {\r\n return {\r\n frames: [],\r\n _undo: true,\r\n };\r\n }\r\n\r\n initialize(props, opts = {}) {\r\n const { config = {} } = opts;\r\n const { em } = config;\r\n const defFrame = {};\r\n this.em = em;\r\n if (!props.frames) {\r\n defFrame.component = props.component;\r\n defFrame.styles = props.styles;\r\n ['component', 'styles'].map(i => this.unset(i));\r\n }\r\n const frms = props.frames || [defFrame];\r\n const frames = new Frames(frms, config);\r\n frames.page = this;\r\n this.set('frames', frames);\r\n const um = em && em.get('UndoManager');\r\n um && um.add(frames);\r\n }\r\n\r\n onRemove() {\r\n this.get('frames').reset();\r\n }\r\n\r\n getFrames() {\r\n return this.get('frames');\r\n }\r\n\r\n /**\r\n * Get page id\r\n * @returns {String}\r\n */\r\n getId() {\r\n return this.id;\r\n }\r\n\r\n /**\r\n * Get page name\r\n * @returns {String}\r\n */\r\n getName() {\r\n return this.get('name');\r\n }\r\n\r\n /**\r\n * Update page name\r\n * @param {String} name New page name\r\n * @example\r\n * page.setName('New name');\r\n */\r\n setName(name) {\r\n return this.get({ name });\r\n }\r\n\r\n /**\r\n * Get all frames\r\n * @returns {Array}\r\n * @example\r\n * const arrayOfFrames = page.getAllFrames();\r\n */\r\n getAllFrames() {\r\n return this.getFrames().models || [];\r\n }\r\n\r\n /**\r\n * Get the first frame of the page (identified always as the main one)\r\n * @returns {Frame}\r\n * @example\r\n * const mainFrame = page.getMainFrame();\r\n */\r\n getMainFrame() {\r\n return this.getFrames().at(0);\r\n }\r\n\r\n /**\r\n * Get the root component (usually is the `wrapper` component) from the main frame\r\n * @returns {Component}\r\n * @example\r\n * const rootComponent = page.getMainComponent();\r\n * console.log(rootComponent.toHTML());\r\n */\r\n getMainComponent() {\r\n const frame = this.getMainFrame();\r\n return frame && frame.getComponent();\r\n }\r\n\r\n toJSON(opts = {}) {\r\n const obj = Model.prototype.toJSON.call(this, opts);\r\n const defaults = result(this, 'defaults');\r\n\r\n // Remove private keys\r\n forEach(obj, (value, key) => {\r\n key.indexOf('_') === 0 && delete obj[key];\r\n });\r\n\r\n forEach(defaults, (value, key) => {\r\n if (obj[key] === value) delete obj[key];\r\n });\r\n\r\n return obj;\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Page from './Page';\r\n\r\nexport default class Pages extends Collection {\r\n initialize(models, config = {}) {\r\n this.config = config;\r\n this.on('reset', this.onReset);\r\n this.on('remove', this.onRemove);\r\n }\r\n\r\n onReset(m, opts = {}) {\r\n const prev = opts.previousModels || [];\r\n prev.map(p => this.onRemove(p));\r\n }\r\n\r\n onRemove(removed) {\r\n removed && removed.onRemove();\r\n }\r\n\r\n add(m, o = {}) {\r\n const { config } = this;\r\n return Collection.prototype.add.call(this, m, { ...o, config });\r\n }\r\n}\r\n\r\nPages.prototype.model = Page;\r\n","/**\r\n * You can customize the initial state of the module from the editor initialization\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * ....\r\n * pageManager: {\r\n * pages: [\r\n * {\r\n * id: 'page-id',\r\n * styles: `.my-class { color: red }`, // or a JSON of styles\r\n * component: '
My element
', // or a JSON of components\r\n * }\r\n * ]\r\n * },\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const pageManager = editor.Pages;\r\n * ```\r\n *\r\n * ## Available Events\r\n * * `page:add` - Added new page. The page is passed as an argument to the callback\r\n * * `page:remove` - Page removed. The page is passed as an argument to the callback\r\n * * `page:select` - New page selected. The newly selected page and the previous one, are passed as arguments to the callback\r\n * * `page:update` - Page updated. The updated page and the object containing changes are passed as arguments to the callback\r\n * * `page` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\r\n *\r\n * ## Methods\r\n * * [add](#add)\r\n * * [get](#get)\r\n * * [getAll](#getall)\r\n * * [getAllWrappers](#getallwrappers)\r\n * * [getMain](#getmain)\r\n * * [remove](#remove)\r\n * * [select](#select)\r\n * * [getSelected](#getselected)\r\n *\r\n * [Page]: page.html\r\n * [Component]: component.html\r\n *\r\n * @module Pages\r\n */\r\n\r\nimport { isString, bindAll, unique, flatten } from 'underscore';\r\nimport { createId } from '../utils/mixins';\r\nimport { Model, Module } from '../common';\r\nimport Pages from './model/Pages';\r\nimport Page from './model/Page';\r\n\r\nexport const evAll = 'page';\r\nexport const evPfx = `${evAll}:`;\r\nexport const evPageSelect = `${evPfx}select`;\r\nexport const evPageSelectBefore = `${evPageSelect}:before`;\r\nexport const evPageUpdate = `${evPfx}update`;\r\nexport const evPageAdd = `${evPfx}add`;\r\nexport const evPageAddBefore = `${evPageAdd}:before`;\r\nexport const evPageRemove = `${evPfx}remove`;\r\nexport const evPageRemoveBefore = `${evPageRemove}:before`;\r\nconst chnSel = 'change:selected';\r\nconst typeMain = 'main';\r\n\r\nexport default () => {\r\n return {\r\n ...Module,\r\n\r\n name: 'PageManager',\r\n\r\n storageKey: 'pages',\r\n\r\n Page,\r\n\r\n Pages,\r\n\r\n events: {\r\n all: evAll,\r\n select: evPageSelect,\r\n selectBefore: evPageSelectBefore,\r\n update: evPageUpdate,\r\n add: evPageAdd,\r\n addBefore: evPageAddBefore,\r\n remove: evPageRemove,\r\n removeBefore: evPageRemoveBefore,\r\n },\r\n\r\n /**\r\n * Initialize module\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(opts = {}) {\r\n bindAll(this, '_onPageChange');\r\n const { em } = opts;\r\n const cnf = { ...opts };\r\n this.config = cnf;\r\n this.em = em;\r\n const pages = new Pages([], cnf);\r\n this.pages = pages;\r\n this.all = pages;\r\n const model = new Model({ _undo: true });\r\n this.model = model;\r\n pages.on('add', (p, c, o) => em.trigger(evPageAdd, p, o));\r\n pages.on('remove', (p, c, o) => em.trigger(evPageRemove, p, o));\r\n pages.on('change', (p, c) => {\r\n em.trigger(evPageUpdate, p, p.changedAttributes(), c);\r\n });\r\n pages.on('reset', coll => coll.at(0) && this.select(coll.at(0)));\r\n pages.on('all', this.__onChange, this);\r\n model.on(chnSel, this._onPageChange);\r\n\r\n return this;\r\n },\r\n\r\n __onChange(event, page, coll, opts) {\r\n const options = opts || coll;\r\n this.em.trigger(evAll, { event, page, options });\r\n },\r\n\r\n onLoad() {\r\n const { pages } = this;\r\n const opt = { silent: true };\r\n pages.add(this.config.pages || [], opt);\r\n const mainPage = !pages.length ? this.add({ type: typeMain }, opt) : this.getMain();\r\n this.select(mainPage, opt);\r\n },\r\n\r\n _onPageChange(m, page, opts) {\r\n const { em } = this;\r\n const lm = em.get('LayerManager');\r\n const mainComp = page.getMainComponent();\r\n lm && mainComp && lm.setRoot(mainComp);\r\n em.trigger(evPageSelect, page, m.previous('selected'));\r\n this.__onChange(chnSel, page, opts);\r\n },\r\n\r\n postLoad() {\r\n const { em, model } = this;\r\n const um = em.get('UndoManager');\r\n um && um.add(model);\r\n um && um.add(this.pages);\r\n },\r\n\r\n /**\r\n * Add new page\r\n * @param {Object} props Page properties\r\n * @param {Object} [opts] Options\r\n * @returns {[Page]}\r\n * @example\r\n * const newPage = pageManager.add({\r\n * id: 'new-page-id', // without an explicit ID, a random one will be created\r\n * styles: `.my-class { color: red }`, // or a JSON of styles\r\n * component: '
My element
', // or a JSON of components\r\n * });\r\n */\r\n add(props, opts = {}) {\r\n const { em } = this;\r\n props.id = props.id || this._createId();\r\n const add = () => {\r\n const page = this.pages.add(props, opts);\r\n opts.select && this.select(page);\r\n return page;\r\n };\r\n !opts.silent && em.trigger(evPageAddBefore, props, add, opts);\r\n return !opts.abort && add();\r\n },\r\n\r\n /**\r\n * Remove page\r\n * @param {String|[Page]} page Page or page id\r\n * @returns {[Page]} Removed Page\r\n * @example\r\n * const removedPage = pageManager.remove('page-id');\r\n * // or by passing the page\r\n * const somePage = pageManager.get('page-id');\r\n * pageManager.remove(somePage);\r\n */\r\n remove(page, opts = {}) {\r\n const { em } = this;\r\n const pg = isString(page) ? this.get(page) : page;\r\n const rm = () => {\r\n pg && this.pages.remove(pg, opts);\r\n return pg;\r\n };\r\n !opts.silent && em.trigger(evPageRemoveBefore, pg, rm, opts);\r\n return !opts.abort && rm();\r\n },\r\n\r\n /**\r\n * Get page by id\r\n * @param {String} id Page id\r\n * @returns {[Page]}\r\n * @example\r\n * const somePage = pageManager.get('page-id');\r\n */\r\n get(id) {\r\n return this.pages.filter(p => p.get('id') === id)[0];\r\n },\r\n\r\n /**\r\n * Get main page (the first one available)\r\n * @returns {[Page]}\r\n * @example\r\n * const mainPage = pageManager.getMain();\r\n */\r\n getMain() {\r\n const { pages } = this;\r\n return pages.filter(p => p.get('type') === typeMain)[0] || pages.at(0);\r\n },\r\n\r\n /**\r\n * Get all pages\r\n * @returns {Array<[Page]>}\r\n * @example\r\n * const arrayOfPages = pageManager.getAll();\r\n */\r\n getAll() {\r\n return [...this.pages.models];\r\n },\r\n\r\n /**\r\n * Get wrapper components (aka body) from all pages and frames.\r\n * @returns {Array<[Component]>}\r\n * @example\r\n * const wrappers = pageManager.getAllWrappers();\r\n * // Get all `image` components from the project\r\n * const allImages = wrappers.map(wrp => wrp.findType('image')).flat();\r\n */\r\n getAllWrappers() {\r\n const pages = this.getAll();\r\n return unique(flatten(pages.map(page => page.getAllFrames().map(frame => frame.getComponent()))));\r\n },\r\n\r\n getAllMap() {\r\n return this.getAll().reduce((acc, i) => {\r\n acc[i.get('id')] = i;\r\n return acc;\r\n }, {});\r\n },\r\n\r\n /**\r\n * Change the selected page. This will switch the page rendered in canvas\r\n * @param {String|[Page]} page Page or page id\r\n * @returns {this}\r\n * @example\r\n * pageManager.select('page-id');\r\n * // or by passing the page\r\n * const somePage = pageManager.get('page-id');\r\n * pageManager.select(somePage);\r\n */\r\n select(page, opts = {}) {\r\n const pg = isString(page) ? this.get(page) : page;\r\n if (pg) {\r\n this.em.trigger(evPageSelectBefore, pg, opts);\r\n this.model.set('selected', pg, opts);\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * Get the selected page\r\n * @returns {[Page]}\r\n * @example\r\n * const selectedPage = pageManager.getSelected();\r\n */\r\n getSelected() {\r\n return this.model.get('selected');\r\n },\r\n\r\n destroy() {\r\n this.pages.off().reset();\r\n this.model.stopListening();\r\n this.model.clear({ silent: true });\r\n ['selected', 'config', 'em', 'pages', 'model'].map(i => (this[i] = 0));\r\n },\r\n\r\n store() {\r\n return this.getProjectData();\r\n },\r\n\r\n load(data) {\r\n return this.loadProjectData(data, { all: this.pages, reset: true });\r\n },\r\n\r\n _createId() {\r\n const pages = this.getAll();\r\n const len = pages.length + 16;\r\n const pagesMap = this.getAllMap();\r\n let id;\r\n\r\n do {\r\n id = createId(len);\r\n } while (pagesMap[id]);\r\n\r\n return id;\r\n },\r\n };\r\n};\r\n","const swv = 'sw-visibility';\r\nconst expt = 'export-template';\r\nconst osm = 'open-sm';\r\nconst otm = 'open-tm';\r\nconst ola = 'open-layers';\r\nconst obl = 'open-blocks';\r\nconst ful = 'fullscreen';\r\nconst prv = 'preview';\r\n\r\nexport default {\r\n stylePrefix: 'pn-',\r\n\r\n // Default panels fa-sliders for features\r\n defaults: [\r\n {\r\n id: 'commands',\r\n buttons: [{}]\r\n },\r\n {\r\n id: 'options',\r\n buttons: [\r\n {\r\n active: true,\r\n id: swv,\r\n className: 'fa fa-square-o',\r\n command: swv,\r\n context: swv,\r\n attributes: { title: 'View components' }\r\n },\r\n {\r\n id: prv,\r\n className: 'fa fa-eye',\r\n command: prv,\r\n context: prv,\r\n attributes: { title: 'Preview' }\r\n },\r\n {\r\n id: ful,\r\n className: 'fa fa-arrows-alt',\r\n command: ful,\r\n context: ful,\r\n attributes: { title: 'Fullscreen' }\r\n },\r\n {\r\n id: expt,\r\n className: 'fa fa-code',\r\n command: expt,\r\n attributes: { title: 'View code' }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'views',\r\n buttons: [\r\n {\r\n id: osm,\r\n className: 'fa fa-paint-brush',\r\n command: osm,\r\n active: true,\r\n togglable: 0,\r\n attributes: { title: 'Open Style Manager' }\r\n },\r\n {\r\n id: otm,\r\n className: 'fa fa-cog',\r\n command: otm,\r\n togglable: 0,\r\n attributes: { title: 'Settings' }\r\n },\r\n {\r\n id: ola,\r\n className: 'fa fa-bars',\r\n command: ola,\r\n togglable: 0,\r\n attributes: { title: 'Open Layer Manager' }\r\n },\r\n {\r\n id: obl,\r\n className: 'fa fa-th-large',\r\n command: obl,\r\n togglable: 0,\r\n attributes: { title: 'Open Blocks' }\r\n }\r\n ]\r\n }\r\n ],\r\n\r\n // Editor model\r\n em: null,\r\n\r\n // Delay before show children buttons (in milliseconds)\r\n delayBtnsShow: 300\r\n};\r\n","import { Model } from '../../common';\r\nimport Buttons from './Buttons';\r\n\r\nexport default class Panel extends Model {\r\n defaults() {\r\n return {\r\n id: '',\r\n content: '',\r\n visible: true,\r\n buttons: [],\r\n attributes: {},\r\n };\r\n }\r\n\r\n initialize(options) {\r\n this.btn = this.get('buttons') || [];\r\n this.buttons = new Buttons(this.btn);\r\n this.set('buttons', this.buttons);\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Panel from './Panel';\r\n\r\nexport default class Panels extends Collection {}\r\n\r\nPanels.prototype.model = Panel;\r\n","import { isString, isObject, isFunction } from 'underscore';\r\nimport { View } from '../../common';\r\n\r\nexport default class ButtonView extends View {\r\n tagName() {\r\n return this.model.get('tagName');\r\n }\r\n\r\n events() {\r\n return {\r\n click: 'clicked',\r\n };\r\n }\r\n\r\n initialize(o) {\r\n const { model } = this;\r\n const cls = model.get('className');\r\n const { command, listen } = model.attributes;\r\n const config = o.config || {};\r\n const { em } = config;\r\n this.config = config;\r\n this.em = em;\r\n const pfx = this.config.stylePrefix || '';\r\n const ppfx = this.config.pStylePrefix || '';\r\n this.pfx = pfx;\r\n this.ppfx = this.config.pStylePrefix || '';\r\n this.id = pfx + model.get('id');\r\n this.activeCls = `${pfx}active ${ppfx}four-color`;\r\n this.disableCls = `${ppfx}disabled`;\r\n this.btnsVisCls = `${pfx}visible`;\r\n this.className = pfx + 'btn' + (cls ? ' ' + cls : '');\r\n this.listenTo(model, 'change', this.render);\r\n this.listenTo(model, 'change:active updateActive', this.updateActive);\r\n this.listenTo(model, 'checkActive', this.checkActive);\r\n this.listenTo(model, 'change:bntsVis', this.updateBtnsVis);\r\n this.listenTo(model, 'change:attributes', this.updateAttributes);\r\n this.listenTo(model, 'change:className', this.updateClassName);\r\n this.listenTo(model, 'change:disable', this.updateDisable);\r\n\r\n if (em && isString(command) && listen) {\r\n const chnOpt = { fromListen: 1 };\r\n this.listenTo(em, `run:${command}`, () => model.set('active', true, chnOpt));\r\n this.listenTo(em, `stop:${command}`, () => model.set('active', false, chnOpt));\r\n }\r\n\r\n if (em && em.get) this.commands = em.get('Commands');\r\n }\r\n\r\n /**\r\n * Updates class name of the button\r\n *\r\n * @return void\r\n * */\r\n updateClassName() {\r\n const { model, pfx } = this;\r\n const cls = model.get('className');\r\n const attrCls = model.get('attributes').class;\r\n const classStr = `${attrCls ? attrCls : ''} ${pfx}btn ${cls ? cls : ''}`;\r\n this.$el.attr('class', classStr.trim());\r\n }\r\n\r\n /**\r\n * Updates attributes of the button\r\n *\r\n * @return void\r\n * */\r\n updateAttributes() {\r\n const { em, model, $el } = this;\r\n const attr = model.get('attributes') || {};\r\n const title = em && em.t && em.t(`panels.buttons.titles.${model.id}`);\r\n $el.attr(attr);\r\n title && $el.attr({ title });\r\n\r\n this.updateClassName();\r\n }\r\n\r\n /**\r\n * Updates visibility of children buttons\r\n *\r\n * @return void\r\n * */\r\n updateBtnsVis() {\r\n if (!this.$buttons) return;\r\n\r\n if (this.model.get('bntsVis')) this.$buttons.addClass(this.btnsVisCls);\r\n else this.$buttons.removeClass(this.btnsVisCls);\r\n }\r\n\r\n /**\r\n * Update active status of the button\r\n *\r\n * @return void\r\n * */\r\n updateActive(m, v, opts = {}) {\r\n const { model, commands, $el, activeCls } = this;\r\n const { fromCollection, fromListen } = opts;\r\n const context = model.get('context');\r\n const options = model.get('options');\r\n const commandName = model.get('command');\r\n let command = {};\r\n\r\n if (!commandName) return;\r\n\r\n if (commands && isString(commandName)) {\r\n command = commands.get(commandName) || {};\r\n } else if (isFunction(commandName)) {\r\n command = commands.create({ run: commandName });\r\n } else if (commandName !== null && isObject(commandName)) {\r\n command = commands.create(commandName);\r\n }\r\n\r\n if (model.get('active')) {\r\n !fromCollection && model.collection.deactivateAll(context, model);\r\n model.set('active', true, { silent: true }).trigger('checkActive');\r\n !fromListen && commands.runCommand(command, { ...options, sender: model });\r\n\r\n // Disable button if the command has no stop method\r\n command.noStop && model.set('active', false);\r\n } else {\r\n $el.removeClass(activeCls);\r\n !fromListen && commands.stopCommand(command, { ...options, sender: model, force: 1 });\r\n }\r\n }\r\n\r\n updateDisable() {\r\n const { disableCls, model } = this;\r\n const disable = model.get('disable');\r\n this.$el[disable ? 'addClass' : 'removeClass'](disableCls);\r\n }\r\n\r\n /**\r\n * Update active style status\r\n *\r\n * @return void\r\n * */\r\n checkActive() {\r\n const { model, $el, activeCls } = this;\r\n model.get('active') ? $el.addClass(activeCls) : $el.removeClass(activeCls);\r\n }\r\n\r\n /**\r\n * Triggered when button is clicked\r\n * @param {Object} e Event\r\n *\r\n * @return void\r\n * */\r\n clicked(e) {\r\n const { model } = this;\r\n\r\n if (model.get('bntsVis') || model.get('disable') || !model.get('command')) return;\r\n\r\n this.toggleActive();\r\n }\r\n\r\n toggleActive() {\r\n const { model, em } = this;\r\n const { active, togglable } = model.attributes;\r\n\r\n if (active && !togglable) return;\r\n\r\n model.set('active', !active);\r\n\r\n // If the stop is requested\r\n if (active) {\r\n if (model.get('runDefaultCommand')) em.runDefault();\r\n } else {\r\n if (model.get('stopDefaultCommand')) em.stopDefault();\r\n }\r\n }\r\n\r\n render() {\r\n const { model } = this;\r\n const label = model.get('label');\r\n const { $el } = this;\r\n !model.get('el') && $el.empty();\r\n this.updateAttributes();\r\n label && $el.append(label);\r\n this.checkActive();\r\n this.updateDisable();\r\n\r\n return this;\r\n }\r\n}\r\n","import { result } from 'underscore';\r\nimport { View } from '../../common';\r\nimport ButtonView from './ButtonView';\r\n\r\nexport default class ButtonsView extends View {\r\n initialize(o) {\r\n this.opt = o || {};\r\n this.config = this.opt.config || {};\r\n this.pfx = this.config.stylePrefix || '';\r\n this.parentM = this.opt.parentM || null;\r\n this.listenTo(this.collection, 'add', this.addTo);\r\n this.listenTo(this.collection, 'reset remove', this.render);\r\n this.className = this.pfx + 'buttons';\r\n }\r\n\r\n /**\r\n * Add to collection\r\n * @param Object Model\r\n *\r\n * @return Object\r\n * */\r\n addTo(model) {\r\n this.addToCollection(model);\r\n }\r\n\r\n /**\r\n * Add new object to collection\r\n * @param Object Model\r\n * @param Object Fragment collection\r\n *\r\n * @return Object Object created\r\n * */\r\n addToCollection(model, fragmentEl) {\r\n const fragment = fragmentEl || null;\r\n const viewObject = ButtonView;\r\n const el = model.get('el');\r\n const view = new viewObject({\r\n el,\r\n model,\r\n config: this.config,\r\n parentM: this.parentM,\r\n });\r\n const rendered = view.render().el;\r\n\r\n if (fragment) {\r\n fragment.appendChild(rendered);\r\n } else {\r\n this.$el.append(rendered);\r\n }\r\n\r\n return rendered;\r\n }\r\n\r\n render() {\r\n var fragment = document.createDocumentFragment();\r\n this.$el.empty();\r\n\r\n this.collection.each(function (model) {\r\n this.addToCollection(model, fragment);\r\n }, this);\r\n\r\n this.$el.append(fragment);\r\n this.$el.attr('class', result(this, 'className'));\r\n return this;\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport ButtonsView from './ButtonsView';\r\n\r\nexport default class PanelView extends View {\r\n initialize(o) {\r\n const config = o.config || {};\r\n const model = this.model;\r\n this.config = config;\r\n this.pfx = config.stylePrefix || '';\r\n this.ppfx = config.pStylePrefix || '';\r\n this.buttons = model.get('buttons');\r\n this.className = this.pfx + 'panel';\r\n this.id = this.pfx + model.get('id');\r\n this.listenTo(model, 'change:appendContent', this.appendContent);\r\n this.listenTo(model, 'change:content', this.updateContent);\r\n this.listenTo(model, 'change:visible', this.toggleVisible);\r\n model.view = this;\r\n }\r\n\r\n /**\r\n * Append content of the panel\r\n * */\r\n appendContent() {\r\n this.$el.append(this.model.get('appendContent'));\r\n }\r\n\r\n /**\r\n * Update content\r\n * */\r\n updateContent() {\r\n this.$el.html(this.model.get('content'));\r\n }\r\n\r\n toggleVisible() {\r\n if (!this.model.get('visible')) {\r\n this.$el.addClass(`${this.ppfx}hidden`);\r\n return;\r\n }\r\n this.$el.removeClass(`${this.ppfx}hidden`);\r\n }\r\n\r\n attributes() {\r\n return this.model.get('attributes');\r\n }\r\n\r\n initResize() {\r\n const em = this.config.em;\r\n const editor = em ? em.get('Editor') : '';\r\n const resizable = this.model.get('resizable');\r\n\r\n if (editor && resizable) {\r\n var resz = resizable === true ? [1, 1, 1, 1] : resizable;\r\n var resLen = resz.length;\r\n var tc,\r\n cr,\r\n bc,\r\n cl = 0;\r\n\r\n // Choose which sides of the panel are resizable\r\n if (resLen == 2) {\r\n tc = resz[0];\r\n bc = resz[0];\r\n cr = resz[1];\r\n cl = resz[1];\r\n } else if (resLen == 4) {\r\n tc = resz[0];\r\n cr = resz[1];\r\n bc = resz[2];\r\n cl = resz[3];\r\n }\r\n\r\n var resizer = editor.Utils.Resizer.init({\r\n tc,\r\n cr,\r\n bc,\r\n cl,\r\n tl: 0,\r\n tr: 0,\r\n bl: 0,\r\n br: 0,\r\n appendTo: this.el,\r\n silentFrames: 1,\r\n avoidContainerUpdate: 1,\r\n prefix: editor.getConfig().stylePrefix,\r\n onEnd() {\r\n em && em.trigger('change:canvasOffset');\r\n },\r\n posFetcher: (el, { target }) => {\r\n const style = el.style;\r\n const config = resizer.getConfig();\r\n const keyWidth = config.keyWidth;\r\n const keyHeight = config.keyHeight;\r\n const rect = el.getBoundingClientRect();\r\n const forContainer = target == 'container';\r\n const styleWidth = style[keyWidth];\r\n const styleHeight = style[keyHeight];\r\n const width = styleWidth && !forContainer ? parseFloat(styleWidth) : rect.width;\r\n const height = styleHeight && !forContainer ? parseFloat(styleHeight) : rect.height;\r\n return {\r\n left: 0,\r\n top: 0,\r\n width,\r\n height,\r\n };\r\n },\r\n ...resizable,\r\n });\r\n resizer.blur = () => {};\r\n resizer.focus(this.el);\r\n }\r\n }\r\n\r\n render() {\r\n const $el = this.$el;\r\n const ppfx = this.ppfx;\r\n const cls = `${this.className} ${this.id} ${ppfx}one-bg ${ppfx}two-color`;\r\n $el.addClass(cls);\r\n\r\n this.toggleVisible();\r\n\r\n if (this.buttons.length) {\r\n var buttons = new ButtonsView({\r\n collection: this.buttons,\r\n config: this.config,\r\n });\r\n $el.append(buttons.render().el);\r\n }\r\n\r\n $el.append(this.model.get('content'));\r\n return this;\r\n }\r\n}\r\n","import { View } from '../../common';\r\nimport PanelView from './PanelView';\r\n\r\nexport default class PanelsView extends View {\r\n initialize(o) {\r\n this.opt = o || {};\r\n this.config = this.opt.config || {};\r\n this.pfx = this.config.stylePrefix || '';\r\n const items = this.collection;\r\n this.listenTo(items, 'add', this.addTo);\r\n this.listenTo(items, 'reset', this.render);\r\n this.listenTo(items, 'remove', this.onRemove);\r\n this.className = this.pfx + 'panels';\r\n }\r\n\r\n onRemove(model) {\r\n const view = model.view;\r\n view && view.remove();\r\n }\r\n\r\n /**\r\n * Add to collection\r\n * @param Object Model\r\n *\r\n * @return Object\r\n * @private\r\n * */\r\n addTo(model) {\r\n this.addToCollection(model);\r\n }\r\n\r\n /**\r\n * Add new object to collection\r\n * @param Object Model\r\n * @param Object Fragment collection\r\n * @param integer Index of append\r\n *\r\n * @return Object Object created\r\n * @private\r\n * */\r\n addToCollection(model, fragmentEl) {\r\n const fragment = fragmentEl || null;\r\n const config = this.config;\r\n const el = model.get('el');\r\n const view = new PanelView({\r\n el,\r\n model,\r\n config,\r\n });\r\n const rendered = view.render().el;\r\n const appendTo = model.get('appendTo');\r\n\r\n // Do nothing if the panel was requested to be another element\r\n if (el) {\r\n } else if (appendTo) {\r\n var appendEl = document.querySelector(appendTo);\r\n appendEl.appendChild(rendered);\r\n } else {\r\n if (fragment) {\r\n fragment.appendChild(rendered);\r\n } else {\r\n this.$el.append(rendered);\r\n }\r\n }\r\n\r\n view.initResize();\r\n return rendered;\r\n }\r\n\r\n render() {\r\n const $el = this.$el;\r\n const frag = document.createDocumentFragment();\r\n $el.empty();\r\n this.collection.each(model => this.addToCollection(model, frag));\r\n $el.append(frag);\r\n $el.attr('class', this.className);\r\n return this;\r\n }\r\n}\r\n","/**\r\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)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * panels: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const panelManager = editor.Panels;\r\n * ```\r\n *\r\n * * [addPanel](#addpanel)\r\n * * [addButton](#addbutton)\r\n * * [getButton](#getbutton)\r\n * * [getPanel](#getpanel)\r\n * * [getPanels](#getpanels)\r\n * * [getPanelsEl](#getpanelsel)\r\n * * [removePanel](#removepanel)\r\n * * [removeButton](#removebutton)\r\n *\r\n * @module Panels\r\n */\r\nimport defaults from './config/config';\r\nimport Panel from './model/Panel';\r\nimport Panels from './model/Panels';\r\nimport PanelsView from './view/PanelsView';\r\n\r\nexport default () => {\r\n var c = {};\r\n var panels, PanelsViewObj;\r\n\r\n return {\r\n /**\r\n * Name of the module\r\n * @type {String}\r\n * @private\r\n */\r\n name: 'Panels',\r\n\r\n /**\r\n * Initialize module. Automatically called with a new instance of the editor\r\n * @param {Object} config Configurations\r\n * @private\r\n */\r\n init(config) {\r\n c = config || {};\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var ppfx = c.pStylePrefix;\r\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\r\n\r\n panels = new Panels(c.defaults);\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns the collection of panels\r\n * @return {Collection} Collection of panel\r\n */\r\n getPanels() {\r\n return panels;\r\n },\r\n\r\n /**\r\n * Returns panels element\r\n * @return {HTMLElement}\r\n */\r\n getPanelsEl() {\r\n return PanelsViewObj && PanelsViewObj.el;\r\n },\r\n\r\n /**\r\n * Add new panel to the collection\r\n * @param {Object|Panel} panel Object with right properties or an instance of Panel\r\n * @return {Panel} Added panel. Useful in case passed argument was an Object\r\n * @example\r\n * var newPanel = panelManager.addPanel({\r\n * id: 'myNewPanel',\r\n * visible : true,\r\n * buttons : [...],\r\n * });\r\n */\r\n addPanel(panel) {\r\n return panels.add(panel);\r\n },\r\n\r\n /**\r\n * Remove a panel from the collection\r\n * @param {Object|Panel|String} panel Object with right properties or an instance of Panel or Painel id\r\n * @return {Panel} Removed panel. Useful in case passed argument was an Object\r\n * @example\r\n * const newPanel = panelManager.removePanel({\r\n * id: 'myNewPanel',\r\n * visible : true,\r\n * buttons : [...],\r\n * });\r\n *\r\n * const newPanel = panelManager.removePanel('myNewPanel');\r\n *\r\n */\r\n removePanel(panel) {\r\n return panels.remove(panel);\r\n },\r\n\r\n /**\r\n * Get panel by ID\r\n * @param {string} id Id string\r\n * @return {Panel|null}\r\n * @example\r\n * var myPanel = panelManager.getPanel('myNewPanel');\r\n */\r\n getPanel(id) {\r\n var res = panels.where({ id });\r\n return res.length ? res[0] : null;\r\n },\r\n\r\n /**\r\n * Add button to the panel\r\n * @param {string} panelId Panel's ID\r\n * @param {Object|Button} button Button object or instance of Button\r\n * @return {Button|null} Added button. Useful in case passed button was an Object\r\n * @example\r\n * var newButton = panelManager.addButton('myNewPanel',{\r\n * id: 'myNewButton',\r\n * className: 'someClass',\r\n * command: 'someCommand',\r\n * attributes: { title: 'Some title'},\r\n * active: false,\r\n * });\r\n * // It's also possible to pass the command as an object\r\n * // with .run and .stop methods\r\n * ...\r\n * command: {\r\n * run: function(editor) {\r\n * ...\r\n * },\r\n * stop: function(editor) {\r\n * ...\r\n * }\r\n * },\r\n * // Or simply like a function which will be evaluated as a single .run command\r\n * ...\r\n * command: function(editor) {\r\n * ...\r\n * }\r\n */\r\n addButton(panelId, button) {\r\n var pn = this.getPanel(panelId);\r\n return pn ? pn.get('buttons').add(button) : null;\r\n },\r\n\r\n /**\r\n * Remove button from the panel\r\n * @param {String} panelId Panel's ID\r\n * @param {String} buttonId Button's ID\r\n * @return {Button|null} Removed button.\r\n * @example\r\n * const removedButton = panelManager.addButton('myNewPanel',{\r\n * id: 'myNewButton',\r\n * className: 'someClass',\r\n * command: 'someCommand',\r\n * attributes: { title: 'Some title'},\r\n * active: false,\r\n * });\r\n *\r\n * const removedButton = panelManager.removeButton('myNewPanel', 'myNewButton');\r\n *\r\n */\r\n removeButton(panelId, button) {\r\n var pn = this.getPanel(panelId);\r\n return pn && pn.get('buttons').remove(button);\r\n },\r\n\r\n /**\r\n * Get button from the panel\r\n * @param {string} panelId Panel's ID\r\n * @param {string} id Button's ID\r\n * @return {Button|null}\r\n * @example\r\n * var button = panelManager.getButton('myPanel','myButton');\r\n */\r\n getButton(panelId, id) {\r\n var pn = this.getPanel(panelId);\r\n if (pn) {\r\n var res = pn.get('buttons').where({ id });\r\n return res.length ? res[0] : null;\r\n }\r\n return null;\r\n },\r\n\r\n /**\r\n * Render panels and buttons\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n render() {\r\n PanelsViewObj && PanelsViewObj.remove();\r\n PanelsViewObj = new PanelsView({\r\n collection: panels,\r\n config: c\r\n });\r\n return PanelsViewObj.render().el;\r\n },\r\n\r\n /**\r\n * Active activable buttons\r\n * @private\r\n */\r\n active() {\r\n this.getPanels().each(p => {\r\n p.get('buttons').each(btn => {\r\n btn.get('active') && btn.trigger('updateActive');\r\n });\r\n });\r\n },\r\n\r\n /**\r\n * Disable buttons flagged as disabled\r\n * @private\r\n */\r\n disableButtons() {\r\n this.getPanels().each(p => {\r\n p.get('buttons').each(btn => {\r\n if (btn.get('disable')) btn.trigger('change:disable');\r\n });\r\n });\r\n },\r\n\r\n destroy() {\r\n panels.reset();\r\n panels.stopListening();\r\n PanelsViewObj && PanelsViewObj.remove();\r\n [c, panels, PanelsViewObj].forEach(i => (i = {}));\r\n },\r\n\r\n Panel\r\n };\r\n};\r\n","import { Model } from '../../common';\r\n\r\nexport default class Button extends Model {\r\n defaults() {\r\n return {\r\n id: '',\r\n label: '',\r\n tagName: 'span',\r\n className: '',\r\n command: '',\r\n context: '',\r\n buttons: [],\r\n attributes: {},\r\n options: {},\r\n active: false,\r\n dragDrop: false,\r\n togglable: true,\r\n runDefaultCommand: true,\r\n stopDefaultCommand: false,\r\n disable: false,\r\n };\r\n }\r\n\r\n initialize(options) {\r\n if (this.get('buttons').length) {\r\n var Buttons = require('./Buttons').default;\r\n this.set('buttons', new Buttons(this.get('buttons')));\r\n }\r\n }\r\n}\r\n","import { Collection } from '../../common';\r\nimport Button from './Button';\r\n\r\nexport default class Buttons extends Collection {\r\n /**\r\n * Deactivate all buttons, except one passed\r\n * @param {Object} except Model to ignore\r\n * @param {Boolean} r Recursive flag\r\n *\r\n * @return void\r\n * */\r\n deactivateAllExceptOne(except, r) {\r\n this.forEach((model, index) => {\r\n if (model !== except) {\r\n model.set('active', false);\r\n if (r && model.get('buttons').length) model.get('buttons').deactivateAllExceptOne(except, r);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Deactivate all buttons\r\n * @param {String} ctx Context string\r\n *\r\n * @return void\r\n * */\r\n deactivateAll(ctx, sender) {\r\n const context = ctx || '';\r\n this.forEach(model => {\r\n if (model.get('context') == context && model !== sender) {\r\n model.set('active', false, { fromCollection: 1 });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Disables all buttons\r\n * @param {String} ctx Context string\r\n *\r\n * @return void\r\n * */\r\n disableAllButtons(ctx) {\r\n var context = ctx || '';\r\n this.forEach((model, index) => {\r\n if (model.get('context') == context) {\r\n model.set('disable', true);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Disables all buttons, except one passed\r\n * @param {Object} except Model to ignore\r\n * @param {Boolean} r Recursive flag\r\n *\r\n * @return void\r\n * */\r\n disableAllButtonsExceptOne(except, r) {\r\n this.forEach((model, index) => {\r\n if (model !== except) {\r\n model.set('disable', true);\r\n if (r && model.get('buttons').length) model.get('buttons').disableAllButtonsExceptOne(except, r);\r\n }\r\n });\r\n }\r\n}\r\n\r\nButtons.prototype.model = Button;\r\n","export default {\r\n textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'],\r\n\r\n // Custom CSS parser\r\n // @see https://grapesjs.com/docs/guides/Custom-CSS-parser.html\r\n parserCss: null,\r\n\r\n // Custom HTML parser\r\n // At the moment, the custom HTML parser should rely on DOM Node instance as the result\r\n // @example\r\n // The return should be an instance of an Node as the root to traverse\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Node\r\n // parserHtml: (input, opts = {}) => (new DOMParser()).parseFromString(input, 'text/xml')\r\n // Here the result will be XMLDocument, which extends Node\r\n parserHtml: null,\r\n\r\n // Default HTML parser options (used in `parserModule.parseHtml(' tags\r\n allowScripts: false,\r\n\r\n // Allow unsafe HTML attributes (eg. `on*` inline event handlers)\r\n allowUnsafeAttr: false,\r\n },\r\n};\r\n","import { keys } from 'underscore';\r\n\r\n// At-rules\r\n// https://developer.mozilla.org/it/docs/Web/API/CSSRule#Type_constants\r\nconst atRules = {\r\n 4: 'media',\r\n 5: 'font-face',\r\n 6: 'page',\r\n 7: 'keyframes',\r\n 11: 'counter-style',\r\n 12: 'supports',\r\n 13: 'document',\r\n 14: 'font-feature-values',\r\n 15: 'viewport'\r\n};\r\nconst atRuleKeys = keys(atRules);\r\nconst singleAtRules = ['5', '6', '11', '15'];\r\nconst singleAtRulesNames = ['font-face', 'page', 'counter-style', 'viewport'];\r\n\r\n/**\r\n * Parse selector string to array.\r\n * Only classe based are valid as CSS rules inside editor, not valid\r\n * selectors will be dropped as additional\r\n * It's ok with the last part of the string as state (:hover, :active)\r\n * @param {string} str Selectors string\r\n * @return {Object}\r\n * @example\r\n * var res = parseSelector('.test1, .test1.test2, .test2 .test3');\r\n * console.log(res);\r\n * // {\r\n * //result: [['test1'], ['test1', 'test2']],\r\n * //add: ['.test2 .test3']\r\n * //}\r\n */\r\nexport const parseSelector = (str = '') => {\r\n const add = [];\r\n const result = [];\r\n const sels = str.split(',');\r\n\r\n for (var i = 0, len = sels.length; i < len; i++) {\r\n var sel = sels[i].trim();\r\n\r\n // Will accept only concatenated classes and last\r\n // class might be with state (eg. :hover), nothing else.\r\n // Can also accept SINGLE ID selectors, eg. `#myid`, `#myid:hover`\r\n // Composed are not valid: `#myid.some-class`, `#myid.some-class:hover`\r\n if (\r\n /^(\\.{1}[\\w\\-]+)+(:{1,2}[\\w\\-()]+)?$/gi.test(sel) ||\r\n /^(#{1}[\\w\\-]+){1}(:{1,2}[\\w\\-()]+)?$/gi.test(sel)\r\n ) {\r\n var cls = sel.split('.').filter(Boolean);\r\n result.push(cls);\r\n } else {\r\n add.push(sel);\r\n }\r\n }\r\n\r\n return {\r\n result,\r\n add\r\n };\r\n};\r\n\r\n/**\r\n * Parse style declarations of the node\r\n * @param {CSSRule} node\r\n * @return {Object}\r\n */\r\nexport const parseStyle = node => {\r\n const stl = node.style;\r\n const style = {};\r\n\r\n for (var i = 0, len = stl.length; i < len; i++) {\r\n const propName = stl[i];\r\n const propValue = stl.getPropertyValue(propName);\r\n const important = stl.getPropertyPriority(propName);\r\n style[propName] = `${propValue}${important ? ` !${important}` : ''}`;\r\n }\r\n\r\n return style;\r\n};\r\n\r\n/**\r\n * Get the condition when possible\r\n * @param {CSSRule} node\r\n * @return {string}\r\n */\r\nexport const parseCondition = node => {\r\n const condition =\r\n node.conditionText ||\r\n (node.media && node.media.mediaText) ||\r\n node.name ||\r\n node.selectorText ||\r\n '';\r\n return condition.trim();\r\n};\r\n\r\n/**\r\n * Create node for the editor\r\n * @param {Array} selectors Array containing strings of classes\r\n * @param {Object} style Key-value object of style declarations\r\n * @return {Object}\r\n */\r\nexport const createNode = (selectors, style = {}, opts = {}) => {\r\n const node = {};\r\n const selLen = selectors.length;\r\n const lastClass = selectors[selLen - 1];\r\n const stateArr = lastClass ? lastClass.split(/:(.+)/) : [];\r\n const state = stateArr[1];\r\n const { atRule, selectorsAdd, mediaText } = opts;\r\n const singleAtRule = singleAtRulesNames.indexOf(atRule) >= 0;\r\n singleAtRule && (node.singleAtRule = 1);\r\n atRule && (node.atRuleType = atRule);\r\n selectorsAdd && (node.selectorsAdd = selectorsAdd);\r\n mediaText && (node.mediaText = mediaText);\r\n\r\n // Isolate the state from selectors\r\n if (state) {\r\n selectors[selLen - 1] = stateArr[0];\r\n node.state = state;\r\n stateArr.splice(stateArr.length - 1, 1);\r\n }\r\n\r\n node.selectors = selectors;\r\n node.style = style;\r\n\r\n return node;\r\n};\r\n\r\n/**\r\n * Fetch data from node\r\n * @param {StyleSheet|CSSRule} el\r\n * @return {Array}\r\n */\r\nexport const parseNode = el => {\r\n var result = [];\r\n var nodes = el.cssRules || [];\r\n\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n const node = nodes[i];\r\n const type = node.type.toString();\r\n let singleAtRule = 0;\r\n let atRuleType = '';\r\n let condition = '';\r\n // keyText is for CSSKeyframeRule\r\n let sels = node.selectorText || node.keyText;\r\n const isSingleAtRule = singleAtRules.indexOf(type) >= 0;\r\n\r\n // Check if the node is an at-rule\r\n if (isSingleAtRule) {\r\n singleAtRule = 1;\r\n atRuleType = atRules[type];\r\n condition = parseCondition(node);\r\n } else if (atRuleKeys.indexOf(type) >= 0) {\r\n var subRules = parseNode(node);\r\n condition = parseCondition(node);\r\n\r\n for (var s = 0, lens = subRules.length; s < lens; s++) {\r\n var subRule = subRules[s];\r\n condition && (subRule.mediaText = condition);\r\n subRule.atRuleType = atRules[type];\r\n }\r\n result = result.concat(subRules);\r\n }\r\n\r\n if (!sels && !isSingleAtRule) continue;\r\n const style = parseStyle(node);\r\n const selsParsed = parseSelector(sels);\r\n const selsAdd = selsParsed.add;\r\n sels = selsParsed.result;\r\n\r\n let lastRule;\r\n // For each group of selectors\r\n for (var k = 0, len3 = sels.length; k < len3; k++) {\r\n const model = createNode(sels[k], style, {\r\n atRule: atRules[type]\r\n });\r\n result.push(model);\r\n lastRule = model;\r\n }\r\n\r\n // Need to push somewhere not class-based selectors, if some rule was\r\n // created will push them there, otherwise will create a new rule\r\n if (selsAdd.length) {\r\n var selsAddStr = selsAdd.join(', ');\r\n if (lastRule) {\r\n lastRule.selectorsAdd = selsAddStr;\r\n } else {\r\n const model = {\r\n selectors: [],\r\n selectorsAdd: selsAddStr,\r\n style\r\n };\r\n singleAtRule && (model.singleAtRule = singleAtRule);\r\n atRuleType && (model.atRuleType = atRuleType);\r\n condition && (model.mediaText = condition);\r\n result.push(model);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Parse CSS string and return the array of objects\r\n * @param {String} str CSS string\r\n * @return {Array} Array of objects for the definition of CSSRules\r\n */\r\nexport default str => {\r\n const el = document.createElement('style');\r\n el.innerHTML = str;\r\n\r\n // There is no .sheet before adding it to the \r\n document.head.appendChild(el);\r\n const sheet = el.sheet;\r\n document.head.removeChild(el);\r\n\r\n return parseNode(sheet);\r\n};\r\n","import { isString } from 'underscore';\r\nimport BrowserCssParser, {\r\n parseSelector,\r\n createNode\r\n} from './BrowserParserCss';\r\n\r\nexport default (config = {}) => ({\r\n /**\r\n * Parse CSS string to a desired model object\r\n * @param {String} str CSS string\r\n * @return {Array}\r\n */\r\n parse(str) {\r\n let result = [];\r\n const { parserCss, em } = config;\r\n const editor = em && em.get && em.get('Editor');\r\n const nodes = parserCss ? parserCss(str, editor) : BrowserCssParser(str);\r\n nodes.forEach(node => (result = result.concat(this.checkNode(node))));\r\n em && em.trigger('parse:css', { input: str, output: result });\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * Check the returned node from a custom parser and transforms it to\r\n * a valid object for the CSS composer\r\n * @return {[type]}\r\n */\r\n checkNode(node) {\r\n const { selectors, style } = node;\r\n\r\n if (isString(selectors)) {\r\n const nodes = [];\r\n const selsParsed = parseSelector(selectors);\r\n const classSets = selsParsed.result;\r\n const selectorsAdd = selsParsed.add.join(', ');\r\n const opts = {\r\n atRule: node.atRule,\r\n mediaText: node.params\r\n };\r\n\r\n if (classSets.length) {\r\n classSets.forEach(classSet => {\r\n nodes.push(createNode(classSet, style, opts));\r\n });\r\n } else {\r\n nodes.push(createNode([], style, opts));\r\n }\r\n\r\n if (selectorsAdd) {\r\n const lastNode = nodes[nodes.length - 1];\r\n lastNode.selectorsAdd = selectorsAdd;\r\n }\r\n\r\n node = nodes;\r\n }\r\n\r\n return node;\r\n }\r\n});\r\n","/**\r\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/parser/config/config.js)\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * parser: {\r\n * // options\r\n * }\r\n * })\r\n * ```\r\n *\r\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\r\n *\r\n * ```js\r\n * const { Parser } = editor;\r\n * ```\r\n * ## Available Events\r\n * * `parse:html` - On HTML parse, an object containing the input and the output of the parser is passed as an argument\r\n * * `parse:css` - On CSS parse, an object containing the input and the output of the parser is passed as an argument\r\n *\r\n * ## Methods\r\n * * [getConfig](#getconfig)\r\n * * [parseHtml](#parsehtml)\r\n * * [parseCss](#parsecss)\r\n *\r\n * @module Parser\r\n */\r\nimport defaults from './config/config';\r\nimport parserCss from './model/ParserCss';\r\nimport parserHtml from './model/ParserHtml';\r\n\r\nexport default () => {\r\n let conf = {};\r\n let pHtml, pCss;\r\n\r\n return {\r\n compTypes: '',\r\n\r\n parserCss: null,\r\n\r\n parserHtml: null,\r\n\r\n name: 'Parser',\r\n\r\n init(config = {}) {\r\n conf = { ...defaults, ...config };\r\n conf.Parser = this;\r\n pHtml = new parserHtml(conf);\r\n pCss = new parserCss(conf);\r\n this.em = conf.em;\r\n this.parserCss = pCss;\r\n this.parserHtml = pHtml;\r\n return this;\r\n },\r\n\r\n /**\r\n * Get the configuration object\r\n * @returns {Object} Configuration object\r\n * @example\r\n * console.log(Parser.getConfig())\r\n */\r\n getConfig() {\r\n return conf;\r\n },\r\n\r\n /**\r\n * Parse HTML string and return the object containing the Component Definition\r\n * @param {String} input HTML string to parse\r\n * @param {Object} [options] Options\r\n * @param {String} [options.htmlType] [HTML mime type](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02) to parse\r\n * @param {Boolean} [options.allowScripts=false] Allow `` : '';\r\n return html;\r\n }\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @returns {string} CSS string\r\n * @private\r\n */\r\n getCss(opts = {}) {\r\n const config = this.config;\r\n const { optsCss } = config;\r\n const avoidProt = opts.avoidProtected;\r\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\r\n const cssc = this.get('CssComposer');\r\n const wrp = opts.component || this.get('DomComponents').getComponent();\r\n const protCss = !avoidProt ? config.protectedCss : '';\r\n const css =\r\n wrp &&\r\n this.get('CodeManager').getCode(wrp, 'css', {\r\n cssc,\r\n keepUnusedStyles,\r\n ...optsCss,\r\n ...opts,\r\n });\r\n return wrp ? (opts.json ? css : protCss + css) : '';\r\n }\r\n\r\n /**\r\n * Returns JS of all components\r\n * @return {string} JS string\r\n * @private\r\n */\r\n getJs(opts = {}) {\r\n var wrp = opts.component || this.get('DomComponents').getWrapper();\r\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\r\n }\r\n\r\n /**\r\n * Store data to the current storage.\r\n * @private\r\n */\r\n async store(options) {\r\n const data = this.storeData();\r\n await this.get('StorageManager').store(data, options);\r\n this.clearDirtyCount();\r\n return data;\r\n }\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @private\r\n */\r\n async load(options) {\r\n const result = await this.get('StorageManager').load(options);\r\n this.loadData(result);\r\n return result;\r\n }\r\n\r\n storeData() {\r\n let result = {};\r\n // Sync content if there is an active RTE\r\n const editingCmp = this.getEditing();\r\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\r\n\r\n this.get('storables').forEach(m => {\r\n result = { ...result, ...m.store(1) };\r\n });\r\n return JSON.parse(JSON.stringify(result));\r\n }\r\n\r\n loadData(data = {}) {\r\n this.get('storables').forEach(module => module.load(data));\r\n return data;\r\n }\r\n\r\n /**\r\n * Returns device model by name\r\n * @return {Device|null}\r\n * @private\r\n */\r\n getDeviceModel() {\r\n var name = this.get('device');\r\n return this.get('DeviceManager').get(name);\r\n }\r\n\r\n /**\r\n * Run default command if setted\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n runDefault(opts = {}) {\r\n var command = this.get('Commands').get(this.config.defaultCommand);\r\n if (!command || this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n command.run(this, this, opts);\r\n this.defaultRunning = 1;\r\n }\r\n\r\n /**\r\n * Stop default command\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n stopDefault(opts = {}) {\r\n const commands = this.get('Commands');\r\n const command = commands.get(this.config.defaultCommand);\r\n if (!command || !this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n this.defaultRunning = 0;\r\n }\r\n\r\n /**\r\n * Update canvas dimensions and refresh data useful for tools positioning\r\n * @private\r\n */\r\n refreshCanvas(opts = {}) {\r\n this.set('canvasOffset', null);\r\n this.set('canvasOffset', this.get('Canvas').getOffset());\r\n opts.tools && this.trigger('canvas:updateTools');\r\n }\r\n\r\n /**\r\n * Clear all selected stuf inside the window, sometimes is useful to call before\r\n * doing some dragging opearation\r\n * @param {Window} win If not passed the current one will be used\r\n * @private\r\n */\r\n clearSelection(win) {\r\n var w = win || window;\r\n w.getSelection().removeAllRanges();\r\n }\r\n\r\n /**\r\n * Get the current media text\r\n * @return {string}\r\n */\r\n getCurrentMedia() {\r\n const config = this.config;\r\n const device = this.getDeviceModel();\r\n const condition = config.mediaCondition;\r\n const preview = config.devicePreviewMode;\r\n const width = device && device.get('widthMedia');\r\n return device && width && !preview ? `(${condition}: ${width})` : '';\r\n }\r\n\r\n /**\r\n * Return the component wrapper\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return this.get('DomComponents').getWrapper();\r\n }\r\n\r\n setCurrentFrame(frameView) {\r\n return this.set('currentFrame', frameView);\r\n }\r\n\r\n getCurrentFrame() {\r\n return this.get('currentFrame');\r\n }\r\n\r\n getCurrentFrameModel() {\r\n return (this.getCurrentFrame() || {}).model;\r\n }\r\n\r\n getIcon(icon) {\r\n const icons = this.getConfig('icons') || {};\r\n return icons[icon] || '';\r\n }\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return this.get('changesCount');\r\n }\r\n\r\n clearDirtyCount() {\r\n return this.set('changesCount', 0);\r\n }\r\n\r\n getZoomDecimal() {\r\n return this.get('Canvas').getZoomDecimal();\r\n }\r\n\r\n getZoomMultiplier() {\r\n return this.get('Canvas').getZoomMultiplier();\r\n }\r\n\r\n setDragMode(value) {\r\n return this.set('dmode', value);\r\n }\r\n\r\n t(...args) {\r\n const i18n = this.get('I18n');\r\n return i18n?.t(...args);\r\n }\r\n\r\n /**\r\n * Returns true if the editor is in absolute mode\r\n * @returns {Boolean}\r\n */\r\n inAbsoluteMode() {\r\n return this.get('dmode') === 'absolute';\r\n }\r\n\r\n /**\r\n * Destroy editor\r\n */\r\n destroyAll() {\r\n const { config, view } = this;\r\n const editor = this.getEditor();\r\n const { editors = [] } = config.grapesjs || {};\r\n const shallow = this.get('shallow');\r\n shallow?.destroyAll();\r\n this.stopListening();\r\n this.stopDefault();\r\n this.get('modules')\r\n .slice()\r\n .reverse()\r\n .forEach(mod => mod.destroy());\r\n view && view.remove();\r\n this.clear({ silent: true });\r\n this.destroyed = 1;\r\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\r\n editors.splice(editors.indexOf(editor), 1);\r\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\r\n }\r\n\r\n getEditing() {\r\n const res = this.get('editing');\r\n return (res && res.model) || null;\r\n }\r\n\r\n setEditing(value) {\r\n this.set('editing', value);\r\n return this;\r\n }\r\n\r\n isEditing() {\r\n return !!this.get('editing');\r\n }\r\n\r\n log(msg, opts = {}) {\r\n const { ns, level = 'debug' } = opts;\r\n this.trigger('log', msg, opts);\r\n level && this.trigger(`log:${level}`, msg, opts);\r\n\r\n if (ns) {\r\n const logNs = `log-${ns}`;\r\n this.trigger(logNs, msg, opts);\r\n level && this.trigger(`${logNs}:${level}`, msg, opts);\r\n }\r\n }\r\n\r\n logInfo(msg, opts) {\r\n this.log(msg, { ...opts, level: 'info' });\r\n }\r\n\r\n logWarning(msg, opts) {\r\n this.log(msg, { ...opts, level: 'warning' });\r\n }\r\n\r\n logError(msg, opts) {\r\n this.log(msg, { ...opts, level: 'error' });\r\n }\r\n\r\n initBaseColorPicker(el, opts = {}) {\r\n const config = this.getConfig();\r\n const { colorPicker = {} } = config;\r\n const elToAppend = config.el;\r\n const ppfx = config.stylePrefix;\r\n\r\n return $(el).spectrum({\r\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\r\n appendTo: elToAppend || 'body',\r\n maxSelectionSize: 8,\r\n showPalette: true,\r\n palette: [],\r\n showAlpha: true,\r\n chooseText: 'Ok',\r\n cancelText: '⨯',\r\n ...opts,\r\n ...colorPicker,\r\n });\r\n }\r\n\r\n /**\r\n * Execute actions without triggering the storage and undo manager.\r\n * @param {Function} clb\r\n * @private\r\n */\r\n skip(clb) {\r\n this.__skip = true;\r\n const um = this.get('UndoManager');\r\n um ? um.skip(clb) : clb();\r\n this.__skip = false;\r\n }\r\n\r\n /**\r\n * Set/get data from the HTMLElement\r\n * @param {HTMLElement} el\r\n * @param {string} name Data name\r\n * @param {any} value Date value\r\n * @return {any}\r\n * @private\r\n */\r\n data(el, name, value) {\r\n const varName = '_gjs-data';\r\n\r\n if (!el[varName]) {\r\n el[varName] = {};\r\n }\r\n\r\n if (isUndefined(value)) {\r\n return el[varName][name];\r\n } else {\r\n el[varName][name] = value;\r\n }\r\n }\r\n}\r\n","import { isObject } from 'underscore';\r\n\r\nexport default ({ $ }) => {\r\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\r\n const fn = $.fn;\r\n\r\n // Additional helpers\r\n\r\n fn.hide = function () {\r\n return this.css('display', 'none');\r\n };\r\n\r\n fn.show = function () {\r\n return this.css('display', 'block');\r\n };\r\n\r\n fn.focus = function () {\r\n const el = this.get(0);\r\n el && el.focus();\r\n return this;\r\n };\r\n\r\n // For SVGs in IE\r\n // (fn.removeClass = function(c) {\r\n // if (!arguments.length) {\r\n // return this.attr('class', '');\r\n // }\r\n // const classes = isString(c) && c.match(/\\S+/g);\r\n // return classes\r\n // ? this.each(function(el) {\r\n // each(classes, function(c) {\r\n // if (el.classList) {\r\n // el.classList.remove(c);\r\n // } else {\r\n // const val = el.className;\r\n // const bval = el.className.baseVal;\r\n\r\n // if (!isUndefined(bval)) {\r\n // val.baseVal = bval.replace(c, '');\r\n // } else {\r\n // el.className = val.replace(c, '');\r\n // }\r\n // }\r\n // });\r\n // })\r\n // : this;\r\n // }),\r\n // (fn.remove = function() {\r\n // return this.each(node => {\r\n // return node.parentNode && node.parentNode.removeChild(node);\r\n // });\r\n // }),\r\n\r\n // For spectrum compatibility\r\n\r\n fn.bind = function (ev, h) {\r\n return this.on(ev, h);\r\n };\r\n\r\n fn.unbind = function (ev, h) {\r\n if (isObject(ev)) {\r\n for (let name in ev) {\r\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\r\n }\r\n\r\n return this;\r\n } else {\r\n return this.off(ev, h);\r\n }\r\n };\r\n\r\n fn.click = function (h) {\r\n return h ? this.on('click', h) : this.trigger('click');\r\n };\r\n\r\n fn.change = function (h) {\r\n return h ? this.on('change', h) : this.trigger('change');\r\n };\r\n\r\n fn.keydown = function (h) {\r\n return h ? this.on('keydown', h) : this.trigger('keydown');\r\n };\r\n\r\n fn.delegate = function (selector, events, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n }\r\n\r\n return this.on(events, selector, function (e) {\r\n e.data = data;\r\n handler(e);\r\n });\r\n };\r\n\r\n fn.scrollLeft = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageXOffset : el.scrollLeft || 0;\r\n };\r\n\r\n fn.scrollTop = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageYOffset : el.scrollTop || 0;\r\n };\r\n\r\n const offset = $.prototype.offset;\r\n fn.offset = function (coords) {\r\n let top, left;\r\n\r\n if (coords) {\r\n top = coords.top;\r\n left = coords.left;\r\n }\r\n\r\n if (typeof top != 'undefined') {\r\n this.css('top', `${top}px`);\r\n }\r\n if (typeof left != 'undefined') {\r\n this.css('left', `${left}px`);\r\n }\r\n\r\n return offset.call(this);\r\n };\r\n\r\n $.map = function (items, clb) {\r\n const ar = [];\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n ar.push(clb(items[i], i));\r\n }\r\n\r\n return ar;\r\n };\r\n\r\n const indexOf = Array.prototype.indexOf;\r\n\r\n $.inArray = function (val, arr, i) {\r\n return arr == null ? -1 : indexOf.call(arr, val, i);\r\n };\r\n\r\n $.Event = function (src, props) {\r\n if (!(this instanceof $.Event)) {\r\n return new $.Event(src, props);\r\n }\r\n\r\n this.type = src;\r\n this.isDefaultPrevented = () => false;\r\n };\r\n }\r\n};\r\n","import Backbone from 'backbone';\r\nimport { View } from '../../common';\r\nimport { appendStyles } from '../../utils/mixins';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default class EditorView extends View {\r\n initialize() {\r\n const { model } = this;\r\n const { Panels, UndoManager } = model.attributes;\r\n model.view = this;\r\n model.once('change:ready', () => {\r\n Panels.active();\r\n Panels.disableButtons();\r\n UndoManager.clear();\r\n setTimeout(() => {\r\n model.trigger('load', model.get('Editor'));\r\n model.clearDirtyCount();\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n const { $el, model } = this;\r\n const { Panels, Canvas, modules } = model.attributes;\r\n const conf = model.getConfig();\r\n const pfx = conf.stylePrefix;\r\n const contEl = $(conf.el || `body ${conf.container}`);\r\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\r\n $el.empty();\r\n\r\n if (conf.width) contEl.css('width', conf.width);\r\n if (conf.height) contEl.css('height', conf.height);\r\n\r\n $el.append(Canvas.render());\r\n $el.append(Panels.render());\r\n\r\n // Load shallow editor\r\n const shallow = model.get('shallow');\r\n const shallowCanvasEl = shallow.get('Canvas').render();\r\n shallowCanvasEl.style.display = 'none';\r\n $el.append(shallowCanvasEl);\r\n\r\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\r\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\r\n modules.forEach(md => md.postRender && md.postRender(this));\r\n\r\n return this;\r\n }\r\n}\r\n","/**\r\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\r\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\r\n *\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * // options\r\n * });\r\n * ```\r\n *\r\n * ## Available Events\r\n *\r\n * You can make use of available events in this way\r\n * ```js\r\n * editor.on('EVENT-NAME', (some, argument) => {\r\n * // do something\r\n * })\r\n * ```\r\n *\r\n * * `update` - The structure of the template is updated (its HTML/CSS)\r\n * * `undo` - Undo executed\r\n * * `redo` - Redo executed\r\n * * `load` - Editor is loaded\r\n *\r\n * ### Components\r\n * Check the [Components](/api/components.html) module.\r\n * ### Keymaps\r\n * Check the [Keymaps](/api/keymaps.html) module.\r\n * ### Style Manager\r\n * Check the [Style Manager](/api/style_manager.html) module.\r\n * ### Storage\r\n * Check the [Storage](/api/storage_manager.html) module.\r\n * ### Canvas\r\n * Check the [Canvas](/api/canvas.html) module.\r\n * ### RTE\r\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\r\n * ### Commands\r\n * Check the [Commands](/api/commands.html) module.\r\n * ### Selectors\r\n * Check the [Selectors](/api/selector_manager.html) module.\r\n * ### Blocks\r\n * Check the [Blocks](/api/block_manager.html) module.\r\n * ### Assets\r\n * Check the [Assets](/api/assets.html) module.\r\n * ### Modal\r\n * Check the [Modal](/api/modal_dialog.html) module.\r\n * ### Devices\r\n * Check the [Devices](/api/device_manager.html) module.\r\n * ### Parser\r\n * Check the [Parser](/api/parser.html) module.\r\n * ### Pages\r\n * Check the [Pages](/api/pages.html) module.\r\n *\r\n * ## Methods\r\n * @module Editor\r\n */\r\nimport html from '../utils/html';\r\nimport defaults from './config/config';\r\nimport EditorModel from './model/Editor';\r\nimport EditorView from './view/EditorView';\r\n\r\nexport default (config = {}, opts = {}) => {\r\n const { $ } = opts;\r\n let c = {\r\n ...defaults,\r\n ...config,\r\n };\r\n\r\n c.pStylePrefix = c.stylePrefix;\r\n let em = new EditorModel(c);\r\n let editorView;\r\n\r\n return {\r\n $,\r\n\r\n /**\r\n * @property {EditorModel}\r\n * @private\r\n */\r\n editor: em,\r\n\r\n modules: [],\r\n\r\n /**\r\n * Initialize editor model\r\n * @return {this}\r\n * @private\r\n */\r\n init(opts = {}) {\r\n em.init(this, { ...c, ...opts });\r\n\r\n this.modules = [\r\n 'I18n',\r\n 'Utils',\r\n 'Config',\r\n 'Commands',\r\n 'Keymaps',\r\n 'Modal',\r\n 'Panels',\r\n 'Canvas',\r\n 'Parser',\r\n 'CodeManager',\r\n 'UndoManager',\r\n 'RichTextEditor',\r\n ['Pages', 'PageManager'],\r\n 'DomComponents',\r\n ['Components', 'DomComponents'],\r\n 'LayerManager',\r\n ['Layers', 'LayerManager'],\r\n 'CssComposer',\r\n ['Css', 'CssComposer'],\r\n 'StorageManager',\r\n ['Storage', 'StorageManager'],\r\n 'AssetManager',\r\n ['Assets', 'AssetManager'],\r\n 'BlockManager',\r\n ['Blocks', 'BlockManager'],\r\n 'TraitManager',\r\n ['Traits', 'TraitManager'],\r\n 'SelectorManager',\r\n ['Selectors', 'SelectorManager'],\r\n 'StyleManager',\r\n ['Styles', 'StyleManager'],\r\n 'DeviceManager',\r\n ['Devices', 'DeviceManager'],\r\n ];\r\n\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = em.get(prop[1]);\r\n } else {\r\n this[prop] = em.get(prop);\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns configuration object\r\n * @param {string} [prop] Property name\r\n * @returns {any} Returns the configuration object or\r\n * the value of the specified property\r\n */\r\n getConfig(prop) {\r\n return em.getConfig(prop);\r\n },\r\n\r\n /**\r\n * Returns HTML built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the HTML of a specific Component\r\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\r\n * @returns {string} HTML string\r\n */\r\n getHtml(opts) {\r\n return em.getHtml(opts);\r\n },\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the CSS of a specific Component\r\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\r\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\r\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\r\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\r\n * @returns {String|Array} CSS string or array of CssRules\r\n */\r\n getCss(opts) {\r\n return em.getCss(opts);\r\n },\r\n\r\n /**\r\n * Returns JS of all components\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Get the JS of a specific component\r\n * @returns {String} JS string\r\n */\r\n getJs(opts) {\r\n return em.getJs(opts);\r\n },\r\n\r\n /**\r\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\r\n * @return {Components}\r\n */\r\n getComponents() {\r\n return em.get('DomComponents').getComponents();\r\n },\r\n\r\n /**\r\n * Return the wrapper and its all components\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return em.get('DomComponents').getWrapper();\r\n },\r\n\r\n /**\r\n * Set components inside editor's canvas. This method overrides actual components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\r\n * @return {this}\r\n * @example\r\n * editor.setComponents('
New component
');\r\n * // or\r\n * editor.setComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n setComponents(components, opt = {}) {\r\n em.setComponents(components, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opts Options\r\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\r\n * by default, they will be created and, if already exist, updated. When this option\r\n * is true, styles already created will not be updated.\r\n * @return {Array}\r\n * @example\r\n * editor.addComponents('
New component
');\r\n * // or\r\n * editor.addComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n addComponents(components, opts) {\r\n return this.getWrapper().append(components, opts);\r\n },\r\n\r\n /**\r\n * Returns style in JSON format object\r\n * @return {Object}\r\n */\r\n getStyle() {\r\n return em.get('CssComposer').getAll();\r\n },\r\n\r\n /**\r\n * Set style inside editor's canvas. This method overrides actual style\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @return {this}\r\n * @example\r\n * editor.setStyle('.cls{color: red}');\r\n * //or\r\n * editor.setStyle({\r\n * selectors: ['cls'],\r\n * style: { color: 'red' }\r\n * });\r\n */\r\n setStyle(style, opt = {}) {\r\n em.setStyle(style, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add styles to the editor\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @returns {Array} Array of created CssRule instances\r\n * @example\r\n * editor.addStyle('.cls{color: red}');\r\n */\r\n addStyle(style, opts = {}) {\r\n return em.addStyle(style, opts);\r\n },\r\n\r\n /**\r\n * Returns the last selected component, if there is one\r\n * @return {Model}\r\n */\r\n getSelected() {\r\n return em.getSelected();\r\n },\r\n\r\n /**\r\n * Returns an array of all selected components\r\n * @return {Array}\r\n */\r\n getSelectedAll() {\r\n return em.getSelectedAll();\r\n },\r\n\r\n /**\r\n * Get a stylable entity from the selected component.\r\n * If you select a component without classes the entity is the Component\r\n * itself and all changes will go inside its 'style' attribute. Otherwise,\r\n * if the selected component has one or more classes, the function will\r\n * return the corresponding CSS Rule\r\n * @return {Model}\r\n */\r\n getSelectedToStyle() {\r\n let selected = em.getSelected();\r\n\r\n if (selected) {\r\n return this.StyleManager.getModelToStyle(selected);\r\n }\r\n },\r\n\r\n /**\r\n * Select a component\r\n * @param {Component|HTMLElement} el Component to select\r\n * @param {Object} [opts] Options\r\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\r\n * @return {this}\r\n * @example\r\n * // Select dropped block\r\n * editor.on('block:drag:stop', function(model) {\r\n * editor.select(model);\r\n * });\r\n */\r\n select(el, opts) {\r\n em.setSelected(el, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add component to selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectAdd(model);\r\n */\r\n selectAdd(el) {\r\n em.addSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Remove component from selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectRemove(model);\r\n */\r\n selectRemove(el) {\r\n em.removeSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Toggle component selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectToggle(model);\r\n */\r\n selectToggle(el) {\r\n em.toggleSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns, if active, the Component enabled in rich text editing mode.\r\n * @returns {Component|null}\r\n * @example\r\n * const textComp = editor.getEditing();\r\n * if (textComp) {\r\n * console.log('HTML: ', textComp.toHTML());\r\n * }\r\n */\r\n getEditing() {\r\n return em.getEditing();\r\n },\r\n\r\n /**\r\n * Set device to the editor. If the device exists it will\r\n * change the canvas to the proper width\r\n * @param {string} name Name of the device\r\n * @return {this}\r\n * @example\r\n * editor.setDevice('Tablet');\r\n */\r\n setDevice(name) {\r\n em.set('device', name);\r\n return this;\r\n },\r\n\r\n /**\r\n * Return the actual active device\r\n * @return {string} Device name\r\n * @example\r\n * var device = editor.getDevice();\r\n * console.log(device);\r\n * // 'Tablet'\r\n */\r\n getDevice() {\r\n return em.get('device');\r\n },\r\n\r\n /**\r\n * Execute command\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.runCommand('myCommand', {someValue: 1});\r\n */\r\n runCommand(id, options = {}) {\r\n return em.get('Commands').run(id, options);\r\n },\r\n\r\n /**\r\n * Stop the command if stop method was provided\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.stopCommand('myCommand', {someValue: 1});\r\n */\r\n stopCommand(id, options = {}) {\r\n return em.get('Commands').stop(id, options);\r\n },\r\n\r\n /**\r\n * Store data to the current storage.\r\n * This will reset the counter of changes (`editor.getDirtyCount()`).\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Stored data.\r\n * @example\r\n * const storedData = await editor.store();\r\n */\r\n async store(options) {\r\n return await em.store(options);\r\n },\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Loaded data.\r\n * @example\r\n * const data = await editor.load();\r\n */\r\n async load(options) {\r\n return await em.load(options);\r\n },\r\n\r\n /**\r\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\r\n * @returns {Object}\r\n * @example\r\n * console.log(editor.getProjectData());\r\n * // { pages: [...], styles: [...], ... }\r\n */\r\n getProjectData() {\r\n return em.storeData();\r\n },\r\n\r\n /**\r\n * Load data from the JSON project\r\n * @param {Object} data Project to load\r\n * @example\r\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\r\n */\r\n loadProjectData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n storeData() {\r\n return em.storeData();\r\n },\r\n\r\n loadData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n /**\r\n * Returns container element. The one which was indicated as 'container'\r\n * on init method\r\n * @return {HTMLElement}\r\n */\r\n getContainer() {\r\n return c.el;\r\n },\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return em.getDirtyCount();\r\n },\r\n\r\n /**\r\n * Reset the counter of changes.\r\n */\r\n clearDirtyCount() {\r\n return em.clearDirtyCount();\r\n },\r\n\r\n /**\r\n * Update editor dimension offsets\r\n *\r\n * This method could be useful when you update, for example, some position\r\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\r\n * refresh you'll get misleading position of tools\r\n * @param {Object} [options] Options\r\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\r\n */\r\n refresh(opts) {\r\n em.refreshCanvas(opts);\r\n },\r\n\r\n /**\r\n * Replace the built-in Rich Text Editor with a custom one.\r\n * @param {Object} obj Custom RTE Interface\r\n * @example\r\n * editor.setCustomRte({\r\n * // Function for enabling custom RTE\r\n * // el is the HTMLElement of the double clicked Text Component\r\n * // rte is the same instance you have returned the first time you call\r\n * // enable(). This is useful if need to check if the RTE is already enabled so\r\n * // ion this case you'll need to return the RTE and the end of the function\r\n * enable: function(el, rte) {\r\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\r\n * ...\r\n * return rte; // return the RTE instance\r\n * },\r\n *\r\n * // Disable the editor, called for example when you unfocus the Text Component\r\n * disable: function(el, rte) {\r\n * rte.blur(); // this depends on the Custom RTE API\r\n * }\r\n *\r\n * // Called when the Text Component is focused again. If you returned the RTE instance\r\n * // from the enable function, the enable won't be called again instead will call focus,\r\n * // in this case to avoid double binding of the editor\r\n * focus: function (el, rte) {\r\n * rte.focus(); // this depends on the Custom RTE API\r\n * }\r\n * });\r\n */\r\n setCustomRte(obj) {\r\n this.RichTextEditor.customRte = obj;\r\n },\r\n\r\n /**\r\n * Replace the default CSS parser with a custom one.\r\n * The parser function receives a CSS string as a parameter and expects\r\n * an array of CSSRule objects as a result. If you need to remove the\r\n * custom parser, pass `null` as the argument\r\n * @param {Function|null} parser Parser function\r\n * @return {this}\r\n * @example\r\n * editor.setCustomParserCss(css => {\r\n * const result = [];\r\n * // ... parse the CSS string\r\n * result.push({\r\n * selectors: '.someclass, div .otherclass',\r\n * style: { color: 'red' }\r\n * })\r\n * // ...\r\n * return result;\r\n * });\r\n */\r\n setCustomParserCss(parser) {\r\n this.Parser.getConfig().parserCss = parser;\r\n return this;\r\n },\r\n\r\n /**\r\n * Change the global drag mode of components.\r\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\r\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\r\n * @returns {this}\r\n */\r\n setDragMode(value) {\r\n em.setDragMode(value);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event log message\r\n * @param {*} msg Message to log\r\n * @param {Object} [opts={}] Custom options\r\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\r\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\r\n * @return {this}\r\n * @example\r\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\r\n * // This will trigger following events\r\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\r\n * // Callbacks of those events will always receive the message and\r\n * // options, as arguments, eg:\r\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\r\n */\r\n log(msg, opts = {}) {\r\n em.log(msg, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Translate label\r\n * @param {String} key Label to translate\r\n * @param {Object} [opts] Options for the translation\r\n * @param {Object} [opts.params] Params for the translation\r\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\r\n * @returns {String}\r\n * @example\r\n * editor.t('msg');\r\n * // use params\r\n * editor.t('msg2', { params: { test: 'hello' } });\r\n * // custom local\r\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\r\n */\r\n t(...args) {\r\n return em.t(...args);\r\n },\r\n\r\n /**\r\n * Attach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n on(event, callback) {\r\n em.on(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Attach event and detach it after the first run\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n once(event, callback) {\r\n em.once(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Detach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n off(event, callback) {\r\n em.off(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event\r\n * @param {string} event Event to trigger\r\n * @return {this}\r\n */\r\n trigger(event) {\r\n em.trigger.apply(em, arguments);\r\n return this;\r\n },\r\n\r\n /**\r\n * Destroy the editor\r\n */\r\n destroy() {\r\n if (!em) return;\r\n em.destroyAll();\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = 0;\r\n } else {\r\n this[prop] = 0;\r\n }\r\n });\r\n this.modules = 0;\r\n editorView = 0;\r\n em = 0;\r\n c = 0;\r\n },\r\n\r\n /**\r\n * Returns editor element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getEl() {\r\n return editorView && editorView.el;\r\n },\r\n\r\n /**\r\n * Returns editor model\r\n * @return {Model}\r\n * @private\r\n */\r\n getModel() {\r\n return em;\r\n },\r\n\r\n /**\r\n * Render editor\r\n * @return {HTMLElement}\r\n */\r\n render() {\r\n editorView && editorView.remove();\r\n editorView = new EditorView({\r\n model: em,\r\n config: c,\r\n });\r\n return editorView.render().el;\r\n },\r\n\r\n /**\r\n * Trigger a callback once the editor is loaded and rendered.\r\n * The callback will be executed immediately if the method is called on the already rendered editor.\r\n * @param {Function} clb Callback to trigger\r\n * @example\r\n * editor.onReady(() => {\r\n * // perform actions\r\n * });\r\n */\r\n onReady(clb) {\r\n em.get('ready') ? clb(this) : em.on('load', clb);\r\n },\r\n\r\n /**\r\n * Print safe HTML by using ES6 tagged template strings.\r\n * @param {Array} literals\r\n * @param {Array} substs\r\n * @returns {String}\r\n * @example\r\n * const unsafeStr = '';\r\n * const safeStr = 'Hello';\r\n * // Use `$${var}` to avoid escaping\r\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\r\n */\r\n html,\r\n };\r\n};\r\n","export default {\r\n plugins: []\r\n};\r\n","/**\r\n * File made for IE/Edge support\r\n * https://github.com/artf/grapesjs/issues/214\r\n */\r\nimport { hasWin } from './mixins';\r\n\r\nexport default () => {\r\n /**\r\n * Check if IE/Edge\r\n * @return {Boolean}\r\n */\r\n const isIE = () => {\r\n let match;\r\n const agent = window.navigator.userAgent;\r\n const rules = [\r\n ['edge', /Edge\\/([0-9\\._]+)/],\r\n ['ie', /MSIE\\s(7\\.0)/],\r\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\r\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\r\n ];\r\n\r\n for (let i = 0; i < rules.length; i++) {\r\n const rule = rules[i];\r\n match = rule[1].exec(agent);\r\n if (match) break;\r\n }\r\n\r\n return !!match;\r\n };\r\n\r\n if (hasWin() && isIE()) {\r\n const originalCreateHTMLDocument =\r\n DOMImplementation.prototype.createHTMLDocument;\r\n DOMImplementation.prototype.createHTMLDocument = title => {\r\n if (!title) title = '';\r\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\r\n };\r\n }\r\n};\r\n","import { isElement, isFunction } from 'underscore';\r\nimport $ from './utils/cash-dom';\r\nimport Editor from './editor';\r\nimport polyfills from './utils/polyfills';\r\nimport { getGlobal } from './utils/mixins';\r\nimport PluginManager from './plugin_manager';\r\n\r\npolyfills();\r\n\r\nconst plugins = new PluginManager();\r\nconst editors = [];\r\nconst defaultConfig = {\r\n // If true renders editor on init\r\n autorender: 1,\r\n\r\n // Array of plugins to init\r\n plugins: [],\r\n\r\n // Custom options for plugins\r\n pluginsOpts: {},\r\n};\r\n\r\nexport default {\r\n $,\r\n\r\n editors,\r\n\r\n plugins,\r\n\r\n // Will be replaced on build\r\n version: __GJS_VERSION__,\r\n\r\n /**\r\n * Initialize the editor with passed options\r\n * @param {Object} config Configuration object\r\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\r\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\r\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\r\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\r\n * @param {Boolean} [config.headless=false] Init headless editor\r\n * @return {Editor} Editor instance\r\n * @example\r\n * var editor = grapesjs.init({\r\n * container: '#myeditor',\r\n * components: '
Hello world
',\r\n * style: '.hello{color: red}',\r\n * })\r\n */\r\n init(config = {}) {\r\n const { headless } = config;\r\n const els = config.container;\r\n if (!els && !headless) throw new Error(\"'container' is required\");\r\n config = { ...defaultConfig, ...config, grapesjs: this };\r\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\r\n const editor = new Editor(config, { $ }).init();\r\n const em = editor.getModel();\r\n\r\n // Load plugins\r\n config.plugins.forEach(pluginId => {\r\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\r\n const plgOptions = config.pluginsOpts[pluginId] || {};\r\n\r\n // Try to search in global context\r\n if (!plugin) {\r\n const wplg = getGlobal()[pluginId];\r\n plugin = wplg?.default || wplg;\r\n }\r\n\r\n if (plugin) {\r\n plugin(editor, plgOptions);\r\n } else if (isFunction(pluginId)) {\r\n pluginId(editor, plgOptions);\r\n } else {\r\n em.logWarning(`Plugin ${pluginId} not found`, {\r\n context: 'plugins',\r\n plugin: pluginId,\r\n });\r\n }\r\n });\r\n\r\n // Execute `onLoad` on modules once all plugins are initialized.\r\n // A plugin might have extended/added some custom type so this\r\n // is a good point to load stuff like components, css rules, etc.\r\n em.loadOnStart();\r\n config.autorender && !headless && editor.render();\r\n editors.push(editor);\r\n\r\n return editor;\r\n },\r\n};\r\n","import defaults from './config/config';\r\n\r\nexport default config => {\r\n var c = config || {};\r\n\r\n // Set default options\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var plugins = {};\r\n\r\n return {\r\n /**\r\n * Add new plugin. Plugins could not be overwritten\r\n * @param {string} id Plugin ID\r\n * @param {Function} plugin Function which contains all plugin logic\r\n * @return {Function} The plugin function\r\n * @example\r\n * PluginManager.add('some-plugin', function(editor){\r\n * editor.Commands.add('new-command', {\r\n * run: function(editor, senderBtn){\r\n * console.log('Executed new-command');\r\n * }\r\n * })\r\n * });\r\n */\r\n add(id, plugin) {\r\n if (plugins[id]) {\r\n return plugins[id];\r\n }\r\n\r\n plugins[id] = plugin;\r\n return plugin;\r\n },\r\n\r\n /**\r\n * Returns plugin by ID\r\n * @param {string} id Plugin ID\r\n * @return {Function|undefined} Plugin\r\n * @example\r\n * var plugin = PluginManager.get('some-plugin');\r\n * plugin(editor);\r\n */\r\n get(id) {\r\n return plugins[id];\r\n },\r\n\r\n /**\r\n * Returns object with all plugins\r\n * @return {Object}\r\n */\r\n getAll() {\r\n return plugins;\r\n }\r\n };\r\n};\r\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","get","split","pop","shift","getFilename","Model","prototype","idAttribute","getDefaults","result","AssetImage","unitDim","height","width","AssetView","o","options","collection","config","pfx","ppfx","pStylePrefix","em","className","listenTo","model","remove","view","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","el","innerHTML","template","View","AssetImageView","html","name","unit","dim","select","__getBhv","onClick","coll","trigger","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","events","click","dblclick","Assets","Collection","TypeableCollection","types","id","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","input","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","add","at","querySelector","inputUrl","length","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","render","appendChild","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","document","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","opts","c","undefined","disableUpload","constructor","delegateEvents","__propEv","res","val","err","console","error","onUploadEnd","text","clb","json","JSON","parse","data","files","dataTransfer","body","FormData","param","i","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","ev","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","forEach","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","event","match","exec","image","Image","readAsDataURL","push","all","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","storageKey","update","removeBefore","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","__initListen","on","getAllVisible","getAll","__onAllEvent","debounce","__trgCustom","container","getConfig","__customData","bhv","isOpen","models","asset","complete","cmd","run","stop","isActive","where","__remove","store","getProjectData","load","loadProjectData","getContainer","assts","toRender","obj","__viewParams","FileUploader","reset","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","m","f","func","__behaviour","_bhv","destroy","stopListening","appendTo","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","cls","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isString","isObject","catModel","catId","catView","getCategoriesEl","silent","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","map","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","elTo","isElement","__logWarn","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","conf","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","md","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","opt","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","key","prop","isEmpty","onReset","onRemove","previousModels","p","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","concat","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","action","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","logWarning","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","abort","callStop","create","DomComponents","clear","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","len","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","__getConfig","onResult","isDef","array","getAllMap","reduce","acc","__initConfig","def","deepMerge","changedAttributes","__catchAllEvent","collections","propagate","entity","rm","__appendTo","str","_createId","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index d0c5a1103..0a7e30b28 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ }, "devDependencies": { "@babel/cli": "^7.15.7", + "@babel/preset-typescript": "^7.16.7", "@vuepress/plugin-google-analytics": "^1.8.2", "documentation": "^13.2.5", "eslint": "^8.12.0", @@ -60,7 +61,8 @@ "env": { "test": { "presets": [ - "@babel/preset-env" + "@babel/preset-env", + "@babel/preset-typescript" ] } } diff --git a/src/abstract/Collection.ts b/src/abstract/Collection.ts new file mode 100644 index 000000000..f3e630a09 --- /dev/null +++ b/src/abstract/Collection.ts @@ -0,0 +1,6 @@ +import Backbone from "backbone"; +import Model from "./Model"; + +export default class Collection< + TModel extends Model = Model +> extends Backbone.Collection {} diff --git a/src/abstract/Model.ts b/src/abstract/Model.ts new file mode 100644 index 000000000..f1d9cc83d --- /dev/null +++ b/src/abstract/Model.ts @@ -0,0 +1,24 @@ +import Backbone from "backbone"; +import Module from "./Module"; + +export default class Model< + TModule extends Module = Module, + T extends Backbone.ObjectHash = any, + S = Backbone.ModelSetOptions, + E = any +> extends Backbone.Model { + private _module: TModule; + + constructor( + module: TModule, + attributes?: T, + options?: Backbone.CombinedModelConstructorOptions + ) { + super(attributes, options); + this._module = module; + } + + public get module() { + return this._module; + } +} diff --git a/src/abstract/Module.ts b/src/abstract/Module.ts new file mode 100644 index 000000000..caab8b65a --- /dev/null +++ b/src/abstract/Module.ts @@ -0,0 +1,57 @@ +import EditorModel from "../editor/model/Editor"; +import { ModuleConfig } from "./ModuleConfig"; + +export interface IModule { + init(cfg: any): void; + destroy(): void; + postLoad(key: any): any; + getConfig(): ModuleConfig; + onLoad?(): void; + name: string; + postRender?(view: any): void; +} + +export default abstract class Module + implements IModule +{ + //conf: CollectionCollectionModuleConfig; + private _em: EditorModel; + private _config: T; + cls: any[] = []; + events: any; + + constructor( + em: EditorModel, + confClass: { new (em: EditorModel, module: Module): T } + ) { + this._em = em; + this._config = new confClass(em, this); + } + + public get em() { + return this._em; + } + public get config() { + return this._config; + } + //abstract name: string; + isPrivate: boolean = false; + onLoad?(): void; + init(cfg: any) {} + abstract destroy(): void; + postLoad(key: any): void {} + + get name(): string { + return this.config.name; + } + + getConfig() { + return this.config; + } + + __logWarn(str: string) { + this.em.logWarning(`[${this.name}]: ${str}`); + } + + postRender?(view: any): void; +} diff --git a/src/abstract/ModuleConfig.ts b/src/abstract/ModuleConfig.ts new file mode 100644 index 000000000..ff7d770dd --- /dev/null +++ b/src/abstract/ModuleConfig.ts @@ -0,0 +1,30 @@ +import Module from "./Module"; + +export abstract class ModuleConfig { + protected abstract stylePrefix?: string; + private: boolean = false; + abstract name: string; + module: Module; + + public get pfx() { + return this.module.em.getConfig() || ""; + } + public get ppfx() { + return this.pfx + this.stylePrefix || ""; + } + + constructor(module: Module) { + this.module = module; + //console.log(module.name) + /*const moduleConfig: { [id: string]: any } = + config[module.name as keyof EditorConfig]; + if (moduleConfig) { + for (const key in moduleConfig) { + if (Object.prototype.hasOwnProperty.call(this, key)) { + console.log(key); + const element = moduleConfig[key]; + } + } + }*/ + } +} diff --git a/src/abstract/View.ts b/src/abstract/View.ts new file mode 100644 index 000000000..29090a0c4 --- /dev/null +++ b/src/abstract/View.ts @@ -0,0 +1,19 @@ +import Backbone from "backbone"; +import Model from "./Model"; + +export default class View< + TModel extends Model = Model, + TElement extends Element = HTMLElement +> extends Backbone.View { + protected get pfx() { + return this.model.module.config.pfx; + } + + protected get ppfx() { + return this.model.module.config.ppfx; + } + + protected get em() { + return this.model.module.em; + } +} diff --git a/src/abstract/index.ts b/src/abstract/index.ts new file mode 100644 index 000000000..279a3e032 --- /dev/null +++ b/src/abstract/index.ts @@ -0,0 +1,4 @@ +export { default as Model } from './Model'; +export { default as Collection } from './Collection'; +export { default as View } from './View'; +export { default as Module } from './moduleLegacy'; diff --git a/src/abstract/moduleLegacy.js b/src/abstract/moduleLegacy.js new file mode 100644 index 000000000..1594b8de9 --- /dev/null +++ b/src/abstract/moduleLegacy.js @@ -0,0 +1,161 @@ +import { isString, isElement } from 'underscore'; +import { createId, deepMerge, isDef } from 'utils/mixins'; + +export default { + getConfig(name) { + return this.__getConfig(name); + }, + + getProjectData(data) { + const obj = {}; + const key = this.storageKey; + if (key) { + obj[key] = data || this.getAll(); + } + return obj; + }, + + loadProjectData(data = {}, { all, onResult, reset } = {}) { + const key = this.storageKey; + const opts = { action: 'load' }; + const coll = all || this.getAll(); + let result = data[key]; + + if (typeof result == 'string') { + try { + result = JSON.parse(result); + } catch (err) { + this.__logWarn('Data parsing failed', { input: result }); + } + } + + reset && result && coll.reset(null, opts); + + if (onResult) { + result && onResult(result, opts); + } else if (result && isDef(result.length)) { + coll.reset(result, opts); + } + + return result; + }, + + clear(opts = {}) { + const { all } = this; + all && all.reset(null, opts); + return this; + }, + + __getConfig(name) { + const res = this.config || {}; + return name ? res[name] : res; + }, + + getAll(opts = {}) { + return this.all ? (opts.array ? [...this.all.models] : this.all) : []; + }, + + getAllMap() { + return this.getAll().reduce((acc, i) => { + acc[i.get(i.idAttribute)] = i; + return acc; + }, {}); + }, + + __initConfig(def = {}, conf = {}) { + this.config = deepMerge(def, conf); + this.em = this.config.em; + this.cls = []; + }, + + __initListen(opts = {}) { + const { all, em, events } = this; + all && + em && + all + .on('add', (m, c, o) => em.trigger(events.add, m, o)) + .on('remove', (m, c, o) => em.trigger(events.remove, m, o)) + .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c)) + .on('all', this.__catchAllEvent, this); + // Register collections + this.cls = [all].concat(opts.collections || []); + // Propagate events + (opts.propagate || []).forEach(({ entity, event }) => { + entity.on('all', (ev, model, coll, opts) => { + const options = opts || coll; + const opt = { event: ev, ...options }; + [em, all].map(md => md.trigger(event, model, opt)); + }); + }); + }, + + __remove(model, opts = {}) { + const { em } = this; + const md = isString(model) ? this.get(model) : model; + const rm = () => { + md && this.all.remove(md, opts); + return md; + }; + !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts); + return !opts.abort && rm(); + }, + + __catchAllEvent(event, model, coll, opts) { + const { em, events } = this; + const options = opts || coll; + em && events.all && em.trigger(events.all, { event, model, options }); + this.__onAllEvent(); + }, + + __appendTo() { + const elTo = this.getConfig().appendTo; + + if (elTo) { + const el = isElement(elTo) ? elTo : document.querySelector(elTo); + if (!el) return this.__logWarn('"appendTo" element not found'); + el.appendChild(this.render()); + } + }, + + __onAllEvent() {}, + + __logWarn(str, opts) { + this.em.logWarning(`[${this.name}]: ${str}`, opts); + }, + + _createId(len = 16) { + const all = this.getAll(); + const ln = all.length + len; + const allMap = this.getAllMap(); + let id; + + do { + id = createId(ln); + } while (allMap[id]); + + return id; + }, + + __listenAdd(model, event) { + model.on('add', (m, c, o) => this.em.trigger(event, m, o)); + }, + + __listenRemove(model, event) { + model.on('remove', (m, c, o) => this.em.trigger(event, m, o)); + }, + + __listenUpdate(model, event) { + model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c)); + }, + + __destroy() { + this.cls.forEach(coll => { + coll.stopListening(); + coll.reset(); + }); + this.em = 0; + this.config = 0; + this.view?.remove(); + this.view = 0; + }, +}; diff --git a/src/block_manager/index.js b/src/block_manager/index.js index e57f735dc..e4e418919 100644 --- a/src/block_manager/index.js +++ b/src/block_manager/index.js @@ -45,7 +45,7 @@ * @module BlockManager */ import { isElement, isArray } from 'underscore'; -import Module from '../common/module'; +import Module from '../abstract/moduleLegacy'; import defaults from './config/config'; import Block from './model/Block'; import Blocks from './model/Blocks'; diff --git a/src/css_composer/index.js b/src/css_composer/index.js index ea0d1c639..4ab97490f 100644 --- a/src/css_composer/index.js +++ b/src/css_composer/index.js @@ -29,7 +29,7 @@ import { isArray, isString, isUndefined } from 'underscore'; import { isObject } from '../utils/mixins'; -import Module from '../common/module'; +import Module from '../abstract/moduleLegacy'; import Selectors from '../selector_manager/model/Selectors'; import Selector from '../selector_manager/model/Selector'; import defaults from './config/config'; diff --git a/src/device_manager/index.js b/src/device_manager/index.js index 42139fc22..94b424229 100644 --- a/src/device_manager/index.js +++ b/src/device_manager/index.js @@ -33,7 +33,7 @@ * @module Devices */ import { isString } from 'underscore'; -import Module from '../common/module'; +import Module from '../abstract/moduleLegacy'; import defaults from './config/config'; import Device from './model/Device'; import Devices from './model/Devices'; diff --git a/src/dom_components/index.js b/src/dom_components/index.js index 7674e8dd2..7ba751e1b 100644 --- a/src/dom_components/index.js +++ b/src/dom_components/index.js @@ -96,7 +96,7 @@ import ComponentTextView from './view/ComponentTextView'; import ComponentWrapper from './model/ComponentWrapper'; import ComponentFrame from './model/ComponentFrame'; import ComponentFrameView from './view/ComponentFrameView'; -import Module from 'common/module'; +import Module from 'abstract/moduleLegacy'; export default () => { var c = {}; diff --git a/src/storage_manager/index.js b/src/storage_manager/index.js index fc3edfc12..e876afc4e 100644 --- a/src/storage_manager/index.js +++ b/src/storage_manager/index.js @@ -51,7 +51,7 @@ * @module StorageManager */ -import Module from '../common/module'; +import Module from '../abstract/moduleLegacy'; import defaults from './config/config'; import LocalStorage from './model/LocalStorage'; import RemoteStorage from './model/RemoteStorage'; @@ -395,6 +395,6 @@ export default () => { destroy() { this.__destroy(); this.storages = {}; - } + }, }; }; diff --git a/yarn.lock b/yarn.lock index 56c516ba4..80e19c97e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,60 +3,44 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz" + "integrity" "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==" + "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz" + "version" "2.1.2" dependencies: "@jridgewell/trace-mapping" "^0.3.0" "@babel/cli@^7.15.7": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.15.7.tgz" - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" + "integrity" "sha512-YW5wOprO2LzMjoWZ5ZG6jfbY9JnkDxuHDwvnrThnuYtByorova/I0HNXJedrUfwuXFQfYOjcqDA4PU3qlZGZjg==" + "resolved" "https://registry.npmjs.org/@babel/cli/-/cli-7.15.7.tgz" + "version" "7.15.7" + dependencies: + "commander" "^4.0.1" + "convert-source-map" "^1.1.0" + "fs-readdir-recursive" "^1.1.0" + "glob" "^7.0.0" + "make-dir" "^2.1.0" + "slash" "^2.0.0" + "source-map" "^0.5.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" - chokidar "^3.4.0" + "chokidar" "^3.4.0" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" + "integrity" "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/highlight" "^7.16.7" "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz" + "integrity" "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz" + "version" "7.17.7" -"@babel/core@7.12.3": - version "7.12.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz" - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.17.5", "@babel/core@^7.8.4": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz" +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.17.5", "@babel/core@^7.4.0-0", "@babel/core@^7.8.4": + "integrity" "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz" + "version" "7.17.8" dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" @@ -68,53 +52,81 @@ "@babel/template" "^7.16.7" "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.1.2" + "semver" "^6.3.0" -"@babel/generator@7.12.1", "@babel/generator@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz" +"@babel/core@7.12.3": + "integrity" "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz" + "version" "7.12.3" + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.1" + "json5" "^2.1.2" + "lodash" "^4.17.19" + "resolve" "^1.3.2" + "semver" "^5.4.1" + "source-map" "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@7.12.1": + "integrity" "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz" + "version" "7.12.1" dependencies: "@babel/types" "^7.12.1" - jsesc "^2.5.1" - source-map "^0.5.0" + "jsesc" "^2.5.1" + "source-map" "^0.5.0" "@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.4.0": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz" + "integrity" "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz" + "version" "7.17.7" dependencies: "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" + "jsesc" "^2.5.1" + "source-map" "^0.5.0" "@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" + "integrity" "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz" + "integrity" "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.9.6": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz" + "integrity" "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz" + "version" "7.17.7" dependencies: "@babel/compat-data" "^7.17.7" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" + "browserslist" "^4.17.5" + "semver" "^6.3.0" "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.6" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz" + "integrity" "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz" + "version" "7.17.6" dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -125,72 +137,82 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz" + "integrity" "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz" + "version" "7.17.0" dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" + "regexpu-core" "^5.0.1" "@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + "integrity" "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + "version" "0.3.1" dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" "@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" + "integrity" "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==" + "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz" + "integrity" "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" + "integrity" "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-get-function-arity" "^7.16.7" "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" "@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" + "integrity" "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" + "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-member-expression-to-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz" + "integrity" "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + "integrity" "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" + "integrity" "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" + "version" "7.17.7" dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -202,26 +224,30 @@ "@babel/types" "^7.17.0" "@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz" + "integrity" "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + "integrity" "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + "version" "7.16.7" "@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz" + "integrity" "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-wrap-function" "^7.16.8" "@babel/types" "^7.16.8" "@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz" + "integrity" "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-member-expression-to-functions" "^7.16.7" @@ -230,34 +256,40 @@ "@babel/types" "^7.16.7" "@babel/helper-simple-access@^7.16.7", "@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" + "integrity" "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" + "version" "7.17.7" dependencies: "@babel/types" "^7.17.0" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz" + "integrity" "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz" + "version" "7.16.0" dependencies: "@babel/types" "^7.16.0" "@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + "integrity" "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/types" "^7.16.7" "@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + "integrity" "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + "version" "7.16.7" "@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" + "integrity" "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" + "version" "7.16.7" "@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz" + "integrity" "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-function-name" "^7.16.7" "@babel/template" "^7.16.7" @@ -265,119 +297,136 @@ "@babel/types" "^7.16.8" "@babel/helpers@^7.12.1", "@babel/helpers@^7.17.8": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz" + "integrity" "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz" + "version" "7.17.8" dependencies: "@babel/template" "^7.16.7" "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" + "integrity" "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" + "version" "7.16.10" dependencies: "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@7.12.3", "@babel/parser@^7.12.3": - version "7.12.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8", "@babel/parser@^7.4.3": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz" + "integrity" "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz" + "version" "7.17.8" + +"@babel/parser@^7.12.3", "@babel/parser@7.12.3": + "integrity" "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz" + "version" "7.12.3" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz" + "integrity" "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz" + "integrity" "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.7" "@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz" + "integrity" "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz" + "integrity" "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz" + "integrity" "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz" + "version" "7.17.6" dependencies: "@babel/helper-create-class-features-plugin" "^7.17.6" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz" + "integrity" "sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-decorators" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz" + "integrity" "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz" + "integrity" "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz" + "integrity" "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz" + "integrity" "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz" + "integrity" "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz" + "integrity" "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz" + "integrity" "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz" + "version" "7.17.3" dependencies: "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" @@ -386,30 +435,34 @@ "@babel/plugin-transform-parameters" "^7.16.7" "@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz" + "integrity" "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz" + "integrity" "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz" + "integrity" "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz" + "version" "7.16.11" dependencies: "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz" + "integrity" "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-create-class-features-plugin" "^7.16.7" @@ -417,137 +470,166 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz" + "integrity" "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-decorators@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz" + "integrity" "sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz" + "integrity" "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-typescript@^7.16.7": + "integrity" "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" + "version" "7.16.7" + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz" + "integrity" "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz" + "integrity" "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz" + "integrity" "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz" + "integrity" "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz" + "integrity" "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -556,201 +638,239 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - globals "^11.1.0" + "globals" "^11.1.0" "@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz" + "integrity" "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz" + "integrity" "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz" + "version" "7.17.3" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz" + "integrity" "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz" + "integrity" "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz" + "integrity" "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz" + "integrity" "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz" + "integrity" "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz" + "integrity" "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz" + "integrity" "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz" + "integrity" "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz" + "integrity" "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-simple-access" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz" + "integrity" "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz" + "integrity" "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz" + "integrity" "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz" + "version" "7.16.8" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz" + "integrity" "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz" + "integrity" "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" "@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz" + "integrity" "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz" + "integrity" "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-regenerator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz" + "integrity" "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz" + "version" "7.16.7" dependencies: - regenerator-transform "^0.14.2" + "regenerator-transform" "^0.14.2" "@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz" + "integrity" "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.17.0": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz" + "integrity" "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz" + "version" "7.17.0" dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" + "babel-plugin-polyfill-corejs2" "^0.3.0" + "babel-plugin-polyfill-corejs3" "^0.5.0" + "babel-plugin-polyfill-regenerator" "^0.3.0" + "semver" "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz" + "integrity" "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz" + "integrity" "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz" + "integrity" "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz" + "integrity" "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz" + "integrity" "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz" + "version" "7.16.7" + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typescript@^7.16.7": + "integrity" "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz" + "version" "7.16.8" dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" "@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz" + "integrity" "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz" + "integrity" "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.16.11": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" + "integrity" "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" + "version" "7.16.11" dependencies: "@babel/compat-data" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" @@ -821,39 +941,52 @@ "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" + "babel-plugin-polyfill-corejs2" "^0.3.0" + "babel-plugin-polyfill-corejs3" "^0.5.0" + "babel-plugin-polyfill-regenerator" "^0.3.0" + "core-js-compat" "^3.20.2" + "semver" "^6.3.0" "@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + "version" "0.1.5" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" - esutils "^2.0.2" + "esutils" "^2.0.2" + +"@babel/preset-typescript@^7.16.7": + "integrity" "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==" + "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz" + "version" "7.16.7" + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" "@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": - version "7.17.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz" + "integrity" "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz" + "version" "7.17.2" dependencies: - regenerator-runtime "^0.13.4" + "regenerator-runtime" "^0.13.4" "@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.4.0": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + "integrity" "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + "version" "7.16.7" dependencies: "@babel/code-frame" "^7.16.7" "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.3": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz" + "integrity" "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz" + "version" "7.17.3" dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.17.3" @@ -863,283 +996,321 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/parser" "^7.17.3" "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" + "debug" "^4.1.0" + "globals" "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.13.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" + "integrity" "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" + "version" "7.17.0" dependencies: "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" + "to-fast-properties" "^2.0.0" "@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz" + "integrity" "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==" + "resolved" "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz" + "version" "1.0.4" dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" + "exec-sh" "^0.3.2" + "minimist" "^1.2.0" "@discoveryjs/json-ext@^0.5.0": - version "0.5.6" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz" + "integrity" "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==" + "resolved" "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz" + "version" "0.5.6" "@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.1" - globals "^13.9.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" + "integrity" "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "ajv" "^6.12.4" + "debug" "^4.3.2" + "espree" "^9.3.1" + "globals" "^13.9.0" + "ignore" "^5.2.0" + "import-fresh" "^3.2.1" + "js-yaml" "^4.1.0" + "minimatch" "^3.0.4" + "strip-json-comments" "^3.1.1" "@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" + "integrity" "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" + "version" "0.9.5" dependencies: "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" + "debug" "^4.1.1" + "minimatch" "^3.0.4" "@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + "version" "1.2.1" "@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz" + "integrity" "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==" + "resolved" "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" + "chalk" "^2.0.1" + "slash" "^2.0.0" "@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz" + "integrity" "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==" + "resolved" "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/console" "^24.7.1" "@jest/reporters" "^24.9.0" "@jest/test-result" "^24.9.0" "@jest/transform" "^24.9.0" "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" + "ansi-escapes" "^3.0.0" + "chalk" "^2.0.1" + "exit" "^0.1.2" + "graceful-fs" "^4.1.15" + "jest-changed-files" "^24.9.0" + "jest-config" "^24.9.0" + "jest-haste-map" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-regex-util" "^24.3.0" + "jest-resolve" "^24.9.0" + "jest-resolve-dependencies" "^24.9.0" + "jest-runner" "^24.9.0" + "jest-runtime" "^24.9.0" + "jest-snapshot" "^24.9.0" + "jest-util" "^24.9.0" + "jest-validate" "^24.9.0" + "jest-watcher" "^24.9.0" + "micromatch" "^3.1.10" + "p-each-series" "^1.0.0" + "realpath-native" "^1.1.0" + "rimraf" "^2.5.4" + "slash" "^2.0.0" + "strip-ansi" "^5.0.0" "@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz" + "integrity" "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==" + "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/fake-timers" "^24.9.0" "@jest/transform" "^24.9.0" "@jest/types" "^24.9.0" - jest-mock "^24.9.0" + "jest-mock" "^24.9.0" "@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz" + "integrity" "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==" + "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-mock" "^24.9.0" "@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz" + "integrity" "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==" + "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/environment" "^24.9.0" "@jest/test-result" "^24.9.0" "@jest/transform" "^24.9.0" "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" + "chalk" "^2.0.1" + "exit" "^0.1.2" + "glob" "^7.1.2" + "istanbul-lib-coverage" "^2.0.2" + "istanbul-lib-instrument" "^3.0.1" + "istanbul-lib-report" "^2.0.4" + "istanbul-lib-source-maps" "^3.0.1" + "istanbul-reports" "^2.2.6" + "jest-haste-map" "^24.9.0" + "jest-resolve" "^24.9.0" + "jest-runtime" "^24.9.0" + "jest-util" "^24.9.0" + "jest-worker" "^24.6.0" + "node-notifier" "^5.4.2" + "slash" "^2.0.0" + "source-map" "^0.6.0" + "string-length" "^2.0.0" "@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz" + "integrity" "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==" + "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz" + "version" "24.9.0" dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" + "callsites" "^3.0.0" + "graceful-fs" "^4.1.15" + "source-map" "^0.6.0" "@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz" + "integrity" "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==" + "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/console" "^24.9.0" "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" "@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz" + "integrity" "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==" + "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz" + "version" "24.9.0" dependencies: "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" + "jest-haste-map" "^24.9.0" + "jest-runner" "^24.9.0" + "jest-runtime" "^24.9.0" "@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz" + "integrity" "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==" + "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz" + "version" "24.9.0" dependencies: "@babel/core" "^7.1.0" "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" + "babel-plugin-istanbul" "^5.1.0" + "chalk" "^2.0.1" + "convert-source-map" "^1.4.0" + "fast-json-stable-stringify" "^2.0.0" + "graceful-fs" "^4.1.15" + "jest-haste-map" "^24.9.0" + "jest-regex-util" "^24.9.0" + "jest-util" "^24.9.0" + "micromatch" "^3.1.10" + "pirates" "^4.0.1" + "realpath-native" "^1.1.0" + "slash" "^2.0.0" + "source-map" "^0.6.1" + "write-file-atomic" "2.4.1" "@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz" + "integrity" "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz" + "version" "24.9.0" dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" + "integrity" "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" + "version" "3.0.5" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" + "integrity" "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" + "version" "1.4.11" "@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz" + "integrity" "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz" + "version" "0.3.4" dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" + "integrity" "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==" + "resolved" "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" + "version" "2.2.1" dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" + "call-me-maybe" "^1.0.1" + "glob-to-regexp" "^0.3.0" "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": - version "2.1.8-no-fsevents.3" - resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" + "integrity" "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==" + "resolved" "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" + "version" "2.1.8-no-fsevents.3" "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" dependencies: "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "run-parallel" "^1.1.9" "@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" + "integrity" "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" + "version" "1.1.3" + +"@nodelib/fs.stat@^2.0.2": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" + +"@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" dependencies: "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "fastq" "^1.6.0" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz" + "integrity" "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==" + "resolved" "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz" + "version" "0.3.1" dependencies: - any-observable "^0.3.0" + "any-observable" "^0.3.0" "@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + "version" "0.14.0" "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + "version" "1.8.3" dependencies: - type-detect "4.0.8" + "type-detect" "4.0.8" "@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz" + "integrity" "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz" + "version" "3.2.2" dependencies: "@sinonjs/commons" "^1" "@sinonjs/samsam" "^3.1.0" "@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.3": - version "3.3.3" - resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz" + "integrity" "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz" + "version" "3.3.3" dependencies: "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" + "array-from" "^2.1.1" + "lodash" "^4.17.15" "@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz" + "integrity" "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz" + "version" "0.7.1" "@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" + "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + "version" "1.1.2" dependencies: - defer-to-connect "^1.0.1" + "defer-to-connect" "^1.0.1" "@types/babel__core@^7.1.0": - version "7.1.14" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz" + "integrity" "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz" + "version" "7.1.14" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1148,79 +1319,91 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz" + "integrity" "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz" + "version" "7.6.2" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.0" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz" + "integrity" "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz" + "version" "7.4.0" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz" + "integrity" "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz" + "version" "7.11.1" dependencies: "@babel/types" "^7.3.0" "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" + "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + "version" "1.19.2" dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz" + "integrity" "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==" + "resolved" "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz" + "version" "3.5.10" dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz" + "integrity" "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==" + "resolved" "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz" + "version" "1.3.5" dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + "integrity" "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" + "resolved" "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + "version" "3.4.35" dependencies: "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" + "integrity" "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==" + "resolved" "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" + "version" "3.7.3" dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.1" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" + "integrity" "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==" + "resolved" "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" + "version" "8.4.1" dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" + "integrity" "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "resolved" "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" + "version" "0.0.51" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + "integrity" "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==" + "resolved" "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + "version" "4.17.28" dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + "integrity" "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==" + "resolved" "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + "version" "4.17.13" dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -1228,139 +1411,167 @@ "@types/serve-static" "*" "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz" + "integrity" "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==" + "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz" + "version" "7.1.3" dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + "integrity" "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "resolved" "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + "version" "6.1.0" "@types/http-proxy@^1.17.8": - version "1.17.8" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz" + "integrity" "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==" + "resolved" "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz" + "version" "1.17.8" dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + "integrity" "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + "version" "2.0.3" "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz" + "integrity" "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz" + "version" "1.1.2" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + "version" "7.0.9" "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": - version "3.0.10" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz" + "integrity" "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==" + "resolved" "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz" + "version" "3.0.10" dependencies: "@types/unist" "*" "@types/mime@^1": - version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + "integrity" "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "resolved" "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + "version" "1.3.2" "@types/minimatch@*": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz" + "integrity" "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" + "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" "@types/minimist@^1.2.0": - version "1.2.1" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz" + "integrity" "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" + "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz" + "version" "1.2.1" "@types/node@*": - version "15.12.2" - resolved "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz" + "integrity" "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz" + "version" "15.12.2" "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz" + "integrity" "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz" + "version" "2.4.0" "@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" + "integrity" "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + "resolved" "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" + "version" "1.5.4" "@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + "integrity" "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "resolved" "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + "version" "6.9.7" "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + "integrity" "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "resolved" "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + "version" "1.2.4" "@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" + "integrity" "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "resolved" "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" + "version" "0.12.1" "@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz" + "integrity" "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==" + "resolved" "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz" + "version" "1.9.1" dependencies: "@types/express" "*" "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + "integrity" "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==" + "resolved" "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + "version" "1.13.10" dependencies: "@types/mime" "^1" "@types/node" "*" "@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz" + "integrity" "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==" + "resolved" "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz" + "version" "0.3.33" dependencies: "@types/node" "*" "@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" + "integrity" "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" + "version" "1.0.1" "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.6" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" + "integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" + "version" "2.0.6" "@types/ws@^8.2.2": - version "8.2.3" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz" + "integrity" "sha512-ahRJZquUYCdOZf/rCsWg88S0/+cb9wazUBHv6HZEe3XdYaBe2zr/slM8J28X07Hn88Pnm4ezo7N8/ofnOgrPVQ==" + "resolved" "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz" + "version" "8.2.3" dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz" + "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" "@types/yargs@^13.0.0": - version "13.0.11" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz" + "integrity" "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" + "version" "13.0.12" dependencies: "@types/yargs-parser" "*" "@vue/babel-helper-vue-jsx-merge-props@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz" + "integrity" "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==" + "resolved" "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz" + "version" "1.2.1" "@vue/babel-helper-vue-transform-on@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz" + "integrity" "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==" + "resolved" "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz" + "version" "1.0.2" "@vue/babel-plugin-jsx@^1.0.3": - version "1.0.6" - resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.6.tgz" + "integrity" "sha512-RzYsvBhzKUmY2YG6LoV+W5PnlnkInq0thh1AzCmewwctAgGN6e9UFon6ZrQQV1CO5G5PeME7MqpB+/vvGg0h4g==" + "resolved" "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.6.tgz" + "version" "1.0.6" dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.0.0" @@ -1368,24 +1579,26 @@ "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" "@vue/babel-helper-vue-transform-on" "^1.0.2" - camelcase "^6.0.0" - html-tags "^3.1.0" - svg-tags "^1.0.0" + "camelcase" "^6.0.0" + "html-tags" "^3.1.0" + "svg-tags" "^1.0.0" "@vue/babel-plugin-transform-vue-jsx@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz" + "integrity" "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==" + "resolved" "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz" + "version" "1.2.1" dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" + "html-tags" "^2.0.0" + "lodash.kebabcase" "^4.1.1" + "svg-tags" "^1.0.0" "@vue/babel-preset-app@^4.1.2": - version "4.5.13" - resolved "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz" + "integrity" "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==" + "resolved" "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz" + "version" "4.5.13" dependencies: "@babel/core" "^7.11.0" "@babel/helper-compilation-targets" "^7.9.6" @@ -1399,14 +1612,15 @@ "@babel/runtime" "^7.11.0" "@vue/babel-plugin-jsx" "^1.0.3" "@vue/babel-preset-jsx" "^1.2.4" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" + "babel-plugin-dynamic-import-node" "^2.3.3" + "core-js" "^3.6.5" + "core-js-compat" "^3.6.5" + "semver" "^6.1.0" "@vue/babel-preset-jsx@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz" + "integrity" "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==" + "resolved" "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz" + "version" "1.2.4" dependencies: "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" @@ -1418,68 +1632,77 @@ "@vue/babel-sugar-v-on" "^1.2.3" "@vue/babel-sugar-composition-api-inject-h@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz" + "integrity" "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz" + "version" "1.2.1" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-sugar-composition-api-render-instance@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz" + "integrity" "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz" + "version" "1.2.4" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-sugar-functional-vue@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz" + "integrity" "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz" + "version" "1.2.2" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-sugar-inject-h@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz" + "integrity" "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz" + "version" "1.2.2" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-sugar-v-model@^1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz" + "integrity" "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz" + "version" "1.2.3" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" + "camelcase" "^5.0.0" + "html-tags" "^2.0.0" + "svg-tags" "^1.0.0" "@vue/babel-sugar-v-on@^1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz" + "integrity" "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==" + "resolved" "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz" + "version" "1.2.3" dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" + "camelcase" "^5.0.0" "@vue/compiler-core@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.1.tgz" + "integrity" "sha512-Z1RO3T6AEtAUFf2EqqovFm3ohAeTvFzRtB0qUENW2nEerJfdlk13/LS1a0EgsqlzxmYfR/S/S/gW9PLbFZZxkA==" + "resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.1.tgz" + "version" "3.1.1" dependencies: "@babel/parser" "^7.12.0" "@babel/types" "^7.12.0" "@vue/shared" "3.1.1" - estree-walker "^2.0.1" - source-map "^0.6.1" + "estree-walker" "^2.0.1" + "source-map" "^0.6.1" "@vue/compiler-dom@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.1.tgz" + "integrity" "sha512-nobRIo0t5ibzg+q8nC31m+aJhbq8FbWUoKvk6h3Vs1EqTDJaj6lBTcVTq5or8AYht7FbSpdAJ81isbJ1rWNX7A==" + "resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.1.tgz" + "version" "3.1.1" dependencies: "@vue/compiler-core" "3.1.1" "@vue/shared" "3.1.1" "@vue/compiler-sfc@^3.0.11": - version "3.1.1" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.1.tgz" + "integrity" "sha512-lSgMsZaYHF+bAgryq5aUqpvyfhu52GJI2/4LoiJCE5uaxc6FCZfxfgqgw/d9ltiZghv+HiISFtmQVAVvlsk+/w==" + "resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.1.tgz" + "version" "3.1.1" dependencies: "@babel/parser" "^7.13.9" "@babel/types" "^7.13.0" @@ -1487,45 +1710,73 @@ "@vue/compiler-dom" "3.1.1" "@vue/compiler-ssr" "3.1.1" "@vue/shared" "3.1.1" - consolidate "^0.16.0" - estree-walker "^2.0.1" - hash-sum "^2.0.0" - lru-cache "^5.1.1" - magic-string "^0.25.7" - merge-source-map "^1.1.0" - postcss "^8.1.10" - postcss-modules "^4.0.0" - postcss-selector-parser "^6.0.4" - source-map "^0.6.1" + "consolidate" "^0.16.0" + "estree-walker" "^2.0.1" + "hash-sum" "^2.0.0" + "lru-cache" "^5.1.1" + "magic-string" "^0.25.7" + "merge-source-map" "^1.1.0" + "postcss" "^8.1.10" + "postcss-modules" "^4.0.0" + "postcss-selector-parser" "^6.0.4" + "source-map" "^0.6.1" "@vue/compiler-ssr@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.1.tgz" + "integrity" "sha512-7H6krZtVt3h/YzfNp7eYK41hMDz8ZskiBy+Wby+EDRINX6BD9JQ5C8zyy2xAa7T6Iz2VrQzsaJ/Bb52lTPSS5A==" + "resolved" "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.1.tgz" + "version" "3.1.1" dependencies: "@vue/compiler-dom" "3.1.1" "@vue/shared" "3.1.1" "@vue/component-compiler-utils@^3.1.0": - version "3.2.1" - resolved "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.1.tgz" - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" + "integrity" "sha512-Mci9WJYLRjyJEBkGHMPxZ1ihJ9l6gOy2Gr6hpYZUNpQoe5+nbpeb3w00aP+PSHJygCF+fxJsqp7Af1zGDITzuw==" + "resolved" "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "consolidate" "^0.15.1" + "hash-sum" "^1.0.2" + "lru-cache" "^4.1.2" + "merge-source-map" "^1.1.0" + "postcss-selector-parser" "^6.0.2" + "source-map" "~0.6.1" + "vue-template-es2015-compiler" "^1.9.0" optionalDependencies: - prettier "^1.18.2" + "prettier" "^1.18.2" + +"@vue/reactivity@3.1.1": + "integrity" "sha512-DsH5woNVCcPK1M0RRYVgJEU1GJDU2ASOKpAqW3ppHk+XjoFLCbqc/26RTCgTpJYd9z8VN+79Q1u7/QqgQPbuLQ==" + "resolved" "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "@vue/shared" "3.1.1" + +"@vue/runtime-core@3.1.1": + "integrity" "sha512-GboqR02txOtkd9F3Ysd8ltPL68vTCqIx2p/J52/gFtpgb5FG9hvOAPEwFUqxeEJRu7ResvQnmdOHiEycGPCLhQ==" + "resolved" "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "@vue/reactivity" "3.1.1" + "@vue/shared" "3.1.1" + +"@vue/runtime-dom@3.1.1": + "integrity" "sha512-o57n/199e/BBAmLRMSXmD2r12Old/h/gf6BgL0RON1NT2pwm6MWaMY4Ul55eyq+FsDILz4jR/UgoPQ9vYB8xcw==" + "resolved" "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "@vue/runtime-core" "3.1.1" + "@vue/shared" "3.1.1" + "csstype" "^2.6.8" "@vue/shared@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.1.1.tgz" + "integrity" "sha512-g+4pzAw7PYSjARtLBoDq6DmcblX8i9KJHSCnyM5VDDFFifUaUT9iHbFpOF/KOizQ9f7QAqU2JH3Y6aXjzUMhVA==" + "resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.1.1.tgz" + "version" "3.1.1" "@vuepress/core@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/core/-/core-1.8.2.tgz" + "integrity" "sha512-lh9BLC06k9s0wxTuWtCkiNj49fkbW87enp0XSrFZHEoyDGSGndQjZmMMErcHc5Hx7nrW1nzc33sPH1NNtJl0hw==" + "resolved" "https://registry.npmjs.org/@vuepress/core/-/core-1.8.2.tgz" + "version" "1.8.2" dependencies: "@babel/core" "^7.8.4" "@vue/babel-preset-app" "^4.1.2" @@ -1534,192 +1785,217 @@ "@vuepress/plugin-last-updated" "1.8.2" "@vuepress/plugin-register-components" "1.8.2" "@vuepress/shared-utils" "1.8.2" - autoprefixer "^9.5.1" - babel-loader "^8.0.4" - cache-loader "^3.0.0" - chokidar "^2.0.3" - connect-history-api-fallback "^1.5.0" - copy-webpack-plugin "^5.0.2" - core-js "^3.6.4" - cross-spawn "^6.0.5" - css-loader "^2.1.1" - file-loader "^3.0.1" - js-yaml "^3.13.1" - lru-cache "^5.1.1" - mini-css-extract-plugin "0.6.0" - optimize-css-assets-webpack-plugin "^5.0.1" - portfinder "^1.0.13" - postcss-loader "^3.0.0" - postcss-safe-parser "^4.0.1" - toml "^3.0.0" - url-loader "^1.0.1" - vue "^2.6.10" - vue-loader "^15.7.1" - vue-router "^3.4.5" - vue-server-renderer "^2.6.10" - vue-template-compiler "^2.6.10" - vuepress-html-webpack-plugin "^3.2.0" - vuepress-plugin-container "^2.0.2" - webpack "^4.8.1" - webpack-chain "^6.0.0" - webpack-dev-server "^3.5.1" - webpack-merge "^4.1.2" - webpackbar "3.2.0" + "autoprefixer" "^9.5.1" + "babel-loader" "^8.0.4" + "cache-loader" "^3.0.0" + "chokidar" "^2.0.3" + "connect-history-api-fallback" "^1.5.0" + "copy-webpack-plugin" "^5.0.2" + "core-js" "^3.6.4" + "cross-spawn" "^6.0.5" + "css-loader" "^2.1.1" + "file-loader" "^3.0.1" + "js-yaml" "^3.13.1" + "lru-cache" "^5.1.1" + "mini-css-extract-plugin" "0.6.0" + "optimize-css-assets-webpack-plugin" "^5.0.1" + "portfinder" "^1.0.13" + "postcss-loader" "^3.0.0" + "postcss-safe-parser" "^4.0.1" + "toml" "^3.0.0" + "url-loader" "^1.0.1" + "vue" "^2.6.10" + "vue-loader" "^15.7.1" + "vue-router" "^3.4.5" + "vue-server-renderer" "^2.6.10" + "vue-template-compiler" "^2.6.10" + "vuepress-html-webpack-plugin" "^3.2.0" + "vuepress-plugin-container" "^2.0.2" + "webpack" "^4.8.1" + "webpack-chain" "^6.0.0" + "webpack-dev-server" "^3.5.1" + "webpack-merge" "^4.1.2" + "webpackbar" "3.2.0" "@vuepress/markdown-loader@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.8.2.tgz" + "integrity" "sha512-mWzFXikCUcAN/chpKkqZpRYKdo0312hMv8cBea2hvrJYV6y4ODB066XKvXN8JwOcxuCjxWYJkhWGr+pXq1oTtw==" + "resolved" "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.8.2.tgz" + "version" "1.8.2" dependencies: "@vuepress/markdown" "1.8.2" - loader-utils "^1.1.0" - lru-cache "^5.1.1" + "loader-utils" "^1.1.0" + "lru-cache" "^5.1.1" "@vuepress/markdown@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.8.2.tgz" + "integrity" "sha512-zznBHVqW+iBkznF/BO/GY9RFu53khyl0Ey0PnGqvwCJpRLNan6y5EXgYumtjw2GSYn5nDTTALYxtyNBdz64PKg==" + "resolved" "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.8.2.tgz" + "version" "1.8.2" dependencies: "@vuepress/shared-utils" "1.8.2" - markdown-it "^8.4.1" - markdown-it-anchor "^5.0.2" - markdown-it-chain "^1.3.0" - markdown-it-emoji "^1.4.0" - markdown-it-table-of-contents "^0.4.0" - prismjs "^1.13.0" + "markdown-it" "^8.4.1" + "markdown-it-anchor" "^5.0.2" + "markdown-it-chain" "^1.3.0" + "markdown-it-emoji" "^1.4.0" + "markdown-it-table-of-contents" "^0.4.0" + "prismjs" "^1.13.0" "@vuepress/plugin-active-header-links@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.8.2.tgz" + "integrity" "sha512-JmXAQg8D7J8mcKe2Ue3BZ9dOCzJMJXP4Cnkkc/IrqfDg0ET0l96gYWZohCqlvRIWt4f0VPiFAO4FLYrW+hko+g==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.8.2.tgz" + "version" "1.8.2" dependencies: - lodash.debounce "^4.0.8" + "lodash.debounce" "^4.0.8" "@vuepress/plugin-google-analytics@^1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-google-analytics/-/plugin-google-analytics-1.8.2.tgz" + "integrity" "sha512-BMFayLzT2BvXmnhM9mDHw0UPU7J0pH1X9gQA4HmZxOf7f3+atK5eJGsc1Ia/+1FTG2ESvhFLUU/CC3h5arjEJw==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-google-analytics/-/plugin-google-analytics-1.8.2.tgz" + "version" "1.8.2" "@vuepress/plugin-last-updated@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.8.2.tgz" + "integrity" "sha512-pYIRZi52huO9b6HY3JQNPKNERCLzMHejjBRt9ekdnJ1xhLs4MmRvt37BoXjI/qzvXkYtr7nmGgnKThNBVRTZuA==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.8.2.tgz" + "version" "1.8.2" dependencies: - cross-spawn "^6.0.5" + "cross-spawn" "^6.0.5" "@vuepress/plugin-nprogress@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.8.2.tgz" + "integrity" "sha512-3TOBee2NM3WLr1tdjDTGfrAMggjN+OlEPyKyv8FqThsVkDYhw48O3HwqlThp9KX7UbL3ExxIFBwWRFLC+kYrdw==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.8.2.tgz" + "version" "1.8.2" dependencies: - nprogress "^0.2.0" + "nprogress" "^0.2.0" "@vuepress/plugin-register-components@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.8.2.tgz" + "integrity" "sha512-6SUq3nHFMEh9qKFnjA8QnrNxj0kLs7+Gspq1OBU8vtu0NQmSvLFZVaMV7pzT/9zN2nO5Pld5qhsUJv1g71MrEA==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.8.2.tgz" + "version" "1.8.2" dependencies: "@vuepress/shared-utils" "1.8.2" "@vuepress/plugin-search@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.8.2.tgz" - -"@vuepress/shared-utils@1.8.2", "@vuepress/shared-utils@^1.2.0": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.8.2.tgz" - dependencies: - chalk "^2.3.2" - escape-html "^1.0.3" - fs-extra "^7.0.1" - globby "^9.2.0" - gray-matter "^4.0.1" - hash-sum "^1.0.2" - semver "^6.0.0" - toml "^3.0.0" - upath "^1.1.0" + "integrity" "sha512-JrSJr9o0Kar14lVtZ4wfw39pplxvvMh8vDBD9oW09a+6Zi/4bySPGdcdaqdqGW+OHSiZNvG+6uyfKSBBBqF6PA==" + "resolved" "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.8.2.tgz" + "version" "1.8.2" + +"@vuepress/shared-utils@^1.2.0", "@vuepress/shared-utils@1.8.2": + "integrity" "sha512-6kGubc7iBDWruEBUU7yR+sQ++SOhMuvKWvWeTZJKRZedthycdzYz7QVpua0FaZSAJm5/dIt8ymU4WQvxTtZgTQ==" + "resolved" "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.8.2.tgz" + "version" "1.8.2" + dependencies: + "chalk" "^2.3.2" + "escape-html" "^1.0.3" + "fs-extra" "^7.0.1" + "globby" "^9.2.0" + "gray-matter" "^4.0.1" + "hash-sum" "^1.0.2" + "semver" "^6.0.0" + "toml" "^3.0.0" + "upath" "^1.1.0" "@vuepress/theme-default@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.8.2.tgz" + "integrity" "sha512-rE7M1rs3n2xp4a/GrweO8EGwqFn3EA5gnFWdVmVIHyr7C1nix+EqjpPQF1SVWNnIrDdQuCw38PqS+oND1K2vYw==" + "resolved" "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.8.2.tgz" + "version" "1.8.2" dependencies: "@vuepress/plugin-active-header-links" "1.8.2" "@vuepress/plugin-nprogress" "1.8.2" "@vuepress/plugin-search" "1.8.2" - docsearch.js "^2.5.2" - lodash "^4.17.15" - stylus "^0.54.8" - stylus-loader "^3.0.2" - vuepress-plugin-container "^2.0.2" - vuepress-plugin-smooth-scroll "^0.0.3" + "docsearch.js" "^2.5.2" + "lodash" "^4.17.15" + "stylus" "^0.54.8" + "stylus-loader" "^3.0.2" + "vuepress-plugin-container" "^2.0.2" + "vuepress-plugin-smooth-scroll" "^0.0.3" "@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" + "integrity" "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/helper-numbers" "1.11.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.1" "@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + "integrity" "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" "@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" + "integrity" "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" + "version" "1.11.1" "@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + "integrity" "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" + "integrity" "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" + "version" "1.11.1" "@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + "integrity" "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" + "integrity" "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" + "version" "1.11.1" "@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + "integrity" "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + "integrity" "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + "integrity" "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + "integrity" "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" + "integrity" "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.1" "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" "@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" + "integrity" "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" + "version" "1.11.1" "@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + "integrity" "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" + "integrity" "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/helper-buffer" "1.11.1" @@ -1727,8 +2003,9 @@ "@webassemblyjs/wasm-gen" "1.11.1" "@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + "integrity" "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1736,40 +2013,47 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" + "integrity" "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" + "version" "1.11.1" dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + "integrity" "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + "version" "1.9.0" dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" + "integrity" "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" + "version" "1.11.1" dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + "integrity" "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + "version" "1.9.0" dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" + "integrity" "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" + "version" "1.11.1" "@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + "integrity" "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + "version" "1.9.0" "@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" + "integrity" "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/helper-buffer" "1.11.1" @@ -1781,8 +2065,9 @@ "@webassemblyjs/wast-printer" "1.11.1" "@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + "integrity" "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1794,8 +2079,9 @@ "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" + "integrity" "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.1" @@ -1804,8 +2090,9 @@ "@webassemblyjs/utf8" "1.11.1" "@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + "integrity" "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" @@ -1814,8 +2101,9 @@ "@webassemblyjs/utf8" "1.9.0" "@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" + "integrity" "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/helper-buffer" "1.11.1" @@ -1823,8 +2111,9 @@ "@webassemblyjs/wasm-parser" "1.11.1" "@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + "integrity" "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1832,8 +2121,9 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" + "integrity" "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/helper-api-error" "1.11.1" @@ -1843,8 +2133,9 @@ "@webassemblyjs/utf8" "1.11.1" "@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + "integrity" "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-api-error" "1.9.0" @@ -1854,8 +2145,9 @@ "@webassemblyjs/utf8" "1.9.0" "@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + "integrity" "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/floating-point-hex-parser" "1.9.0" @@ -1865,9797 +2157,11718 @@ "@xtuc/long" "4.2.2" "@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" + "integrity" "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" + "version" "1.11.1" dependencies: "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" "@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + "integrity" "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + "version" "1.9.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz" + "integrity" "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==" + "resolved" "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz" + "version" "1.1.1" "@webpack-cli/info@^1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz" + "integrity" "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==" + "resolved" "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz" + "version" "1.4.1" dependencies: - envinfo "^7.7.3" + "envinfo" "^7.7.3" "@webpack-cli/serve@^1.6.1": - version "1.6.1" - resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz" + "integrity" "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==" + "resolved" "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz" + "version" "1.6.1" "@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + "integrity" "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "resolved" "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + "version" "1.2.0" "@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" - -JSONStream@^1.0.3, JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + "integrity" "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "resolved" "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + "version" "4.2.2" + +"abab@^2.0.0": + "integrity" "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" + "version" "2.0.5" + +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + +"accepts@~1.3.4", "accepts@~1.3.5", "accepts@~1.3.7": + "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + "version" "1.3.7" + dependencies: + "mime-types" "~2.1.24" + "negotiator" "0.6.2" + +"acorn-globals@^4.1.0": + "integrity" "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==" + "resolved" "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "acorn" "^6.0.1" + "acorn-walk" "^6.0.1" + +"acorn-import-assertions@^1.7.6": + "integrity" "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" + "resolved" "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" + "version" "1.8.0" + +"acorn-jsx@^5.3.1": + "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + "version" "5.3.2" + +"acorn-node@^1.6.1": + "integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==" + "resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" + "version" "1.8.2" + dependencies: + "acorn" "^7.0.0" + "acorn-walk" "^7.0.0" + "xtend" "^4.0.2" + +"acorn-walk@^6.0.1": + "integrity" "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" + "version" "6.2.0" + +"acorn-walk@^7.0.0": + "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + "version" "7.2.0" + +"acorn@^5.5.3": + "integrity" "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" + "version" "5.7.4" + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.0.0": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" + +"acorn@^6.0.1": + "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + "version" "6.4.2" + +"acorn@^6.4.1": + "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + "version" "6.4.2" + +"acorn@^8.5.0": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" + +"acorn@^8.7.0": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" + +"acorn@^8", "acorn@^8.4.1": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" + +"add-stream@^1.0.0": + "integrity" "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=" + "resolved" "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz" + "version" "1.0.0" + +"agentkeepalive@^2.2.0": + "integrity" "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=" + "resolved" "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz" + "version" "2.2.0" + +"aggregate-error@^3.0.0": + "integrity" "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==" + "resolved" "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "clean-stack" "^2.0.0" + "indent-string" "^4.0.0" + +"ajv-errors@^1.0.0": + "integrity" "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + "resolved" "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + "version" "1.0.1" + +"ajv-formats@^2.1.1": + "integrity" "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==" + "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ajv" "^8.0.0" + +"ajv-keywords@^3.1.0", "ajv-keywords@^3.4.1", "ajv-keywords@^3.5.2": + "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + "version" "3.5.2" + +"ajv-keywords@^5.0.0": + "integrity" "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "fast-deep-equal" "^3.1.3" + +"ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.3", "ajv@^6.12.4", "ajv@^6.12.5", "ajv@^6.9.1", "ajv@>=5.0.0": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ajv@^8.0.0": + "integrity" "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" + "version" "8.10.0" + dependencies: + "fast-deep-equal" "^3.1.1" + "json-schema-traverse" "^1.0.0" + "require-from-string" "^2.0.2" + "uri-js" "^4.2.2" + +"ajv@^8.8.0", "ajv@^8.8.2": + "integrity" "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" + "version" "8.10.0" + dependencies: + "fast-deep-equal" "^3.1.1" + "json-schema-traverse" "^1.0.0" + "require-from-string" "^2.0.2" + "uri-js" "^4.2.2" + +"algoliasearch@^3.24.5": + "integrity" "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==" + "resolved" "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz" + "version" "3.35.1" + dependencies: + "agentkeepalive" "^2.2.0" + "debug" "^2.6.9" + "envify" "^4.0.0" + "es6-promise" "^4.1.0" + "events" "^1.1.0" + "foreach" "^2.0.5" + "global" "^4.3.2" + "inherits" "^2.0.1" + "isarray" "^2.0.1" + "load-script" "^1.0.0" + "object-keys" "^1.0.11" + "querystring-es3" "^0.2.1" + "reduce" "^1.0.1" + "semver" "^5.1.0" + "tunnel-agent" "^0.6.0" + +"alphanum-sort@^1.0.0": + "integrity" "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + "resolved" "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + "version" "1.0.2" + +"ansi-align@^3.0.0": + "integrity" "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==" + "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "string-width" "^3.0.0" + +"ansi-colors@^3.0.0": + "integrity" "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + "version" "3.2.4" + +"ansi-escapes@^3.0.0": + "integrity" "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + "version" "3.2.0" + +"ansi-escapes@^4.1.0", "ansi-escapes@^4.2.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-html-community@^0.0.8": + "integrity" "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + "resolved" "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + "version" "0.0.8" + +"ansi-html@^0.0.7", "ansi-html@0.0.7": + "integrity" "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + "resolved" "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" + "version" "0.0.7" + +"ansi-regex@^2.0.0": + "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "version" "2.1.1" + +"ansi-regex@^3.0.0": + "integrity" "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" + "version" "3.0.1" + +"ansi-regex@^4.0.0", "ansi-regex@^4.1.0": + "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-regex@^6.0.1": + "integrity" "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + "version" "6.0.1" + +"ansi-styles@^2.2.1": + "integrity" "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + "version" "2.2.1" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"any-observable@^0.3.0": + "integrity" "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==" + "resolved" "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz" + "version" "0.3.0" + +"anymatch@^2.0.0": + "integrity" "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "micromatch" "^3.1.4" + "normalize-path" "^2.1.1" + +"anymatch@~3.1.1": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"anymatch@~3.1.2": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"append-buffer@^1.0.2": + "integrity" "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=" + "resolved" "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "buffer-equal" "^1.0.0" + +"aproba@^1.1.1": + "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "version" "1.2.0" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"arr-diff@^4.0.0": + "integrity" "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "resolved" "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + "version" "4.0.0" + +"arr-flatten@^1.1.0": + "integrity" "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "resolved" "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + "version" "1.1.0" + +"arr-union@^3.1.0": + "integrity" "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "resolved" "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + "version" "3.1.0" + +"array-equal@^1.0.0": + "integrity" "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + "resolved" "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" + "version" "1.0.0" + +"array-find-index@^1.0.1": + "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "resolved" "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + "version" "1.0.2" + +"array-flatten@^2.1.0": + "integrity" "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" + "version" "2.1.2" + +"array-flatten@1.1.1": + "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + "version" "1.1.1" + +"array-from@^2.1.1": + "integrity" "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + "resolved" "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" + "version" "2.1.1" + +"array-ify@^1.0.0": + "integrity" "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" + "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" + "version" "1.0.0" + +"array-union@^1.0.1", "array-union@^1.0.2": + "integrity" "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "array-uniq" "^1.0.1" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"array-uniq@^1.0.1": + "integrity" "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + "resolved" "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + "version" "1.0.3" + +"array-unique@^0.3.2": + "integrity" "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "resolved" "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + "version" "0.3.2" + +"arrify@^1.0.1": + "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + "version" "1.0.1" + +"asn1.js@^5.2.0": + "integrity" "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==" + "resolved" "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bn.js" "^4.0.0" + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + "safer-buffer" "^2.1.0" + +"asn1@~0.2.3": + "integrity" "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==" + "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + "version" "0.2.4" + dependencies: + "safer-buffer" "~2.1.0" + +"assert-plus@^1.0.0", "assert-plus@1.0.0": + "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"assert@^1.1.1": + "integrity" "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==" + "resolved" "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "object-assign" "^4.1.1" + "util" "0.10.3" + +"assign-symbols@^1.0.0": + "integrity" "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "resolved" "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + "version" "1.0.0" + +"astral-regex@^1.0.0": + "integrity" "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + "version" "1.0.0" + +"async-each@^1.0.1": + "integrity" "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "resolved" "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + "version" "1.0.3" + +"async-limiter@~1.0.0": + "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + "version" "1.0.1" + +"async@^2.6.2": + "integrity" "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==" + "resolved" "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "lodash" "^4.17.14" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"atob@^2.1.2": + "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + "version" "2.1.2" + +"autocomplete.js@0.36.0": + "integrity" "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==" + "resolved" "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz" + "version" "0.36.0" + dependencies: + "immediate" "^3.2.3" + +"autoprefixer@^9.5.1": + "integrity" "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==" + "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz" + "version" "9.8.6" + dependencies: + "browserslist" "^4.12.0" + "caniuse-lite" "^1.0.30001109" + "colorette" "^1.2.1" + "normalize-range" "^0.1.2" + "num2fraction" "^1.2.2" + "postcss" "^7.0.32" + "postcss-value-parser" "^4.1.0" + +"aws-sign2@~0.7.0": + "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + "version" "0.7.0" + +"aws4@^1.8.0": + "integrity" "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + "version" "1.11.0" + +"babel-jest@^24.9.0": + "integrity" "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==" + "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz" + "version" "24.9.0" dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + "babel-plugin-istanbul" "^5.1.0" + "babel-preset-jest" "^24.9.0" + "chalk" "^2.4.2" + "slash" "^2.0.0" -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" +"babel-loader@^8.0.4", "babel-loader@^8.2.3": + "integrity" "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==" + "resolved" "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz" + "version" "8.2.3" dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + "find-cache-dir" "^3.3.1" + "loader-utils" "^1.4.0" + "make-dir" "^3.1.0" + "schema-utils" "^2.6.5" -acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz" +"babel-plugin-dynamic-import-node@^2.3.3": + "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + "version" "2.3.3" dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" + "object.assign" "^4.1.0" -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - -acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" - -acorn-walk@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" - -acorn@^6.0.1, acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" - -acorn@^7.0.0: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - -acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz" - -agentkeepalive@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" +"babel-plugin-istanbul@^5.1.0": + "integrity" "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==" + "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz" + "version" "5.2.0" dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + "@babel/helper-plugin-utils" "^7.0.0" + "find-up" "^3.0.0" + "istanbul-lib-instrument" "^3.3.0" + "test-exclude" "^5.2.3" -ajv-keywords@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" +"babel-plugin-jest-hoist@^24.9.0": + "integrity" "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==" + "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz" + "version" "24.9.0" dependencies: - fast-deep-equal "^3.1.3" + "@types/babel__traverse" "^7.0.6" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" +"babel-plugin-polyfill-corejs2@^0.3.0": + "integrity" "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + "version" "0.3.1" dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + "semver" "^6.1.1" -ajv@^8.0.0, ajv@^8.8.0: - version "8.10.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" +"babel-plugin-polyfill-corejs3@^0.5.0": + "integrity" "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + "version" "0.5.2" dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" + "@babel/helper-define-polyfill-provider" "^0.3.1" + "core-js-compat" "^3.21.0" -algoliasearch@^3.24.5: - version "3.35.1" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz" +"babel-plugin-polyfill-regenerator@^0.3.0": + "integrity" "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + "version" "0.3.1" dependencies: - agentkeepalive "^2.2.0" - debug "^2.6.9" - envify "^4.0.0" - es6-promise "^4.1.0" - events "^1.1.0" - foreach "^2.0.5" - global "^4.3.2" - inherits "^2.0.1" - isarray "^2.0.1" - load-script "^1.0.0" - object-keys "^1.0.11" - querystring-es3 "^0.2.1" - reduce "^1.0.1" - semver "^5.1.0" - tunnel-agent "^0.6.0" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + "@babel/helper-define-polyfill-provider" "^0.3.1" -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" +"babel-preset-jest@^24.9.0": + "integrity" "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==" + "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz" + "version" "24.9.0" dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "babel-plugin-jest-hoist" "^24.9.0" + +"babelify@^10.0.0": + "integrity" "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==" + "resolved" "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz" + "version" "10.0.0" + +"backbone-undo@^0.2.5": + "integrity" "sha1-VbJSMPkDGcpiJGXomoAki4k8LOI=" + "resolved" "https://registry.npmjs.org/backbone-undo/-/backbone-undo-0.2.5.tgz" + "version" "0.2.5" + dependencies: + "backbone" "1.0.0 - 1.2.1" + "underscore" "1.4.4 - 1.8.3" + +"backbone@1.0.0 - 1.2.1", "backbone@1.3.3": + "integrity" "sha1-TMgOp8sWMaxHSInOQPL4vGg7KZk=" + "resolved" "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz" + "version" "1.3.3" + dependencies: + "underscore" ">=1.8.3" + +"bail@^1.0.0": + "integrity" "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "resolved" "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz" + "version" "1.0.5" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"base@^0.11.1": + "integrity" "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==" + "resolved" "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + "version" "0.11.2" + dependencies: + "cache-base" "^1.0.1" + "class-utils" "^0.3.5" + "component-emitter" "^1.2.1" + "define-property" "^1.0.0" + "isobject" "^3.0.1" + "mixin-deep" "^1.2.0" + "pascalcase" "^0.1.1" + +"base64-js@^1.0.2", "base64-js@^1.3.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + +"batch@0.6.1": + "integrity" "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "resolved" "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + "version" "0.6.1" + +"bcrypt-pbkdf@^1.0.0": + "integrity" "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" + "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "tweetnacl" "^0.14.3" + +"big.js@^3.1.3": + "integrity" "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + "resolved" "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" + "version" "3.2.0" + +"big.js@^5.2.2": + "integrity" "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "resolved" "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + "version" "5.2.2" + +"binary-extensions@^1.0.0": + "integrity" "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" + "version" "1.13.1" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"bl@^4.1.0": + "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" + "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "buffer" "^5.5.0" + "inherits" "^2.0.4" + "readable-stream" "^3.4.0" + +"bluebird@^3.1.1", "bluebird@^3.5.5", "bluebird@^3.7.2": + "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + "version" "3.7.2" + +"bn.js@^4.0.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.1.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.11.9": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^5.0.0", "bn.js@^5.1.1": + "integrity" "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" + "version" "5.2.0" + +"body-parser@1.19.0": + "integrity" "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==" + "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" + "version" "1.19.0" + dependencies: + "bytes" "3.1.0" + "content-type" "~1.0.4" + "debug" "2.6.9" + "depd" "~1.1.2" + "http-errors" "1.7.2" + "iconv-lite" "0.4.24" + "on-finished" "~2.3.0" + "qs" "6.7.0" + "raw-body" "2.4.0" + "type-is" "~1.6.17" + +"body@^5.1.0": + "integrity" "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=" + "resolved" "https://registry.npmjs.org/body/-/body-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "continuable-cache" "^0.3.1" + "error" "^7.0.0" + "raw-body" "~1.1.0" + "safe-json-parse" "~1.0.1" + +"bonjour@^3.5.0": + "integrity" "sha1-jokKGD2O6aI5OzhExpGkK897yfU=" + "resolved" "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" + "version" "3.5.0" + dependencies: + "array-flatten" "^2.1.0" + "deep-equal" "^1.0.1" + "dns-equal" "^1.0.0" + "dns-txt" "^2.0.2" + "multicast-dns" "^6.0.1" + "multicast-dns-service-types" "^1.1.0" + +"boolbase@^1.0.0", "boolbase@~1.0.0": + "integrity" "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + "version" "1.0.0" + +"boxen@^4.2.0": + "integrity" "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==" + "resolved" "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "ansi-align" "^3.0.0" + "camelcase" "^5.3.1" + "chalk" "^3.0.0" + "cli-boxes" "^2.2.0" + "string-width" "^4.1.0" + "term-size" "^2.1.0" + "type-fest" "^0.8.1" + "widest-line" "^3.1.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^2.3.1": + "integrity" "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==" + "resolved" "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + "version" "2.3.2" + dependencies: + "arr-flatten" "^1.1.0" + "array-unique" "^0.3.2" + "extend-shallow" "^2.0.1" + "fill-range" "^4.0.0" + "isobject" "^3.0.1" + "repeat-element" "^1.1.2" + "snapdragon" "^0.8.1" + "snapdragon-node" "^2.0.1" + "split-string" "^3.0.2" + "to-regex" "^3.0.1" + +"braces@^2.3.2": + "integrity" "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==" + "resolved" "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + "version" "2.3.2" + dependencies: + "arr-flatten" "^1.1.0" + "array-unique" "^0.3.2" + "extend-shallow" "^2.0.1" + "fill-range" "^4.0.0" + "isobject" "^3.0.1" + "repeat-element" "^1.1.2" + "snapdragon" "^0.8.1" + "snapdragon-node" "^2.0.1" + "split-string" "^3.0.2" + "to-regex" "^3.0.1" + +"braces@^3.0.1", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"brorand@^1.0.1", "brorand@^1.1.0": + "integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + "version" "1.1.0" + +"browser-process-hrtime@^1.0.0": + "integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + "version" "1.0.0" + +"browser-resolve@^1.11.3", "browser-resolve@^1.7.0": + "integrity" "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==" + "resolved" "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz" + "version" "1.11.3" + dependencies: + "resolve" "1.1.7" + +"browserify-aes@^1.0.0", "browserify-aes@^1.0.4": + "integrity" "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==" + "resolved" "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "buffer-xor" "^1.0.3" + "cipher-base" "^1.0.0" + "create-hash" "^1.1.0" + "evp_bytestokey" "^1.0.3" + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"browserify-cipher@^1.0.0": + "integrity" "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==" + "resolved" "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "browserify-aes" "^1.0.4" + "browserify-des" "^1.0.0" + "evp_bytestokey" "^1.0.0" + +"browserify-des@^1.0.0": + "integrity" "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==" + "resolved" "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "cipher-base" "^1.0.1" + "des.js" "^1.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" + +"browserify-rsa@^4.0.0", "browserify-rsa@^4.0.1": + "integrity" "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==" + "resolved" "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "bn.js" "^5.0.0" + "randombytes" "^2.0.1" + +"browserify-sign@^4.0.0": + "integrity" "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==" + "resolved" "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "bn.js" "^5.1.1" + "browserify-rsa" "^4.0.1" + "create-hash" "^1.2.0" + "create-hmac" "^1.1.7" + "elliptic" "^6.5.3" + "inherits" "^2.0.4" + "parse-asn1" "^5.1.5" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"browserify-zlib@^0.2.0": + "integrity" "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==" + "resolved" "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + "version" "0.2.0" + dependencies: + "pako" "~1.0.5" + +"browserslist@^4.0.0", "browserslist@^4.12.0", "browserslist@^4.14.5", "browserslist@^4.17.5", "browserslist@^4.19.1": + "integrity" "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz" + "version" "4.19.3" + dependencies: + "caniuse-lite" "^1.0.30001312" + "electron-to-chromium" "^1.4.71" + "escalade" "^3.1.1" + "node-releases" "^2.0.2" + "picocolors" "^1.0.0" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"buffer-equal@^1.0.0": + "integrity" "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" + "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" + "version" "1.0.0" + +"buffer-from@^1.0.0": + "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"buffer-indexof@^1.0.0": + "integrity" "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + "resolved" "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" + "version" "1.1.1" + +"buffer-json@^2.0.0": + "integrity" "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" + "resolved" "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz" + "version" "2.0.0" + +"buffer-shims@^1.0.0": + "integrity" "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "resolved" "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + "version" "1.0.0" + +"buffer-xor@^1.0.3": + "integrity" "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "resolved" "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + "version" "1.0.3" + +"buffer@^4.3.0": + "integrity" "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + "version" "4.9.2" + dependencies: + "base64-js" "^1.0.2" + "ieee754" "^1.1.4" + "isarray" "^1.0.0" + +"buffer@^5.5.0": + "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + "version" "5.7.1" + dependencies: + "base64-js" "^1.3.1" + "ieee754" "^1.1.13" + +"builtin-status-codes@^3.0.0": + "integrity" "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + "resolved" "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + "version" "3.0.0" + +"bytes@1": + "integrity" "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz" + "version" "1.0.0" + +"bytes@3.0.0": + "integrity" "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + "version" "3.0.0" + +"bytes@3.1.0": + "integrity" "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + "version" "3.1.0" + +"cac@^6.5.6": + "integrity" "sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==" + "resolved" "https://registry.npmjs.org/cac/-/cac-6.7.3.tgz" + "version" "6.7.3" + +"cacache@^12.0.2", "cacache@^12.0.3": + "integrity" "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==" + "resolved" "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" + "version" "12.0.4" + dependencies: + "bluebird" "^3.5.5" + "chownr" "^1.1.1" + "figgy-pudding" "^3.5.1" + "glob" "^7.1.4" + "graceful-fs" "^4.1.15" + "infer-owner" "^1.0.3" + "lru-cache" "^5.1.1" + "mississippi" "^3.0.0" + "mkdirp" "^0.5.1" + "move-concurrently" "^1.0.1" + "promise-inflight" "^1.0.1" + "rimraf" "^2.6.3" + "ssri" "^6.0.1" + "unique-filename" "^1.1.1" + "y18n" "^4.0.0" + +"cache-base@^1.0.1": + "integrity" "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==" + "resolved" "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "collection-visit" "^1.0.0" + "component-emitter" "^1.2.1" + "get-value" "^2.0.6" + "has-value" "^1.0.0" + "isobject" "^3.0.1" + "set-value" "^2.0.0" + "to-object-path" "^0.3.0" + "union-value" "^1.0.0" + "unset-value" "^1.0.0" + +"cache-loader@^3.0.0": + "integrity" "sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==" + "resolved" "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "buffer-json" "^2.0.0" + "find-cache-dir" "^2.1.0" + "loader-utils" "^1.2.3" + "mkdirp" "^0.5.1" + "neo-async" "^2.6.1" + "schema-utils" "^1.0.0" + +"cacheable-request@^6.0.0": + "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" + "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "clone-response" "^1.0.2" + "get-stream" "^5.1.0" + "http-cache-semantics" "^4.0.0" + "keyv" "^3.0.0" + "lowercase-keys" "^2.0.0" + "normalize-url" "^4.1.0" + "responselike" "^1.0.2" + +"cached-path-relative@^1.0.0": + "integrity" "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==" + "resolved" "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz" + "version" "1.1.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"call-me-maybe@^1.0.1": + "integrity" "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + "resolved" "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" + "version" "1.0.1" + +"caller-callsite@^2.0.0": + "integrity" "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=" + "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "callsites" "^2.0.0" + +"caller-path@^2.0.0": + "integrity" "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=" + "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-callsite" "^2.0.0" + +"callsites@^2.0.0": + "integrity" "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + "version" "2.0.0" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camel-case@^4.1.2": + "integrity" "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==" + "resolved" "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "pascal-case" "^3.1.2" + "tslib" "^2.0.3" + +"camel-case@3.0.x": + "integrity" "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=" + "resolved" "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "no-case" "^2.2.0" + "upper-case" "^1.1.1" + +"camelcase-keys@^2.0.0": + "integrity" "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=" + "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "camelcase" "^2.0.0" + "map-obj" "^1.0.0" + +"camelcase-keys@^6.2.2": + "integrity" "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==" + "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "camelcase" "^5.3.1" + "map-obj" "^4.0.0" + "quick-lru" "^4.0.1" + +"camelcase@^2.0.0": + "integrity" "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + "version" "2.1.1" + +"camelcase@^5.0.0", "camelcase@^5.2.0", "camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.0.0": + "integrity" "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" + "version" "6.2.0" + +"caniuse-api@^3.0.0": + "integrity" "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" + "resolved" "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "browserslist" "^4.0.0" + "caniuse-lite" "^1.0.0" + "lodash.memoize" "^4.1.2" + "lodash.uniq" "^4.5.0" + +"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001109", "caniuse-lite@^1.0.30001312": + "integrity" "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz" + "version" "1.0.30001312" + +"capture-exit@^2.0.0": + "integrity" "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==" + "resolved" "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "rsvp" "^4.8.4" + +"caseless@~0.12.0": + "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + "version" "0.12.0" + +"ccount@^1.0.0": + "integrity" "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + "resolved" "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz" + "version" "1.1.0" + +"chalk@^1.0.0", "chalk@^1.1.3": + "integrity" "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "ansi-styles" "^2.2.1" + "escape-string-regexp" "^1.0.2" + "has-ansi" "^2.0.0" + "strip-ansi" "^3.0.0" + "supports-color" "^2.0.0" + +"chalk@^2.0.0", "chalk@^2.0.1", "chalk@^2.3.0", "chalk@^2.3.1", "chalk@^2.3.2", "chalk@^2.4.1", "chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^3.0.0": + "integrity" "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.0.0": + "integrity" "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.1": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"character-entities-html4@^1.0.0": + "integrity" "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" + "resolved" "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz" + "version" "1.1.4" + +"character-entities-legacy@^1.0.0": + "integrity" "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "resolved" "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" + "version" "1.1.4" + +"character-entities@^1.0.0": + "integrity" "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "resolved" "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" + "version" "1.2.4" + +"character-reference-invalid@^1.0.0": + "integrity" "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "resolved" "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" + "version" "1.1.4" + +"chardet@^0.7.0": + "integrity" "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "resolved" "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + "version" "0.7.0" + +"chokidar@^2.0.3", "chokidar@^2.1.8": + "integrity" "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" + "version" "2.1.8" + dependencies: + "anymatch" "^2.0.0" + "async-each" "^1.0.1" + "braces" "^2.3.2" + "glob-parent" "^3.1.0" + "inherits" "^2.0.3" + "is-binary-path" "^1.0.0" + "is-glob" "^4.0.0" + "normalize-path" "^3.0.0" + "path-is-absolute" "^1.0.0" + "readdirp" "^2.2.1" + "upath" "^1.1.1" + optionalDependencies: + "fsevents" "^1.2.7" + +"chokidar@^3.4.0", "chokidar@^3.5.3", "chokidar@>=3.0.0 <4.0.0": + "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + "version" "3.5.3" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" + optionalDependencies: + "fsevents" "~2.3.2" + +"chokidar@^3.4.1": + "integrity" "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" + "version" "3.5.1" + dependencies: + "anymatch" "~3.1.1" + "braces" "~3.0.2" + "glob-parent" "~5.1.0" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.5.0" + optionalDependencies: + "fsevents" "~2.3.1" + +"chownr@^1.1.1": + "integrity" "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + "version" "1.1.4" + +"chrome-trace-event@^1.0.2": + "integrity" "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "resolved" "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + "version" "1.0.3" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.0.0": + "integrity" "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" + "version" "3.2.0" + +"cipher-base@^1.0.0", "cipher-base@^1.0.1", "cipher-base@^1.0.3": + "integrity" "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + "resolved" "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"class-utils@^0.3.5": + "integrity" "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==" + "resolved" "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + "version" "0.3.6" + dependencies: + "arr-union" "^3.1.0" + "define-property" "^0.2.5" + "isobject" "^3.0.0" + "static-extend" "^0.1.1" + +"clean-css@^5.2.2": + "integrity" "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==" + "resolved" "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz" + "version" "5.2.4" + dependencies: + "source-map" "~0.6.0" + +"clean-css@4.2.x": + "integrity" "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==" + "resolved" "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "source-map" "~0.6.0" + +"clean-stack@^2.0.0": + "integrity" "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved" "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + "version" "2.2.0" + +"cli-boxes@^2.2.0": + "integrity" "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + "version" "2.2.1" + +"cli-cursor@^2.0.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-cursor@^2.1.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-cursor@^3.1.0": + "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "restore-cursor" "^3.1.0" + +"cli-spinners@^2.5.0": + "integrity" "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz" + "version" "2.6.1" + +"cli-truncate@^0.2.1": + "integrity" "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=" + "resolved" "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "slice-ansi" "0.0.4" + "string-width" "^1.0.1" + +"cli-width@^3.0.0": + "integrity" "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + "resolved" "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + "version" "3.0.0" + +"cliui@^5.0.0": + "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "string-width" "^3.1.0" + "strip-ansi" "^5.2.0" + "wrap-ansi" "^5.1.0" + +"cliui@^6.0.0": + "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^6.2.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"clone-buffer@^1.0.0": + "integrity" "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + "resolved" "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" + "version" "1.0.0" + +"clone-deep@^4.0.1": + "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" + "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +"clone-response@^1.0.2": + "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" + "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "mimic-response" "^1.0.0" + +"clone-stats@^1.0.0": + "integrity" "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + "resolved" "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" + "version" "1.0.0" + +"clone@^1.0.2": + "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + +"clone@^2.1.1": + "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + "version" "2.1.2" + +"cloneable-readable@^1.0.0": + "integrity" "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==" + "resolved" "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "inherits" "^2.0.1" + "process-nextick-args" "^2.0.0" + "readable-stream" "^2.3.5" + +"co@^4.6.0": + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"coa@^2.0.2": + "integrity" "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==" + "resolved" "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "@types/q" "^1.5.1" + "chalk" "^2.4.1" + "q" "^1.1.2" + +"code-point-at@^1.0.0": + "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + "version" "1.1.0" + +"codemirror-formatting@^1.0.0": + "integrity" "sha1-h5zB/dkBg0PB1VEXac5TYNcF6/I=" + "resolved" "https://registry.npmjs.org/codemirror-formatting/-/codemirror-formatting-1.0.0.tgz" + "version" "1.0.0" + +"codemirror@^5.63.0": + "integrity" "sha512-KlLWRPggDg2rBD1Mx7/EqEhaBdy+ybBCVh/efgjBDsPpMeEu6MbTAJzIT4TuCzvmbTEgvKOGzVT6wdBTNusqrg==" + "resolved" "https://registry.npmjs.org/codemirror/-/codemirror-5.63.0.tgz" + "version" "5.63.0" + +"collection-visit@^1.0.0": + "integrity" "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=" + "resolved" "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "map-visit" "^1.0.0" + "object-visit" "^1.0.0" + +"color-convert@^1.9.0", "color-convert@^1.9.1": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@^1.0.0", "color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-string@^1.5.4": + "integrity" "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==" + "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz" + "version" "1.5.5" + dependencies: + "color-name" "^1.0.0" + "simple-swizzle" "^0.2.2" + +"color@^3.0.0": + "integrity" "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==" + "resolved" "https://registry.npmjs.org/color/-/color-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "color-convert" "^1.9.1" + "color-string" "^1.5.4" + +"colorette@^1.2.1", "colorette@^1.2.2": + "integrity" "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" + "version" "1.2.2" + +"colorette@^2.0.10": + "integrity" "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" + "version" "2.0.16" + +"colorette@^2.0.14": + "integrity" "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" + "version" "2.0.16" + +"combined-stream@^1.0.6", "combined-stream@~1.0.6": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"comma-separated-tokens@^1.0.0": + "integrity" "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + "resolved" "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz" + "version" "1.0.8" + +"commander@^2.14.1": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.20.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.9.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^4.0.1": + "integrity" "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + "version" "4.1.1" + +"commander@^7.0.0": + "integrity" "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "resolved" "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + "version" "7.2.0" + +"commander@^8.3.0": + "integrity" "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "resolved" "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + "version" "8.3.0" + +"commander@~2.19.0": + "integrity" "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" + "version" "2.19.0" + +"commander@2.17.x": + "integrity" "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" + "version" "2.17.1" + +"commondir@^1.0.1": + "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + "version" "1.0.1" + +"compare-func@^2.0.0": + "integrity" "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==" + "resolved" "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "array-ify" "^1.0.0" + "dot-prop" "^5.1.0" + +"component-emitter@^1.2.1": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"compressible@~2.0.16": + "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" + "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + "version" "2.0.18" + dependencies: + "mime-db" ">= 1.43.0 < 2" + +"compression@^1.7.4": + "integrity" "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==" + "resolved" "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + "version" "1.7.4" + dependencies: + "accepts" "~1.3.5" + "bytes" "3.0.0" + "compressible" "~2.0.16" + "debug" "2.6.9" + "on-headers" "~1.0.2" + "safe-buffer" "5.1.2" + "vary" "~1.1.2" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"concat-stream@^1.5.0", "concat-stream@^1.6.0": + "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +"concat-stream@^2.0.0": + "integrity" "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^3.0.2" + "typedarray" "^0.0.6" + +"concat-stream@~1.5.0": + "integrity" "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz" + "version" "1.5.2" + dependencies: + "inherits" "~2.0.1" + "readable-stream" "~2.0.0" + "typedarray" "~0.0.5" + +"configstore@^5.0.1": + "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" + "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "dot-prop" "^5.2.0" + "graceful-fs" "^4.1.2" + "make-dir" "^3.0.0" + "unique-string" "^2.0.0" + "write-file-atomic" "^3.0.0" + "xdg-basedir" "^4.0.0" + +"connect-history-api-fallback@^1.5.0", "connect-history-api-fallback@^1.6.0": + "integrity" "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + "resolved" "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + "version" "1.6.0" + +"consola@^2.6.0": + "integrity" "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + "resolved" "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" + "version" "2.15.3" + +"console-browserify@^1.1.0": + "integrity" "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + "resolved" "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + "version" "1.2.0" + +"consolidate@^0.15.1": + "integrity" "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==" + "resolved" "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz" + "version" "0.15.1" + dependencies: + "bluebird" "^3.1.1" + +"consolidate@^0.16.0": + "integrity" "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==" + "resolved" "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz" + "version" "0.16.0" + dependencies: + "bluebird" "^3.7.2" + +"constants-browserify@^1.0.0": + "integrity" "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + "resolved" "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + "version" "1.0.0" + +"content-disposition@0.5.3": + "integrity" "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==" + "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "safe-buffer" "5.1.2" + +"content-type@~1.0.4": + "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + "version" "1.0.4" + +"continuable-cache@^0.3.1": + "integrity" "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=" + "resolved" "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz" + "version" "0.3.1" + +"conventional-changelog-angular@^5.0.12": + "integrity" "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz" + "version" "5.0.12" + dependencies: + "compare-func" "^2.0.0" + "q" "^1.5.1" + +"conventional-changelog-atom@^2.0.8": + "integrity" "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz" + "version" "2.0.8" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-codemirror@^2.0.8": + "integrity" "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz" + "version" "2.0.8" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-config-spec@2.1.0": + "integrity" "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==" + "resolved" "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz" + "version" "2.1.0" + +"conventional-changelog-conventionalcommits@^4.5.0", "conventional-changelog-conventionalcommits@4.5.0": + "integrity" "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz" + "version" "4.5.0" + dependencies: + "compare-func" "^2.0.0" + "lodash" "^4.17.15" + "q" "^1.5.1" + +"conventional-changelog-core@^4.2.1": + "integrity" "sha512-7pDpRUiobQDNkwHyJG7k9f6maPo9tfPzkSWbRq97GGiZqisElhnvUZSvyQH20ogfOjntB5aadvv6NNcKL1sReg==" + "resolved" "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "add-stream" "^1.0.0" + "conventional-changelog-writer" "^4.0.18" + "conventional-commits-parser" "^3.2.0" + "dateformat" "^3.0.0" + "get-pkg-repo" "^1.0.0" + "git-raw-commits" "^2.0.8" + "git-remote-origin-url" "^2.0.0" + "git-semver-tags" "^4.1.1" + "lodash" "^4.17.15" + "normalize-package-data" "^3.0.0" + "q" "^1.5.1" + "read-pkg" "^3.0.0" + "read-pkg-up" "^3.0.0" + "shelljs" "^0.8.3" + "through2" "^4.0.0" + +"conventional-changelog-ember@^2.0.9": + "integrity" "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==" + "resolved" "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz" + "version" "2.0.9" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-eslint@^3.0.9": + "integrity" "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==" + "resolved" "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz" + "version" "3.0.9" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-express@^2.0.6": + "integrity" "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==" + "resolved" "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-jquery@^3.0.11": + "integrity" "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz" + "version" "3.0.11" + dependencies: + "q" "^1.5.1" + +"conventional-changelog-jshint@^2.0.9": + "integrity" "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==" + "resolved" "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz" + "version" "2.0.9" + dependencies: + "compare-func" "^2.0.0" + "q" "^1.5.1" + +"conventional-changelog-preset-loader@^2.3.4": + "integrity" "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==" + "resolved" "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz" + "version" "2.3.4" + +"conventional-changelog-writer@^4.0.18": + "integrity" "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==" + "resolved" "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "compare-func" "^2.0.0" + "conventional-commits-filter" "^2.0.7" + "dateformat" "^3.0.0" + "handlebars" "^4.7.6" + "json-stringify-safe" "^5.0.1" + "lodash" "^4.17.15" + "meow" "^8.0.0" + "semver" "^6.0.0" + "split" "^1.0.0" + "through2" "^4.0.0" + +"conventional-changelog@3.1.24": + "integrity" "sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==" + "resolved" "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.24.tgz" + "version" "3.1.24" + dependencies: + "conventional-changelog-angular" "^5.0.12" + "conventional-changelog-atom" "^2.0.8" + "conventional-changelog-codemirror" "^2.0.8" + "conventional-changelog-conventionalcommits" "^4.5.0" + "conventional-changelog-core" "^4.2.1" + "conventional-changelog-ember" "^2.0.9" + "conventional-changelog-eslint" "^3.0.9" + "conventional-changelog-express" "^2.0.6" + "conventional-changelog-jquery" "^3.0.11" + "conventional-changelog-jshint" "^2.0.9" + "conventional-changelog-preset-loader" "^2.3.4" + +"conventional-commits-filter@^2.0.7": + "integrity" "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==" + "resolved" "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz" + "version" "2.0.7" + dependencies: + "lodash.ismatch" "^4.4.0" + "modify-values" "^1.0.0" + +"conventional-commits-parser@^3.2.0": + "integrity" "sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==" + "resolved" "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "is-text-path" "^1.0.1" + "JSONStream" "^1.0.4" + "lodash" "^4.17.15" + "meow" "^8.0.0" + "split2" "^3.0.0" + "through2" "^4.0.0" + "trim-off-newlines" "^1.0.0" + +"conventional-recommended-bump@6.1.0": + "integrity" "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==" + "resolved" "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "concat-stream" "^2.0.0" + "conventional-changelog-preset-loader" "^2.3.4" + "conventional-commits-filter" "^2.0.7" + "conventional-commits-parser" "^3.2.0" + "git-raw-commits" "^2.0.8" + "git-semver-tags" "^4.1.1" + "meow" "^8.0.0" + "q" "^1.5.1" + +"convert-source-map@^1.1.0", "convert-source-map@^1.4.0", "convert-source-map@^1.5.0", "convert-source-map@^1.7.0": + "integrity" "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "safe-buffer" "~5.1.1" + +"cookie-signature@1.0.6": + "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + "version" "1.0.6" + +"cookie@0.4.0": + "integrity" "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" + "version" "0.4.0" + +"copy-concurrently@^1.0.0": + "integrity" "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==" + "resolved" "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "aproba" "^1.1.1" + "fs-write-stream-atomic" "^1.0.8" + "iferr" "^0.1.5" + "mkdirp" "^0.5.1" + "rimraf" "^2.5.4" + "run-queue" "^1.0.0" + +"copy-descriptor@^0.1.0": + "integrity" "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "resolved" "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + "version" "0.1.1" + +"copy-webpack-plugin@^5.0.2": + "integrity" "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==" + "resolved" "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "cacache" "^12.0.3" + "find-cache-dir" "^2.1.0" + "glob-parent" "^3.1.0" + "globby" "^7.1.1" + "is-glob" "^4.0.1" + "loader-utils" "^1.2.3" + "minimatch" "^3.0.4" + "normalize-path" "^3.0.0" + "p-limit" "^2.2.1" + "schema-utils" "^1.0.0" + "serialize-javascript" "^4.0.0" + "webpack-log" "^2.0.0" + +"core-js-compat@^3.20.2", "core-js-compat@^3.21.0", "core-js-compat@^3.6.5": + "integrity" "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz" + "version" "3.21.1" + dependencies: + "browserslist" "^4.19.1" + "semver" "7.0.0" + +"core-js@^3.21.1", "core-js@^3.6.4", "core-js@^3.6.5": + "integrity" "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz" + "version" "3.21.1" + +"core-util-is@~1.0.0", "core-util-is@1.0.2": + "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "version" "1.0.2" + +"cosmiconfig@^5.0.0", "cosmiconfig@^5.2.0": + "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "import-fresh" "^2.0.0" + "is-directory" "^0.3.1" + "js-yaml" "^3.13.1" + "parse-json" "^4.0.0" + +"create-ecdh@^4.0.0": + "integrity" "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==" + "resolved" "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "bn.js" "^4.1.0" + "elliptic" "^6.5.3" + +"create-hash@^1.1.0", "create-hash@^1.1.2", "create-hash@^1.2.0": + "integrity" "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==" + "resolved" "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "cipher-base" "^1.0.1" + "inherits" "^2.0.1" + "md5.js" "^1.3.4" + "ripemd160" "^2.0.1" + "sha.js" "^2.4.0" + +"create-hmac@^1.1.0", "create-hmac@^1.1.4", "create-hmac@^1.1.7": + "integrity" "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==" + "resolved" "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "cipher-base" "^1.0.3" + "create-hash" "^1.1.0" + "inherits" "^2.0.1" + "ripemd160" "^2.0.0" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"cross-spawn@^6.0.0": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^6.0.5": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^7.0.2", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"crypto-browserify@^3.11.0": + "integrity" "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" + "resolved" "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + "version" "3.12.0" + dependencies: + "browserify-cipher" "^1.0.0" + "browserify-sign" "^4.0.0" + "create-ecdh" "^4.0.0" + "create-hash" "^1.1.0" + "create-hmac" "^1.1.0" + "diffie-hellman" "^5.0.0" + "inherits" "^2.0.1" + "pbkdf2" "^3.0.3" + "public-encrypt" "^4.0.0" + "randombytes" "^2.0.0" + "randomfill" "^1.0.3" + +"crypto-random-string@^2.0.0": + "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + "version" "2.0.0" + +"css-color-names@^0.0.4", "css-color-names@0.0.4": + "integrity" "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "resolved" "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + "version" "0.0.4" + +"css-declaration-sorter@^4.0.1": + "integrity" "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==" + "resolved" "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.1" + "timsort" "^0.3.0" + +"css-loader@*", "css-loader@^2.1.1": + "integrity" "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==" + "resolved" "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "camelcase" "^5.2.0" + "icss-utils" "^4.1.0" + "loader-utils" "^1.2.3" + "normalize-path" "^3.0.0" + "postcss" "^7.0.14" + "postcss-modules-extract-imports" "^2.0.0" + "postcss-modules-local-by-default" "^2.0.6" + "postcss-modules-scope" "^2.1.0" + "postcss-modules-values" "^2.0.0" + "postcss-value-parser" "^3.3.0" + "schema-utils" "^1.0.0" + +"css-parse@~2.0.0": + "integrity" "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=" + "resolved" "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "css" "^2.0.0" + +"css-select-base-adapter@^0.1.1": + "integrity" "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + "resolved" "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + "version" "0.1.1" + +"css-select@^2.0.0": + "integrity" "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==" + "resolved" "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "boolbase" "^1.0.0" + "css-what" "^3.2.1" + "domutils" "^1.7.0" + "nth-check" "^1.0.2" + +"css-select@^4.1.3": + "integrity" "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==" + "resolved" "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "boolbase" "^1.0.0" + "css-what" "^5.0.0" + "domhandler" "^4.2.0" + "domutils" "^2.6.0" + "nth-check" "^2.0.0" + +"css-tree@^1.1.2": + "integrity" "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==" + "resolved" "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "mdn-data" "2.0.14" + "source-map" "^0.6.1" + +"css-tree@1.0.0-alpha.37": + "integrity" "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==" + "resolved" "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + "version" "1.0.0-alpha.37" + dependencies: + "mdn-data" "2.0.4" + "source-map" "^0.6.1" + +"css-what@^3.2.1": + "integrity" "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + "resolved" "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" + "version" "3.4.2" + +"css-what@^5.0.0": + "integrity" "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "resolved" "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz" + "version" "5.0.1" + +"css@^2.0.0": + "integrity" "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==" + "resolved" "https://registry.npmjs.org/css/-/css-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "inherits" "^2.0.3" + "source-map" "^0.6.1" + "source-map-resolve" "^0.5.2" + "urix" "^0.1.0" + +"cssesc@^3.0.0": + "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + "version" "3.0.0" + +"cssnano-preset-default@^4.0.8": + "integrity" "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==" + "resolved" "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" + "version" "4.0.8" + dependencies: + "css-declaration-sorter" "^4.0.1" + "cssnano-util-raw-cache" "^4.0.1" + "postcss" "^7.0.0" + "postcss-calc" "^7.0.1" + "postcss-colormin" "^4.0.3" + "postcss-convert-values" "^4.0.1" + "postcss-discard-comments" "^4.0.2" + "postcss-discard-duplicates" "^4.0.2" + "postcss-discard-empty" "^4.0.1" + "postcss-discard-overridden" "^4.0.1" + "postcss-merge-longhand" "^4.0.11" + "postcss-merge-rules" "^4.0.3" + "postcss-minify-font-values" "^4.0.2" + "postcss-minify-gradients" "^4.0.2" + "postcss-minify-params" "^4.0.2" + "postcss-minify-selectors" "^4.0.2" + "postcss-normalize-charset" "^4.0.1" + "postcss-normalize-display-values" "^4.0.2" + "postcss-normalize-positions" "^4.0.2" + "postcss-normalize-repeat-style" "^4.0.2" + "postcss-normalize-string" "^4.0.2" + "postcss-normalize-timing-functions" "^4.0.2" + "postcss-normalize-unicode" "^4.0.1" + "postcss-normalize-url" "^4.0.1" + "postcss-normalize-whitespace" "^4.0.2" + "postcss-ordered-values" "^4.1.2" + "postcss-reduce-initial" "^4.0.3" + "postcss-reduce-transforms" "^4.0.2" + "postcss-svgo" "^4.0.3" + "postcss-unique-selectors" "^4.0.1" + +"cssnano-util-get-arguments@^4.0.0": + "integrity" "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + "resolved" "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + "version" "4.0.0" + +"cssnano-util-get-match@^4.0.0": + "integrity" "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + "resolved" "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + "version" "4.0.0" + +"cssnano-util-raw-cache@^4.0.1": + "integrity" "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==" + "resolved" "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.0" + +"cssnano-util-same-parent@^4.0.0": + "integrity" "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + "resolved" "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" + "version" "4.0.1" + +"cssnano@^4.1.10": + "integrity" "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==" + "resolved" "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz" + "version" "4.1.11" + dependencies: + "cosmiconfig" "^5.0.0" + "cssnano-preset-default" "^4.0.8" + "is-resolvable" "^1.0.0" + "postcss" "^7.0.0" + +"csso@^4.0.2": + "integrity" "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==" + "resolved" "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "css-tree" "^1.1.2" + +"cssom@>= 0.3.2 < 0.4.0", "cssom@0.3.x": + "integrity" "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + "version" "0.3.8" + +"cssstyle@^1.0.0": + "integrity" "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==" + "resolved" "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "cssom" "0.3.x" + +"csstype@^2.6.8": + "integrity" "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz" + "version" "2.6.20" + +"currently-unhandled@^0.4.1": + "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" + "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "array-find-index" "^1.0.1" + +"cyclist@^1.0.1": + "integrity" "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + "resolved" "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" + "version" "1.0.1" + +"dargs@^7.0.0": + "integrity" "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" + "resolved" "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" + "version" "7.0.0" + +"dashdash@^1.12.0": + "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" + "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + "version" "1.14.1" + dependencies: + "assert-plus" "^1.0.0" + +"data-urls@^1.0.0": + "integrity" "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==" + "resolved" "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "abab" "^2.0.0" + "whatwg-mimetype" "^2.2.0" + "whatwg-url" "^7.0.0" + +"date-fns@^1.27.2": + "integrity" "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + "resolved" "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" + "version" "1.30.1" + +"dateformat@^3.0.0": + "integrity" "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" + "resolved" "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" + "version" "3.0.3" -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" +"de-indent@^1.0.2": + "integrity" "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" + "resolved" "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" + "version" "1.0.2" -ansi-escapes@^4.1.0, ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" +"debug@^2.2.0": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" dependencies: - type-fest "^0.21.3" + "ms" "2.0.0" + +"debug@^2.3.3": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^3.1.0": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" +"debug@^3.1.1": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" -ansi-html@0.0.7, ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" +"debug@^3.2.6": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" +"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@~3.1.0": + "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ms" "2.0.0" + +"debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"decamelize-keys@^1.1.0": + "integrity" "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=" + "resolved" "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "decamelize" "^1.1.0" + "map-obj" "^1.0.0" -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" +"decamelize@^1.1.0", "decamelize@^1.1.2", "decamelize@^1.2.0": + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" +"decode-uri-component@^0.2.0": + "integrity" "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + "version" "0.2.0" -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" +"decompress-response@^3.3.0": + "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "mimic-response" "^1.0.0" -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" +"dedent@^0.7.0": + "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + "version" "0.7.0" -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" +"deep-equal@^1.0.1": + "integrity" "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==" + "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "is-arguments" "^1.0.4" + "is-date-object" "^1.0.1" + "is-regex" "^1.0.4" + "object-is" "^1.0.1" + "object-keys" "^1.1.1" + "regexp.prototype.flags" "^1.2.0" -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" +"deep-extend@^0.6.0": + "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + "version" "0.6.0" -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" +"deep-is@^0.1.3", "deep-is@~0.1.3": + "integrity" "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + "version" "0.1.3" + +"deepmerge@^1.5.2": + "integrity" "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz" + "version" "1.5.2" + +"default-gateway@^4.2.0": + "integrity" "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==" + "resolved" "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz" + "version" "4.2.0" dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "execa" "^1.0.0" + "ip-regex" "^2.1.0" + +"default-gateway@^6.0.3": + "integrity" "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==" + "resolved" "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + "version" "6.0.3" dependencies: - color-convert "^2.0.1" - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + "execa" "^5.0.0" + +"defaults@^1.0.3": + "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "clone" "^1.0.2" + +"defer-to-connect@^1.0.1": + "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + "version" "1.1.3" + +"define-lazy-prop@^2.0.0": + "integrity" "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "resolved" "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + "version" "2.0.0" + +"define-properties@^1.1.2", "define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "object-keys" "^1.0.12" + +"define-property@^0.2.5": + "integrity" "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + "version" "0.2.5" + dependencies: + "is-descriptor" "^0.1.0" + +"define-property@^1.0.0": + "integrity" "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-descriptor" "^1.0.0" + +"define-property@^2.0.2": + "integrity" "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "is-descriptor" "^1.0.2" + "isobject" "^3.0.1" + +"defined@^1.0.0": + "integrity" "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + "version" "1.0.0" + +"del@^3.0.0": + "integrity" "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=" + "resolved" "https://registry.npmjs.org/del/-/del-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "globby" "^6.1.0" + "is-path-cwd" "^1.0.0" + "is-path-in-cwd" "^1.0.0" + "p-map" "^1.1.1" + "pify" "^3.0.0" + "rimraf" "^2.2.8" + +"del@^4.1.1": + "integrity" "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==" + "resolved" "https://registry.npmjs.org/del/-/del-4.1.1.tgz" + "version" "4.1.1" dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "@types/glob" "^7.1.1" + "globby" "^6.1.0" + "is-path-cwd" "^2.0.0" + "is-path-in-cwd" "^2.0.0" + "p-map" "^2.0.0" + "pify" "^4.0.1" + "rimraf" "^2.6.3" + +"del@^6.0.0": + "integrity" "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==" + "resolved" "https://registry.npmjs.org/del/-/del-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "globby" "^11.0.1" + "graceful-fs" "^4.2.4" + "is-glob" "^4.0.1" + "is-path-cwd" "^2.2.0" + "is-path-inside" "^3.0.2" + "p-map" "^4.0.0" + "rimraf" "^3.0.2" + "slash" "^3.0.0" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"depd@~1.1.2": + "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + "version" "1.1.2" + +"des.js@^1.0.0": + "integrity" "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==" + "resolved" "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + +"destroy@~1.0.4": + "integrity" "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + "version" "1.0.4" + +"detect-indent@^6.0.0": + "integrity" "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==" + "resolved" "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" + "version" "6.1.0" + +"detect-newline@^2.1.0": + "integrity" "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" + "version" "2.1.0" + +"detect-newline@^3.1.0": + "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + "version" "3.1.0" + +"detect-node@^2.0.4": + "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + "version" "2.1.0" + +"detective@^5.2.0": + "integrity" "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==" + "resolved" "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "acorn-node" "^1.6.1" + "defined" "^1.0.0" + "minimist" "^1.1.1" + +"diff-sequences@^24.9.0": + "integrity" "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" + "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz" + "version" "24.9.0" + +"diff@^3.5.0": + "integrity" "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "resolved" "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" + "version" "3.5.0" + +"diff@^4.0.1": + "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + "version" "4.0.2" + +"diffie-hellman@^5.0.0": + "integrity" "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==" + "resolved" "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "bn.js" "^4.1.0" + "miller-rabin" "^4.0.0" + "randombytes" "^2.0.0" + +"dir-glob@^2.0.0", "dir-glob@^2.2.2": + "integrity" "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz" + "version" "2.2.2" + dependencies: + "path-type" "^3.0.0" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"dns-equal@^1.0.0": + "integrity" "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "resolved" "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" + "version" "1.0.0" + +"dns-packet@^1.3.1": + "integrity" "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==" + "resolved" "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" + "version" "1.3.4" + dependencies: + "ip" "^1.1.0" + "safe-buffer" "^5.0.1" + +"dns-txt@^2.0.2": + "integrity" "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=" + "resolved" "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "buffer-indexof" "^1.0.0" + +"docsearch.js@^2.5.2": + "integrity" "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==" + "resolved" "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "algoliasearch" "^3.24.5" + "autocomplete.js" "0.36.0" + "hogan.js" "^3.0.2" + "request" "^2.87.0" + "stack-utils" "^1.0.1" + "to-factory" "^1.0.0" + "zepto" "^1.2.0" + +"doctrine-temporary-fork@2.1.0": + "integrity" "sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==" + "resolved" "https://registry.npmjs.org/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "esutils" "^2.0.2" + +"doctrine@^3.0.0": + "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "esutils" "^2.0.2" + +"documentation@^13.2.5": + "integrity" "sha512-d1TrfrHXYZR63xrOzkYwwe297vkSwBoEhyyMBOi20T+7Ohe1aX1dW4nqXncQmdmE5MxluSaxxa3BW1dCvbF5AQ==" + "resolved" "https://registry.npmjs.org/documentation/-/documentation-13.2.5.tgz" + "version" "13.2.5" dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" + "@babel/core" "7.12.3" + "@babel/generator" "7.12.1" + "@babel/parser" "7.12.3" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + "ansi-html" "^0.0.7" + "babelify" "^10.0.0" + "chalk" "^2.3.0" + "chokidar" "^3.4.0" + "concat-stream" "^1.6.0" + "diff" "^4.0.1" + "doctrine-temporary-fork" "2.1.0" + "get-port" "^5.0.0" + "git-url-parse" "^11.1.2" + "github-slugger" "1.2.0" + "glob" "^7.1.2" + "globals-docs" "^2.4.0" + "highlight.js" "^10.7.2" + "ini" "^1.3.5" + "js-yaml" "^3.10.0" + "lodash" "^4.17.10" + "mdast-util-find-and-replace" "^1.1.1" + "mdast-util-inject" "^1.1.0" + "micromatch" "^3.1.5" + "mime" "^2.2.0" + "module-deps-sortable" "^5.0.3" + "parse-filepath" "^1.0.2" + "pify" "^5.0.0" + "read-pkg-up" "^4.0.0" + "remark" "^13.0.0" + "remark-gfm" "^1.0.0" + "remark-html" "^13.0.1" + "remark-reference-links" "^5.0.0" + "remark-toc" "^7.2.0" + "resolve" "^1.8.1" + "stream-array" "^1.1.2" + "strip-json-comments" "^2.0.1" + "tiny-lr" "^1.1.0" + "unist-builder" "^2.0.3" + "unist-util-visit" "^2.0.3" + "vfile" "^4.0.0" + "vfile-reporter" "^6.0.0" + "vfile-sort" "^2.1.0" + "vinyl" "^2.1.0" + "vinyl-fs" "^3.0.2" + "yargs" "^15.3.1" + optionalDependencies: + "@vue/compiler-sfc" "^3.0.11" + "vue-template-compiler" "^2.6.12" -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" +"dom-converter@^0.2.0": + "integrity" "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==" + "resolved" "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + "version" "0.2.0" dependencies: - buffer-equal "^1.0.0" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "utila" "~0.4" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" +"dom-serializer@^1.0.1": + "integrity" "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==" + "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" + "version" "1.3.2" dependencies: - sprintf-js "~1.0.2" + "domelementtype" "^2.0.1" + "domhandler" "^4.2.0" + "entities" "^2.0.0" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" +"dom-serializer@0": + "integrity" "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==" + "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" + "version" "0.2.2" + dependencies: + "domelementtype" "^2.0.1" + "entities" "^2.0.0" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" +"dom-walk@^0.1.0": + "integrity" "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + "version" "0.1.2" -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" +"domain-browser@^1.1.1": + "integrity" "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + "resolved" "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + "version" "1.2.0" + +"domelementtype@^2.0.1", "domelementtype@^2.2.0": + "integrity" "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" + "version" "2.2.0" + +"domelementtype@1": + "integrity" "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + "version" "1.3.1" + +"domexception@^1.0.1": + "integrity" "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==" + "resolved" "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "webidl-conversions" "^4.0.2" + +"domhandler@^4.0.0", "domhandler@^4.2.0": + "integrity" "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==" + "resolved" "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "domelementtype" "^2.2.0" + +"domutils@^1.7.0": + "integrity" "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" + "resolved" "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "dom-serializer" "0" + "domelementtype" "1" + +"domutils@^2.5.2", "domutils@^2.6.0": + "integrity" "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==" + "resolved" "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "dom-serializer" "^1.0.1" + "domelementtype" "^2.2.0" + "domhandler" "^4.2.0" + +"dot-case@^3.0.4": + "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==" + "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "no-case" "^3.0.4" + "tslib" "^2.0.3" + +"dot-prop@^5.1.0", "dot-prop@^5.2.0": + "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "is-obj" "^2.0.0" + +"dotgitignore@^2.1.0": + "integrity" "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==" + "resolved" "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "find-up" "^3.0.0" + "minimatch" "^3.0.4" + +"dts-bundle-generator@^6.5.0": + "integrity" "sha512-PvJxvy0xALNuBjjSlUWlFFjlimlCzMBUG2QNlkavTIKvLY55F2XOVJ/M0EoVIFafrWzQk/uV6UyIod9MtpmRNw==" + "resolved" "https://registry.npmjs.org/dts-bundle-generator/-/dts-bundle-generator-6.5.0.tgz" + "version" "6.5.0" + dependencies: + "typescript" ">=3.0.1" + "yargs" "^17.2.1" + +"duplexer2@^0.1.2", "duplexer2@~0.1.0": + "integrity" "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=" + "resolved" "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" + "version" "0.1.4" + dependencies: + "readable-stream" "^2.0.2" + +"duplexer3@^0.1.4": + "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + "version" "0.1.4" + +"duplexify@^3.4.2", "duplexify@^3.6.0": + "integrity" "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==" + "resolved" "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + "version" "3.7.1" + dependencies: + "end-of-stream" "^1.0.0" + "inherits" "^2.0.1" + "readable-stream" "^2.0.0" + "stream-shift" "^1.0.0" + +"ecc-jsbn@~0.1.1": + "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" + "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "jsbn" "~0.1.0" + "safer-buffer" "^2.1.0" + +"ee-first@1.1.1": + "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"electron-to-chromium@^1.4.71": + "integrity" "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz" + "version" "1.4.71" + +"elegant-spinner@^1.0.1": + "integrity" "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=" + "resolved" "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz" + "version" "1.0.1" + +"elliptic@^6.5.3": + "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" + "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + "version" "6.5.4" + dependencies: + "bn.js" "^4.11.9" + "brorand" "^1.1.0" + "hash.js" "^1.0.0" + "hmac-drbg" "^1.0.1" + "inherits" "^2.0.4" + "minimalistic-assert" "^1.0.1" + "minimalistic-crypto-utils" "^1.0.1" + +"emoji-regex@^7.0.1": + "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" +"emoji-regex@>=6.0.0 <=6.1.1": + "integrity" "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz" + "version" "6.1.1" + +"emojis-list@^2.0.0": + "integrity" "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + "version" "2.1.0" + +"emojis-list@^3.0.0": + "integrity" "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + "version" "3.0.0" + +"encodeurl@~1.0.2": + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"end-of-stream@^1.0.0", "end-of-stream@^1.1.0": + "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + "version" "1.4.4" + dependencies: + "once" "^1.4.0" + +"enhanced-resolve@^4.5.0": + "integrity" "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" + "version" "4.5.0" + dependencies: + "graceful-fs" "^4.1.2" + "memory-fs" "^0.5.0" + "tapable" "^1.0.0" + +"enhanced-resolve@^5.0.0", "enhanced-resolve@^5.8.3": + "integrity" "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz" + "version" "5.9.0" + dependencies: + "graceful-fs" "^4.2.4" + "tapable" "^2.2.0" + +"entities@^2.0.0": + "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + "version" "2.2.0" + +"entities@~1.1.1": + "integrity" "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "resolved" "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" + "version" "1.1.2" + +"envify@^4.0.0": + "integrity" "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==" + "resolved" "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "esprima" "^4.0.0" + "through" "~2.3.4" + +"envinfo@^7.2.0", "envinfo@^7.7.3": + "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + "version" "7.8.1" + +"errno@^0.1.3", "errno@~0.1.7": + "integrity" "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==" + "resolved" "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" + "version" "0.1.8" + dependencies: + "prr" "~1.0.1" + +"error-ex@^1.2.0", "error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"error@^7.0.0": + "integrity" "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==" + "resolved" "https://registry.npmjs.org/error/-/error-7.2.1.tgz" + "version" "7.2.1" + dependencies: + "string-template" "~0.2.1" + +"es-abstract@^1.17.2", "es-abstract@^1.18.0-next.2", "es-abstract@^1.18.2": + "integrity" "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz" + "version" "1.18.3" + dependencies: + "call-bind" "^1.0.2" + "es-to-primitive" "^1.2.1" + "function-bind" "^1.1.1" + "get-intrinsic" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.2" + "is-callable" "^1.2.3" + "is-negative-zero" "^2.0.1" + "is-regex" "^1.1.3" + "is-string" "^1.0.6" + "object-inspect" "^1.10.3" + "object-keys" "^1.1.1" + "object.assign" "^4.1.2" + "string.prototype.trimend" "^1.0.4" + "string.prototype.trimstart" "^1.0.4" + "unbox-primitive" "^1.0.1" + +"es-module-lexer@^0.9.0": + "integrity" "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + "resolved" "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" + "version" "0.9.3" + +"es-to-primitive@^1.2.1": + "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"es6-promise@^4.1.0": + "integrity" "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "resolved" "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" + "version" "4.2.8" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-goat@^2.0.0": + "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + "version" "2.1.1" + +"escape-html@^1.0.3", "escape-html@~1.0.3": + "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^1.0.2", "escape-string-regexp@^1.0.4", "escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^2.0.0": + "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + "version" "2.0.0" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"escodegen@^1.9.1": + "integrity" "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==" + "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" + "version" "1.14.3" + dependencies: + "esprima" "^4.0.1" + "estraverse" "^4.2.0" + "esutils" "^2.0.2" + "optionator" "^0.8.1" + optionalDependencies: + "source-map" "~0.6.1" -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" +"eslint-scope@^4.0.3": + "integrity" "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "esrecurse" "^4.1.0" + "estraverse" "^4.1.1" -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" +"eslint-scope@^7.1.1": + "integrity" "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + "version" "7.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^5.2.0" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" +"eslint-scope@5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" +"eslint-utils@^3.0.0": + "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" + "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "eslint-visitor-keys" "^2.0.0" -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" +"eslint-visitor-keys@^2.0.0": + "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + "version" "2.1.0" -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" +"eslint-visitor-keys@^3.3.0": + "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + "version" "3.3.0" -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" +"eslint@^8.12.0", "eslint@>=5": + "integrity" "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz" + "version" "8.12.0" + dependencies: + "@eslint/eslintrc" "^1.2.1" + "@humanwhocodes/config-array" "^0.9.2" + "ajv" "^6.10.0" + "chalk" "^4.0.0" + "cross-spawn" "^7.0.2" + "debug" "^4.3.2" + "doctrine" "^3.0.0" + "escape-string-regexp" "^4.0.0" + "eslint-scope" "^7.1.1" + "eslint-utils" "^3.0.0" + "eslint-visitor-keys" "^3.3.0" + "espree" "^9.3.1" + "esquery" "^1.4.0" + "esutils" "^2.0.2" + "fast-deep-equal" "^3.1.3" + "file-entry-cache" "^6.0.1" + "functional-red-black-tree" "^1.0.1" + "glob-parent" "^6.0.1" + "globals" "^13.6.0" + "ignore" "^5.2.0" + "import-fresh" "^3.0.0" + "imurmurhash" "^0.1.4" + "is-glob" "^4.0.0" + "js-yaml" "^4.1.0" + "json-stable-stringify-without-jsonify" "^1.0.1" + "levn" "^0.4.1" + "lodash.merge" "^4.6.2" + "minimatch" "^3.0.4" + "natural-compare" "^1.4.0" + "optionator" "^0.9.1" + "regexpp" "^3.2.0" + "strip-ansi" "^6.0.1" + "strip-json-comments" "^3.1.0" + "text-table" "^0.2.0" + "v8-compile-cache" "^2.0.3" + +"esm@^3.2.25": + "integrity" "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + "resolved" "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" + "version" "3.2.25" + +"espree@^9.3.1": + "integrity" "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==" + "resolved" "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz" + "version" "9.3.1" + dependencies: + "acorn" "^8.7.0" + "acorn-jsx" "^5.3.1" + "eslint-visitor-keys" "^3.3.0" + +"esprima@^4.0.0", "esprima@^4.0.1": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esquery@^1.4.0": + "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" + "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "estraverse" "^5.1.0" + +"esrecurse@^4.1.0", "esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1", "estraverse@^4.2.0": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0": + "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + "version" "5.2.0" + +"estraverse@^5.2.0": + "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + "version" "5.3.0" + +"estree-walker@^2.0.1": + "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + "version" "2.0.2" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"etag@~1.8.1": + "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "version" "1.8.1" + +"eventemitter3@^4.0.0": + "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + "version" "4.0.7" + +"events@^1.1.0": + "integrity" "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "resolved" "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + "version" "1.1.1" + +"events@^3.0.0": + "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + "version" "3.3.0" + +"events@^3.2.0": + "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + "version" "3.3.0" + +"eventsource@^1.0.7": + "integrity" "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==" + "resolved" "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "original" "^1.0.0" + +"evp_bytestokey@^1.0.0", "evp_bytestokey@^1.0.3": + "integrity" "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" + "resolved" "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "md5.js" "^1.3.4" + "safe-buffer" "^5.1.1" + +"exec-sh@^0.3.2": + "integrity" "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" + "resolved" "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz" + "version" "0.3.6" + +"execa@^1.0.0": + "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==" + "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "cross-spawn" "^6.0.0" + "get-stream" "^4.0.0" + "is-stream" "^1.1.0" + "npm-run-path" "^2.0.0" + "p-finally" "^1.0.0" + "signal-exit" "^3.0.0" + "strip-eof" "^1.0.0" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"exit@^0.1.2": + "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + "version" "0.1.2" + +"expand-brackets@^2.1.4": + "integrity" "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=" + "resolved" "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "debug" "^2.3.3" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "posix-character-classes" "^0.1.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"expect@^24.9.0": + "integrity" "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==" + "resolved" "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/types" "^24.9.0" + "ansi-styles" "^3.2.0" + "jest-get-type" "^24.9.0" + "jest-matcher-utils" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-regex-util" "^24.9.0" + +"express@^4.17.1": + "integrity" "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==" + "resolved" "https://registry.npmjs.org/express/-/express-4.17.1.tgz" + "version" "4.17.1" + dependencies: + "accepts" "~1.3.7" + "array-flatten" "1.1.1" + "body-parser" "1.19.0" + "content-disposition" "0.5.3" + "content-type" "~1.0.4" + "cookie" "0.4.0" + "cookie-signature" "1.0.6" + "debug" "2.6.9" + "depd" "~1.1.2" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "finalhandler" "~1.1.2" + "fresh" "0.5.2" + "merge-descriptors" "1.0.1" + "methods" "~1.1.2" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "path-to-regexp" "0.1.7" + "proxy-addr" "~2.0.5" + "qs" "6.7.0" + "range-parser" "~1.2.1" + "safe-buffer" "5.1.2" + "send" "0.17.1" + "serve-static" "1.14.1" + "setprototypeof" "1.1.1" + "statuses" "~1.5.0" + "type-is" "~1.6.18" + "utils-merge" "1.0.1" + "vary" "~1.1.2" + +"extend-shallow@^2.0.1": + "integrity" "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-extendable" "^0.1.0" + +"extend-shallow@^3.0.0", "extend-shallow@^3.0.2": + "integrity" "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "assign-symbols" "^1.0.0" + "is-extendable" "^1.0.1" + +"extend@^3.0.0", "extend@^3.0.2", "extend@~3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"external-editor@^3.0.3": + "integrity" "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==" + "resolved" "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "chardet" "^0.7.0" + "iconv-lite" "^0.4.24" + "tmp" "^0.0.33" + +"extglob@^2.0.4": + "integrity" "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==" + "resolved" "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "array-unique" "^0.3.2" + "define-property" "^1.0.0" + "expand-brackets" "^2.1.4" + "extend-shallow" "^2.0.1" + "fragment-cache" "^0.2.1" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"extsprintf@^1.2.0", "extsprintf@1.3.0": + "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + +"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-glob@^2.2.6": + "integrity" "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz" + "version" "2.2.7" dependencies: - array-uniq "^1.0.1" + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + "glob-parent" "^3.1.0" + "is-glob" "^4.0.0" + "merge2" "^1.2.3" + "micromatch" "^3.1.10" -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" +"fast-glob@^3.2.9": + "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" + "version" "3.2.11" + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" +"fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": + "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" +"fastest-levenshtein@^1.0.12": + "integrity" "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" + "resolved" "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" + "version" "1.0.12" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" +"fastq@^1.6.0": + "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + "version" "1.13.0" + dependencies: + "reusify" "^1.0.4" + +"faye-websocket@^0.11.3": + "integrity" "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==" + "resolved" "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + "version" "0.11.4" + dependencies: + "websocket-driver" ">=0.5.1" + +"faye-websocket@~0.10.0": + "integrity" "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=" + "resolved" "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz" + "version" "0.10.0" + dependencies: + "websocket-driver" ">=0.5.1" + +"fb-watchman@^2.0.0": + "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "bser" "2.1.1" + +"figgy-pudding@^3.5.1": + "integrity" "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + "resolved" "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" + "version" "3.5.2" + +"figures@^1.7.0": + "integrity" "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=" + "resolved" "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "escape-string-regexp" "^1.0.5" + "object-assign" "^4.1.0" + +"figures@^2.0.0": + "integrity" "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" + "resolved" "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "escape-string-regexp" "^1.0.5" + +"figures@^3.0.0", "figures@^3.1.0": + "integrity" "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==" + "resolved" "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "escape-string-regexp" "^1.0.5" + +"file-entry-cache@^6.0.1": + "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" + "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "flat-cache" "^3.0.4" + +"file-loader@^3.0.1": + "integrity" "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==" + "resolved" "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "loader-utils" "^1.0.2" + "schema-utils" "^1.0.0" + +"file-uri-to-path@1.0.0": + "integrity" "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "resolved" "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + "version" "1.0.0" + +"fill-range@^4.0.0": + "integrity" "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "extend-shallow" "^2.0.1" + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + "to-regex-range" "^2.1.0" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"filter-obj@^1.1.0": + "integrity" "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" + "resolved" "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" + "version" "1.1.0" + +"finalhandler@~1.1.2": + "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "statuses" "~1.5.0" + "unpipe" "~1.0.0" + +"find-cache-dir@^2.1.0": + "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "commondir" "^1.0.1" + "make-dir" "^2.0.0" + "pkg-dir" "^3.0.0" + +"find-cache-dir@^3.3.1": + "integrity" "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" + "version" "3.3.1" + dependencies: + "commondir" "^1.0.1" + "make-dir" "^3.0.2" + "pkg-dir" "^4.1.0" + +"find-up@^1.0.0": + "integrity" "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "path-exists" "^2.0.0" + "pinkie-promise" "^2.0.0" + +"find-up@^2.0.0": + "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "locate-path" "^2.0.0" + +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"find-up@^4.0.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"flat-cache@^3.0.4": + "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "flatted" "^3.1.0" + "rimraf" "^3.0.2" + +"flatted@^3.1.0": + "integrity" "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" + "version" "3.1.1" + +"flush-write-stream@^1.0.0", "flush-write-stream@^1.0.2": + "integrity" "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==" + "resolved" "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "inherits" "^2.0.3" + "readable-stream" "^2.3.6" + +"fn-name@~2.0.1": + "integrity" "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=" + "resolved" "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz" + "version" "2.0.1" + +"follow-redirects@^1.0.0": + "integrity" "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" + "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz" + "version" "1.14.8" + +"for-each@^0.3.3": + "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" + "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "is-callable" "^1.1.3" + +"for-in@^1.0.2": + "integrity" "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "resolved" "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + "version" "1.0.2" + +"foreach@^2.0.5": + "integrity" "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "resolved" "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" + "version" "2.0.5" + +"forever-agent@~0.6.1": + "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "version" "0.6.1" + +"form-data@~2.3.2": + "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + +"forwarded@0.2.0": + "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + "version" "0.2.0" + +"fragment-cache@^0.2.1": + "integrity" "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=" + "resolved" "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "map-cache" "^0.2.2" + +"fresh@0.5.2": + "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "version" "0.5.2" + +"from2@^2.1.0": + "integrity" "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=" + "resolved" "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "inherits" "^2.0.1" + "readable-stream" "^2.0.0" + +"fs-access@^1.0.1": + "integrity" "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=" + "resolved" "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "null-check" "^1.0.0" + +"fs-extra@^7.0.1": + "integrity" "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-mkdirp-stream@^1.0.0": + "integrity" "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=" + "resolved" "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "graceful-fs" "^4.1.11" + "through2" "^2.0.3" + +"fs-monkey@1.0.3": + "integrity" "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + "resolved" "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz" + "version" "1.0.3" + +"fs-readdir-recursive@^1.1.0": + "integrity" "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + "resolved" "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" + "version" "1.1.0" + +"fs-write-stream-atomic@^1.0.8": + "integrity" "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=" + "resolved" "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "graceful-fs" "^4.1.2" + "iferr" "^0.1.5" + "imurmurhash" "^0.1.4" + "readable-stream" "1 || 2" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"functional-red-black-tree@^1.0.1": + "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + "version" "1.0.1" + +"g-status@^2.0.2": + "integrity" "sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==" + "resolved" "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "arrify" "^1.0.1" + "matcher" "^1.0.0" + "simple-git" "^1.85.0" + +"generic-names@^2.0.1": + "integrity" "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==" + "resolved" "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "loader-utils" "^1.1.0" + +"gensync@^1.0.0-beta.1", "gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1": + "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.1" + +"get-own-enumerable-property-symbols@^3.0.0": + "integrity" "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "resolved" "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" + "version" "3.0.2" + +"get-pkg-repo@^1.0.0": + "integrity" "sha1-xztInAbYDMVTbCyFP54FIyBWly0=" + "resolved" "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "hosted-git-info" "^2.1.4" + "meow" "^3.3.0" + "normalize-package-data" "^2.3.0" + "parse-github-repo-url" "^1.3.0" + "through2" "^2.0.0" + +"get-port@^5.0.0": + "integrity" "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" + "resolved" "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" + "version" "5.1.1" + +"get-stdin@^4.0.1": + "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + "version" "4.0.1" + +"get-stdin@^7.0.0": + "integrity" "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" + "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" + "version" "7.0.0" + +"get-stream@^4.0.0", "get-stream@^4.1.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^5.1.0": + "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^6.0.0": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"get-value@^2.0.3", "get-value@^2.0.6": + "integrity" "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + "version" "2.0.6" + +"getpass@^0.1.1": + "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" + "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + "version" "0.1.7" + dependencies: + "assert-plus" "^1.0.0" + +"git-raw-commits@^2.0.8": + "integrity" "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==" + "resolved" "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" + "version" "2.0.10" + dependencies: + "dargs" "^7.0.0" + "lodash" "^4.17.15" + "meow" "^8.0.0" + "split2" "^3.0.0" + "through2" "^4.0.0" + +"git-remote-origin-url@^2.0.0": + "integrity" "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=" + "resolved" "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "gitconfiglocal" "^1.0.0" + "pify" "^2.3.0" + +"git-semver-tags@^4.0.0", "git-semver-tags@^4.1.1": + "integrity" "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==" + "resolved" "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "meow" "^8.0.0" + "semver" "^6.0.0" + +"git-up@^4.0.0": + "integrity" "sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==" + "resolved" "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "is-ssh" "^1.3.0" + "parse-url" "^5.0.0" + +"git-url-parse@^11.1.2": + "integrity" "sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw==" + "resolved" "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.4.tgz" + "version" "11.4.4" + dependencies: + "git-up" "^4.0.0" + +"gitconfiglocal@^1.0.0": + "integrity" "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=" + "resolved" "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "ini" "^1.3.2" + +"github-slugger@^1.2.1": + "integrity" "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==" + "resolved" "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "emoji-regex" ">=6.0.0 <=6.1.1" + +"github-slugger@1.2.0": + "integrity" "sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q==" + "resolved" "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "emoji-regex" ">=6.0.0 <=6.1.1" + +"glob-parent@^3.1.0": + "integrity" "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "is-glob" "^3.1.0" + "path-dirname" "^1.0.0" + +"glob-parent@^5.1.2", "glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@^6.0.1": + "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "is-glob" "^4.0.3" + +"glob-parent@~5.1.0": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-stream@^6.1.0": + "integrity" "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=" + "resolved" "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "extend" "^3.0.0" + "glob" "^7.1.1" + "glob-parent" "^3.1.0" + "is-negated-glob" "^1.0.0" + "ordered-read-streams" "^1.0.0" + "pumpify" "^1.3.5" + "readable-stream" "^2.1.5" + "remove-trailing-separator" "^1.0.1" + "to-absolute-glob" "^2.0.0" + "unique-stream" "^2.0.2" + +"glob-to-regexp@^0.3.0": + "integrity" "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" + "version" "0.3.0" + +"glob-to-regexp@^0.4.1": + "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + "version" "0.4.1" + +"glob@^7.0.0", "glob@^7.0.3", "glob@^7.1.1", "glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.6": + "integrity" "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"global-dirs@^2.0.1": + "integrity" "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==" + "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "ini" "1.3.7" + +"global@^4.3.2": + "integrity" "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==" + "resolved" "https://registry.npmjs.org/global/-/global-4.4.0.tgz" + "version" "4.4.0" + dependencies: + "min-document" "^2.19.0" + "process" "^0.11.10" + +"globals-docs@^2.4.0": + "integrity" "sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==" + "resolved" "https://registry.npmjs.org/globals-docs/-/globals-docs-2.4.1.tgz" + "version" "2.4.1" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globals@^13.6.0": + "integrity" "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz" + "version" "13.9.0" + dependencies: + "type-fest" "^0.20.2" + +"globals@^13.9.0": + "integrity" "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz" + "version" "13.13.0" + dependencies: + "type-fest" "^0.20.2" + +"globby@^11.0.1": + "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + "version" "11.1.0" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.9" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^3.0.0" + +"globby@^6.1.0": + "integrity" "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=" + "resolved" "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "array-union" "^1.0.1" + "glob" "^7.0.3" + "object-assign" "^4.0.1" + "pify" "^2.0.0" + "pinkie-promise" "^2.0.0" + +"globby@^7.1.1": + "integrity" "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=" + "resolved" "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz" + "version" "7.1.1" + dependencies: + "array-union" "^1.0.1" + "dir-glob" "^2.0.0" + "glob" "^7.1.2" + "ignore" "^3.3.5" + "pify" "^3.0.0" + "slash" "^1.0.0" + +"globby@^9.2.0": + "integrity" "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==" + "resolved" "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz" + "version" "9.2.0" dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + "@types/glob" "^7.1.1" + "array-union" "^1.0.2" + "dir-glob" "^2.2.2" + "fast-glob" "^2.2.6" + "glob" "^7.1.3" + "ignore" "^4.0.3" + "pify" "^4.0.1" + "slash" "^2.0.0" + +"got@^9.6.0": + "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" + "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + "version" "9.6.0" dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + "cacheable-request" "^6.0.0" + "decompress-response" "^3.3.0" + "duplexer3" "^0.1.4" + "get-stream" "^4.1.0" + "lowercase-keys" "^1.0.1" + "mimic-response" "^1.0.1" + "p-cancelable" "^1.0.0" + "to-readable-stream" "^1.0.0" + "url-parse-lax" "^3.0.0" + +"graceful-fs@^4.0.0", "graceful-fs@^4.1.11", "graceful-fs@^4.1.15", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6", "graceful-fs@^4.2.9": + "integrity" "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" + "version" "4.2.9" + +"grapesjs-cli@^3.0.0": + "integrity" "sha512-ZTrHTYfCEB8oTn/8kHLlDoqKHorxscSMLjWU6bk2CObMLsE4pQnVqv7HcCz+GIie+z98CHnMU7evFRylCdfzlw==" + "resolved" "https://registry.npmjs.org/grapesjs-cli/-/grapesjs-cli-3.0.0.tgz" + "version" "3.0.0" dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + "@babel/core" "^7.17.5" + "@babel/plugin-transform-runtime" "^7.17.0" + "@babel/preset-env" "^7.16.11" + "@babel/runtime" "^7.17.2" + "babel-loader" "^8.2.3" + "chalk" "^4.1.2" + "core-js" "^3.21.1" + "dts-bundle-generator" "^6.5.0" + "esm" "^3.2.25" + "html-webpack-plugin" "^5.5.0" + "inquirer" "^8.2.0" + "listr" "^0.14.3" + "lodash.template" "^4.5.0" + "rimraf" "^3.0.2" + "spdx-license-list" "^6.4.0" + "ts-loader" "^9.2.6" + "typescript" "^4.5.5" + "webpack" "^5.69.1" + "webpack-cli" "^4.9.2" + "webpack-dev-server" "^4.7.4" + "yargs" "^16.2.0" + +"gray-matter@^4.0.1": + "integrity" "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==" + "resolved" "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "js-yaml" "^3.13.1" + "kind-of" "^6.0.2" + "section-matter" "^1.0.0" + "strip-bom-string" "^1.0.0" + +"growly@^1.3.0": + "integrity" "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + "resolved" "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" + "version" "1.3.0" + +"handle-thing@^2.0.0": + "integrity" "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "resolved" "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + "version" "2.0.1" + +"handlebars@^4.7.6": + "integrity" "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==" + "resolved" "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" + "version" "4.7.7" + dependencies: + "minimist" "^1.2.5" + "neo-async" "^2.6.0" + "source-map" "^0.6.1" + "wordwrap" "^1.0.0" + optionalDependencies: + "uglify-js" "^3.1.4" + +"har-schema@^2.0.0": + "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + "version" "2.0.0" + +"har-validator@~5.1.3": + "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + "version" "5.1.5" + dependencies: + "ajv" "^6.12.3" + "har-schema" "^2.0.0" + +"hard-rejection@^2.1.0": + "integrity" "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" + "resolved" "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" + "version" "2.1.0" + +"has-ansi@^2.0.0": + "integrity" "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + "resolved" "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ansi-regex" "^2.0.0" + +"has-bigints@^1.0.1": + "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + "version" "1.0.1" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-symbols@^1.0.1", "has-symbols@^1.0.2": + "integrity" "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + "version" "1.0.2" + +"has-value@^0.3.1": + "integrity" "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + "version" "0.3.1" + dependencies: + "get-value" "^2.0.3" + "has-values" "^0.1.4" + "isobject" "^2.0.0" + +"has-value@^1.0.0": + "integrity" "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-value" "^2.0.6" + "has-values" "^1.0.0" + "isobject" "^3.0.0" + +"has-values@^0.1.4": + "integrity" "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + "version" "0.1.4" + +"has-values@^1.0.0": + "integrity" "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-number" "^3.0.0" + "kind-of" "^4.0.0" + +"has-yarn@^2.1.0": + "integrity" "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "resolved" "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + "version" "2.1.0" + +"has@^1.0.0", "has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hash-base@^3.0.0": + "integrity" "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==" + "resolved" "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "inherits" "^2.0.4" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"hash-sum@^1.0.2": + "integrity" "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" + "resolved" "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" + "version" "1.0.2" + +"hash-sum@^2.0.0": + "integrity" "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + "resolved" "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" + "version" "2.0.0" + +"hash.js@^1.0.0", "hash.js@^1.0.3": + "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" + "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "inherits" "^2.0.3" + "minimalistic-assert" "^1.0.1" + +"hast-util-is-element@^1.0.0": + "integrity" "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" + "resolved" "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz" + "version" "1.1.0" + +"hast-util-sanitize@^3.0.0": + "integrity" "sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA==" + "resolved" "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "xtend" "^4.0.0" + +"hast-util-to-html@^7.0.0": + "integrity" "sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==" + "resolved" "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz" + "version" "7.1.3" + dependencies: + "ccount" "^1.0.0" + "comma-separated-tokens" "^1.0.0" + "hast-util-is-element" "^1.0.0" + "hast-util-whitespace" "^1.0.0" + "html-void-elements" "^1.0.0" + "property-information" "^5.0.0" + "space-separated-tokens" "^1.0.0" + "stringify-entities" "^3.0.1" + "unist-util-is" "^4.0.0" + "xtend" "^4.0.0" + +"hast-util-whitespace@^1.0.0": + "integrity" "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==" + "resolved" "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz" + "version" "1.0.4" + +"he@^1.1.0", "he@^1.2.0", "he@1.2.x": + "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + "version" "1.2.0" + +"hex-color-regex@^1.1.0": + "integrity" "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + "resolved" "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + "version" "1.1.0" + +"highlight.js@^10.7.2": + "integrity" "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" + "resolved" "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" + "version" "10.7.3" + +"hmac-drbg@^1.0.1": + "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" + "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "hash.js" "^1.0.3" + "minimalistic-assert" "^1.0.0" + "minimalistic-crypto-utils" "^1.0.1" + +"hogan.js@^3.0.2": + "integrity" "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=" + "resolved" "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "mkdirp" "0.3.0" + "nopt" "1.0.10" + +"hosted-git-info@^2.1.4": + "integrity" "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + "version" "2.8.9" + +"hosted-git-info@^4.0.1": + "integrity" "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "lru-cache" "^6.0.0" + +"hpack.js@^2.1.6": + "integrity" "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=" + "resolved" "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + "version" "2.1.6" + dependencies: + "inherits" "^2.0.1" + "obuf" "^1.0.0" + "readable-stream" "^2.0.1" + "wbuf" "^1.1.0" + +"hsl-regex@^1.0.0": + "integrity" "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + "resolved" "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + "version" "1.0.0" + +"hsla-regex@^1.0.0": + "integrity" "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + "resolved" "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + "version" "1.0.0" + +"html-encoding-sniffer@^1.0.2": + "integrity" "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==" + "resolved" "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "whatwg-encoding" "^1.0.1" + +"html-entities@^1.3.1", "html-entities@^1.4.0": + "integrity" "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz" + "version" "1.4.0" + +"html-entities@^2.3.2": + "integrity" "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz" + "version" "2.3.3" + +"html-escaper@^2.0.0": + "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + "version" "2.0.2" + +"html-minifier-terser@^6.0.2": + "integrity" "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==" + "resolved" "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "camel-case" "^4.1.2" + "clean-css" "^5.2.2" + "commander" "^8.3.0" + "he" "^1.2.0" + "param-case" "^3.0.4" + "relateurl" "^0.2.7" + "terser" "^5.10.0" + +"html-minifier@^3.2.3": + "integrity" "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==" + "resolved" "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" + "version" "3.5.21" + dependencies: + "camel-case" "3.0.x" + "clean-css" "4.2.x" + "commander" "2.17.x" + "he" "1.2.x" + "param-case" "2.1.x" + "relateurl" "0.2.x" + "uglify-js" "3.4.x" + +"html-tags@^2.0.0": + "integrity" "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=" + "resolved" "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz" + "version" "2.0.0" + +"html-tags@^3.1.0": + "integrity" "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" + "resolved" "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" + "version" "3.1.0" + +"html-void-elements@^1.0.0": + "integrity" "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" + "resolved" "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz" + "version" "1.0.5" + +"html-webpack-plugin@^5.5.0": + "integrity" "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==" + "resolved" "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "@types/html-minifier-terser" "^6.0.0" + "html-minifier-terser" "^6.0.2" + "lodash" "^4.17.21" + "pretty-error" "^4.0.0" + "tapable" "^2.0.0" + +"htmlparser2@^6.1.0": + "integrity" "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==" + "resolved" "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "domelementtype" "^2.0.1" + "domhandler" "^4.0.0" + "domutils" "^2.5.2" + "entities" "^2.0.0" + +"http-cache-semantics@^4.0.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + +"http-deceiver@^1.2.7": + "integrity" "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "resolved" "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + "version" "1.2.7" + +"http-errors@~1.6.2": + "integrity" "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + "version" "1.6.3" + dependencies: + "depd" "~1.1.2" + "inherits" "2.0.3" + "setprototypeof" "1.1.0" + "statuses" ">= 1.4.0 < 2" + +"http-errors@~1.7.2", "http-errors@1.7.2": + "integrity" "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" + "version" "1.7.2" + dependencies: + "depd" "~1.1.2" + "inherits" "2.0.3" + "setprototypeof" "1.1.1" + "statuses" ">= 1.5.0 < 2" + "toidentifier" "1.0.0" + +"http-parser-js@>=0.5.1": + "integrity" "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + "resolved" "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" + "version" "0.5.3" + +"http-proxy-middleware@^2.0.0": + "integrity" "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==" + "resolved" "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz" + "version" "2.0.3" + dependencies: + "@types/http-proxy" "^1.17.8" + "http-proxy" "^1.18.1" + "is-glob" "^4.0.1" + "is-plain-obj" "^3.0.0" + "micromatch" "^4.0.2" + +"http-proxy-middleware@0.19.1": + "integrity" "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==" + "resolved" "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" + "version" "0.19.1" + dependencies: + "http-proxy" "^1.17.0" + "is-glob" "^4.0.0" + "lodash" "^4.17.11" + "micromatch" "^3.1.10" + +"http-proxy@^1.17.0", "http-proxy@^1.18.1": + "integrity" "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==" + "resolved" "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + "version" "1.18.1" + dependencies: + "eventemitter3" "^4.0.0" + "follow-redirects" "^1.0.0" + "requires-port" "^1.0.0" + +"http-signature@~1.2.0": + "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "assert-plus" "^1.0.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +"https-browserify@^1.0.0": + "integrity" "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + "resolved" "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + "version" "1.0.0" + +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" + +"husky@^2.7.0": + "integrity" "sha512-LIi8zzT6PyFpcYKdvWRCn/8X+6SuG2TgYYMrM6ckEYhlp44UcEduVymZGIZNLiwOUjrEud+78w/AsAiqJA/kRg==" + "resolved" "https://registry.npmjs.org/husky/-/husky-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "cosmiconfig" "^5.2.0" + "execa" "^1.0.0" + "find-up" "^3.0.0" + "get-stdin" "^7.0.0" + "is-ci" "^2.0.0" + "pkg-dir" "^4.1.0" + "please-upgrade-node" "^3.1.1" + "read-pkg" "^5.1.1" + "run-node" "^1.0.0" + "slash" "^3.0.0" + +"iconv-lite@^0.4.24", "iconv-lite@0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +"icss-replace-symbols@^1.1.0": + "integrity" "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + "resolved" "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" + "version" "1.1.0" + +"icss-utils@^4.1.0": + "integrity" "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==" + "resolved" "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "postcss" "^7.0.14" + +"icss-utils@^5.0.0": + "integrity" "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" + "resolved" "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + "version" "5.1.0" + +"ieee754@^1.1.13", "ieee754@^1.1.4": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"iferr@^0.1.5": + "integrity" "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "resolved" "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + "version" "0.1.5" + +"ignore@^3.3.5": + "integrity" "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz" + "version" "3.3.10" + +"ignore@^4.0.3": + "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + "version" "4.0.6" + +"ignore@^5.2.0": + "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + "version" "5.2.0" + +"immediate@^3.2.3": + "integrity" "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" + "version" "3.3.0" + +"import-cwd@^2.0.0": + "integrity" "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=" + "resolved" "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "import-from" "^2.1.0" + +"import-fresh@^2.0.0": + "integrity" "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-path" "^2.0.0" + "resolve-from" "^3.0.0" + +"import-fresh@^3.0.0", "import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-from@^2.1.0": + "integrity" "sha1-M1238qev/VOqpHHUuAId7ja387E=" + "resolved" "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "resolve-from" "^3.0.0" + +"import-lazy@^2.1.0": + "integrity" "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + "version" "2.1.0" + +"import-local@^2.0.0": + "integrity" "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "pkg-dir" "^3.0.0" + "resolve-cwd" "^2.0.0" + +"import-local@^3.0.2": + "integrity" "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"indent-string@^2.1.0": + "integrity" "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "repeating" "^2.0.0" + +"indent-string@^3.0.0": + "integrity" "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" + "version" "3.2.0" + +"indent-string@^4.0.0": + "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + "version" "4.0.0" + +"indexes-of@^1.0.1": + "integrity" "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + "resolved" "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + "version" "1.0.1" + +"infer-owner@^1.0.3": + "integrity" "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved" "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + "version" "1.0.4" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"inherits@2.0.1": + "integrity" "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "version" "2.0.1" + +"inherits@2.0.3": + "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "version" "2.0.3" + +"ini@^1.3.2", "ini@^1.3.5", "ini@~1.3.0": + "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + "version" "1.3.8" + +"ini@1.3.7": + "integrity" "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" + "version" "1.3.7" + +"inquirer@^8.2.0": + "integrity" "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==" + "resolved" "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz" + "version" "8.2.0" + dependencies: + "ansi-escapes" "^4.2.1" + "chalk" "^4.1.1" + "cli-cursor" "^3.1.0" + "cli-width" "^3.0.0" + "external-editor" "^3.0.3" + "figures" "^3.0.0" + "lodash" "^4.17.21" + "mute-stream" "0.0.8" + "ora" "^5.4.1" + "run-async" "^2.4.0" + "rxjs" "^7.2.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + "through" "^2.3.6" + +"internal-ip@^4.3.0": + "integrity" "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==" + "resolved" "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "default-gateway" "^4.2.0" + "ipaddr.js" "^1.9.0" + +"interpret@^1.0.0": + "integrity" "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "resolved" "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + "version" "1.4.0" + +"interpret@^2.2.0": + "integrity" "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + "resolved" "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" + "version" "2.2.0" + +"invariant@^2.2.4": + "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==" + "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "loose-envify" "^1.0.0" + +"ip-regex@^2.1.0": + "integrity" "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + "resolved" "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" + "version" "2.1.0" + +"ip@^1.1.0", "ip@^1.1.5": + "integrity" "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" + "version" "1.1.5" + +"ipaddr.js@^1.9.0": + "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + "version" "1.9.1" + +"ipaddr.js@^2.0.1": + "integrity" "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" + "version" "2.0.1" + +"ipaddr.js@1.9.1": + "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + "version" "1.9.1" + +"is-absolute-url@^2.0.0": + "integrity" "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + "resolved" "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + "version" "2.1.0" + +"is-absolute-url@^3.0.3": + "integrity" "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + "resolved" "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" + "version" "3.0.3" + +"is-absolute@^1.0.0": + "integrity" "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==" + "resolved" "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-relative" "^1.0.0" + "is-windows" "^1.0.1" + +"is-accessor-descriptor@^0.1.6": + "integrity" "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "kind-of" "^3.0.2" + +"is-accessor-descriptor@^1.0.0": + "integrity" "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-alphabetical@^1.0.0": + "integrity" "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "resolved" "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" + "version" "1.0.4" + +"is-alphanumerical@^1.0.0": + "integrity" "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==" + "resolved" "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "is-alphabetical" "^1.0.0" + "is-decimal" "^1.0.0" + +"is-arguments@^1.0.4": + "integrity" "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==" + "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "call-bind" "^1.0.0" + +"is-arrayish@^0.2.1": + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-arrayish@^0.3.1": + "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + "version" "0.3.2" + +"is-bigint@^1.0.1": + "integrity" "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" + "version" "1.0.2" + +"is-binary-path@^1.0.0": + "integrity" "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "binary-extensions" "^1.0.0" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-boolean-object@^1.1.0": + "integrity" "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==" + "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "call-bind" "^1.0.2" + +"is-buffer@^1.1.5": + "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + +"is-buffer@^2.0.0": + "integrity" "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" + "version" "2.0.5" + +"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.3": + "integrity" "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" + "version" "1.2.3" + +"is-ci@^2.0.0": + "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ci-info" "^2.0.0" + +"is-color-stop@^1.0.0": + "integrity" "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=" + "resolved" "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "css-color-names" "^0.0.4" + "hex-color-regex" "^1.1.0" + "hsl-regex" "^1.0.0" + "hsla-regex" "^1.0.0" + "rgb-regex" "^1.0.1" + "rgba-regex" "^1.0.0" + +"is-core-module@^2.2.0": + "integrity" "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "has" "^1.0.3" + +"is-data-descriptor@^0.1.4": + "integrity" "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + "version" "0.1.4" + dependencies: + "kind-of" "^3.0.2" + +"is-data-descriptor@^1.0.0": + "integrity" "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-date-object@^1.0.1": + "integrity" "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" + "version" "1.0.4" + +"is-decimal@^1.0.0": + "integrity" "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + "resolved" "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" + "version" "1.0.4" + +"is-descriptor@^0.1.0": + "integrity" "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "is-accessor-descriptor" "^0.1.6" + "is-data-descriptor" "^0.1.4" + "kind-of" "^5.0.0" + +"is-descriptor@^1.0.0", "is-descriptor@^1.0.2": + "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-accessor-descriptor" "^1.0.0" + "is-data-descriptor" "^1.0.0" + "kind-of" "^6.0.2" + +"is-directory@^0.3.1": + "integrity" "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + "version" "0.3.1" + +"is-docker@^2.0.0", "is-docker@^2.1.1": + "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + "version" "2.2.1" + +"is-extendable@^0.1.0", "is-extendable@^0.1.1": + "integrity" "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + +"is-extendable@^0.1.1": + "integrity" "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + +"is-extendable@^1.0.1": + "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "is-plain-object" "^2.0.4" + +"is-extglob@^2.1.0", "is-extglob@^2.1.1": + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-finite@^1.0.0": + "integrity" "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + "resolved" "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" + "version" "1.1.0" + +"is-fullwidth-code-point@^1.0.0": + "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "number-is-nan" "^1.0.0" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-generator-fn@^2.0.0": + "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + "version" "2.1.0" + +"is-glob@^3.1.0": + "integrity" "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "is-extglob" "^2.1.0" + +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-hexadecimal@^1.0.0": + "integrity" "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "resolved" "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" + "version" "1.0.4" + +"is-installed-globally@^0.3.1": + "integrity" "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==" + "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "global-dirs" "^2.0.1" + "is-path-inside" "^3.0.1" + +"is-interactive@^1.0.0": + "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + "version" "1.0.0" + +"is-negated-glob@^1.0.0": + "integrity" "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + "resolved" "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" + "version" "1.0.0" + +"is-negative-zero@^2.0.1": + "integrity" "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" + "version" "2.0.1" + +"is-npm@^4.0.0": + "integrity" "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" + "version" "4.0.0" + +"is-number-object@^1.0.4": + "integrity" "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" + "version" "1.0.5" + +"is-number@^3.0.0": + "integrity" "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "kind-of" "^3.0.2" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-obj@^1.0.1": + "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + "version" "1.0.1" + +"is-obj@^2.0.0": + "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + "version" "2.0.0" + +"is-observable@^1.1.0": + "integrity" "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==" + "resolved" "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "symbol-observable" "^1.1.0" + +"is-path-cwd@^1.0.0": + "integrity" "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + "resolved" "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" + "version" "1.0.0" + +"is-path-cwd@^2.0.0": + "integrity" "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + "resolved" "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + "version" "2.2.0" + +"is-path-cwd@^2.2.0": + "integrity" "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + "resolved" "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + "version" "2.2.0" + +"is-path-in-cwd@^1.0.0": + "integrity" "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==" + "resolved" "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "is-path-inside" "^1.0.0" + +"is-path-in-cwd@^2.0.0": + "integrity" "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==" + "resolved" "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "is-path-inside" "^2.1.0" + +"is-path-inside@^1.0.0": + "integrity" "sha1-jvW33lBDej/cprToZe96pVy0gDY=" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "path-is-inside" "^1.0.1" + +"is-path-inside@^2.1.0": + "integrity" "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "path-is-inside" "^1.0.2" + +"is-path-inside@^3.0.1": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-path-inside@^3.0.2": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-plain-obj@^1.0.0", "is-plain-obj@^1.1.0": + "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + "version" "1.1.0" + +"is-plain-obj@^2.0.0": + "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + "version" "2.1.0" + +"is-plain-obj@^3.0.0": + "integrity" "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + "version" "3.0.0" + +"is-plain-object@^2.0.3", "is-plain-object@^2.0.4": + "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "isobject" "^3.0.1" + +"is-promise@^2.1.0": + "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" + "version" "2.2.2" + +"is-regex@^1.0.4", "is-regex@^1.1.3": + "integrity" "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "call-bind" "^1.0.2" + "has-symbols" "^1.0.2" + +"is-regexp@^1.0.0": + "integrity" "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + "resolved" "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + "version" "1.0.0" + +"is-relative@^1.0.0": + "integrity" "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==" + "resolved" "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-unc-path" "^1.0.0" + +"is-resolvable@^1.0.0": + "integrity" "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + "resolved" "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" + "version" "1.1.0" + +"is-ssh@^1.3.0": + "integrity" "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==" + "resolved" "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz" + "version" "1.3.3" + dependencies: + "protocols" "^1.1.0" + +"is-stream@^1.1.0": + "integrity" "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "version" "1.1.0" + +"is-stream@^2.0.0": + "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + "version" "2.0.1" + +"is-string@^1.0.5", "is-string@^1.0.6": + "integrity" "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" + "version" "1.0.6" + +"is-symbol@^1.0.2", "is-symbol@^1.0.3": + "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-symbols" "^1.0.2" + +"is-text-path@^1.0.1": + "integrity" "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=" + "resolved" "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "text-extensions" "^1.0.0" + +"is-typedarray@^1.0.0", "is-typedarray@~1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"is-unc-path@^1.0.0": + "integrity" "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==" + "resolved" "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "unc-path-regex" "^0.1.2" + +"is-unicode-supported@^0.1.0": + "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + "version" "0.1.0" + +"is-utf8@^0.2.0", "is-utf8@^0.2.1": + "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "version" "0.2.1" + +"is-valid-glob@^1.0.0": + "integrity" "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" + "resolved" "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" + "version" "1.0.0" + +"is-windows@^1.0.1", "is-windows@^1.0.2": + "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + "version" "1.0.2" + +"is-wsl@^1.1.0": + "integrity" "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + "version" "1.1.0" + +"is-wsl@^2.2.0": + "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "is-docker" "^2.0.0" + +"is-yarn-global@^0.3.0": + "integrity" "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + "resolved" "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + "version" "0.3.0" + +"isarray@^1.0.0", "isarray@~1.0.0", "isarray@1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@^2.0.1": + "integrity" "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + "version" "2.0.5" + +"isarray@0.0.1": + "integrity" "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version" "0.0.1" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isobject@^2.0.0": + "integrity" "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "isarray" "1.0.0" + +"isobject@^3.0.0", "isobject@^3.0.1": + "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "version" "3.0.1" + +"isstream@~0.1.2": + "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + "version" "0.1.2" + +"istanbul-lib-coverage@^2.0.2", "istanbul-lib-coverage@^2.0.5": + "integrity" "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz" + "version" "2.0.5" + +"istanbul-lib-instrument@^3.0.1", "istanbul-lib-instrument@^3.3.0": + "integrity" "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==" + "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + "istanbul-lib-coverage" "^2.0.5" + "semver" "^6.0.0" + +"istanbul-lib-report@^2.0.4": + "integrity" "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==" + "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz" + "version" "2.0.8" + dependencies: + "istanbul-lib-coverage" "^2.0.5" + "make-dir" "^2.1.0" + "supports-color" "^6.1.0" + +"istanbul-lib-source-maps@^3.0.1": + "integrity" "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz" + "version" "3.0.6" + dependencies: + "debug" "^4.1.1" + "istanbul-lib-coverage" "^2.0.5" + "make-dir" "^2.1.0" + "rimraf" "^2.6.3" + "source-map" "^0.6.1" + +"istanbul-reports@^2.2.6": + "integrity" "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==" + "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz" + "version" "2.2.7" + dependencies: + "html-escaper" "^2.0.0" + +"javascript-stringify@^1.6.0": + "integrity" "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=" + "resolved" "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz" + "version" "1.6.0" + +"javascript-stringify@^2.0.1": + "integrity" "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" + "resolved" "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz" + "version" "2.1.0" + +"jest-changed-files@^24.9.0": + "integrity" "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==" + "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/types" "^24.9.0" + "execa" "^1.0.0" + "throat" "^4.0.0" -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" +"jest-cli@^24.9.0": + "integrity" "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==" + "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "chalk" "^2.0.1" + "exit" "^0.1.2" + "import-local" "^2.0.0" + "is-ci" "^2.0.0" + "jest-config" "^24.9.0" + "jest-util" "^24.9.0" + "jest-validate" "^24.9.0" + "prompts" "^2.0.1" + "realpath-native" "^1.1.0" + "yargs" "^13.3.0" + +"jest-config@^24.9.0": + "integrity" "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==" + "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + "babel-jest" "^24.9.0" + "chalk" "^2.0.1" + "glob" "^7.1.1" + "jest-environment-jsdom" "^24.9.0" + "jest-environment-node" "^24.9.0" + "jest-get-type" "^24.9.0" + "jest-jasmine2" "^24.9.0" + "jest-regex-util" "^24.3.0" + "jest-resolve" "^24.9.0" + "jest-util" "^24.9.0" + "jest-validate" "^24.9.0" + "micromatch" "^3.1.10" + "pretty-format" "^24.9.0" + "realpath-native" "^1.1.0" + +"jest-diff@^24.9.0": + "integrity" "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==" + "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "chalk" "^2.0.1" + "diff-sequences" "^24.9.0" + "jest-get-type" "^24.9.0" + "pretty-format" "^24.9.0" + +"jest-docblock@^24.3.0": + "integrity" "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==" + "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "detect-newline" "^2.1.0" + +"jest-each@^24.9.0": + "integrity" "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==" + "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/types" "^24.9.0" + "chalk" "^2.0.1" + "jest-get-type" "^24.9.0" + "jest-util" "^24.9.0" + "pretty-format" "^24.9.0" -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" +"jest-environment-jsdom@^24.9.0": + "integrity" "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==" + "resolved" "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + "jest-mock" "^24.9.0" + "jest-util" "^24.9.0" + "jsdom" "^11.5.1" -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" +"jest-environment-node@^24.9.0": + "integrity" "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==" + "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz" + "version" "24.9.0" dependencies: - lodash "^4.17.14" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + "jest-mock" "^24.9.0" + "jest-util" "^24.9.0" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" +"jest-get-type@^24.9.0": + "integrity" "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz" + "version" "24.9.0" -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" +"jest-haste-map@^24.9.0": + "integrity" "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==" + "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/types" "^24.9.0" + "anymatch" "^2.0.0" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.1.15" + "invariant" "^2.2.4" + "jest-serializer" "^24.9.0" + "jest-util" "^24.9.0" + "jest-worker" "^24.9.0" + "micromatch" "^3.1.10" + "sane" "^4.0.3" + "walker" "^1.0.7" + optionalDependencies: + "fsevents" "^1.2.7" -autocomplete.js@0.36.0: - version "0.36.0" - resolved "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz" +"jest-jasmine2@^24.9.0": + "integrity" "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==" + "resolved" "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "chalk" "^2.0.1" + "co" "^4.6.0" + "expect" "^24.9.0" + "is-generator-fn" "^2.0.0" + "jest-each" "^24.9.0" + "jest-matcher-utils" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-runtime" "^24.9.0" + "jest-snapshot" "^24.9.0" + "jest-util" "^24.9.0" + "pretty-format" "^24.9.0" + "throat" "^4.0.0" + +"jest-leak-detector@^24.9.0": + "integrity" "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==" + "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "jest-get-type" "^24.9.0" + "pretty-format" "^24.9.0" + +"jest-matcher-utils@^24.9.0": + "integrity" "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==" + "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "chalk" "^2.0.1" + "jest-diff" "^24.9.0" + "jest-get-type" "^24.9.0" + "pretty-format" "^24.9.0" + +"jest-message-util@^24.9.0": + "integrity" "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==" + "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz" + "version" "24.9.0" dependencies: - immediate "^3.2.3" + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + "chalk" "^2.0.1" + "micromatch" "^3.1.10" + "slash" "^2.0.0" + "stack-utils" "^1.0.1" -autoprefixer@^9.5.1: - version "9.8.6" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz" +"jest-mock@^24.9.0": + "integrity" "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==" + "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz" + "version" "24.9.0" dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" + "@jest/types" "^24.9.0" -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" +"jest-pnp-resolver@^1.2.1": + "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + "version" "1.2.2" -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" +"jest-regex-util@^24.3.0", "jest-regex-util@^24.9.0": + "integrity" "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz" + "version" "24.9.0" -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz" +"jest-resolve-dependencies@^24.9.0": + "integrity" "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==" + "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@jest/transform" "^24.9.0" "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" + "jest-regex-util" "^24.3.0" + "jest-snapshot" "^24.9.0" -babel-loader@^8.0.4, babel-loader@^8.2.3: - version "8.2.3" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz" +"jest-resolve@*", "jest-resolve@^24.9.0": + "integrity" "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==" + "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz" + "version" "24.9.0" dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" + "@jest/types" "^24.9.0" + "browser-resolve" "^1.11.3" + "chalk" "^2.0.1" + "jest-pnp-resolver" "^1.2.1" + "realpath-native" "^1.1.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" +"jest-runner@^24.9.0": + "integrity" "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==" + "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz" + "version" "24.9.0" dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "chalk" "^2.4.2" + "exit" "^0.1.2" + "graceful-fs" "^4.1.15" + "jest-config" "^24.9.0" + "jest-docblock" "^24.3.0" + "jest-haste-map" "^24.9.0" + "jest-jasmine2" "^24.9.0" + "jest-leak-detector" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-resolve" "^24.9.0" + "jest-runtime" "^24.9.0" + "jest-util" "^24.9.0" + "jest-worker" "^24.6.0" + "source-map-support" "^0.5.6" + "throat" "^4.0.0" + +"jest-runtime@^24.9.0": + "integrity" "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==" + "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + "chalk" "^2.0.1" + "exit" "^0.1.2" + "glob" "^7.1.3" + "graceful-fs" "^4.1.15" + "jest-config" "^24.9.0" + "jest-haste-map" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-mock" "^24.9.0" + "jest-regex-util" "^24.3.0" + "jest-resolve" "^24.9.0" + "jest-snapshot" "^24.9.0" + "jest-util" "^24.9.0" + "jest-validate" "^24.9.0" + "realpath-native" "^1.1.0" + "slash" "^2.0.0" + "strip-bom" "^3.0.0" + "yargs" "^13.3.0" + +"jest-serializer@^24.9.0": + "integrity" "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz" + "version" "24.9.0" + +"jest-snapshot@^24.9.0": + "integrity" "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==" + "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + "chalk" "^2.0.1" + "expect" "^24.9.0" + "jest-diff" "^24.9.0" + "jest-get-type" "^24.9.0" + "jest-matcher-utils" "^24.9.0" + "jest-message-util" "^24.9.0" + "jest-resolve" "^24.9.0" + "mkdirp" "^0.5.1" + "natural-compare" "^1.4.0" + "pretty-format" "^24.9.0" + "semver" "^6.2.0" + +"jest-util@^24.9.0": + "integrity" "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "callsites" "^3.0.0" + "chalk" "^2.0.1" + "graceful-fs" "^4.1.15" + "is-ci" "^2.0.0" + "mkdirp" "^0.5.1" + "slash" "^2.0.0" + "source-map" "^0.6.0" + +"jest-validate@^24.9.0": + "integrity" "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" + "@jest/types" "^24.9.0" + "camelcase" "^5.3.1" + "chalk" "^2.0.1" + "jest-get-type" "^24.9.0" + "leven" "^3.1.0" + "pretty-format" "^24.9.0" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" +"jest-watcher@^24.9.0": + "integrity" "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==" + "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + "ansi-escapes" "^3.0.0" + "chalk" "^2.0.1" + "jest-util" "^24.9.0" + "string-length" "^2.0.0" -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz" +"jest-worker@^24.6.0", "jest-worker@^24.9.0": + "integrity" "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz" + "version" "24.9.0" dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -babelify@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz" + "merge-stream" "^2.0.0" + "supports-color" "^6.1.0" -backbone-undo@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/backbone-undo/-/backbone-undo-0.2.5.tgz" +"jest-worker@^27.4.5": + "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + "version" "27.5.1" dependencies: - backbone "1.0.0 - 1.2.1" - underscore "1.4.4 - 1.8.3" - -"backbone@1.0.0 - 1.2.1", backbone@1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz" - dependencies: - underscore ">=1.8.3" - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz" + "@types/node" "*" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"jest@^24.9.0": + "integrity" "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==" + "resolved" "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "import-local" "^2.0.0" + "jest-cli" "^24.9.0" + +"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.10.0", "js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"jsbn@~0.1.0": + "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "version" "0.1.1" + +"jsdom@^11.5.1": + "integrity" "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==" + "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz" + "version" "11.12.0" + dependencies: + "abab" "^2.0.0" + "acorn" "^5.5.3" + "acorn-globals" "^4.1.0" + "array-equal" "^1.0.0" + "cssom" ">= 0.3.2 < 0.4.0" + "cssstyle" "^1.0.0" + "data-urls" "^1.0.0" + "domexception" "^1.0.1" + "escodegen" "^1.9.1" + "html-encoding-sniffer" "^1.0.2" + "left-pad" "^1.3.0" + "nwsapi" "^2.0.7" + "parse5" "4.0.0" + "pn" "^1.1.0" + "request" "^2.87.0" + "request-promise-native" "^1.0.5" + "sax" "^1.2.4" + "symbol-tree" "^3.2.2" + "tough-cookie" "^2.3.4" + "w3c-hr-time" "^1.0.1" + "webidl-conversions" "^4.0.2" + "whatwg-encoding" "^1.0.3" + "whatwg-mimetype" "^2.1.0" + "whatwg-url" "^6.4.1" + "ws" "^5.2.0" + "xml-name-validator" "^3.0.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-buffer@3.0.0": + "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + "version" "3.0.0" + +"json-parse-better-errors@^1.0.1", "json-parse-better-errors@^1.0.2": + "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + "version" "1.0.2" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-schema-traverse@^1.0.0": + "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + "version" "1.0.0" + +"json-schema@0.2.3": + "integrity" "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + "version" "0.2.3" + +"json-stable-stringify-without-jsonify@^1.0.1": + "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + "version" "1.0.1" + +"json-stringify-safe@^5.0.1", "json-stringify-safe@~5.0.1": + "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + "version" "5.0.1" + +"json3@^3.3.3": + "integrity" "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + "resolved" "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz" + "version" "3.3.3" + +"json5@^0.5.0": + "integrity" "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "resolved" "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + "version" "0.5.1" + +"json5@^1.0.1": + "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "minimist" "^1.2.0" + +"json5@^2.1.2": + "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "minimist" "^1.2.5" + +"jsonfile@^4.0.0": + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - -base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.1.1, bluebird@^3.5.5, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz" - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - -browser-resolve@^1.11.3, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz" - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1: - version "4.19.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz" - dependencies: - caniuse-lite "^1.0.30001312" - electron-to-chromium "^1.4.71" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - dependencies: - node-int64 "^0.4.0" - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - -bytes@1: - version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" - -cac@^6.5.6: - version "6.7.3" - resolved "https://registry.npmjs.org/cac/-/cac-6.7.3.tgz" - -cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz" - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^2.1.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^1.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cached-path-relative@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" - -camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" +"jsonparse@^1.2.0": + "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "resolved" "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + "version" "1.3.1" -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" +"JSONStream@^1.0.3", "JSONStream@^1.0.4": + "integrity" "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==" + "resolved" "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + "version" "1.3.5" dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001312: - version "1.0.30001312" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz" + "jsonparse" "^1.2.0" + "through" ">=2.2.7 <3" -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" +"jsprim@^1.2.2": + "integrity" "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" + "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + "version" "1.4.1" dependencies: - rsvp "^4.8.4" + "assert-plus" "1.0.0" + "extsprintf" "1.3.0" + "json-schema" "0.2.3" + "verror" "1.10.0" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" +"just-extend@^4.0.2": + "integrity" "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" + "resolved" "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz" + "version" "4.2.1" -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" +"keyv@^3.0.0": + "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + "version" "3.1.0" dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" + "json-buffer" "3.0.0" + +"killable@^1.0.1": + "integrity" "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + "resolved" "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" + "version" "1.0.1" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" +"kind-of@^3.0.2", "kind-of@^3.0.3": + "integrity" "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" + "is-buffer" "^1.1.5" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" +"kind-of@^3.2.0": + "integrity" "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + "is-buffer" "^1.1.5" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" +"kind-of@^4.0.0": + "integrity" "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + "version" "4.0.0" dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + "is-buffer" "^1.1.5" -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz" +"kind-of@^5.0.0": + "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + "version" "5.1.0" -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^2.0.3, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" +"kind-of@^6.0.0", "kind-of@^6.0.2", "kind-of@^6.0.3": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" +"konan@^2.1.1": + "integrity" "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==" + "resolved" "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "@babel/parser" "^7.10.5" + "@babel/traverse" "^7.10.5" -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" +"last-call-webpack-plugin@^3.0.0": + "integrity" "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==" + "resolved" "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "lodash" "^4.17.5" + "webpack-sources" "^1.1.0" + +"latest-version@^5.0.0": + "integrity" "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==" + "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "package-json" "^6.3.0" + +"lazystream@^1.0.0": + "integrity" "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=" + "resolved" "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "readable-stream" "^2.0.5" + +"lead@^1.0.0": + "integrity" "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=" + "resolved" "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "flush-write-stream" "^1.0.2" + +"left-pad@^1.3.0": + "integrity" "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + "resolved" "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz" + "version" "1.3.0" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@^0.4.1": + "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "prelude-ls" "^1.2.1" + "type-check" "~0.4.0" + +"levn@~0.3.0": + "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + +"lines-and-columns@^1.1.6": + "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + "version" "1.1.6" + +"linkify-it@^2.0.0": + "integrity" "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==" + "resolved" "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "uc.micro" "^1.0.1" + +"lint-staged@^8.2.1": + "integrity" "sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A==" + "resolved" "https://registry.npmjs.org/lint-staged/-/lint-staged-8.2.1.tgz" + "version" "8.2.1" + dependencies: + "chalk" "^2.3.1" + "commander" "^2.14.1" + "cosmiconfig" "^5.2.0" + "debug" "^3.1.0" + "dedent" "^0.7.0" + "del" "^3.0.0" + "execa" "^1.0.0" + "g-status" "^2.0.2" + "is-glob" "^4.0.0" + "is-windows" "^1.0.2" + "listr" "^0.14.2" + "listr-update-renderer" "^0.5.0" + "lodash" "^4.17.11" + "log-symbols" "^2.2.0" + "micromatch" "^3.1.8" + "npm-which" "^3.0.1" + "p-map" "^1.1.1" + "path-is-inside" "^1.0.2" + "pify" "^3.0.0" + "please-upgrade-node" "^3.0.2" + "staged-git-files" "1.1.2" + "string-argv" "^0.0.2" + "stringify-object" "^3.2.2" + "yup" "^0.27.0" + +"listr-silent-renderer@^1.1.1": + "integrity" "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=" + "resolved" "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz" + "version" "1.1.1" + +"listr-update-renderer@^0.5.0": + "integrity" "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==" + "resolved" "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz" + "version" "0.5.0" + dependencies: + "chalk" "^1.1.3" + "cli-truncate" "^0.2.1" + "elegant-spinner" "^1.0.1" + "figures" "^1.7.0" + "indent-string" "^3.0.0" + "log-symbols" "^1.0.2" + "log-update" "^2.3.0" + "strip-ansi" "^3.0.1" + +"listr-verbose-renderer@^0.5.0": + "integrity" "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==" + "resolved" "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz" + "version" "0.5.0" + dependencies: + "chalk" "^2.4.1" + "cli-cursor" "^2.1.0" + "date-fns" "^1.27.2" + "figures" "^2.0.0" + +"listr@^0.14.2", "listr@^0.14.3": + "integrity" "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==" + "resolved" "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz" + "version" "0.14.3" + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + "is-observable" "^1.1.0" + "is-promise" "^2.1.0" + "is-stream" "^1.1.0" + "listr-silent-renderer" "^1.1.1" + "listr-update-renderer" "^0.5.0" + "listr-verbose-renderer" "^0.5.0" + "p-map" "^2.0.0" + "rxjs" "^6.3.3" + +"livereload-js@^2.3.0": + "integrity" "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" + "resolved" "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz" + "version" "2.4.0" + +"load-json-file@^1.0.0": + "integrity" "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=" + "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "graceful-fs" "^4.1.2" + "parse-json" "^2.2.0" + "pify" "^2.0.0" + "pinkie-promise" "^2.0.0" + "strip-bom" "^2.0.0" + +"load-json-file@^4.0.0": + "integrity" "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=" + "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "graceful-fs" "^4.1.2" + "parse-json" "^4.0.0" + "pify" "^3.0.0" + "strip-bom" "^3.0.0" + +"load-script@^1.0.0": + "integrity" "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" + "resolved" "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz" + "version" "1.0.0" + +"loader-runner@^2.4.0": + "integrity" "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + "resolved" "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" + "version" "2.4.0" + +"loader-runner@^4.2.0": + "integrity" "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" + "resolved" "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" + "version" "4.2.0" + +"loader-utils@^0.2.16": + "integrity" "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" + "version" "0.2.17" + dependencies: + "big.js" "^3.1.3" + "emojis-list" "^2.0.0" + "json5" "^0.5.0" + "object-assign" "^4.0.1" + +"loader-utils@^1.0.2", "loader-utils@^1.1.0", "loader-utils@^1.2.3", "loader-utils@^1.4.0": + "integrity" "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==" + "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "big.js" "^5.2.2" + "emojis-list" "^3.0.0" + "json5" "^1.0.1" + +"locate-path@^2.0.0": + "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "p-locate" "^2.0.0" + "path-exists" "^3.0.0" + +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash._reinterpolate@^3.0.0": + "integrity" "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + "resolved" "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + "version" "3.0.0" + +"lodash.camelcase@^4.3.0": + "integrity" "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "resolved" "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + "version" "4.3.0" + +"lodash.clonedeep@^4.5.0": + "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + "version" "4.5.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.ismatch@^4.4.0": + "integrity" "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" + "resolved" "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz" + "version" "4.4.0" + +"lodash.kebabcase@^4.1.1": + "integrity" "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" + "resolved" "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + "version" "4.1.1" + +"lodash.memoize@^4.1.2": + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + "version" "4.1.2" + +"lodash.merge@^4.6.2": + "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + "version" "4.6.2" + +"lodash.sortby@^4.7.0": + "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "resolved" "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + "version" "4.7.0" + +"lodash.template@^4.5.0": + "integrity" "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==" + "resolved" "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + "version" "4.5.0" + dependencies: + "lodash._reinterpolate" "^3.0.0" + "lodash.templatesettings" "^4.0.0" + +"lodash.templatesettings@^4.0.0": + "integrity" "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==" + "resolved" "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "lodash._reinterpolate" "^3.0.0" + +"lodash.uniq@^4.5.0": + "integrity" "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "resolved" "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + "version" "4.5.0" + +"lodash@^4.17.10", "lodash@^4.17.11", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.19", "lodash@^4.17.20", "lodash@^4.17.21", "lodash@^4.17.3", "lodash@^4.17.5": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"log-symbols@^1.0.2": + "integrity" "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "chalk" "^1.0.0" + +"log-symbols@^2.2.0": + "integrity" "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "chalk" "^2.0.1" + +"log-symbols@^4.1.0": + "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "chalk" "^4.1.0" + "is-unicode-supported" "^0.1.0" + +"log-update@^2.3.0": + "integrity" "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=" + "resolved" "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ansi-escapes" "^3.0.0" + "cli-cursor" "^2.0.0" + "wrap-ansi" "^3.0.1" + +"loglevel@^1.6.8": + "integrity" "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + "resolved" "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" + "version" "1.7.1" + +"lolex@^4.2.0": + "integrity" "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==" + "resolved" "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz" + "version" "4.2.0" + +"lolex@^5.0.1": + "integrity" "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==" + "resolved" "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "@sinonjs/commons" "^1.7.0" -ci-info@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" +"longest-streak@^2.0.0": + "integrity" "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + "resolved" "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz" + "version" "2.0.4" -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" +"loose-envify@^1.0.0": + "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" + "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + "version" "1.4.0" dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + "js-tokens" "^3.0.0 || ^4.0.0" -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" +"loud-rejection@^1.0.0": + "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" + "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + "version" "1.6.0" dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" + "currently-unhandled" "^0.4.1" + "signal-exit" "^3.0.0" -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" - dependencies: - source-map "~0.6.0" +"lower-case@^1.1.1": + "integrity" "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + "version" "1.1.4" -clean-css@^5.2.2: - version "5.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz" +"lower-case@^2.0.2": + "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==" + "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + "version" "2.0.2" dependencies: - source-map "~0.6.0" + "tslib" "^2.0.3" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" +"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": + "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + "version" "1.0.1" -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" +"lowercase-keys@^2.0.0": + "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + "version" "2.0.0" -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" +"lru-cache@^4.1.2": + "integrity" "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + "version" "4.1.5" dependencies: - restore-cursor "^2.0.0" + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" +"lru-cache@^5.1.1": + "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + "version" "5.1.1" dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz" + "yallist" "^3.0.2" -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz" +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" + "yallist" "^4.0.0" -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" +"magic-string@^0.25.7": + "integrity" "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==" + "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" + "version" "0.25.7" dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + "sourcemap-codec" "^1.4.4" + +"make-dir@^2.0.0", "make-dir@^2.1.0": + "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + "version" "2.1.0" dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + "pify" "^4.0.1" + "semver" "^5.6.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" +"make-dir@^3.0.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" + "semver" "^6.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" +"make-dir@^3.0.2": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" +"make-dir@^3.1.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" + "semver" "^6.0.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" +"makeerror@1.0.12": + "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + "version" "1.0.12" dependencies: - mimic-response "^1.0.0" + "tmpl" "1.0.5" -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" +"map-cache@^0.2.0", "map-cache@^0.2.2": + "integrity" "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "resolved" "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + "version" "0.2.2" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" +"map-obj@^1.0.0", "map-obj@^1.0.1": + "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + "version" "1.0.1" -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" +"map-obj@^4.0.0": + "integrity" "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz" + "version" "4.2.1" -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" +"map-visit@^1.0.0": + "integrity" "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=" + "resolved" "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + "version" "1.0.0" dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" + "object-visit" "^1.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" +"markdown-it-anchor@^5.0.2": + "integrity" "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" + "resolved" "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz" + "version" "5.3.0" -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" +"markdown-it-chain@^1.3.0": + "integrity" "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==" + "resolved" "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz" + "version" "1.3.0" dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" + "webpack-chain" "^4.9.0" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" +"markdown-it-container@^2.0.0": + "integrity" "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=" + "resolved" "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz" + "version" "2.0.0" -codemirror-formatting@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/codemirror-formatting/-/codemirror-formatting-1.0.0.tgz" +"markdown-it-emoji@^1.4.0": + "integrity" "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=" + "resolved" "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz" + "version" "1.4.0" -codemirror@^5.63.0: - version "5.63.0" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.63.0.tgz" +"markdown-it-table-of-contents@^0.4.0": + "integrity" "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==" + "resolved" "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz" + "version" "0.4.4" -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" +"markdown-it@*", "markdown-it@^8.4.1", "markdown-it@>=5.0.0": + "integrity" "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==" + "resolved" "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz" + "version" "8.4.2" dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" + "argparse" "^1.0.7" + "entities" "~1.1.1" + "linkify-it" "^2.0.0" + "mdurl" "^1.0.1" + "uc.micro" "^1.0.5" -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" +"markdown-table@^2.0.0": + "integrity" "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==" + "resolved" "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "repeat-string" "^1.0.0" + +"matcher@^1.0.0": + "integrity" "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==" + "resolved" "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz" + "version" "1.1.1" dependencies: - color-name "1.1.3" + "escape-string-regexp" "^1.0.4" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" +"md5.js@^1.3.4": + "integrity" "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==" + "resolved" "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + "version" "1.3.5" dependencies: - color-name "~1.1.4" + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" -color-name@1.1.3, color-name@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" +"mdast-util-definitions@^4.0.0": + "integrity" "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==" + "resolved" "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "unist-util-visit" "^2.0.0" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" +"mdast-util-find-and-replace@^1.1.0", "mdast-util-find-and-replace@^1.1.1": + "integrity" "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==" + "resolved" "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "escape-string-regexp" "^4.0.0" + "unist-util-is" "^4.0.0" + "unist-util-visit-parents" "^3.0.0" + +"mdast-util-from-markdown@^0.8.0": + "integrity" "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==" + "resolved" "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz" + "version" "0.8.5" + dependencies: + "@types/mdast" "^3.0.0" + "mdast-util-to-string" "^2.0.0" + "micromark" "~2.11.0" + "parse-entities" "^2.0.0" + "unist-util-stringify-position" "^2.0.0" -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz" +"mdast-util-gfm-autolink-literal@^0.1.0": + "integrity" "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==" + "resolved" "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz" + "version" "0.1.3" dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" + "ccount" "^1.0.0" + "mdast-util-find-and-replace" "^1.1.0" + "micromark" "^2.11.3" -color@^3.0.0: - version "3.1.3" - resolved "https://registry.npmjs.org/color/-/color-3.1.3.tgz" +"mdast-util-gfm-strikethrough@^0.2.0": + "integrity" "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==" + "resolved" "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz" + "version" "0.2.3" dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" + "mdast-util-to-markdown" "^0.6.0" -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" +"mdast-util-gfm-table@^0.1.0": + "integrity" "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==" + "resolved" "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "markdown-table" "^2.0.0" + "mdast-util-to-markdown" "~0.6.0" -colorette@^2.0.10, colorette@^2.0.14: - version "2.0.16" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" +"mdast-util-gfm-task-list-item@^0.1.0": + "integrity" "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==" + "resolved" "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "mdast-util-to-markdown" "~0.6.0" -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" +"mdast-util-gfm@^0.1.0": + "integrity" "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==" + "resolved" "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz" + "version" "0.1.2" dependencies: - delayed-stream "~1.0.0" + "mdast-util-gfm-autolink-literal" "^0.1.0" + "mdast-util-gfm-strikethrough" "^0.2.0" + "mdast-util-gfm-table" "^0.1.0" + "mdast-util-gfm-task-list-item" "^0.1.0" + "mdast-util-to-markdown" "^0.6.1" -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz" +"mdast-util-inject@^1.1.0": + "integrity" "sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU=" + "resolved" "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "mdast-util-to-string" "^1.0.0" -commander@2.17.x: - version "2.17.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" +"mdast-util-to-hast@^10.0.0": + "integrity" "sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==" + "resolved" "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz" + "version" "10.2.0" + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + "mdast-util-definitions" "^4.0.0" + "mdurl" "^1.0.0" + "unist-builder" "^2.0.0" + "unist-util-generated" "^1.0.0" + "unist-util-position" "^3.0.0" + "unist-util-visit" "^2.0.0" + +"mdast-util-to-markdown@^0.6.0", "mdast-util-to-markdown@^0.6.1", "mdast-util-to-markdown@~0.6.0": + "integrity" "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==" + "resolved" "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz" + "version" "0.6.5" + dependencies: + "@types/unist" "^2.0.0" + "longest-streak" "^2.0.0" + "mdast-util-to-string" "^2.0.0" + "parse-entities" "^2.0.0" + "repeat-string" "^1.0.0" + "zwitch" "^1.0.0" + +"mdast-util-to-string@^1.0.0": + "integrity" "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "resolved" "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz" + "version" "1.1.0" + +"mdast-util-to-string@^2.0.0": + "integrity" "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + "resolved" "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz" + "version" "2.0.0" + +"mdast-util-toc@^5.0.0": + "integrity" "sha512-csimbRIVkiqc+PpFeKDGQ/Ck2N4f9FYH3zzBMMJzcxoKL8m+cM0n94xXm0I9eaxHnKdY9n145SGTdyJC7i273g==" + "resolved" "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "@types/mdast" "^3.0.3" + "@types/unist" "^2.0.3" + "extend" "^3.0.2" + "github-slugger" "^1.2.1" + "mdast-util-to-string" "^2.0.0" + "unist-util-is" "^4.0.0" + "unist-util-visit" "^2.0.0" + +"mdn-data@2.0.14": + "integrity" "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "resolved" "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + "version" "2.0.14" + +"mdn-data@2.0.4": + "integrity" "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + "resolved" "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + "version" "2.0.4" + +"mdurl@^1.0.0", "mdurl@^1.0.1": + "integrity" "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + "resolved" "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" + "version" "1.0.1" + +"media-typer@0.3.0": + "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + "version" "0.3.0" + +"memfs@^3.4.1": + "integrity" "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==" + "resolved" "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz" + "version" "3.4.1" + dependencies: + "fs-monkey" "1.0.3" + +"memory-fs@^0.4.1": + "integrity" "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=" + "resolved" "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "errno" "^0.1.3" + "readable-stream" "^2.0.1" + +"memory-fs@^0.5.0": + "integrity" "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==" + "resolved" "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + "version" "0.5.0" + dependencies: + "errno" "^0.1.3" + "readable-stream" "^2.0.1" + +"memorystream@^0.3.1": + "integrity" "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + "resolved" "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" + "version" "0.3.1" + +"meow@^3.3.0": + "integrity" "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=" + "resolved" "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + "version" "3.7.0" + dependencies: + "camelcase-keys" "^2.0.0" + "decamelize" "^1.1.2" + "loud-rejection" "^1.0.0" + "map-obj" "^1.0.1" + "minimist" "^1.1.3" + "normalize-package-data" "^2.3.4" + "object-assign" "^4.0.1" + "read-pkg-up" "^1.0.1" + "redent" "^1.0.0" + "trim-newlines" "^1.0.0" + +"meow@^8.0.0": + "integrity" "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==" + "resolved" "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" + "version" "8.1.2" + dependencies: + "@types/minimist" "^1.2.0" + "camelcase-keys" "^6.2.2" + "decamelize-keys" "^1.1.0" + "hard-rejection" "^2.1.0" + "minimist-options" "4.1.0" + "normalize-package-data" "^3.0.0" + "read-pkg-up" "^7.0.1" + "redent" "^3.0.0" + "trim-newlines" "^3.0.0" + "type-fest" "^0.18.0" + "yargs-parser" "^20.2.3" + +"merge-descriptors@1.0.1": + "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + "version" "1.0.1" + +"merge-source-map@^1.1.0": + "integrity" "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==" + "resolved" "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "source-map" "^0.6.1" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge2@^1.2.3", "merge2@^1.3.0", "merge2@^1.4.1": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"methods@~1.1.2": + "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + "version" "1.1.2" + +"micromark-extension-gfm-autolink-literal@~0.5.0": + "integrity" "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz" + "version" "0.5.7" + dependencies: + "micromark" "~2.11.3" + +"micromark-extension-gfm-strikethrough@~0.6.5": + "integrity" "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz" + "version" "0.6.5" + dependencies: + "micromark" "~2.11.0" + +"micromark-extension-gfm-table@~0.4.0": + "integrity" "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz" + "version" "0.4.3" + dependencies: + "micromark" "~2.11.0" + +"micromark-extension-gfm-tagfilter@~0.3.0": + "integrity" "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz" + "version" "0.3.0" + +"micromark-extension-gfm-task-list-item@~0.3.0": + "integrity" "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "micromark" "~2.11.0" + +"micromark-extension-gfm@^0.3.0": + "integrity" "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==" + "resolved" "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "micromark" "~2.11.0" + "micromark-extension-gfm-autolink-literal" "~0.5.0" + "micromark-extension-gfm-strikethrough" "~0.6.5" + "micromark-extension-gfm-table" "~0.4.0" + "micromark-extension-gfm-tagfilter" "~0.3.0" + "micromark-extension-gfm-task-list-item" "~0.3.0" + +"micromark@^2.11.3", "micromark@~2.11.0", "micromark@~2.11.3": + "integrity" "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==" + "resolved" "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz" + "version" "2.11.4" + dependencies: + "debug" "^4.0.0" + "parse-entities" "^2.0.0" + +"micromatch@^3.1.10", "micromatch@^3.1.4", "micromatch@^3.1.5", "micromatch@^3.1.8": + "integrity" "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + "version" "3.1.10" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "braces" "^2.3.1" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "extglob" "^2.0.4" + "fragment-cache" "^0.2.1" + "kind-of" "^6.0.2" + "nanomatch" "^1.2.9" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.2" + +"micromatch@^4.0.0": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"micromatch@^4.0.2": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"micromatch@^4.0.4": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"miller-rabin@^4.0.0": + "integrity" "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" + "resolved" "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "bn.js" "^4.0.0" + "brorand" "^1.0.1" + +"mime-db@>= 1.43.0 < 2", "mime-db@1.48.0": + "integrity" "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" + "version" "1.48.0" + +"mime-types@^2.1.12", "mime-types@^2.1.27", "mime-types@^2.1.31", "mime-types@~2.1.17", "mime-types@~2.1.19", "mime-types@~2.1.24": + "integrity" "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" + "version" "2.1.31" + dependencies: + "mime-db" "1.48.0" + +"mime@^2.0.3", "mime@^2.2.0", "mime@^2.4.4": + "integrity" "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz" + "version" "2.5.2" + +"mime@1.6.0": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mimic-fn@^1.0.0": + "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + "version" "1.2.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-response@^1.0.0", "mimic-response@^1.0.1": + "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + "version" "1.0.1" + +"min-document@^2.19.0": + "integrity" "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" + "resolved" "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + "version" "2.19.0" + dependencies: + "dom-walk" "^0.1.0" + +"min-indent@^1.0.0": + "integrity" "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "resolved" "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + "version" "1.0.1" + +"mini-css-extract-plugin@0.6.0": + "integrity" "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==" + "resolved" "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "loader-utils" "^1.1.0" + "normalize-url" "^2.0.1" + "schema-utils" "^1.0.0" + "webpack-sources" "^1.1.0" + +"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": + "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + "version" "1.0.1" + +"minimalistic-crypto-utils@^1.0.1": + "integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "version" "1.0.1" + +"minimatch@^3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist-options@4.1.0": + "integrity" "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==" + "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "arrify" "^1.0.1" + "is-plain-obj" "^1.1.0" + "kind-of" "^6.0.3" + +"minimist@^1.1.0", "minimist@^1.1.1", "minimist@^1.1.3", "minimist@^1.2.0", "minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"mississippi@^3.0.0": + "integrity" "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==" + "resolved" "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "concat-stream" "^1.5.0" + "duplexify" "^3.4.2" + "end-of-stream" "^1.1.0" + "flush-write-stream" "^1.0.0" + "from2" "^2.1.0" + "parallel-transform" "^1.1.0" + "pump" "^3.0.0" + "pumpify" "^1.3.3" + "stream-each" "^1.1.0" + "through2" "^2.0.0" + +"mixin-deep@^1.2.0": + "integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==" + "resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "for-in" "^1.0.2" + "is-extendable" "^1.0.1" + +"mkdirp@^0.5.1", "mkdirp@^0.5.3", "mkdirp@^0.5.5", "mkdirp@~0.5.1": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"mkdirp@~1.0.4": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"mkdirp@0.3.0": + "integrity" "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" + "version" "0.3.0" + +"modify-values@^1.0.0": + "integrity" "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==" + "resolved" "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz" + "version" "1.0.1" + +"module-deps-sortable@^5.0.3": + "integrity" "sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw==" + "resolved" "https://registry.npmjs.org/module-deps-sortable/-/module-deps-sortable-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "browser-resolve" "^1.7.0" + "cached-path-relative" "^1.0.0" + "concat-stream" "~1.5.0" + "defined" "^1.0.0" + "detective" "^5.2.0" + "duplexer2" "^0.1.2" + "inherits" "^2.0.1" + "JSONStream" "^1.0.3" + "konan" "^2.1.1" + "readable-stream" "^2.0.2" + "resolve" "^1.1.3" + "standard-version" "^9.0.0" + "stream-combiner2" "^1.1.1" + "subarg" "^1.0.0" + "through2" "^2.0.0" + "xtend" "^4.0.0" + +"move-concurrently@^1.0.1": + "integrity" "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=" + "resolved" "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "aproba" "^1.1.1" + "copy-concurrently" "^1.0.0" + "fs-write-stream-atomic" "^1.0.8" + "mkdirp" "^0.5.1" + "rimraf" "^2.5.4" + "run-queue" "^1.0.3" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.1": + "integrity" "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + "version" "2.1.1" + +"multicast-dns-service-types@^1.1.0": + "integrity" "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + "resolved" "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" + "version" "1.1.0" + +"multicast-dns@^6.0.1": + "integrity" "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==" + "resolved" "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" + "version" "6.2.3" + dependencies: + "dns-packet" "^1.3.1" + "thunky" "^1.0.2" + +"mute-stream@0.0.8": + "integrity" "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + "version" "0.0.8" + +"nanoid@^3.1.23": + "integrity" "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" + "version" "3.2.0" + +"nanomatch@^1.2.9": + "integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==" + "resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + "version" "1.2.13" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "fragment-cache" "^0.2.1" + "is-windows" "^1.0.2" + "kind-of" "^6.0.2" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"natural-compare@^1.4.0": + "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"negotiator@0.6.2": + "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + "version" "0.6.2" + +"neo-async@^2.5.0", "neo-async@^2.6.0", "neo-async@^2.6.1", "neo-async@^2.6.2": + "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + "version" "2.6.2" + +"nice-try@^1.0.4": + "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + "version" "1.0.5" + +"nise@^1.5.2": + "integrity" "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==" + "resolved" "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz" + "version" "1.5.3" + dependencies: + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/text-encoding" "^0.7.1" + "just-extend" "^4.0.2" + "lolex" "^5.0.1" + "path-to-regexp" "^1.7.0" + +"no-case@^2.2.0": + "integrity" "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==" + "resolved" "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + "version" "2.3.2" + dependencies: + "lower-case" "^1.1.1" + +"no-case@^3.0.4": + "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==" + "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "lower-case" "^2.0.2" + "tslib" "^2.0.3" + +"node-forge@^0.10.0": + "integrity" "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" + "version" "0.10.0" + +"node-forge@^1.2.0": + "integrity" "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz" + "version" "1.2.1" + +"node-int64@^0.4.0": + "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-libs-browser@^2.2.1": + "integrity" "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==" + "resolved" "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "assert" "^1.1.1" + "browserify-zlib" "^0.2.0" + "buffer" "^4.3.0" + "console-browserify" "^1.1.0" + "constants-browserify" "^1.0.0" + "crypto-browserify" "^3.11.0" + "domain-browser" "^1.1.1" + "events" "^3.0.0" + "https-browserify" "^1.0.0" + "os-browserify" "^0.3.0" + "path-browserify" "0.0.1" + "process" "^0.11.10" + "punycode" "^1.2.4" + "querystring-es3" "^0.2.0" + "readable-stream" "^2.3.3" + "stream-browserify" "^2.0.1" + "stream-http" "^2.7.2" + "string_decoder" "^1.0.0" + "timers-browserify" "^2.0.4" + "tty-browserify" "0.0.0" + "url" "^0.11.0" + "util" "^0.11.0" + "vm-browserify" "^1.0.1" + +"node-notifier@^5.4.2": + "integrity" "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==" + "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" + "version" "5.4.5" + dependencies: + "growly" "^1.3.0" + "is-wsl" "^1.1.0" + "semver" "^5.5.0" + "shellwords" "^0.1.1" + "which" "^1.3.0" + +"node-releases@^2.0.2": + "integrity" "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" + "version" "2.0.2" + +"nopt@1.0.10": + "integrity" "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "abbrev" "1" + +"normalize-package-data@^2.3.0", "normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4", "normalize-package-data@^2.5.0": + "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "hosted-git-info" "^2.1.4" + "resolve" "^1.10.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-package-data@^3.0.0": + "integrity" "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "hosted-git-info" "^4.0.1" + "resolve" "^1.20.0" + "semver" "^7.3.4" + "validate-npm-package-license" "^3.0.1" + +"normalize-path@^2.1.1": + "integrity" "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "remove-trailing-separator" "^1.0.1" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"normalize-range@^0.1.2": + "integrity" "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + "version" "0.1.2" + +"normalize-url@^2.0.1": + "integrity" "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "prepend-http" "^2.0.0" + "query-string" "^5.0.1" + "sort-keys" "^2.0.0" + +"normalize-url@^3.0.0": + "integrity" "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" + "version" "3.3.0" + +"normalize-url@^4.1.0": + "integrity" "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + "version" "4.5.1" + +"normalize-url@^6.0.1": + "integrity" "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz" + "version" "6.0.1" + +"now-and-later@^2.0.0": + "integrity" "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==" + "resolved" "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "once" "^1.3.2" + +"npm-path@^2.0.2": + "integrity" "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==" + "resolved" "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "which" "^1.2.10" + +"npm-run-all@^4.1.5": + "integrity" "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==" + "resolved" "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" + "version" "4.1.5" + dependencies: + "ansi-styles" "^3.2.1" + "chalk" "^2.4.1" + "cross-spawn" "^6.0.5" + "memorystream" "^0.3.1" + "minimatch" "^3.0.4" + "pidtree" "^0.3.0" + "read-pkg" "^3.0.0" + "shell-quote" "^1.6.1" + "string.prototype.padend" "^3.0.0" + +"npm-run-path@^2.0.0": + "integrity" "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "path-key" "^2.0.0" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"npm-which@^3.0.1": + "integrity" "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=" + "resolved" "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "commander" "^2.9.0" + "npm-path" "^2.0.2" + "which" "^1.2.10" + +"nprogress@^0.2.0": + "integrity" "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + "resolved" "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" + "version" "0.2.0" + +"nth-check@^1.0.2": + "integrity" "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" + "resolved" "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "boolbase" "~1.0.0" + +"nth-check@^2.0.0": + "integrity" "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==" + "resolved" "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "boolbase" "^1.0.0" + +"null-check@^1.0.0": + "integrity" "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=" + "resolved" "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz" + "version" "1.0.0" + +"num2fraction@^1.2.2": + "integrity" "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + "resolved" "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + "version" "1.2.2" + +"number-is-nan@^1.0.0": + "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "version" "1.0.1" + +"nwsapi@^2.0.7": + "integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + "version" "2.2.0" + +"oauth-sign@~0.9.0": + "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + "version" "0.9.0" + +"object-assign@^4.0.1", "object-assign@^4.1.0", "object-assign@^4.1.1": + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-copy@^0.1.0": + "integrity" "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=" + "resolved" "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "copy-descriptor" "^0.1.0" + "define-property" "^0.2.5" + "kind-of" "^3.0.3" + +"object-inspect@^1.10.3", "object-inspect@^1.9.0": + "integrity" "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" + "version" "1.10.3" + +"object-is@^1.0.1": + "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==" + "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"object-keys@^1.0.11", "object-keys@^1.0.12", "object-keys@^1.1.0", "object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object-visit@^1.0.0": + "integrity" "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=" + "resolved" "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "isobject" "^3.0.0" + +"object.assign@^4.0.4", "object.assign@^4.1.0", "object.assign@^4.1.2": + "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + "has-symbols" "^1.0.1" + "object-keys" "^1.1.1" + +"object.getownpropertydescriptors@^2.0.3", "object.getownpropertydescriptors@^2.1.0", "object.getownpropertydescriptors@^2.1.1": + "integrity" "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==" + "resolved" "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.18.0-next.2" + +"object.pick@^1.3.0": + "integrity" "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=" + "resolved" "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "isobject" "^3.0.1" + +"object.values@^1.1.0": + "integrity" "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==" + "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.18.2" + +"obuf@^1.0.0", "obuf@^1.1.2": + "integrity" "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "resolved" "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + "version" "1.1.2" + +"on-finished@~2.3.0": + "integrity" "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"on-headers@~1.0.2": + "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + "version" "1.0.2" + +"once@^1.3.0", "once@^1.3.1", "once@^1.3.2", "once@^1.4.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^2.0.0": + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "mimic-fn" "^1.0.0" + +"onetime@^5.1.0", "onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"open@^8.0.9": + "integrity" "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==" + "resolved" "https://registry.npmjs.org/open/-/open-8.4.0.tgz" + "version" "8.4.0" + dependencies: + "define-lazy-prop" "^2.0.0" + "is-docker" "^2.1.1" + "is-wsl" "^2.2.0" + +"opencollective-postinstall@^2.0.2": + "integrity" "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + "resolved" "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + "version" "2.0.3" + +"opn@^5.5.0": + "integrity" "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==" + "resolved" "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "is-wsl" "^1.1.0" + +"optimize-css-assets-webpack-plugin@^5.0.1": + "integrity" "sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A==" + "resolved" "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz" + "version" "5.0.6" + dependencies: + "cssnano" "^4.1.10" + "last-call-webpack-plugin" "^3.0.0" + +"optionator@^0.8.1": + "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "deep-is" "~0.1.3" + "fast-levenshtein" "~2.0.6" + "levn" "~0.3.0" + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + "word-wrap" "~1.2.3" + +"optionator@^0.9.1": + "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "deep-is" "^0.1.3" + "fast-levenshtein" "^2.0.6" + "levn" "^0.4.1" + "prelude-ls" "^1.2.1" + "type-check" "^0.4.0" + "word-wrap" "^1.2.3" + +"ora@^5.4.1": + "integrity" "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==" + "resolved" "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bl" "^4.1.0" + "chalk" "^4.1.0" + "cli-cursor" "^3.1.0" + "cli-spinners" "^2.5.0" + "is-interactive" "^1.0.0" + "is-unicode-supported" "^0.1.0" + "log-symbols" "^4.1.0" + "strip-ansi" "^6.0.0" + "wcwidth" "^1.0.1" + +"ordered-read-streams@^1.0.0": + "integrity" "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=" + "resolved" "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "readable-stream" "^2.0.1" + +"original@^1.0.0": + "integrity" "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==" + "resolved" "https://registry.npmjs.org/original/-/original-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "url-parse" "^1.4.3" + +"os-browserify@^0.3.0": + "integrity" "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + "resolved" "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + "version" "0.3.0" + +"os-tmpdir@~1.0.2": + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"p-cancelable@^1.0.0": + "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + "version" "1.1.0" + +"p-each-series@^1.0.0": + "integrity" "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=" + "resolved" "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "p-reduce" "^1.0.0" + +"p-finally@^1.0.0": + "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + "version" "1.0.0" + +"p-limit@^1.1.0": + "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "p-try" "^1.0.0" + +"p-limit@^2.0.0", "p-limit@^2.2.0", "p-limit@^2.2.1": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^2.0.0": + "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "p-limit" "^1.1.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" -commander@^2.14.1, commander@^2.20.0, commander@^2.9.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" +"p-map@^1.1.1": + "integrity" "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + "resolved" "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz" + "version" "1.2.0" -commander@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" +"p-map@^2.0.0": + "integrity" "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + "resolved" "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" + "version" "2.1.0" -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" +"p-map@^4.0.0": + "integrity" "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==" + "resolved" "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "aggregate-error" "^3.0.0" -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" +"p-reduce@^1.0.0": + "integrity" "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + "resolved" "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" + "version" "1.0.0" -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" +"p-retry@^3.0.1": + "integrity" "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==" + "resolved" "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "retry" "^0.12.0" -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" +"p-retry@^4.5.0": + "integrity" "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==" + "resolved" "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz" + "version" "4.6.1" dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" + "@types/retry" "^0.12.0" + "retry" "^0.13.1" + +"p-try@^1.0.0": + "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + "version" "1.0.0" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"package-json@^6.3.0": + "integrity" "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==" + "resolved" "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + "version" "6.5.0" + dependencies: + "got" "^9.6.0" + "registry-auth-token" "^4.0.0" + "registry-url" "^5.0.0" + "semver" "^6.2.0" + +"pako@~1.0.5": + "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + "version" "1.0.11" + +"parallel-transform@^1.1.0": + "integrity" "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==" + "resolved" "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "cyclist" "^1.0.1" + "inherits" "^2.0.3" + "readable-stream" "^2.1.5" + +"param-case@^3.0.4": + "integrity" "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==" + "resolved" "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "dot-case" "^3.0.4" + "tslib" "^2.0.3" + +"param-case@2.1.x": + "integrity" "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=" + "resolved" "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "no-case" "^2.2.0" + +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "callsites" "^3.0.0" + +"parse-asn1@^5.0.0", "parse-asn1@^5.1.5": + "integrity" "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==" + "resolved" "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" + "version" "5.1.6" + dependencies: + "asn1.js" "^5.2.0" + "browserify-aes" "^1.0.0" + "evp_bytestokey" "^1.0.0" + "pbkdf2" "^3.0.3" + "safe-buffer" "^5.1.1" + +"parse-entities@^2.0.0": + "integrity" "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==" + "resolved" "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "character-entities" "^1.0.0" + "character-entities-legacy" "^1.0.0" + "character-reference-invalid" "^1.0.0" + "is-alphanumerical" "^1.0.0" + "is-decimal" "^1.0.0" + "is-hexadecimal" "^1.0.0" + +"parse-filepath@^1.0.2": + "integrity" "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=" + "resolved" "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-absolute" "^1.0.0" + "map-cache" "^0.2.0" + "path-root" "^0.1.1" + +"parse-github-repo-url@^1.3.0": + "integrity" "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=" + "resolved" "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz" + "version" "1.4.1" + +"parse-json@^2.2.0": + "integrity" "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "error-ex" "^1.2.0" + +"parse-json@^4.0.0": + "integrity" "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "error-ex" "^1.3.1" + "json-parse-better-errors" "^1.0.1" + +"parse-json@^5.0.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "@babel/code-frame" "^7.0.0" + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parse-path@^4.0.0": + "integrity" "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==" + "resolved" "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-ssh" "^1.3.0" + "protocols" "^1.4.0" + "qs" "^6.9.4" + "query-string" "^6.13.8" + +"parse-url@^5.0.0": + "integrity" "sha512-nrLCVMJpqo12X8uUJT4GJPd5AFaTOrGx/QpJy3HNcVtq0AZSstVIsnxS5fqNPuoqMUs3MyfBoOP6Zvu2Arok5A==" + "resolved" "https://registry.npmjs.org/parse-url/-/parse-url-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "is-ssh" "^1.3.0" + "normalize-url" "^6.0.1" + "parse-path" "^4.0.0" + "protocols" "^1.4.0" + +"parse5@4.0.0": + "integrity" "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz" + "version" "4.0.0" + +"parseurl@~1.3.2", "parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" + +"pascal-case@^3.1.2": + "integrity" "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==" + "resolved" "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "no-case" "^3.0.4" + "tslib" "^2.0.3" + +"pascalcase@^0.1.1": + "integrity" "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "resolved" "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + "version" "0.1.1" + +"path-browserify@0.0.1": + "integrity" "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + "resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + "version" "0.0.1" + +"path-dirname@^1.0.0": + "integrity" "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "resolved" "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" + "version" "1.0.2" + +"path-exists@^2.0.0": + "integrity" "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "pinkie-promise" "^2.0.0" + +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-is-inside@^1.0.1", "path-is-inside@^1.0.2": + "integrity" "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "resolved" "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + "version" "1.0.2" + +"path-key@^2.0.0": + "integrity" "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^2.0.1": + "integrity" "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.6": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-root-regex@^0.1.0": + "integrity" "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "resolved" "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" + "version" "0.1.2" + +"path-root@^0.1.1": + "integrity" "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=" + "resolved" "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "path-root-regex" "^0.1.0" + +"path-to-regexp@^1.7.0": + "integrity" "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==" + "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "isarray" "0.0.1" + +"path-to-regexp@0.1.7": + "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + "version" "0.1.7" + +"path-type@^1.0.0": + "integrity" "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "graceful-fs" "^4.1.2" + "pify" "^2.0.0" + "pinkie-promise" "^2.0.0" + +"path-type@^3.0.0": + "integrity" "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "pify" "^3.0.0" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"pbkdf2@^3.0.3": + "integrity" "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==" + "resolved" "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "create-hash" "^1.1.2" + "create-hmac" "^1.1.4" + "ripemd160" "^2.0.1" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"performance-now@^2.1.0": + "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + "version" "2.1.0" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pidtree@^0.3.0": + "integrity" "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==" + "resolved" "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" + "version" "0.3.1" + +"pify@^2.0.0": + "integrity" "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "version" "2.3.0" + +"pify@^2.3.0": + "integrity" "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "version" "2.3.0" + +"pify@^3.0.0": + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + "version" "3.0.0" + +"pify@^4.0.1": + "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + "version" "4.0.1" + +"pify@^5.0.0": + "integrity" "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" + "resolved" "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" + "version" "5.0.0" + +"pinkie-promise@^2.0.0": + "integrity" "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + "resolved" "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "pinkie" "^2.0.0" + +"pinkie@^2.0.0": + "integrity" "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "resolved" "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "version" "2.0.4" + +"pirates@^4.0.1": + "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + "version" "4.0.5" + +"pkg-dir@^3.0.0": + "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^3.0.0" + +"pkg-dir@^4.1.0", "pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"please-upgrade-node@^3.0.2", "please-upgrade-node@^3.1.1": + "integrity" "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==" + "resolved" "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "semver-compare" "^1.0.0" + +"pn@^1.1.0": + "integrity" "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + "resolved" "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" + "version" "1.1.0" + +"portfinder@^1.0.13", "portfinder@^1.0.26", "portfinder@^1.0.28": + "integrity" "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==" + "resolved" "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" + "version" "1.0.28" + dependencies: + "async" "^2.6.2" + "debug" "^3.1.1" + "mkdirp" "^0.5.5" + +"posix-character-classes@^0.1.0": + "integrity" "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "resolved" "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + "version" "0.1.1" + +"postcss-calc@^7.0.1": + "integrity" "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==" + "resolved" "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" + "version" "7.0.5" + dependencies: + "postcss" "^7.0.27" + "postcss-selector-parser" "^6.0.2" + "postcss-value-parser" "^4.0.2" + +"postcss-colormin@^4.0.3": + "integrity" "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==" + "resolved" "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "browserslist" "^4.0.0" + "color" "^3.0.0" + "has" "^1.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-convert-values@^4.0.1": + "integrity" "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==" + "resolved" "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-discard-comments@^4.0.2": + "integrity" "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==" + "resolved" "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "postcss" "^7.0.0" + +"postcss-discard-duplicates@^4.0.2": + "integrity" "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==" + "resolved" "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "postcss" "^7.0.0" + +"postcss-discard-empty@^4.0.1": + "integrity" "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==" + "resolved" "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.0" + +"postcss-discard-overridden@^4.0.1": + "integrity" "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==" + "resolved" "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.0" + +"postcss-load-config@^2.0.0": + "integrity" "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==" + "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "cosmiconfig" "^5.0.0" + "import-cwd" "^2.0.0" + +"postcss-loader@^3.0.0": + "integrity" "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==" + "resolved" "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "loader-utils" "^1.1.0" + "postcss" "^7.0.0" + "postcss-load-config" "^2.0.0" + "schema-utils" "^1.0.0" + +"postcss-merge-longhand@^4.0.11": + "integrity" "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==" + "resolved" "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" + "version" "4.0.11" + dependencies: + "css-color-names" "0.0.4" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + "stylehacks" "^4.0.0" + +"postcss-merge-rules@^4.0.3": + "integrity" "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==" + "resolved" "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "browserslist" "^4.0.0" + "caniuse-api" "^3.0.0" + "cssnano-util-same-parent" "^4.0.0" + "postcss" "^7.0.0" + "postcss-selector-parser" "^3.0.0" + "vendors" "^1.0.0" + +"postcss-minify-font-values@^4.0.2": + "integrity" "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==" + "resolved" "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-minify-gradients@^4.0.2": + "integrity" "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==" + "resolved" "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-arguments" "^4.0.0" + "is-color-stop" "^1.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-minify-params@^4.0.2": + "integrity" "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==" + "resolved" "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "alphanum-sort" "^1.0.0" + "browserslist" "^4.0.0" + "cssnano-util-get-arguments" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + "uniqs" "^2.0.0" + +"postcss-minify-selectors@^4.0.2": + "integrity" "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==" + "resolved" "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "alphanum-sort" "^1.0.0" + "has" "^1.0.0" + "postcss" "^7.0.0" + "postcss-selector-parser" "^3.0.0" + +"postcss-modules-extract-imports@^2.0.0": + "integrity" "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "postcss" "^7.0.5" + +"postcss-modules-extract-imports@^3.0.0": + "integrity" "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" + "resolved" "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" + "version" "3.0.0" + +"postcss-modules-local-by-default@^2.0.6": + "integrity" "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==" + "resolved" "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "postcss" "^7.0.6" + "postcss-selector-parser" "^6.0.0" + "postcss-value-parser" "^3.3.1" + +"postcss-modules-local-by-default@^4.0.0": + "integrity" "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "icss-utils" "^5.0.0" + "postcss-selector-parser" "^6.0.2" + "postcss-value-parser" "^4.1.0" + +"postcss-modules-scope@^2.1.0": + "integrity" "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "postcss" "^7.0.6" + "postcss-selector-parser" "^6.0.0" + +"postcss-modules-scope@^3.0.0": + "integrity" "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==" + "resolved" "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "postcss-selector-parser" "^6.0.4" + +"postcss-modules-values@^2.0.0": + "integrity" "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==" + "resolved" "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "icss-replace-symbols" "^1.1.0" + "postcss" "^7.0.6" + +"postcss-modules-values@^4.0.0": + "integrity" "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==" + "resolved" "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "icss-utils" "^5.0.0" + +"postcss-modules@^4.0.0": + "integrity" "sha512-dBT39hrXe4OAVYJe/2ZuIZ9BzYhOe7t+IhedYeQ2OxKwDpAGlkEN/fR0fGnrbx4BvgbMReRX4hCubYK9cE/pJQ==" + "resolved" "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "generic-names" "^2.0.1" + "icss-replace-symbols" "^1.1.0" + "lodash.camelcase" "^4.3.0" + "postcss-modules-extract-imports" "^3.0.0" + "postcss-modules-local-by-default" "^4.0.0" + "postcss-modules-scope" "^3.0.0" + "postcss-modules-values" "^4.0.0" + "string-hash" "^1.1.1" + +"postcss-normalize-charset@^4.0.1": + "integrity" "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==" + "resolved" "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "postcss" "^7.0.0" + +"postcss-normalize-display-values@^4.0.2": + "integrity" "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==" + "resolved" "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-match" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-positions@^4.0.2": + "integrity" "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-arguments" "^4.0.0" + "has" "^1.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-repeat-style@^4.0.2": + "integrity" "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==" + "resolved" "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-arguments" "^4.0.0" + "cssnano-util-get-match" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-string@^4.0.2": + "integrity" "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "has" "^1.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-timing-functions@^4.0.2": + "integrity" "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==" + "resolved" "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-match" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-unicode@^4.0.1": + "integrity" "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==" + "resolved" "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "browserslist" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-url@^4.0.1": + "integrity" "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-absolute-url" "^2.0.0" + "normalize-url" "^3.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-normalize-whitespace@^4.0.2": + "integrity" "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==" + "resolved" "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-ordered-values@^4.1.2": + "integrity" "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==" + "resolved" "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "cssnano-util-get-arguments" "^4.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-reduce-initial@^4.0.3": + "integrity" "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==" + "resolved" "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "browserslist" "^4.0.0" + "caniuse-api" "^3.0.0" + "has" "^1.0.0" + "postcss" "^7.0.0" + +"postcss-reduce-transforms@^4.0.2": + "integrity" "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==" + "resolved" "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "cssnano-util-get-match" "^4.0.0" + "has" "^1.0.0" + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + +"postcss-safe-parser@^4.0.1": + "integrity" "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==" + "resolved" "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "postcss" "^7.0.26" + +"postcss-selector-parser@^3.0.0": + "integrity" "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==" + "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "dot-prop" "^5.2.0" + "indexes-of" "^1.0.1" + "uniq" "^1.0.1" + +"postcss-selector-parser@^6.0.0", "postcss-selector-parser@^6.0.2", "postcss-selector-parser@^6.0.4": + "integrity" "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==" + "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" + "version" "6.0.6" + dependencies: + "cssesc" "^3.0.0" + "util-deprecate" "^1.0.2" + +"postcss-svgo@^4.0.3": + "integrity" "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==" + "resolved" "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "postcss" "^7.0.0" + "postcss-value-parser" "^3.0.0" + "svgo" "^1.0.0" + +"postcss-unique-selectors@^4.0.1": + "integrity" "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==" + "resolved" "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "alphanum-sort" "^1.0.0" + "postcss" "^7.0.0" + "uniqs" "^2.0.0" + +"postcss-value-parser@^3.0.0": + "integrity" "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + "version" "3.3.1" + +"postcss-value-parser@^3.3.0", "postcss-value-parser@^3.3.1": + "integrity" "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + "version" "3.3.1" + +"postcss-value-parser@^4.0.2", "postcss-value-parser@^4.1.0": + "integrity" "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" + "version" "4.1.0" + +"postcss@^7.0.0": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^7.0.1": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^7.0.14", "postcss@^7.0.5", "postcss@^7.0.6": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^7.0.26": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^7.0.27": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^7.0.32": + "integrity" "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" + "version" "7.0.36" + dependencies: + "chalk" "^2.4.2" + "source-map" "^0.6.1" + "supports-color" "^6.1.0" + +"postcss@^8.0.0", "postcss@^8.1.0", "postcss@^8.1.10": + "integrity" "sha512-gnXd9C4bGKevvlNFd80I8WfxHX+g6MR+W2h19PlDNHUuT9248rHTvCIDeZI3Hvs5mB3gzXiNDwVK3S153WJbZA==" + "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.3.3.tgz" + "version" "8.3.3" + dependencies: + "colorette" "^1.2.2" + "nanoid" "^3.1.23" + "source-map-js" "^0.6.2" + +"prelude-ls@^1.2.1": + "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + "version" "1.2.1" + +"prelude-ls@~1.1.2": + "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "version" "1.1.2" + +"prepend-http@^2.0.0": + "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + "version" "2.0.0" + +"prettier@^1.18.2": + "integrity" "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" + "version" "1.19.1" + +"prettier@^2.4.1": + "integrity" "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" + "version" "2.4.1" + +"pretty-error@^2.0.2": + "integrity" "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==" + "resolved" "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "lodash" "^4.17.20" + "renderkid" "^2.0.4" + +"pretty-error@^4.0.0": + "integrity" "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==" + "resolved" "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "lodash" "^4.17.20" + "renderkid" "^3.0.0" + +"pretty-format@^24.9.0": + "integrity" "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz" + "version" "24.9.0" + dependencies: + "@jest/types" "^24.9.0" + "ansi-regex" "^4.0.0" + "ansi-styles" "^3.2.0" + "react-is" "^16.8.4" + +"pretty-time@^1.1.0": + "integrity" "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" + "resolved" "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" + "version" "1.1.0" + +"prismjs@^1.13.0": + "integrity" "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" + "resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz" + "version" "1.27.0" + +"process-nextick-args@^2.0.0", "process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"process-nextick-args@~1.0.6": + "integrity" "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" + "version" "1.0.7" + +"process@^0.11.10": + "integrity" "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + "version" "0.11.10" + +"promise-inflight@^1.0.1": + "integrity" "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "resolved" "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + "version" "1.0.1" + +"promise-polyfill@^8.1.3": + "integrity" "sha512-k/TC0mIcPVF6yHhUvwAp7cvL6I2fFV7TzF1DuGPI8mBh4QQazf36xCKEHKTZKRysEoTQoQdKyP25J8MPJp7j5g==" + "resolved" "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz" + "version" "8.2.0" + +"prompts@^2.0.1": + "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"property-expr@^1.5.0": + "integrity" "sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==" + "resolved" "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz" + "version" "1.5.1" + +"property-information@^5.0.0": + "integrity" "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==" + "resolved" "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz" + "version" "5.6.0" + dependencies: + "xtend" "^4.0.0" + +"protocols@^1.1.0", "protocols@^1.4.0": + "integrity" "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==" + "resolved" "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz" + "version" "1.4.8" + +"proxy-addr@~2.0.5": + "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" + "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + "version" "2.0.7" + dependencies: + "forwarded" "0.2.0" + "ipaddr.js" "1.9.1" + +"prr@~1.0.1": + "integrity" "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "resolved" "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + "version" "1.0.1" + +"pseudomap@^1.0.2": + "integrity" "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "resolved" "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + "version" "1.0.2" + +"psl@^1.1.28": + "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + "version" "1.8.0" + +"public-encrypt@^4.0.0": + "integrity" "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==" + "resolved" "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "bn.js" "^4.1.0" + "browserify-rsa" "^4.0.0" + "create-hash" "^1.1.0" + "parse-asn1" "^5.0.0" + "randombytes" "^2.0.1" + "safe-buffer" "^5.1.2" + +"pump@^2.0.0": + "integrity" "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==" + "resolved" "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"pumpify@^1.3.3", "pumpify@^1.3.5": + "integrity" "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==" + "resolved" "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + "version" "1.5.1" + dependencies: + "duplexify" "^3.6.0" + "inherits" "^2.0.3" + "pump" "^2.0.0" + +"punycode@^1.2.4": + "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "version" "1.4.1" + +"punycode@^2.1.0", "punycode@^2.1.1": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"punycode@1.3.2": + "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "version" "1.3.2" + +"pupa@^2.0.1": + "integrity" "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==" + "resolved" "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "escape-goat" "^2.0.0" + +"q@^1.1.2", "q@^1.5.1": + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + "version" "1.5.1" + +"qs@^6.4.0", "qs@^6.9.4": + "integrity" "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz" + "version" "6.10.1" + dependencies: + "side-channel" "^1.0.4" + +"qs@~6.5.2": + "integrity" "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + "version" "6.5.2" + +"qs@6.7.0": + "integrity" "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" + "version" "6.7.0" + +"query-string@^5.0.1": + "integrity" "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==" + "resolved" "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "decode-uri-component" "^0.2.0" + "object-assign" "^4.1.0" + "strict-uri-encode" "^1.0.0" + +"query-string@^6.13.8": + "integrity" "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==" + "resolved" "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz" + "version" "6.14.1" + dependencies: + "decode-uri-component" "^0.2.0" + "filter-obj" "^1.1.0" + "split-on-first" "^1.0.0" + "strict-uri-encode" "^2.0.0" + +"querystring-es3@^0.2.0", "querystring-es3@^0.2.1": + "integrity" "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "resolved" "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + "version" "0.2.1" + +"querystring@0.2.0": + "integrity" "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "resolved" "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "version" "0.2.0" + +"querystringify@^2.1.1": + "integrity" "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved" "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + "version" "2.2.0" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"quick-lru@^4.0.1": + "integrity" "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" + "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" + "version" "4.0.1" + +"randombytes@^2.0.0", "randombytes@^2.0.1", "randombytes@^2.0.5", "randombytes@^2.1.0": + "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" + "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "safe-buffer" "^5.1.0" + +"randomfill@^1.0.3": + "integrity" "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==" + "resolved" "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "randombytes" "^2.0.5" + "safe-buffer" "^5.1.0" + +"range-parser@^1.2.1", "range-parser@~1.2.1": + "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + "version" "1.2.1" + +"raw-body@~1.1.0": + "integrity" "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=" + "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "bytes" "1" + "string_decoder" "0.10" + +"raw-body@2.4.0": + "integrity" "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==" + "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "bytes" "3.1.0" + "http-errors" "1.7.2" + "iconv-lite" "0.4.24" + "unpipe" "1.0.0" + +"rc@^1.2.8": + "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" + "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "deep-extend" "^0.6.0" + "ini" "~1.3.0" + "minimist" "^1.2.0" + "strip-json-comments" "~2.0.1" + +"react-is@^16.8.4": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"read-pkg-up@^1.0.1": + "integrity" "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "find-up" "^1.0.0" + "read-pkg" "^1.0.0" + +"read-pkg-up@^3.0.0": + "integrity" "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^2.0.0" + "read-pkg" "^3.0.0" + +"read-pkg-up@^4.0.0": + "integrity" "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "find-up" "^3.0.0" + "read-pkg" "^3.0.0" + +"read-pkg-up@^7.0.1": + "integrity" "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "find-up" "^4.1.0" + "read-pkg" "^5.2.0" + "type-fest" "^0.8.1" + +"read-pkg@^1.0.0": + "integrity" "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "load-json-file" "^1.0.0" + "normalize-package-data" "^2.3.2" + "path-type" "^1.0.0" + +"read-pkg@^3.0.0": + "integrity" "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "load-json-file" "^4.0.0" + "normalize-package-data" "^2.3.2" + "path-type" "^3.0.0" + +"read-pkg@^5.1.1", "read-pkg@^5.2.0": + "integrity" "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "@types/normalize-package-data" "^2.4.0" + "normalize-package-data" "^2.5.0" + "parse-json" "^5.0.0" + "type-fest" "^0.6.0" + +"readable-stream@^2.0.0", "readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.0.5", "readable-stream@^2.1.5", "readable-stream@^2.2.2", "readable-stream@^2.3.3", "readable-stream@^2.3.5", "readable-stream@^2.3.6", "readable-stream@~2.3.6", "readable-stream@1 || 2": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^3.0.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@^3.0.2": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@^3.0.6": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@^3.4.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@^3.6.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@~2.0.0": + "integrity" "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.1" + "isarray" "~1.0.0" + "process-nextick-args" "~1.0.6" + "string_decoder" "~0.10.x" + "util-deprecate" "~1.0.1" + +"readable-stream@~2.1.0": + "integrity" "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz" + "version" "2.1.5" + dependencies: + "buffer-shims" "^1.0.0" + "core-util-is" "~1.0.0" + "inherits" "~2.0.1" + "isarray" "~1.0.0" + "process-nextick-args" "~1.0.6" + "string_decoder" "~0.10.x" + "util-deprecate" "~1.0.1" + +"readable-stream@3": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readdirp@^2.2.1": + "integrity" "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "graceful-fs" "^4.1.11" + "micromatch" "^3.1.10" + "readable-stream" "^2.0.2" + +"readdirp@~3.5.0": + "integrity" "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" + "version" "3.5.0" + dependencies: + "picomatch" "^2.2.1" + +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "picomatch" "^2.2.1" + +"realpath-native@^1.1.0": + "integrity" "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==" + "resolved" "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "util.promisify" "^1.0.0" + +"rechoir@^0.6.2": + "integrity" "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=" + "resolved" "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + "version" "0.6.2" + dependencies: + "resolve" "^1.1.6" + +"rechoir@^0.7.0": + "integrity" "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==" + "resolved" "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" + "version" "0.7.1" + dependencies: + "resolve" "^1.9.0" + +"redent@^1.0.0": + "integrity" "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=" + "resolved" "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "indent-string" "^2.1.0" + "strip-indent" "^1.0.1" + +"redent@^3.0.0": + "integrity" "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==" + "resolved" "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "indent-string" "^4.0.0" + "strip-indent" "^3.0.0" + +"reduce@^1.0.1": + "integrity" "sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==" + "resolved" "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "object-keys" "^1.1.0" + +"regenerate-unicode-properties@^10.0.1": + "integrity" "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + "version" "10.0.1" + dependencies: + "regenerate" "^1.4.2" + +"regenerate@^1.4.2": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" +"regenerator-runtime@^0.13.4": + "integrity" "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + "version" "0.13.7" -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" +"regenerator-transform@^0.14.2": + "integrity" "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" + "version" "0.14.5" dependencies: - mime-db ">= 1.43.0 < 2" + "@babel/runtime" "^7.8.4" -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" +"regex-not@^1.0.0", "regex-not@^1.0.2": + "integrity" "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==" + "resolved" "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + "version" "1.0.2" dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" + "extend-shallow" "^3.0.2" + "safe-regex" "^1.1.0" -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - -concat-stream@^1.5.0, concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" +"regexp.prototype.flags@^1.2.0": + "integrity" "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" + "version" "1.3.1" dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" +"regexpp@^3.2.0": + "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + "version" "3.2.0" -concat-stream@~1.5.0: - version "1.5.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz" +"regexpu-core@^5.0.1": + "integrity" "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz" + "version" "5.0.1" dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" - -consola@^2.6.0: - version "2.15.3" - resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^10.0.1" + "regjsgen" "^0.6.0" + "regjsparser" "^0.8.2" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.0.0" -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz" +"registry-auth-token@^4.0.0": + "integrity" "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==" + "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" + "version" "4.2.1" dependencies: - bluebird "^3.1.1" + "rc" "^1.2.8" -consolidate@^0.16.0: - version "0.16.0" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz" +"registry-url@^5.0.0": + "integrity" "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==" + "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + "version" "5.1.0" dependencies: - bluebird "^3.7.2" + "rc" "^1.2.8" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" +"regjsgen@^0.6.0": + "integrity" "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + "version" "0.6.0" -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" +"regjsparser@^0.8.2": + "integrity" "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + "version" "0.8.4" dependencies: - safe-buffer "5.1.2" + "jsesc" "~0.5.0" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz" - -conventional-changelog-angular@^5.0.12: - version "5.0.12" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz" - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-config-spec@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz" - -conventional-changelog-conventionalcommits@4.5.0, conventional-changelog-conventionalcommits@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz" - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.2" - resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz" - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^4.0.18" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - shelljs "^0.8.3" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz" - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz" - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz" - -conventional-changelog-writer@^4.0.18: - version "4.1.0" - resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz" - dependencies: - compare-func "^2.0.0" - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" - handlebars "^4.7.6" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@3.1.24: - version "3.1.24" - resolved "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.24.tgz" - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz" - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz" - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - trim-off-newlines "^1.0.0" - -conventional-recommended-bump@6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz" - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - -copy-webpack-plugin@^5.0.2: - version "5.1.2" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz" - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.6.5: - version "3.21.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz" - dependencies: - browserslist "^4.19.1" - semver "7.0.0" - -core-js@^3.21.1, core-js@^3.6.4, core-js@^3.6.5: - version "3.21.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - -cosmiconfig@^5.0.0, cosmiconfig@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz" - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz" - dependencies: - css "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz" - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" - -css-what@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz" - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz" - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz" - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz" - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - dependencies: - css-tree "^1.1.2" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz" - dependencies: - cssom "0.3.x" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" - -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz" - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" +"relateurl@^0.2.7", "relateurl@0.2.x": + "integrity" "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "resolved" "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + "version" "0.2.7" -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" +"remark-gfm@^1.0.0": + "integrity" "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==" + "resolved" "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "mdast-util-gfm" "^0.1.0" + "micromark-extension-gfm" "^0.3.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" +"remark-html@^13.0.1": + "integrity" "sha512-LhSRQ+3RKdBqB/RGesFWkNNfkGqprDUCwjq54SylfFeNyZby5kqOG8Dn/vYsRoM8htab6EWxFXCY6XIZvMoRiQ==" + "resolved" "https://registry.npmjs.org/remark-html/-/remark-html-13.0.2.tgz" + "version" "13.0.2" dependencies: - ms "2.0.0" + "hast-util-sanitize" "^3.0.0" + "hast-util-to-html" "^7.0.0" + "mdast-util-to-hast" "^10.0.0" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" +"remark-parse@^9.0.0": + "integrity" "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==" + "resolved" "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz" + "version" "9.0.0" dependencies: - ms "^2.1.1" + "mdast-util-from-markdown" "^0.8.0" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" +"remark-reference-links@^5.0.0": + "integrity" "sha512-oSIo6lfDyG/1yYl2jPZNXmD9dgyPxp07mSd7snJagVMsDU6NRlD8i54MwHWUgMoOHTs8lIKPkwaUok/tbr5syQ==" + "resolved" "https://registry.npmjs.org/remark-reference-links/-/remark-reference-links-5.0.0.tgz" + "version" "5.0.0" dependencies: - ms "2.1.2" + "unist-util-visit" "^2.0.0" -debug@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" +"remark-stringify@^9.0.0": + "integrity" "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==" + "resolved" "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz" + "version" "9.0.1" dependencies: - ms "2.1.2" + "mdast-util-to-markdown" "^0.6.0" -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" +"remark-toc@^7.2.0": + "integrity" "sha512-ppHepvpbg7j5kPFmU5rzDC4k2GTcPDvWcxXyr/7BZzO1cBSPk0stKtEJdsgAyw2WHKPGxadcHIZRjb2/sHxjkg==" + "resolved" "https://registry.npmjs.org/remark-toc/-/remark-toc-7.2.0.tgz" + "version" "7.2.0" dependencies: - ms "2.0.0" + "@types/unist" "^2.0.3" + "mdast-util-toc" "^5.0.0" + +"remark@^13.0.0": + "integrity" "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==" + "resolved" "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz" + "version" "13.0.0" + dependencies: + "remark-parse" "^9.0.0" + "remark-stringify" "^9.0.0" + "unified" "^9.1.0" + +"remove-bom-buffer@^3.0.0": + "integrity" "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==" + "resolved" "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "is-buffer" "^1.1.5" + "is-utf8" "^0.2.1" + +"remove-bom-stream@^1.2.0": + "integrity" "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=" + "resolved" "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "remove-bom-buffer" "^3.0.0" + "safe-buffer" "^5.1.0" + "through2" "^2.0.3" + +"remove-trailing-separator@^1.0.1": + "integrity" "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "resolved" "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + "version" "1.1.0" + +"renderkid@^2.0.4": + "integrity" "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==" + "resolved" "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz" + "version" "2.0.7" + dependencies: + "css-select" "^4.1.3" + "dom-converter" "^0.2.0" + "htmlparser2" "^6.1.0" + "lodash" "^4.17.21" + "strip-ansi" "^3.0.1" + +"renderkid@^3.0.0": + "integrity" "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==" + "resolved" "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "css-select" "^4.1.3" + "dom-converter" "^0.2.0" + "htmlparser2" "^6.1.0" + "lodash" "^4.17.21" + "strip-ansi" "^6.0.1" + +"repeat-element@^1.1.2": + "integrity" "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + "resolved" "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" + "version" "1.1.4" + +"repeat-string@^1.0.0", "repeat-string@^1.5.0", "repeat-string@^1.6.1": + "integrity" "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "resolved" "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "version" "1.6.1" + +"repeating@^2.0.0": + "integrity" "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" + "resolved" "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-finite" "^1.0.0" + +"replace-ext@^1.0.0": + "integrity" "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + "resolved" "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" + "version" "1.0.1" + +"request-promise-core@1.1.4": + "integrity" "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==" + "resolved" "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "lodash" "^4.17.19" + +"request-promise-native@^1.0.5": + "integrity" "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==" + "resolved" "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "request-promise-core" "1.1.4" + "stealthy-require" "^1.1.1" + "tough-cookie" "^2.3.3" + +"request@^2.34", "request@^2.87.0": + "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + "version" "2.88.2" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.3" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.5.0" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-from-string@^2.0.2": + "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + "version" "2.0.2" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"requires-port@^1.0.0": + "integrity" "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "version" "1.0.0" + +"resolve-cwd@^2.0.0": + "integrity" "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "resolve-from" "^3.0.0" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-from@^3.0.0": + "integrity" "sha1-six699nWiBvItuZTM17rywoYh0g=" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + "version" "3.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-from@^5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve-options@^1.1.0": + "integrity" "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=" + "resolved" "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "value-or-function" "^3.0.0" + +"resolve-url@^0.2.1": + "integrity" "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + "version" "0.2.1" + +"resolve@^1.1.3", "resolve@^1.1.6", "resolve@^1.10.0", "resolve@^1.14.2", "resolve@^1.2.0", "resolve@^1.20.0", "resolve@^1.3.2", "resolve@^1.8.1", "resolve@^1.9.0": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + +"resolve@1.1.7": + "integrity" "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + "version" "1.1.7" + +"responselike@^1.0.2": + "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" + "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "lowercase-keys" "^1.0.0" + +"restore-cursor@^2.0.0": + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "onetime" "^2.0.0" + "signal-exit" "^3.0.2" + +"restore-cursor@^3.1.0": + "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "onetime" "^5.1.0" + "signal-exit" "^3.0.2" + +"ret@~0.1.10": + "integrity" "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "resolved" "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + "version" "0.1.15" + +"retry@^0.12.0": + "integrity" "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "resolved" "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + "version" "0.12.0" + +"retry@^0.13.1": + "integrity" "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + "resolved" "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + "version" "0.13.1" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rgb-regex@^1.0.1": + "integrity" "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + "resolved" "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + "version" "1.0.1" + +"rgba-regex@^1.0.0": + "integrity" "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + "resolved" "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + "version" "1.0.0" + +"rimraf@^2.2.8": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^2.5.4": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^2.6.3": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" + "glob" "^7.1.3" + +"ripemd160@^2.0.0", "ripemd160@^2.0.1": + "integrity" "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==" + "resolved" "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + +"rsvp@^4.8.4": + "integrity" "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + "resolved" "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" + "version" "4.8.5" -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" +"run-async@^2.4.0": + "integrity" "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "resolved" "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + "version" "2.4.1" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" +"run-node@^1.0.0": + "integrity" "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==" + "resolved" "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz" + "version" "1.0.0" -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - dependencies: - mimic-response "^1.0.0" +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" +"run-queue@^1.0.0", "run-queue@^1.0.3": + "integrity" "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=" + "resolved" "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "aproba" "^1.1.1" -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" +"rxjs@^6.3.3": + "integrity" "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + "version" "6.6.7" dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + "tslib" "^1.9.0" + +"rxjs@^7.2.0": + "integrity" "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz" + "version" "7.5.4" + dependencies: + "tslib" "^2.1.0" -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" +"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@>=5.1.0", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" +"safe-buffer@^5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz" +"safe-json-parse@~1.0.1": + "integrity" "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" + "resolved" "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz" + "version" "1.0.1" -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz" +"safe-regex@^1.1.0": + "integrity" "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=" + "resolved" "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + "version" "1.1.0" dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + "ret" "~0.1.10" -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" - dependencies: - execa "^5.0.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/del/-/del-3.0.0.tgz" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz" - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -del@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/del/-/del-6.0.0.tgz" - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" - -detect-newline@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" - -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz" - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz" - -diff@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz" - dependencies: - path-type "^3.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" - dependencies: - buffer-indexof "^1.0.0" - -docsearch.js@^2.5.2: - version "2.6.3" - resolved "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz" - dependencies: - algoliasearch "^3.24.5" - autocomplete.js "0.36.0" - hogan.js "^3.0.2" - request "^2.87.0" - stack-utils "^1.0.1" - to-factory "^1.0.0" - zepto "^1.2.0" - -doctrine-temporary-fork@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz" - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - dependencies: - esutils "^2.0.2" - -documentation@^13.2.5: - version "13.2.5" - resolved "https://registry.npmjs.org/documentation/-/documentation-13.2.5.tgz" - dependencies: - "@babel/core" "7.12.3" - "@babel/generator" "7.12.1" - "@babel/parser" "7.12.3" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - ansi-html "^0.0.7" - babelify "^10.0.0" - chalk "^2.3.0" - chokidar "^3.4.0" - concat-stream "^1.6.0" - diff "^4.0.1" - doctrine-temporary-fork "2.1.0" - get-port "^5.0.0" - git-url-parse "^11.1.2" - github-slugger "1.2.0" - glob "^7.1.2" - globals-docs "^2.4.0" - highlight.js "^10.7.2" - ini "^1.3.5" - js-yaml "^3.10.0" - lodash "^4.17.10" - mdast-util-find-and-replace "^1.1.1" - mdast-util-inject "^1.1.0" - micromatch "^3.1.5" - mime "^2.2.0" - module-deps-sortable "^5.0.3" - parse-filepath "^1.0.2" - pify "^5.0.0" - read-pkg-up "^4.0.0" - remark "^13.0.0" - remark-gfm "^1.0.0" - remark-html "^13.0.1" - remark-reference-links "^5.0.0" - remark-toc "^7.2.0" - resolve "^1.8.1" - stream-array "^1.1.2" - strip-json-comments "^2.0.1" - tiny-lr "^1.1.0" - unist-builder "^2.0.3" - unist-util-visit "^2.0.3" - vfile "^4.0.0" - vfile-reporter "^6.0.0" - vfile-sort "^2.1.0" - vinyl "^2.1.0" - vinyl-fs "^3.0.2" - yargs "^15.3.1" - optionalDependencies: - "@vue/compiler-sfc" "^3.0.11" - vue-template-compiler "^2.6.12" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz" - dependencies: - webidl-conversions "^4.0.2" - -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz" - dependencies: - domelementtype "^2.2.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.6.0: - version "2.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz" - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.1.0, dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - dependencies: - is-obj "^2.0.0" - -dotgitignore@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz" - dependencies: - find-up "^3.0.0" - minimatch "^3.0.4" - -dts-bundle-generator@^6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/dts-bundle-generator/-/dts-bundle-generator-6.5.0.tgz" - dependencies: - typescript ">=3.0.1" - yargs "^17.2.1" - -duplexer2@^0.1.2, duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" - dependencies: - readable-stream "^2.0.2" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - -electron-to-chromium@^1.4.71: - version "1.4.71" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz" - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz" - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.8.3: - version "5.9.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz" - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" - -envify@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz" - dependencies: - esprima "^4.0.0" - through "~2.3.4" - -envinfo@^7.2.0, envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz" - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.3" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz" - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^4.1.0: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - -escodegen@^1.9.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - -eslint@^8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" - dependencies: - "@eslint/eslintrc" "^1.2.1" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" - -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0, esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - -estraverse@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - -events@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" - -events@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz" - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz" - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - -fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz" - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - dependencies: - bser "2.1.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" - -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0, figures@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - dependencies: - flat-cache "^3.0.4" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz" - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - -flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -fn-name@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz" - -follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz" - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-access@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz" - dependencies: - null-check "^1.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -g-status@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz" - dependencies: - arrify "^1.0.1" - matcher "^1.0.0" - simple-git "^1.85.0" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz" - dependencies: - loader-utils "^1.1.0" - -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" - -get-pkg-repo@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz" - dependencies: - hosted-git-info "^2.1.4" - meow "^3.3.0" - normalize-package-data "^2.3.0" - parse-github-repo-url "^1.3.0" - through2 "^2.0.0" - -get-port@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - dependencies: - assert-plus "^1.0.0" - -git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz" - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz" - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^4.0.0, git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz" - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz" - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@^11.1.2: - version "11.4.4" - resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.4.tgz" - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz" - dependencies: - ini "^1.3.2" - -github-slugger@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.0.tgz" - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -github-slugger@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz" - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - dependencies: - is-glob "^4.0.3" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" - dependencies: - ini "1.3.7" - -global@^4.3.2: - version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals-docs@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/globals-docs/-/globals-docs-2.4.1.tgz" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - -globals@^13.6.0, globals@^13.9.0: - version "13.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" - dependencies: - type-fest "^0.20.2" - -globby@^11.0.1: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz" - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz" - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.9" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" - -grapesjs-cli@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/grapesjs-cli/-/grapesjs-cli-3.0.0.tgz" - dependencies: - "@babel/core" "^7.17.5" - "@babel/plugin-transform-runtime" "^7.17.0" - "@babel/preset-env" "^7.16.11" - "@babel/runtime" "^7.17.2" - babel-loader "^8.2.3" - chalk "^4.1.2" - core-js "^3.21.1" - dts-bundle-generator "^6.5.0" - esm "^3.2.25" - html-webpack-plugin "^5.5.0" - inquirer "^8.2.0" - listr "^0.14.3" - lodash.template "^4.5.0" - rimraf "^3.0.2" - spdx-license-list "^6.4.0" - ts-loader "^9.2.6" - typescript "^4.5.5" - webpack "^5.69.1" - webpack-cli "^4.9.2" - webpack-dev-server "^4.7.4" - yargs "^16.2.0" - -gray-matter@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" - -handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hast-util-is-element@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz" - -hast-util-sanitize@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz" - dependencies: - xtend "^4.0.0" - -hast-util-to-html@^7.0.0: - version "7.1.3" - resolved "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz" - dependencies: - ccount "^1.0.0" - comma-separated-tokens "^1.0.0" - hast-util-is-element "^1.0.0" - hast-util-whitespace "^1.0.0" - html-void-elements "^1.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - stringify-entities "^3.0.1" - unist-util-is "^4.0.0" - xtend "^4.0.0" - -hast-util-whitespace@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz" - -he@1.2.x, he@^1.1.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" - -highlight.js@^10.7.2: - version "10.7.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hogan.js@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz" - dependencies: - mkdirp "0.3.0" - nopt "1.0.10" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - -hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" - dependencies: - lru-cache "^6.0.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^1.3.1, html-entities@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - -html-entities@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz" - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" - -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz" - -html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz" - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - -http-errors@1.7.2, http-errors@~1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz" - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - -husky@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/husky/-/husky-2.7.0.tgz" - dependencies: - cosmiconfig "^5.2.0" - execa "^1.0.0" - find-up "^3.0.0" - get-stdin "^7.0.0" - is-ci "^2.0.0" - pkg-dir "^4.1.0" - please-upgrade-node "^3.1.1" - read-pkg "^5.1.1" - run-node "^1.0.0" - slash "^3.0.0" - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" - -icss-utils@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" - dependencies: - postcss "^7.0.14" - -icss-utils@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" - -ieee754@^1.1.13, ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz" - -ignore@^4.0.3: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" - -ini@^1.3.2, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - -inquirer@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz" - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.2.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz" - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - dependencies: - loose-envify "^1.0.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - -is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" - dependencies: - call-bind "^1.0.2" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz" - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" - -is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz" - dependencies: - symbol-observable "^1.1.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" - -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz" - dependencies: - is-path-inside "^1.0.0" - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz" - dependencies: - path-is-inside "^1.0.1" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz" - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1, is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - dependencies: - isobject "^3.0.1" - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" - -is-regex@^1.0.4, is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.2" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" - dependencies: - is-unc-path "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" - -is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz" - dependencies: - protocols "^1.1.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - dependencies: - has-symbols "^1.0.2" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" - dependencies: - text-extensions "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" - dependencies: - unc-path-regex "^0.1.2" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz" - -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz" - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz" - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz" - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz" - dependencies: - html-escaper "^2.0.0" - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz" - -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz" - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" - -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz" - dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz" - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz" - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz" - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz" - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz" - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz" - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz" - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz" - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz" - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz" - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz" - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz" - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz" - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz" - -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz" - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz" - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz" - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" - -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz" - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz" - dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - -js-yaml@^3.10.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - dependencies: - argparse "^2.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz" - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz" - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - -konan@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz" - dependencies: - "@babel/parser" "^7.10.5" - "@babel/traverse" "^7.10.5" - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz" - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - dependencies: - package-json "^6.3.0" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" - dependencies: - readable-stream "^2.0.5" - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" - dependencies: - flush-write-stream "^1.0.2" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz" - dependencies: - uc.micro "^1.0.1" - -lint-staged@^8.2.1: - version "8.2.1" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-8.2.1.tgz" - dependencies: - chalk "^2.3.1" - commander "^2.14.1" - cosmiconfig "^5.2.0" - debug "^3.1.0" - dedent "^0.7.0" - del "^3.0.0" - execa "^1.0.0" - g-status "^2.0.2" - is-glob "^4.0.0" - is-windows "^1.0.2" - listr "^0.14.2" - listr-update-renderer "^0.5.0" - lodash "^4.17.11" - log-symbols "^2.2.0" - micromatch "^3.1.8" - npm-which "^3.0.1" - p-map "^1.1.1" - path-is-inside "^1.0.2" - pify "^3.0.0" - please-upgrade-node "^3.0.2" - staged-git-files "1.1.2" - string-argv "^0.0.2" - stringify-object "^3.2.2" - yup "^0.27.0" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz" - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz" - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz" - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr@^0.14.2, listr@^0.14.3: - version "0.14.3" - resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz" - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -load-script@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" - -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - dependencies: - p-locate "^5.0.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz" - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz" - dependencies: - chalk "^1.0.0" - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" - dependencies: - chalk "^2.0.1" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz" - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" - -lolex@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz" - -lolex@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz" - dependencies: - "@sinonjs/commons" "^1.7.0" - -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - -lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - dependencies: - semver "^6.0.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - -map-obj@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - dependencies: - object-visit "^1.0.0" - -markdown-it-anchor@^5.0.2: - version "5.3.0" - resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz" - -markdown-it-chain@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz" - dependencies: - webpack-chain "^4.9.0" - -markdown-it-container@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz" - -markdown-it-emoji@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz" - -markdown-it-table-of-contents@^0.4.0: - version "0.4.4" - resolved "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz" - -markdown-it@^8.4.1: - version "8.4.2" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz" - dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz" - dependencies: - repeat-string "^1.0.0" - -matcher@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz" - dependencies: - escape-string-regexp "^1.0.4" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz" - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-find-and-replace@^1.1.0, mdast-util-find-and-replace@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz" - dependencies: - escape-string-regexp "^4.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -mdast-util-from-markdown@^0.8.0: - version "0.8.5" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz" - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-gfm-autolink-literal@^0.1.0: - version "0.1.3" - resolved "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz" - dependencies: - ccount "^1.0.0" - mdast-util-find-and-replace "^1.1.0" - micromark "^2.11.3" - -mdast-util-gfm-strikethrough@^0.2.0: - version "0.2.3" - resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz" - dependencies: - mdast-util-to-markdown "^0.6.0" - -mdast-util-gfm-table@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz" - dependencies: - markdown-table "^2.0.0" - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm-task-list-item@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz" - dependencies: - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz" - dependencies: - mdast-util-gfm-autolink-literal "^0.1.0" - mdast-util-gfm-strikethrough "^0.2.0" - mdast-util-gfm-table "^0.1.0" - mdast-util-gfm-task-list-item "^0.1.0" - mdast-util-to-markdown "^0.6.1" - -mdast-util-inject@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz" - dependencies: - mdast-util-to-string "^1.0.0" - -mdast-util-to-hast@^10.0.0: - version "10.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz" - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - -mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: - version "0.6.5" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz" - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz" - -mdast-util-toc@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-5.1.0.tgz" - dependencies: - "@types/mdast" "^3.0.3" - "@types/unist" "^2.0.3" - extend "^3.0.2" - github-slugger "^1.2.1" - mdast-util-to-string "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit "^2.0.0" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" - -mdurl@^1.0.0, mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - -memfs@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz" - dependencies: - fs-monkey "1.0.3" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" - dependencies: - source-map "^0.6.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - -micromark-extension-gfm-autolink-literal@~0.5.0: - version "0.5.7" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz" - dependencies: - micromark "~2.11.3" - -micromark-extension-gfm-strikethrough@~0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz" - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-table@~0.4.0: - version "0.4.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz" - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-tagfilter@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz" - -micromark-extension-gfm-task-list-item@~0.3.0: - version "0.3.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz" - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm@^0.3.0: - version "0.3.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz" - dependencies: - micromark "~2.11.0" - micromark-extension-gfm-autolink-literal "~0.5.0" - micromark-extension-gfm-strikethrough "~0.6.5" - micromark-extension-gfm-table "~0.4.0" - micromark-extension-gfm-tagfilter "~0.3.0" - micromark-extension-gfm-task-list-item "~0.3.0" - -micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: - version "2.11.4" - resolved "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz" - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": - version "1.48.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.31" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" - dependencies: - mime-db "1.48.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - -mime@^2.0.3, mime@^2.2.0, mime@^2.4.4: - version "2.5.2" - resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" - dependencies: - dom-walk "^0.1.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" - -mini-css-extract-plugin@0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz" - dependencies: - loader-utils "^1.1.0" - normalize-url "^2.0.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - dependencies: - minimist "^1.2.5" - -mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz" - -module-deps-sortable@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/module-deps-sortable/-/module-deps-sortable-5.0.3.tgz" - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - konan "^2.1.1" - readable-stream "^2.0.2" - resolve "^1.1.3" - standard-version "^9.0.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" - -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - -nanoid@^3.1.23: - version "3.2.0" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - -nise@^1.5.2: - version "1.5.3" - resolved "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz" - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" - dependencies: - lower-case "^1.1.1" - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" - -node-forge@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" - -node-notifier@^5.4.2: - version "5.4.5" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" - -nopt@1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz" - dependencies: - hosted-git-info "^4.0.1" - resolve "^1.20.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - -normalize-url@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" - -normalize-url@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz" - -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" - dependencies: - once "^1.3.2" - -npm-path@^2.0.2: - version "2.0.4" - resolved "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz" - dependencies: - which "^1.2.10" - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - dependencies: - path-key "^3.0.0" - -npm-which@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz" - dependencies: - commander "^2.9.0" - npm-path "^2.0.2" - which "^1.2.10" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz" - dependencies: - boolbase "^1.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - -nwsapi@^2.0.7: - version "2.2.0" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.10.3, object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.4" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.2" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - dependencies: - mimic-fn "^2.1.0" - -open@^8.0.9: - version "8.4.0" - resolved "https://registry.npmjs.org/open/-/open-8.4.0.tgz" - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.1: - version "5.0.6" - resolved "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz" - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" - dependencies: - readable-stream "^2.0.1" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz" - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz" - dependencies: - p-reduce "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - dependencies: - p-limit "^3.0.2" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - dependencies: - aggregate-error "^3.0.0" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz" - dependencies: - retry "^0.12.0" - -p-retry@^4.5.0: - version "4.6.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz" - dependencies: - "@types/retry" "^0.12.0" - retry "^0.13.1" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" - dependencies: - no-case "^2.2.0" - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz" - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-github-repo-url@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz" - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" - -parse-url@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.3.tgz" - dependencies: - is-ssh "^1.3.0" - normalize-url "^6.0.1" - parse-path "^4.0.0" - protocols "^1.4.0" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" - dependencies: - path-root-regex "^0.1.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" - dependencies: - isarray "0.0.1" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz" - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - dependencies: - find-up "^4.0.0" - -please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: - version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - dependencies: - semver-compare "^1.0.0" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" - -portfinder@^1.0.13, portfinder@^1.0.26, portfinder@^1.0.28: - version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" - dependencies: - postcss "^7.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" - -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz" - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz" - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^4.0.0: - version "4.1.3" - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.1.3.tgz" - dependencies: - generic-names "^2.0.1" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-safe-parser@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz" - dependencies: - postcss "^7.0.26" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.6" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz" - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.36" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz" - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.1.10: - version "8.3.3" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.3.tgz" - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map-js "^0.6.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" - -prettier@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" - -pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz" - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz" - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" - -prismjs@^1.13.0: - version "1.27.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz" - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" - -promise-polyfill@^8.1.3: - version "8.2.0" - resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz" - -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -property-expr@^1.5.0: - version "1.5.1" - resolved "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz" - -property-information@^5.0.0: - version "5.6.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz" - dependencies: - xtend "^4.0.0" - -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz" - -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3, pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - dependencies: - escape-goat "^2.0.0" - -q@^1.1.2, q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" - -qs@^6.4.0, qs@^6.9.4: - version "6.10.1" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz" - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz" - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@^0.2.0, querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz" - dependencies: - bytes "1" - string_decoder "0.10" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-is@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz" - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.1.1, read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.0: - version "2.1.5" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" - dependencies: - picomatch "^2.2.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - dependencies: - picomatch "^2.2.1" - -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz" - dependencies: - util.promisify "^1.0.0" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - dependencies: - resolve "^1.1.6" - -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" - dependencies: - resolve "^1.9.0" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -reduce@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz" - dependencies: - object-keys "^1.1.0" - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz" - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - dependencies: - rc "^1.2.8" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x, relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" - -remark-gfm@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz" - dependencies: - mdast-util-gfm "^0.1.0" - micromark-extension-gfm "^0.3.0" - -remark-html@^13.0.1: - version "13.0.2" - resolved "https://registry.npmjs.org/remark-html/-/remark-html-13.0.2.tgz" - dependencies: - hast-util-sanitize "^3.0.0" - hast-util-to-html "^7.0.0" - mdast-util-to-hast "^10.0.0" - -remark-parse@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz" - dependencies: - mdast-util-from-markdown "^0.8.0" - -remark-reference-links@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/remark-reference-links/-/remark-reference-links-5.0.0.tgz" - dependencies: - unist-util-visit "^2.0.0" - -remark-stringify@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz" - dependencies: - mdast-util-to-markdown "^0.6.0" - -remark-toc@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/remark-toc/-/remark-toc-7.2.0.tgz" - dependencies: - "@types/unist" "^2.0.3" - mdast-util-toc "^5.0.0" - -remark@^13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz" - dependencies: - remark-parse "^9.0.0" - remark-stringify "^9.0.0" - unified "^9.1.0" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" - -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz" - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - -repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" - dependencies: - is-finite "^1.0.0" - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" - dependencies: - resolve-from "^3.0.0" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" - -resolve@^1.1.3, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.2.0, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" - -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" - -run-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - dependencies: - queue-microtask "^1.2.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" - dependencies: - aproba "^1.1.1" - -rxjs@^6.3.3: - version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - dependencies: - tslib "^1.9.0" - -rxjs@^7.2.0: - version "7.5.4" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz" - dependencies: - tslib "^2.1.0" - -safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - -safe-buffer@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz" - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sass@^1.42.1: - version "1.42.1" - resolved "https://registry.npmjs.org/sass/-/sass-1.42.1.tgz" - dependencies: - chokidar ">=3.0.0 <4.0.0" - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz" - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.8.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - -selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz" - dependencies: - node-forge "^0.10.0" - -selfsigned@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz" - dependencies: - node-forge "^1.2.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - dependencies: - semver "^6.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - -semver@^7.1.1, semver@^7.3.4: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz" - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - dependencies: - shebang-regex "^1.0.0" +"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@^2.1.2", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@~2.1.0": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" +"sane@^4.0.3": + "integrity" "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==" + "resolved" "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz" + "version" "4.1.0" dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - -shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" - -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + "@cnakazawa/watch" "^1.0.3" + "anymatch" "^2.0.0" + "capture-exit" "^2.0.0" + "exec-sh" "^0.3.2" + "execa" "^1.0.0" + "fb-watchman" "^2.0.0" + "micromatch" "^3.1.4" + "minimist" "^1.1.1" + "walker" "~1.0.5" + +"sass@^1.42.1": + "integrity" "sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==" + "resolved" "https://registry.npmjs.org/sass/-/sass-1.42.1.tgz" + "version" "1.42.1" + dependencies: + "chokidar" ">=3.0.0 <4.0.0" + +"sax@^1.2.4", "sax@~1.2.4": + "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" + +"schema-utils@^1.0.0": + "integrity" "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "ajv" "^6.1.0" + "ajv-errors" "^1.0.0" + "ajv-keywords" "^3.1.0" + +"schema-utils@^2.6.5": + "integrity" "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + "version" "2.7.1" dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" + "@types/json-schema" "^7.0.5" + "ajv" "^6.12.4" + "ajv-keywords" "^3.5.2" -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" +"schema-utils@^3.1.0": + "integrity" "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + "version" "3.1.1" dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + "@types/json-schema" "^7.0.8" + "ajv" "^6.12.5" + "ajv-keywords" "^3.5.2" -simple-git@^1.85.0: - version "1.132.0" - resolved "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz" +"schema-utils@^3.1.1": + "integrity" "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + "version" "3.1.1" dependencies: - debug "^4.0.1" + "@types/json-schema" "^7.0.8" + "ajv" "^6.12.5" + "ajv-keywords" "^3.5.2" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" +"schema-utils@^4.0.0": + "integrity" "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==" + "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz" + "version" "4.0.0" dependencies: - is-arrayish "^0.3.1" - -sinon@^7.5.0: - version "7.5.0" - resolved "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz" + "@types/json-schema" "^7.0.9" + "ajv" "^8.8.0" + "ajv-formats" "^2.1.1" + "ajv-keywords" "^5.0.0" + +"section-matter@^1.0.0": + "integrity" "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==" + "resolved" "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "extend-shallow" "^2.0.1" + "kind-of" "^6.0.0" + +"select-hose@^2.0.0": + "integrity" "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "resolved" "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + "version" "2.0.0" + +"selfsigned@^1.10.8": + "integrity" "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==" + "resolved" "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz" + "version" "1.10.11" + dependencies: + "node-forge" "^0.10.0" + +"selfsigned@^2.0.0": + "integrity" "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==" + "resolved" "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "node-forge" "^1.2.0" + +"semver-compare@^1.0.0": + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + "version" "1.0.0" + +"semver-diff@^3.1.1": + "integrity" "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==" + "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "semver" "^6.3.0" + +"semver@^5.1.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.4.1": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.5.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.0.0", "semver@^6.1.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.2.0", "semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.1.1": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.4": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@7.0.0": + "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + "version" "7.0.0" + +"send@0.17.1": + "integrity" "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==" + "resolved" "https://registry.npmjs.org/send/-/send-0.17.1.tgz" + "version" "0.17.1" + dependencies: + "debug" "2.6.9" + "depd" "~1.1.2" + "destroy" "~1.0.4" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "~1.7.2" + "mime" "1.6.0" + "ms" "2.1.1" + "on-finished" "~2.3.0" + "range-parser" "~1.2.1" + "statuses" "~1.5.0" + +"serialize-javascript@^3.1.0": + "integrity" "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==" + "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "randombytes" "^2.1.0" + +"serialize-javascript@^4.0.0": + "integrity" "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==" + "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "randombytes" "^2.1.0" + +"serialize-javascript@^6.0.0": + "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" + "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "randombytes" "^2.1.0" + +"serve-index@^1.9.1": + "integrity" "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=" + "resolved" "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + "version" "1.9.1" + dependencies: + "accepts" "~1.3.4" + "batch" "0.6.1" + "debug" "2.6.9" + "escape-html" "~1.0.3" + "http-errors" "~1.6.2" + "mime-types" "~2.1.17" + "parseurl" "~1.3.2" + +"serve-static@1.14.1": + "integrity" "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" + "version" "1.14.1" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.17.1" + +"set-blocking@^2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"set-value@^2.0.0", "set-value@^2.0.1": + "integrity" "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==" + "resolved" "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "extend-shallow" "^2.0.1" + "is-extendable" "^0.1.1" + "is-plain-object" "^2.0.3" + "split-string" "^3.0.1" + +"setimmediate@^1.0.4": + "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + "version" "1.0.5" + +"setprototypeof@1.1.0": + "integrity" "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + "version" "1.1.0" + +"setprototypeof@1.1.1": + "integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + "version" "1.1.1" + +"sha.js@^2.4.0", "sha.js@^2.4.8": + "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" + "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + "version" "2.4.11" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"shallow-clone@^3.0.0": + "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" + "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^6.0.2" + +"shebang-command@^1.2.0": + "integrity" "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "shebang-regex" "^1.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^1.0.0": + "integrity" "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + "version" "1.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"shell-quote@^1.6.1": + "integrity" "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + "resolved" "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" + "version" "1.7.2" + +"shelljs@^0.8.3": + "integrity" "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==" + "resolved" "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + "version" "0.8.5" + dependencies: + "glob" "^7.0.0" + "interpret" "^1.0.0" + "rechoir" "^0.6.2" + +"shellwords@^0.1.1": + "integrity" "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + "resolved" "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" + "version" "0.1.1" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3": + "integrity" "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + "version" "3.0.3" + +"simple-git@^1.85.0": + "integrity" "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==" + "resolved" "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz" + "version" "1.132.0" + dependencies: + "debug" "^4.0.1" + +"simple-swizzle@^0.2.2": + "integrity" "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=" + "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + "version" "0.2.2" + dependencies: + "is-arrayish" "^0.3.1" + +"sinon@^7.5.0": + "integrity" "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==" + "resolved" "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz" + "version" "7.5.0" dependencies: "@sinonjs/commons" "^1.4.0" "@sinonjs/formatio" "^3.2.1" "@sinonjs/samsam" "^3.3.3" - diff "^3.5.0" - lolex "^4.2.0" - nise "^1.5.2" - supports-color "^5.5.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" - -smoothscroll-polyfill@^0.4.3: - version "0.4.4" - resolved "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.1" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz" - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.1" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" - -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz" - -spdx-license-list@^6.4.0: - version "6.4.0" - resolved "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.4.0.tgz" - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - dependencies: - extend-shallow "^3.0.0" - -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" - dependencies: - readable-stream "^3.0.0" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz" - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz" - dependencies: - escape-string-regexp "^2.0.0" - -staged-git-files@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz" - -standard-version@^9.0.0: - version "9.3.0" - resolved "https://registry.npmjs.org/standard-version/-/standard-version-9.3.0.tgz" - dependencies: - chalk "^2.4.2" - conventional-changelog "3.1.24" - conventional-changelog-config-spec "2.1.0" - conventional-changelog-conventionalcommits "4.5.0" - conventional-recommended-bump "6.1.0" - detect-indent "^6.0.0" - detect-newline "^3.1.0" - dotgitignore "^2.1.0" - figures "^3.1.0" - find-up "^5.0.0" - fs-access "^1.0.1" - git-semver-tags "^4.0.0" - semver "^7.1.1" - stringify-package "^1.0.1" - yargs "^16.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - -std-env@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz" - dependencies: - ci-info "^3.0.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" - -stream-array@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/stream-array/-/stream-array-1.1.2.tgz" - dependencies: - readable-stream "~2.1.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" - -string-argv@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz" - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz" - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.padend@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@0.10, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - -string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^3.0.1: - version "3.1.0" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz" - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - xtend "^4.0.0" - -stringify-object@^3.2.2: - version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz" - dependencies: - ansi-regex "^6.0.1" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" - dependencies: - get-stdin "^4.0.1" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylus-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" - dependencies: - css-parse "~2.0.0" - debug "~3.1.0" - glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" - sax "~1.2.4" - semver "^6.3.0" - source-map "^0.7.3" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz" - dependencies: - minimist "^1.1.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - dependencies: - has-flag "^3.0.0" - -supports-color@^6.0.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - dependencies: - has-flag "^4.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - -synchronous-promise@^2.0.6: - version "2.0.15" - resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz" - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" - dependencies: - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.10.0, terser@^5.7.2: - version "5.11.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz" - dependencies: - acorn "^8.5.0" - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz" - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz" - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" - dependencies: - readable-stream "3" - -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - -tiny-lr@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz" - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" - -to-factory@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" - dependencies: - through2 "^2.0.3" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz" - -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz" - -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" - dependencies: - punycode "^2.1.0" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" - -trim-off-newlines@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz" - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz" - -ts-loader@^9.2.6: - version "9.2.6" - resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz" - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - -tslib@^2.0.3, tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6, typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - -typescript@>=3.0.1, typescript@^4.5.5: - version "4.5.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz" - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-js@^3.1.4: - version "3.13.9" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz" - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" - -"underscore@1.4.4 - 1.8.3", underscore@>=1.8.3, underscore@^1.13.1: - version "1.13.1" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" - -unified@^9.1.0: - version "9.2.1" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz" - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" - dependencies: - imurmurhash "^0.1.4" - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - dependencies: - crypto-random-string "^2.0.0" - -unist-builder@^2.0.0, unist-builder@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz" - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz" - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz" - -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz" - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz" + "diff" "^3.5.0" + "lolex" "^4.2.0" + "nise" "^1.5.2" + "supports-color" "^5.5.0" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^1.0.0": + "integrity" "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "resolved" "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + "version" "1.0.0" + +"slash@^2.0.0": + "integrity" "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + "resolved" "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" + "version" "2.0.0" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"slice-ansi@0.0.4": + "integrity" "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" + "version" "0.0.4" + +"smoothscroll-polyfill@^0.4.3": + "integrity" "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==" + "resolved" "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz" + "version" "0.4.4" + +"snapdragon-node@^2.0.1": + "integrity" "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==" + "resolved" "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "define-property" "^1.0.0" + "isobject" "^3.0.0" + "snapdragon-util" "^3.0.1" + +"snapdragon-util@^3.0.1": + "integrity" "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==" + "resolved" "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^3.2.0" + +"snapdragon@^0.8.1": + "integrity" "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==" + "resolved" "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + "version" "0.8.2" + dependencies: + "base" "^0.11.1" + "debug" "^2.2.0" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "map-cache" "^0.2.2" + "source-map" "^0.5.6" + "source-map-resolve" "^0.5.0" + "use" "^3.1.0" + +"sockjs-client@^1.5.0": + "integrity" "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==" + "resolved" "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz" + "version" "1.5.1" + dependencies: + "debug" "^3.2.6" + "eventsource" "^1.0.7" + "faye-websocket" "^0.11.3" + "inherits" "^2.0.4" + "json3" "^3.3.3" + "url-parse" "^1.5.1" + +"sockjs@^0.3.21": + "integrity" "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==" + "resolved" "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" + "version" "0.3.21" + dependencies: + "faye-websocket" "^0.11.3" + "uuid" "^3.4.0" + "websocket-driver" "^0.7.4" + +"sort-keys@^2.0.0": + "integrity" "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=" + "resolved" "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "is-plain-obj" "^1.0.0" + +"source-list-map@^2.0.0": + "integrity" "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "resolved" "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + "version" "2.0.1" + +"source-map-js@^0.6.2": + "integrity" "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" + "version" "0.6.2" + +"source-map-resolve@^0.5.0", "source-map-resolve@^0.5.2": + "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" + "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "atob" "^2.1.2" + "decode-uri-component" "^0.2.0" + "resolve-url" "^0.2.1" + "source-map-url" "^0.4.0" + "urix" "^0.1.0" + +"source-map-support@^0.5.6", "source-map-support@~0.5.12", "source-map-support@~0.5.20": + "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + "version" "0.5.21" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-url@^0.4.0": + "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + "version" "0.4.1" + +"source-map@^0.5.0", "source-map@^0.5.6": + "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + "version" "0.7.3" + +"source-map@~0.6.0", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@~0.7.2": + "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + "version" "0.7.3" + +"source-map@0.5.6": + "integrity" "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "version" "0.5.6" + +"sourcemap-codec@^1.4.4": + "integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "resolved" "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + "version" "1.4.8" + +"space-separated-tokens@^1.0.0": + "integrity" "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + "resolved" "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" + "version" "1.1.5" + +"spdx-correct@^3.0.0": + "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" + "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "spdx-expression-parse" "^3.0.0" + "spdx-license-ids" "^3.0.0" + +"spdx-exceptions@^2.1.0": + "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + "version" "2.3.0" + +"spdx-expression-parse@^3.0.0": + "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" + "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "spdx-exceptions" "^2.1.0" + "spdx-license-ids" "^3.0.0" + +"spdx-license-ids@^3.0.0": + "integrity" "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz" + "version" "3.0.9" + +"spdx-license-list@^6.4.0": + "integrity" "sha512-4BxgJ1IZxTJuX1YxMGu2cRYK46Bk9zJNTK2/R0wNZR0cm+6SVl26/uG7FQmQtxoJQX1uZ0EpTi2L7zvMLboaBA==" + "resolved" "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.4.0.tgz" + "version" "6.4.0" + +"spdy-transport@^3.0.0": + "integrity" "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==" + "resolved" "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "debug" "^4.1.0" + "detect-node" "^2.0.4" + "hpack.js" "^2.1.6" + "obuf" "^1.1.2" + "readable-stream" "^3.0.6" + "wbuf" "^1.7.3" + +"spdy@^4.0.2": + "integrity" "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==" + "resolved" "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "debug" "^4.1.0" + "handle-thing" "^2.0.0" + "http-deceiver" "^1.2.7" + "select-hose" "^2.0.0" + "spdy-transport" "^3.0.0" + +"split-on-first@^1.0.0": + "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + "resolved" "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + "version" "1.1.0" + +"split-string@^3.0.1", "split-string@^3.0.2": + "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==" + "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "extend-shallow" "^3.0.0" + +"split@^1.0.0": + "integrity" "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==" + "resolved" "https://registry.npmjs.org/split/-/split-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "through" "2" + +"split2@^3.0.0": + "integrity" "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==" + "resolved" "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "readable-stream" "^3.0.0" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"sshpk@^1.7.0": + "integrity" "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==" + "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + "version" "1.16.1" + dependencies: + "asn1" "~0.2.3" + "assert-plus" "^1.0.0" + "bcrypt-pbkdf" "^1.0.0" + "dashdash" "^1.12.0" + "ecc-jsbn" "~0.1.1" + "getpass" "^0.1.1" + "jsbn" "~0.1.0" + "safer-buffer" "^2.0.2" + "tweetnacl" "~0.14.0" + +"ssri@^6.0.1": + "integrity" "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==" + "resolved" "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "figgy-pudding" "^3.5.1" + +"stable@^0.1.8": + "integrity" "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "resolved" "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + "version" "0.1.8" + +"stack-utils@^1.0.1": + "integrity" "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==" + "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "escape-string-regexp" "^2.0.0" + +"staged-git-files@1.1.2": + "integrity" "sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==" + "resolved" "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz" + "version" "1.1.2" + +"standard-version@^9.0.0": + "integrity" "sha512-cYxxKXhYfI3S9+CA84HmrJa9B88H56V5FQ302iFF2TNwJukJCNoU8FgWt+11YtwKFXRkQQFpepC2QOF7aDq2Ow==" + "resolved" "https://registry.npmjs.org/standard-version/-/standard-version-9.3.0.tgz" + "version" "9.3.0" + dependencies: + "chalk" "^2.4.2" + "conventional-changelog" "3.1.24" + "conventional-changelog-config-spec" "2.1.0" + "conventional-changelog-conventionalcommits" "4.5.0" + "conventional-recommended-bump" "6.1.0" + "detect-indent" "^6.0.0" + "detect-newline" "^3.1.0" + "dotgitignore" "^2.1.0" + "figures" "^3.1.0" + "find-up" "^5.0.0" + "fs-access" "^1.0.1" + "git-semver-tags" "^4.0.0" + "semver" "^7.1.1" + "stringify-package" "^1.0.1" + "yargs" "^16.0.0" + +"static-extend@^0.1.1": + "integrity" "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=" + "resolved" "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "define-property" "^0.2.5" + "object-copy" "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", "statuses@~1.5.0": + "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + "version" "1.5.0" + +"std-env@^2.2.1": + "integrity" "sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw==" + "resolved" "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ci-info" "^3.0.0" + +"stealthy-require@^1.1.1": + "integrity" "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + "resolved" "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" + "version" "1.1.1" + +"stream-array@^1.1.2": + "integrity" "sha1-nl9zRfITfDDuO0mLkRToC1K7frU=" + "resolved" "https://registry.npmjs.org/stream-array/-/stream-array-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "readable-stream" "~2.1.0" + +"stream-browserify@^2.0.1": + "integrity" "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==" + "resolved" "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "inherits" "~2.0.1" + "readable-stream" "^2.0.2" + +"stream-combiner2@^1.1.1": + "integrity" "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=" + "resolved" "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "duplexer2" "~0.1.0" + "readable-stream" "^2.0.2" + +"stream-each@^1.1.0": + "integrity" "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==" + "resolved" "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" + "version" "1.2.3" + dependencies: + "end-of-stream" "^1.1.0" + "stream-shift" "^1.0.0" + +"stream-http@^2.7.2": + "integrity" "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==" + "resolved" "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + "version" "2.8.3" + dependencies: + "builtin-status-codes" "^3.0.0" + "inherits" "^2.0.1" + "readable-stream" "^2.3.6" + "to-arraybuffer" "^1.0.0" + "xtend" "^4.0.0" + +"stream-shift@^1.0.0": + "integrity" "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "resolved" "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" + "version" "1.0.1" + +"strict-uri-encode@^1.0.0": + "integrity" "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "resolved" "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + "version" "1.1.0" + +"strict-uri-encode@^2.0.0": + "integrity" "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + "resolved" "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + "version" "2.0.0" + +"string_decoder@^1.0.0", "string_decoder@^1.1.1", "string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string_decoder@~0.10.x": + "integrity" "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "version" "0.10.31" + +"string_decoder@0.10": + "integrity" "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "version" "0.10.31" + +"string-argv@^0.0.2": + "integrity" "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=" + "resolved" "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz" + "version" "0.0.2" + +"string-hash@^1.1.1": + "integrity" "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + "resolved" "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" + "version" "1.1.3" + +"string-length@^2.0.0": + "integrity" "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=" + "resolved" "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "astral-regex" "^1.0.0" + "strip-ansi" "^4.0.0" + +"string-template@~0.2.1": + "integrity" "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + "resolved" "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz" + "version" "0.2.1" + +"string-width@^1.0.1": + "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "code-point-at" "^1.0.0" + "is-fullwidth-code-point" "^1.0.0" + "strip-ansi" "^3.0.0" + +"string-width@^2.1.1": + "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" + +"string-width@^3.0.0", "string-width@^3.1.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^4.0.0", "string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.0" + +"string-width@^4.2.3": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string.prototype.padend@^3.0.0": + "integrity" "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==" + "resolved" "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.18.0-next.2" + +"string.prototype.trimend@^1.0.4": + "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" + "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"string.prototype.trimstart@^1.0.4": + "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" + "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + +"stringify-entities@^3.0.1": + "integrity" "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==" + "resolved" "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "character-entities-html4" "^1.0.0" + "character-entities-legacy" "^1.0.0" + "xtend" "^4.0.0" + +"stringify-object@^3.2.2": + "integrity" "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==" + "resolved" "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "get-own-enumerable-property-symbols" "^3.0.0" + "is-obj" "^1.0.1" + "is-regexp" "^1.0.0" + +"stringify-package@^1.0.1": + "integrity" "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==" + "resolved" "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz" + "version" "1.0.1" + +"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": + "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ansi-regex" "^2.0.0" + +"strip-ansi@^4.0.0": + "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "ansi-regex" "^3.0.0" + +"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + +"strip-ansi@^7.0.0": + "integrity" "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "ansi-regex" "^6.0.1" + +"strip-bom-string@^1.0.0": + "integrity" "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" + "resolved" "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + "version" "1.0.0" + +"strip-bom@^2.0.0": + "integrity" "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "is-utf8" "^0.2.0" + +"strip-bom@^3.0.0": + "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" + +"strip-eof@^1.0.0": + "integrity" "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + "version" "1.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-indent@^1.0.1": + "integrity" "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=" + "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "get-stdin" "^4.0.1" + +"strip-indent@^3.0.0": + "integrity" "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==" + "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "min-indent" "^1.0.0" + +"strip-json-comments@^2.0.1", "strip-json-comments@~2.0.1": + "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + +"strip-json-comments@^3.1.0": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"stylehacks@^4.0.0": + "integrity" "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==" + "resolved" "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "browserslist" "^4.0.0" + "postcss" "^7.0.0" + "postcss-selector-parser" "^3.0.0" + +"stylus-loader@^3.0.2": + "integrity" "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==" + "resolved" "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "loader-utils" "^1.0.2" + "lodash.clonedeep" "^4.5.0" + "when" "~3.6.x" + +"stylus@^0.54.8", "stylus@>=0.52.4": + "integrity" "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==" + "resolved" "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz" + "version" "0.54.8" + dependencies: + "css-parse" "~2.0.0" + "debug" "~3.1.0" + "glob" "^7.1.6" + "mkdirp" "~1.0.4" + "safer-buffer" "^2.1.2" + "sax" "~1.2.4" + "semver" "^6.3.0" + "source-map" "^0.7.3" + +"subarg@^1.0.0": + "integrity" "sha1-9izxdYHplrSPyWVpn1TAauJouNI=" + "resolved" "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "minimist" "^1.1.0" + +"supports-color@^2.0.0": + "integrity" "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "version" "2.0.0" + +"supports-color@^5.3.0", "supports-color@^5.5.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^6.0.0": + "integrity" "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^6.1.0": + "integrity" "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" + +"svg-tags@^1.0.0": + "integrity" "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" + "resolved" "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" + "version" "1.0.0" + +"svgo@^1.0.0": + "integrity" "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==" + "resolved" "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "chalk" "^2.4.1" + "coa" "^2.0.2" + "css-select" "^2.0.0" + "css-select-base-adapter" "^0.1.1" + "css-tree" "1.0.0-alpha.37" + "csso" "^4.0.2" + "js-yaml" "^3.13.1" + "mkdirp" "~0.5.1" + "object.values" "^1.1.0" + "sax" "~1.2.4" + "stable" "^0.1.8" + "unquote" "~1.1.1" + "util.promisify" "~1.0.0" + +"symbol-observable@^1.1.0": + "integrity" "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "resolved" "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" + "version" "1.2.0" + +"symbol-tree@^3.2.2": + "integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "resolved" "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + "version" "3.2.4" + +"synchronous-promise@^2.0.6": + "integrity" "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==" + "resolved" "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz" + "version" "2.0.15" + +"tapable@^1.0.0", "tapable@^1.1.3": + "integrity" "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + "resolved" "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + "version" "1.1.3" + +"tapable@^2.0.0", "tapable@^2.1.1", "tapable@^2.2.0": + "integrity" "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + "resolved" "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + "version" "2.2.1" + +"term-size@^2.1.0": + "integrity" "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + "resolved" "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" + "version" "2.2.1" + +"terser-webpack-plugin@^1.4.3": + "integrity" "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==" + "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz" + "version" "1.4.5" + dependencies: + "cacache" "^12.0.2" + "find-cache-dir" "^2.1.0" + "is-wsl" "^1.1.0" + "schema-utils" "^1.0.0" + "serialize-javascript" "^4.0.0" + "source-map" "^0.6.1" + "terser" "^4.1.2" + "webpack-sources" "^1.4.0" + "worker-farm" "^1.7.0" + +"terser-webpack-plugin@^5.1.3", "terser-webpack-plugin@^5.3.1": + "integrity" "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==" + "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" + "version" "5.3.1" + dependencies: + "jest-worker" "^27.4.5" + "schema-utils" "^3.1.1" + "serialize-javascript" "^6.0.0" + "source-map" "^0.6.1" + "terser" "^5.7.2" + +"terser@^4.1.2": + "integrity" "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==" + "resolved" "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" + "version" "4.8.0" + dependencies: + "commander" "^2.20.0" + "source-map" "~0.6.1" + "source-map-support" "~0.5.12" + +"terser@^5.10.0", "terser@^5.7.2": + "integrity" "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==" + "resolved" "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz" + "version" "5.11.0" + dependencies: + "acorn" "^8.5.0" + "commander" "^2.20.0" + "source-map" "~0.7.2" + "source-map-support" "~0.5.20" + +"test-exclude@^5.2.3": + "integrity" "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==" + "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz" + "version" "5.2.3" + dependencies: + "glob" "^7.1.3" + "minimatch" "^3.0.4" + "read-pkg-up" "^4.0.0" + "require-main-filename" "^2.0.0" + +"text-extensions@^1.0.0": + "integrity" "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==" + "resolved" "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" + "version" "1.9.0" + +"text-table@^0.2.0": + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"throat@^4.0.0": + "integrity" "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + "resolved" "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz" + "version" "4.1.0" + +"through@^2.3.6", "through@>=2.2.7 <3", "through@~2.3.4", "through@2": + "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "version" "2.3.8" + +"through2-filter@^3.0.0": + "integrity" "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==" + "resolved" "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "through2" "~2.0.0" + "xtend" "~4.0.0" + +"through2@^2.0.0", "through2@^2.0.3", "through2@~2.0.0": + "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==" + "resolved" "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "readable-stream" "~2.3.6" + "xtend" "~4.0.1" + +"through2@^4.0.0": + "integrity" "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==" + "resolved" "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "readable-stream" "3" + +"thunky@^1.0.2": + "integrity" "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "resolved" "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + "version" "1.1.0" + +"timers-browserify@^2.0.4": + "integrity" "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==" + "resolved" "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" + "version" "2.0.12" + dependencies: + "setimmediate" "^1.0.4" + +"timsort@^0.3.0": + "integrity" "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + "resolved" "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + "version" "0.3.0" + +"tiny-lr@^1.1.0": + "integrity" "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==" + "resolved" "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "body" "^5.1.0" + "debug" "^3.1.0" + "faye-websocket" "~0.10.0" + "livereload-js" "^2.3.0" + "object-assign" "^4.1.0" + "qs" "^6.4.0" + +"tmp@^0.0.33": + "integrity" "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==" + "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + "version" "0.0.33" + dependencies: + "os-tmpdir" "~1.0.2" + +"tmpl@1.0.5": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" + +"to-absolute-glob@^2.0.0": + "integrity" "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=" + "resolved" "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "is-absolute" "^1.0.0" + "is-negated-glob" "^1.0.0" + +"to-arraybuffer@^1.0.0": + "integrity" "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "resolved" "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + "version" "1.0.1" + +"to-factory@^1.0.0": + "integrity" "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=" + "resolved" "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz" + "version" "1.0.0" + +"to-fast-properties@^2.0.0": + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-object-path@^0.3.0": + "integrity" "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=" + "resolved" "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "kind-of" "^3.0.2" + +"to-readable-stream@^1.0.0": + "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + "version" "1.0.0" + +"to-regex-range@^2.1.0": + "integrity" "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"to-regex@^3.0.1", "to-regex@^3.0.2": + "integrity" "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==" + "resolved" "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "regex-not" "^1.0.2" + "safe-regex" "^1.1.0" + +"to-through@^2.0.0": + "integrity" "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=" + "resolved" "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "through2" "^2.0.3" + +"toidentifier@1.0.0": + "integrity" "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + "version" "1.0.0" + +"toml@^3.0.0": + "integrity" "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + "resolved" "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" + "version" "3.0.0" + +"toposort@^1.0.0": + "integrity" "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" + "resolved" "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz" + "version" "1.0.7" + +"toposort@^2.0.2": + "integrity" "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" + "resolved" "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz" + "version" "2.0.2" + +"tough-cookie@^2.3.3", "tough-cookie@^2.3.4", "tough-cookie@~2.5.0": + "integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "psl" "^1.1.28" + "punycode" "^2.1.1" + +"tr46@^1.0.1": + "integrity" "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "punycode" "^2.1.0" + +"trim-newlines@^1.0.0": + "integrity" "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + "version" "1.0.0" + +"trim-newlines@^3.0.0": + "integrity" "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" + "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" + "version" "3.0.1" + +"trim-off-newlines@^1.0.0": + "integrity" "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==" + "resolved" "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz" + "version" "1.0.3" + +"trough@^1.0.0": + "integrity" "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "resolved" "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz" + "version" "1.0.5" + +"ts-loader@^9.2.6": + "integrity" "sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==" + "resolved" "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz" + "version" "9.2.6" + dependencies: + "chalk" "^4.1.0" + "enhanced-resolve" "^5.0.0" + "micromatch" "^4.0.0" + "semver" "^7.3.4" + +"tslib@^1.9.0": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslib@^2.0.3", "tslib@^2.1.0": + "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + "version" "2.3.1" + +"tty-browserify@0.0.0": + "integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "resolved" "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + "version" "0.0.0" + +"tunnel-agent@^0.6.0": + "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "safe-buffer" "^5.0.1" + +"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": + "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "version" "0.14.5" + +"type-check@^0.4.0", "type-check@~0.4.0": + "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "prelude-ls" "^1.2.1" + +"type-check@~0.3.2": + "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "prelude-ls" "~1.1.2" + +"type-detect@4.0.8": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"type-fest@^0.18.0": + "integrity" "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" + "version" "0.18.1" + +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"type-fest@^0.6.0": + "integrity" "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" + "version" "0.6.0" + +"type-fest@^0.8.1": + "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + "version" "0.8.1" + +"type-is@~1.6.17", "type-is@~1.6.18": + "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" + "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + "version" "1.6.18" + dependencies: + "media-typer" "0.3.0" + "mime-types" "~2.1.24" + +"typedarray-to-buffer@^3.1.5": + "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" + "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "is-typedarray" "^1.0.0" + +"typedarray@^0.0.6", "typedarray@~0.0.5": + "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "version" "0.0.6" + +"typescript@*", "typescript@^4.5.5", "typescript@>=3.0.1": + "integrity" "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz" + "version" "4.5.5" + +"uc.micro@^1.0.1", "uc.micro@^1.0.5": + "integrity" "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + "resolved" "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" + "version" "1.0.6" + +"uglify-js@^3.1.4": + "integrity" "sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==" + "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz" + "version" "3.13.9" + +"uglify-js@3.4.x": + "integrity" "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==" + "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" + "version" "3.4.10" + dependencies: + "commander" "~2.19.0" + "source-map" "~0.6.1" + +"unbox-primitive@^1.0.1": + "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" + "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "function-bind" "^1.1.1" + "has-bigints" "^1.0.1" + "has-symbols" "^1.0.2" + "which-boxed-primitive" "^1.0.2" + +"unc-path-regex@^0.1.2": + "integrity" "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + "resolved" "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + "version" "0.1.2" + +"underscore@^1.13.1", "underscore@>=1.8.3", "underscore@1.4.4 - 1.8.3": + "integrity" "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==" + "resolved" "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz" + "version" "1.13.1" + +"unicode-canonical-property-names-ecmascript@^2.0.0": + "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-match-property-ecmascript@^2.0.0": + "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.0.0": + "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-property-aliases-ecmascript@^2.0.0": + "integrity" "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unified@^9.1.0": + "integrity" "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==" + "resolved" "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "bail" "^1.0.0" + "extend" "^3.0.0" + "is-buffer" "^2.0.0" + "is-plain-obj" "^2.0.0" + "trough" "^1.0.0" + "vfile" "^4.0.0" + +"union-value@^1.0.0": + "integrity" "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==" + "resolved" "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "arr-union" "^3.1.0" + "get-value" "^2.0.6" + "is-extendable" "^0.1.1" + "set-value" "^2.0.1" + +"uniq@^1.0.1": + "integrity" "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "resolved" "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + "version" "1.0.1" + +"uniqs@^2.0.0": + "integrity" "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + "resolved" "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "version" "2.0.0" + +"unique-filename@^1.1.1": + "integrity" "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==" + "resolved" "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "unique-slug" "^2.0.0" + +"unique-slug@^2.0.0": + "integrity" "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==" + "resolved" "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "imurmurhash" "^0.1.4" + +"unique-stream@^2.0.2": + "integrity" "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==" + "resolved" "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" + "version" "2.3.1" + dependencies: + "json-stable-stringify-without-jsonify" "^1.0.1" + "through2-filter" "^3.0.0" + +"unique-string@^2.0.0": + "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" + "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "crypto-random-string" "^2.0.0" + +"unist-builder@^2.0.0", "unist-builder@^2.0.3": + "integrity" "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" + "resolved" "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz" + "version" "2.0.3" + +"unist-util-generated@^1.0.0": + "integrity" "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + "resolved" "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz" + "version" "1.1.6" + +"unist-util-is@^4.0.0": + "integrity" "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + "resolved" "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz" + "version" "4.1.0" + +"unist-util-position@^3.0.0": + "integrity" "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + "resolved" "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz" + "version" "3.1.0" + +"unist-util-stringify-position@^2.0.0": + "integrity" "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==" + "resolved" "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz" + "version" "2.0.3" dependencies: "@types/unist" "^2.0.2" -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz" +"unist-util-visit-parents@^3.0.0": + "integrity" "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==" + "resolved" "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz" + "version" "3.1.1" dependencies: "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" + "unist-util-is" "^4.0.0" -unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" +"unist-util-visit@^2.0.0", "unist-util-visit@^2.0.3": + "integrity" "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==" + "resolved" "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" + "version" "2.0.3" dependencies: "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.0, upath@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" - -update-notifier@^4.0.0: - version "4.1.3" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz" + "unist-util-is" "^4.0.0" + "unist-util-visit-parents" "^3.0.0" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"unpipe@~1.0.0", "unpipe@1.0.0": + "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"unquote@~1.1.1": + "integrity" "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "resolved" "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + "version" "1.1.1" + +"unset-value@^1.0.0": + "integrity" "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=" + "resolved" "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-value" "^0.3.1" + "isobject" "^3.0.0" + +"upath@^1.1.0", "upath@^1.1.1": + "integrity" "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + "resolved" "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + "version" "1.2.0" + +"update-notifier@^4.0.0": + "integrity" "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==" + "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "boxen" "^4.2.0" + "chalk" "^3.0.0" + "configstore" "^5.0.1" + "has-yarn" "^2.1.0" + "import-lazy" "^2.1.0" + "is-ci" "^2.0.0" + "is-installed-globally" "^0.3.1" + "is-npm" "^4.0.0" + "is-yarn-global" "^0.3.0" + "latest-version" "^5.0.0" + "pupa" "^2.0.1" + "semver-diff" "^3.1.1" + "xdg-basedir" "^4.0.0" + +"upper-case@^1.1.1": + "integrity" "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + "resolved" "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "version" "1.1.3" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"urix@^0.1.0": + "integrity" "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + "version" "0.1.0" + +"url-loader@^1.0.1": + "integrity" "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==" + "resolved" "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "loader-utils" "^1.1.0" + "mime" "^2.0.3" + "schema-utils" "^1.0.0" + +"url-parse-lax@^3.0.0": + "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" + "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "prepend-http" "^2.0.0" + +"url-parse@^1.4.3", "url-parse@^1.5.1": + "integrity" "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==" + "resolved" "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + "version" "1.5.10" + dependencies: + "querystringify" "^2.1.1" + "requires-port" "^1.0.0" + +"url@^0.11.0": + "integrity" "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=" + "resolved" "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + "version" "0.11.0" + dependencies: + "punycode" "1.3.2" + "querystring" "0.2.0" + +"use@^3.1.0": + "integrity" "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "resolved" "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + "version" "3.1.1" + +"util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"util.promisify@^1.0.0": + "integrity" "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==" + "resolved" "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + "for-each" "^0.3.3" + "has-symbols" "^1.0.1" + "object.getownpropertydescriptors" "^2.1.1" + +"util.promisify@~1.0.0": + "integrity" "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==" + "resolved" "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "define-properties" "^1.1.3" + "es-abstract" "^1.17.2" + "has-symbols" "^1.0.1" + "object.getownpropertydescriptors" "^2.1.0" + +"util.promisify@1.0.0": + "integrity" "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" + "resolved" "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "define-properties" "^1.1.2" + "object.getownpropertydescriptors" "^2.0.3" + +"util@^0.11.0": + "integrity" "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==" + "resolved" "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + "version" "0.11.1" + dependencies: + "inherits" "2.0.3" + +"util@0.10.3": + "integrity" "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" + "resolved" "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "version" "0.10.3" + dependencies: + "inherits" "2.0.1" + +"utila@~0.4": + "integrity" "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "resolved" "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + "version" "0.4.0" + +"utils-merge@1.0.1": + "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"uuid@^3.3.2", "uuid@^3.4.0": + "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + "version" "3.4.0" + +"v8-compile-cache@^2.0.3": + "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + "version" "2.3.0" + +"validate-npm-package-license@^3.0.1": + "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" + "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "spdx-correct" "^3.0.0" + "spdx-expression-parse" "^3.0.0" + +"value-or-function@^3.0.0": + "integrity" "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + "resolved" "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" + "version" "3.0.0" + +"vary@~1.1.2": + "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" + +"vendors@^1.0.0": + "integrity" "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + "resolved" "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" + "version" "1.0.4" + +"verror@1.10.0": + "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" + "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "version" "1.10.0" + dependencies: + "assert-plus" "^1.0.0" + "core-util-is" "1.0.2" + "extsprintf" "^1.2.0" + +"vfile-message@^2.0.0": + "integrity" "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==" + "resolved" "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz" + "version" "2.0.4" dependencies: "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile-reporter@^6.0.0: - version "6.0.2" - resolved "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.2.tgz" - dependencies: - repeat-string "^1.5.0" - string-width "^4.0.0" - supports-color "^6.0.0" - unist-util-stringify-position "^2.0.0" - vfile-sort "^2.1.2" - vfile-statistics "^1.1.0" - -vfile-sort@^2.1.0, vfile-sort@^2.1.2: - version "2.2.2" - resolved "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz" - -vfile-statistics@^1.1.0: - version "1.1.4" - resolved "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz" + "unist-util-stringify-position" "^2.0.0" + +"vfile-reporter@^6.0.0": + "integrity" "sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==" + "resolved" "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "repeat-string" "^1.5.0" + "string-width" "^4.0.0" + "supports-color" "^6.0.0" + "unist-util-stringify-position" "^2.0.0" + "vfile-sort" "^2.1.2" + "vfile-statistics" "^1.1.0" + +"vfile-sort@^2.1.0", "vfile-sort@^2.1.2": + "integrity" "sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==" + "resolved" "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz" + "version" "2.2.2" + +"vfile-statistics@^1.1.0": + "integrity" "sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==" + "resolved" "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz" + "version" "1.1.4" + +"vfile@^4.0.0": + "integrity" "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==" + "resolved" "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz" + "version" "4.2.1" dependencies: "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -vinyl-fs@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0, vinyl@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" - -vue-loader@^15.7.1: - version "15.9.7" - resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.7.tgz" + "is-buffer" "^2.0.0" + "unist-util-stringify-position" "^2.0.0" + "vfile-message" "^2.0.0" + +"vinyl-fs@^3.0.2": + "integrity" "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==" + "resolved" "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "fs-mkdirp-stream" "^1.0.0" + "glob-stream" "^6.1.0" + "graceful-fs" "^4.0.0" + "is-valid-glob" "^1.0.0" + "lazystream" "^1.0.0" + "lead" "^1.0.0" + "object.assign" "^4.0.4" + "pumpify" "^1.3.5" + "readable-stream" "^2.3.3" + "remove-bom-buffer" "^3.0.0" + "remove-bom-stream" "^1.2.0" + "resolve-options" "^1.1.0" + "through2" "^2.0.0" + "to-through" "^2.0.0" + "value-or-function" "^3.0.0" + "vinyl" "^2.0.0" + "vinyl-sourcemap" "^1.1.0" + +"vinyl-sourcemap@^1.1.0": + "integrity" "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=" + "resolved" "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "append-buffer" "^1.0.2" + "convert-source-map" "^1.5.0" + "graceful-fs" "^4.1.6" + "normalize-path" "^2.1.1" + "now-and-later" "^2.0.0" + "remove-bom-buffer" "^3.0.0" + "vinyl" "^2.0.0" + +"vinyl@^2.0.0", "vinyl@^2.1.0": + "integrity" "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==" + "resolved" "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "clone" "^2.1.1" + "clone-buffer" "^1.0.0" + "clone-stats" "^1.0.0" + "cloneable-readable" "^1.0.0" + "remove-trailing-separator" "^1.0.1" + "replace-ext" "^1.0.0" + +"vm-browserify@^1.0.1": + "integrity" "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + "resolved" "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + "version" "1.1.2" + +"vue-hot-reload-api@^2.3.0": + "integrity" "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" + "resolved" "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" + "version" "2.3.4" + +"vue-loader@^15.7.1": + "integrity" "sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==" + "resolved" "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.7.tgz" + "version" "15.9.7" dependencies: "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-router@^3.4.5: - version "3.5.1" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz" - -vue-server-renderer@^2.6.10: - version "2.6.14" - resolved "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz" - dependencies: - chalk "^1.1.3" - hash-sum "^1.0.2" - he "^1.1.0" - lodash.template "^4.5.0" - lodash.uniq "^4.5.0" - resolve "^1.2.0" - serialize-javascript "^3.1.0" - source-map "0.5.6" - -vue-style-loader@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz" - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12: - version "2.6.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz" - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz" - -vue@^2.6.10: - version "2.6.14" - resolved "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz" - -vuepress-html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz" - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -vuepress-plugin-container@^2.0.2: - version "2.1.5" - resolved "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz" + "hash-sum" "^1.0.2" + "loader-utils" "^1.1.0" + "vue-hot-reload-api" "^2.3.0" + "vue-style-loader" "^4.1.0" + +"vue-router@^3.4.5": + "integrity" "sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw==" + "resolved" "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz" + "version" "3.5.1" + +"vue-server-renderer@^2.6.10": + "integrity" "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==" + "resolved" "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz" + "version" "2.6.14" + dependencies: + "chalk" "^1.1.3" + "hash-sum" "^1.0.2" + "he" "^1.1.0" + "lodash.template" "^4.5.0" + "lodash.uniq" "^4.5.0" + "resolve" "^1.2.0" + "serialize-javascript" "^3.1.0" + "source-map" "0.5.6" + +"vue-style-loader@^4.1.0": + "integrity" "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==" + "resolved" "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "hash-sum" "^1.0.2" + "loader-utils" "^1.0.2" + +"vue-template-compiler@^2.6.10", "vue-template-compiler@^2.6.12": + "integrity" "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==" + "resolved" "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz" + "version" "2.6.14" + dependencies: + "de-indent" "^1.0.2" + "he" "^1.1.0" + +"vue-template-es2015-compiler@^1.9.0": + "integrity" "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" + "resolved" "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz" + "version" "1.9.1" + +"vue@^2 || ^3.0.0-0", "vue@3.1.1": + "integrity" "sha512-j9fj3PNPMxo2eqOKYjMuss9XBS8ZtmczLY3kPvjcp9d3DbhyNqLYbaMQH18+1pDIzzVvQCQBvIf774LsjjqSKA==" + "resolved" "https://registry.npmjs.org/vue/-/vue-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "@vue/compiler-dom" "3.1.1" + "@vue/runtime-dom" "3.1.1" + "@vue/shared" "3.1.1" + +"vue@^2.6.10": + "integrity" "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + "resolved" "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz" + "version" "2.6.14" + +"vuepress-html-webpack-plugin@^3.2.0": + "integrity" "sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==" + "resolved" "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "html-minifier" "^3.2.3" + "loader-utils" "^0.2.16" + "lodash" "^4.17.3" + "pretty-error" "^2.0.2" + "tapable" "^1.0.0" + "toposort" "^1.0.0" + "util.promisify" "1.0.0" + +"vuepress-plugin-container@^2.0.2": + "integrity" "sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA==" + "resolved" "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz" + "version" "2.1.5" dependencies: "@vuepress/shared-utils" "^1.2.0" - markdown-it-container "^2.0.0" + "markdown-it-container" "^2.0.0" -vuepress-plugin-smooth-scroll@^0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz" +"vuepress-plugin-smooth-scroll@^0.0.3": + "integrity" "sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==" + "resolved" "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz" + "version" "0.0.3" dependencies: - smoothscroll-polyfill "^0.4.3" + "smoothscroll-polyfill" "^0.4.3" -vuepress@^1.8.2: - version "1.8.2" - resolved "https://registry.npmjs.org/vuepress/-/vuepress-1.8.2.tgz" +"vuepress@^1.8.2": + "integrity" "sha512-BU1lUDwsA3ghf7a9ga4dsf0iTc++Z/l7BR1kUagHWVBHw7HNRgRDfAZBDDQXhllMILVToIxaTifpne9mSi94OA==" + "resolved" "https://registry.npmjs.org/vuepress/-/vuepress-1.8.2.tgz" + "version" "1.8.2" dependencies: "@vuepress/core" "1.8.2" "@vuepress/theme-default" "1.8.2" - cac "^6.5.6" - envinfo "^7.2.0" - opencollective-postinstall "^2.0.2" - update-notifier "^4.0.0" + "cac" "^6.5.6" + "envinfo" "^7.2.0" + "opencollective-postinstall" "^2.0.2" + "update-notifier" "^4.0.0" -w3c-hr-time@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" +"w3c-hr-time@^1.0.1": + "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" + "resolved" "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + "version" "1.0.2" dependencies: - browser-process-hrtime "^1.0.0" + "browser-process-hrtime" "^1.0.0" -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" +"walker@^1.0.7", "walker@~1.0.5": + "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + "version" "1.0.8" dependencies: - makeerror "1.0.x" + "makeerror" "1.0.12" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" +"watchpack-chokidar2@^2.0.1": + "integrity" "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==" + "resolved" "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" + "version" "2.0.1" dependencies: - chokidar "^2.1.8" + "chokidar" "^2.1.8" -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz" +"watchpack@^1.7.4": + "integrity" "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==" + "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz" + "version" "1.7.5" dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" + "graceful-fs" "^4.1.2" + "neo-async" "^2.5.0" optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + "chokidar" "^3.4.1" + "watchpack-chokidar2" "^2.0.1" -watchpack@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" +"watchpack@^2.3.1": + "integrity" "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==" + "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" + "version" "2.3.1" dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" + "glob-to-regexp" "^0.4.1" + "graceful-fs" "^4.1.2" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" +"wbuf@^1.1.0", "wbuf@^1.7.3": + "integrity" "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==" + "resolved" "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + "version" "1.7.3" dependencies: - minimalistic-assert "^1.0.0" + "minimalistic-assert" "^1.0.0" -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" +"wcwidth@^1.0.1": + "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" dependencies: - defaults "^1.0.3" + "defaults" "^1.0.3" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" +"webidl-conversions@^4.0.2": + "integrity" "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" + "version" "4.0.2" -webpack-chain@^4.9.0: - version "4.12.1" - resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz" +"webpack-chain@^4.9.0": + "integrity" "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==" + "resolved" "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz" + "version" "4.12.1" dependencies: - deepmerge "^1.5.2" - javascript-stringify "^1.6.0" + "deepmerge" "^1.5.2" + "javascript-stringify" "^1.6.0" -webpack-chain@^6.0.0: - version "6.5.1" - resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz" +"webpack-chain@^6.0.0": + "integrity" "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==" + "resolved" "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz" + "version" "6.5.1" dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" + "deepmerge" "^1.5.2" + "javascript-stringify" "^2.0.1" -webpack-cli@^4.9.2: - version "4.9.2" - resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz" +"webpack-cli@^4.9.2", "webpack-cli@4.x.x": + "integrity" "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==" + "resolved" "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz" + "version" "4.9.2" dependencies: "@discoveryjs/json-ext" "^0.5.0" "@webpack-cli/configtest" "^1.1.1" "@webpack-cli/info" "^1.4.1" "@webpack-cli/serve" "^1.6.1" - colorette "^2.0.14" - commander "^7.0.0" - execa "^5.0.0" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-middleware@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz" - dependencies: - colorette "^2.0.10" - memfs "^3.4.1" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^3.5.1: - version "3.11.2" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz" - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-dev-server@^4.7.4: - version "4.7.4" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz" + "colorette" "^2.0.14" + "commander" "^7.0.0" + "execa" "^5.0.0" + "fastest-levenshtein" "^1.0.12" + "import-local" "^3.0.2" + "interpret" "^2.2.0" + "rechoir" "^0.7.0" + "webpack-merge" "^5.7.3" + +"webpack-dev-middleware@^3.7.2": + "integrity" "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==" + "resolved" "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" + "version" "3.7.3" + dependencies: + "memory-fs" "^0.4.1" + "mime" "^2.4.4" + "mkdirp" "^0.5.1" + "range-parser" "^1.2.1" + "webpack-log" "^2.0.0" + +"webpack-dev-middleware@^5.3.1": + "integrity" "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==" + "resolved" "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz" + "version" "5.3.1" + dependencies: + "colorette" "^2.0.10" + "memfs" "^3.4.1" + "mime-types" "^2.1.31" + "range-parser" "^1.2.1" + "schema-utils" "^4.0.0" + +"webpack-dev-server@^3.5.1": + "integrity" "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==" + "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz" + "version" "3.11.2" + dependencies: + "ansi-html" "0.0.7" + "bonjour" "^3.5.0" + "chokidar" "^2.1.8" + "compression" "^1.7.4" + "connect-history-api-fallback" "^1.6.0" + "debug" "^4.1.1" + "del" "^4.1.1" + "express" "^4.17.1" + "html-entities" "^1.3.1" + "http-proxy-middleware" "0.19.1" + "import-local" "^2.0.0" + "internal-ip" "^4.3.0" + "ip" "^1.1.5" + "is-absolute-url" "^3.0.3" + "killable" "^1.0.1" + "loglevel" "^1.6.8" + "opn" "^5.5.0" + "p-retry" "^3.0.1" + "portfinder" "^1.0.26" + "schema-utils" "^1.0.0" + "selfsigned" "^1.10.8" + "semver" "^6.3.0" + "serve-index" "^1.9.1" + "sockjs" "^0.3.21" + "sockjs-client" "^1.5.0" + "spdy" "^4.0.2" + "strip-ansi" "^3.0.1" + "supports-color" "^6.1.0" + "url" "^0.11.0" + "webpack-dev-middleware" "^3.7.2" + "webpack-log" "^2.0.0" + "ws" "^6.2.1" + "yargs" "^13.3.2" + +"webpack-dev-server@^4.7.4": + "integrity" "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==" + "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz" + "version" "4.7.4" dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -11663,424 +13876,522 @@ webpack-dev-server@^4.7.4: "@types/serve-index" "^1.9.1" "@types/sockjs" "^0.3.33" "@types/ws" "^8.2.2" - ansi-html-community "^0.0.8" - bonjour "^3.5.0" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - default-gateway "^6.0.3" - del "^6.0.0" - express "^4.17.1" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.0" - ipaddr.js "^2.0.1" - open "^8.0.9" - p-retry "^4.5.0" - portfinder "^1.0.28" - schema-utils "^4.0.0" - selfsigned "^2.0.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - spdy "^4.0.2" - strip-ansi "^7.0.0" - webpack-dev-middleware "^5.3.1" - ws "^8.4.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.1.2: - version "4.2.2" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" - dependencies: - lodash "^4.17.15" - -webpack-merge@^5.7.3: - version "5.8.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - -webpack@^4.8.1: - version "4.46.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz" + "ansi-html-community" "^0.0.8" + "bonjour" "^3.5.0" + "chokidar" "^3.5.3" + "colorette" "^2.0.10" + "compression" "^1.7.4" + "connect-history-api-fallback" "^1.6.0" + "default-gateway" "^6.0.3" + "del" "^6.0.0" + "express" "^4.17.1" + "graceful-fs" "^4.2.6" + "html-entities" "^2.3.2" + "http-proxy-middleware" "^2.0.0" + "ipaddr.js" "^2.0.1" + "open" "^8.0.9" + "p-retry" "^4.5.0" + "portfinder" "^1.0.28" + "schema-utils" "^4.0.0" + "selfsigned" "^2.0.0" + "serve-index" "^1.9.1" + "sockjs" "^0.3.21" + "spdy" "^4.0.2" + "strip-ansi" "^7.0.0" + "webpack-dev-middleware" "^5.3.1" + "ws" "^8.4.2" + +"webpack-log@^2.0.0": + "integrity" "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==" + "resolved" "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ansi-colors" "^3.0.0" + "uuid" "^3.3.2" + +"webpack-merge@^4.1.2": + "integrity" "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==" + "resolved" "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "lodash" "^4.17.15" + +"webpack-merge@^5.7.3": + "integrity" "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==" + "resolved" "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" + "version" "5.8.0" + dependencies: + "clone-deep" "^4.0.1" + "wildcard" "^2.0.0" + +"webpack-sources@^1.1.0", "webpack-sources@^1.4.0", "webpack-sources@^1.4.1": + "integrity" "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==" + "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + "version" "1.4.3" + dependencies: + "source-list-map" "^2.0.0" + "source-map" "~0.6.1" + +"webpack-sources@^3.2.3": + "integrity" "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + "version" "3.2.3" + +"webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0", "webpack@^4.4.0", "webpack@^4.8.1": + "integrity" "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz" + "version" "4.46.0" dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/wasm-edit" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpack@^5.69.1: - version "5.69.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz" + "acorn" "^6.4.1" + "ajv" "^6.10.2" + "ajv-keywords" "^3.4.1" + "chrome-trace-event" "^1.0.2" + "enhanced-resolve" "^4.5.0" + "eslint-scope" "^4.0.3" + "json-parse-better-errors" "^1.0.2" + "loader-runner" "^2.4.0" + "loader-utils" "^1.2.3" + "memory-fs" "^0.4.1" + "micromatch" "^3.1.10" + "mkdirp" "^0.5.3" + "neo-async" "^2.6.1" + "node-libs-browser" "^2.2.1" + "schema-utils" "^1.0.0" + "tapable" "^1.1.3" + "terser-webpack-plugin" "^1.4.3" + "watchpack" "^1.7.4" + "webpack-sources" "^1.4.1" + +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.20.0", "webpack@^5.69.1", "webpack@>=2", "webpack@4.x.x || 5.x.x": + "integrity" "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz" + "version" "5.69.1" dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/wasm-edit" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.3" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.3.1" - webpack-sources "^3.2.3" - -webpackbar@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz" - dependencies: - ansi-escapes "^4.1.0" - chalk "^2.4.1" - consola "^2.6.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^5.1.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@^3.6.2: - version "3.6.2" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz" - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -when@~3.6.x: - version "3.6.4" - resolved "https://registry.npmjs.org/when/-/when-3.6.4.tgz" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - -which@^1.2.10, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - dependencies: - string-width "^4.0.0" - -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" - dependencies: - errno "~0.1.7" - -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^5.2.0: - version "5.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" - dependencies: - async-limiter "~1.0.0" - -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" - dependencies: - async-limiter "~1.0.0" - -ws@^8.4.2: - version "8.5.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - -xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.7" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz" - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz" - -yargs@^13.3.0, yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.0.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.2.1: - version "17.3.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz" - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - -yup@^0.27.0: - version "0.27.0" - resolved "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz" + "acorn" "^8.4.1" + "acorn-import-assertions" "^1.7.6" + "browserslist" "^4.14.5" + "chrome-trace-event" "^1.0.2" + "enhanced-resolve" "^5.8.3" + "es-module-lexer" "^0.9.0" + "eslint-scope" "5.1.1" + "events" "^3.2.0" + "glob-to-regexp" "^0.4.1" + "graceful-fs" "^4.2.9" + "json-parse-better-errors" "^1.0.2" + "loader-runner" "^4.2.0" + "mime-types" "^2.1.27" + "neo-async" "^2.6.2" + "schema-utils" "^3.1.0" + "tapable" "^2.1.1" + "terser-webpack-plugin" "^5.1.3" + "watchpack" "^2.3.1" + "webpack-sources" "^3.2.3" + +"webpackbar@3.2.0": + "integrity" "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==" + "resolved" "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "ansi-escapes" "^4.1.0" + "chalk" "^2.4.1" + "consola" "^2.6.0" + "figures" "^3.0.0" + "pretty-time" "^1.1.0" + "std-env" "^2.2.1" + "text-table" "^0.2.0" + "wrap-ansi" "^5.1.0" + +"websocket-driver@^0.7.4", "websocket-driver@>=0.5.1": + "integrity" "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==" + "resolved" "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + "version" "0.7.4" + dependencies: + "http-parser-js" ">=0.5.1" + "safe-buffer" ">=5.1.0" + "websocket-extensions" ">=0.1.1" + +"websocket-extensions@>=0.1.1": + "integrity" "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + "resolved" "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + "version" "0.1.4" + +"whatwg-encoding@^1.0.1", "whatwg-encoding@^1.0.3": + "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" + "resolved" "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "iconv-lite" "0.4.24" + +"whatwg-fetch@^3.6.2": + "integrity" "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + "resolved" "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" + "version" "3.6.2" + +"whatwg-mimetype@^2.1.0", "whatwg-mimetype@^2.2.0": + "integrity" "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + "version" "2.3.0" + +"whatwg-url@^6.4.1": + "integrity" "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz" + "version" "6.5.0" + dependencies: + "lodash.sortby" "^4.7.0" + "tr46" "^1.0.1" + "webidl-conversions" "^4.0.2" + +"whatwg-url@^7.0.0": + "integrity" "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" + "version" "7.1.0" + dependencies: + "lodash.sortby" "^4.7.0" + "tr46" "^1.0.1" + "webidl-conversions" "^4.0.2" + +"when@~3.6.x": + "integrity" "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=" + "resolved" "https://registry.npmjs.org/when/-/when-3.6.4.tgz" + "version" "3.6.4" + +"which-boxed-primitive@^1.0.2": + "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@^1.2.10": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^1.2.9": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^1.3.0": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"widest-line@^3.1.0": + "integrity" "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==" + "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "string-width" "^4.0.0" + +"wildcard@^2.0.0": + "integrity" "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" + "resolved" "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" + "version" "2.0.0" + +"word-wrap@^1.2.3", "word-wrap@~1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wordwrap@^1.0.0": + "integrity" "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "resolved" "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + "version" "1.0.0" + +"worker-farm@^1.7.0": + "integrity" "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==" + "resolved" "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "errno" "~0.1.7" + +"wrap-ansi@^3.0.1": + "integrity" "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "string-width" "^2.1.1" + "strip-ansi" "^4.0.0" + +"wrap-ansi@^5.1.0": + "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "string-width" "^3.0.0" + "strip-ansi" "^5.0.0" + +"wrap-ansi@^6.2.0": + "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^3.0.0": + "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "imurmurhash" "^0.1.4" + "is-typedarray" "^1.0.0" + "signal-exit" "^3.0.2" + "typedarray-to-buffer" "^3.1.5" + +"write-file-atomic@2.4.1": + "integrity" "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "graceful-fs" "^4.1.11" + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.2" + +"ws@^5.2.0": + "integrity" "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==" + "resolved" "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" + "version" "5.2.3" + dependencies: + "async-limiter" "~1.0.0" + +"ws@^6.2.1": + "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==" + "resolved" "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "async-limiter" "~1.0.0" + +"ws@^8.4.2": + "integrity" "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==" + "resolved" "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" + "version" "8.5.0" + +"xdg-basedir@^4.0.0": + "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + "version" "4.0.0" + +"xml-name-validator@^3.0.0": + "integrity" "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + "version" "3.0.0" + +"xtend@^4.0.0", "xtend@^4.0.2", "xtend@~4.0.0", "xtend@~4.0.1": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^2.1.2": + "integrity" "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + "version" "2.1.2" + +"yallist@^3.0.2": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^13.1.2": + "integrity" "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + "version" "13.1.2" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^18.1.2": + "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + "version" "18.1.3" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^20.2.2", "yargs-parser@^20.2.3": + "integrity" "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz" + "version" "20.2.7" + +"yargs-parser@^21.0.0": + "integrity" "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" + +"yargs@^13.3.0": + "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + "version" "13.3.2" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.2" + +"yargs@^13.3.2": + "integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + "version" "13.3.2" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.2" + +"yargs@^15.3.1": + "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + "version" "15.4.1" + dependencies: + "cliui" "^6.0.0" + "decamelize" "^1.2.0" + "find-up" "^4.1.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^4.2.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^18.1.2" + +"yargs@^16.0.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@^16.2.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@^17.2.1": + "integrity" "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz" + "version" "17.3.1" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.3" + "y18n" "^5.0.5" + "yargs-parser" "^21.0.0" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" + +"yup@^0.27.0": + "integrity" "sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==" + "resolved" "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz" + "version" "0.27.0" dependencies: "@babel/runtime" "^7.0.0" - fn-name "~2.0.1" - lodash "^4.17.11" - property-expr "^1.5.0" - synchronous-promise "^2.0.6" - toposort "^2.0.2" - -zepto@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz" - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz" + "fn-name" "~2.0.1" + "lodash" "^4.17.11" + "property-expr" "^1.5.0" + "synchronous-promise" "^2.0.6" + "toposort" "^2.0.2" + +"zepto@^1.2.0": + "integrity" "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=" + "resolved" "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz" + "version" "1.2.0" + +"zwitch@^1.0.0": + "integrity" "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + "resolved" "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz" + "version" "1.0.5" From cc84c79aa504d84aafe9f7ea90fbc36ddf0112c1 Mon Sep 17 00:00:00 2001 From: Alex Ritter Date: Thu, 7 Apr 2022 22:03:53 +0200 Subject: [PATCH 2/4] Update config to use simple typed object --- dist/grapes.min.js | 4 +- dist/grapes.min.js.map | 2 +- package.json | 5 +- src/abstract/Module.ts | 10 +- src/abstract/ModuleConfig.ts | 30 ---- src/abstract/View.ts | 4 +- src/editor/model/Editor.js | 4 + yarn.lock | 321 +++++++++++++++++++++-------------- 8 files changed, 214 insertions(+), 166 deletions(-) delete mode 100644 src/abstract/ModuleConfig.ts diff --git a/dist/grapes.min.js b/dist/grapes.min.js index 1a2f6096c..2bf112c8f 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,3 +1,3 @@ -/*! grapesjs - 0.19.2 */ -!function(t,e){'object'==typeof exports&&'object'==typeof module?module.exports=e():'function'==typeof define&&define.amd?define([],e):'object'==typeof exports?exports.grapesjs=e():t.grapesjs=e()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(function(){return(()=>{var t={7757:(t,e,n)=>{t.exports=n(5666)},4374:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>et,evAdd:()=>U,evAll:()=>B,evClose:()=>K,evCustom:()=>q,evOpen:()=>G,evPfx:()=>V,evRemove:()=>W,evRemoveBefore:()=>$,evSelect:()=>H,evUpdate:()=>z,evUpload:()=>Y,evUploadEnd:()=>J,evUploadError:()=>Q,evUploadRes:()=>tt,evUploadStart:()=>X});var r=n(4942),i=n(9050),o=n(3821);const a={assets:[],noAssets:'',stylePrefix:'am-',upload:0,uploadName:'files',headers:{},params:{},credentials:'include',multiUpload:!0,autoAdd:!0,customFetch:null,uploadFile:null,embedAsBase64:!0,handleAdd:null,beforeUpload:null,showUrlInput:!0,custom:!1,dropzone:!1,openAssetsOnDrop:1,dropzoneContent:''};var s=n(3144),l=n(5671),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"defaults",value:function(){return{type:'',src:''}}},{key:"getType",value:function(){return this.get('type')}},{key:"getSrc",value:function(){return this.get('src')}},{key:"getFilename",value:function(){return this.get('src').split('/').pop().split('?').shift()}},{key:"getExtension",value:function(){return this.getFilename().split('.').pop()}}]),n}(n(6409).Z);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.className=this.pfx+'asset',this.listenTo(this.model,'destroy remove',this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)}},{key:"__getBhv",value:function(){var t=this.em,e=t&&t.get('AssetManager');return e&&e.__getBehaviour()||{}}},{key:"template",value:function(){var t=this.pfx;return"\n
\n ").concat(this.getPreview(),"\n
\n
\n ").concat(this.getInfo(),"\n
\n
\n ⨯\n
\n ")}},{key:"updateTarget",value:function(t){t&&t.set&&(t.set('attributes',(0,i.clone)(t.get('attributes'))),t.set('src',this.model.get('src')))}},{key:"getPreview",value:function(){return''}},{key:"getInfo",value:function(){return''}},{key:"render",value:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}}]),n}(h.View),C=n(8595);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var P=function(t){(0,c.Z)(n,t);var e=S(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"getPreview",value:function(){var t=this.pfx,e=this.ppfx,n=this.model.get('src');return(0,C.Z)(k||(k=(0,b.Z)(["\n
\n
\n "])),t,n,t,e)}},{key:"getInfo",value:function(){var t=this.pfx,e=this.model,n=e.get('name'),r=e.get('width'),i=e.get('height'),o=e.get('unitDim'),a=r&&i?"".concat(r,"x").concat(i).concat(o):'';return n=n||e.getFilename(),(0,C.Z)(x||(x=(0,b.Z)(["\n
","
\n
","
\n "])),t,n,t,a)}},{key:"init",value:function(t){var e=this.pfx;this.className+=" ".concat(e,"asset-image")}},{key:"onClick",value:function(){var t=this.model,e=this.pfx,n=this.__getBhv().select,r=this.config.onClick,o=this.collection;o.trigger('deselectAll'),this.$el.addClass(e+'highlight'),(0,i.isFunction)(n)?n(t,!1):(0,i.isFunction)(r)?r(t):this.updateTarget(o.target)}},{key:"onDblClick",value:function(){var t=this.em,e=this.model,n=this.__getBhv().select,r=this.config.onDblClick,o=this.collection,a=o.target,s=o.onSelect;(0,i.isFunction)(n)?n(e,!0):(0,i.isFunction)(r)?r(e):(this.updateTarget(a),t&&t.get('Modal').close()),(0,i.isFunction)(s)&&s(e)}},{key:"onRemove",value:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}}]),n}(O);P.prototype.events={'click [data-toggle=asset-remove]':'onRemove',click:'onClick',dblclick:'onDblClick'};var _=n(6475);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var E=function(t){(0,c.Z)(n,t);var e=T(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n)}(h.Collection.extend(_.Z));function j(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}E.prototype.types=[{id:'image',model:y,view:P,isType:function(t){return'string'==typeof t?{type:'image',src:t}:t}}];var D=function(t){(0,c.Z)(n,t);var e=j(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.ppfx,r=t.em,i='';return this.config.showUrlInput&&(i="\n
\n
\n \n
\n \n
\n
\n ")),"\n
\n
\n ").concat(i,"\n
\n
\n
\n
\n ")}},{key:"initialize",value:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.em=this.config.em;var e=this.collection;this.listenTo(e,'reset',this.renderAssets),this.listenTo(e,'add',this.addToAsset),this.listenTo(e,'remove',this.removedAsset),this.listenTo(e,'deselectAll',this.deselectAll)}},{key:"handleSubmit",value:function(t){t.preventDefault();var e=this.getAddInput(),n=e&&e.value.trim(),r=this.config.handleAdd;n&&(e.value='',this.getAssetsEl().scrollTop=0,r?r.bind(this)(n):this.options.globalCollection.add(n,{at:0}))}},{key:"getAssetsEl",value:function(){return this.el.querySelector(".".concat(this.pfx,"assets"))}},{key:"getAddInput",value:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector(".".concat(this.pfx,"add-asset input"))),this.inputUrl}},{key:"removedAsset",value:function(t){this.collection.length||this.toggleNoAssets()}},{key:"addToAsset",value:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)}},{key:"addAsset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.collection,i=this.config,o=new t.typeView({model:t,collection:r,config:i}).render().el;if(n)n.appendChild(o);else{var a=this.getAssetsEl();a&&a.insertBefore(o,a.firstChild)}return o}},{key:"toggleNoAssets",value:function(t){var e=this.$el.find(".".concat(this.pfx,"assets"));if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}}},{key:"deselectAll",value:function(){var t=this.pfx;this.$el.find(".".concat(t,"highlight")).removeClass("".concat(t,"highlight"))}},{key:"renderAssets",value:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find(".".concat(this.pfx,"assets"));n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each((function(n){return t.addAsset(n,e)})),n.append(e)}},{key:"render",value:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className="".concat(this.ppfx,"asset-manager"),this.renderAssets(),this}}]),n}(h.View);D.prototype.events={submit:'handleSubmit'};var R,A=n(7644);function M(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return Z(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Z(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n
","
\n \n
\n \n "])),e,n,r,i?'disabled':'',o?'multiple':'')}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.module=t.module,this.config=e,this.em=this.config.em,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.target=this.options.globalCollection||{},this.uploadId=this.pfx+'uploadFile',this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.multiUpload=void 0===e.multiUpload||e.multiUpload,this.events=(0,r.Z)({},"change #".concat(this.uploadId),'uploadFile');var n=e.uploadFile;n?this.uploadFile=n.bind(this):!e.upload&&e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()}},{key:"onUploadStart",value:function(){var t=this.module;t&&t.__propEv('asset:upload:start')}},{key:"onUploadEnd",value:function(t){var e=this.$el,n=this.module;n&&n.__propEv('asset:upload:end',t);var r=e.find('input');r&&r.val('')}},{key:"onUploadError",value:function(t){var e=this.module;console.error(t),this.onUploadEnd(t),e&&e.__propEv('asset:upload:error',t)}},{key:"onUploadResponse",value:function(t,e){var n,r=this.module,i=this.config,o=this.target;try{n='string'==typeof t?JSON.parse(t):t}catch(e){n=t}r&&r.__propEv('asset:upload:response',n),i.autoAdd&&o&&o.add(n.data,{at:0}),this.onUploadEnd(t),e&&e(n)}},{key:"uploadFile",value:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i=this.config,o=i.beforeUpload;if(!1!==(o&&o(r))){var a=new FormData,s=i.params,l=i.customFetch;for(var c in s)a.append(c,s[c]);if(this.multiUpload)for(var u=0;u").concat(r.dropzoneContent,"")),f(),'draggable'in o&&[o,s].forEach((function(t){t.ondragover=h,t.ondragleave=d,t.ondrop=p}))}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.em;return t.html(this.template({title:n&&n.t('assetManager.uploadTitle'),uploadId:this.uploadId,disabled:this.disabled,multiUpload:this.multiUpload,pfx:e})),this.initDrop(),t.attr('class',e+'file-uploader'),this}}]),n}(h.View);function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function F(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=(s=F(F({},a),r)).pStylePrefix,o=s,l=o.em;return this.config=s,this.em=l,i&&(s.stylePrefix=i+s.stylePrefix),t=new E([]),e=new E([]),this.all=t,this.__initListen(),t.on('add',(function(t){return n.getAllVisible().add(t)})),t.on('remove',(function(t){return n.getAllVisible().remove(t)})),this},__propEv:function(t){for(var e,n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=this.em.get('Commands');e.run(l,F({types:['image'],select:function(){}},t))},close:function(){this.em.get('Commands').stop(l)},isOpen:function(){var t=this.em.get('Commands');return!(!t||!t.isActive(l))},add:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===n.at&&(n.at=0),t.add(e,n)},get:function(e){return t.where({src:e})[0]||null},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t,e){return this.__remove(t,e)},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t)},getContainer:function(){return this.__getBehaviour().container||n&&n.el},getAssetsEl:function(){return n.el.querySelector('[data-el=assets]')},render:function(t){if(!this.getConfig('custom')){var r=t||this.getAll().models;if(!n){var i=this.__viewParams();i.fu=this.FileUploader();var o=n&&n.el;(n=new D(F({el:o},i))).render()}return e.reset(r),this.getContainer()}},__viewParams:function(){return{collection:e,globalCollection:t,config:s,module:this}},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return n},FileUploader:function(){return r||(r=new N(this.__viewParams())),r},onLoad:function(){var t=this;this.getAll().reset(s.assets);var e=this.em,n=this.events;e.on("run:".concat(l),(function(){return t.__propEv(n.open)})),e.on("stop:".concat(l),(function(){return t.__propEv(n.close)}))},postRender:function(t){s.dropzone&&r&&r.initDropzone(t)},setTarget:function(t){e.target=t},onSelect:function(t){e.onSelect=t},onClick:function(t){s.onClick=t},onDblClick:function(t){s.onDblClick=t},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=F(F({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},destroy:function(){t.stopListening(),e.stopListening(),t.reset(),e.reset(),r&&r.remove(),n&&n.remove(),[t,e,n,r].forEach((function(t){return null})),this._bhv={},this.all={},s={}}})}},796:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>$,evAdd:()=>I,evAll:()=>L,evCustom:()=>W,evDrag:()=>H,evDragStart:()=>z,evDragStop:()=>U,evPfx:()=>N,evRemove:()=>B,evRemoveBefore:()=>V,evUpdate:()=>F});var r=n(4942),i=n(9050),o=n(3821);const a={appendTo:'',appendOnClick:!1,blocks:[],custom:!1};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(6409);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{label:'',content:'',media:'',category:'',activate:!1,select:null,resetId:!1,disable:!1,onClick:null,attributes:{}}}},{key:"getId",value:function(){return this.id}},{key:"getLabel",value:function(){return this.get('label')}},{key:"getMedia",value:function(){return this.get('media')}},{key:"getContent",value:function(){return this.get('content')}},{key:"getCategoryLabel",value:function(){var t=this.get('category');return(0,i.isFunction)(t.get)?t.get('label'):t.label?t.label:t}}]),n}(h.Z),g=n(2316);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var m=function(t){(0,c.Z)(n,t);var e=v(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(g.Collection);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}m.prototype.model=p;var b=function(t){(0,c.Z)(n,t);var e=y(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{id:'',label:'',open:!0,attributes:{}}}}]),n}(h.Z);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(g.Collection);k.prototype.model=b;var x=n(3168);function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var C,S=function(t){(0,c.Z)(n,t);var e=O(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"events",value:function(){return{click:'handleClick',mousedown:'startDrag',dragstart:'handleDragStart',drag:'handleDrag',dragend:'handleDragEnd'}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model;this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change',this.render)}},{key:"__getModule",value:function(){return this.em.get('BlockManager')}},{key:"handleClick",value:function(t){var e=this.config,n=this.model,r=this.em,o=n.get('onClick')||e.appendOnClick;if(r.trigger('block:click',n,t),o){if((0,i.isFunction)(o))return o(n,r.getEditor(),{event:t});var a,s,l=e.getSorter(),c=n.get('content'),u=r.getSelected();if(l.setDropContent(c),u)if(l.validTarget(u.getEl(),c).valid)a=u;else{var f=u.parent();l.validTarget(f.getEl(),c).valid&&(a=f,s=f.components().indexOf(u)+1)}if(!a){var h=r.getWrapper();l.validTarget(h.getEl(),c).valid&&(a=h)}var d=a&&a.append(c,{at:s})[0];d&&r.setSelected(d,{scroll:1})}}},{key:"startDrag",value:function(t){var e=this.config,n=this.em,r=this.model.get('disable');if(0===t.button&&e.getSorter&&!this.el.draggable&&!r){n.refreshCanvas();var i=e.getSorter();i.setDragHelper(this.el,t),i.setDropContent(this.model.get('content')),i.startSort(this.el),(0,x.on)(document,'mouseup',this.endDrag)}}},{key:"handleDragStart",value:function(t){this.__getModule().__startDrag(this.model,t)}},{key:"handleDrag",value:function(t){this.__getModule().__drag(t)}},{key:"handleDragEnd",value:function(){this.__getModule().__endDrag()}},{key:"endDrag",value:function(t){(0,x.off)(document,'mouseup',this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.ppfx,i=this.model,o=i.get('disable'),a=i.get('attributes')||{},s=a.class||'',l="".concat(r,"block"),c=t&&t.t("blockManager.labels.".concat(i.id))||i.get('label'),u=i.get('render'),f=i.get('media'),h=o?"".concat(l,"--disable"):"".concat(r,"four-color-h");n.attr(a),e.className="".concat(s," ").concat(l," ").concat(r,"one-bg ").concat(h).trim(),e.innerHTML="\n ".concat(f?"
").concat(f,"
"):'',"\n
").concat(c,"
\n "),e.title=a.title||e.textContent.trim(),e.setAttribute('draggable',!(!(0,x.hasDnd)(t)||o));var d=u&&u({el:e,model:i,className:l,prefix:r});return d&&(e.innerHTML=d),this}}]),n}(g.View),P=n(168),_=n(8595);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var E=function(t){(0,c.Z)(n,t);var e=T(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.label;return(0,_.Z)(C||(C=(0,P.Z)(["\n
\n \n ","\n
\n
\n "])),e,e,n,e)}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initialize",value:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t;var e=t.pStylePrefix||'';this.em=t.em,this.pfx=e,this.caretR='fa fa-caret-right',this.caretD='fa fa-caret-down',this.iconClass="".concat(e,"caret-icon"),this.activeClass="".concat(e,"open"),this.className="".concat(e,"block-category"),this.events={},this.events["click .".concat(e,"title")]='toggle',this.listenTo(this.model,'change:open',this.updateVisibility),this.delegateEvents(),this.model.view=this}},{key:"updateVisibility",value:function(){this.model.get('open')?this.open():this.close()}},{key:"open",value:function(){this.$el.addClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretD),this.getBlocksEl().style.display=''}},{key:"close",value:function(){this.$el.removeClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretR),this.getBlocksEl().style.display='none'}},{key:"toggle",value:function(){var t=this.model;t.set('open',!t.get('open'))}},{key:"getIconEl",value:function(){return this.iconEl||(this.iconEl=this.el.querySelector('.'+this.iconClass)),this.iconEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector('.'+this.pfx+'blocks-c')),this.blocksEl}},{key:"append",value:function(t){this.getBlocksEl().appendChild(t)}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.pfx,o=t.t("blockManager.categories.".concat(r.id))||r.get('label');return e.innerHTML=this.template({pfx:i,label:o}),n.addClass(this.className),n.css({order:r.get('order')}),this.updateVisibility(),this}}]),n}(g.View);function j(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=D(D({},this.config),t)}},{key:"getSorter",value:function(){if(this.em){if(!this.sorter){var t=this.em.get('Utils'),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:'a',wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}}},{key:"onDrag",value:function(t){this.em.stopDefault(),this.em.trigger('block:drag:start',t)}},{key:"onMove",value:function(t){this.em.trigger('block:drag:move',t)}},{key:"onDrop",value:function(t){var e=this.em;if(e.runDefault(),t&&t.get){var n='activeOnRender';t.get(n)&&(t.trigger('active'),t.unset(n)),e.trigger('block:drag:stop',t)}}},{key:"addTo",value:function(t){this.add(t)}},{key:"add",value:function(t,e){var n=this.config,r=e||null,o=new S({model:t,attributes:t.get('attributes')},n).render().el,a=t.get('category');if(a&&this.categories&&!n.ignoreCategories){(0,i.isString)(a)?a={id:a,label:a}:(0,i.isObject)(a)&&!a.id&&(a.id=a.label);var s=this.categories.add(a),l=s.get('id'),c=this.renderedCategories[l],u=this.getCategoriesEl();return t.set('category',s,{silent:!0}),!c&&u&&(c=new E({model:s},this.config).render(),this.renderedCategories[l]=c,u.appendChild(c.el)),void(c&&c.append(o))}r?r.appendChild(o):this.append(o)}},{key:"getCategoriesEl",value:function(){return this.catsEl||(this.catsEl=this.el.querySelector(".".concat(this.catsClass))),this.catsEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector(".".concat(this.noCatClass," .").concat(this.blockContClass))),this.blocksEl}},{key:"append",value:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)}},{key:"render",value:function(){var t=this,e=this.ppfx,n=document.createDocumentFragment();this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML="\n
\n
\n
\n
\n "),this.collection.each((function(e){return t.add(e,n)})),this.append(n);var r="".concat(this.blockContClass,"s ").concat(e,"one-bg ").concat(e,"two-color");return this.$el.addClass(r),this.rendered=!0,this}}]),n}(g.View);function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Z(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=r=Z(Z({},a),n),o=i.em;return this.em=o,t=new m(r.blocks),e=new m(t.models),s=new k,this.all=t,this.__initListen(),t.on('add',(function(t){return e.add(t)})),t.on('remove',(function(t){return e.remove(t)})),t.on('reset',(function(t){return e.reset(t.models)})),this},__trgCustom:function(){this.em.trigger(this.events.custom,this.__customData())},__customData:function(){var t=this,e=this.__getBehaviour();return{bm:this,blocks:this.getAll().models,container:e.container,dragStart:function(e,n){return t.startDrag(e,n)},drag:function(e){return t.__drag(e)},dragStop:function(e){return t.endDrag(e)}}},__startDrag:function(e,n){var r=this.em,i=this.events,o=e.getContent?e.getContent():e;this._dragBlock=e,r.set({dragResult:null,dragContent:o}),[r,t].map((function(t){return t.trigger(i.dragStart,e,n)}))},__drag:function(e){var n=this.em,r=this.events,i=this._dragBlock;[n,t].map((function(t){return t.trigger(r.drag,i,e)}))},__endDrag:function(){var e=this.em,n=this.events,r=this._dragBlock,o=e.get('dragResult');if(this._dragBlock=null,o){var a='activeOnRender',s=o.get&&o.get(a),l=r.get('activate')||s,c=r.get('select'),u=(0,i.isArray)(o)?o[0]:o;(c||l&&!1!==c)&&e.setSelected(u),l&&(u.trigger('active'),s&&u.unset(a)),r.get('resetId')&&u.onAll((function(t){return t.resetId()}))}e.set({dragResult:null,dragContent:null}),[e,t].map((function(t){return t.trigger(n.dragEnd,o,r)}))},__getFrameViews:function(){return this.em.get('Canvas').getFrames().map((function(t){return t.view}))},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=Z(Z({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},startDrag:function(t,e){this.__startDrag(t,e),this.__getFrameViews().forEach((function(t){return t.droppable.startCustom()}))},endDrag:function(t){this.__getFrameViews().forEach((function(e){return e.droppable.endCustom(t)})),this.__endDrag()},getConfig:function(){return r},postRender:function(){n=new A({collection:e,categories:s},r);var t=this.getConfig().appendTo;if(t){var o=(0,i.isElement)(t)?t:document.querySelector(t);if(!o)return this.__logWarn('"appendTo" element not found');o.appendChild(this.render(e.models))}this.__trgCustom()},add:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n||{};return i.id=e,t.add(i,r)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getCategories:function(){return s},getContainer:function(){return n.el},render:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t||this.getAll().models;if(e.external){var o=new m(i);return new A({collection:o,categories:s},Z(Z({},r),e)).render().el}return n&&(n.updateConfig(e),n.collection.reset(i),n.rendered||(n.render(),n.rendered=1)),this.getContainer()},destroy:function(){var i=[t,e,s];i.map((function(t){return t.stopListening()})),i.map((function(t){return t.reset()})),n&&n.remove(),r={},t={},e={},n={},s=[],this.all={}}})}},6242:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>H});var r=n(2982),i=n(4942),o=n(9050),a=n(3168);const s={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,extHl:0,notTextable:['button','a','input[type=checkbox]','input[type=radio]']};var l=n(5671),c=n(3144),u=n(9340),f=n(2963),h=n(1120),d=n(6409),p=n(9084),g=n(8445);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var m=function(t){(0,u.Z)(n,t);var e=v(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frame:'',frames:'',rulers:!1,zoom:100,x:0,y:0,scripts:[],styles:[]}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.em;this.config=e,this.em=n,this.set('frames',new g.Z),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(n,'change:device',this.updateDevice),this.listenTo(n,p.evPageSelect,this._pageUpdated)}},{key:"init",value:function(){var t=this.em.get('PageManager').getMain(),e=t.getMainFrame();this.set('frames',t.getFrames()),this.updateDevice({frame:e})}},{key:"_pageUpdated",value:function(t,e){var n=this.em;n.setSelected(),n.get('readyCanvas')&&n.stopDefault(),e&&e.getFrames().map((function(t){return t.disable()})),this.set('frames',t.getFrames())}},{key:"updateDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e.getDeviceModel(),r=t.frame||e.getCurrentFrameModel();if(r&&n){var i=n.attributes,o=i.width,a=i.height;r.set({width:o,height:a},{noUndo:1})}}},{key:"onZoomChange",value:function(){this.get('zoom')<1&&this.set('zoom',1)}}]),n}(d.Z),y=n(2316),b=n(827),w=n(9384),k=n(698);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var O=function(){function t(e,n){var r=this;(0,l.Z)(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.getComponent().getEl()})),a=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,(0,o.bindAll)(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),a.forEach((function(t){return r.toggleEffects(t,1)})),this}return(0,c.Z)(t,[{key:"toggleEffects",value:function(t,e){var n={on:a.on,off:a.off},r=e?'on':'off';n[r](t,'dragenter',this.handleDragEnter),n[r](t,'dragover',this.handleDragOver),n[r](t,'drop',this.handleDrop),n[r](t,'dragleave',this.handleDragLeave)}},{key:"__customTglEff",value:function(t){var e=t?a.on:a.off,n=this.el.ownerDocument,r=n.defaultView.frameElement;this.sortOpts=t?{onStart:function(t){var e=t.sorter;(0,a.on)(r,'pointermove',e.onMove)},onEnd:function(t){var e=t.sorter;(0,a.off)(r,'pointermove',e.onMove)},customTarget:function(t){var e=t.event;return n.elementFromPoint(e.clientX,e.clientY)}}:null,e(r,'pointerenter',this.handleDragEnter),e(r,'pointermove',this.handleDragOver),e(document,'pointerup',this.handleDrop),e(r,'pointerout',this.handleDragLeave)}},{key:"startCustom",value:function(){this.__customTglEff(!0)}},{key:"endCustom",value:function(t){this.over?this.endDrop(t):this.__customTglEff(!1)}},{key:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),this.__customTglEff(!1),n.trigger('canvas:dragend',e)}},{key:"handleDragLeave",value:function(t){this.updateCounter(-1,t)}},{key:"updateCounter",value:function(t,e){this.counter+=t,0===this.counter&&this.endDrop(1,e)}},{key:"handleDragEnter",value:function(t){var e=this,n=this.em,r=t.dataTransfer;if(this.updateCounter(1,t),!this.over){this.over=1;var o,a,s=n.get('Utils'),l=n.get('Canvas'),c=n.get('dragContent')||'
';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),f=u.append({})[0],h=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:f,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var a=f.getStyle(),s=a.left,l=a.top,h=a.position;o.addStyle({left:s,top:l,position:h})}e.handleDragEnd(o,r),f.remove()}});o=function(e){return h.stop(t,{cancel:e})},a=function(t){return c=t}}else{var d=new s.Sorter(function(t){for(var e=1;e=0)a=t&&t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if((0,o.indexOf)(n,'text/uri-list')>=0)a={type:'link',attributes:{href:a},content:a};else if((0,o.indexOf)(n,'text/json')>=0){var u=t&&t.getData('text/json');u&&(a=JSON.parse(u))}else 1===n.length&&'text/plain'===n[0]&&(a="
".concat(a,"
"));var f={content:a};return e.trigger('canvas:dragdata',t,f),f}}]),t}();function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(t).sort().map((function(e){return"[".concat(e,"=\"").concat(t[e],"\"]")})).join('')},s=function(t,e,n){t.forEach((function(t){var r=t.tag,i=t.attributes;!e.some((function(t){return t.tag===r&&a(t.attributes)===a(i)}))&&n.push(t)}))};s(i,o,r),s(o,i,n),n.forEach((function(t){var n=e.querySelector("".concat(t.tag).concat(a(t.attributes)));n&&n.parentNode.removeChild(n)})),(0,b.SJ)(e,r)}},{key:"getEl",value:function(){return this.el}},{key:"getCanvasModel",value:function(){return this.em.get('Canvas').getModel()}},{key:"getWindow",value:function(){return this.getEl().contentWindow}},{key:"getDoc",value:function(){return this.getEl().contentDocument}},{key:"getHead",value:function(){return this.getDoc().querySelector('head')}},{key:"getBody",value:function(){return this.getDoc().querySelector('body')}},{key:"getWrapper",value:function(){return this.getBody().querySelector('[data-gjs-type=wrapper]')}},{key:"getJsContainer",value:function(){return this.jsContainer||(this.jsContainer=(0,b.ut)('div',{class:"".concat(this.ppfx,"js-cont")})),this.jsContainer}},{key:"getToolsEl",value:function(){var t=this.config.frameWrapView;return t&&t.elTools}},{key:"getGlobalToolsEl",value:function(){return this.em.get('Canvas').getGlobalToolsEl()}},{key:"getHighlighter",value:function(){return this._getTool('[data-hl]')}},{key:"getBadgeEl",value:function(){return this._getTool('[data-badge]')}},{key:"getOffsetViewerEl",value:function(){return this._getTool('[data-offset]')}},{key:"getRect",value:function(){return this.rect||(this.rect=this.el.getBoundingClientRect()),this.rect}},{key:"getOffsetRect",value:function(){var t=this.el,e=this.getBody(),n=e.scrollTop,r=e.scrollLeft,i=t.offsetHeight,o=t.offsetWidth;return{top:t.offsetTop,left:t.offsetLeft,height:i,width:o,scrollTop:n,scrollLeft:r,scrollBottom:n+i,scrollRight:r+o}}},{key:"_getTool",value:function(t){var e=this.tools,n=this.getToolsEl();return e[t]||(e[t]=n.querySelector(t)),e[t]}},{key:"remove",value:function(){var t=this.wrapper;this._toggleEffects(),this.tools={},t&&t.remove(),y.View.prototype.remove.apply(this,arguments)}},{key:"startAutoscroll",value:function(){var t=this;this.lastMaxHeight=this.getWrapper().offsetHeight-this.el.offsetHeight,setTimeout((function(){t._toggleAutoscrollFx(1),requestAnimationFrame(t.autoscroll)}),0)}},{key:"autoscroll",value:function(){if(this.dragging){var t=this.lastClientY,e=this.em.get('Canvas'),n=this.getWindow(),r=this.getBody().scrollTop,i=t||0,a=e.getConfig().autoscrollLimit,s=this.getRect().height-a,l=r;if(is&&(l+=i-s),!(0,o.isUndefined)(t)&&l!==r&&l>0&&l0){var l=r.shift(),c=(0,b.ut)('script',S({type:'text/javascript'},(0,o.isString)(l)?{src:l}:l));c.onerror=c.onload=n.bind(null,r),e.contentDocument.head.appendChild(c)}else t.renderBody(),i&&i.trigger(a,s)};e.onload=function(){i&&i.trigger("".concat(a,":before"),s),c((0,r.Z)(l.get('scripts')))}}},{key:"renderStyles",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getHead(),n=this.getCanvasModel(),r=function(t){return t.map((function(t){return{tag:'link',attributes:S({rel:'stylesheet'},(0,o.isString)(t)?{href:t}:t)}}))},i=r(t.prev||n.previous('styles')),a=r(n.get('styles')),s=[],l=[],c=function(t,e,n){t.forEach((function(t){var r=t.attributes.href;!e.some((function(t){return t.attributes.href===r}))&&n.push(t)}))};c(a,i,l),c(i,a,s),s.forEach((function(t){var n=e.querySelector("link[href=\"".concat(t.attributes.href,"\"]"));n&&n.parentNode.removeChild(n)})),(0,b.SJ)(e,l)}},{key:"renderBody",value:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=e.em,o=this.getDoc(),s=this.getBody(),l=this.getWindow(),c=i.get('Config');l._isEditor=!0,this.renderStyles({prev:[]});(0,b.R3)(s,""));var u=n.getComponent(),f=i.get('DomComponents').getType('wrapper').view;this.wrapper=new f({model:u,config:S(S({},u.config),{},{frameView:this})}).render(),(0,b.R3)(s,this.wrapper.el),(0,b.R3)(s,new k.Z({collection:n.getStyles(),config:S(S({},i.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),(0,b.R3)(s,this.getJsContainer()),(0,a.on)(s,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),(0,a.on)(s,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'pointerdown pointermove pointerup',class:'PointerEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){o.addEventListener(n,(function(n){return t.el.dispatchEvent((0,b.t3)(n,e.class))}))}))})),this._toggleEffects(1),this.droppable=(0,a.hasDnd)(i)&&new O(i,this.wrapper.el),n.trigger('loaded')}},{key:"_toggleEffects",value:function(t){var e=t?a.on:a.off,n=this.getWindow();n&&e(n,"".concat(b.G1," resize"),this._emitUpdate)}},{key:"_emitUpdate",value:function(){this.model._emitUpdated()}}]),n}(y.View),T=n(1981);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.bindAll)(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=j(j({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,a=r.em;this.cv=i,this.config=r,this.em=a,this.canvas=a&&a.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new _({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),this.updateOffset=(0,o.debounce)(this.updateOffset.bind(this)),this.updateSize=(0,o.debounce)(this.updateSize.bind(this)),this.listenTo(n,'loaded',this.frameLoaded),this.listenTo(n,'change:x change:y',this.updatePos),this.listenTo(n,'change:width change:height',this.updateSize),this.listenTo(n,'destroy remove',this.remove),this.updatePos(),this.setupDragger()}},{key:"setupDragger",value:function(){var t,e,n,r=this,i=this.canvas,o=this.model,a=function(t){i.toggleFramesEvents(t)};this.dragger=new T.Z({onStart:function(){var i=o.attributes,s=i.x,l=i.y;n=r.em.getZoomMultiplier(),t=s,e=l,a()},onEnd:function(){return a(1)},setPosition:function(r){o.set({x:t+r.x*n,y:e+r.y*n})}})}},{key:"startDrag",value:function(t){t&&this.dragger.start(t)}},{key:"__clear",value:function(t){var e=this.frame;e&&e.remove(t),(0,b.L_)(this.elTools)}},{key:"remove",value:function(t){var e=this;return this.__clear(t),y.View.prototype.remove.apply(this,arguments),['frame','dragger','cv','em','canvas','elTools'].forEach((function(t){return e[t]=0})),this}},{key:"updateOffset",value:function(){var t=this.em,e=this.$el,n=this.frame;t&&(t.runDefault({preserveSelected:1}),e.removeClass(this.classAnim),n.model._emitUpdated())}},{key:"updatePos",value:function(t){var e=this.model,n=this.el,r=e.attributes,i=r.x,o=r.y,a=n.style;this.frame.rect=0,a.left=isNaN(i)?i:"".concat(i,"px"),a.top=isNaN(o)?o:"".concat(o,"px"),t&&this.updateOffset()}},{key:"updateSize",value:function(){this.updateDim()}},{key:"updateDim",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,a=this.frame;if(a){a.rect=0,n.addClass(i);var s=this.__handleSize(),l=s.noChanges,c=s.width,u=s.height;((0,o.isNull)(c)||(0,o.isNull)(u))&&r.set(j(j({},c?{}:{width:e.offsetWidth}),u?{}:{height:e.offsetHeight}),{silent:1}),t.stopDefault({preserveSelected:1}),l?this.updateOffset():setTimeout(this.updateOffset,350)}}},{key:"onScroll",value:function(){var t=this.frame;this.em.trigger('frame:scroll',{frame:t,body:t.getBody(),target:t.getWindow()})}},{key:"frameLoaded",value:function(){this.frame.getWindow().onscroll=this.onScroll,this.updateDim()}},{key:"__handleSize",value:function(){var t=this.model,e=this.el.style,n=t.attributes,r=n.width,i=n.height,a=e.width||'',s=e.height||'',l=r||'',c=i||'',u=a==l&&s==c;return e.width=(0,o.isNumber)(l)?"".concat(l).concat("px"):l,e.height=(0,o.isNumber)(c)?"".concat(c).concat("px"):c,{noChanges:u,width:r,height:i,newW:l,newH:c}}},{key:"render",value:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,a=i.attributes.onRender;this.__clear(),this.__handleSize(),t.render(),e.empty().attr({class:"".concat(n,"frame-wrapper")}).append("\n
\n
\n ").concat(i.get('name')||'',"\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n ")).append(t.el);var s=(0,b.ut)('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n "));this.elTools=s;var l=r.toolsWrapper;return l&&l.appendChild(s),a&&a({el:o,elTop:o.querySelector('[data-frame-top]'),elRight:o.querySelector('[data-frame-right]'),elBottom:o.querySelector('[data-frame-bottom]'),elLeft:o.querySelector('[data-frame-left]'),frame:i,frameWrapperView:this,remove:this.remove,startDrag:this.startDrag}),this}}]),n}(y.View);function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var M,Z=function(t){(0,u.Z)(n,t);var e=A(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,l.Z)(this,n),(t=e.call(this,r,i,!0)).listenTo(t.collection,'reset',t.render),t}return(0,c.Z)(n,[{key:"onRemoveBefore",value:function(t,e){t.forEach((function(t){return t.remove(e)}))}},{key:"onRender",value:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}}]),n}(w.Z);function L(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e\n
\n ")}},{key:"initialize",value:function(t){(0,o.bindAll)(this,'clearOff','onKeyPress','onCanvasMove');var e=this.model;this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.config.stylePrefix+'canvas';var n=this.em;this._initFrames(),this.listenTo(n,'change:canvasOffset',this.clearOff),this.listenTo(n,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(e,'change:frames',this._onFramesUpdate),this.toggleListeners(1)}},{key:"_onFramesUpdate",value:function(){this._initFrames(),this._renderFrames()}},{key:"_initFrames",value:function(){var t=this.frames,e=this.model,n=this.config,r=this.em,i=e.get('frames');r.set('readyCanvas',0),i.once('loaded:all',(function(){return r.set('readyCanvas',1)})),t&&t.remove(),this.frames=new Z({collection:i,config:N(N({},n),{},{canvasView:this})})}},{key:"checkSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.scroll,r=this.em.get('currentFrame');n&&t.views.forEach((function(t){t._getFrame()===r&&t.scrollIntoView(n)}))}},{key:"remove",value:function(){this.frames.remove(),this.frames={},y.View.prototype.remove.apply(this,arguments),this.toggleListeners()}},{key:"preventDefault",value:function(t){t&&(t.preventDefault(),t._parentEvent&&t._parentEvent.preventDefault())}},{key:"onCanvasMove",value:function(t){}},{key:"toggleListeners",value:function(t){this.el;var e=t?a.on:a.off;e(document,'keypress',this.onKeyPress),e(window,'scroll resize',this.clearOff)}},{key:"onKeyPress",value:function(t){var e=this.em;' '!==(0,a.getKeyChar)(t)||1===e.getZoomDecimal()||e.get('Canvas').isInputFocused()||(this.preventDefault(t),e.get('Editor').runCommand('core:canvas-move'))}},{key:"onWheel",value:function(t){if((t.ctrlKey||t.metaKey)&&this.em.getConfig('multiFrames')){this.preventDefault(t);var e=this.model,n=Math.max(-1,Math.min(1,t.wheelDelta||-t.detail)),r=e.get('zoom');e.set('zoom',r+2*n)}}},{key:"updateFrames",value:function(t){var e=this.em,n=this.model.attributes,r=n.x,i=n.y,o=this.getZoom(),a={preserveSelected:1},s=o?1/o:1;this.framesArea.style.transform="scale(".concat(o,") translate(").concat(r*s,"px, ").concat(i*s,"px)"),this.clearOff(),e.stopDefault(a),e.trigger('canvas:update',t),M&&clearTimeout(M),M=setTimeout((function(){return e.runDefault(a)}),300)}},{key:"getZoom",value:function(){return this.em.getZoomDecimal()}},{key:"isElInViewport",value:function(t){var e=(0,a.getElement)(t),n=(0,a.getElRect)(e),r=this.getFrameOffset(e),i=n.top,o=n.left;return i>=0&&o>=0&&i<=r.height&&o<=r.width}},{key:"offset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElRect)(t),r=t.ownerDocument.body,i=e.noScroll;return{top:n.top+(i?0:r.scrollTop),left:n.left+(i?0:r.scrollLeft),width:n.width,height:n.height}}},{key:"clearOff",value:function(){this.frmOff=null,this.cvsOff=null}},{key:"getFrameOffset",value:function(t){if(!this.frmOff||t){var e=this.frame.el,n=t&&t.ownerDocument.defaultView,r=n?n.frameElement:e;this.frmOff=this.offset(r||e)}return this.frmOff}},{key:"getCanvasOffset",value:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff}},{key:"getElementPos",value:function(t,e){var n=this.getZoom(),r=e||{},i=this.getFrameOffset(t),o=this.getCanvasOffset(),a=this.offset(t,e),s=r.avoidFrameOffset?0:i.top,l=r.avoidFrameOffset?0:i.left;return{top:a.top*n+s-o.top,left:a.left*n+l-o.left,height:a.height*n,width:a.width*n,zoom:n,rect:a}}},{key:"getElementOffsets",value:function(t){var e=this;if(!t||(0,a.isTextNode)(t))return{};var n={},r=window.getComputedStyle(t);return['marginTop','marginRight','marginBottom','marginLeft','paddingTop','paddingRight','paddingBottom','paddingLeft'].forEach((function(t){n[t]=parseFloat(r[t])*e.getZoom()})),n}},{key:"getPosition",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.frame.el.contentDocument;if(e){var n=e.body,r=this.getZoom(),i=this.getFrameOffset(),o=this.getCanvasOffset(),a=t.noScroll;return{top:i.top+(a?0:n.scrollTop)*r-o.top,left:i.left+(a?0:n.scrollLeft)*r-o.left,width:o.width,height:o.height}}}},{key:"updateScript",value:function(t){var e=t.model,n=e.getId();t.scriptContainer||(t.scriptContainer=(0,b.ut)('div',{'data-id':n}),this.getJsContainer().appendChild(t.scriptContainer)),t.el.id=n,t.scriptContainer.innerHTML='';var r=document.createElement('script'),i=e.getScriptString(),o=e.get('script-props')?i:"function(){\n".concat(i,"\n;}"),a=JSON.stringify(e.__getScriptProps());r.innerHTML="\n setTimeout(function() {\n var item = document.getElementById('".concat(n,"');\n if (!item) return;\n (").concat(o,".bind(item))(").concat(a,")\n }, 1);"),setTimeout((function(){var e=t.scriptContainer;null==e||e.appendChild(r)}),0)}},{key:"getJsContainer",value:function(t){var e=this.getFrameView(t);return e&&e.getJsContainer()}},{key:"getFrameView",value:function(t){return t&&t._getFrame()||this.em.get('currentFrame')}},{key:"_renderFrames",value:function(){if(this.ready){var t=this.model,e=this.frames,n=this.em,r=this.framesArea,i=t.get('frames');i.listenToLoad(),e.render();var o=i.at(0),a=o&&o.view;n.setCurrentFrame(a),r&&r.appendChild(e.el),this.frame=a}}},{key:"render",value:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.config,i=this.em;e.html(this.template());var o=e.find('[data-frames]');this.framesArea=o.get(0);var s=e.find('[data-tools]');this.toolsWrapper=s.get(0),s.append("\n
\n
\n
\n
\n
\n
\n ").concat(r.extHl?"
"):'',"\n
\n
\n
\n
\n
\n
\n
\n "));var l=t.querySelector("#".concat(n,"tools"));return this.hlEl=t.querySelector(".".concat(n,"highlighter")),this.badgeEl=t.querySelector(".".concat(n,"badge")),this.placerEl=t.querySelector(".".concat(n,"placeholder")),this.ghostEl=t.querySelector(".".concat(n,"ghost")),this.toolbarEl=t.querySelector(".".concat(n,"toolbar")),this.resizerEl=t.querySelector(".".concat(n,"resizer")),this.offsetEl=t.querySelector(".".concat(n,"offset-v")),this.fixedOffsetEl=t.querySelector(".".concat(n,"offset-fixed-v")),this.toolsGlobEl=t.querySelector(".".concat(n,"tools-gl")),this.toolsEl=l,this.el.className=(0,a.getUiClass)(i,this.className),this.ready=1,this._renderFrames(),this}}]),n}(y.View);function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function V(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=V(V(V({},s),e),{},{module:this}),this.em=n.em;var r=n,i=r.scripts,o=r.styles,a=n.pStylePrefix;return a&&(n.stylePrefix=a+n.stylePrefix),t=new m({scripts:i,styles:o},e),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},onLoad:function(){this.model.init()},getModel:function(){return t},getConfig:function(){return n},getElement:function(){return e.el},getFrame:function(t){return this.getFrames()[t||0]},getFrameEl:function(){var t=(e||{}).frame;return t&&t.el},getFramesEl:function(){return e.framesArea},getWindow:function(){return this.getFrameEl().contentWindow},getDocument:function(){var t=this.getFrameEl();return t&&t.contentDocument},getBody:function(){var t=this.getDocument();return t&&t.body},_getCompFrame:function(t){return t&&t._getFrame()},_getLocalEl:function(t,e,n){var r=t,i=this._getCompFrame(e);return r=i?i[n]():r},getGlobalToolsEl:function(){return e.toolsGlobEl},getToolsEl:function(t){return this._getLocalEl(e.toolsEl,t,'getToolsEl')},getHighlighter:function(t){return this._getLocalEl(e.hlEl,t,'getHighlighter')},getBadgeEl:function(t){return this._getLocalEl(e.badgeEl,t,'getBadgeEl')},getPlacerEl:function(){return e.placerEl},getGhostEl:function(){return e.ghostEl},getToolbarEl:function(){return e.toolbarEl},getResizerEl:function(){return e.resizerEl},getOffsetViewerEl:function(t){return this._getLocalEl(e.offsetEl,t,'getOffsetViewerEl')},getFixedOffsetViewerEl:function(){return e.fixedOffsetEl},render:function(){return e&&e.remove(),(e=new F({model:t,config:n})).render().el},getOffset:function(){var t=this.offset(this.getFrameEl()),e=this.offset(this.getElement());return{top:t.top-e.top,left:t.left-e.left}},offset:function(t){return e.offset(t)},setCustomBadgeLabel:function(t){n.customBadgeLabel=t},getElementPos:function(t,n){return e.getElementPos(t,n)},getElementOffsets:function(t){return e.getElementOffsets(t)},getRect:function(){var t=e.getPosition(),n=t.top,r=t.left;return V(V({},e.getCanvasOffset()),{},{topScroll:n,leftScroll:r})},getTargetToElementDim:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i||{},a=e.getPosition();if(a){var s=o.elPos||e.getElementPos(r),l=i.toRight||0,c=o.targetHeight||t.offsetHeight,u=o.targetWidth||t.offsetWidth,f=o.event||null,h=s.top-c,d=s.left;d+=l?s.width:0;var p=(d=l?d-u:d)s.top+s.height?s.top+s.height:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:a.top,canvasLeft:a.left,canvasWidth:a.width,canvasHeight:a.height};return f&&n.em&&n.em.trigger(f,v),v}},canvasRectOffset:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=function(t){var e=t.defaultView;return e&&e.frameElement},o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0,a=n.em.getZoomDecimal(),s=e?'top':'left',l=t.ownerDocument,c=r.offset?i(l):{},u=c.offsetTop,f=void 0===u?0:u,h=c.offsetLeft,d=void 0===h?0:h,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,y=void 0===m?0:m,b=e?v:y,w=e?f:d;return o[s]-(b-w)*a};return{top:o(t,1,e),left:o(t,0,e)}},getTargetToElementFixed:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.pos||this.getElementPos(t),i=n.canvasOff||this.canvasRectOffset(t,r),a=e.offsetHeight||0,s=e.offsetWidth||0,l=r.left+r.width,c=this.getCanvasView(),u=c.getPosition(),f=c.getFrameOffset(t),h=n.event,d=-a,p=(0,o.isUndefined)(n.left)?r.width-s:n.left;p=r.left<-p?-r.left:p,p=l>u.width?p-(l-u.width):p;var g=r.height+a,v=g1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElement)(t),r=n&&(0,a.getViewEl)(n);r&&r.scrollIntoView(e)},startAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.startAutoscroll()},stopAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.stopAutoscroll()},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},setCoords:function(e,n){return t.set({x:parseFloat(e),y:parseFloat(n)}),this},getCoords:function(){var e=t.attributes;return{x:e.x,y:e.y}},getZoomDecimal:function(){return this.getZoom()/100},getZoomMultiplier:function(){var t=this.getZoomDecimal();return t?1/t:1},toggleFramesEvents:function(t){this.getFramesEl().style.pointerEvents=t?'':'none'},getFrames:function(){return t.get('frames').map((function(t){return t}))},addFrame:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.get('frames').add(V({},e),V(V({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e&&e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},8445:(t,e,n)=>{"use strict";n.d(e,{Z:()=>O});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(9050),u=n(2316),f=n(2982),h=n(6409),d=n(3168);function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.config,r=n.em,i=this.attributes,o=i.styles,a=i.component,s=r.get('DomComponents'),l=s.getConfig(),u=r.get('CssComposer').getAll(),f={};this.em=r;var h={em:r,config:l,frame:this,idMap:f};if(!(0,d.isComponent)(a)){var p=(0,d.isObject)(a)?a:{components:a};!p.type&&(p.type='wrapper');var g=s.getType('wrapper').model;this.set('component',new g(p,h))}if(o){if(!(0,d.isObject)(o)){var v=Object.keys(f);v.length&&Array.isArray(o)&&o.forEach((function(t){var e=t.selectors;if(e&&1==e.length){var n=e[0],r=n.name&&2===n.type&&n;if(r&&f[r.name])r.name=f[r.name];else if((0,c.isString)(n)&&'#'===n[0]){var i=n.substring(1);i&&f[i]&&(e[0]="#".concat(f[i]))}}})),u.add(o),this.set('styles',u)}}else this.set('styles',u);!t.width&&this.set(m,1),!t.height&&this.set(y,1)}},{key:"onRemove",value:function(){this.getComponent().remove({root:1})}},{key:"changesUp",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.temporary||t.noCount||t.avoidStore||this.set('changesCount',this.get('changesCount')+1)}},{key:"getComponent",value:function(){return this.get('component')}},{key:"getStyles",value:function(){return this.get('styles')}},{key:"disable",value:function(){this.trigger('disable')}},{key:"remove",value:function(){this.view=0;var t=this.collection;return t&&t.remove(this)}},{key:"getHead",value:function(){var t=this.get('head')||[];return(0,f.Z)(t)}},{key:"setHead",value:function(t){return this.set('head',(0,f.Z)(t))}},{key:"addHeadItem",value:function(t){var e=this.getHead();e.push(t),this.setHead(e)}},{key:"getHeadByAttr",value:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]}},{key:"removeHeadByAttr",value:function(t,e,n){var r=this.getHead(),i=this.getHeadByAttr(t,e,n),o=r.indexOf(i);o>=0&&(r.splice(o,1),this.setHead(r))}},{key:"addLink",value:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})}},{key:"removeLink",value:function(t){this.removeHeadByAttr('href',t,'link')}},{key:"addScript",value:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})}},{key:"removeScript",value:function(t){this.removeHeadByAttr('src',t,'script')}},{key:"getPage",value:function(){var t=this.collection;return t&&t.page}},{key:"_emitUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',g({frame:this},t))}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=h.Z.prototype.toJSON.call(this,t),n=(0,c.result)(this,'defaults');return t.fromUndo&&delete e.component,delete e.styles,delete e.changesCount,e.__aw&&delete e.width,e.__ah&&delete e.height,(0,c.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,c.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),(0,c.forEach)(['attributes','head'],(function(t){(0,c.isEmpty)(e[t])&&delete e[t]})),e}}]),n}(h.Z);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,c.bindAll)(this,'itemLoaded'),this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"itemLoaded",value:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))}},{key:"listenToLoad",value:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)}},{key:"listenToLoadItems",value:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return u.Collection.prototype.add.call(this,t,k(k({},e),{},{config:n}))}}]),n}(u.Collection);O.prototype.model=b},8101:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r=n(9050);const i={stylePrefix:'cm-',inlineCss:!1};var o=n(5671),a=n(3144),s=n(9340),l=n(2963),c=n(1120),u=n(6409);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var h=function(t){(0,s.Z)(n,t);var e=f(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=e.em;if(e.cleanId&&r){var i=r.get('CssComposer').getAll(),o=i.toJSON().map((function(t){var e=t.selectors,n=e&&1===e.length&&e.models[0];return n&&n.isId()&&n.get('name')})).filter((function(t){return t}));n.attributes=function(t,e){var n=e.id;return n&&'i'===n[0]&&!t.get('script')&&!t.get('attributes').id&&o.indexOf(n)<0&&delete e.id,e}}return t.toHTML(n)}}]),n}(u.Z),d=n(8467),p=n(2316);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var v=function(t){(0,s.Z)(n,t);var e=g(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=t.toJSON();return this.beforeEach(e),(0,r.each)(e,(function(t,n){var r=e[n];if(r instanceof u.Z)e[n]=this.build(r);else if(r instanceof p.Collection){var i=r;e[n]=[],i.length&&i.each((function(t,r){e[n][r]=this.build(t)}),this)}}),this),e}},{key:"beforeEach",value:function(t){delete t.status}}]),n}(u.Z),m=n(4942);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var b,w=function(t){(0,s.Z)(n,t);var e=y(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"mapModel",value:function(t){var e='',n=t.get('script-export')||t.get('script'),i=t.get('type'),o=t.get('components'),a=t.getId();if(n){var s=t.get('attributes');s=(0,r.extend)({},s,{id:a}),t.set('attributes',s,{silent:1});var l=t.getScriptString(n),c=t.get('script-props');if(t.get('scriptUpdated')&&!c)this.mapJs[i+'-'+a]={ids:[a],code:l};else{var u,f=this.mapJs[i];if(c&&(u=t.__getScriptProps()),f)f.ids.push(a),u&&(f.props[a]=u);else{var h={ids:[a],code:l};u&&(h.props=(0,m.Z)({},a,u)),this.mapJs[i]=h}}}return o.each((function(t){e+=this.mapModel(t)}),this),e}},{key:"build",value:function(t){this.mapJs={},this.mapModel(t);var e='';for(var n in this.mapJs){var r=this.mapJs[n];if(r.code)if(r.props){if(0===r.code.toString().match(/\{([\s\S]*)\}/m)[1].replace(/^\s*\/\/.*$/gm,'').trim().length)continue;e+="\n var props = ".concat(JSON.stringify(r.props),";\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (").concat(r.code,".bind(el))(props[el.id]);\n }")}else{var i='#'+r.ids.join(', #');e+="\n var items = document.querySelectorAll('".concat(i,"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\n").concat(r.code,"\n}.bind(items[i]))();\n }")}}return e}}]),n}(u.Z);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}(0,n(3168).hasWin)()&&(b=n(4631),n(6531),n(6629),n(9210));var O=function(t){(0,s.Z)(n,t);var e=x(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"defaults",value:function(){return{input:'',label:'',codeName:'',theme:'hopscotch',readOnly:!0,lineNumbers:!0}}},{key:"init",value:function(t){return(0,r.bindAll)(this,'onChange'),this.editor=b.fromTextArea(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=this.editor;r&&(r.setValue(t),r.autoFormatRange&&(b.commands.selectAll(r),r.autoFormatRange(r.getCursor(!0),r.getCursor(!1)),b.commands.goDocStart(r)),!n.noRefresh&&setTimeout((function(){return e.refresh()})))}}]),n}(u.Z);O.prototype.CodeMirror=b;var C,S=n(168),P=n(8595);function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var T=function(t){(0,s.Z)(n,t);var e=_(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.codeName,r=t.label;return(0,P.Z)(C||(C=(0,S.Z)(["\n
\n
","
\n
\n
\n "])),e,e,n,e,r,e)}},{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix}},{key:"render",value:function(){var t=this.model,e=this.pfx,n=this.$el,r=t.toJSON();return r.pfx=e,n.html(this.template(r)),n.attr('class',"".concat(e,"editor-c")),n.find("#".concat(e,"code")).append(t.get('input')),this}}]),n}(p.View);const E=function(){var t={},e={},n={},o={},a={},s='CodeMirror';return{getConfig:function(){return t},config:t,EditorView:T,name:'CodeManager',init:function(e){for(var r in t=e||{},i)r in t||(t[r]=i[r]);var o=t.pStylePrefix;return o&&(t.stylePrefix=o+t.stylePrefix),n.html=new h,n.css=new d.Z,n.json=new v,n.js=new w,a.CodeMirror=new O,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,n){return e[t]=n,this},getGenerator:function(t){return e[t]||null},getGenerators:function(){return e},addViewer:function(t,e){return o[t]=e,this},getViewer:function(t){return o[t]||null},getViewers:function(){return o},createViewer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,r.isUndefined)(t.type)?s:t.type,n=this.getViewer(e)&&this.getViewer(e).clone(),i=document.createElement('div'),o=document.createElement('textarea');return i.appendChild(o),n.set(t),n.init(o),n.setElement(i),n},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.em=t.em;var i=this.getGenerator(n);return i?i.build(e,r):''},loadDefaultGenerators:function(){for(var t in n)this.addGenerator(t,n[t]);return this},loadDefaultViewers:function(){for(var t in a)this.addViewer(t,a[t]);return this},destroy:function(){[t,e,n,o,a].forEach((function(t){return{}}))}}}},8467:(t,e,n)=>{"use strict";n.d(e,{U:()=>d,Z:()=>p});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(6409),u=n(3168);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=Number.MAX_VALUE,d=function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?e[0]:''},p=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){(0,l.bindAll)(this,'sortRules'),this.compCls=[],this.ids=[]}},{key:"buildFromModel",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r='',i=this.em,o=i&&i.getConfig('avoidInlineStyle'),a=t.styleToString(),s=t.get('classes');this.ids.push("#".concat(t.getId())),s.each((function(t){return e.compCls.push(t.getFullName())})),!o&&a&&(r="#".concat(t.getId(),"{").concat(a,"}"));var l=t.components();return l.each((function(t){return r+=e.buildFromModel(t,n)})),r}},{key:"build",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.json,i=n.em||'',o=n.cssc||i&&i.get('CssComposer');this.em=i,this.compCls=[],this.ids=[],this.model=t;var a=[],s=t?this.buildFromModel(t,n):'',c=(0,l.isUndefined)(n.clearStyles)&&i?i.getConfig('clearStyles'):n.clearStyles;if(o){var f=n.rules||o.getAll(),h={},d=[];n.onlyMatched&&t&&(0,u.hasWin)()&&(f=this.matchedRules(t,f)),f.forEach((function(t){var i=t.getAtRule();if(i){var o=h[i];o?o.push(t):h[i]=[t]}else{var l=e.buildFromRule(t,d,n);r?a.push(l):s+=l}})),this.sortMediaObject(h).forEach((function(t){var i='',o=t.key;t.value.forEach((function(t){var l=e.buildFromRule(t,d,n);t.get('singleAtRule')?s+="".concat(o,"{").concat(l,"}"):i+=l,r&&a.push(l)})),i&&(s+="".concat(o,"{").concat(i,"}"))})),i&&c&&f.remove&&f.remove(d)}return r?a.filter((function(t){return t})):s}},{key:"buildFromRule",value:function(t,e){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o='',a=this.model,s=t.selectorsToString({skipAdd:1}),l=t.get('selectorsAdd'),c=t.get('singleAtRule');if(t.get('selectors').each((function(t){var e=t.getFullName();(r.compCls.indexOf(e)>=0||r.ids.indexOf(e)>=0||i.keepUnusedStyles)&&(n=1)})),s&&n||l||c||!a){var u=t.getDeclaration({body:1});u&&(i.json?o=t:o+=u)}else e.push(t);return o}},{key:"matchedRules",value:function(t,e){var n=this,r=t.getEl(),i=[];return e.forEach((function(t){try{t.selectorsToString().split(',').some((function(t){return r.matches(n.__cleanSelector(t))}))&&i.push(t)}catch(t){}})),t.components().forEach((function(t){i=i.concat(n.matchedRules(t,e))})),i=i.filter((function(t,e){return i.indexOf(t)===e}))}},{key:"getQueryLength",value:function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?parseFloat(e[1]):h}},{key:"sortMediaObject",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return(0,l.each)(e,(function(t,e){return n.push({key:e,value:t})})),n.sort((function(e,n){var r=[e.key,n.key].every((function(t){return-1!==t.indexOf('min-width')})),i=r?e.key:n.key,o=r?n.key:e.key;return t.getQueryLength(i)-t.getQueryLength(o)}))}},{key:"sortRules",value:function(t,e){var n=function(t){return t.get('mediaText')},r=[n(t),n(e)].every((function(t){return-1!==t.indexOf('min-width')})),i=n(r?t:e),o=n(r?e:t);return this.getQueryLength(i)-this.getQueryLength(o)}},{key:"__cleanSelector",value:function(t){return t.split(' ').map((function(t){return t.split(':')[0]})).join(' ')}}]),n}(c.Z)},6045:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>h});var r=n(2982),i=n(4942),o=n(9050),a=n(5884);const s={stylePrefix:'com-',defaults:[],strict:1};var l=n(4822);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};e=u(u({},s),a),t=e.em;var h=e.pStylePrefix;return h&&(e.stylePrefix=h+e.stylePrefix),Object.keys(e.defaults).forEach((function(t){var n=e.defaults[t];n.id&&i.add(n.id,n)})),c['tlb-delete']={run:function(t){return t.runCommand('core:component-delete')}},c['tlb-clone']={run:function(t){t.runCommand('core:copy'),t.runCommand('core:paste',{action:'clone-component'})}},c['tlb-move']={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),a=n&&n.event,s=n.target,c=s||t.getSelected(),u=s?[s]:(0,r.Z)(t.getSelectedAll()),f=a&&'dragstart'==a.type,h={preserveSelected:1},d=['absolute','translate'];if(!c||!c.get('draggable'))return i.logWarning('The element is not draggable');var p=c.get('dmode')||i.get('dmode'),g=function(){return i.stopDefault(h)},v=(0,o.includes)(d,p);u.forEach((function(t){return t.trigger('disable')})),f?setTimeout(g,0):g();var m=function(t){i.trigger("".concat(l.OA,":start"),t)},y=function(t){i.trigger(l.OA,t)},b=function(e,n,r){u.forEach((function(t){return t.set('status','selected')})),t.select(u),c.emitUpdate(),i.trigger("".concat(l.OA,":end"),r),setTimeout((function(){return i.runDefault(h)})),(v||r.cancelled)&&i.set('_cmpDrag',1)};if(v)t.runCommand('core:component-drag',{guidesInfo:1,mode:p,target:c,onStart:m,onDrag:y,onEnd:b,event:a});else{f&&a.dataTransfer.setDragImage(c.view.el,0,0);var w=t.Commands.get('move-comp');w.onStart=m,w.onDrag=y,w.onEndMoveFromModel=b,w.initSorterFromModels(u)}u.forEach((function(t){return t.set('status','freezed-selected')}))}},c['core:undo']=function(t){return t.UndoManager.undo()},c['core:redo']=function(t){return t.UndoManager.redo()},f.forEach((function(e){var r=e[2],i=n(2828)("./".concat(e[1])).default,o="core:".concat(e[0]);c[o]=i,r&&(c[r]=i,['run','stop'].forEach((function(e){t.on("".concat(e,":").concat(r),(function(){for(var n,r=arguments.length,i=new Array(r),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.get(t);if(n){var r=u(u({},n.constructor.prototype),e);this.add(t,r);var i=f.filter((function(e){return"core:".concat(e[0])===t&&e[2]}))[0];i&&this.add(i[2],r)}return this},has:function(t){return!!i[t]},getAll:function(){return i},run:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.runCommand(this.get(t),e)},stop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.stopCommand(this.get(t),e)},isActive:function(t){return this.getActive().hasOwnProperty(t)},getActive:function(){return h},loadDefaultCommands:function(){for(var t in c)this.add(t,c[t]);return this},runCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');this.isActive(o)&&!i.force&&e.strict||(r=a&&n.callRun(a,i),o&&n.stop&&!n.noStop&&!i.abort&&(h[o]=r))}return r},stopCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');(this.isActive(o)||i.force||!e.strict)&&(o&&delete h[o],r=n.callStop(a,i))}return r},create:function(t){return t.stop||(t.noStop=1),new(a.default.extend(t))(e)},destroy:function(){[t,e,i,c,h].forEach((function(t){return{}}))}}}},9819:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){t.DomComponents.clear(),t.CssComposer.clear()}}},2784:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(9050),i=n(3168),o=n(1981);const a={run:function(t){(0,r.bindAll)(this,'onKeyUp','enableDragger','disableDragger'),this.editor=t,this.canvasModel=this.canvas.getCanvasView().model,this.toggleMove(1)},stop:function(t){this.toggleMove(),this.disableDragger()},onKeyUp:function(t){' '===(0,i.getKeyChar)(t)&&this.editor.stopCommand(this.id)},enableDragger:function(t){this.toggleDragger(1,t)},disableDragger:function(t){this.toggleDragger(0,t)},toggleDragger:function(t,e){var n=this.canvasModel,r=this.em,i=this.dragger,a=t?'add':'remove';this.getCanvas().classList[a]("".concat(this.ppfx,"is__grabbing")),i||(i=new o.Z({getPosition:function(){return{x:n.get('x'),y:n.get('y')}},setPosition:function(t){var e=t.x,r=t.y;n.set({x:e,y:r})},onStart:function(t,e){r.trigger('canvas:move:start',e)},onDrag:function(t,e){r.trigger('canvas:move',e)},onEnd:function(t,e){r.trigger('canvas:move:end',e)}}),this.dragger=i),t?i.start(e):i.stop()},toggleMove:function(t){var e=this.ppfx,n=t?'add':'remove',r=t?'on':'off',o={on:i.on,off:i.off},a=this.getCanvas(),s=["".concat(e,"is__grab")];!t&&s.push("".concat(e,"is__grabbing")),s.forEach((function(t){return a.classList[n](t)})),o[r](document,'keyup',this.onKeyUp),o[r](a,'mousedown',this.enableDragger),o[r](document,'mouseup',this.disableDragger)}}},5884:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120);function l(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var c=function(t){(0,o.Z)(n,t);var e=l(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+'hover',this.badgeClass=this.pfx+'badge',this.plhClass=this.pfx+'placeholder',this.freezClass=this.ppfx+'freezed',this.canvas=this.em.get&&this.em.get('Canvas'),this.init(this.config)}},{key:"onFrameScroll",value:function(t){}},{key:"getCanvas",value:function(){return this.canvas.getElement()}},{key:"getCanvasBody",value:function(){return this.canvas.getBody()}},{key:"getCanvasTools",value:function(){return this.canvas.getToolsEl()}},{key:"offset",value:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}}},{key:"init",value:function(t){}},{key:"callRun",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id;if(t.trigger("run:".concat(n,":before"),e),!e||!e.abort){var r=e.sender||t,i=this.run(t,r,e);return t.trigger("run:".concat(n),i,e),t.trigger('run',n,i,e),i}t.trigger("abort:".concat(n),e)}},{key:"callStop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id,r=e.sender||t;t.trigger("stop:".concat(n,":before"),e);var i=this.stop(t,r,e);return t.trigger("stop:".concat(n),i,e),t.trigger('stop',n,i,e),i}},{key:"stopCommand",value:function(){this.em.get('Commands').stop(this.id)}},{key:"run",value:function(t,e){}},{key:"stop",value:function(t,e){}}]),n}(n(6409).Z)},7585:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2982),i=n(9050);const o={run:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[],s=o.component||t.getSelectedAll();return(s=(0,i.isArray)(s)?(0,r.Z)(s):[s]).filter(Boolean).forEach((function(t){if(!t.get('removable'))return a.push(t),n.em.logWarning('The element is not removable',{component:t});t.remove()})),t.select(a),s}}},1035:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(4942),i=n(9050),o=n(1981);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};(0,i.bindAll)(this,'setPosition','onStart','onDrag','onEnd','getPosition','getGuidesStatic','renderGuide','getGuidesTarget');var a=r.target,c=r.event,u=r.mode,f=r.dragger,h=void 0===f?{}:f,d=a.getEl(),p=s({doc:d.ownerDocument,onStart:this.onStart,onEnd:this.onEnd,onDrag:this.onDrag,getPosition:this.getPosition,setPosition:this.setPosition,guidesStatic:function(){return n.guidesStatic},guidesTarget:function(){return n.guidesTarget}},h);this.setupGuides(),this.opts=r,this.editor=t,this.em=t.getModel(),this.target=a,this.isTran='translate'==u,this.guidesContainer=this.getGuidesContainer(),this.guidesTarget=this.getGuidesTarget(),this.guidesStatic=this.getGuidesStatic();var g=this.dragger;return g?g.setOptions(p):(g=new o.Z(p),this.dragger=g),c&&g.start(c),this.toggleDrag(1),this.em.trigger("".concat(l,":start"),this.getEventOpts()),g},getEventOpts:function(){return{mode:this.opts.mode,target:this.target,guidesTarget:this.guidesTarget,guidesStatic:this.guidesStatic}},stop:function(){this.toggleDrag()},setupGuides:function(){(this.guides||[]).forEach((function(t){var e=t.guide;e&&e.parentNode.removeChild(e)})),this.guides=[]},getGuidesContainer:function(){var t=this,e=this.guidesEl;if(!e){var n=this.editor,r=this.em,o=this.opts,a=n.getConfig('stylePrefix'),s=document.createElement('div'),l=document.createElement('div'),c="
\n
\n
");(e=document.createElement('div')).className="".concat(a,"guides"),s.className="".concat(a,"guide-info ").concat(a,"guide-info__x"),l.className="".concat(a,"guide-info ").concat(a,"guide-info__y"),s.innerHTML=c,l.innerHTML=c,e.appendChild(s),e.appendChild(l),n.Canvas.getGlobalToolsEl().appendChild(e),this.guidesEl=e,this.elGuideInfoX=s,this.elGuideInfoY=l,this.elGuideInfoContentX=s.querySelector(".".concat(a,"guide-info__content")),this.elGuideInfoContentY=l.querySelector(".".concat(a,"guide-info__content")),r.on('canvas:update frame:scroll',(0,i.debounce)((function(){t.updateGuides(),o.debug&&t.guides.forEach((function(e){return t.renderGuide(e)}))}),200))}return e},getGuidesStatic:function(){var t=this,e=[],n=this.target.getEl(),r=n.parentNode,o=void 0===r?{}:r;return(0,i.each)(o.children,(function(r){return e=e.concat(n!==r?t.getElementGuides(r):[])})),e.concat(this.getElementGuides(o))},getGuidesTarget:function(){return this.getElementGuides(this.target.getEl())},updateGuides:function(t){var e,n,r=this;(t||this.guides).forEach((function(t){var o=t.origin,a=e===o?n:r.getElementPos(o);e=o,n=a,(0,i.each)(r.getGuidePosUpdate(t,a),(function(e,n){return t[n]=e})),t.originRect=a}))},getGuidePosUpdate:function(t,e){var n={},r=e.top,i=e.height,o=e.left,a=e.width;switch(t.type){case't':n.y=r;break;case'b':n.y=r+i;break;case'l':n.x=o;break;case'r':n.x=o+a;break;case'x':n.x=o+a/2;break;case'y':n.y=r+i/2}return n},renderGuide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.guide||document.createElement('div'),n='px',r=t.active?2:1,i=e.children[0];return e.style="position: absolute; background-color: ".concat(t.active?'green':'red',";"),e.children.length||((i=document.createElement('div')).style='position: absolute; color: red; padding: 5px; top: 0; left: 0;',e.appendChild(i)),t.y?(e.style.width='100%',e.style.height="".concat(r).concat(n),e.style.top="".concat(t.y).concat(n),e.style.left=0):(e.style.width="".concat(r).concat(n),e.style.height='100%',e.style.left="".concat(t.x).concat(n),e.style.top="0".concat(n)),!t.guide&&this.guidesContainer.appendChild(e),e},getElementPos:function(t){return this.editor.Canvas.getElementPos(t,{noScroll:1})},getElementGuides:function(t){var e=this,n=this.opts,r=this.getElementPos(t),i=r.top,o=r.height,a=r.left,l=r.width,c=[{type:'t',y:i},{type:'b',y:i+o},{type:'l',x:a},{type:'r',x:a+l},{type:'x',x:a+l/2},{type:'y',y:i+o/2}].map((function(i){return s(s({},i),{},{origin:t,originRect:r,guide:n.debug&&e.renderGuide(i)})}));return c.forEach((function(t){return e.guides.push(t)})),c},getTranslate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'x',n=0;return(t||'').split(' ').forEach((function(t){var r=t.trim(),i="translate".concat(e.toUpperCase(),"(");0===r.indexOf(i)&&(n=parseFloat(r.replace(i,'')))})),n},setTranslate:function(t,e,n){var r="translate".concat(e.toUpperCase(),"("),i="".concat(r).concat(n,")"),o=(t||'').split(' ').map((function(t){return 0===t.trim().indexOf(r)&&(t=i),t})).join(' ');return o.indexOf(r)<0&&(o+=" ".concat(i)),o},getPosition:function(){var t=this.target,e=this.isTran,n=t.getStyle(),r=n.left,i=n.top,o=n.transform,a=0,s=0;return e?(a=this.getTranslate(o),s=this.getTranslate(o,'y')):(a=parseFloat(r||0),s=parseFloat(i||0)),{x:a,y:s}},setPosition:function(t){var e=t.x,n=t.y,r=t.end,o=t.position,a=t.width,s=t.height,l=this.target,c=this.isTran,u=this.em,f=r?'':1,h="".concat(e).concat("px"),d="".concat(n).concat("px"),p={};if(c){var g=l.getStyle().transform||'';g=this.setTranslate(g,'x',h),p={transform:g=this.setTranslate(g,'y',d),en:f},l.addStyle(p,{avoidStore:!r})}else{var v={position:o,width:a,height:s},m={left:h,top:d,en:f};(0,i.keys)(v).forEach((function(t){var e=v[t];e&&(m[t]=e)})),p=m,l.addStyle(p,{avoidStore:!r})}u.getSelected()&&(0,i.keys)(p).forEach((function(t){return u.trigger("update:component:style:".concat(t))}))},_getDragData:function(){var t=this.target;return{target:t,parent:t.parent(),index:t.index()}},onStart:function(t){var e=this.target,n=this.editor,r=this.isTran,i=this.opts,o=i.center,a=i.onStart,s=n.Canvas,l=e.getStyle(),c='absolute',u=[c,'relative'];if(a&&a(this._getDragData()),!r&&l.position!==c){var f,h=s.offset(e.getEl()),d=h.left,p=h.top,g=h.width,v=h.height,m=e.parent();do{var y=m.getStyle();f=u.indexOf(y.position)>=0?m:null,m=m.parent()}while(m&&!f);if(o){var b=s.getMouseRelativeCanvas(t);d=b.x,p=b.y}else if(f){var w=s.offset(f.getEl());d-=w.left,p-=w.top}this.setPosition({x:d,y:p,width:"".concat(g,"px"),height:"".concat(v,"px"),position:c})}},onDrag:function(){var t=this,e=this.guidesTarget,n=this.opts,r=n.onDrag;this.updateGuides(e),n.debug&&e.forEach((function(e){return t.renderGuide(e)})),n.guidesInfo&&this.renderGuideInfo(e.filter((function(t){return t.active}))),r&&r(this._getDragData())},onEnd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.editor,i=this.opts,o=this.id,a=i.onEnd;a&&a(t,n,s(s({event:t},n),this._getDragData())),r.stopCommand(o),this.hideGuidesInfo(),this.em.trigger("".concat(l,":end"),this.getEventOpts())},hideGuidesInfo:function(){var t=this;['X','Y'].forEach((function(e){var n=t["elGuideInfo".concat(e)];n&&(n.style.display='none')}))},renderGuideInfo:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=this.guidesStatic;this.hideGuidesInfo(),e.forEach((function(e){var r=e.origin,o=e.x,a=t.getElementPos(r),c=(0,i.isUndefined)(o)?'y':'x',u='y'===c,f=a[u?'left':'top'],h=a.rect[u?'left':'top'],d=u?f+a.width:f+a.height,p=u?h+a.rect.width:h+a.rect.height,g=t["elGuideInfo".concat(c.toUpperCase())],v=t["elGuideInfoContent".concat(c.toUpperCase())],m=g.style,y=n.filter((function(t){return t.type===e.type})).map((function(t){var e=t.originRect,n=e.left,r=e.width,i=e.top,o=e.height,a=u?n+r:i+o;return{gap:a0})).sort((function(t,e){return t.gap-e.gap})).map((function(t){return t.guide}))[0];if(y){var b=y.originRect,w=b.left,k=b.width,x=b.top,O=b.height,C=b.rect,S=u?w{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.components(),r=n&&n.filter((function(t){return t.get('selectable')}))[0];r&&e.push(r)})),e.length&&t.select(e)}}}},9666:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t.Canvas.hasFocus()||n.force){var r=[];t.getSelectedAll().forEach((function(t){for(var e=t.parent();e&&!e.get('selectable');)e=e.parent();e&&r.push(e)})),r.length&&t.select(r)}}}},7350:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=n.components().length,o=0,a=0;do{o++,r=(a=t.index()+o)<=i?n.getChildAt(a):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},6572:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=0,o=0;do{i++,r=(o=t.index()-i)>=0?n.getChildAt(o):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},9097:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.target,o=[];if(!i.get('styles'))return o;var a=i.get('type'),s=t.Pages.getAllWrappers(),l=(0,r.flatten)(s.map((function(t){return t.findType(a)}))).length;if(!l){var c=t.CssComposer.getAll();o=c.filter((function(t){return t.get('group')==="cmp:".concat(a)})),c.remove(o)}return o}}},515:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2982);const i={run:function(t){var e=t.getModel(),n=(0,r.Z)(t.getSelectedAll());n.length&&e.set('clipboard',n)}}},2095:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>l});var r=n(9050),i=n(2316),o=n.n(i),a=n(7208),s=o().$;const l=(0,r.extend)({},a.default,{init:function(t){(0,r.bindAll)(this,'startDelete','stopDelete','onDelete'),this.hoverClass=this.pfx+'hover-delete',this.badgeClass=this.pfx+'badge-red'},enable:function(){this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),s(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.data('model').destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html('Remove '+t.getName())}})},6949:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){var n=this;e&&e.set&&e.set('active',0);var r=t.getConfig(),o=t.Modal,a=r.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var s=this.buildEditor('htmlmixed','hopscotch','HTML'),l=this.buildEditor('css','hopscotch','CSS');this.htmlEditor=s.el,this.cssEditor=l.el;var c=i("
"));c.append(s.$el).append(l.$el),this.$editors=c}o.open({title:r.textViewCode,content:this.$editors}).getModel().once('change:open',(function(){return t.stopCommand(n.id)})),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var r=document.createElement('textarea');!this.codeMirror&&(this.codeMirror=this.cm.getViewer('CodeMirror'));var i=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:r}),o=new this.cm.EditorView({model:i,config:this.cm.getConfig()}).render().$el;return i.init(r),{el:i,$el:o}}}},6945:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e='';return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e='webkit',t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e='moz',t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn('Fullscreen not supported'),e},disable:function(){var t=document;this.isEnabled()&&(t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen())},fsChanged:function(t,e){document;var n=(t||'')+'fullscreenchange';this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.sender=e;var i=n.target,o=(0,r.isElement)(i)?i:document.querySelector(i),a=this.enable(o||t.getContainer());this.fsChanged=this.fsChanged.bind(this,a),document.addEventListener(a+'fullscreenchange',this.fsChanged),t.trigger('change:canvasOffset')},stop:function(t,e){e&&e.set&&e.set('active',!1),this.disable(),t&&t.trigger('change:canvasOffset')}}},5317:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(9050),i=n(2316),o=n.n(i),a=n(3168),s=n(7208),l=n(1988),c=o().$;const u=(0,r.extend)({},l.default,s.default,{init:function(t){s.default.init.apply(this,arguments),(0,r.bindAll)(this,'initSorter','rollback','onEndMove'),this.opt=t,this.hoverClass=this.ppfx+'highlighter-warning',this.badgeClass=this.ppfx+'badge-warning',this.noSelClass=this.ppfx+'no-select'},enable:function(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(t){var e=this,n=this.editor,i=this.title,o=this.config,a=this.am,s=o.custom;if((0,r.isFunction)(s.open))return s.open(a.__customData());n.Modal.open({title:i,content:t}).onceClose((function(){return n.stopCommand(e.id)}))},close:function(){var t=this.config.custom;if((0,r.isFunction)(t.close))return t.close(this.am.__customData());var e=this.editor.Modal;e&&e.close()},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.AssetManager,o=r.getConfig(),a=n.types,s=void 0===a?[]:a,l=n.accept,c=n.select;if(this.title=n.modalTitle||t.t('assetManager.modalTitle')||'',this.editor=t,this.config=o,this.am=r,r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),r.__behaviour({select:c,types:s,options:n}),o.custom)this.rendered=this.rendered||(0,i.ut)('div'),this.rendered.className="".concat(o.stylePrefix,"custom-wrp"),r.__behaviour({container:this.rendered}),r.__trgCustom();else{if(!this.rendered||s){var u=r.getAll().filter((function(t){return t}));s&&s.length&&(u=u.filter((function(t){return-1!==s.indexOf(t.get('type'))}))),r.render(u),this.rendered=r.getContainer()}if(l){var f=this.rendered.querySelector("input#".concat(o.stylePrefix,"uploadFile"));f&&f.setAttribute('accept',l)}}return this.open(this.rendered),this},stop:function(t){this.editor=t,this.close(this.rendered)}}},490:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(){var t=this.container,e=this.editor,n=this.bm,i=this.config,o=i.custom,a=i.appendTo;if((0,r.isFunction)(o.open))return o.open(n.__customData());if(this.firstRender&&!a){var s='views-container',l=e.Panels;(l.getPanel(s)||l.addPanel({id:s})).set('appendContent',t).trigger('change:appendContent'),o||t.appendChild(n.render())}t&&(t.style.display='block')},close:function(){var t=this.container,e=this.config.custom;if((0,r.isFunction)(e.close))return e.close(this.bm.__customData());t&&(t.style.display='none')},run:function(t){var e=t.Blocks;this.config=e.getConfig(),this.firstRender=!this.container,this.container=this.container||(0,i.ut)('div'),this.editor=t,this.bm=e;var n=this.container;e.__behaviour({container:n}),this.config.custom&&e.__trgCustom(),this.open()},stop:function(){this.close()}}},3403:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){var e=t.LayerManager,n=t.Panels;if(!e.getConfig().appendTo){if(!this.layers){var r='views-container',i=document.createElement('div'),o=n.getPanel(r)||n.addPanel({id:r});i.appendChild(e.render()),o.set('appendContent',i).trigger('change:appendContent'),this.layers=i}this.layers.style.display='block'}},stop:function(){var t=this.layers;t&&(t.style.display='none')}}},9346:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),r=t.Panels,o='change:appendContent';this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2);var a=t.DeviceManager;if(a&&n.showDevices){var s=r.addPanel({id:'devices-c'}),l=a.render();s.set('appendContent',l).trigger(o)}var c=t.SelectorManager;this.slm=c;var u=c.getConfig();u.custom?c.__trgCustom({container:this.$cn2.get(0)}):u.appendTo||this.$cn2.append(c.render([]));var f=t.StyleManager;this.sm=f;var h=f.getConfig(),d=h.stylePrefix;this.$header=i("
").concat(t.t('styleManager.empty'),"
")),this.$cn.append(this.$header),h.custom?f.__trgCustom({container:this.$cn2.get(0)}):h.appendTo||this.$cn2.append(f.render());var p='views-container';this.panel=r.getPanel(p),this.panel||(this.panel=r.addPanel({id:p})),this.panel.set('appendContent',this.$cn).trigger(o),this.em=t.getModel(),this.listenTo(this.em,f.events.target,this.toggleSm)}this.toggleSm()},toggleSm:function(){var t,e,n,r,i=this.sender,o=this.sm;i&&i.get&&!i.get('active')||!o||(o.getSelected()?(null===(t=this.$cn2)||void 0===t||t.show(),null===(e=this.$header)||void 0===e||e.hide()):(null===(n=this.$cn2)||void 0===n||n.hide(),null===(r=this.$header)||void 0===r||r.show()))},stop:function(){var t,e;null===(t=this.$cn2)||void 0===t||t.hide(),null===(e=this.$header)||void 0===e||e.hide()}}},2643:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){this.sender=e;var n=t.getModel(),r=t.Config.stylePrefix,o=t.TraitManager,a=o.getConfig();if(!a.appendTo){if(!this.$cn){this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2),this.$header=i('
').append("
").concat(n.t('traitManager.empty'),"
")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(o.render());var s=t.Panels;(s.getPanel('views-container')?s.getPanel('views-container'):s.addPanel({id:'views-container'})).set('appendContent',this.$cn.get(0)).trigger('change:appendContent'),this.target=t.getModel(),this.listenTo(this.target,'component:toggled',this.toggleTm)}this.toggleTm()}},toggleTm:function(){var t=this.sender;t&&t.get&&!t.get('active')||(1===this.target.getSelectedAll().length?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},5966:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),o=i.get('clipboard'),a=t.getSelected();o&&a&&(t.getSelectedAll().forEach((function(e){if(e){var i=e.collection;if(i){var a,s={at:i.indexOf(e)+1,action:n.action||'paste-component'},l=o.filter((function(t){return t.get('copyable')}));a=(0,r.contains)(o,e)&&e.get('copyable')?i.add(e.clone(),s):i.add(l.map((function(t){return t.clone()})),s),(a=(0,r.isArray)(a)?a:[a]).forEach((function(e){return t.trigger('component:paste',e)}))}}})),a.emitUpdate())}}},2074:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(2982),i=n(9050),o='sw-visibility';const a={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanels()),this.panels},preventDrag:function(t){t.abort=1},tglEffects:function(t){var e=this.em,n=t?'on':'off';if(e){var r=e.get('Canvas'),o=r.getBody(),a=r.getToolbarEl();a&&(a.style.display=t?'none':'');var s=o.querySelectorAll(".".concat(this.ppfx,"no-pointer"));(0,i.each)(s,(function(e){return e.style.pointerEvents=t?'all':''})),e[n]('run:tlb-move:before',this.preventDrag)}},run:function(t,e){var n=this;this.sender=e,this.selected=(0,r.Z)(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(o)),this.shouldRunSwVisibility&&t.stopCommand(o),t.getModel().stopDefault();var i=this.getPanels(t),a=t.Canvas.getElement(),s=t.getEl(),l=t.Config.stylePrefix;if(!this.helper){var c=document.createElement('span');c.className="".concat(l,"off-prv fa fa-eye-slash"),s.appendChild(c),c.onclick=function(){return n.stopCommand()},this.helper=c}this.helper.style.display='inline-block',i.forEach((function(t){return t.set('visible',!1)}));var u=a.style;u.width='100%',u.height='100%',u.top='0',u.left='0',u.padding='0',u.margin='0',t.refresh(),this.tglEffects(1)},stop:function(t){var e=this.sender,n=void 0===e?{}:e,r=this.selected;n.set&&n.set('active',0);var i=this.getPanels(t);this.shouldRunSwVisibility&&(t.runCommand(o),this.shouldRunSwVisibility=!1),t.getModel().runDefault(),i.forEach((function(t){return t.set('visible',!0)})),t.Canvas.getElement().setAttribute('style',''),r&&t.select(r),delete this.selected,this.helper&&(this.helper.style.display='none'),t.refresh(),this.tglEffects()}}},3953:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(4942);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const o={run:function(t,e,n){var o=n||{},a=t.Canvas,s=a.getCanvasView(),l=function(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{default:()=>_});var r=n(1002),i=n(4942),o=n(2316),a=n.n(o),s=n(9050),l=n(3168),c=n(827),u=n(3144),f=n(5671),h=n(9340),d=n(2963),p=n(1120),g=n(9384);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.config,n=void 0===e?{}:e;this.em=n.em,this.editor=n.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e=this.editor,n=this.em,r=e.Canvas.getFrameEl().getBoundingClientRect(),i=r.left,o=r.top,a=m(m({},t),{},{clientX:t.clientX-i,clientY:t.clientY-o});n.trigger('toolbar:run:before'),this.execCommand(a)},execCommand:function(t){var e={event:t},n=this.model.get('command'),r=this.editor;'function'==typeof n&&n(r,null,e),'string'==typeof n&&r.runCommand(n,e)},render:function(){var t=this.editor,e=this.$el,n=this.model,r=n.get('id'),i=n.get('label'),o=t.getConfig('stylePrefix');return e.addClass("".concat(o,"toolbar-item")),r&&e.addClass("".concat(o,"toolbar-item__").concat(r)),i&&e.append(i),this}});function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var w=function(t){(0,h.Z)(n,t);var e=b(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,f.Z)(this,n),(t=e.call(this,r,i)).config={editor:r.editor||'',em:r.em},t.listenTo(t.collection,'reset',t.render),t}return(0,u.Z)(n)}(g.Z);w.prototype.itemView=y;const k=a().Model.extend({defaults:{command:'',attributes:{}}}),x=a().Collection.extend({model:k});function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=n.el||this.canvas.getToolsEl(e);return r&&(r.style.display=t?'':'none'),r||{}},showElementOffset:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};S&&this.editor.runCommand('show-offset',{el:t,elPos:e,view:n.view,force:1,top:0,left:0})},hideElementOffset:function(t){this.editor.stopCommand('show-offset',{view:t})},showFixedElementOffset:function(t,e){this.editor.runCommand('show-offset',{el:t,elPos:e,state:'Fixed'})},hideFixedElementOffset:function(t,e){this.editor&&this.editor.stopCommand('show-offset',{state:'Fixed'})},hideHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=0},onClick:function(t){t.stopPropagation(),t.preventDefault();var e=this.em;if(e.get('_cmpDrag'))return e.set('_cmpDrag');var n=P(t.target),r=n.data('model');if(!r)for(var i=n.parent();!r&&i.length&&!(0,c.Mx)(i[0]);)r=i.data('model'),i=i.parent();if(r){if(e.isEditing()&&!r.get('textable')&&r.isChildOf('text'))return;this.select(r,t)}},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&(this.editor.select(t,{event:e,useValid:!0}),this.initResize(t))},updateBadge:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.canvas,i=P(t).data('model');if(i&&i.get('badgable')){var o=this.getBadge(n);if(!n.posOnly){var a=this.canvas.getConfig(),s=i.getIcon(),l=a.pStylePrefix||'',c="".concat(l,"badge"),u=a.customBadgeLabel,f="".concat(s?"
").concat(s,"
"):'',"\n
").concat(i.getName(),"
");o.innerHTML=u?u(i):f}var h='px',d=o.style;d.display='block';var p=r.getTargetToElementFixed(t,o,{pos:e}),g=p.top,v=n.leftOff<0?-n.leftOff:0;d.top=g+h,d.left=v+h}},showHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=''},initResize:function(t){var e,n=this.em,i=this.canvas,o=n?n.get('Editor'):'',a=(n?n.get('Config'):'').stylePrefix||'',c="".concat(a,"resizing"),u=!(0,s.isElement)(t)&&(0,l.isTaggableNode)(t)?t:n.getSelected(),f=u&&u.get('resizable'),h={},d=function(t,e,n){var r=n.docs;r&&r.forEach((function(e){var n=e.body,r=n.className||'';n.className=('add'==t?"".concat(r," ").concat(c):r.replace(c,'')).trim()}))};if(o&&f){var p=(0,s.isElement)(t)?t:u.getEl();h={onStart:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.el,a=r.config,s=r.resizer,c=a.keyHeight,f=a.keyWidth,h=a.currentUnit,p=a.keepAutoHeight,g=a.keepAutoWidth;d('add',0,r),e=n.get('StyleManager').getModelToStyle(u),i.toggleFramesEvents();var v=getComputedStyle(o),m=e.getStyle(),y=m[f];a.autoWidth=g&&'auto'===y,isNaN(parseFloat(y))&&(y=v[f]);var b=m[c];a.autoHeight=p&&'auto'===b,isNaN(parseFloat(b))&&(b=v[c]),s.startDim.w=parseFloat(y),s.startDim.h=parseFloat(b),S=0,h&&(a.unitHeight=(0,l.getUnitFromValue)(b),a.unitWidth=(0,l.getUnitFromValue)(y))},onMove:function(){o.trigger('component:resize')},onEnd:function(t,e){d('remove',0,e),o.trigger('component:resize'),i.toggleFramesEvents(1),S=1},updateTarget:function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var a=o.store,s=o.selectedHandler,l=o.config,c=l.keyHeight,u=l.keyWidth,f=l.autoHeight,h=l.autoWidth,d=l.unitWidth,p=l.unitHeight,g=['tc','bc'].indexOf(s)>=0,v=['cl','cr'].indexOf(s)>=0,m={},y=a?'':1;if(!g){var b=i.getBody().offsetWidth,w=r.w0&&void 0!==arguments[0]?arguments[0]:{};return this.canvas.getBadgeEl(t.view)},onFrameScroll:function(){this.updateTools()},updateTools:function(){this.updateLocalPos(),this.updateGlobalPos()},isCompSelected:function(t){return t&&'selected'===t.get('status')},updateToolsLocal:function(t){var e=t||this.getElHovered(),n=e.el,r=e.pos,i=e.view,o=e.component;if(n){var a=o.get('hoverable'),s=this.lastHovered!==n,l=s?{}:{posOnly:1};s&&a&&(this.lastHovered=n,this.showHighlighter(i),this.showElementOffset(n,r,{view:i})),this.isCompSelected(o)&&(this.hideHighlighter(i),this.hideElementOffset(i));var c='px',u=this.toggleToolsEl(1,i),f=u.style,h=this.canvas.canvasRectOffset(n,r),d=h.top,p=h.left;this.updateBadge(n,r,C(C({},l),{},{view:i,topOff:d,leftOff:p})),f.top=d+c,f.left=p+c,f.width=r.width+c,f.height=r.height+c,this._trgToolUp('local',{component:o,el:u,top:d,left:p,width:r.width,height:r.height})}else this.lastHovered=0},_upToolbar:(0,s.debounce)((function(){this.updateToolsGlobal({force:1})})),_trgToolUp:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em.trigger('canvas:tools:update',C({type:t},e))},updateToolsGlobal:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getElSelected(),n=e.el,r=e.pos,i=e.component;if(!n)return this.toggleToolsEl(),void(this.lastSelected=0);var o=this.canvas,a=this.lastSelected!==n;(a||t.force)&&(this.lastSelected=n,this.updateToolbar(i));var s='px',l=this.toggleToolsEl(1),c=l.style,u=o.getTargetToElementFixed(n,o.getToolbarEl(),{pos:r}),f=u.canvasOffsetTop,h=u.canvasOffsetLeft;c.top=f+s,c.left=h+s,c.width=r.width+s,c.height=r.height+s,this.updateToolbarPos({top:u.top,left:u.left}),this._trgToolUp('global',{component:i,el:l,top:f,left:h,width:r.width,height:r.height})},updateAttached:(0,s.debounce)((function(){this.updateGlobalPos()})),onContainerChange:(0,s.debounce)((function(){this.em.refreshCanvas()}),150),getElementPos:function(t){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display='none'},cleanPrevious:function(t){t&&t.set({status:'',state:''})},getContentWindow:function(){return this.canvas.getWindow()},run:function(t){(0,l.hasWin)()&&(this.editor=t&&t.get('Editor'),this.enable())},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,l.hasWin)()){var r=this.em,i=this.editor;this.onHovered(),this.stopSelectComponent(),!n.preserveSelected&&r.setSelected(null),this.toggleToolsEl(),i&&i.stopCommand('resize')}}}},1988:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={startSelectPosition:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.isPointed=!1;var i=this.editorModel.get('Utils'),o=t.ownerDocument.body;i&&!this.sorter&&(this.sorter=new i.Sorter({container:o,placer:this.canvas.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,direction:'a',document:e,wmargin:1,nested:1,em:this.editorModel,canvasRelative:1,scale:function(){return n.em.getZoomDecimal()}})),r.onStart&&(this.sorter.onStart=r.onStart),t&&this.sorter.startSort(t,{container:o})},getOffsetDim:function(){var t=this.offset(this.canvas.getFrameEl()),e=this.offset(this.canvas.getElement());return{top:t.top-e.top,left:t.left-e.left}},stopSelectPosition:function(){this.posTargetCollection=null,this.posIndex='after'==this.posMethod&&0!==this.cDim.length?this.posIndex+1:this.posIndex,this.sorter&&(this.sorter.moved=0,this.sorter.endMove()),this.cDim&&(this.posIsLastEl=0!==this.cDim.length&&'after'==this.posMethod&&this.posIndex==this.cDim.length,this.posTargetEl=0===this.cDim.length?i(this.outsideElem):!this.posIsLastEl&&this.cDim[this.posIndex]?i(this.cDim[this.posIndex][5]).parent():i(this.outsideElem),this.posTargetModel=this.posTargetEl.data('model'),this.posTargetCollection=this.posTargetEl.data('model-comp'))},enable:function(){this.startSelectPosition()},nearFloat:function(t,e,n){var r=t||0,i=e||'before',o=n.length,a=0!==o&&'after'==i&&r==o;return 0!==o&&(!a&&!n[r][4]||n[r-1]&&!n[r-1][4]||a&&!n[r-1][4])?1:0},run:function(){this.enable()},stop:function(){this.stopSelectPosition(),this.$wrapper.css('cursor',''),this.$wrapper.unbind()}}},6069:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=o().$;const u={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var i=n||{},o=i.state||'',u=t.getConfig(),f=this.em.getZoomDecimal(),h=i.el||'';if(!u.showOffsets||(0,s.isTextNode)(h)||!u.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var d=t.Canvas,p=function(t){for(var e=1;e")).get(0),D=c("
")).get(0),R=v+E+'-el',A="".concat(v+T+'-el'," ").concat(v+T),M="".concat(R," ").concat(v+E);b=c("
")).get(0),w=c("
")).get(0),k=c("
")).get(0),x=c("
")).get(0),O=c("
")).get(0),C=c("
")).get(0),S=c("
")).get(0),P=c("
")).get(0),this['marginT'+o]=b,this['marginB'+o]=w,this['marginL'+o]=k,this['marginR'+o]=x,this['padT'+o]=O,this['padB'+o]=C,this['padL'+o]=S,this['padR'+o]=P,j.appendChild(b),j.appendChild(w),j.appendChild(k),j.appendChild(x),D.appendChild(O),D.appendChild(C),D.appendChild(S),D.appendChild(P),y.appendChild(j),y.appendChild(D),this[m]='1'}var Z='px',L=parseFloat(g.marginLeft.replace(Z,''))*f,N=parseFloat(g.marginRight.replace(Z,''))*f,I=parseFloat(g.marginTop.replace(Z,''))*f,F=parseFloat(g.marginBottom.replace(Z,''))*f,B=b.style,V=w.style,H=k.style,z=x.style,U=O.style,W=C.style,$=S.style,q=P.style,G=parseFloat(p.left),K=parseFloat(g.width)*f+Z;B.height=I+Z,B.width=K,B.top=p.top-I+Z,B.left=G+Z,V.height=F+Z,V.width=K,V.top=p.top+p.height+Z,V.left=G+Z;var Y=p.height+I+F+Z,X=p.top-I+Z;H.height=Y,H.width=L+Z,H.top=X,H.left=G-L+Z,z.height=Y,z.width=N+Z,z.top=X,z.left=G+p.width+Z;var J=parseFloat(g.paddingTop)*f;U.height=J+Z;var Q=parseFloat(g.paddingBottom)*f;W.height=Q+Z;var tt=p.height-Q-J+Z,et=p.top+J+Z;$.height=tt,$.width=parseFloat(g.paddingLeft)*f+Z,$.top=et;var nt=parseFloat(g.paddingRight)*f;q.height=tt,q.width=nt+Z,q.top=et}},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n||{},i=r.state||'',o=this.getOffsetMethod(i),a=t.Canvas,s=a[o](n.view);s.style.opacity=0}}},2927:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={init:function(){(0,r.bindAll)(this,'_onFramesChange')},run:function(t){this.toggleVis(t)},stop:function(t){this.toggleVis(t,0)},toggleVis:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t.Commands.isActive('preview')){var r=t.Canvas,i=n?'on':'off';r.getFrames().forEach((function(t){return e._upFrame(t,n)})),r.getModel()[i]('change:frames',this._onFramesChange)}},_onFramesChange:function(t,e){var n=this;e.forEach((function(t){return n._upFrame(t,1)}))},_upFrame:function(t,e){var n=e?'add':'remove';t.view.getBody().classList[n]("".concat(this.ppfx,"dashed"))}}},3821:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),a=n(3168);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.all,r=e.onResult,i=e.reset,o=this.storageKey,s={action:'load'},l=n||this.getAll(),c=t[o];if('string'==typeof c)try{c=JSON.parse(c)}catch(t){this.__logWarn('Data parsing failed',{input:c})}return i&&c&&l.reset(null,s),r?c&&r(c,s):c&&(0,a.isDef)(c.length)&&l.reset(c,s),c},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all;return e&&e.reset(null,t),this},__getConfig:function(t){var e=this.config||{};return t?e[t]:e},getAll:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=(0,a.deepMerge)(t,e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,a){var s=l({event:t},a||o);[n,e].map((function(t){return t.trigger(i,r,s)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,a,n),!n.abort&&a()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,a=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:a}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t,e){this.em.logWarning("[".concat(this.name,"]: ").concat(t),e)},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,a.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},799:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2030),c=n(9985);const u={stylePrefix:'css-',rules:[],onBeforeStyle:null};var f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(6409),m=n(9707),y=n(8467);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{},this.opt=e,this.em=e.em,this.ensureSelectors(),this.on('change',this.__onChange)}},{key:"__onChange",value:function(t,e){var n=this.em,r=this.changedAttributes();!(0,a.isEmptyObj)(r)&&n&&n.changesUp(e)}},{key:"clone",value:function(){var t=w({},this.opt),e=w({},this.attributes);return e.selectors=this.get('selectors').map((function(t){return t.clone()})),new this.constructor(e,t)}},{key:"ensureSelectors",value:function(t,e,n){var i=this.em,a=i&&i.get('SelectorManager'),s=[this,'change:selectors',this.ensureSelectors],c=this.getSelectors();if(this.stopListening.apply(this,s),c.models&&(c=(0,r.Z)(c.models)),c=(0,o.isString)(c)?[c]:c,Array.isArray(c)){var u=c.filter((function(t){return t})).map((function(t){return a?a.add(t):t}));c=new l.Z(u)}this.set('selectors',c,n),this.listenTo.apply(this,s)}},{key:"getAtRule",value:function(){var t=this.get('atRuleType'),e=this.get('mediaText'),n=t?"@".concat(t):e?'@media':'';return n+(e&&n?" ".concat(e):'')}},{key:"selectorsToString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get('state'),r=this.get('selectorsAdd'),i={escape:function(t){return x&&x.escape?x.escape(t):t}},o=this.get('selectors').getFullString(0,i),a=n&&!t.skipState?":".concat(n):'';return o&&e.push("".concat(o).concat(a)),r&&!t.skipAdd&&e.push(r),e.join(', ')}},{key:"getDeclaration",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.selectorsToString(t),r=this.styleToString(t),i=this.get('singleAtRule');return(n||i)&&(r||t.allowEmpty)&&(e=i?r:"".concat(n,"{").concat(r,"}")),e}},{key:"getDevice",value:function(){var t=this.em,e=this.attributes,n=e.atRuleType,r=e.mediaText,i=(null==t?void 0:t.get('DeviceManager').getDevices())||[],o=i.filter((function(t){return''===t.getWidthMedia()}))[0];return'media'===n&&r?i.filter((function(t){return t.getWidthMedia()===(0,y.U)(r)}))[0]||null:o||null}},{key:"getState",value:function(){var t=this.em,e=this.get('state');return(t.get('SelectorManager').getStates()||[]).filter((function(t){return t.getName()===e}))[0]||null}},{key:"getComponent",value:function(){var t,e=this.getSelectors(),n=1==e.length&&e.at(0),r=n&&n.isId()&&n.get('name');return r&&(null===(t=this.em)||void 0===t?void 0:t.get('DomComponents').getById(r))||null}},{key:"toCSS",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.getAtRule(),r=this.getDeclaration(t);return(r||t.allowEmpty)&&(e=r),n&&e&&(e="".concat(n,"{").concat(e,"}")),e}},{key:"toJSON",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{},i=e||'',a=n||'',s=r.selectorsAdd||'',l=r.atRuleType||'',c=(0,o.isArray)(t)||t.models?t.models||t:[t];a&&!l&&(l='media');var u=c.map((function(t){return t.getFullName()})),f=this.get('selectors').map((function(t){return t.getFullName()})),h=u.slice().sort(),d=f.slice().sort();return!(u.length!==f.length||!h.every((function(t,e){return t===d[e]})))&&(this.get('state')===i&&this.get('mediaText')===a&&this.get('selectorsAdd')===s&&this.get('atRuleType')===l)}}]),n}(v.Z.extend(m.Z)),C=n(2316);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var P=function(t){(0,d.Z)(n,t);var e=S(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t,e){var n=this;e&&e.em&&(this.editor=e.em),setTimeout((function(){n.on('remove',n.onRemove),n.on('add',n.onAdd)}))}},{key:"toJSON",value:function(t){return C.Collection.prototype.toJSON.call(this,t).filter((function(t){return t.style&&!t.shallow}))}},{key:"onAdd",value:function(t,e,n){t.ensureSelectors(t,e,n)}},{key:"onRemove",value:function(t){var e=this.editor;e.stopListening(t),e.get('UndoManager').remove(t)}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=this.editor.get('Parser').parseCss(t)),e.em=this.editor,C.Collection.prototype.add.apply(this,[t,e])}}]),n}(C.Collection);P.prototype.model=O;var _=n(698);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=n||'',l=r||'',c=E({},o),u=this.get(t,s,l,c);return u&&u.config&&!u.config.singleAtRule||(c.state=s,c.mediaText=l,c.selectors=[],l&&(c.atRuleType='media'),(u=new O(c,i)).get('selectors').add(t,a),e.add(u,a)),u},get:function(n,r,i,a){var s=n;if((0,o.isString)(n)){var l=t.get('SelectorManager'),c=n.split(',')[0].trim(),u=t.get('Parser').parserCss.checkNode({selectors:c})[0];s=l.get(u.selectors)}return e.find((function(t){return t.compare(s,r,i,a)}))||null},getAll:function(){return e},addCollection:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[];(0,o.isString)(e)&&(e=t.get('Parser').parseCss(e));for(var l=e instanceof Array?e:[e],c=0,u=l.length;c2&&void 0!==arguments[2]?arguments[2]:{},i=r.atRuleType,o=r.atRuleParams,a=t.get('Parser').parserCss.checkNode({selectors:e,style:n})[0],s=a.state,l=a.selectorsAdd,c=t.get('SelectorManager'),u=c.add(a.selectors),f=this.add(u,s,o,{selectorsAdd:l,atRule:i});return f.setStyle(n,r),f},getRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.get('SelectorManager'),i=t.get('Parser').parserCss.checkNode({selectors:e})[0],o=r.get(i.selectors),a=i.state,s=i.selectorsAdd,l=n.atRuleType,c=n.atRuleParams;return o&&this.get(o,a,c,{selectorsAdd:s,atRule:l})},getRules:function(t){var e=this.getAll();if(!t)return(0,r.Z)(e.models);var n=(0,o.isString)(t)?t.split(',').map((function(t){return t.trim()})):t;return e.filter((function(t){return n.indexOf(t.getSelectors().getFullString())>=0}))},setIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.addOpts,a=void 0===i?{}:i,s=r.mediaText,l=r.state||'',u=(0,o.isUndefined)(s)?t.getCurrentMedia():s,f=t.get('SelectorManager'),h=f.add({name:e,type:c.Z.TYPE_ID},a),d=this.add(h,l,u,{},a);return d.setStyle(n,E(E({},r),a)),d},getIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.mediaText,i=n.state||'',a=(0,o.isUndefined)(r)?t.getCurrentMedia():r,s=t.get('SelectorManager').get(e,c.Z.TYPE_ID);return s&&this.get(s,i,a)},setClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.state||'',o=r.mediaText||t.getCurrentMedia(),a=t.get('SelectorManager'),s=a.add({name:e,type:c.Z.TYPE_CLASS}),l=this.add(s,i,o);return l.setStyle(n,r),l},getClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state||'',i=n.mediaText||t.getCurrentMedia(),o=t.get('SelectorManager').get(e,c.Z.TYPE_CLASS);return o&&this.get(o,r,i)},remove:function(t,e){var n=(0,o.isString)(t)?this.getRules(t):t,r=this.getAll().remove(n,e);return(0,o.isArray)(r)?r:[r]},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().reset(null,t),this},getComponentRules:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state,i=n.mediaText,a=n.current;a&&(r=t.get('state')||'',i=t.getCurrentMedia());var s=e.getId(),l=this.getAll().filter((function(t){if(((0,o.isUndefined)(r)||t.get('state')===r)&&((0,o.isUndefined)(i)||t.get('mediaText')===i))return t.getSelectorsString()==="#".concat(s)}));return l},render:function(){return n&&n.remove(),(n=new _.Z({collection:e,config:i})).render().el},destroy:function(){e.reset(),e.stopListening(),n&&n.remove(),[t,e,n].forEach((function(t){return null})),i={}}})}},698:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(827);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"tagName",value:function(){return'style'}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,'change',this.render),this.listenTo(e,'destroy remove',this.remove),this.listenTo(e.get('selectors'),'change',this.render)}},{key:"render",value:function(){var t=this.model,e=this.el,n=t.get('important');return e.innerHTML=t.toCSS({important:n}),this}}]),n}(l.View);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var d=function(t){(0,o.Z)(n,t);var e=h(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"_createElement",value:function(){return document.createTextNode('')}},{key:"render",value:function(){var t=this.model,e=t.get('important');return this.el.textContent=t.getDeclaration({important:e}),this}}]),n}(f);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var g=function(t,e){return"".concat(t).concat(e?"-".concat(parseFloat(e)):'')},v=function(t){(0,o.Z)(n,t);var e=p(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{};this.atRules={},this.config=e,this.em=e.em,this.pfx=e.stylePrefix||'',this.className=this.pfx+'rules';var n=this.collection;this.listenTo(n,'add',this.addTo),this.listenTo(n,'reset',this.render)}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){if(this.renderStarted){var n,r,i=e||null,o={model:t,config:this.config};if('keyframes'===t.get('atRuleType')){var a=t.getAtRule(),s=this.atRules[a];if(!s){var l=document.createElement('style');s=document.createTextNode(''),l.appendChild(document.createTextNode("".concat(a,"{"))),l.appendChild(s),l.appendChild(document.createTextNode("}")),this.atRules[a]=s,n=l}r=new d(o),s.appendData(r.render().el.textContent)}else n=(r=new f(o)).render().el;var c=this.className,u=t.get('mediaText'),h=g(c),p=h;if(u&&(p=g(c,this.getMediaWidth(u))),n){var v,m=i||this.el;try{v=m.querySelector("#".concat(p))}catch(t){}v||(v=m.querySelector("#".concat(h))),v.appendChild(n)}return n}}},{key:"getMediaWidth",value:function(t){return t&&t.replace("(".concat(this.em.getConfig('mediaCondition'),": "),'').replace(')','')}},{key:"render",value:function(){var t=this;this.renderStarted=1,this.atRules={};var e=this.em,n=this.$el,r=this.className,i=this.collection,o=document.createDocumentFragment();n.empty();var a=e.get('DeviceManager').getAll().pluck('priority');return a.every((function(t){return t}))&&a.unshift(0),a.forEach((function(t){return o.appendChild((0,c.ut)('div',{id:g(r,t)}))})),i.each((function(e){return t.addToCollection(e,o)})),n.append(o),n.attr('class',r),this}}]),n}(l.View)},7001:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>M,evAdd:()=>E,evAddBefore:()=>j,evAll:()=>C,evPfx:()=>S,evRemove:()=>D,evRemoveBefore:()=>R,evSelect:()=>P,evSelectBefore:()=>_,evUpdate:()=>T});var r=n(4942),i=n(9050),o=n(3821);const a={default:null,devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'770px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var d=function(t){(0,c.Z)(n,t);var e=h(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{name:'',width:null,height:'',widthMedia:null,priority:null}}},{key:"initialize",value:function(){var t=this;null===this.get('widthMedia')&&this.set('widthMedia',this.get('width')),null===this.get('width')&&this.set('width',this.get('widthMedia')),!this.get('priority')&&this.set('priority',parseFloat(this.get('widthMedia'))||0);['width','height','widthMedia'].forEach((function(e){return t.checkUnit(e)}))}},{key:"checkUnit",value:function(t){var e=this.get(t)||'';(parseFloat(e)||0).toString()===e.toString()&&this.set(t,"".concat(e,"px"))}},{key:"getName",value:function(){return this.get('name')||this.get('id')}},{key:"getWidthMedia",value:function(){return this.get('widthMedia')||''}}]),n}(n(6409).Z),p=n(2316);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"comparator",value:function(t,e){var n=Number.MAX_VALUE;return(e.get('priority')||n)-(t.get('priority')||n)}},{key:"getSorted",value:function(){return this.sort()}}]),n}(p.Collection);v.prototype.model=d;var m,y=n(168),b=n(8595);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.ppfx,n=t.label;return(0,b.Z)(m||(m=(0,y.Z)(["\n
","
\n
\n \n \n \n
\n
\n
\n
\n \n "])),e,n,e,e,e,e,e,e,e)}},{key:"events",value:function(){return{change:'updateDevice'}}},{key:"initialize",value:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||'',this.events['click .'+this.ppfx+'add-trasp']=this.startAdd,this.listenTo(this.em,'change:device',this.updateSelect),this.delegateEvents()}},{key:"startAdd",value:function(){}},{key:"updateDevice",value:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():'';t.set('device',n)}}},{key:"updateSelect",value:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),r=n?n.get('id'):'';e.val(r)}}},{key:"getOptions",value:function(){var t=this.collection,e=this.em,n='';return t.each((function(t){var r=t.attributes,i=r.name,o=r.id,a=e&&e.t&&e.t("deviceManager.devices.".concat(o))||i;n+="")})),n}},{key:"render",value:function(){var t=this.em,e=this.ppfx,n=this.$el,r=this.el,i=t&&t.t&&t.t('deviceManager.device');return n.html(this.template({ppfx:e,label:i})),this.devicesEl=n.find(".".concat(e,"devices")),this.devicesEl.append(this.getOptions()),this.devicesEl.val(t.get('device')),r.className="".concat(e,"devices-c"),this}}]),n}(p.View);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=n=O(O({},a),r),o=i.em;return t=new v,n.devices.forEach((function(t){return e.add(t)})),this.em=o,this.all=t,this.select(n.default||t.at(0)),this.__initListen(),o.on(A,this._onSelect,this),this},_onSelect:function(t,e,n){var r=this.em,i=this.events,o=t.previous('device'),a=this.get(e),s=i.select;r.trigger(s,a,this.get(o)),this.__catchAllEvent(s,a,n)},add:function(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r;if((0,i.isString)(e)){var a=r;n=O(O({},o=arguments[2]||{}),{},{id:e,name:o.name||e,width:a})}else n=e;return n.id||(n.id=n.name||this._createId()),t.add(n,o)},get:function(e){return this.getAll().filter((function(t){return t.get('name')===e}))[0]||t.get(e)||null},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getDevices:function(){return t.models},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.isString)(t)?this.get(t):t;return n&&this.em.set('device',n.get('id'),e),this},getSelected:function(){return this.get(this.em.get('device'))},getAll:function(){return t},render:function(){return e&&e.remove(),(e=new k({collection:t,config:n})).render().el},destroy:function(){t.stopListening(),t.reset(),e&&e.remove(),[t,e].forEach((function(t){return null})),n={}}})}},6510:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>de});var r=n(1002),i=n(4925),o=n(4942),a=n(9050);const s={stylePrefix:'comp-',components:[],draggableComponents:1,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']};var l=n(4822),c=n(9256),u=n(274),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var m=function(t){(0,d.Z)(n,t);var e=v(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"tagName",value:function(){return'div'}}]),n}(u.Z),y=n(2586),b=n(3168);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e=0}}),O=u.Z.extend({});function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){l.ZP.prototype.initialize.apply(this,arguments);var n=this.get('attributes'),r=n.src;r&&this.set('src',r,{silent:1})},initToolbar:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.get(t.fallback?'fallback':'src')||'',n=e;return e&&'1&&void 0!==arguments[1]?arguments[1]:{};if('a'===(0,b.toLowerCase)(t.tagName)){var r=n.textTags||[];e={type:ut,editable:!1};var i=t.childNodes,o=i.length;o||delete e.editable,(0,a.forEach)(i,(function(t){var n=t.tagName;(3==t.nodeType&&''!==t.textContent.trim()||n&&r.indexOf((0,b.toLowerCase)(n))>=0)&&delete e.editable}))}return e};var ht=n(5861),dt=n(7757),pt=n.n(dt);function gt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function vt(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},canActivate:function(){var t,e=this.model,n=this.rteEnabled,r=this.em,i=(null==r?void 0:r.getEditing())===e,o=!0,a=!1;if((n||!e.get('editable')||i||(a=e.isChildOf('text')))&&(o=!1,a&&!e.get('textable'))){for(var s=e.parent();s&&!s.isInstanceOf('text');)s=s.parent();s&&s.get('editable')?t=s:o=!0}return{result:o,delegate:t}},onActive:function(t){var e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l,c;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=e.rte,o=e.em,a=e.canActivate(),s=a.result,l=a.delegate,s){n.next=5;break}return l&&(null==t||null===(c=t.stopPropagation)||void 0===c||c.call(t),o.setSelected(l),l.trigger('active',t)),n.abrupt("return");case 5:if(null==t||null===(r=t.stopPropagation)||void 0===r||r.call(t),e.lastContent=e.getContent(),!i){n.next=17;break}return n.prev=8,n.next=11,i.enable(e,e.activeRte,{event:t});case 11:e.activeRte=n.sent,n.next=17;break;case 14:n.prev=14,n.t0=n.catch(8),o.logError(n.t0);case 17:e.toggleEvents(1);case 18:case"end":return n.stop()}}),n,null,[[8,14]])})))()},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=arguments,e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.model,o=e.rte,a=e.activeRte,s=e.em,l=i&&i.get('editable'),!o){n.next=13;break}return n.prev=4,n.next=7,o.disable(e,a);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),s.logError(n.t0);case 12:l&&e.getContent()!==e.lastContent&&(e.syncContent(r),e.lastContent='');case 13:e.toggleEvents();case 14:case"end":return n.stop()}}),n,null,[[4,9]])})))()},getContent:function(){var t=this.activeRte;return t&&'function'==typeof t.getContent?t.getContent():this.getChildrenContainer().innerHTML},syncContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.rte,r=this.rteEnabled;if(r||t.force){var i=this.getContent(),o=e.components(),a=vt({fromDisable:1},t);e.set('content','',a),n.customRte?(o.length&&o.reset(null,t),e.set('content',i,a)):o.resetFromString(i,t)}},insertComponent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=this.el,i=r.ownerDocument,o=i.getSelection();if(null!=o&&o.rangeCount){var a,s=o.getRangeAt(0),l=s.startContainer,c=s.startOffset,u=(0,b.getModel)(l),f=[];if(u&&null!==(a=u.is)&&void 0!==a&&a.call(u,'textnode')){var h=u.collection;h.forEach((function(e){if(e===u){var n='textnode',r=e.get('content');f.push({type:n,content:r.slice(0,c)}),f.push(t),f.push({type:n,content:r.slice(c)})}else f.push(e)}));var d=f.filter(Boolean),p=d.indexOf(t);return h.reset(d,e),h.at(p)}}return n.append(t,e)},onInput:function(){var t=this.em,e='component',n=["".concat(e,":update"),"".concat(e,":input")].join(' ');t&&t.trigger(n,this.model)},disablePropagation:function(t){t.stopPropagation()},toggleEvents:function(t){var e=this.em,n=this.model,r=this.$el,i={on:b.on,off:b.off},o=t?'on':'off';e.setEditing(t?this:0),this.rteEnabled=!!t;var a=[this.el.ownerDocument,document];if(i.off(a,'mousedown',this.onDisable),i[o](a,'mousedown',this.onDisable),e[o]('toolbar:run:before',this.onDisable),n&&(n[o]('removed',this.onDisable),n.trigger("rte:".concat(t?'enable':'disable'))),r&&r.off('mousedown',this.disablePropagation),r&&r[o]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var s=this.el;s;)s.draggable=!t,(s=s.parentNode)&&'BODY'==s.tagName&&(s=0)}}),bt=yt.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return!!e.inSvg}}),Wt=u.Z.extend({_createElement:function(t){return document.createElementNS('http://www.w3.org/2000/svg',t)}});function $t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function qt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return this.getComponents().add(t,e)},render:function(){return n.render().el},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getComponents().map((function(t){return t})).forEach((function(e){return e.remove(t)})),this},setComponents:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.clear(e).addComponent(t,e)},addType:function(t,e){var n=this.em,i=e.model,o=void 0===i?{}:i,s=e.view,l=void 0===s?{}:s,c=e.isComponent,u=e.extend,f=e.extendView,d=e.extendFn,p=void 0===d?[]:d,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),y=this.getType(u),b=this.getType(f),w=y||(m||this.getType('default')),k=w.model,x=b?b.view:w.view,O=function(t,e,n){return t.reduce((function(t,r){var i=e[r],o=n.prototype[r];return i&&o&&(t[r]=function(){o.bind(this).apply(void 0,arguments),i.bind(this).apply(void 0,arguments)}),t}),{})};'object'===(0,r.Z)(o)&&(e.model=k.extend(he(he(he({},o),O(p,o,k)),{},{defaults:he(he({},(0,a.result)(k.prototype,'defaults')||{}),(0,a.result)(o,'defaults')||{})}),{isComponent:!m||y||c?c||function(){return 0}:k.isComponent})),'object'===(0,r.Z)(l)&&(e.view=x.extend(he(he({},l),O(v,l,x)))),m?(m.model=e.model,m.view=e.view):(e.id=t,h.unshift(e));var C="component:type:".concat(m?'update':'add');return n&&n.trigger(C,m||e),this},getType:function(t){for(var e=h,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};t&&(t.set({status:'selected'}),['component:selected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)})))},selectRemove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t){this.em;t.set({status:'',state:''}),['component:deselected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)}))}},componentHovered:function(){var t=o.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),r='hovered';n&&n.get('status')==r&&n.set({status:'',state:''}),e&&(0,a.isEmpty)(e.get('status'))&&e.set('status',r)},getShallowWrapper:function(){var t=this.shallow,e=this.em;if(!t&&e){var n=e.get('shallow');if(!n)return;var r=n.get('DomComponents');if(r.componentTypes=this.componentTypes,t=r.getWrapper()){var i=[l.GN,l.xH].join(' ');t.on(i,(0,a.debounce)((function(){return t.components('')}),100))}this.shallow=t}return t},canMove:function(t,e,n){var r=n||0===n?n:null,i={result:!1,reason:0,target:t,source:null};if(!e)return i;var o=null!=e&&e.toHTML?e:null;if(!o){var s=this.getShallowWrapper();o=null==s?void 0:s.append(e)[0]}if(i.source=o,!o)return i;var l=o.get('draggable');if((0,a.isFunction)(l))l=!!l(o,t,r);else{var c=t.getEl();l=(0,a.isArray)(l)?l.join(','):l,l=(0,a.isString)(l)?null==c?void 0:c.matches(l):l}if(!l)return he(he({},i),{},{reason:1});var u=t.get('droppable');if((0,a.isFunction)(u))u=!!u(o,t,r);else if(!1===u&&t.isInstanceOf('text')&&o.get('textable'))u=!0;else{var f=o.getEl();u=(0,a.isArray)(u)?u.join(','):u,u=(0,a.isString)(u)?null==f?void 0:f.matches(u):u}return he(he({},i),{},u?{result:!0}:{reason:2})},allById:function(){return f},getById:function(t){return f[t]||null},destroy:function(){var r=this.allById();Object.keys(r).forEach((function(t){return r[t]&&r[t].remove()})),n&&n.remove(),[o,t,f,e,n].forEach((function(t){return{}})),this.em={}}})}},4822:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>N,OA:()=>D,GN:()=>Z,xH:()=>L});var r=n(1002),i=n(2982),o=n(885),a=n(4942),s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(9050),d=n(3168),p=n(9707),g=n(2316),v=n(9256),m=n(9985),y=n(2030);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('label')||this.getName();return r&&(null===(t=this.em)||void 0===t?void 0:t.t("traitManager.traits.labels.".concat(i)))||o}},{key:"getValue",value:function(){return this.getTargetValue()}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};e.partial&&(n.avoidStore=!0),this.setTargetValue(t,n),!1===e.partial&&(this.setTargetValue(''),this.setTargetValue(t))}},{key:"props",value:function(){return this.attributes}},{key:"targetUpdated",value:function(){var t,e=this.getTargetValue();this.set({value:e},{fromTarget:1}),null===(t=this.em)||void 0===t||t.trigger('trait:update',{trait:this,component:this.target})}},{key:"getTargetValue",value:function(){var t,e=this.get('name'),n=this.target;return t=this.get('changeProp')?n.get(e):n.getAttributes()[e],(0,h.isUndefined)(t)?'':t}},{key:"setTargetValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.target,r=this.get('name');if(!(0,h.isUndefined)(t)){var i=t;if('false'===t?i=!1:'true'===t&&(i=!0),this.get('changeProp'))n.set(r,i,e);else{var o=w({},n.get('attributes'));o[r]=i,n.set('attributes',o,e)}}}},{key:"setValueFromInput",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,w(w({},n),{},{avoidStore:1})),e&&(this.set('value','',n),this.set(r,n))}},{key:"getInitValue",value:function(){var t,e=this.target,n=this.get('name');if(e){var r=e.get('attributes');t=this.get('changeProp')?e.get(n):r[n]}return t||this.get('value')||this.get('default')}}]),n}(n(6409).Z);x.prototype.defaults={type:'text',label:'',name:'',min:'',max:'',unit:'',step:1,value:'',target:'',default:'',placeholder:'',changeProp:0,options:[]};function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var C,S=function(t){(0,c.Z)(n,t);var e=O(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.listenTo(this,'add',this.handleAdd),this.listenTo(this,'reset',this.handleReset)}},{key:"handleReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels,r=void 0===n?[]:n;r.forEach((function(t){return t.trigger('remove')}))}},{key:"handleAdd",value:function(t){t.em=this.em;var e=this.target;e&&(t.target=e)}},{key:"setTarget",value:function(t){this.target=t}},{key:"add",value:function(t,e){var n=this.em;if((0,h.isString)(t)||(0,h.isArray)(t)){var r=n&&n.get&&n.get('TraitManager'),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];'string'==typeof e&&(e=[e]);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,h.bindAll)(this,'__upSymbProps','__upSymbCls','__upSymbComps');var i=r.em,o=this.parent(),a=o&&o.attributes,s=this.get('propagate');if(s&&this.set('propagate',(0,h.isArray)(s)?s:[s]),a&&a.propagate&&!s){var l={},c=a.propagate;c.forEach((function(t){return l[t]=o.get(t)})),l.propagate=c,this.set(_(_({},l),e))}if(r&&r.config&&r.config.voidElements.indexOf(this.get('tagName'))>=0&&this.set('void',!0),r.em=i,this.opt=r,this.em=i,this.frame=r.frame,this.config=r.config||{},this.set('attributes',_(_({},(0,h.result)(this,'defaults').attributes||{}),this.get('attributes')||{})),this.ccid=n.createId(this,r),this.initClasses(),this.initTraits(),this.initComponents(),this.initToolbar(),this.initScriptProps(),this.listenTo(this,'change:script',this.scriptUpdated),this.listenTo(this,'change:tagName',this.tagUpdated),this.listenTo(this,'change:attributes',this.attrUpdated),this.listenTo(this,'change:attributes:id',this._idUpdated),this.on('change:toolbar',this.__emitUpdateTlb),this.on('change',this.__onChange),this.on(L,this.__propToParent),this.set('status',''),this.views=[],['classes','traits','components'].forEach((function(e){var n="add remove ".concat('components'!==e?'change':'');t.listenTo(t.get(e),n.trim(),(function(){for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e&&e.get('UndoManager'),r=this.components();n&&!this.__hasUm&&(n.add(r),n.add(this.getSelectors()),this.__hasUm=1),t.recursive&&r.map((function(e){return e.__postAdd(t)}))}},{key:"__postRemove",value:function(){var t=this.em,e=t&&t.get('UndoManager');e&&(e.remove(this.components()),e.remove(this.getSelectors()),delete this.__hasUm)}},{key:"__onChange",value:function(t,e){var n=this.changedAttributes();['status','open','toolbar','traits'].forEach((function(t){return delete n[t]})),(0,d.isEmptyObj)(n)||(this.__changesUp(e),this.__propSelfToParent({component:this,changed:n,options:e}))}},{key:"__changesUp",value:function(t){var e=this.em;[this.frame,e].forEach((function(e){return e&&e.changesUp(t)}))}},{key:"__propSelfToParent",value:function(t){this.trigger(Z,t),this.__propToParent(t)}},{key:"__propToParent",value:function(t){var e=this.parent();e&&e.trigger(L,t)}},{key:"__emitUpdateTlb",value:function(){this.emitUpdate('toolbar')}},{key:"is",value:function(t){return!(this.get('type')!=t)}},{key:"props",value:function(){return this.attributes}},{key:"index",value:function(){var t=this.collection;return t?t.indexOf(this):0}},{key:"setDragMode",value:function(t){return this.set('dmode',t)}},{key:"find",value:function(t){var e=[],n=this.view.$el.find(t);return n.each((function(t){var r=n.eq(t).data('model');r&&e.push(r)})),e}},{key:"findType",value:function(t){var e=[];return function n(r){return r.forEach((function(r){r.is(t)&&e.push(r),n(r.components())}))}(this.components()),e}},{key:"closest",value:function(t){var e=this.view.$el.closest(t);return e.length&&e.data('model')}},{key:"closestType",value:function(t){for(var e=this.parent();e&&!e.is(t);)e=e.parent();return e}},{key:"contains",value:function(t){var e=!1;if(!t)return e;var n=function n(r){!e&&r.forEach((function(r){r===t&&(e=!0),!e&&n(r.components())}))};return n(this.components()),e}},{key:"tagUpdated",value:function(){this.trigger('rerender')}},{key:"replaceWith",value:function(t){var e=this.collection,n=e.indexOf(this);return e.remove(this),e.add(t,{at:n})}},{key:"attrUpdated",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.get('attributes'),o=i.class;o&&this.setClass(o),delete i.class;var a=i.style;a&&this.setStyle(a),delete i.style;var s=_({},this.previous('attributes')),l=(0,d.shallowDiff)(s,this.get('attributes'));(0,h.keys)(l).forEach((function(t){return n.trigger("change:attributes:".concat(t),n,l[t],r)}))}},{key:"setAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.set('attributes',_({},t),e),this}},{key:"addAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setAttributes(_(_({},this.getAttributes({noClass:1})),t),e)}},{key:"removeAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.getAttributes();return n.map((function(t){return delete r[t]})),this.setAttributes(r,e)}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=(0,h.isString)(t)?t:'',i=r?e:t;if(n&&n.getConfig('avoidInlineStyle')&&!i.inline){var o=n.get('state'),a=n.get('CssComposer'),s=a.getIdRule(this.getId(),_({state:o},i));if(this.rule=s,s)return s.getStyle(r)}return p.Z.getStyle.call(this,r)}},{key:"setStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=this.opt;if(r&&r.getConfig('avoidInlineStyle')&&!i.temporary&&!n.inline){var o=this.get('style')||{};e=_(_({},e=(0,h.isString)(e)?this.parseStyle(e):e),o);var a=r.get('state'),s=r.get('CssComposer'),l=this.getStyle(n);this.rule=s.setIdRule(this.getId(),e,_(_({},n),{},{state:a}));var c=(0,d.shallowDiff)(l,e);this.set('style','',{silent:1}),(0,h.keys)(c).forEach((function(e){return t.trigger("change:style:".concat(e))}))}else e=p.Z.setStyle.apply(this,arguments);return e}},{key:"getAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=[],i=_({},this.get('attributes')),o=n&&n.get('SelectorManager'),a=this.getId();if(e.noClass||(this.get('classes').forEach((function(t){return r.push((0,h.isString)(t)?t:t.get('name'))})),r.length&&(i.class=r.join(' '))),!e.noStyle){var s=this.get('style');(0,d.isObject)(s)&&!(0,d.isEmptyObj)(s)&&(i.style=this.styleToString({inline:1}))}(0,h.has)(i,'id')||(j(n)?t=o&&o.get(a,o.Selector.TYPE_ID):(0,h.isEmpty)(this.getStyle())||(t=1),(this.__getSymbol()||this.__getSymbols())&&(t=1),t&&(i.id=a));return i}},{key:"addClass",value:function(t){var e=this.em.get('SelectorManager').addClass(t);return this.get('classes').add(e)}},{key:"setClass",value:function(t){return this.get('classes').reset(),this.addClass(t)}},{key:"removeClass",value:function(t){var e=[];t=(0,h.isArray)(t)?t:[t];var n=this.get('classes'),r=m.Z.TYPE_CLASS;return t.forEach((function(t){t.split(' ').forEach((function(t){var i=n.where({name:t,type:r})[0];i&&e.push(n.remove(i))}))})),e}},{key:"getClasses",value:function(){var t=this.getAttributes().class;return t?t.split(' '):[]}},{key:"__logSymbol",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.__getSymbol(),i=this.__getSymbols();(r||i)&&this.em.log(t,{model:this,toUp:e,context:'symbols',opts:n})}},{key:"__initSymb",value:function(){this.__symbReady||(this.on('change',this.__upSymbProps),this.__symbReady=1)}},{key:"__isSymbol",value:function(){return(0,h.isArray)(this.get(R))}},{key:"__isSymbolOrInst",value:function(){return!(!this.__isSymbol()&&!this.get(A))}},{key:"__isSymbolTop",value:function(){var t=this.parent();return this.__isSymbolOrInst()&&(!t||t&&!t.__isSymbol()&&!t.__getSymbol())}},{key:"__isSymbolNested",value:function(){if(!this.__isSymbolOrInst()||this.__isSymbolTop())return!1;var t=(this.__isSymbol()?this:this.__getSymbol()).__getSymbTop(),e=this.__getSymbTop();return(e.__isSymbol()?e:e.__getSymbol())!==t}},{key:"__getAllById",value:function(){var t=this.em;return t?t.get('DomComponents').allById():{}}},{key:"__getSymbol",value:function(){var t=this.get(A);if(t&&(0,h.isString)(t)){var e=this.__getAllById()[t];e?(t=e,this.set(A,e)):t=0}return t}},{key:"__getSymbols",value:function(){var t=this,e=this.get(R);return e&&(0,h.isArray)(e)&&(e.forEach((function(n,r){n&&(0,h.isString)(n)&&(e[r]=t.__getAllById()[n])})),e=e.filter((function(t){return t&&!(0,h.isString)(t)}))),e}},{key:"__isSymbOvrd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.get(M),n=t.split(':'),r=(0,o.Z)(n,1),i=r[0],a=t!==i?[t,i]:[t];return!0===e||(0,h.isArray)(e)&&a.some((function(t){return e.indexOf(t)>=0}))}},{key:"__getSymbToUp",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[],r=this.em,o=e.changed,a=r&&r.get('symbols');if(e.fromInstance||e.noPropagate||e.fromUndo||!a||o&&this.__isSymbOvrd(o))return n;var s=this.__getSymbols()||[],l=this.__getSymbol(),c=l?[l].concat((0,i.Z)(l.__getSymbols()||[])):s;return n=c.filter((function(e){return e!==t})).filter((function(t){return!(o&&t.__isSymbOvrd(o))}))}},{key:"__getSymbTop",value:function(t){for(var e=this,n=this.parent(t);n&&(n.__isSymbol()||n.__getSymbol());)e=n,n=n.parent(t);return e}},{key:"__upSymbProps",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.changedAttributes(),i=r.attributes||{};if(delete r.status,delete r.open,delete r.__symbols,delete r.__symbol,delete r.__symbol_ovrd,delete r.attributes,delete i.id,(0,d.isEmptyObj)(i)||(r.attributes=i),!(0,d.isEmptyObj)(r)){var o=this.__getSymbToUp(n);(0,h.keys)(r).map((function(t){e.__isSymbOvrd(t)&&delete r[t]})),this.__logSymbol('props',o,{opts:n,changed:r}),o.forEach((function(t){var i=_({},r);(0,h.keys)(i).map((function(e){t.__isSymbOvrd(e)&&delete i[e]})),t.set(i,_({fromInstance:e},n))}))}}},{key:"__upSymbCls",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.__getSymbToUp(r);this.__logSymbol('classes',i,{opts:r}),i.forEach((function(t){t.set('classes',n.get('classes'),{fromInstance:n})})),this.__changesUp(r)}},{key:"__upSymbComps",value:function(t,e,n){var r=this,o=n||e||{},a={fromInstance:o.fromInstance,fromUndo:o.fromUndo},s=t.opt.temporary;if(n)if(n.add){var l=[],c=!!this.__getSymbols(),u=this.__getSymbToUp(_(_({},a),{},{changed:'components:add'}));if(u.length){var f=t.__getSymbol();l=(f?f.__getSymbols():t.__getSymbols())||[],(l=(0,i.Z)(l)).push(f||t)}!s&&this.__logSymbol('add',u,{opts:n,addedInstances:l.map((function(t){return t.cid})),added:t.cid}),u.forEach((function(e){var i=e.__getSymbTop(),o=l.filter((function(t){var e=t.__getSymbTop({prev:1});return i&&e&&e===i}))[0]||t.clone({symbol:1,symbolInv:c});e.append(o,_({fromInstance:r},n))}))}else{var h=t.__getSymbol();if(h&&!n.temporary&&h.set(R,h.__getSymbols().filter((function(e){return e!==t}))),!t.__isSymbolTop()){var d='components:remove',p=n.index,g=t.parent(),v=_({fromInstance:t},n),m=t.__isSymbolNested(),y=function(t){var e=t.parent();e&&!e.__isSymbOvrd(d)&&t.remove(v)},b=g.__isSymbOvrd(d)?[]:t.__getSymbToUp(a);m&&(b=g.__getSymbToUp(_(_({},a),{},{changed:d})),y=function(t){var e=t.components().at(p);e&&e.remove(_({fromInstance:g},v))}),!s&&this.__logSymbol('remove',b,{opts:n,removed:t.cid,isSymbNested:m}),b.forEach(y)}}else{var w=this.__getSymbToUp(_(_({},a),{},{changed:'components:reset'}));this.__logSymbol('reset',w,{components:t.models}),w.forEach((function(n){var i=t.models.map((function(t){return t.clone({symbol:1})}));n.components().reset(i,_({fromInstance:r},e))}))}this.__changesUp(o)}},{key:"initClasses",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r='change:classes',i=this.get('attributes').class||[],o=[this,r,this.initClasses],a=this.get('classes')||i,s=(0,h.isString)(a)?a.split(' '):a;this.stopListening.apply(this,o);var l=this.normalizeClasses(s),c=new y.Z([]);return this.set('classes',c,n),c.add(l),c.on('add remove reset',this.__upSymbCls),this.listenTo.apply(this,o),this}},{key:"initComponents",value:function(){var t=[this,'change:components',this.initComponents];this.stopListening.apply(this,t);var e=new v.Z(null,this.opt);e.parent=this;var n=this.get('components'),r=!this.opt.avoidChildren;return this.set('components',e),r&&n&&e.add((0,h.isFunction)(n)?n(this):n,this.opt),e.on('add remove reset',this.__upSymbComps),this.listenTo.apply(this,t),this}},{key:"initTraits",value:function(t){var e=this.em,n='change:traits';this.off(n,this.initTraits),this.__loadTraits();var r=_({},this.get('attributes')),i=this.get('traits');return i.each((function(t){if(!t.get('changeProp')){var e=t.get('name'),n=t.getInitValue();e&&n&&(r[e]=n)}})),i.length&&this.set('attributes',r),this.on(n,this.initTraits),t&&e&&e.trigger('component:toggled'),this}},{key:"initScriptProps",value:function(){if(!this.opt.temporary){var t='script-props',e=["change:".concat(t),this.initScriptProps];this.off.apply(this,e);var n=this.previous(t)||[],r=this.get(t)||[],i=n.map((function(t){return"change:".concat(t)})).join(' '),o=r.map((function(t){return"change:".concat(t)})).join(' ');i&&this.off(i,this.__scriptPropsChange),o&&this.on(o,this.__scriptPropsChange),this.on.apply(this,e)}}},{key:"__scriptPropsChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.avoidStore||this.trigger('rerender')}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,h.isArray)(t)?t:[t],r=n.map((function(t){return(0,h.isString)(t)||t.collection&&t.collection.remove(t,{temporary:1}),t})),i=this.components().add(r,e);return(0,h.isArray)(i)?i:[i]}},{key:"components",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('components');return(0,h.isUndefined)(t)?n:(n.reset(null,e),t?this.append(t,e):[])}},{key:"getChildAt",value:function(t){return this.components().at(t||0)||null}},{key:"getLastChild",value:function(){var t=this.components();return t.at(t.length-1)||null}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.components().reset(null,t),this}},{key:"parent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.collection||t.prev&&this.prevColl;return e?e.parent:null}},{key:"scriptUpdated",value:function(){this.set('scriptUpdated',1)}},{key:"initToolbar",value:function(){var t=this.em,e=this,n=t&&t.getConfig('stylePrefix')||'';if(!e.get('toolbar')&&t){var r=[];e.collection&&r.push({label:t.getIcon('arrowUp'),command:function(t){return t.runCommand('core:component-exit',{force:1})}}),e.get('draggable')&&r.push({attributes:{class:"".concat(n,"no-touch-actions"),draggable:!0},label:t.getIcon('move'),command:'tlb-move'}),e.get('copyable')&&r.push({label:t.getIcon('copy'),command:'tlb-clone'}),e.get('removable')&&r.push({label:t.getIcon('delete'),command:'tlb-delete'}),e.set('toolbar',r)}}},{key:"__loadTraits",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t||this.get('traits');if(!(n instanceof S)){n=(0,h.isFunction)(n)?n(this):n;var r=new S([],this.opt);r.setTarget(this),n.length&&(n.forEach((function(t){return t.attributes&&delete t.attributes.value})),r.add(n)),this.set({traits:r},e)}return this}},{key:"getTraits",value:function(){return this.__loadTraits(),(0,i.Z)(this.get('traits').models)}},{key:"setTraits",value:function(t){var e=(0,h.isArray)(t)?t:[t];return this.set({traits:e}),this.getTraits()}},{key:"getTrait",value:function(t){return this.getTraits().filter((function(e){return e.get('id')===t||e.get('name')===t}))[0]||null}},{key:"updateTrait",value:function(t,e){var n,r=this.getTrait(t);return r&&r.set(e),null===(n=this.em)||void 0===n||n.trigger('component:toggled'),this}},{key:"getTraitIndex",value:function(t){var e=this.getTrait(t);return e?this.get('traits').indexOf(e):-1}},{key:"removeTrait",value:function(t){var e,n=this,r=((0,h.isArray)(t)?t:[t]).map((function(t){return n.getTrait(t)})),i=this.get('traits'),o=r.length?i.remove(r):[];return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(o)?o:[o]}},{key:"addTrait",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.__loadTraits();var r=this.get('traits').add(t,n);return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(r)?r:[r]}},{key:"normalizeClasses",value:function(t){var e=[],n=this.em,r=n&&n.get('SelectorManager');if(r)return t.models?(0,i.Z)(t.models):(t.forEach((function(t){return e.push(r.add(t))})),e)}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=_({},this.attributes),r=_({},this.opt),o=this.getId(),a=e&&e.get('CssComposer');n.attributes=_({},n.attributes),delete n.attributes.id,n.components=[],n.classes=[],n.traits=[],this.__isSymbolTop()&&(t.symbol=1),this.get('components').each((function(e,r){n.components[r]=e.clone(_(_({},t),{},{_inner:1}))})),this.get('traits').each((function(t,e){n.traits[e]=t.clone()})),this.get('classes').each((function(t,e){n.classes[e]=t.get('name')})),n.status='',r.collection=null;var s=new this.constructor(n,r),l="#".concat(s.getId()),c=a?a.getRules("#".concat(o)):[];c.forEach((function(t){var e=t.clone();e.set('selectors',[l]),a.getAll().add(e)})),s.set(R,0);var u=this.__getSymbol(),f=this.__getSymbols();t.symbol||!u&&!f?u?(u.set(R,[].concat((0,i.Z)(u.__getSymbols()),[s])),s.__initSymb()):t.symbol&&(this.__isSymbol()?(this.set(R,[].concat((0,i.Z)(f),[s])),s.set(A,this),s.__initSymb()):t.symbolInv?(this.set(R,[s]),s.set(A,this),[this,s].map((function(t){return t.__initSymb()}))):(s.set(R,[this]),[this,s].map((function(t){return t.__initSymb()})),this.set(A,s))):(s.set(A,0),s.set(R,0));var h='component:clone';return e&&e.trigger(h,s),this.trigger(h,s),s}},{key:"getName",value:function(){var t=this.em,e=this.attributes,n=e.type,r=e.tagName,i=e.name,o=n||r,a=!n&&r,s='domComponents.names.',l=i&&(null==t?void 0:t.t("".concat(s).concat(i))),c=a&&(null==t?void 0:t.t("".concat(s).concat(a))),u=t&&(t.t("".concat(s).concat(n))||t.t("".concat(s).concat(r)));return this.get('custom-name')||l||i||c||(0,d.capitalize)(a)||u||(0,d.capitalize)(o)}},{key:"getIcon",value:function(){var t=this.get('icon');return t?t+' ':''}},{key:"toHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=[],r=t.tag,i=r||e.get('tagName'),o=e.get('void'),a=t.attributes,s=this.getAttrToHTML();if(delete t.tag,a&&((0,h.isFunction)(a)?s=a(e,s)||{}:(0,d.isObject)(a)&&(s=a)),t.withProps){var l=this.toJSON();(0,h.forEach)(l,(function(t,e){'_'!==e[0]&&['classes','attributes','components'].indexOf(e)<0&&(s["data-gjs-".concat(e)]=(0,h.isArray)(t)||(0,d.isObject)(t)?JSON.stringify(t):t)}))}for(var c in s){var u=s[c];if(!(0,h.isUndefined)(u)&&null!==u)if((0,h.isBoolean)(u))u&&n.push(c);else{var f='';if(t.altQuoteAttr&&(0,h.isString)(u)&&u.indexOf('"')>=0)f="'".concat(u.replace(/'/g,'''),"'");else{var p=(0,h.isString)(u)?u.replace(/"/g,'"'):u;f="\"".concat(p,"\"")}n.push("".concat(c,"=").concat(f))}}var g=n.length?" ".concat(n.join(' ')):'',v=e.getInnerHTML(t),m="<".concat(i).concat(g).concat(o?'/':'',">").concat(v);return!o&&(m+="")),m}},{key:"getInnerHTML",value:function(t){return this.__innerHTML(t)}},{key:"__innerHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.components();return e.length?e.map((function(e){return e.toHTML(t)})).join(''):this.get('content')}},{key:"getAttrToHTML",value:function(){var t=this.getAttributes();return delete t.style,t}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=g.Model.prototype.toJSON.call(this,t);if(e.attributes=this.getAttributes(),delete e.attributes.class,delete e.toolbar,delete e.traits,delete e.status,delete e.open,!t.fromUndo){var n=e.__symbol,r=e.__symbols;r&&(0,h.isArray)(r)&&(e.__symbols=r.filter((function(t){return t})).map((function(t){return t.getId?t.getId():t}))),n&&!(0,h.isString)(n)&&(e.__symbol=n.getId())}return this.em.getConfig('avoidDefaults')&&this.getChangedProps(e),e}},{key:"getChangedProps",value:function(t){var e=t||g.Model.prototype.toJSON.apply(this),n=(0,h.result)(this,'defaults');return(0,h.forEach)(n,(function(t,n){-1===['type'].indexOf(n)&&e[n]===t&&delete e[n]})),(0,h.isEmpty)(e.type)&&delete e.type,(0,h.forEach)(['attributes','style'],(function(t){(0,h.isEmpty)(n[t])&&(0,h.isEmpty)(e[t])&&delete e[t]})),(0,h.forEach)(['classes','components'],(function(t){(!e[t]||(0,h.isEmpty)(n[t])&&!e[t].length)&&delete e[t]})),e}},{key:"getId",value:function(){return(this.get('attributes')||{}).id||this.ccid||this.cid}},{key:"setId",value:function(t,e){var n=_({},this.get('attributes'));return n.id=t,this.set('attributes',n,e),this}},{key:"getEl",value:function(t){var e=this.getView(t);return e&&e.el}},{key:"getView",value:function(t){var e=this.view,n=this.views;return t&&(e=n.filter((function(e){return e._getFrame()===t.view}))[0]),e}},{key:"getCurrentView",value:function(){var t=(this.em.get('currentFrame')||{}).model;return this.getView(t)}},{key:"__getScriptProps",value:function(){var t=this.props();return(this.get('script-props')||[]).reduce((function(e,n){return e[n]=t[n],e}),{})}},{key:"getScriptString",value:function(t){var e=this,n=t||this.get('script');if(!n)return n;if(this.get('script-props'))n=n.toString().trim();else{if('function'==typeof n){var i=n.toString().trim();n=(i=i.replace(/^function[\s\w]*\(\)\s?\{/,'').replace(/\}$/,'')).trim()}var o=this.em.getConfig(),a=E(o.tagVarStart||'{[ '),s=E(o.tagVarEnd||' ]}'),l=new RegExp("".concat(a,"([\\w\\d-]*)").concat(s),'g');n=n.replace(l,(function(t,n){e.scriptUpdated();var i=e.attributes[n]||'';return(0,h.isArray)(i)||'object'==(0,r.Z)(i)?JSON.stringify(i):i}))}return n}},{key:"emitUpdate",value:function(t){for(var e=this.em,n=Z+(t?":".concat(t):''),r=t&&this.get(t),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s=0&&this.__propSelfToParent({component:this,changed:(0,a.Z)({},t,r),options:o[2]||o[1]||{}})}},{key:"onAll",value:function(t){return(0,h.isFunction)(t)&&(t(this),this.components().forEach((function(e){return e.onAll(t)}))),this}},{key:"remove",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=this.collection,i=function(){r&&r.remove(t,_(_({},e),{},{action:'remove-component'})),r||(t.components('',e),t.components().removeChildren(t,null,e))},o=_({},e);return[this,n].map((function(e){return e.trigger('component:remove:before',t,i,o)})),!o.abort&&i(),this}},{key:"move",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.remove({temporary:1}),t&&t.append(this,e),this}},{key:"isInstanceOf",value:function(t){var e,n,r=null===(e=this.em)||void 0===e||null===(n=e.get('DomComponents').getType(t))||void 0===n?void 0:n.model;return!!r&&this instanceof r}},{key:"isChildOf",value:function(t){for(var e=(0,h.isString)(t),n=this.parent();n;){if(e){if(n.isInstanceOf(t))return!0}else if(n===t)return!0;n=n.parent()}return!1}},{key:"resetId",value:function(){var t=this.em,e=this.getId();if(e){var r=n.createId(this);this.setId(r);var i=t&&t.get('CssComposer').getIdRule(e),o=i&&i.get('selectors').at(0);return o&&o.set('name',r),this}}},{key:"_getStyleRule",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.id,n=this.em,r=e||this.getId();return n&&n.get('CssComposer').getIdRule(r)}},{key:"_getStyleSelector",value:function(t){var e=this._getStyleRule(t);return e&&e.get('selectors').at(0)}},{key:"_idUpdated",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r.idUpdate){var i=this.ccid,o=this.get('attributes')||{},a=o.id,s=(this.previous('attributes')||{}).id||i,l=n.getList(this);if(l[a]||!a&&s)return this.setId(s,{idUpdate:1});delete l[s],l[a]=this,this.ccid=a;var c=this._getStyleSelector({id:s});c&&c.set({name:a,label:a})}}}]),n}(g.Model.extend(p.Z));N.isComponent=function(t){return{tagName:(0,d.toLowerCase)(t.tagName)}},N.ensureInList=function(t){var e=N.getList(t),n=t.getId(),r=e[n];if(r){if(r!==t){var i=N.getIncrementId(n,e);t.setId(i),e[i]=t}}else e[n]=t;t.components().forEach((function(t){return N.ensureInList(t)}))},N.createId=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=N.getList(t),i=n.idMap,o=void 0===i?{}:i,a=t.get('attributes'),s=a.id;return s?(e=N.getIncrementId(s,r,n),t.setId(e),s!==e&&(o[s]=e)):e=N.getNewId(r),r[e]=t,e},N.getNewId=function(t){for(var e=Object.keys(t).length.toString().length+2,n=(Math.random()+1.1).toString(36).slice(-e),r="i".concat(n);t[r];)r=N.getNewId(t);return r},N.getIncrementId=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.keepIds,i=void 0===r?[]:r,o=1,a=t;if(i.indexOf(t)<0)for(;e[a];)o++,a="".concat(t,"-").concat(o);return a},N.getList=function(t){var e=t.opt,n=void 0===e?{}:e,r=n.domc,i=n.em,o=r||i&&i.get('DomComponents');return o?o.componentsById:{}},N.checkId=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(0,h.isArray)(t)?t:[t],o=r.keepIds,a=void 0===o?[]:o;i.forEach((function(t){var i=t.attributes,o=void 0===i?{}:i,s=t.components,l=o.id;if(l&&n[l]&&a.indexOf(l)<0){var c=N.getIncrementId(l,n);o.id=c,(0,h.isArray)(e)&&e.forEach((function(t){var e=t.selectors;e.forEach((function(t,n){t==="#".concat(l)&&(e[n]="#".concat(c))}))}))}s&&N.checkId(s,e,n,r)}))},N.getDefaults=function(){return(0,h.result)(this.prototype,'defaults')},N.prototype.defaults=(C={tagName:'div',type:'',name:'',removable:!0,draggable:!0,droppable:!0,badgable:!0,stylable:!0,'stylable-require':'','style-signature':'',unstylable:'',highlightable:!0,copyable:!0,resizable:!1,editable:!1,layerable:!0,selectable:!0,hoverable:!0,void:!1,state:'',status:'',content:'',icon:'',style:'',styles:'',classes:'',script:'','script-props':'','script-export':'',attributes:'',traits:['id','title'],propagate:'',dmode:'',toolbar:null},(0,a.Z)(C,A,0),(0,a.Z)(C,R,0),(0,a.Z)(C,M,0),(0,a.Z)(C,"_undo",!0),(0,a.Z)(C,"_undoexc",['status','open']),C)},9256:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(1002),i=n(2982),o=n(4925),a=n(4942),s=n(2316),l=n.n(s),c=n(9050),u=n(4822),f=["at"];function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];var r=(0,c.isArray)(e)||(0,c.isFunction)(e.map)?e:[e];return r.map((function(e){n.push(e.getId()),t(e.components().models,n)})),n},g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,c.isArray)(e)?e:[e];return i.map((function(e){var i=e.attributes,o=void 0===i?{}:i,a=e.components,s=e.tagName,l=o.id,u=e;if(l&&n[l]&&(u=n[l],s&&u.set({tagName:s},d(d({},r),{},{silent:!0}))),a){var f=t(a,n);if((0,c.isFunction)(u.components)){var h=u.components();h.length>0&&h.reset(f,r)}else u.components=f}return u}))};const v=l().Collection.extend({initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.opt=e,this.listenTo(this,'add',this.onAdd),this.listenTo(this,'remove',this.removeChildren),this.listenTo(this,'reset',this.resetChildren);var n=e.em,r=e.config;this.config=r,this.em=n,this.domc=e.domc||n&&n.get('DomComponents')},resetChildren:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this,i=n.previousModels||[],o=i.filter((function(e){return!t.get(e.cid)})),a=p(t);n.keepIds=p(i).filter((function(t){return a.indexOf(t)>=0})),o.forEach((function(t){return e.removeChildren(t,r,n)})),t.each((function(t){return e.onAdd(t)}))},resetFromString:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=p(this);var r=this.domc,i=(null==r?void 0:r.allById())||{},o=this.parseString(e,n),a=(0,c.isArray)(o)?o:[o],s=g(a,i,n);this.reset(s,n),null===(t=this.em)||void 0===t||t.trigger('component:content',this.parent,n,e)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i=this.domc,o=this.em,a=r.temporary||r.fromUndo;if(t.prevColl=this,!a){var s=t.getId(),l=o.get('SelectorManager').getAll(),c=o.get('CssComposer').getAll(),u=(r.keepIds||[]).indexOf(s)<0,f=i?i.allById():{};delete f[s];var h=u?c.remove(c.filter((function(t){return t.getSelectors().getFullString()==="#".concat(s)})),r):[];l.remove(h.map((function(t){return t.getSelectors().at(0)}))),t.opt.temporary||(o.get('Commands').run('core:component-style-clear',{target:t}),t.removed(),t.trigger('removed'),o.trigger('component:remove',t));var d=t.components();d.forEach((function(t){return n.removeChildren(t,e,r)}))}var p=t.components();o.stopListening(p),o.stopListening(t),o.stopListening(t.get('classes')),t.__postRemove()}},model:function(t,e){var n,r=e.collection.opt,i=r.em,o=i.get('DomComponents').componentTypes;e.em=i,e.config=r.config,e.componentTypes=o,e.domc=r.domc;for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.domc,i=n.get('CssComposer'),a=n.get('Parser').parseHtml(t);if(u.ZP.checkId(a.html,a.css,r.componentsById,e),a.css&&i&&!e.temporary){e.at;var s=(0,o.Z)(e,f);i.addCollection(a.css,d(d({},s),{},{extend:1}))}return a.html},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=[].concat((0,i.Z)(n.keepIds||[]),(0,i.Z)(p(n.previousModels))),(0,c.isString)(t)?t=this.parseString(t,n):(0,c.isArray)(t)&&(t=(0,i.Z)(t)).forEach((function(r,i){if((0,c.isString)(r)){var o=e.parseString(r,n);t[i]=(0,c.isArray)(o)&&!o.length?null:o}}));var r=(0,c.isArray)(t);t=(r?t:[t]).filter((function(t){return t})).map((function(t){return e.processDef(t)})),t=r?(0,c.flatten)(t,1):t[0];var o=l().Collection.prototype.add.apply(this,[t,n]);return this.__firstAdd=o,o},processDef:function(t){if(t.cid&&t.ccid)return t;var e=this.em,n=this.config,i=(void 0===n?{}:n).processor,o=t;if(i){var a=i(o=d({},o));a&&((0,c.each)(o,(function(t,e){return delete o[e]})),(0,c.extend)(o,a))}if(o.$$typeof&&'object'==(0,r.Z)(o.props)){(o=d({},o)).props=d({},o.props);var s=e.get('DomComponents'),l=e.get('Parser').parserHtml;(0,c.each)(o,(function(t,e){(0,c.includes)(['props','type'],e)||delete o[e]}));var u=o.props,f=u.children;delete u.children,delete o.props;var h=l.splitPropsFromAttr(u);o.attributes=h.attrs,f&&(o.components=f),o.type?s.getType(o.type)||(o.tagName=o.type,delete o.type):o.type='textnode',(0,c.extend)(o,h.props)}return o},onAdd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.domc,i=this.em,o=t.getStyle(),a=i&&i.getConfig('avoidInlineStyle');if(r&&r.Component.ensureInList(t),!(0,c.isEmpty)(o)&&!a&&i&&i.get&&i.getConfig('forceClass')&&!n.temporary){var s=t.cid;i.get('CssComposer').setClassRule(s,o);t.setStyle({}),t.addClass(s)}t.__postAdd({recursive:1}),this.__onAddEnd()},__onAddEnd:(0,c.debounce)((function(){}))})},274:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(9256),l=n(2586),c=n(2030),u=n(827),f=n(3168);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{},r=n.em,i=e.opt||{},o=this.$el,a=this.el;this.opts=t,this.modelOpt=i,this.config=n,this.em=r||'',this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.attr=e.get('attributes'),this.classe=this.attr.class||[],this.listenTo(e,'change:style',this.updateStyle),this.listenTo(e,'change:attributes',this.renderAttributes),this.listenTo(e,'change:highlightable',this.updateHighlight),this.listenTo(e,'change:status',this.updateStatus),this.listenTo(e,'change:script rerender',this.reset),this.listenTo(e,'change:content',this.updateContent),this.listenTo(e,'change',this.handleChange),this.listenTo(e,'active',this.onActive),this.listenTo(e,'disable',this.onDisable),o.data('model',e),(0,f.setViewEl)(a,this),e.view=this,this._getFrame()&&e.views.push(this),this.initClasses(),this.initComponents({avoidRender:1}),this.events=d(d({},this.events),{},{dragstart:'handleDragStart'}),this.delegateEvents(),!i.temporary&&this.init(this._clbObj())},__isDraggable:function(){var t=this.model,e=this.config,n=t.attributes.draggable;return e.draggableComponents&&n},_clbObj:function(){var t=this.em,e=this.model,n=this.el;return{editor:t&&t.getEditor(),model:e,el:n}},init:function(){},removed:function(){},onActive:function(){},onDisable:function(){},remove:function(){var t;o().View.prototype.remove.apply(this,arguments);var e=this.model,n=this.$el,r=e.views,i=this._getFrame()||{};return e.components().forEach((function(t){var e=t.getView(i.model);null==e||e.remove()})),null===(t=this.childrenView)||void 0===t||t.remove(),r.splice(r.indexOf(this),1),this.removed(this._clbObj()),n.data({model:'',collection:'',view:''}),this},handleDragStart:function(t){if(!this.__isDraggable())return!1;t.stopPropagation(),t.preventDefault(),this.em.get('Commands').run('tlb-move',{target:this.model,event:t})},initClasses:function(){var t=this.model,e='change:classes',n=t.get('classes');n instanceof c.Z&&(this.stopListening(t,e,this.initClasses),this.listenTo(t,e,this.initClasses),this.listenTo(n,'add remove change',this.updateClasses),n.length&&this.importClasses())},initComponents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.$el,r=this.childrenView,i='change:components',o=e.get('components'),a=[e,i,this.initComponents];o instanceof s.Z&&(n.data('collection',o),r&&r.remove(),this.stopListening.apply(this,a),!t.avoidRender&&this.renderChildren(),this.listenTo.apply(this,a))},handleChange:function(){var t=this.model,e=(0,a.keys)(t.changed);if(1!==e.length||'status'!==e[0])for(var n in t.emitUpdate(),t.changed)t.emitUpdate(n)},importClasses:function(){var t=this.config.em.get('SelectorManager');t&&this.model.get('classes').each((function(e){t.add(e.get('name'))}))},updateStatus:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e?e.get('Canvas').getConfig():{},r=n.extHl,i=this.el,o=this.model.get('status'),a=this.ppfx,s="".concat(a,"selected"),l="".concat(s,"-parent"),c="".concat(a,"freezed"),u="".concat(a,"hovered"),f=[s,l,c,u],h=r&&!t.noExtHl?'':s;this.$el.removeClass(f.join(' '));var d=i.getAttribute('class')||'',p='';switch(o){case'selected':p="".concat(d," ").concat(h);break;case'selected-parent':p="".concat(d," ").concat(l);break;case'freezed':p="".concat(d," ").concat(c);break;case'freezed-selected':p="".concat(d," ").concat(c," ").concat(h);break;case'hovered':p=t.avoidHover?'':"".concat(d," ").concat(u)}(p=p.trim())&&i.setAttribute('class',p)},updateHighlight:function(){var t=this.model,e=t.get('textable'),n=t.get('highlightable')&&(e||!t.isChildOf('text'));this.setAttribute('data-gjs-highlightable',!!n||'')},updateStyle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.em;if(i&&i.getConfig('avoidInlineStyle')&&!n.inline){var o=r.getStyle();!(0,a.isEmpty)(o)&&r.setStyle(o)}else this.setAttribute('style',r.styleToString(n))},updateClasses:function(){var t=this.model.get('classes').pluck('name').join(' ');this.setAttribute('class',t),this.updateStatus(),this.onAttrUpdate()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){return this.model.getClasses().join(' ')},updateAttributes:function(){var t=[],e=this.model,n=this.$el,r=this.el,i=e.attributes,o=i.textable,s=i.type,l=d(d({id:e.getId(),'data-gjs-type':s||'default'},this.__isDraggable()&&{draggable:!0}),o&&{contenteditable:'false'});(0,a.each)(r.attributes,(function(e){return t.push(e.nodeName)})),t.forEach((function(t){return n.removeAttr(t)})),this.updateStyle(),this.updateHighlight();var c=d(d({},l),e.getAttributes());(0,a.keys)(c).forEach((function(t){return!1===c[t]&&delete c[t]})),n.attr(c)},updateContent:function(){var t=this.model.get('content'),e=this.model.components().length;this.getChildrenContainer().innerHTML=e?'':t},prevDef:function(t){t.preventDefault()},updateScript:function(){var t=this.model,e=this.em;t.get('script')&&e&&e.get('Canvas').getCanvasView().updateScript(this)},getChildrenContainer:function(){var t=this.el;return'function'==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},getOffsetRect:function(){var t={},e=this.el,n=0,r=0;return function i(o){var a=o.offsetParent;a?(n+=a.offsetTop,r+=a.offsetLeft,i(a)):(t.top=e.offsetTop+n,t.left=e.offsetLeft+r,t.bottom=t.top+e.offsetHeight,t.right=t.left+e.offsetWidth)}(e),t},isInViewport:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.rect,n=this.el,r=n.ownerDocument,i=r.body,o=r.defaultView.frameElement,a=e||this.getOffsetRect(),s=a.top,l=a.left,c=this._getFrame().getOffsetRect();return s>=c.scrollTop&&l>=c.scrollLeft&&s<=c.scrollBottom&&l<=o.offsetWidth+i.scrollLeft},scrollIntoView:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getOffsetRect(),n=this.isInViewport({rect:e});if(!n||t.force){var r=this.el;'smooth'!==t.behavior?r.ownerDocument.defaultView.scrollTo(0,e.top):r.scrollIntoView(d({behavior:'smooth',block:'nearest'},t))}},reset:function(){var t=this.el;this.el='',this._ensureElement(),this._setData(),(0,u.dL)(t,this.el),this.render()},_setData:function(){var t=this.model,e=t.components();this.$el.data({model:t,collection:e,view:this})},_getFrame:function(){return this.config.frameView},renderChildren:function(){this.updateContent();var t=this.getChildrenContainer(),e=this.childrenView||new l.Z({collection:this.model.get('components'),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),r=0,i=n.length;r{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=n(9050),a=n(827);const s=i().View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{},this.em=this.config.em;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.resetChildren),this.listenTo(e,'remove',this.removeChildren)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.views.forEach((function(t){if(t){var e=t.childrenView,n=t.scriptContainer;e&&e.stopListening(),(0,a.L_)(n),t.remove.apply(t)}}));var i=t.components();i.forEach((function(t){return n.removeChildren(t,e,r)}))},addTo:function(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.config.em,r=this.collection.indexOf(t);if(this.addToCollection(t,null,r),n&&!e.temporary){var i=function t(e){n.trigger('component:add',e),e.components().forEach((function(e){return t(e)}))};i(t)}},addToCollection:function(t,e,r){this.compView||(this.compView=n(274).Z);for(var i=this.config,a=this.opts,s=this.em,l=e||null,c=i.frameView,u=void 0===c?{}:c,f=u.model&&t.getView(u.model),h=a.componentTypes||s&&s.get('DomComponents').getTypes(),d=t.get('type')||'default',p=this.compView,g=0;g1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels,i=void 0===r?[]:r;this.parentEl.innerHTML='',i.forEach((function(t){return e.removeChildren(t,e.collection)})),t.each((function(t){return e.addToCollection(t)}))},render:function(t){var e=this,n=this.el,r=document.createDocumentFragment();return this.parentEl=t||this.el,this.collection.each((function(t){return e.addToCollection(t,r)})),n.innerHTML='',n.appendChild(r),this}})},9707:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(3168);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(e)&&(e=l(e));var r=this.getStyle(n),a=s({},e);this.set('style',a,n);var c=(0,o.shallowDiff)(r,a);return(0,i.keys)(c).forEach((function(e){var r=t.em;n.noEvent||(t.trigger("change:style:".concat(e)),r&&(r.trigger("styleable:change",t,e,n),r.trigger("styleable:change:".concat(e),t,e,n)))})),a},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};'string'==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle(t);for(var r in n){var o=t.important,a=(0,i.isArray)(o)?o.indexOf(r)>=0:o,s="".concat(n[r]).concat(a?' !important':''),l='__'==r.substr(0,2);s&&!l&&e.push("".concat(r,":").concat(s,";"))}return e.join('')},getSelectors:function(){return this.get('selectors')||this.get('classes')},getSelectorsString:function(t){return this.selectorsToString?this.selectorsToString(t):this.getSelectors().getFullString()},_validate:function(t,e){var n,r=t.style,o=this.em||e.em,a=null==o||null===(n=o.get('CssComposer'))||void 0===n?void 0:n.getConfig().onBeforeStyle;if(r&&a){var l=a(s({},r));l&&(0,i.keys)(r).map((function(e){(0,i.isUndefined)(l[e])&&delete t.style[e]})),l&&(0,i.keys)(l).map((function(e){t.style[e]=l[e]}))}return!0}}},6475:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(6409),a=n(2316);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r,this.opts=n,this.model=function(){var t,n,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o&&o.type){var s=e.getBaseType();t=(i=e.getType(o.type))?i.model:s.model,n=i?i.view:s.view}else{var c=e.recognizeType(o);t=(i=c.type).model,n=i.view,o=c.attributes}var u=new t(o,l(l({},a),{},{em:r}));return u.typeView=n,u};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n.n(l);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=c().$,h=function(t){(0,o.Z)(n,t);var e=u(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.Z)(this,n),t=e.call(this,i);var o=i.ppfx||'';return t.opts=i,t.ppfx=o,t.em=i.target||{},!i.onChange&&t.listenTo(t.model,'change:value',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){return"")}},{key:"inputClass",value:function(){return"".concat(this.ppfx,"field")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"setValue",value:function(t){var e=this.model,n=t||e.get('defaults'),r=this.getInputEl();r&&(r.value=n)}},{key:"handleModelChange",value:function(t,e,n){this.setValue(e,n)}},{key:"handleChange",value:function(t){t.stopPropagation();var e=this.getInputEl().value;this.__onInputChange(e),this.elementUpdated()}},{key:"__onInputChange",value:function(t){this.model.set({value:t},{fromInput:1})}},{key:"getInputEl",value:function(){if(!this.inputEl){var t=this.model,e=this.opts.type||'text',n=t.get('placeholder')||t.get('defaults')||t.get('default')||'';this.inputEl=f(""))}return this.inputEl.get(0)}},{key:"render",value:function(){this.inputEl=null;var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find(".".concat(this.holderClass())).append(this.getInputEl()),this}}]),n}(c().View);h.prototype.events={change:'handleChange'}},4e3:(t,e,n)=>{"use strict";n.d(e,{Z:()=>w});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(1002),d=n(3168);var p=n(4281);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e","
","
",'
'].join(''),s=function(){var t='';if(i)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","",'
','
',"
","
","
","
","
","
","
","
",'
','
','
',"
",'
',"
","
",t,'
','
',"
",'
',"
","",'
',"
","
","","",'
','
','
'].join('')}(),l='spectrum.id';t.fn.spectrum=function(e,n){if('string'==typeof e){var i=this,o=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=r[t(this).data(l)];if(n){var a=n[e];if(!a)throw new Error("Spectrum: no such method: '"+e+"'");'get'==e?i=n.get():'container'==e?i=n.container:'option'==e?i=n.option.apply(n,o):'destroy'==e?(n.destroy(),t(this).removeData(l)):a.apply(n,o)}})),i}return this.spectrum('destroy').each((function(){var n=_(this,t.extend({},e,t(this).data()));t(this).data(l,n.id)}))},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=D,t.fn.spectrum.defaults=n,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult='color'===n.type&&''!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t('input[type=color]');e.length&&!R()&&e.spectrum({preferredFormat:'hex6'})};var c=/^[\s,#]+/,u=/\s+$/,f=0,p=Math,g=p.round,v=p.min,m=p.max,y=p.random,b=function t(e,n){if(n=n||{},(e=e||'')instanceof t)return e;if(!(this instanceof t))return new t(e,n);var r=function(t){var e={r:0,g:0,b:0},n=1,r=!1,i=!1;'string'==typeof t&&(t=function(t){t=t.replace(c,'').replace(u,'').toLowerCase();var e,n=!1;if(O[t])t=O[t],n=!0;else if('transparent'==t)return{r:0,g:0,b:0,a:0,format:'name'};if(e=S.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=S.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=S.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=S.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=S.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=S.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=S.hex8.exec(t))return{a:nt(e[1]),r:Q(e[2]),g:Q(e[3]),b:Q(e[4]),format:n?'name':'hex8'};if(e=S.hex6.exec(t))return{r:Q(e[1]),g:Q(e[2]),b:Q(e[3]),format:n?'name':'hex'};if(e=S.hex3.exec(t))return{r:Q(e[1]+''+e[1]),g:Q(e[2]+''+e[2]),b:Q(e[3]+''+e[3]),format:n?'name':'hex'};return!1}(t));'object'==(0,h.Z)(t)&&(t.hasOwnProperty('r')&&t.hasOwnProperty('g')&&t.hasOwnProperty('b')?(o=t.r,a=t.g,s=t.b,e={r:255*X(o,255),g:255*X(a,255),b:255*X(s,255)},r=!0,i='%'===String(t.r).substr(-1)?'prgb':'rgb'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('v')?(t.s=et(t.s),t.v=et(t.v),e=function(t,e,n){t=6*X(t,360),e=X(e,100),n=X(n,100);var r=p.floor(t),i=t-r,o=n*(1-e),a=n*(1-i*e),s=n*(1-(1-i)*e),l=r%6;return{r:255*[n,a,o,o,s,n][l],g:255*[s,n,n,a,o,o][l],b:255*[o,o,s,n,n,a][l]}}(t.h,t.s,t.v),r=!0,i='hsv'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('l')&&(t.s=et(t.s),t.l=et(t.l),e=function(t,e,n){var r,i,o;function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=X(t,360),e=X(e,100),n=X(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,t.s,t.l),r=!0,i='hsl'),t.hasOwnProperty('a')&&(n=t.a));var o,a,s;return n=Y(n),{ok:r,format:t.format||i,r:v(255,m(e.r,0)),g:v(255,m(e.g,0)),b:v(255,m(e.b,0)),a:n}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=g(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=g(this._r)),this._g<1&&(this._g=g(this._g)),this._b<1&&(this._b=g(this._b)),this._ok=r.ok,this._tc_id=f++};b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=Y(t),this._roundA=g(100*this._a)/100,this},toHsv:function(){var t=M(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=M(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.v);return 1==this._a?'hsv('+e+', '+n+'%, '+r+'%)':'hsva('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHsl:function(){var t=A(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=A(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.l);return 1==this._a?'hsl('+e+', '+n+'%, '+r+'%)':'hsla('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHex:function(t){return Z(this._r,this._g,this._b,t)},toHexString:function(t){return'#'+this.toHex(t)},toHex8:function(){return L(this._r,this._g,this._b,this._a)},toHex8String:function(){return'#'+this.toHex8()},toRgb:function(){return{r:g(this._r),g:g(this._g),b:g(this._b),a:this._a}},toRgbString:function(){return 1==this._a?'rgb('+g(this._r)+', '+g(this._g)+', '+g(this._b)+')':'rgba('+g(this._r)+', '+g(this._g)+', '+g(this._b)+', '+this._roundA+')'},toPercentageRgb:function(){return{r:g(100*X(this._r,255))+'%',g:g(100*X(this._g,255))+'%',b:g(100*X(this._b,255))+'%',a:this._a}},toPercentageRgbString:function(){return 1==this._a?'rgb('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%)':'rgba('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%, '+this._roundA+')'},toName:function(){return 0===this._a?'transparent':!(this._a<1)&&(C[Z(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e='#'+L(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?'GradientType = 1, ':'';t&&(n=b(t).toHex8String());return'progid:DXImageTransform.Microsoft.gradient('+r+'startColorstr='+e+',endColorstr='+n+')'},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||'hex'!==t&&'hex6'!==t&&'hex3'!==t&&'name'!==t?('rgb'===t&&(n=this.toRgbString()),'prgb'===t&&(n=this.toPercentageRgbString()),'hex'!==t&&'hex6'!==t||(n=this.toHexString()),'hex3'===t&&(n=this.toHexString(!0)),'hex8'===t&&(n=this.toHex8String()),'name'===t&&(n=this.toName()),'hsl'===t&&(n=this.toHslString()),'hsv'===t&&(n=this.toHsvString()),n||this.toHexString()):'name'===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(B,arguments)},brighten:function(){return this._applyModification(V,arguments)},darken:function(){return this._applyModification(H,arguments)},desaturate:function(){return this._applyModification(N,arguments)},saturate:function(){return this._applyModification(I,arguments)},greyscale:function(){return this._applyModification(F,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(G,arguments)},complement:function(){return this._applyCombination(U,arguments)},monochromatic:function(){return this._applyCombination(K,arguments)},splitcomplement:function(){return this._applyCombination(q,arguments)},triad:function(){return this._applyCombination(W,arguments)},tetrad:function(){return this._applyCombination($,arguments)}},b.fromRatio=function(t,e){if('object'==(0,h.Z)(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]='a'===r?t[r]:et(t[r]));t=n}return b(t,e)},b.equals=function(t,e){return!(!t||!e)&&b(t).toRgbString()==b(e).toRgbString()},b.random=function(){return b.fromRatio({r:y(),g:y(),b:y()})},b.mix=function(t,e,n){n=0===n?0:n||50;var r,i=b(t).toRgb(),o=b(e).toRgb(),a=n/100,s=2*a-1,l=o.a-i.a,c=1-(r=((r=s*l==-1?s:(s+l)/(1+s*l))+1)/2),u={r:o.r*r+i.r*c,g:o.g*r+i.g*c,b:o.b*r+i.b*c,a:o.a*a+i.a*(1-a)};return b(u)},b.readability=function(t,e){var n=b(t),r=b(e),i=n.toRgb(),o=r.toRgb(),a=n.getBrightness(),s=r.getBrightness(),l=Math.max(i.r,o.r)-Math.min(i.r,o.r)+Math.max(i.g,o.g)-Math.min(i.g,o.g)+Math.max(i.b,o.b)-Math.min(i.b,o.b);return{brightness:Math.abs(a-s),color:l}},b.isReadable=function(t,e){var n=b.readability(t,e);return n.brightness>125&&n.color>500},b.mostReadable=function(t,e){for(var n=null,r=0,i=!1,o=0;o125&&a.color>500,l=a.brightness/125*3+a.color/500;(s&&!i||s&&i&&l>r||!s&&!i&&l>r)&&(i=s,r=l,n=b(e[o]))}return n};var w,k,x,O=b.names={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'0ff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000',blanchedalmond:'ffebcd',blue:'00f',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',burntsienna:'ea7e5d',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'0ff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkgrey:'a9a9a9',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkslategrey:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dimgrey:'696969',dodgerblue:'1e90ff',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'f0f',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',grey:'808080',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgray:'d3d3d3',lightgreen:'90ee90',lightgrey:'d3d3d3',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslategray:'789',lightslategrey:'789',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'0f0',limegreen:'32cd32',linen:'faf0e6',magenta:'f0f',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370db',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'db7093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',rebeccapurple:'663399',red:'f00',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',slategrey:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',wheat:'f5deb3',white:'fff',whitesmoke:'f5f5f5',yellow:'ff0',yellowgreen:'9acd32'},C=b.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(O),S=(k='[\\s|\\(]+('+(w="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',x='[\\s|\\(]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',{rgb:new RegExp('rgb'+k),rgba:new RegExp('rgba'+x),hsl:new RegExp('hsl'+k),hsla:new RegExp('hsla'+x),hsv:new RegExp('hsv'+k),hsva:new RegExp('hsva'+x),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=b,t((function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()}))}function P(e,n,r,i){for(var a=[],s=0;s')}else{a.push(t('
').append(t("").attr('title',i.noColorSelectedText)).html())}}return"
"+a.join('')+'
'}function _(l,c){var u,f,h,d,p=function(e,r){var i=t.extend({},n,e);return i.callbacks={move:j(i.move,r),change:j(i.change,r),show:j(i.show,r),hide:j(i.hide,r),beforeShow:j(i.beforeShow,r)},i}(c,l),g=p.flat,v=p.showSelectionPalette,m=p.localStorageKey,y=p.theme,w=p.callbacks,k=(u=Wt,f=10,function(){var t=this,e=arguments,n=function(){d=null,u.apply(t,e)};h&&clearTimeout(d),!h&&d||(d=setTimeout(n,f))}),x=!1,O=!1,C=!0,S=0,_=0,T=0,A=0,M=0,Z=0,L=0,N=0,I=0,F=0,B=1,V=[],H=[],z={},U=p.selectionPalette.slice(0),W=p.maxSelectionSize,$='sp-dragging',q=null,G=l.ownerDocument,K=(G.body,t(l)),Y=!1,X=t(s,G).addClass(y),J=X.find('.sp-picker-container'),Q=X.find('.sp-color'),tt=X.find('.sp-dragger'),et=X.find('.sp-hue'),nt=X.find('.sp-slider'),rt=X.find('.sp-alpha-inner'),it=X.find('.sp-alpha'),ot=X.find('.sp-alpha-handle'),at=X.find('.sp-input'),st=X.find('.sp-palette'),lt=X.find('.sp-initial'),ct=X.find('.sp-cancel'),ut=X.find('.sp-clear'),ft=X.find('.sp-choose'),ht=X.find('.sp-palette-toggle'),dt=K.is('input'),pt=dt&&'color'===K.attr('type')&&R(),gt=dt&&!g,vt=gt?t(a).addClass(y).addClass(p.className).addClass(p.replacerClassName):t([]),mt=gt?vt:K,yt=vt.find('.sp-preview-inner'),bt=p.color||dt&&K.val(),wt=!1,kt=p.preferredFormat,xt=!p.showButtons||p.clickoutFiresChange,Ot=!bt,Ct=p.allowEmpty&&!pt;function St(){if(p.showPaletteOnly&&(p.showPalette=!0),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),p.palette){V=p.palette.slice(0),H=t.isArray(V[0])?V:[V],z={};for(var e=0;e1&&(delete window.localStorage[m],t.each(e,(function(t,e){_t(e)})))}catch(t){}try{U=window.localStorage[m].split(';')}catch(t){}}}function _t(e){if(v){var n=b(e).toRgbString();if(!z[n]&&-1===t.inArray(n,U))for(U.push(n);U.length>W;)U.shift();if(m&&window.localStorage)try{window.localStorage[m]=U.join(';')}catch(t){}}}function Tt(){var e=Bt(),n=t.map(H,(function(t,n){return P(t,e,'sp-palette-row sp-palette-row-'+n,p)}));Pt(),U&&n.push(P(function(){var t=[];if(p.showPalette)for(var e=0;ed&&d>i?Math.abs(g.left+i-d):0),g.top-=Math.min(g.top,g.top+o>p&&p>o?Math.abs(o+a-r):r),g}(X,mt))),zt(),p.showPalette&&Tt(),K.trigger('reflow.spectrum'))}function $t(){Nt(),Y=!0,K.attr('disabled',!0),mt.addClass('sp-disabled')}!function(){if(i&&X.find('*:not(input)').attr('unselectable','on'),St(),gt&&K.after(vt).hide(),Ct||ut.hide(),g)K.after(X).hide();else{var e='parent'===p.appendTo?K.parent():t(p.appendTo);1!==e.length&&(e=t('body')),e.append(X)}function n(e){return e.data&&e.data.ignore?(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt()):(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt(),p.hideAfterPaletteSelect&&(Ut(!0),Nt())),!1}Pt(),mt.bind('click.spectrum touchstart.spectrum',(function(e){Y||At(),e.stopPropagation(),t(e.target).is('input')||e.preventDefault()})),(K.is(':disabled')||!0===p.disabled)&&$t(),X.click(E),at.change(Rt),at.bind('paste',(function(){setTimeout(Rt,1)})),at.keydown((function(t){13==t.keyCode&&Rt()})),ct.text(p.cancelText),ct.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),It(),Nt()})),ut.attr('title',p.clearText),ut.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),Ot=!0,Vt(),g&&Ut(!0)})),ft.text(p.chooseText),ft.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),i&&at.is(':focus')&&at.trigger('change'),at.hasClass('sp-validation-error')||(Ut(!0),Nt())})),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),ht.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),p.showPaletteOnly=!p.showPaletteOnly,p.showPaletteOnly||g||X.css('left','-='+(J.outerWidth(!0)+5)),St()})),D(it,(function(t,e,n){B=t/M,Ot=!1,n.shiftKey&&(B=Math.round(10*B)/10),Vt()}),jt,Dt),D(et,(function(t,e){N=parseFloat(e/A),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),D(Q,(function(t,e,n){if(n.shiftKey){if(!q){var r=I*S,i=_-F*_,o=Math.abs(t-r)>Math.abs(e-i);q=o?'x':'y'}}else q=null;var a=!q||'y'===q;(!q||'x'===q)&&(I=parseFloat(t/S)),a&&(F=parseFloat((_-e)/_)),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),bt?(Ft(bt),Ht(),kt=p.preferredFormat||b(bt).getFormat(),_t(bt)):Ht(),g&&Mt();var r=i?'mousedown.spectrum':'click.spectrum touchstart.spectrum';st.delegate('.sp-thumb-el',r,n),lt.delegate('.sp-thumb-el:nth-child(1)',r,{ignore:!0},n)}();var qt={show:Mt,hide:Nt,toggle:At,reflow:Wt,option:function(n,r){return n===e?t.extend({},p):r===e?p[n]:(p[n]=r,'preferredFormat'===n&&(kt=p.preferredFormat),void St())},enable:function(){Y=!1,K.attr('disabled',!1),mt.removeClass('sp-disabled')},disable:$t,offset:function(t){p.offset=t,Wt()},set:function(t){Ft(t),Ut()},get:Bt,destroy:function(){K.show(),mt.unbind('click.spectrum touchstart.spectrum'),X.remove(),vt.remove(),r[qt.id]=null},container:X};return qt.id=r.push(qt)-1,qt}function T(){}function E(t){t.stopPropagation()}function j(t,e){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}function D(e,n,r,o){n=n||function(){},r=r||function(){},o=o||function(){};var a=document,s=!1,l={},c=0,u=0,f='ontouchstart'in window,h={};function d(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function p(t){if(s){if(i&&a.documentMode<9&&!t.button)return g();var r=t&&t.touches&&t.touches[0],o=r&&r.pageX||t.pageX,h=r&&r.pageY||t.pageY,p=Math.max(0,Math.min(o-l.left,u)),v=Math.max(0,Math.min(h-l.top,c));f&&d(t),n.apply(e,[p,v,t])}}function g(){s&&(t(a).unbind(h),t(a.body).removeClass('sp-dragging'),setTimeout((function(){o.apply(e,arguments)}),0)),s=!1}h.selectstart=d,h.dragstart=d,h['touchmove mousemove']=p,h['touchend mouseup']=g,t(e).bind('touchstart mousedown',(function(n){var i=n.which?3==n.which:2==n.button;i||s||!1!==r.apply(e,arguments)&&(s=!0,c=t(e).height(),u=t(e).width(),l=t(e).offset(),t(a).bind(h),t(a.body).addClass('sp-dragging'),p(n),d(n))}))}function R(){return t.fn.spectrum.inputTypeColorSupport()}function A(t,e,n){t=X(t,255),e=X(e,255),n=X(n,255);var r,i,o=m(t,e,n),a=v(t,e,n),s=(o+a)/2;if(o==a)r=i=0;else{var l=o-a;switch(i=s>.5?l/(2-o-a):l/(o+a),o){case t:r=(e-n)/l+(e>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(b(r));return o}function K(t,e){e=e||6;for(var n=b(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(b({h:r,s:i,v:o})),o=(o+s)%1;return a}function Y(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function X(t,e){(function(t){return'string'==typeof t&&-1!=t.indexOf('.')&&1===parseFloat(t)})(t)&&(t='100%');var n=function(t){return'string'==typeof t&&-1!=t.indexOf('%')}(t);return t=v(e,m(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),p.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function J(t){return v(1,m(0,t))}function Q(t){return parseInt(t,16)}function tt(t){return 1==t.length?'0'+t:''+t}function et(t){return t<=1&&(t=100*t+'%'),t}function nt(t){return Q(t)/255}}(y);var b=function(t){var e='name'===t.getFormat()&&t.toName(),n=1==t.getAlpha()?t.toHexString():t.toRgbString();return e||n.replace(/ /g,'')},w=function(t){(0,a.Z)(n,t);var e=m(n);function n(){return(0,i.Z)(this,n),e.apply(this,arguments)}return(0,o.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n
\n
\n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return"".concat(t,"field ").concat(t,"field-color")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"remove",value:function(){p.Z.prototype.remove.apply(this,arguments),this.colorEl.spectrum('destroy')}},{key:"handleChange",value:function(t){t.stopPropagation();var e=t.target.value;(0,f.isUndefined)(e)||this.__onInputChange(e)}},{key:"__onInputChange",value:function(t){var e=this.model,n=this.opts.onChange,r=t,i=this.getColorEl();if(i){i.spectrum('set',r);var o=i.spectrum('get'),a=r&&b(o);a&&(r=a)}n?n(r):e.set({value:r},{fromInput:1})}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=(0,f.isUndefined)(e.def)?n.get('defaults'):e.def,i=(0,f.isUndefined)(t)?(0,f.isUndefined)(r)?'':r:t,o=this.getInputEl(),a=this.getColorEl(),s='none'!=i?i:'';o.value=i,a.get(0).style.backgroundColor=s,(e.fromTarget||e.fromInput&&!e.avoidStore)&&(a.spectrum('set',s),this.noneColor='none'==i)}},{key:"getColorEl",value:function(){if(!this.colorEl){var t,e=this.em,n=this.model,r=this.opts,i=this,o=this.ppfx,a=r.onChange,s=y("
")),l=s.get(0).style,c=e&&e.config?e.config.el:'',u=e&&e.getConfig&&e.getConfig('colorPicker')||{},f=0;this.$el.find("[data-colorp-c]").append(s),s.spectrum(v(v(v({color:n.getValue()||!1,containerClassName:"".concat(o,"one-bg ").concat(o,"two-color"),appendTo:c||'body',maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:'Ok',cancelText:'⨯',palette:[]},u),n.get('colorPicker')||{}),{},{move:function(t){var e=b(t);l.backgroundColor=e,a?a(e,!0):n.setValueFromInput(e,0)},change:function(t){f=1;var e=b(t);l.backgroundColor=e,a?a(e):(n.setValueFromInput(0,0),n.setValueFromInput(e)),i.noneColor=0},show:function(e){f=0,t=a?n.getValue({noDefault:!0}):b(e)},hide:function(e){f||!t&&!a||(i.noneColor&&(t=''),l.backgroundColor=t,s.spectrum('set',t),a?a(t,!0):n.setValueFromInput(t,0))}})),e&&e.on&&this.listenTo(e,'component:selected',(function(){f=1,s.spectrum('hide')})),this.colorEl=s}return this.colorEl}},{key:"render",value:function(){return p.Z.prototype.render.call(this),this.getColorEl(),this}}]),n}(p.Z)},7813:(t,e,n)=>{"use strict";n.d(e,{Z:()=>g});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(3168),d=n(4281);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}u().$;var g=function(t){(0,a.Z)(n,t);var e=p(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,r.Z)(this,n),t=e.call(this,i),(0,f.bindAll)((0,o.Z)(t),'moveIncrement','upIncrement'),t.doc=document,t.listenTo(t.model,'change:unit',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n \n \n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return this.opts.contClass||"".concat(t,"field ").concat(t,"field-integer")}},{key:"setValue",value:function(t,e){var n=e||{},r=this.validateInputValue(t,{deepCheck:1}),i={value:r.value};(r.unit||r.force)&&(i.unit=r.unit),this.model.set(i,n),n.silent&&this.handleModelChange()}},{key:"handleChange",value:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()}},{key:"handleUnitChange",value:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set('unit',e),this.elementUpdated()}},{key:"handleKeyDown",value:function(t){'ArrowUp'===t.key&&(t.preventDefault(),this.upArrowClick()),'ArrowDown'===t.key&&(t.preventDefault(),this.downArrowClick())}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"handleModelChange",value:function(){var t=this.model;this.getInputEl().value=t.get('value');var e=this.getUnitEl();e&&(e.value=t.get('unit')||'')}},{key:"getUnitEl",value:function(){if(!this.unitEl){var t=this.model,e=t.get('units')||[];if(e.length){var n=[''];e.forEach((function(e){var r=e==t.get('unit')?'selected':'';n.push(""))}));var r=document.createElement('div');r.innerHTML=""),this.unitEl=r.firstChild}}return this.unitEl}},{key:"upArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n+e)),this.elementUpdated()}},{key:"downArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n-e)),this.elementUpdated()}},{key:"downIncrement",value:function(t){t.preventDefault(),this.moved=0;var e=this.model.get('value')||0;e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,h.on)(this.doc,'mousemove',this.moveIncrement),(0,h.on)(this.doc,'mouseup',this.upIncrement)}},{key:"moveIncrement",value:function(t){this.moved=1;var e=this.model,n=e.get('step'),r=this.current,i=this.normalizeValue(r.val+(r.y-t.pageY)*n),o=this.validateInputValue(i),a=o.value,s=o.unit;return this.prValue=a,e.set({value:a,unit:s},{avoidStore:1}),!1}},{key:"upIncrement",value:function(){var t=this.model,e=t.get('step');if((0,h.off)(this.doc,'mouseup',this.upIncrement),(0,h.off)(this.doc,'mousemove',this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set('value',n,{avoidStore:1}).set('value',n+e),this.elementUpdated()}}},{key:"normalizeValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,r=n.get('step'),i=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=r.toString().split('.')[1];i=o?o.length:0}return i?parseFloat(t.toFixed(i)):t}},{key:"validateInputValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e||{},i=this.model,o='',a=(0,f.isUndefined)(t)?o:t,s=e.units||i.get('units')||[],l=i.get('unit')||s.length&&s[0]||'',c=(0,f.isUndefined)(e.max)?i.get('max'):e.max,u=(0,f.isUndefined)(e.min)?i.get('min'):e.min,h=!!i.get('limitlessMax'),d=!!i.get('limitlessMin');if(r.deepCheck){var p=i.get('fixedValues')||[];if(''===a&&(l=''),a){var g=new RegExp('^'+p.join('|'),'g');if(p.length&&g.test(a))a=a.match(g)[0],l='',n=1;else{var v=a+'';a+='',a=parseFloat(a.replace(',','.')),a=isNaN(a)?o:a;var m=v.replace(a,'');(0,f.indexOf)(s,m)>=0&&(l=m)}}}return h||(0,f.isUndefined)(c)||''===c||(a=a>c?c:a),d||(0,f.isUndefined)(u)||''===u||(a=a{"use strict";n.d(e,{Z:()=>p});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(4942),u=n(9050),f=n(2316),h=n.n(f);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var p=function(t){(0,a.Z)(n,t);var e=d(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,r.Z)(this,n),t=e.call(this,i),(0,c.Z)((0,o.Z)(t),"itemsView",''),(0,c.Z)((0,o.Z)(t),"itemType",'type'),(0,c.Z)((0,o.Z)(t),"reuseView",!1),t.config=a||i.config||{},s&&t.listenTo(t.collection,'add',t.addTo),t.items=[],t}return(0,i.Z)(n,[{key:"addTo",value:function(t){this.add(t)}},{key:"itemViewNotFound",value:function(t){var e=this.config,n=this.ns,r=e.em,i="".concat(n?"[".concat(n,"]: "):'',"'").concat(t,"' type not found");r&&r.logWarning(i)}},{key:"add",value:function(t,e){var n,r=this.config,i=this.reuseView,o=this.items,a=this.itemsView,s=void 0===a?{}:a,l=e||null,c=this.itemView,f=t.get(this.itemType);s[f]?c=s[f]:!f||s[f]||(0,u.includes)(['button','checkbox','color','date','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week'],f)||this.itemViewNotFound(f),n=t.view&&i?t.view:new c({model:t,config:r},r),o&&o.push(n);var h=n.render().el;l?l.appendChild(h):this.$el.append(h)}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.clearItems(),this.$el.empty(),this.collection.length&&this.collection.each((function(e){this.add(e,t)}),this),this.$el.append(t),this.onRender(),this}},{key:"onRender",value:function(){}},{key:"onRemoveBefore",value:function(){}},{key:"onRemove",value:function(){}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.items;this.onRemoveBefore(e,t),this.clearItems(),h().View.prototype.remove.apply(this,arguments),this.onRemove(e,t)}},{key:"clearItems",value:function(){this.items}}]),n}(h().View);p.prototype.itemView=''},5808:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>d});var r=n(4942),i=n(1002),o=n(9050),a=n(3168),s={placeholder:'eg. Text here'};const l={locale:'en',localeFallback:'en',detectLocale:!0,debug:!1,messages:{en:{assetManager:{addButton:'Add image',inputPlh:'http://path/to/the/image.jpg',modalTitle:'Select Image',uploadTitle:'Drop files here or click to upload'},blockManager:{labels:{},categories:{}},domComponents:{names:{'':'Box',wrapper:'Body',text:'Text',comment:'Comment',image:'Image',video:'Video',label:'Label',link:'Link',map:'Map',tfoot:'Table foot',tbody:'Table body',thead:'Table head',table:'Table',row:'Table row',cell:'Table cell'}},deviceManager:{device:'Device',devices:{desktop:'Desktop',tablet:'Tablet',mobileLandscape:'Mobile Landscape',mobilePortrait:'Mobile Portrait'}},panels:{buttons:{titles:{preview:'Preview',fullscreen:'Fullscreen','sw-visibility':'View components','export-template':'View code','open-sm':'Open Style Manager','open-tm':'Settings','open-layers':'Open Layer Manager','open-blocks':'Open Blocks'}}},selectorManager:{label:'Classes',selected:'Selected',emptyState:'- State -',states:{hover:'Hover',active:'Click','nth-of-type(2n)':'Even/Odd'}},styleManager:{empty:'Select an element before using Style Manager',layer:'Layer',fileButton:'Images',sectors:{general:'General',layout:'Layout',typography:'Typography',decorations:'Decorations',extra:'Extra',flex:'Flex',dimension:'Dimension'},properties:{'text-shadow-h':'X','text-shadow-v':'Y','text-shadow-blur':'Blur','text-shadow-color':'Color','box-shadow-h':'X','box-shadow-v':'Y','box-shadow-blur':'Blur','box-shadow-spread':'Spread','box-shadow-color':'Color','box-shadow-type':'Type','margin-top-sub':'Top','margin-right-sub':'Right','margin-bottom-sub':'Bottom','margin-left-sub':'Left','padding-top-sub':'Top','padding-right-sub':'Right','padding-bottom-sub':'Bottom','padding-left-sub':'Left','border-width-sub':'Width','border-style-sub':'Style','border-color-sub':'Color','border-top-left-radius-sub':'Top Left','border-top-right-radius-sub':'Top Right','border-bottom-right-radius-sub':'Bottom Right','border-bottom-left-radius-sub':'Bottom Left','transform-rotate-x':'Rotate X','transform-rotate-y':'Rotate Y','transform-rotate-z':'Rotate Z','transform-scale-x':'Scale X','transform-scale-y':'Scale Y','transform-scale-z':'Scale Z','transition-property-sub':'Property','transition-duration-sub':'Duration','transition-timing-function-sub':'Timing','background-image-sub':'Image','background-repeat-sub':'Repeat','background-position-sub':'Position','background-attachment-sub':'Attachment','background-size-sub':'Size'}},traitManager:{empty:'Select an element before using Trait Manager',label:'Component settings',traits:{labels:{},attributes:{id:s,alt:s,title:s,href:{placeholder:'eg. https://google.com'}},options:{target:{false:'This window',_blank:'New window'}}}},storageManager:{recover:'Do you want to recover unsaved changes?'}}},messagesAdd:null};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=u(u(u({},l),t),{},{messages:u(u({},l.messages),t.messages||{})});var e=this.config.messagesAdd;return e&&this.addMessages(e),this.config.detectLocale&&(this.config.locale=this._localLang()),this.em=t.em,this},getConfig:function(){return this.config},setLocale:function(t){var e=this.em,n=this.config,r={value:t,valuePrev:n.locale};return e&&e.trigger('i18n:locale',r),n.locale=t,this},getLocale:function(){return this.config.locale},getMessages:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config.messages;return t&&!n[t]&&this._debug("'".concat(t,"' i18n lang not found"),e),t?n[t]:n},setMessages:function(t){var e=this.em;return this.config.messages=t,e&&e.trigger('i18n:update',t),this},addMessages:function(t){var e=this.em,n=this.config.messages;return e&&e.trigger('i18n:add',t),this.setMessages(h(n,t)),this},t:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config,r=e.params||{},i=e.l||this.getLocale(),a=e.lFlb||n.localeFallback,s=this._getMsg(t,i,e);return s||(s=this._getMsg(t,a,e)),!s&&this._debug("'".concat(t,"' i18n key not found in '").concat(i,"' lang"),e),s=s&&(0,o.isString)(s)?this._addParams(s,r):s},_localLang:function(){var t=(0,a.hasWin)()&&window.navigator||{},e=t.language||t.userLanguage;return e?e.split('-')[0]:'en'},_addParams:function(t,e){var n=new RegExp("{([\\w\\d-]*)}",'g');return t.replace(n,(function(t,n){return e[n]||''})).trim()},_getMsg:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getMessages(e,n);if(r){var i=r[t];return!i&&t.indexOf('.')>0&&(i=t.split('.').reduce((function(t,e){if(!(0,o.isUndefined)(t))return t[e]}),r)),i}},_debug:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.config;(e.debug||r.debug)&&n&&n.logWarning(t)},destroy:function(){this.config=l,this.em={}}}}},2058:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r,i=n(1002),o=n(4942),a=n(9050),s=n(3168),l={},c={16:!1,18:!1,17:!1,91:!1},u='all',f={'⇧':16,shift:16,'⌥':18,alt:18,option:18,'⌃':17,ctrl:17,control:17,'⌘':91,command:91},h={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,',':188,'.':190,'/':191,'`':192,'-':189,'=':187,';':186,"'":222,'[':219,']':221,'\\':220},d=function(t){return h[t]||t.toUpperCase().charCodeAt(0)},p=[];for(r=1;r<20;r++)h['f'+r]=111+r;function g(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function v(t,e){if(t.length!=e.length)return!1;for(var n=0;n=0&&p.splice(r,1),93!=n&&224!=n||(n=91),n in c)for(e in c[n]=!1,f)f[e]==n&&(k[e]=!1)}function w(){for(r in c)c[r]=!1;for(r in f)k[r]=!1}function k(t,e,n){var r,i;r=O(t),void 0===n&&(n=e,e='all');for(var o=0;o1&&(i=C(t),t=[t[t.length-1]]),t=t[0],(t=d(t))in l||(l[t]=[]),l[t].push({shortcut:r[o],scope:e,method:n,key:r[o],mods:i})}for(r in f)k[r]=!1;function x(){return u||'all'}function O(t){var e;return''==(e=(t=t.replace(/\s/g,'')).split(','))[e.length-1]&&(e[e.length-2]+=','),e}function C(t){for(var e=t.slice(0,t.length-1),n=0;n1&&(s=C(r)),t=r[r.length-1],t=d(t),void 0===e&&(e=x()),!l[t])return;for(i=0;i0,c)(!c[r]&&g(n.mods,+r)>-1||c[r]&&-1==g(n.mods,+r))&&(o=!1);(0!=n.mods.length||c[16]||c[18]||c[17]||c[91])&&!o||!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}(t)})),S(t.document,'keyup',b),S(t,'focus',w)};const P=k;function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.config=T(T({},t),e),this.em=this.config.em,this.keymaps={},this},onLoad:function(){var t=this.config.defaults;for(var e in t){var n=t[e];this.add(e,n.keys,n.handler,n.opts||{})}},add:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.em,s=o.get('Commands'),l=o.getEditor(),c=o.get('Canvas'),u={id:t,keys:e,handler:n},f=this.keymaps[t];return f&&this.remove(t),this.keymaps[t]=u,P(e,(function(e,u){var f={event:e,h:u};if(n=(0,a.isString)(n)?s.get(n):n,!o.isEditing()&&!l.Canvas.isInputFocused()||r.force){r.prevent&&c.getCanvasView().preventDefault(e),'object'==(0,i.Z)(n)?s.runCommand(n,f):n(l,0,f);var h=[t,u.shortcut,e];o.trigger.apply(o,['keymap:emit'].concat(h)),o.trigger.apply(o,["keymap:emit:".concat(t)].concat(h))}})),o.trigger('keymap:add',u),u},get:function(t){return this.keymaps[t]},getAll:function(){return this.keymaps},remove:function(t){var e=this.em,n=this.get(t);if(n)return delete this.keymaps[t],n.keys.split(', ').forEach((function(t){return P.unbind(t.trim())})),e&&e.trigger('keymap:remove',n),n},removeAll:function(){var t=this;return Object.keys(this.keymaps).forEach((function(e){return t.remove(e)})),P.handlers={},this},destroy:function(){this.removeAll(),this.keymaps={},this.em={}}}}},3656:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942),i=n(9050),o=n(827);const a={stylePrefix:'mdl-',title:'',content:'',backdrop:!0,custom:!1,extend:{}};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var d=function(t){(0,c.Z)(n,t);var e=h(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{title:'',content:'',attributes:{},open:!1}}},{key:"open",value:function(){this.set('open',!0)}},{key:"close",value:function(){this.set('open',!1)}}]),n}(n(6409).Z);function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e\n
\n
").concat(i,"
\n
\n
\n
\n
").concat(r,"
\n
\n
\n
\n
")}},{key:"events",value:function(){return{click:'onClick','click [data-close-modal]':'hide'}}},{key:"initialize",value:function(t){var e=this.model,n=t.config||{},r=n.stylePrefix||'';this.config=n,this.pfx=r,this.ppfx=n.pStylePrefix||'',this.listenTo(e,'change:open',this.updateOpen),this.listenTo(e,'change:title',this.updateTitle),this.listenTo(e,'change:content',this.updateContent)}},{key:"onClick",value:function(t){this.config.backdrop&&t.target===this.el&&this.hide()}},{key:"getCollector",value:function(){return this.$collector||(this.$collector=this.$el.find('.'+this.pfx+'collector')),this.$collector}},{key:"getContent",value:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find(".".concat(t,"content #").concat(t,"c"))),this.$content}},{key:"getTitle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.$title||(this.$title=this.$el.find('.'+this.pfx+'title')),t.$?this.$title:this.$title.get(0)}},{key:"updateContent",value:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),r=this.model.get('content');e.length&&n.append(e),t.empty().append(r)}},{key:"updateTitle",value:function(){var t=this.getTitle({$:!0});t&&t.empty().append(this.model.get('title'))}},{key:"updateOpen",value:function(){this.el.style.display=this.model.get('open')?'':'none'}},{key:"hide",value:function(){this.model.close()}},{key:"show",value:function(){this.model.open()}},{key:"updateAttr",value:function(t){var e=this.pfx,n=this.$el,r=this.el,i=[].slice.call(r.attributes).map((function(t){return t.name}));n.removeAttr(i.join(' ')),n.attr(g(g({},t||{}),{},{class:"".concat(e,"container ").concat(t&&t.class||'').trim()}))}},{key:"render",value:function(){var t=this.$el,e=this.model.toJSON();return e.pfx=this.pfx,e.ppfx=this.ppfx,t.html(this.template(e)),this.updateAttr(),this.updateOpen(),this}}]),n}(n(2316).View);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},s=(n=b(b({},a),o)).em;this.em=s;var l=n.pStylePrefix;return l&&(n.stylePrefix=l+n.stylePrefix),(t=new d(n)).on('change:open',(function(t,e){return r(e,s)})),t.on('change',(0,i.debounce)((function(){var t=e._evData(),n=e.getConfig().custom;(0,i.isFunction)(n)&&n(t),s.trigger('modal',t)}))),this},_evData:function(){var e=this,n=this.getTitle(),r=this.getContent(),a=t.attributes;return{open:a.open,attributes:a.attributes,title:(0,i.isString)(n)?(0,o.rw)(n):n,content:(0,i.isString)(r)?(0,o.rw)(r):r.get?r.get(0):r,close:function(){return e.close()}}},postRender:function(t){var e=t.model.getConfig().el||t.el,n=this.render();n&&n.appendTo(e)},open:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.attributes||{};return n.title&&this.setTitle(n.title),n.content&&this.setContent(n.content),t.set('attributes',r),t.open(),e&&e.updateAttr(r),this},close:function(){return t.close(),this},onceClose:function(t){return this.em.once('modal:close',t),this},onceOpen:function(t){return this.em.once('modal:open',t),this},isOpen:function(){return!!t.get('open')},setTitle:function(e){return t.set('title',e),this},getTitle:function(){return t.get('title')},setContent:function(e){return t.set('content',' '),t.set('content',e),this},getContent:function(){return t.get('content')},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){if(!this.getConfig().custom){var r=m.extend(n.extend),i=e&&e.el;return(e=new r({el:i,model:t,config:n})).render().$el}},destroy:function(){e&&e.remove(),[n,t,e].forEach((function(t){return{}})),this.em={}}}}},3487:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>O});var r=n(4942),i=n(9050);const o={stylePrefix:'',appendTo:'',sortable:1,hidable:1,hideTextnode:1,root:'',showWrapper:1,showHover:1,scrollCanvas:{behavior:'smooth',block:'nearest'},scrollLayers:{behavior:'auto',block:'nearest'},highlightHover:1,onInit:function(){},onRender:function(){},extend:{}};var a=n(5671),s=n(3144),l=n(9340),c=n(2963),u=n(1120),f=n(2316),h=n(3168),d=n(274),p=n(4822);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,u.Z)(t);if(e){var i=(0,u.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,c.Z)(this,n)}}var v,m='contentEditable',y={mediaText:''},b=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return 0===(t.display||'').trim().indexOf('none')},w=function(t){(0,l.Z)(r,t);var e=g(r);function r(){return(0,a.Z)(this,r),e.apply(this,arguments)}return(0,s.Z)(r,[{key:"events",value:function(){return{'mousedown [data-toggle-move]':'startSort','touchstart [data-toggle-move]':'startSort','click [data-toggle-visible]':'toggleVisibility','click [data-toggle-open]':'toggleOpening','click [data-toggle-select]':'handleSelect','mouseover [data-toggle-select]':'handleHover','mouseout [data-toggle-select]':'handleHoverOut','dblclick [data-name]':'handleEdit','keydown [data-name]':'handleEditKey','focusout [data-name]':'handleEditEnd'}}},{key:"template",value:function(t){var e=this.pfx,n=this.ppfx,r=this.config,i=this.clsNoEdit,o=r.hidable,a=this.countChildren(t),s=a?'':this.clsNoChild,l="".concat(this.clsTitle," ").concat(s),c="".concat(this.clsTitleC," ").concat(n,"one-bg"),u="".concat(this.clsCaret," fa fa-chevron-right"),f="".concat(this.inputNameCls," ").concat(i," ").concat(n,"no-app"),h=this.level+1,d="".concat(30+10*h,"px"),p=t.getName(),g=t.getIcon(),v="".concat(e,"layer");return"\n ".concat(o?""):'',"\n
\n
\n
\n \n ").concat(g?"").concat(g,""):'',"\n ").concat(p,"\n
\n
\n
\n
").concat(a||'',"
\n
\n \n
\n
")}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,'__render'),this.opt=e,this.level=e.level;var n=e.config||{},r=n.onInit;this.config=n,this.em=e.config.em,this.ppfx=this.em.get('Config').stylePrefix,this.sorter=e.sorter||'',this.pfx=this.config.stylePrefix,this.parentView=e.parentView;var o=this.pfx,a=this.ppfx,s=this.model,l=s.get('components'),c=s.get('type')||'default';s.set('open',!1),this.listenTo(l,'remove add reset',this.checkChildren),[['change:status',this.updateStatus],['change:open',this.updateOpening],['change:layerable',this.updateLayerable],['change:style:display',this.updateVisibility],['rerender:layer',this.render],['change:name change:custom-name',this.updateName]].forEach((function(e){return t.listenTo(s,e[0],e[1])})),this.className="".concat(o,"layer ").concat(o,"layer__t-").concat(c," no-select ").concat(a,"two-color"),this.inputNameCls="".concat(a,"layer-name"),this.clsTitleC="".concat(o,"layer-title-c"),this.clsTitle="".concat(o,"layer-title"),this.clsCaret="".concat(o,"layer-caret"),this.clsCount="".concat(o,"layer-count"),this.clsMove="".concat(o,"layer-move"),this.clsChildren="".concat(o,"layer-children"),this.clsNoChild="".concat(o,"layer-no-chld"),this.clsEdit="".concat(this.inputNameCls,"--edit"),this.clsNoEdit="".concat(this.inputNameCls,"--no-edit"),this.$el.data('model',s),this.$el.data('collection',l),s.viewLayer=this,r.bind(this)({component:s,render:this.__render,listenTo:this.listenTo})}},{key:"updateName",value:function(){this.getInputName().innerText=this.model.getName()}},{key:"getVisibilityEl",value:function(){return this.eyeEl||(this.eyeEl=this.$el.children(".".concat(this.pfx,"layer-vis"))),this.eyeEl}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n="".concat(t,"layer-hidden"),r=b(e.getStyle(y))?'addClass':'removeClass';this.$el[r](n),this.getVisibilityEl()[r]('fa-eye-slash')}},{key:"toggleVisibility",value:function(t){t&&t.stopPropagation();var e=this.model,n=this.em,r='__prev-display',i=e.get(r),o=e.getStyle(y),a=o.display;b(o)?(delete o.display,i&&(o.display=i,e.unset(r))):(a&&e.set(r,a),o.display='none'),e.setStyle(o,y),n&&n.trigger('component:toggled')}},{key:"handleEdit",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName();o[m]=!0,o.focus(),document.execCommand('selectAll',!1,null),e&&e.setEditing(1),n.find(".".concat(this.inputNameCls)).removeClass(r).addClass(i)}},{key:"handleEditKey",value:function(t){t.stopPropagation(),((0,h.isEscKey)(t)||(0,h.isEnterKey)(t))&&this.handleEditEnd(t)}},{key:"handleEditEnd",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName(),a=o.textContent;o.scrollLeft=0,o[m]=!1,this.setName(a,{component:this.model,propName:'custom-name'}),e&&e.setEditing(0),n.find(".".concat(this.inputNameCls)).addClass(r).removeClass(i)}},{key:"setName",value:function(t,e){var n=e.propName;this.model.set(n,t)}},{key:"getInputName",value:function(){return this.inputName||(this.inputName=this.el.querySelector(".".concat(this.inputNameCls))),this.inputName}},{key:"updateOpening",value:function(){var t=this.opt.opened||{},e=this.model,n='fa-chevron-down';e.get('open')?(this.$el.addClass('open'),this.getCaret().addClass(n),t[e.cid]=e):(this.$el.removeClass('open'),this.getCaret().removeClass(n),delete t[e.cid])}},{key:"toggleOpening",value:function(t){var e=this.model;t.stopImmediatePropagation(),e.get('components').length&&e.set('open',!e.get('open'))}},{key:"handleSelect",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;if(e){e.setSelected(r,{fromLayers:1,event:t});var i=n.scrollCanvas;i&&r.views.forEach((function(t){return t.scrollIntoView(i)}))}}},{key:"handleHover",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;e&&n.showHover&&e.setHovered(r,{fromLayers:1})}},{key:"handleHoverOut",value:function(t){t.stopPropagation();var e=this.em,n=this.config;e&&n.showHover&&e.setHovered(0,{fromLayers:1})}},{key:"startSort",value:function(t){t.stopPropagation();var e=this.em,n=this.sorter;t.button&&0!==t.button||n&&(n.onStart=function(t){return e.trigger("".concat(p.OA,":start"),t)},n.onMoveClb=function(t){return e.trigger(p.OA,t)},n.startSort(t.target))}},{key:"freeze",value:function(){this.$el.addClass(this.pfx+'opac50'),this.model.set('open',0)}},{key:"unfreeze",value:function(){this.$el.removeClass(this.pfx+'opac50')}},{key:"updateStatus",value:function(t){d.Z.prototype.updateStatus.apply(this,[{avoidHover:!this.config.highlightHover,noExtHl:1}])}},{key:"isVisible",value:function(){return!b(this.model.getStyle())}},{key:"checkChildren",value:function(){var t=this.model,e=this.clsNoChild,n=this.countChildren(t),r=this.$el.children(".".concat(this.clsTitleC)).children(".".concat(this.clsTitle)),i=this.cnt;i||(i=this.$el.children('[data-count]').get(0),this.cnt=i),r[n?'removeClass':'addClass'](e),i&&(i.innerHTML=n||''),!n&&t.set('open',0)}},{key:"countChildren",value:function(t){var e=0;return t.get('components').each((function(t){var n=this.opt.isCountable,r=this.config.hideTextnode;n&&!n(t,r)||e++}),this),e}},{key:"getCaret",value:function(){if(!this.caret||!this.caret.length){this.pfx;this.caret=this.$el.children(".".concat(this.clsTitleC)).find(".".concat(this.clsCaret))}return this.caret}},{key:"setRoot",value:function(t){t=(0,i.isString)(t)?this.em.getWrapper().find(t)[0]:t;var e=(0,h.getModel)(t);e&&(this.stopListening(),this.model=e,this.initialize(this.opt),this._rendered&&this.render())}},{key:"updateLayerable",value:function(){(this.parentView||this).render()}},{key:"__clearItems",value:function(){var t=this.items;t&&t.remove()}},{key:"remove",value:function(){f.View.prototype.remove.apply(this,arguments),this.__clearItems()}},{key:"render",value:function(){var t=this.model,e=this.config,r=this.pfx,o=this.ppfx,a=this.opt;this.__clearItems();var s=a.isCountable,l=s&&!s(t,e.hideTextnode),c=this.isVisible(),u=this.$el.empty(),f=this.level+1;this.inputName=0,(0,i.isUndefined)(v)&&(v=n(7834).Z),this.items=new v({ItemView:a.ItemView,collection:t.get('components'),config:this.config,sorter:this.sorter,opened:this.opt.opened,parentView:this,parent:t,level:f});var h=this.items.render().$el;return this.config.showWrapper||1!==f?(u.html(this.template(t)),u.find(".".concat(this.clsChildren)).append(h)):u.append(h),t.get('draggable')&&this.config.sortable||u.children(".".concat(this.clsMove)).remove(),!c&&(this.className+=" ".concat(r,"hide")),l&&(this.className+=" ".concat(o,"hidden")),u.attr('class',this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this.__render(),this._rendered=1,this}},{key:"__render",value:function(){var t=this.model,e=this.config,n={component:t,el:this.el};e.onRender.bind(this)(n),this.em.trigger('layer:render',n)}}]),r}(f.View);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=x(x({},o),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&((0,i.isElement)(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e&&e.setRoot(t),this},getRoot:function(){return e&&e.model},getAll:function(){return e},componentChanged:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.fromLayers){var i=t.get('opened'),o=t.getSelected(),a=n.scrollLayers,s=o&&o.collection?o.collection.parent:null;for(var l in i)i[l].set('open',0);for(;s;)s.set('open',1),i[s.cid]=s,s=s.collection?s.collection.parent:null;if(o&&a){var c=o.viewLayer&&o.viewLayer.el;c&&c.scrollIntoView(a)}}},render:function(){var r=w.extend(n.extend);return e&&e.remove(),(e=new r({ItemView:r,level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()})).render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},7834:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(4822);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.items=[],this.opt=t;var e=t.config||{};this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||'',this.pfx=e.stylePrefix||'',this.parent=t.parent,this.parentView=t.parentView;var n=this.pfx,r=this.ppfx,i=this.parent,o=this.collection;this.listenTo(o,'add',this.addTo),this.listenTo(o,'reset resetNavigator',this.render),this.listenTo(o,'remove',this.removeChildren),this.className="".concat(n,"layers");var a=e.em;if(e.sortable&&!this.opt.sorter){var s=a.get('Utils');this.opt.sorter=new s.Sorter({container:e.sortContainer||this.el,containerSel:".".concat(this.className),itemSel:".".concat(n,"layer"),ignoreViewChildren:1,onEndMove:function(t,e,n){var r=e.getSourceModel();a.setSelected(r,{forceChange:1}),a.trigger("".concat(c.OA,":end"),n)},avoidSelectOnEnd:1,nested:1,ppfx:r,pfx:n})}this.sorter=this.opt.sorter||'',this.$el.data('collection',o),i&&this.$el.data('model',i)}},{key:"removeChildren",value:function(t){var e=t.viewLayer;e&&(e.remove(),t.viewLayer=0)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=this.level,i=this.parentView,o=this.opt.ItemView,a=e||null,s=new o({ItemView:o,level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=s.render().el;if(a)a.appendChild(l);else if(void 0!==n){var c='before';this.$el.children().length==n&&(n--,c='after'),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return this.items.push(s),l}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.items.map((function(t){return t.remove()}))}},{key:"isCountable",value:function(t,e){var n=t.get('type'),r=t.get('tagName');return!(('textnode'==n||'br'==r)&&e||!t.get('layerable'))}},{key:"render",value:function(){var t=this,e=document.createDocumentFragment(),n=this.el;return n.innerHTML='',this.collection.each((function(n){return t.addToCollection(n,e)})),n.appendChild(e),n.className=this.className,this}}]),n}(l.View)},9084:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Z,evAll:()=>C,evPageAdd:()=>E,evPageAddBefore:()=>j,evPageRemove:()=>D,evPageRemoveBefore:()=>R,evPageSelect:()=>P,evPageSelectBefore:()=>_,evPageUpdate:()=>T,evPfx:()=>S});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(6409),c=n(5671),u=n(3144),f=n(9340),h=n(2963),d=n(1120),p=n(2316),g=n(8445);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var m=function(t){(0,f.Z)(n,t);var e=v(n);function n(){return(0,c.Z)(this,n),e.apply(this,arguments)}return(0,u.Z)(n,[{key:"defaults",value:function(){return{frames:[],_undo:!0}}},{key:"initialize",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.config,i=void 0===r?{}:r,o=i.em,a={};this.em=o,t.frames||(a.component=t.component,a.styles=t.styles,['component','styles'].map((function(t){return e.unset(t)})));var s=t.frames||[a],l=new g.Z(s,i);l.page=this,this.set('frames',l);var c=o&&o.get('UndoManager');c&&c.add(l)}},{key:"onRemove",value:function(){this.get('frames').reset()}},{key:"getFrames",value:function(){return this.get('frames')}},{key:"getId",value:function(){return this.id}},{key:"getName",value:function(){return this.get('name')}},{key:"setName",value:function(t){return this.get({name:t})}},{key:"getAllFrames",value:function(){return this.getFrames().models||[]}},{key:"getMainFrame",value:function(){return this.getFrames().at(0)}},{key:"getMainComponent",value:function(){var t=this.getMainFrame();return t&&t.getComponent()}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=l.Z.prototype.toJSON.call(this,t),n=(0,o.result)(this,'defaults');return(0,o.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,o.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),e}}]),n}(l.Z);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return p.Collection.prototype.add.call(this,t,b(b({},e),{},{config:n}))}}]),n}(p.Collection);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'_onPageChange');var n=e.em,r=O({},e);this.config=r,this.em=n;var i=new k([],r);this.pages=i,this.all=i;var a=new l.Z({_undo:!0});return this.model=a,i.on('add',(function(t,e,r){return n.trigger(E,t,r)})),i.on('remove',(function(t,e,r){return n.trigger(D,t,r)})),i.on('change',(function(t,e){n.trigger(T,t,t.changedAttributes(),e)})),i.on('reset',(function(e){return e.at(0)&&t.select(e.at(0))})),i.on('all',this.__onChange,this),a.on(A,this._onPageChange),this},__onChange:function(t,e,n,r){var i=r||n;this.em.trigger(C,{event:t,page:e,options:i})},onLoad:function(){var t=this.pages,e={silent:!0};t.add(this.config.pages||[],e);var n=t.length?this.getMain():this.add({type:M},e);this.select(n,e)},_onPageChange:function(t,e,n){var r=this.em,i=r.get('LayerManager'),o=e.getMainComponent();i&&o&&i.setRoot(o),r.trigger(P,e,t.previous('selected')),this.__onChange(A,e,n)},postLoad:function(){var t=this.em,e=this.model,n=t.get('UndoManager');n&&n.add(e),n&&n.add(this.pages)},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em;t.id=t.id||this._createId();var i=function(){var r=e.pages.add(t,n);return n.select&&e.select(r),r};return!n.silent&&r.trigger(j,t,i,n),!n.abort&&i()},remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.pages.remove(i,n),i};return!n.silent&&r.trigger(R,i,a,n),!n.abort&&a()},get:function(t){return this.pages.filter((function(e){return e.get('id')===t}))[0]},getMain:function(){var t=this.pages;return t.filter((function(t){return t.get('type')===M}))[0]||t.at(0)},getAll:function(){return(0,r.Z)(this.pages.models)},getAllWrappers:function(){var t=this.getAll();return(0,o.unique)((0,o.flatten)(t.map((function(t){return t.getAllFrames().map((function(t){return t.getComponent()}))}))))},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get('id')]=e,t}),{})},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,o.isString)(t)?this.get(t):t;return n&&(this.em.trigger(_,n,e),this.model.set('selected',n,e)),this},getSelected:function(){return this.model.get('selected')},destroy:function(){var t=this;this.pages.off().reset(),this.model.stopListening(),this.model.clear({silent:!0}),['selected','config','em','pages','model'].map((function(e){return t[e]=0}))},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t,{all:this.pages,reset:!0})},_createId:function(){var t,e=this.getAll().length+16,n=this.getAllMap();do{t=(0,a.createId)(e)}while(n[t]);return t}})}},3353:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>N});var r='sw-visibility',i='export-template',o='open-sm',a='open-tm',s='open-layers',l='open-blocks',c='fullscreen',u='preview';const f={stylePrefix:'pn-',defaults:[{id:'commands',buttons:[{}]},{id:'options',buttons:[{active:!0,id:r,className:'fa fa-square-o',command:r,context:r,attributes:{title:'View components'}},{id:u,className:'fa fa-eye',command:u,context:u,attributes:{title:'Preview'}},{id:c,className:'fa fa-arrows-alt',command:c,context:c,attributes:{title:'Fullscreen'}},{id:i,className:'fa fa-code',command:i,attributes:{title:'View code'}}]},{id:'views',buttons:[{id:o,className:'fa fa-paint-brush',command:o,active:!0,togglable:0,attributes:{title:'Open Style Manager'}},{id:a,className:'fa fa-cog',command:a,togglable:0,attributes:{title:'Settings'}},{id:s,className:'fa fa-bars',command:s,togglable:0,attributes:{title:'Open Layer Manager'}},{id:l,className:'fa fa-th-large',command:l,togglable:0,attributes:{title:'Open Blocks'}}]}],em:null,delayBtnsShow:300};var h=n(5671),d=n(3144),p=n(9340),g=n(2963),v=n(1120),m=n(6409),y=n(5253);function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var w=function(t){(0,p.Z)(n,t);var e=b(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return{id:'',content:'',visible:!0,buttons:[],attributes:{}}}},{key:"initialize",value:function(t){this.btn=this.get('buttons')||[],this.buttons=new y.Z(this.btn),this.set('buttons',this.buttons)}}]),n}(m.Z),k=n(2316);function x(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var O=function(t){(0,p.Z)(n,t);var e=x(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n)}(k.Collection);O.prototype.model=w;var C=n(4942),S=n(9050);function P(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function _(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.commands,o=this.$el,a=this.activeCls,s=n.fromCollection,l=n.fromListen,c=r.get('context'),u=r.get('options'),f=r.get('command'),h={};f&&(i&&(0,S.isString)(f)?h=i.get(f)||{}:(0,S.isFunction)(f)?h=i.create({run:f}):null!==f&&(0,S.isObject)(f)&&(h=i.create(f)),r.get('active')?(!s&&r.collection.deactivateAll(c,r),r.set('active',!0,{silent:!0}).trigger('checkActive'),!l&&i.runCommand(h,_(_({},u),{},{sender:r})),h.noStop&&r.set('active',!1)):(o.removeClass(a),!l&&i.stopCommand(h,_(_({},u),{},{sender:r,force:1}))))}},{key:"updateDisable",value:function(){var t=this.disableCls,e=this.model.get('disable');this.$el[e?'addClass':'removeClass'](t)}},{key:"checkActive",value:function(){var t=this.model,e=this.$el,n=this.activeCls;t.get('active')?e.addClass(n):e.removeClass(n)}},{key:"clicked",value:function(t){var e=this.model;e.get('bntsVis')||e.get('disable')||!e.get('command')||this.toggleActive()}},{key:"toggleActive",value:function(){var t=this.model,e=this.em,n=t.attributes,r=n.active,i=n.togglable;r&&!i||(t.set('active',!r),r?t.get('runDefaultCommand')&&e.runDefault():t.get('stopDefaultCommand')&&e.stopDefault())}},{key:"render",value:function(){var t=this.model,e=t.get('label'),n=this.$el;return!t.get('el')&&n.empty(),this.updateAttributes(),e&&n.append(e),this.checkActive(),this.updateDisable(),this}}]),n}(k.View);function j(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var D=function(t){(0,p.Z)(n,t);var e=j(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||'',this.parentM=this.opt.parentM||null,this.listenTo(this.collection,'add',this.addTo),this.listenTo(this.collection,'reset remove',this.render),this.className=this.pfx+'buttons'}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){var n=e||null,r=new E({el:t.get('el'),model:t,config:this.config,parentM:this.parentM}).render().el;return n?n.appendChild(r):this.$el.append(r),r}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each((function(e){this.addToCollection(e,t)}),this),this.$el.append(t),this.$el.attr('class',(0,S.result)(this,'className')),this}}]),n}(k.View);function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var M=function(t){(0,p.Z)(n,t);var e=A(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{},n=this.model;this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.buttons=n.get('buttons'),this.className=this.pfx+'panel',this.id=this.pfx+n.get('id'),this.listenTo(n,'change:appendContent',this.appendContent),this.listenTo(n,'change:content',this.updateContent),this.listenTo(n,'change:visible',this.toggleVisible),n.view=this}},{key:"appendContent",value:function(){this.$el.append(this.model.get('appendContent'))}},{key:"updateContent",value:function(){this.$el.html(this.model.get('content'))}},{key:"toggleVisible",value:function(){this.model.get('visible')?this.$el.removeClass("".concat(this.ppfx,"hidden")):this.$el.addClass("".concat(this.ppfx,"hidden"))}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initResize",value:function(){var t=this.config.em,e=t?t.get('Editor'):'',n=this.model.get('resizable');if(e&&n){var r,i,o,a=!0===n?[1,1,1,1]:n,s=a.length,l=0;2==s?(r=a[0],o=a[0],i=a[1],l=a[1]):4==s&&(r=a[0],i=a[1],o=a[2],l=a[3]);var c=e.Utils.Resizer.init(function(t){for(var e=1;e{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316);function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var u=function(t){(0,o.Z)(a,t);var e=c(a);function a(){return(0,r.Z)(this,a),e.apply(this,arguments)}return(0,i.Z)(a,[{key:"defaults",value:function(){return{id:'',label:'',tagName:'span',className:'',command:'',context:'',buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,togglable:!0,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1}}},{key:"initialize",value:function(t){if(this.get('buttons').length){var e=n(5253).Z;this.set('buttons',new e(this.get('buttons')))}}}]),a}(n(6409).Z);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"deactivateAllExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('active',!1),e&&n.get('buttons').length&&n.get('buttons').deactivateAllExceptOne(t,e))}))}},{key:"deactivateAll",value:function(t,e){var n=t||'';this.forEach((function(t){t.get('context')==n&&t!==e&&t.set('active',!1,{fromCollection:1})}))}},{key:"disableAllButtons",value:function(t){var e=t||'';this.forEach((function(t,n){t.get('context')==e&&t.set('disable',!0)}))}},{key:"disableAllButtonsExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('disable',!0),e&&n.get('buttons').length&&n.get('buttons').disableAllButtonsExceptOne(t,e))}))}}]),n}(l.Collection);h.prototype.model=u},3030:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={textTags:['br','b','i','u','a','ul','ol'],parserCss:null,parserHtml:null,optionsHtml:{htmlType:null,allowScripts:!1,allowUnsafeAttr:!1}};var o=n(9050),a={4:'media',5:'font-face',6:'page',7:'keyframes',11:'counter-style',12:'supports',13:'document',14:'font-feature-values',15:'viewport'},s=(0,o.keys)(a),l=['5','6','11','15'],c=['font-face','page','counter-style','viewport'],u=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=[],n=[],r=t.split(','),i=0,o=r.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i=t.length,o=t[i-1],a=o?o.split(/:(.+)/):[],s=a[1],l=n.atRule,u=n.selectorsAdd,f=n.mediaText,h=c.indexOf(l)>=0;return h&&(r.singleAtRule=1),l&&(r.atRuleType=l),u&&(r.selectorsAdd=u),f&&(r.mediaText=f),s&&(t[i-1]=a[0],r.state=s,a.splice(a.length-1,1)),r.selectors=t,r.style=e,r},p=function t(e){for(var n=[],r=e.cssRules||[],i=0,o=r.length;i=0;if(b)g=1,v=a[p],m=h(c);else if(s.indexOf(p)>=0){var w=t(c);m=h(c);for(var k=0,x=w.length;k0&&void 0!==arguments[0]?arguments[0]:{};return{parse:function(e){var n=this,r=[],i=t.parserCss,o=t.em,a=o&&o.get&&o.get('Editor');return(i?i(e,a):g(e)).forEach((function(t){return r=r.concat(n.checkNode(t))})),o&&o.trigger('parse:css',{input:e,output:r}),r},checkNode:function(t){var e=t,n=e.selectors,r=e.style;if((0,o.isString)(n)){var i=[],a=u(n),s=a.result,l=a.add.join(', '),c={atRule:t.atRule,mediaText:t.params};if(s.length?s.forEach((function(t){i.push(d(t,r,c))})):i.push(d([],r,c)),l)i[i.length-1].selectorsAdd=l;t=i}return t}}};var m=n(4119);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=b(b({},i),r)).Parser=this,t=new m.Z(n),e=new v(n),this.em=n.em,this.parserCss=e,this.parserHtml=t,this},getConfig:function(){return n},parseHtml:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.em,o=this.compTypes;return t.compTypes=i?i.get('DomComponents').getTypes():o,t.parse(n,e,r)},parseCss:function(t){return e.parse(t)},destroy:function(){var r=this;[n,t,e].forEach((function(t){return{}})),['em','parserCss','parserHtml'].forEach((function(t){return r[t]={}}))}}}},4119:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(4942),i=n(1002),o=n(9050),a='text/html',s=a;const l=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new DOMParser,i=n.htmlType||s,l=i===a,c=l?t:"
".concat(t,"
"),u=r.parseFromString(c,i);if(l){var f=u.head,h=u.body,d=f.querySelectorAll('script');(0,o.each)(d,(function(t){return h.appendChild(t)}));var p=[];(0,o.each)(f.children,(function(t){return p.push(t)})),(0,o.each)(p,(function(t,e){return h.insertBefore(t,h.children[e])})),e=h}else e=u.firstChild;return e};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},r={},i={};return(0,o.each)(e,(function(e,a){if(0===a.indexOf(t.modelAttrStart)){var s=a.replace(n,''),l=e.length,c=e&&(0,o.isString)(e),u=c&&e.substr(0,1),f=c&&e.substr(l-1);e='false'!==(e='true'===e||e)&&e;try{e='{'==u&&'}'==f||'['==u&&']'==f?JSON.parse(e):e}catch(t){}r[s]=e}else i[a]=e})),{props:r,attrs:i}},parseStyle:function(t){for(var e={},n=t.split(';'),r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},a=[],s=r.childNodes,l=0,c=s.length;l'!=="".concat(f.outerHTML).slice(-2)||(m.void=!0);var A=m.components;if(!m.type&&A){for(var M=1,Z=0,L=0;L2&&void 0!==arguments[2]?arguments[2]:{},c=e.em,f=c&&c.get('Config')||{},h={html:null,css:null},d=u(u({},t),s),p=u(u({},t.optionsHtml),{},{htmlType:(null===(a=t.optionsHtml)||void 0===a?void 0:a.htmlType)||t.htmlType},s),g=(0,o.isFunction)(d.parserHtml)?d.parserHtml(n,p):l(n,p),v=g.querySelectorAll('script'),m=v.length,y=(0,o.isUndefined)(f.allowScripts)?p.allowScripts:f.allowScripts;if(!y)for(;m--;)v[m].parentNode.removeChild(v[m]);if(p.allowUnsafeAttr||this.__clearUnsafeAttr(g),i){for(var b=g.querySelectorAll('style'),w=b.length,k='';w--;)k=b[w].innerHTML+k,b[w].parentNode.removeChild(b[w]);k&&(h.css=i.parse(k))}c&&c.trigger("".concat(r,":root"),{input:n,root:g});var x=this.parseNode(g,d),O=1!==x.length||e.returnArray?x:x[0];return h.html=O,c&&c.trigger(r,{input:n,output:h}),h},__clearUnsafeAttr:function(t){var e=this,n=t.attributes||[],r=t.childNodes||[],i=[];(0,o.each)(n,(function(t){var e=t.nodeName||'';0===e.indexOf('on')&&i.push(e)})),i.map((function(e){return t.removeAttribute(e)})),(0,o.each)(r,(function(t){return e.__clearUnsafeAttr(t)}))}}}},9697:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>S});var r=n(5861),i=n(2982),o=n(4942),a=n(7757),s=n.n(a),l=n(3168),c=n(5671),u=n(3144),f=n(9050);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:'A',n=t.selection(),r=n.anchorNode,i=n.focusNode,o=null==r?void 0:r.parentNode,a=null==i?void 0:i.parentNode;return(null==o?void 0:o.nodeName)==e||(null==a?void 0:a.nodeName)==e},y='data-selectme',b={bold:{name:'bold',icon:'B',attributes:{title:'Bold'},result:function(t){return t.exec('bold')}},italic:{name:'italic',icon:'I',attributes:{title:'Italic'},result:function(t){return t.exec('italic')}},underline:{name:'underline',icon:'U',attributes:{title:'Underline'},result:function(t){return t.exec('underline')}},strikethrough:{name:'strikethrough',icon:'S',attributes:{title:'Strike-through'},result:function(t){return t.exec('strikeThrough')}},link:{icon:"\n \n ",name:'link',attributes:{style:'font-size:1.4rem;padding:0 4px 2px;',title:'Link'},state:function(t){return t&&t.selection()&&m(t)?p:g},result:function(t){m(t)?t.exec('unlink'):t.insertHTML("").concat(t.selection(),""),{select:!0})}},wrap:{icon:"\n \n ",attributes:{title:'Wrap for style'},state:function(t){return null!=t&&t.selection()&&m(t,'SPAN')?v:g},result:function(t){!m(t,'SPAN')&&t.insertHTML("").concat(t.selection(),""),{select:!0})}}},w=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.Z)(this,t);var r=n.el,i=n.em;if(this.em=i,r._rte)return r._rte;r._rte=this,this.setEl(r),this.updateActiveActions=this.updateActiveActions.bind(this),this.__onKeydown=this.__onKeydown.bind(this),this.__onPaste=this.__onPaste.bind(this);var o=(n.actions||[]).map((function(t){var e=t;return'string'==typeof t?e=d({},b[t]):b[t.name]&&(e=d(d({},b[t.name]),t)),e})),a=o.length?o:Object.keys(b).map((function(t){return b[t]}));n.classes=d(d({},{actionbar:'actionbar',button:'action',active:'active',disabled:'disabled',inactive:'inactive'}),n.classes);var s=n.classes,l=n.actionbar;if(this.actionbar=l,this.settings=n,this.classes=s,this.actions=a,!l){var u=n.actionbarContainer;(l=document.createElement('div')).className=s.actionbar,u.appendChild(l),this.actionbar=l,a.forEach((function(t){return e.addAction(t)}))}return n.styleWithCSS&&this.exec('styleWithCSS'),this}return(0,u.Z)(t,[{key:"destroy",value:function(){this.el=0,this.doc=0,this.actionbar=0,this.settings={},this.classes={},this.actions=[]}},{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach((function(e){var n=e.btn,r=e.update,i=d({},t.classes),o=i.active,a=i.inactive,s=i.disabled,l=e.state,c=e.name,u=t.doc;if(n.className=n.className.replace(o,'').trim(),n.className=n.className.replace(a,'').trim(),n.className=n.className.replace(s,'').trim(),l)switch(l(t,u)){case p:n.className+=" ".concat(o);break;case g:n.className+=" ".concat(a);break;case v:n.className+=" ".concat(s)}else u.queryCommandSupported(c)&&u.queryCommandState(c)&&(n.className+=" ".concat(o));r&&r(t,e)}))}},{key:"enable",value:function(t){return this.enabled?this:this.__toggleEffects(!0,t)}},{key:"disable",value:function(){return this.__toggleEffects(!1)}},{key:"__toggleEffects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t?l.on:l.off,r=this.el,i=this.doc;if(this.actionbarEl().style.display=t?'':'none',r.contentEditable=!!t,n(r,'mouseup keyup',this.updateActiveActions),n(i,'keydown',this.__onKeydown),n(i,'paste',this.__onPaste),this.enabled=t,t){var o=e.event;if(this.syncActions(),this.updateActiveActions(),o){var a=null;if(i.caretRangeFromPoint){var s=(0,l.getPointerEvent)(o);a=i.caretRangeFromPoint(s.clientX,s.clientY)}else o.rangeParent&&(a=i.createRange()).setStart(o.rangeParent,o.rangeOffset);var c=i.getSelection();c.removeAllRanges(),a&&c.addRange(a)}r.focus()}return this}},{key:"__onKeydown",value:function(t){'Enter'===t.key&&(this.doc.execCommand('insertLineBreak'),t.preventDefault())}},{key:"__onPaste",value:function(t){var e=t.clipboardData||window.clipboardData,n=e.getData('text'),r=e.getData('text/html');if(n&&!r){t.preventDefault();var i=n.replace(/(?:\r\n|\r|\n)/g,'
');this.doc.execCommand('insertHTML',!1,i)}}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach((function(e){if(t.actionbar&&(!e.state||e.state&&e.state(t,t.doc)>=0)){var n=e.event||'click';e.btn["on".concat(n)]=function(n){e.result(t,e),t.updateActiveActions()}}}))}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,r=document.createElement('span'),i=t.icon,o=t.attributes||{};for(var a in r.className=this.classes.button,t.btn=r,o)r.setAttribute(a,o[a]);'string'==typeof i?r.innerHTML=i:r.appendChild(i),this.actionbarEl().appendChild(r),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.select,r=this.em,i=this.doc,o=this.el,a=i.getSelection();if(a&&a.rangeCount){var s=(0,l.getModel)(o),c=i.createElement('div'),u=a.getRangeAt(0);u.deleteContents(),(0,f.isString)(t)?c.innerHTML=t:t&&c.appendChild(t),Array.prototype.slice.call(c.childNodes).forEach((function(t){u.insertNode(t)})),a.removeAllRanges(),a.addRange(u),o.focus(),n&&s&&(s.once('rte:disable',(function(){var t=s.find("[".concat(y,"]"))[0];t&&(r.setSelected(t),t.removeAttributes(y))})),s.trigger('disable'))}}}]),t}();const k={stylePrefix:'rte-',adjustToolbar:1,actions:['bold','italic','underline','strikethrough','link','wrap']};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=O(O({},k),e),r=n.pStylePrefix;return r&&(n.stylePrefix=r+n.stylePrefix),this.config=n,this.pfx=n.stylePrefix,this.em=n.em,this.actions=n.actions||[],(0,l.hasWin)()?((t=document.createElement('div')).className="".concat(r,"rte-toolbar ").concat(r,"one-bg"),this.initRte(document.createElement('div')),(0,l.on)(t,'mousedown',(function(t){return t.stopPropagation()})),this):this},destroy:function(){var e,n,r,i=this;null===(e=this.globalRte)||void 0===e||e.destroy(),null===(n=this.customRte)||void 0===n||null===(r=n.destroy)||void 0===r||r.call(n),t=0,['actionbar','actions','em','config','globalRte','lastEl'].map((function(t){delete i[t]}))},postRender:function(n){var r=n.model.get('Canvas');t.style.pointerEvents='all',e(),r.getToolsEl().appendChild(t)},initRte:function(e){var n=this.globalRte,r=this.em,o=this.pfx,a=this.actionbar,s=this.config,l=t,c=this.actions||(0,i.Z)(s.actions),u={actionbar:"".concat(o,"actionbar"),button:"".concat(o,"action"),active:"".concat(o,"active"),inactive:"".concat(o,"inactive"),disabled:"".concat(o,"disabled")};return n?(n.em=r,n.setEl(e)):(n=new w({em:r,el:e,classes:u,actions:c,actionbar:a,actionbarContainer:l}),this.globalRte=n),n.actionbar&&(this.actionbar=n.actionbar),n.actions&&(this.actions=n.actions),n},add:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.name=t,null===(e=this.globalRte)||void 0===e||e.addAction(n,{sync:1})},get:function(t){var e,n;return null===(e=this.globalRte)||void 0===e||e.getActions().forEach((function(e){e.name==t&&(n=e)})),n},getAll:function(){var t;return null===(t=this.globalRte)||void 0===t?void 0:t.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var r=n.btn,i=e.indexOf(n);r.parentNode.removeChild(r),e.splice(i,1)}return n},getToolbarEl:function(){return t},updatePosition:function(){var e=this.em.get('Canvas'),n=t.style,r=e.getTargetToElementFixed(this.lastEl,t,{event:'rteToolbarPosUpdate',left:0});n.top=(r.top||0)+"px",n.left=(r.left||0)+"px"},enable:function(e,n,i){var o=this;return(0,r.Z)(s().mark((function r(){var a,l,c,u;return s().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.lastEl=e.el,a=o.customRte,l=o.em,c=e.getChildrenContainer(),t.style.display='',r.next=6,a?a.enable(c,n):o.initRte(c).enable(i);case 6:return u=r.sent,l&&(setTimeout(o.updatePosition.bind(o),0),l.off(C,o.updatePosition,o),l.on(C,o.updatePosition,o),l.trigger('rte:enable',e,u)),r.abrupt("return",u);case 9:case"end":return r.stop()}}),r)})))()},disable:function(t,n){var r=this.em,i=this.customRte,o=t.getChildrenContainer();i?i.disable(o,n):n&&n.disable(),e(),r&&(r.off(C,this.updatePosition,this),r.trigger('rte:disable',t,n))}}}},8835:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>z,evAdd:()=>N,evAll:()=>Z,evCustom:()=>V,evPfx:()=>L,evRemove:()=>F,evRemoveBefore:()=>B,evState:()=>H,evUpdate:()=>I});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2316),c=n(6409);const u={stylePrefix:'clm-',appendTo:'',selectors:[],states:[{name:'hover'},{name:'active'},{name:'nth-of-type(2n)'}],escapeName:0,selectedName:0,iconAdd:'',iconSync:'',iconTagOn:'',iconTagOff:'',iconTagRemove:'',render:0,componentFirst:0,custom:!1};var f=n(9985),h=n(2030),d=n(5671),p=n(3144),g=n(9340),v=n(2963),m=n(1120);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var b=function(t){(0,g.Z)(n,t);var e=y(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"defaults",value:function(){return{name:'',label:''}}},{key:"getName",value:function(){return this.get('name')}},{key:"getLabel",value:function(){return this.get('label')||this.getName()}}]),n}(c.Z);b.prototype.idAttribute='name';var w=n(168);function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var x,O,C,S,P='contentEditable',_=function(t){(0,g.Z)(n,t);var e=k(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"template",value:function(){var t=this.pfx,e=this.model,n=this.config,r=e.get('label')||'';return"\n \n ").concat(r,"\n \n ").concat(n.iconTagRemove,"\n \n ")}},{key:"events",value:function(){return{'click [data-tag-remove]':'removeTag','click [data-tag-status]':'changeStatus','dblclick [data-tag-name]':'startEditTag','focusout [data-tag-name]':'endEditTag'}}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{};this.config=e,this.module=t.module,this.coll=t.coll||null,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.listenTo(this.model,'change:active',this.updateStatus)}},{key:"getInputEl",value:function(){return this.inputEl||(this.inputEl=this.el.querySelector('[data-tag-name]')),this.inputEl}},{key:"startEditTag",value:function(){var t=this.em,e=this.getInputEl();e[P]=!0,e.focus(),t&&t.setEditing(1)}},{key:"endEditTag",value:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=this.em,i=r&&r.get('SelectorManager');if(e[P]=!1,r&&r.setEditing(0),i){var o=i.escapeName(n);i.get(o)?e.innerText=t.get('label'):t.set({name:o,label:n})}}},{key:"changeStatus",value:function(){var t=this.model;t.set('active',!t.get('active'))}},{key:"removeTag",value:function(){this.module.removeSelected(this.model)}},{key:"updateStatus",value:function(){var t=this.model,e=this.$el,n=this.config,r=n.iconTagOn,i=n.iconTagOff,o=e.find('[data-tag-status]');t.get('active')?(o.html(r),e.removeClass('opac50')):(o.html(i),e.addClass('opac50'))}},{key:"render",value:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr('class',"".concat(t,"tag ").concat(e,"three-bg")),this.updateStatus(),this}}]),n}(l.View),T=n(8595);function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var j=function(t){(0,g.Z)(n,t);var e=E(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"template",value:function(t){var e=t.labelInfo,n=t.labelHead,r=t.iconSync,i=t.iconAdd,o=t.pfx,a=t.ppfx;return"\n
\n
").concat(n,"
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n ").concat(i,"\n \n \n ").concat(r,"\n \n
\n
\n
").concat(e,":
\n
\n
")}},{key:"events",value:function(){return{'change [data-states]':'stateChanged','click [data-add]':'startNewTag','focusout [data-input]':'endNewTag','keyup [data-input]':'onInputKeyUp','click [data-sync-style]':'syncStyle'}}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=e.config||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.pfx+'tags',this.stateInputId=this.pfx+'states',this.stateInputC=this.pfx+'input-c',this.states=this.config.states||[];var n=this.config.em,r=this.collection;this.target=this.config.em;var i=e.module;this.module=i,this.em=n,this.componentChanged=(0,o.debounce)(this.componentChanged.bind(this)),this.checkSync=(0,o.debounce)(this.checkSync.bind(this));var a='component:toggled component:update:classes',s='component:update:classes change:state';this.listenTo(n,a,this.componentChanged),this.listenTo(n,'styleManager:update',this.componentChanged),this.listenTo(n,s,this.__handleStateChange),this.listenTo(n,'styleable:change change:device',this.checkSync),this.listenTo(r,'add',this.addNew),this.listenTo(r,'reset',this.renderClasses),this.listenTo(r,'remove',this.tagRemoved),this.listenTo(i.getAll(),i.events.state,(0,o.debounce)((function(){return t.renderStates()}))),this.delegateEvents()}},{key:"syncStyle",value:function(){var t,e=this.em,n=this.getTarget(),r=e.get('CssComposer'),i=this.getCommonSelectors({opts:{noDisabled:1}}),o=e.get('state'),a=e.getCurrentMedia(),s=[],l=r.get(i,o,a)||r.add(i,o,a);this.getTargets().forEach((function(e){var n=r.getIdRule(e.getId(),{state:o,mediaText:a});t=n.getStyle(),n.setStyle({}),s.push(n)})),t&&l.addStyle(t),e.trigger('component:toggled'),e.trigger('component:sync-style',{component:n,selectors:i,mediaText:a,rule:l,ruleComponents:s,state:o})}},{key:"tagRemoved",value:function(t){this.updateStateVis()}},{key:"addNew",value:function(t){this.addToClasses(t)}},{key:"startNewTag",value:function(){this.$addBtn.css({display:'none'}),this.$input.show().focus()}},{key:"endNewTag",value:function(){this.$addBtn.css({display:''}),this.$input.hide().val('')}},{key:"onInputKeyUp",value:function(t){13===t.keyCode?(t.preventDefault(),this.addNewTag(this.$input.val())):27===t.keyCode&&this.endNewTag()}},{key:"checkStates",value:function(){var t=this.em.getState(),e=this.getStates();e&&e.val(t)}},{key:"componentChanged",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets;this.updateSelection(e)}},{key:"updateSelection",value:function(t){var e=t||this.getTargets(),n=[];return(e=(0,o.isArray)(e)?e:[e])&&e.length&&(n=this.getCommonSelectors({targets:e}),this.checkSync({validSelectors:n})),this.collection.reset(n),this.updateStateVis(e),this.module.__trgCustom(),n}},{key:"getCommonSelectors",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets,n=t.opts,r=void 0===n?{}:n,i=e||this.getTargets();return this.module.__getCommonSelectors(i,r)}},{key:"_commonSelectors",value:function(){var t;return(t=this.module).__common.apply(t,arguments)}},{key:"checkSync",value:function(){var t,e=this.$btnSyncEl,n=this.config,r=this.collection,i=this.getTarget();if(i&&n.componentFirst&&r.length){var a=i.getStyle();t=!(0,o.isEmpty)(a)}e&&e[t?'show':'hide']()}},{key:"getTarget",value:function(){return this.target.getSelected()}},{key:"getTargets",value:function(){return this.target.getSelectedAll()}},{key:"updateStateVis",value:function(t){var e=this.em,n=e&&e.getConfig('avoidInlineStyle'),r=this.collection.length||n?'':'none';this.getStatesC().css('display',r),this.updateSelector(t)}},{key:"__handleStateChange",value:function(){this.updateSelector(this.getTargets())}},{key:"updateSelector",value:function(t){var e=this,n=this.el.querySelector('[data-selected]'),r=[],i=t||this.getTargets();(i=(0,o.isArray)(i)?i:[i]).forEach((function(t){return r.push(e.__getName(t))})),n&&(n.innerHTML=r.join(', ')),this.checkStates()}},{key:"__getName",value:function(t){var e,n=this.pfx,r=this.config,i=this.em,a=r.selectedName,s=r.componentFirst;if((0,o.isString)(t))e=(0,T.Z)(x||(x=(0,w.Z)(["",""])),n,t);else{var l=t&&t.get&&t.getSelectors();if(!l)return;var c=l.getStyleable(),u=i.get('state'),f=t.getId?(0,T.Z)(O||(O=(0,w.Z)(["","\n #",""])),n,t.getName(),n,t.getId()):'';e=(e=this.collection.getFullString(c))?(0,T.Z)(C||(C=(0,w.Z)(["",""])),n,e):t.get('selectorsAdd')||f,e=s&&f?f:e,e+=u?(0,T.Z)(S||(S=(0,w.Z)([":",""])),n,u):'',e=a?a({result:e,state:u,target:t}):e}return e&&"").concat(e,"")}},{key:"stateChanged",value:function(t){var e=this.em,n=t.target.value;e.set('state',n)}},{key:"addNewTag",value:function(t){var e=t.trim();e&&(this.module.addSelected({label:e}),this.endNewTag())}},{key:"addToClasses",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.getClasses(),i=new _({model:t,config:this.config,coll:this.collection,module:this.module}).render().el;return n?n.appendChild(i):r.append(i),i}},{key:"renderClasses",value:function(){var t=this,e=document.createDocumentFragment(),n=this.getClasses();n.empty(),this.collection.each((function(n){return t.addToClasses(n,e)})),n.append(e)}},{key:"getClasses",value:function(){return this.$el.find('[data-selectors]')}},{key:"getStates",value:function(){if(!this.$states){var t=this.$el.find('[data-states]');this.$states=t[0]&&t}return this.$states}},{key:"getStatesC",value:function(){return this.$statesC||(this.$statesC=this.$el.find('#'+this.stateInputC)),this.$statesC}},{key:"renderStates",value:function(){var t=this.module,e=this.em,n=e.t('selectorManager.emptyState'),r=t.getStates().map((function(t){var n=e.t("selectorManager.states.".concat(t.id))||t.getLabel()||t.id;return"")})).join(''),i=this.getStates();i&&i.html("").concat(r)),this.checkStates()}},{key:"render",value:function(){var t=this.em,e=this.pfx,n=this.ppfx,r=this.config,i=this.$el,o=this.el,a=r.render,s={iconSync:r.iconSync,iconAdd:r.iconAdd,labelHead:t.t('selectorManager.label'),labelInfo:t.t('selectorManager.selected'),ppfx:n,pfx:e,el:o};i.html(this.template(s));var l=a&&a(s);return l&&l!==o&&i.empty().append(l),this.$input=i.find('[data-input]'),this.$addBtn=i.find('[data-add]'),this.$classes=i.find('#'+e+'tags-c'),this.$btnSyncEl=i.find('[data-sync-style]'),this.$input.hide(),this.renderStates(),this.renderClasses(),i.attr('class',"".concat(this.className," ").concat(n,"one-bg ").concat(n,"two-color")),this}}]),n}(l.View);function D(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function R(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(u,e);var n=this.getConfig(),r=n.em,i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),this.all=new h.Z(n.selectors),this.selected=new h.Z([],{em:r,config:n}),this.states=new l.Collection(n.states,{model:b}),this.model=new c.Z({cFirst:n.componentFirst,_undo:!0}),this.__initListen({collections:[this.states,this.selected],propagate:[{entity:this.states,event:this.events.state}]}),r.on('change:state',(function(t,e){return r.trigger(H,e)})),this.model.on('change:cFirst',(function(t,e){return r.trigger('selector:type',e)}));var o='component:toggled component:update:classes change:device styleManager:update selector:state selector:type';return this.model.listenTo(r,o,(function(){return t.__update()})),this},__update:(0,o.debounce)((function(){this.__trgCustom()})),__trgCustom:function(t){this.em.trigger(this.events.custom,this.__customData(t))},__customData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.container;return{states:this.getStates(),selected:this.getSelected(),container:e}},postRender:function(){this.__appendTo(),this.__trgCustom()},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.em.get('StyleManager').select(n,e),i=this.selectorTags,o=r.filter((function(t){return t})).map((function(t){return(0,a.isComponent)(t)||(0,a.isRule)(t)&&!t.get('selectorsAdd')?t:t.getSelectorsString()}));return i&&i.componentChanged({targets:o}),this},addSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=R({},e);(0,o.isObject)(t)?r=t:r.name=t,A(r.name)?(r.name=r.name.substr(1),r.type=f.Z.TYPE_ID):M(r.name)&&(r.name=r.name.substr(1)),r.label&&!r.name&&(r.name=this.escapeName(r.label));var i=r.name,a=this.getConfig(),s=this.getAll(),l=i?this.get(i,r.type):s.where(r)[0];return l||s.add(r,R(R({},n),{},{config:a}))},getSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.Z.TYPE_CLASS;return A(t)?(t=t.substr(1),e=f.Z.TYPE_ID):M(t)&&(t=t.substr(1)),this.getAll().where({name:t,type:e})[0]},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isString)(t)?{}:n;return(0,o.isArray)(t)?t.map((function(t){return e.addSelector(t,n,r)})):this.addSelector(t,n,r)},addClass:function(t){var e=this,n=[];return(0,o.isString)(t)&&(t=t.trim().split(' ')),t.forEach((function(t){return n.push(e.addSelector(t))})),n},get:function(t,e){var n=this;if((0,o.isArray)(t)){var r=[];return t.map((function(t){return n.getSelector(t)})).filter((function(t){return t})).forEach((function(t){return r.indexOf(t)<0&&r.push(t)})),r}return this.getSelector(t,e)||null},remove:function(t,e){return this.__remove(t,e)},setState:function(t){return this.em.setState(t),this},getState:function(){return this.em.getState()},getStates:function(){return(0,r.Z)(this.states.models)},setStates:function(t,e){return this.states.reset(t,e)},getSelected:function(){return this.__getCommon()},addSelected:function(t){var e=this.add(t);this.em.getSelectedAll().forEach((function(t){t.getSelectors().add(e)}))},removeSelected:function(t){this.em.getSelectedAll().forEach((function(e){!t.get('protected')&&e&&e.getSelectors().remove(t)}))},getSelectedTargets:function(){return this.em.get('StyleManager').getSelectedAll()},setComponentFirst:function(t){this.getConfig().componentFirst=t,this.model.set({cFirst:t})},getComponentFirst:function(){return this.getConfig().componentFirst},escapeName:function(t){var e=this.getConfig().escapeName;return e?e(t):f.Z.escapeName(t)},render:function(t){this.em;var e=this.selectorTags,n=this.getConfig(),r=e&&e.el;return this.selected.reset(t),this.selectorTags=new j({el:r,collection:this.selected,module:this,config:n}),this.selectorTags.render().el},destroy:function(){var t=this.selectorTags;this.model.stopListening(),this.__destroy(),t&&t.remove(),this.selectorTags={}},__getCommon:function(){return this.__getCommonSelectors(this.em.getSelectedAll())},__getCommonSelectors:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.map((function(t){return t.getSelectors&&t.getSelectors().getValid(e)})).filter(Boolean);return this.__common.apply(this,(0,r.Z)(n))},__common:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r=0})):n.slice(1).reduce((function(e,n){return t.__common(e,n)}),n[0]):[]}})}},9985:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(6409);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"defaults",value:function(){return{name:'',label:'',type:1,active:!0,private:!1,protected:!1,_undo:!0}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.config,i=void 0===r?{}:r,o=this.get('name'),a=this.get('label');o?a||this.set('label',o):this.set('name',a);var s=this.get('name'),l=i.escapeName,c=l?l(s):n.escapeName(s);this.set('name',c),this.em=i.em}},{key:"isId",value:function(){return 2===this.get('type')}},{key:"isClass",value:function(){return 1===this.get('type')}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.escape,n=this.get('name'),r='';switch(this.get('type')){case 1:r='.';break;case 2:r='#'}return r+(e?e(n):n)}},{key:"toString",value:function(){return this.getFullName()}},{key:"getLabel",value:function(){return this.get('label')}},{key:"setLabel",value:function(t){return this.set('label',t)}},{key:"getActive",value:function(){return this.get('active')}},{key:"setActive",value:function(t){return this.set('active',t)}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=c.Z.prototype.toJSON.call(this,[t]),r=(0,l.result)(this,'defaults');if(e&&e.getConfig('avoidDefaults')){(0,l.forEach)(r,(function(t,e){n[e]===t&&delete n[e]})),n.label===n.name&&delete n.label;var i=(0,l.keys)(n).length;1===i&&n.name&&(n=n.name),2===i&&n.name&&n.type&&(n=this.getFullName())}return n}}]),n}(c.Z);f.prototype.idAttribute='name',f.TYPE_CLASS=1,f.TYPE_ID=2,f.escapeName=function(t){return"".concat(t).trim().replace(/([^a-z0-9\w-\:]+)/gi,'-')}},2030:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(2316),u=n(9985);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function t(e,n){return e.reduce((function(r,i,o){return r.concat(t(e.slice(o+1),"".concat(n).concat(i)))}),[n])},d=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"modelId",value:function(t){return"".concat(t.name,"_").concat(t.type||u.Z.TYPE_CLASS)}},{key:"getStyleable",value:function(){return(0,l.filter)(this.models,(function(t){return t.get('active')&&!t.get('private')}))}},{key:"getValid",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDisabled;return(0,l.filter)(this.models,(function(t){return!t.get('private')})).filter((function(t){return e?t.get('active'):1}))}},{key:"getFullString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t||this;return r.forEach((function(t){return n.push(t.getFullName(e))})),n.join('').trim()}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.combination,n=t.array,r=[],i=this.map((function(e){return e.getFullName(t)})).sort();return e?i.forEach((function(t,e){r=r.concat(h(i.slice(e+1),t))})):r=i,n?r:e?r.join(','):r.join('')}}]),n}(c.Collection);d.prototype.model=u.Z},1311:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r=n(5861),i=n(4942),o=n(7757),a=n.n(o),s=n(3821);const l={id:'gjs-',type:'local',autosave:!0,autoload:!0,recovery:!1,stepsBeforeSave:1,onStore:function(t){return t},onLoad:function(t){return t},options:{local:{key:'gjsProject',checkLocal:!0},remote:{headers:{},urlStore:'',urlLoad:'',contentTypeJson:!0,fetchOptions:'',credentials:'include',onStore:function(t){return t},onLoad:function(t){return t}}}};var c=n(5671),u=n(3144),f=n(3168),h=function(){function t(){(0,c.Z)(this,t)}var e,n;return(0,u.Z)(t,[{key:"store",value:(n=(0,r.Z)(a().mark((function t(e){var n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.length>1&&void 0!==r[1]?r[1]:{},this.hasLocal(n,!0)&&localStorage.setItem(n.key,JSON.stringify(e));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(){var e,n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},n={},this.hasLocal(e,!0)&&(n=JSON.parse(localStorage.getItem(e.key)||'{}')),t.abrupt("return",n);case 4:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"hasLocal",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if(t.checkLocal&&(!(0,f.hasWin)()||!localStorage)){if(e)throw new Error('localStorage not available');return!1}return!0}}]),t}(),d=n(9050),p=n(7644);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e1&&void 0!==r[1]?r[1]:{},t.next=3,this.request(n.urlStore,this.__props(n,e),n);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(e){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.request(e.urlLoad,this.__props(e),e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"request",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,p.Z)(t,e).then((function(t){var e=t.text();return 1==(t.status/200|0)?e:e.then(Promise.reject)})).then((function(t){var e=t&&(0,d.isString)(t);return n.contentTypeJson&&e?JSON.parse(t):t}))}},{key:"__props",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=e.contentTypeJson,i=e.headers||{},o=e.fetchOptions||{},a='X-Requested-With',s='Content-Type';if((0,d.isUndefined)(i[a])&&(i[a]='XMLHttpRequest'),(0,d.isUndefined)(i[s])&&r&&(i[s]='application/json; charset=utf-8'),n)if(r)t=JSON.stringify(n);else for(var l in t=new FormData,n)t.append(l,n[l]);var c={method:t?'POST':'GET',credentials:e.credentials,headers:i,body:t};return v(v({},c),(0,d.isFunction)(o)?o(c):o)}}]),t}();function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(l,t);var e=this.getConfig();return e._disable&&(e.type=0),this.storages={},this.add(C,new h(e)),this.add(S,new m(e)),this.setCurrent(e.type),this},isAutosave:function(){return!!this.getConfig().autosave},setAutosave:function(t){return this.getConfig().autosave=!!t,this},getStepsBeforeSave:function(){return this.getConfig().stepsBeforeSave},setStepsBeforeSave:function(t){return this.getConfig().stepsBeforeSave=t,this},add:function(t,e){return this.storages[t]=e,this},get:function(t){return this.storages[t]||null},getStorages:function(){return this.storages},getCurrent:function(){return this.getConfig().currentStorage},setCurrent:function(t){return this.getConfig().currentStorage=t,this},getCurrentStorage:function(){return this.get(this.getCurrent())},getStorageOptions:function(t){return this.getCurrentOptions(t)},store:function(t){var e=arguments,n=this;return(0,r.Z)(a().mark((function r(){var i,o,s,l,c;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i=e.length>1&&void 0!==e[1]?e[1]:{},o=n.getCurrentStorage(),s=b(b({},n.getCurrentOptions()),i),l=n.getRecoveryStorage(),c=n.getCurrentOptions(C),r.prev=5,r.next=8,n.__exec(o,s,t);case 8:if(r.t0=l,!r.t0){r.next=12;break}return r.next=12,n.__exec(l,c,{});case 12:case 19:r.next=22;break;case 14:if(r.prev=14,r.t1=r.catch(5),!l){r.next=21;break}return r.next=19,n.__exec(l,c,t);case 21:throw r.t1;case 22:return r.abrupt("return",t);case 23:case"end":return r.stop()}}),r,null,[[5,14]])})))()},load:function(){var t=arguments,e=this;return(0,r.Z)(a().mark((function n(){var r,i,o,s,l,c;return a().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.getCurrentStorage(),o=b(b({},e.getCurrentOptions()),r),!(s=e.getRecoveryStorage())){n.next=17;break}return n.next=7,e.__exec(s,e.getCurrentOptions(C));case 7:if(c=n.sent,(0,d.isEmpty)(c)){n.next=17;break}return n.prev=9,n.next=12,e.__askRecovery();case 12:l=c,n.next=17;break;case 15:n.prev=15,n.t0=n.catch(9);case 17:if(l){n.next=21;break}return n.next=20,e.__exec(i,o);case 20:l=n.sent;case 21:return n.abrupt("return",l||{});case 22:case"end":return n.stop()}}),n,null,[[9,15]])})))()},__askRecovery:function(){var t=this.em,e=this.getRecovery();return new Promise((function(n,r){(0,d.isFunction)(e)?e(n,r,null==t?void 0:t.getEditor()):confirm(null==t?void 0:t.t('storageManager.recover'))?n():r()}))},getRecovery:function(){return this.getConfig().recovery},getRecoveryStorage:function(){return this.getRecovery()&&this.getCurrent()===S&&this.get(C)},__exec:function(t,e,n){var i=this;return(0,r.Z)(a().mark((function r(){var o,s,l,c,u,f,h,d;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n?'store':'load',s=i.getConfig(),l=s.onStore,c=s.onLoad,i.onStart(o,n),t){r.next=5;break}return r.abrupt("return",n||{});case 5:if(r.prev=5,h=null===(f=i.em)||void 0===f?void 0:f.getEditor(),!n){r.next=31;break}if(r.t1=l,!r.t1){r.next=13;break}return r.next=12,l(n,h);case 12:r.t1=r.sent;case 13:if(r.t0=r.t1,r.t0){r.next=16;break}r.t0=n;case 16:if(d=r.t0,r.t3=e.onStore,!r.t3){r.next=22;break}return r.next=21,e.onStore(d,h);case 21:r.t3=r.sent;case 22:if(r.t2=r.t3,r.t2){r.next=25;break}r.t2=d;case 25:return d=r.t2,r.next=28,t.store(d,e);case 28:u=n,r.next=53;break;case 31:return r.next=33,t.load(e);case 33:if(u=r.sent,u=i.__clearKeys(u),r.t5=e.onLoad,!r.t5){r.next=40;break}return r.next=39,e.onLoad(u,h);case 39:r.t5=r.sent;case 40:if(r.t4=r.t5,r.t4){r.next=43;break}r.t4=u;case 43:if(u=r.t4,r.t7=c,!r.t7){r.next=49;break}return r.next=48,c(u,h);case 48:r.t7=r.sent;case 49:if(r.t6=r.t7,r.t6){r.next=52;break}r.t6=u;case 52:u=r.t6;case 53:i.onAfter(o,u),i.onEnd(o,u),r.next=61;break;case 57:throw r.prev=57,r.t8=r.catch(5),i.onError(o,r.t8),r.t8;case 61:return r.abrupt("return",u);case 62:case"end":return r.stop()}}),r,null,[[5,57]])})))()},__clearKeys:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getConfig(),n=new RegExp("^".concat(e.id)),r={};for(var i in t){var o=i.replace(n,'');r[o]=t[i]}return r},getCurrentOptions:function(t){var e=this.getConfig(),n=t||this.getCurrent();return e.options[n]||{}},onStart:function(t,e){var n=this.em;n&&(n.trigger(w),t&&n.trigger("".concat(w,":").concat(t),e))},onAfter:function(t,e){var n=this.em;n&&(n.trigger(k),n.trigger("".concat(k,":").concat(t),e),n.trigger("storage:".concat(t),e))},onEnd:function(t,e){var n=this.em;n&&(n.trigger(x),t&&n.trigger("".concat(x,":").concat(t),e))},onError:function(t,e){var n=this.em;n&&(n.trigger(O,e),t&&n.trigger("".concat(O,":").concat(t),e),this.onEnd(t,e))},canAutoload:function(){return this.getCurrentStorage()&&this.getConfig().autoload},destroy:function(){this.__destroy(),this.storages={}}})}},3096:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Te,evAll:()=>pe,evCustom:()=>Pe,evLayerSelect:()=>Ce,evPfx:()=>ge,evProp:()=>we,evPropAdd:()=>ke,evPropRemove:()=>xe,evPropUp:()=>Oe,evSector:()=>ve,evSectorAdd:()=>me,evSectorRemove:()=>ye,evSectorUpdate:()=>be,evTarget:()=>Se});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(6409);const c={sectors:[{name:'General',open:!1,properties:['display','float','position','top','right','left','bottom']},{name:'Flex',open:!1,properties:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,properties:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,properties:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow']},{name:'Decorations',open:!1,properties:['background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,properties:['opacity','transition']}],appendTo:'',stylePrefix:'sm-',custom:!1,hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!0,avoidComputed:['width','height']};var u=n(4925),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n.n(v),y=n(6475),b=["partial"];function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em;var r=this.get('id')||'',i=this.get('name')||this.get('label')||'';!this.get('property')&&this.set('property',(i||r).replace(/ /g,'-'));var o=this.get('property');!this.get('id')&&this.set('id',o),!i&&this.set('name',(0,a.capitalize)(o).replace(/-/g,' ')),this.on('change',this.__upTargets),n.callInit(this,t,e)}},{key:"__getParentProp",value:function(){var t,e;return null===(t=this.collection)||void 0===t||null===(e=t.opts)||void 0===e?void 0:e.parentProp}},{key:"__upTargets",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.em,s=a.get('StyleManager'),l=this.getName(),c=n.__clear,u=c?'':this.__getFullValue(n),f=this.__getParentProp(),h=this.changedAttributes(),d=(0,o.keys)(h).reduce((function(t,n){return t[n]=e.previous(n),t}),{}),p=[].concat((0,r.Z)((0,o.keys)(this.__getClearProps())),['__p']),g=(0,o.keys)(h),v=!n.__up&&!f&&(c||p.some((function(t){return g.indexOf(t)>=0}))),m=this.get('onChange'),y={property:this,from:d,to:h,value:u,opts:n};s.__trgEv(s.events.propertyUpdate,y),m&&m(y),v&&this.__upTargetsStyle((0,i.Z)({},l,u),n)}},{key:"__upTargetsStyle",value:function(t,e){var n,r=null===(n=this.em)||void 0===n?void 0:n.get('StyleManager');null==r||r.addStyleTargets(k(k({},t),{},{__p:!!e.avoidStore}),e)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.noTarget&&(e.__up=!0);var n=e.partial,r=(0,u.Z)(e,b);return t.__p=!(!r.avoidStore&&!n),this.set(t,k(k({},r),{},{avoidStore:t.__p}))}},{key:"up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.set(t,k(k({},e),{},{__up:!0}))}},{key:"init",value:function(){}},{key:"getId",value:function(){return this.get('id')}},{key:"getType",value:function(){return this.get('type')}},{key:"getName",value:function(){return this.get('property')}},{key:"getLabel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('name')||this.get('label');return r&&(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.properties.".concat(i)))||o}},{key:"getValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDefault,n=this.get('value');return this.hasValue()||e?n:this.getDefaultValue()}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget(),r=this.get('value');return!(0,o.isUndefined)(r)&&''!==r&&!n}},{key:"hasValueParent",value:function(){return this.hasValue()&&!this.hasValue({noParent:!0})}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=t.camelCase?(0,a.camelCase)(e):e;return(0,i.Z)({},n,this.__getFullValue(t))}},{key:"getDefaultValue",value:function(){var t=this.get('default');return"".concat((0,o.isUndefined)(t)?this.get('defaults'):t)}},{key:"upValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null===t||''===t?this.__getClearProps():this.__parseValue(t,e);return this._up(n,e)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._up(this.__getClearProps(),k(k({},t),{},{__clear:!0}))}},{key:"canClear",value:function(){var t=this.getParent();return t?t.__canClearProp(this):this.hasValue({noParent:!0})}},{key:"getParent",value:function(){return this.__getParentProp()||null}},{key:"isFull",value:function(){return!!this.get('full')}},{key:"__parseValue",value:function(t,e){return this.parseValue(t,e)}},{key:"__getClearProps",value:function(){return{value:''}}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t),i=!e;!i&&this.set({value:void 0},{avoidStore:i,silent:!0}),this.set(r,k({avoidStore:i},n))}},{key:"setValueFromInput",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,k(k({},n),{},{fromInput:1}))}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={value:t},r='!important';if((0,o.isString)(t)&&-1!==t.indexOf(r)&&(n.value=t.replace(r,'').trim(),n.important=1),!this.get('functionName')&&!e.complete)return n;var i=[],a="".concat(n.value),s=a.indexOf('(')+1,l=a.lastIndexOf(')'),c=a.substring(0,s-1);if(c&&(n.functionName=c),i.push(s),l>=0&&i.push(l),n.value=String.prototype.substring.apply(a,i),e.numeric){var u=parseFloat(n.value);n.unit=n.value.replace(u,''),n.value=u}return n}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.withDefault;return!this.hasValue()&&e?this.getDefaultValue():this.getFullValue()}},{key:"getFullValue",value:function(t){var e=this.get('functionName'),n=this.getDefaultValue(),r=(0,o.isUndefined)(t)?this.get('value'):t,i=!(0,o.isUndefined)(r)&&''!==r;if(r&&n&&r===n)return n;if(e&&i){var a='url'===e?"'".concat(r.replace(/'/g,''),"'"):r;r="".concat(e,"(").concat(a,")")}return i&&this.get('important')&&(r="".concat(r," !important")),r||''}},{key:"__setParentTarget",value:function(t){this.__parentTarget=t}},{key:"getParentTarget",value:function(){return this.__parentTarget||null}},{key:"__parseFn",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=t.indexOf('(')+1,n=t.lastIndexOf(')');return{name:t.substring(0,e-1).trim(),value:String.prototype.substring.apply(t,[e,n>=0?n:void 0]).trim()}}},{key:"__checkVisibility",value:function(t){var e=t.target,n=t.component,r=t.sectors,i=n||e;if(!i)return!1;var s=this.getId(),l=this.getName(),c=this.get('toRequire'),u=this.get('requires'),f=this.get('requiresParent'),h=i.get('unstylable'),d=i.get('stylable-require'),p=i.get('stylable');if((0,o.isArray)(p)&&(p=p.indexOf(l)>=0),(0,o.isArray)(h)&&(p=h.indexOf(l)<0),c&&(p=!e||d&&(d.indexOf(s)>=0||d.indexOf(l)>=0)),r&&u){var g=(0,o.keys)(u);r.forEach((function(t){t.getProperties().forEach((function(t){if((0,o.includes)(g,t.id)){var e=u[t.id];p=p&&(0,o.includes)(e,t.get('value'))}}))}))}if(f){var v=n&&n.parent(),m=v&&v.getEl();if(m){var y=(0,a.hasWin)()?window.getComputedStyle(m):{};(0,o.each)(f,(function(t,e){p=p&&y[e]&&(0,o.includes)(t,y[e])}))}else p=!1}return!!p}}]),n}(l.Z);function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};t.prototype.initialize.apply(e,[n,k(k({},r),{},{skipInit:1})])},O.callInit=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.skipInit&&t.init(e,n)},O.getDefaults=function(){return(0,o.result)(this.prototype,'defaults')},O.prototype.defaults={name:'',property:'',type:'',defaults:'',info:'',value:'',icon:'',functionName:'',status:'',visible:!0,fixedValues:['initial','inherit'],onChange:null,full:0,important:0,toRequire:0,requires:null,requiresParent:null};var _=function(t){return'integer'===t||'number'===t},T=function(t){(0,d.Z)(n,t);var e=P(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"defaults",value:function(){return S(S({},O.getDefaults()),{},{detached:!1,properties:[],separator:' ',join:null,fromStyle:null,toStyle:null,full:!0})}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.em,r=new zt(this.get('properties')||[],{em:n,parentProp:this});this.set('properties',r,{silent:1}),this.listenTo(r,'change',this.__upProperties),O.callInit(this,t,e)}},{key:"getProperties",value:function(){return(0,r.Z)(this.get('properties').models)}},{key:"getProperty",value:function(t){return this.get('properties').filter((function(e){return e.getId()===t||e.getName()===t}))[0]||null}},{key:"getPropertyAt",value:function(t){return this.get('properties').at(t)}},{key:"isDetached",value:function(){return!!this.get('detached')}},{key:"getValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.byName;return this.getProperties().reduce((function(t,n){return t[e?n.getName():n.getId()]="".concat(n.__getFullValue()),t}),{})}},{key:"getSeparator",value:function(){return this.getSplitSeparator()}},{key:"getJoin",value:function(){return this.__getJoin()}},{key:"getStyleFromProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.__getJoin(),r=this.get('toStyle'),o=this.getValues(),a={};if(r)a=r(o,{join:n,name:e,property:this});else if(o=this.getValues({byName:!0}),this.isDetached())a=o;else{var s=this.getProperties().map((function(t){return t.__getFullValue({withDefault:1})})).filter(Boolean).join(n);a=(0,i.Z)({},e,s)}return this.isDetached()?a[e]='':(a[e]=a[e]||'',a=S(S({},a),this.getProperties().reduce((function(t,e){return t[e.getName()]='',t}),{}))),t.camelCase?Object.keys(a).reduce((function(t,e){return t[camelCase(e)]=a[e],t}),{}):a}},{key:"getSplitSeparator",value:function(){return new RegExp("".concat(this.get('separator'),"(?![^\\(]*\\))"))}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__up&&!e.__clearIn){var n=this.__getParentProp();if(n)return n.__upProperties(this,e);this.__upTargetsStyleProps(e,t)}}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.getStyleFromProps();if(this.isDetached()&&e){var r=e.getName();n=(0,i.Z)({},r,n[r])}this.__upTargetsStyle(n,t)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__setProperties(this.__getSplitValue(t.value),e),O.prototype._up.call(this,t,e)}},{key:"getStyle",value:function(t){return this.getStyleFromProps(t)}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isDetached()||t.__clear?'':this.getStyleFromProps()[this.getName()]||''}},{key:"__getJoin",value:function(){var t=this.get('join');return(0,o.isString)(t)?t:this.get('separator')}},{key:"__styleHasProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.getProperties(),i=n.map((function(t){return t.getName()})),a=[e].concat((0,r.Z)(i));return a.some((function(e){return!(0,o.isUndefined)(t[e])&&''!==t[e]}))}},{key:"__splitValue",value:function(t,e){return t.split(e).map((function(t){return t.trim()})).filter(Boolean)}},{key:"__splitStyleName",value:function(t,e,n){return this.__splitValue(t[e]||'',n)}},{key:"__getSplitValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.byName,r=this.getProperties(),i=4===r.length&&r.every((function(t){return _(t.getType())})),a=this.__splitValue(t,this.getSplitSeparator()),s={};return r.forEach((function(t,e){var r=a[e],l=(0,o.isUndefined)(r)?'':r;if(i){var c=a.length;l=a[e]||a[e%c+(1!=c&&c%2?1:0)]||l}var u=n?t.getName():t.getId();s[u]=l||''})),s}},{key:"__getPropsFromStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.__styleHasProps(t))return null;var n=e.byName,r=this.getName(),i=this.getProperties(),a=this.getSplitSeparator(),s=this.get('fromStyle'),l=s?s(t,{property:this,name:r,separator:a}):{};return s||(l=this.__getSplitValue(t[r]||'',{byName:n}),i.forEach((function(e){var r=t[e.getName()],i=n?e.getName():e.getId();(0,o.isUndefined)(r)||''===r||(l[i]=r)}))),l}},{key:"__setProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.getProperties().forEach((function(n){var r=t[n.getId()];n.__getFullValue()!==r&&n.upValue(r,e)}));var n=(0,o.keys)(t).map((function(e){return t[e]})).join(' ');this.set('value',n,{silent:!0})}},{key:"clear",value:function(){var t=this;return this.getProperties().map((function(e){return e.clear({__clearIn:!t.isDetached()})})),O.prototype.clear.call(this)}},{key:"hasValue",value:function(t){return this.getProperties().some((function(e){return e.hasValue(t)}))}},{key:"getFullValue",value:function(){return this.__getFullValue()}},{key:"__canClearProp",value:function(t){return this.isDetached()&&t.hasValue({noParent:!0})}}]),n}(O);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('values');return t.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getLabel",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.getLayerLabel(this)}},{key:"isSelected",value:function(){var t;return(null===(t=this.prop)||void 0===t?void 0:t.getSelectedLayer())===this}},{key:"select",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.selectLayer(this)}},{key:"remove",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.removeLayer(this)}},{key:"move",value:function(t){var e;return null===(e=this.prop)||void 0===e?void 0:e.moveLayer(this,t)}},{key:"getStylePreview",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return null===(t=this.prop)||void 0===t?void 0:t.getStylePreview(this,e)}},{key:"hasPreview",value:function(){var t;return!(null===(t=this.prop)||void 0===t||!t.get('preview'))}},{key:"upValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.set('values',j(j({},this.getValues()),t))}}]),n}(l.Z);function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var M=function(t){(0,d.Z)(n,t);var e=A(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prop=e.prop}}]),n}(v.Collection);M.prototype.model=R;var Z=["__layers"];function L(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};T.callParentInit(T,this,t,e);var n=this.get('layers'),r=new M(n,{prop:this});r.property=this,r.properties=this.get('properties'),this.set('layers',r,{silent:!0}),this.on('change:selectedLayer',this.__upSelected),this.listenTo(r,'add remove',this.__upLayers),T.callInit(this,t,e)}},{key:"getLayers",value:function(){return this.__getLayers().models}},{key:"__getLayers",value:function(){return this.get('layers')}},{key:"getLayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.__getLayers().at(t)||null}},{key:"getSelectedLayer",value:function(){var t=this.get('selectedLayer');return t&&t.getIndex()>=0?t:null}},{key:"selectLayer",value:function(t){return this.set('selectedLayer',t,{__select:!0})}},{key:"selectLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e&&this.selectLayer(e)}},{key:"moveLayer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t?t.getIndex():-1;n>=0&&(0,o.isNumber)(e)&&e>=0&&e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};this.getProperties().forEach((function(e){var r=e.getId(),i=t[r];n[r]=(0,o.isUndefined)(i)?e.getDefaultValue():i}));var r=this.get('layers').push({values:n},e);return r}},{key:"removeLayer",value:function(t){return this.get('layers').remove(t)}},{key:"removeLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e?this.removeLayer(e):null}},{key:"getLayerLabel",value:function(t){var e='';if(t){var n=this.get('layerLabel'),r=t.getValues(),i=t.getIndex();if(n)e=n(t,{index:i,values:r,property:this});else{var o=[];this.getProperties().map((function(t){o.push(r[t.getId()])})),e=o.filter(Boolean).join(' ')}}return e}},{key:"getStyleFromLayer",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.__getJoin(),s=this.__getJoinLayers(),l=this.get('toStyle'),c=this.getName(),u=t.getValues();if(l)e=l(u,{join:r,joinLayers:s,name:c,layer:t,property:this});else{var f=this.getProperties().map((function(t){var e=t.getName(),r=u[t.getId()],i=(0,o.isUndefined)(r)?t.getDefaultValue():r;if(n.number&&_(t.getType())){var a=t.parseValue(r,n.number);i="".concat(a.value).concat(a.unit)}return{name:e,value:i}}));e=this.isDetached()?f.reduce((function(t,e){return t[e.name]=e.value,t}),{}):(0,i.Z)({},this.getName(),f.map((function(t){return t.value})).join(r))}return n.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getStylePreview",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=this.get('preview');return r&&(n=this.getStyleFromLayer(t,e)),n}},{key:"getLayerSeparator",value:function(){var t=this.get('layerSeparator');return(0,o.isString)(t)?new RegExp("".concat(t,"(?![^\\(]*\\))")):t}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getSelectedLayer();n&&(n.upValues((0,i.Z)({},t.getId(),t.__getFullValue())),e.__up||this.__upTargetsStyleProps(e))}},{key:"__upLayers",value:function(t,e,n){this.__upTargetsStyleProps(n||e)}},{key:"__upTargets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__select)return O.prototype.__upTargets.call(this,t,e)}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__upTargetsStyle(this.getStyleFromLayers(),t)}},{key:"__upTargetsStyle",value:function(t,e){return O.prototype.__upTargetsStyle.call(this,t,e)}},{key:"__upSelected",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noEvent,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em.get('StyleManager'),i=this.getSelectedLayer(),o=null==i?void 0:i.getValues();o&&this.getProperties().forEach((function(t){var e=o[t.getId()];t.__getFullValue()!==e&&t.upValue(e,N(N({},n),{},{__up:!0}))})),!e&&r.__trgEv(r.events.layerSelect,{property:this})}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.__layers,r=void 0===n?[]:n,i=(0,u.Z)(t,Z);return!this.isDetached()&&this.__setLayers(r),this.__upSelected({noEvent:!0},e),O.prototype._up.call(this,i,e)}},{key:"__setLayers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.__getLayers(),n=t.map((function(t){return{values:t}}));e.length===n.length?n.map((function(t,n){var r;return null===(r=e.at(n))||void 0===r?void 0:r.upValues(t.values)})):this.__getLayers().reset(n),this.__upSelected({noEvent:!0})}},{key:"__parseValue",value:function(t){var e=this,n=this.parseValue(t);return n.__layers=t.split(F).map((function(t){return t.trim()})).map((function(t){return e.__parseLayer(t)})).filter(Boolean),n}},{key:"__parseLayer",value:function(t){var e=this.get('parseLayer'),n=t.split(B),r=this.getProperties();return e?e({value:t,values:n}):r.reduce((function(t,e,r){var i=n[r];return t[e.getId()]=(0,o.isUndefined)(i)?e.getDefaultValue():i,t}),{})}},{key:"__getLayersFromStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.__styleHasProps(e))return null;var n=this.getName(),r=this.getProperties(),a=this.getLayerSeparator(),s=this.get('fromStyle'),l=s?s(e,{property:this,name:n,separatorLayers:a}):[];if(!s){var c=this.__splitStyleName(e,n,a).map((function(e){return e.split(t.getSplitSeparator())})).map((function(t){var e={};return r.forEach((function(n,r){var i=t[r];e[n.getId()]=(0,o.isUndefined)(i)?n.getDefaultValue():i})),e}));r.forEach((function(n){var r=n.getId();t.__splitStyleName(e,n.getName(),a).map((function(t){return(0,i.Z)({},r,t||n.getDefaultValue())})).forEach((function(t,e){c[e]=c[e]?N(N({},c[e]),t):t}))})),l=c}return(0,o.isArray)(l)?l:[l]}},{key:"getStyle",value:function(t){return this.getStyleFromLayers(t)}},{key:"getStyleFromLayers",value:function(t){var e=this,n={},r=this.getName(),i=this.getLayers(),a=this.getProperties();if(i.map((function(n){return e.getStyleFromLayer(n,t)})).forEach((function(t){(0,o.keys)(t).map((function(e){n[e]||(n[e]=[]),n[e].push(t[e])}))})),(0,o.keys)(n).map((function(t){n[t]=n[t].join(e.__getJoinLayers())})),this.isDetached())n[r]='',!i.length&&a.map((function(t){n[t.getName()]=''}));else{var s=a.reduce((function(t,e){return t[e.getName()]='',t}),{});n[r]=n[r]||'',n=N(N({},n),s)}return n}},{key:"__getJoinLayers",value:function(){var t=this.get('layerJoin'),e=this.get('layerSeparator');return t||((0,o.isString)(e)?e:t)}},{key:"__getFullValue",value:function(){return this.get('detached')?'':this.getStyleFromLayers()[this.getName()]}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget();return this.getLayers().length>0&&!n}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.__getLayers().reset(),this.__upTargetsStyleProps(t),O.prototype.clear.call(this)}},{key:"__canClearProp",value:function(){return!1}}]),n}(T),H=["complete","partial"];function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e
\n
\n ")}},{key:"templateLabel",value:function(t){var e=this.pfx,n=this.em,r=t.parent,i=t.attributes,o=i.icon,a=void 0===o?'':o,s=i.info,l=void 0===s?'':s,c=null==n?void 0:n.getConfig('icons'),u=(null==c?void 0:c.close)||'';return"\n \n ").concat(t.getLabel(),"\n \n ").concat(r?'':"
").concat(u,"
"),"\n ")}},{key:"templateInput",value:function(t){return"\n
\n \n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__change','__updateStyle');var e=t.config||{},n=e.em;this.config=e,this.em=n,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.__destroyFn=this.destroy?this.destroy.bind(this):function(){};var r=this.model;r.view=this,this.onValueChange=(0,o.debounce)(this.onValueChange.bind(this),10),this.updateStatus=(0,o.debounce)(this.updateStatus.bind(this)),this.listenTo(r,'destroy remove',this.remove),this.listenTo(r,'change:visible',this.updateVisibility),this.listenTo(r,'change:name change:className change:full',this.render),this.listenTo(r,'change:value',this.onValueChange),this.listenTo(n,'change:device',this.onValueChange);var i=this.init&&this.init.bind(this);i&&i()}},{key:"remove",value:function(){var t=this;v.View.prototype.remove.apply(this,arguments),['em','input','$input','view'].forEach((function(e){return t[e]=null})),this.__destroyFn(this._getClbOpts())}},{key:"updateStatus",value:function(){var t,e=this.model,n=this.pfx,r=this.ppfx,i=this.config,o="".concat(r,"four-color"),a="".concat(r,"color-warn"),s=this.$el.children(".".concat(n,"label")),l=this.getClearEl(),c=l?l.style:{};s.removeClass("".concat(o," ").concat(a)),c.display='none',e.hasValue({noParent:!0})&&i.highlightChanged?(s.addClass(o),i.clearProperties&&(c.display='')):e.hasValue()&&i.highlightComputed&&s.addClass(a),null===(t=this.parent)||void 0===t||t.updateStatus()}},{key:"clear",value:function(t){t&&t.stopPropagation(),this.model.clear()}},{key:"getClearEl",value:function(){return this.clearEl||(this.clearEl=this.el.querySelector("[".concat($,"]"))),this.clearEl}},{key:"inputValueChanged",value:function(t){t&&t.stopPropagation(),this.emit||this.model.upValue(t.target.value)}},{key:"onValueChange",value:function(t,e){this.setValue(this.model.getFullValue()),this.updateStatus()}},{key:"setValue",value:function(t){var e=this.model,n=(0,o.isUndefined)(t)||''===t?e.getDefaultValue():t;if(this.update)return this.__update(n);this.__setValueInput(n)}},{key:"__setValueInput",value:function(t){var e=this.getInputEl();e&&(e.value=t)}},{key:"getInputEl",value:function(){return this.input||(this.input=this.el.querySelector('input')),this.input}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"clearCached",value:function(){this.clearEl=null,this.input=null,this.$input=null}},{key:"__unset",value:function(){var t=this.unset&&this.unset.bind(this);t&&t(this._getClbOpts())}},{key:"__update",value:function(t){var e=this.update&&this.update.bind(this);e&&e(U(U({},this._getClbOpts()),{},{value:t}))}},{key:"__change",value:function(){for(var t=this.emit&&this.emit.bind(this),e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.complete,r=e.partial,i=((0,u.Z)(e,H),this.model),o=!1!==n&&!0!==r;(0,a.isObject)(t)?i.__upTargetsStyle(t,{avoidStore:!o}):i.upValue(t,{partial:!o})}},{key:"_getClbOpts",value:function(){var t=this.model;return{el:this.el,createdEl:this.createdEl,property:t,props:t.attributes,change:this.__change,updateStyle:this.__updateStyle}}},{key:"render",value:function(){this.clearCached();var t=this.pfx,e=this.model,n=this.el,r=this.$el,i=e.getName(),o=e.getType(),a=e.get('className')||'',s="".concat(t,"property"),l='number'===o?"".concat(t).concat(o," ").concat(t,"integer"):"".concat(t).concat(o);this.createdEl&&this.__destroyFn(this._getClbOpts()),r.empty().append(this.template(e)),r.find('[data-sm-label]').append(this.templateLabel(e));var c=this.create&&this.create.bind(this);this.createdEl=c&&c(this._getClbOpts()),r.find('[data-sm-fields]').append(this.createdEl||this.templateInput(e)),n.className="".concat(s," ").concat(l," ").concat(s,"__").concat(i," ").concat(a).trim(),n.className+=e.isFull()?" ".concat(s,"--full"):'';var u=this.onRender&&this.onRender.bind(this);u&&u(),this.setValue(e.getValue())}}]),n}(v.View);q.prototype.events=(0,i.Z)({change:'inputValueChanged'},"click [".concat($,"]"),'clear');var G=n(827);function K(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var Y=function(t){(0,d.Z)(n,t);var e=K(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||'',this.properties=[],this.parent=t.parent;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.render)}},{key:"addTo",value:function(t,e,n){this.add(t,null,n)}},{key:"add",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parent,i=this.config,o=e||this.el,a=new t.typeView({model:t,config:i});r&&(a.parent=r),a.render();var s=a.el;this.properties.push(a),(0,G.$Q)(o,s,n.at)}},{key:"remove",value:function(){v.View.prototype.remove.apply(this,arguments),this.clearItems()}},{key:"clearItems",value:function(){this.properties.forEach((function(t){return t.remove()})),this.properties=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx;this.clearItems();var r=document.createDocumentFragment();return this.collection.forEach((function(e){return t.add(e,r)})),e.empty(),e.append(r),e.attr('class',"".concat(n,"properties")),this}}]),n}(v.View);function X(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function J(t){for(var e=1;e\n \n \n ")}},{key:"remove",value:function(){var t;null===(t=this.props)||void 0===t||t.remove(),q.prototype.remove.apply(this,arguments)}},{key:"onValueChange",value:function(){}},{key:"onRender",value:function(){var t=this.model,e=this.pfx,n=t.get('properties');if(n.length&&!this.props){var r=t.isDetached(),i=new Y({config:J(J({},this.config),{},{highlightComputed:r,highlightChanged:r}),collection:n,parent:this});i.render(),this.$el.find("#".concat(e,"input-holder")).append(i.el),this.props=i}}},{key:"clearCached",value:function(){q.prototype.clearCached.apply(this,arguments),this.props=null}}]),n}(q);function et(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var nt=function(t){(0,d.Z)(n,t);var e=et(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"events",value:function(){return{click:'select','click [data-close-layer]':'removeItem','mousedown [data-move-layer]':'initSorter','touchstart [data-move-layer]':'initSorter'}}},{key:"template",value:function(){var t=this.pfx,e=this.ppfx,n=this.em,r=null==n?void 0:n.getConfig('icons'),i=(null==r?void 0:r.close)||'',o=(null==r?void 0:r.move)||'';return"\n
\n
\n ").concat(o,"\n
\n
\n
\n
\n
\n
\n ").concat(i,"\n
\n
\n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.em=n.em,this.config=n,this.sorter=t.sorter,this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.propertyView=t.propertyView;var r=this.propertyView.model;this.listenTo(e,'destroy remove',this.remove),this.listenTo(e,'change:values',this.updateLabel),this.listenTo(r,'change:selectedLayer',this.updateVisibility),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data('model',e)}},{key:"initSorter",value:function(){var t;null===(t=this.sorter)||void 0===t||t.startSort(this.el)}},{key:"removeItem",value:function(t){t&&t.stopPropagation(),this.model.remove()}},{key:"select",value:function(){this.model.select()}},{key:"getPropertiesWrapper",value:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector('[data-properties]')),this.propsWrapEl}},{key:"getPreviewEl",value:function(){return this.previewEl||(this.previewEl=this.el.querySelector('[data-preview]')),this.previewEl}},{key:"getLabelEl",value:function(){return this.labelEl||(this.labelEl=this.el.querySelector('[data-label]')),this.labelEl}},{key:"updateLabel",value:function(){var t=this.model,e=t.getLabel();if(this.getLabelEl().innerHTML=e,t.hasPreview()){var n=this.getPreviewEl(),r=t.getStylePreview({number:{min:-3,max:3}}),i=(0,o.keys)(r).map((function(t){return"".concat(t,":").concat(r[t])})).join(';');n.setAttribute('style',i)}}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n=this.propertyView,r=this.getPropertiesWrapper(),i=e.isSelected();r.style.display=i?'':'none',this.$el[i?'addClass':'removeClass']("".concat(t,"active")),i&&r.appendChild(n.props.el)}},{key:"render",value:function(){var t=this.el,e=this.pfx,n=this.model;return t.innerHTML=this.template(),t.className="".concat(e,"layer"),n.hasPreview()&&(t.querySelector("[data-preview-box]").style.display=''),this.updateLabel(),this.updateVisibility(),this}}]),n}(v.View);function rt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var it=function(t){(0,d.Z)(n,t);var e=rt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){var e=this.collection,n=t.config||{},r=n.em,i=n.stylePrefix||'',o=n.pStylePrefix||'';this.config=n,this.pfx=i,this.ppfx=o,this.propertyView=t.propertyView,this.className="".concat(i,"layers ").concat(o,"field"),this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.reset),this.items=[];var a=r?r.get('Utils'):'';this.sorter=a?new a.Sorter({container:this.el,ignoreViewChildren:1,containerSel:".".concat(i,"layers"),itemSel:".".concat(i,"layer"),pfx:n.pStylePrefix}):'',e.view=this,this.$el.data('model',e),this.$el.data('collection',e)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=e||null,i=this.propertyView,o=this.config,a=this.sorter,s=this.$el,l=new nt({model:t,config:o,sorter:a,propertyView:i}),c=l.render().el;if(this.items.push(l),r)r.appendChild(c);else if(void 0!==n){var u='before';s.children().length===n&&(n--,u='after'),n<0?s.append(c):s.children().eq(n)[u](c)}else s.append(c);return c}},{key:"reset",value:function(t,e){this.clearItems(e),this.render()}},{key:"remove",value:function(){this.clearItems(),v.View.prototype.remove.apply(this,arguments)}},{key:"clearItems",value:function(){this.items.forEach((function(t){return t.remove()})),this.items=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.sorter,r=document.createDocumentFragment();return e.empty(),this.collection.forEach((function(e){return t.addToCollection(e,r)})),e.append(r),e.attr('class',this.className),n&&(n.plh=null),this}}]),n}(v.View);function ot(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function at(t){for(var e=1;e\n \n
\n \n ")}},{key:"init",value:function(){var t=this.model;this.listenTo(t.__getLayers(),'change reset',this.updateStatus)}},{key:"addLayer",value:function(){this.model.addLayer({},{at:0})}},{key:"setValue",value:function(){}},{key:"remove",value:function(){var t;null===(t=this.layersView)||void 0===t||t.remove(),tt.prototype.remove.apply(this,arguments)}},{key:"clearCached",value:function(){tt.prototype.clearCached.apply(this,arguments),this.layersView=null}},{key:"onRender",value:function(){var t=this.model,e=this.el,n=this.config,r=t.get('properties');if(r.length&&!this.props){var i=new Y({config:at(at({},n),{},{highlightComputed:!1,highlightChanged:!1}),collection:r,parent:this});i.render();var o=new it({collection:t.__getLayers(),config:n,propertyView:this});o.render(),e.querySelector('[data-layers-wrapper]').appendChild(o.el),this.props=i,this.layersView=o}}}]),n}(tt);function ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ut(t){for(var e=1;e\n
\n
\n \n
\n
\n
\n
\n
\n
").concat(i,"
\n
\n \n ")}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.el,r=e.getDefaultValue(),i=n.querySelector('[data-preview-box]'),o=n.querySelector('[data-preview]');i.style.display=t&&t!==r?'':'none',o.style.backgroundImage=t||e.getDefaultValue()}},{key:"openAssetManager",value:function(){var t,e=this,n=null===(t=this.em)||void 0===t?void 0:t.get('AssetManager');null==n||n.open({select:function(t,r){var i=(0,o.isString)(t)?t:t.get('src');e.model.upValue(i,{partial:!r}),r&&n.close()},types:['image'],accept:'image/*'})}}]),n}(q);function dt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var pt=function(t){(0,d.Z)(n,t);var e=dt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"templateInput",value:function(){return''}},{key:"init",value:function(){var t=this.model;this.listenTo(t,'change:unit',this.onValueChange),this.listenTo(t,'change:units',this.render)}},{key:"setValue",value:function(){}},{key:"onRender",value:function(){var t=this.ppfx,e=this.model,n=this.el;if(!this.inputInst){var r=e.input;r.ppfx=t,r.render(),n.querySelector(".".concat(t,"fields")).appendChild(r.el),this.input=r.inputEl.get(0),this.inputInst=r}}},{key:"clearCached",value:function(){q.prototype.clearCached.apply(this,arguments),this.inputInst=null}}]),n}(q),gt=n(4e3);function vt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var mt=function(t){(0,d.Z)(n,t);var e=vt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"setValue",value:function(t){var e;null===(e=this.inputInst)||void 0===e||e.setValue(t,{fromTarget:1,def:this.model.getDefaultValue()})}},{key:"remove",value:function(){var t=this;pt.prototype.remove.apply(this,arguments);var e=this.inputInst;e&&e.remove&&e.remove(),['inputInst','$color'].forEach((function(e){return t[e]=null}))}},{key:"__handleChange",value:function(t,e){this.model.upValue(t,{partial:e})}},{key:"onRender",value:function(){if(!this.inputInst){this.__handleChange=this.__handleChange.bind(this);var t=this.ppfx,e=this.model,n=this.em,r=this.el,i=new gt.Z({target:n,model:e,ppfx:t,onChange:this.__handleChange}).render();r.querySelector(".".concat(t,"fields")).appendChild(i.el),this.input=i.inputEl.get(0),this.inputInst=i}}}]),n}(pt);function yt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function bt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[];return this.set('options',t),this}},{key:"addOption",value:function(t){if(t){var e=this.getOptions();this.setOptions([].concat((0,r.Z)(e),[t]))}return this}},{key:"getOptionId",value:function(t){return(0,a.isDef)(t.id)?t.id:t.value}},{key:"getOptionLabel",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.locale,i=void 0===r||r,a=((0,o.isString)(t)?this.getOption(t):t)||{},s=this.getOptionId(a),l=a.label||a.name||s,c=this.getId();return i&&(null===(e=this.em)||void 0===e?void 0:e.t("styleManager.options.".concat(c,".").concat(s)))||l}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n\n \n
\n
\n
\n \n ")}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n").concat(i,""))}));var i=this.el.querySelector("#".concat(e,"input-holder"));i.innerHTML=""),this.input=i.firstChild}}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.getInputEl(),r=e.getOptions()[0],i=r?e.getOptionId(r):'';n&&(n.value=t||i)}}]),n}(q);function Ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function St(t){for(var e=1;e")}},{key:"onRender",value:function(){var t=this.pfx,e=this.ppfx,n=this.model,r="".concat(e,"radio-item-label"),i=n.getName(),o=n.getOptions(),a="".concat(t,"radio ").concat(t,"radio-").concat(i),s=n.cid;if(!this.input){var l=[];o.forEach((function(o){var c=o.className?"".concat(o.className," ").concat(t,"icon ").concat(r):'',u=n.getOptionId(o),f="".concat(i,"-").concat(u,"-").concat(s),h=c?'':n.getOptionLabel(u),d=o.title?"title=\"".concat(o.title,"\""):'',p=n.getValue()===u?'checked':'';l.push("\n
\n \n \n
\n "))}));var c=this.el.querySelector(".".concat(e,"field"));c.innerHTML="
").concat(l.join(''),"
"),this.input=c.firstChild}}},{key:"__setValueInput",value:function(t){var e,n=this.model,r=t||n.getDefaultValue(),i=null===(e=this.getInputEl())||void 0===e?void 0:e.querySelector("[value=\"".concat(r,"\"]"));i&&(i.checked=!0)}}]),n}(Ot),jt=n(7813);function Dt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.get('unit'),r=this.get('units');this.input=(0,a.hasWin)()&&new jt.Z({model:this}),r.length&&!n&&this.set('unit',r[0],{silent:1}),O.callInit(this,t,e)}},{key:"__getClearProps",value:function(){return Rt(Rt({},O.prototype.__getClearProps()),{},{unit:''})}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=O.prototype.parseValue.apply(this,arguments),r=this.input.validateInputValue(n.value,Rt({deepCheck:1},e)),i=r.value,o=r.unit;return n.value=i,n.unit=o,n}},{key:"getFullValue",value:function(){var t=this.get('value'),e=this.get('unit');return t=(0,o.isUndefined)(t)?'':t,e=!(0,o.isUndefined)(e)&&t?e:'',t="".concat(t).concat(e),O.prototype.getFullValue.apply(this,[t])}}]),n}(O);function Zt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Lt(t){for(var e=1;e\n \n \n ")}},{key:"getSliderEl",value:function(){return this.slider||(this.slider=this.el.querySelector('input[type=range]')),this.slider}},{key:"inputValueChanged",value:function(){this.model.upValue(this.getSliderEl().value)}},{key:"inputValueChangedSoft",value:function(){this.model.upValue(this.getSliderEl().value,{partial:!0})}},{key:"setValue",value:function(t){var e=this.model,n=e.parseValue(t);this.getSliderEl().value=''===t?e.getDefaultValue():parseFloat(n.value),pt.prototype.setValue.apply(this,arguments)}},{key:"onRender",value:function(){pt.prototype.onRender.apply(this,arguments),this.model.get('showInput')||(this.inputInst.el.style.display='none')}},{key:"clearCached",value:function(){pt.prototype.clearCached.apply(this,arguments),this.slider=null}}]),n}(pt);const zt=m().Collection.extend(y.Z).extend({extendViewApi:1,init:function(){var t=this.opts,e=this.em,n=t.module||(null==e?void 0:e.get('StyleManager'));n&&(n.__listenAdd(this,n.events.propertyAdd),n.__listenRemove(this,n.events.propertyRemove))},types:[{id:'stack',model:V,view:lt,isType:function(t){if(t&&'stack'==t.type)return t}},{id:'composite',model:T,view:tt,isType:function(t){if(t&&'composite'==t.type)return t}},{id:'file',model:O,view:ht,isType:function(t){if(t&&'file'==t.type)return t}},{id:'color',model:O,view:mt,isType:function(t){if(t&&'color'==t.type)return t}},{id:'select',model:kt,view:Ot,isType:function(t){if(t&&'select'==t.type)return t}},{id:'radio',model:_t,view:Et,isType:function(t){if(t&&'radio'==t.type)return t}},{id:'slider',model:It,view:Ht,isType:function(t){if(t&&'slider'==t.type)return t}},{id:'integer',model:Mt,view:pt,isType:function(t){if(t&&'integer'==t.type)return t}},{id:'number',model:Mt,view:pt,isType:function(t){if(t&&'number'==t.type)return t}},{id:'base',model:O,view:q,isType:function(t){return t.type='base',t}}]});var Ut=["extend"];function Wt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $t(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r;var i=t||{},a=this.buildProperties(i.buildProps),s=this.get('name')||'',l=[];!this.get('id')&&this.set('id',s.replace(/ /g,'_').toLowerCase()),l=(l=a?this.extendProperties(a):this.get('properties').map((function(t){return(0,o.isString)(t)?e.buildProperties(t)[0]:t})).filter(Boolean)).map((function(t){return e.checkExtend(t)}));var c=new zt(l,{em:r});c.sector=this,this.set('properties',c)}},{key:"getId",value:function(){return this.get('id')}},{key:"getName",value:function(){var t,e=this.getId();return(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.sectors.".concat(e)))||this.get('name')}},{key:"setName",value:function(t){return this.set('name',t)}},{key:"isOpen",value:function(){return!!this.get('open')}},{key:"setOpen",value:function(t){return this.set('open',t)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"getProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('properties'),n=e.models?(0,r.Z)(e.models):e;return n.filter((function(e){var n=!0;(t.withValue&&(n=e.hasValue({noParent:!0})),t.withParentValue)&&(n=!e.hasValue({noParent:!0})&&e.hasValue());return n}))}},{key:"getProperty",value:function(t){return this.getProperties().filter((function(e){return e.get('id')===t}))[0]||null}},{key:"addProperty",value:function(t,e){return this.get('properties').add(this.checkExtend(t),e)}},{key:"extendProperties",value:function(t,e,n){for(var r=t.length,i=e||this.get('properties'),a=this.get('extendBuilded'),s=[],l=0,c=i.length;l1&&void 0!==arguments[1]?arguments[1]:{},n=e.module,r=e.em;this.em=r,this.module=n,this.listenTo(this,'reset',this.onReset)}},{key:"model",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.collection.em;return new Gt(t,Yt(Yt({},e),{},{em:n}))}},{key:"onReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels||[];n.forEach((function(t){return t.get('properties').reset()}))}}]),n}(v.Collection),Qt=n(885),te=["extend"];function ee(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ne(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.from||'',i=this.props[r||t]||{},a=ne(ne({},i),{},{property:t},e);return a.properties&&(0,o.isFunction)(a.properties)&&(a.properties=a.properties()),this.props[t]=a,a}},{key:"get",value:function(t){return this.props[t]||null}},{key:"build",value:function(t){var e=this,n=[];return((0,o.isString)(t)?[t]:t).forEach((function(t){n.push(e.get(t)||{property:t})})),n}}]),t}(),ae=n(168),se=n(8595);function le(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var ce=function(t){(0,d.Z)(n,t);var e=le(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"template",value:function(t){var e,n=t.pfx,r=t.label,i=null===(e=this.em)||void 0===e?void 0:e.getConfig('icons'),o=(null==i?void 0:i.caret)||'',a="".concat(n,"sector-");return(0,se.Z)(re||(re=(0,ae.Z)(["\n
\n
$","
\n
","
\n
\n "])),a,a,o,a,r)}},{key:"events",value:function(){return{'click [data-sector-title]':'toggle'}}},{key:"initialize",value:function(t){var e=t.config||{},n=this.model,r=e.em;this.config=e,this.em=r,this.pfx=e.stylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change:open',this.updateOpen),this.listenTo(n,'change:visible',this.updateVisibility)}},{key:"updateOpen",value:function(){var t=this.$el,e=this.model,n=this.pfx,r=e.isOpen();t[r?'addClass':'removeClass']("".concat(n,"open")),this.getPropertiesEl().style.display=r?'':'none'}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"getPropertiesEl",value:function(){var t=this.$el,e=this.pfx;return t.find(".".concat(e,"properties")).get(0)}},{key:"toggle",value:function(){var t=this.model;t.setOpen(!t.get('open'))}},{key:"renderProperties",value:function(){var t=this.model,e=this.config,n=t.get('properties');if(n){var r=new Y({collection:n,config:e});this.$el.append(r.render().el)}}},{key:"render",value:function(){var t=this.pfx,e=this.model,n=this.$el,r=e.getId(),i=e.getName();return n.html(this.template({pfx:t,label:i})),this.renderProperties(),n.attr('class',"".concat(t,"sector ").concat(t,"sector__").concat(r," no-select")),this.updateOpen(),this}}]),n}(v.View);function ue(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var fe=function(t){(0,d.Z)(n,t);var e=ue(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.module,n=t.config,r=void 0===n?{}:n,i=this.collection;this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.config=r,this.module=e,this.listenTo(i,'add',this.addTo),this.listenTo(i,'reset',this.render)}},{key:"remove",value:function(){var t=this;v.View.prototype.remove.apply(this,arguments),['config','module','em'].forEach((function(e){return t[e]={}}))}},{key:"addTo",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addToCollection(t,null,n)}},{key:"addToCollection",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.config,i=this.el,o=e||i,a=new ce({model:t,config:r}).render().el;return(0,G.$Q)(o,a,n.at),a}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx,r=this.ppfx;e.empty();var i=document.createDocumentFragment();return this.collection.each((function(e){return t.addToCollection(e,i)})),e.append(i),e.addClass("".concat(n,"sectors ").concat(r,"one-bg ").concat(r,"two-color")),this}}]),n}(v.View);function he(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function de(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__clearStateTarget'),this.__initConfig(c,r);var i=this.config,a=i.em,s=i.pStylePrefix;s&&(i.stylePrefix=s+i.stylePrefix),this.builtIn=new oe,t=new zt([],{em:a,module:this}),e=new Jt([],de(de({},i),{},{module:this}));var u=new l.Z({targets:[]});this.model=u,this.__listenAdd(e,me),this.__listenRemove(e,ye),this.__listenUpdate(e,be);var f='component:toggled component:update:classes change:state change:device frame:resized selector:type',h=(0,o.debounce)((function(){return n.__upSel()}));u.listenTo(a,f,h),u.listenTo(a,'component:toggled',this.__clearStateTarget);var d=(0,o.debounce)((function(){n.__upProps(),n.__trgCustom()}));u.listenTo(a,'styleable:change undo redo',d);var p=(0,o.debounce)((function(){return n.__trgCustom()}));return u.listenTo(a,"".concat(Ce," ").concat(Se),p),u.on('change:lastTarget',(function(){return a.trigger(Se,n.getSelected())})),this},__upSel:function(){this.select(this.em.getSelectedAll())},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},__trgEv:function(t){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{},i=this.getSector(t);return i||(n.id=t,i=e.add(n,r)),i},getSector:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.where({id:t})[0];return!r&&n.warn&&this._logNoSector(t),r||null},getSectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e&&e.models?t.array?(0,r.Z)(e.models):e:[];return t.visible?n.filter((function(t){return t.isVisible()})):n},removeSector:function(t){return this.getSectors().remove(this.getSector(t,{warn:1}))},addProperty:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getSector(t,{warn:1}),i=null;return r&&(i=r.addProperty(e,n)),i},getProperty:function(t,e){var n,r=this.getSector(t,{warn:1});return r&&(n=r.get('properties').filter((function(t){return t.get('property')===e||t.get('id')===e}))[0]),n||null},getProperties:function(t){var e=null,n=this.getSector(t,{warn:1});return n&&(e=n.get('properties')),e},removeProperty:function(t,e){var n=this.getProperties(t);return n?n.remove(this.getProperty(t,e)):null},select:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isArray)(t)?t:[t],s=n.stylable,l=r.get('CssComposer'),c=[];i.filter(Boolean).forEach((function(t){var e=t;if((0,o.isString)(t)){var n=l.getRule(t)||l.setRule(t);!(0,o.isUndefined)(s)&&n.set({stylable:s}),e=n}c.push(e)}));var u=n.component||c.filter((function(t){return(0,a.isComponent)(t)})).reverse()[0];c=c.map((function(t){return e.getModelToStyle(t)}));var f=r.getState(),h=c.slice().reverse()[0],d=this.getParentRules(h,{state:f,component:u}),p=this.__getStateTarget();return r.skip((function(){var t;if(f&&null!=h&&null!==(t=h.getState)&&void 0!==t&&t.call(h)){var e=h.getStyle();p?p.setStyle(e):p=l.getAll().add({selectors:'gjs-selected',style:e,shallow:!0,important:!0})}else p&&(l.remove(p),p=null)})),this.model.set({targets:c,lastTarget:h,lastTargetParents:d,stateTarget:p,component:u}),this.__upProps(n),c},getSelected:function(){return this.model.get('lastTarget')||null},getSelectedAll:function(){return this.model.get('targets')},getSelectedParents:function(){return this.model.get('lastTargetParents')||[]},__getStateTarget:function(){return this.model.get('stateTarget')||null},addStyleTargets:function(t,e){this.getSelectedAll().map((function(n){return n.addStyle(t,e)}));var n=this.getSelected(),r=this.__getStateTarget();n&&(null==r||r.setStyle(n.getStyle(),e))},getBuiltIn:function(t){return this.builtIn.get(t)},getBuiltInAll:function(){return this.builtIn.props},addBuiltIn:function(t,e){return this.builtIn.add(t,e)},getModelToStyle:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=n.skipAdd;if(r&&null!==(e=t)&&void 0!==e&&e.toHTML){var o,a=r.getConfig(),s=r.get('UndoManager'),l=r.get('CssComposer'),c=r.get('SelectorManager'),u=c?c.getConfig():{},f=a.devicePreviewMode?'':r.get('state'),h=t.get('classes'),d=h.getStyleable(),p=d.length,g=!u.componentFirst||n.useClasses,v={noCount:1},m={state:f,addOpts:v};if(s.stop(),p&&g){var y=r.getCurrentMedia();(o=l.get(d,f,y))||i||(o=l.add(d,f,y,{},v))}else if(a.avoidInlineStyle){var b=t.getId();!(o=l.getIdRule(b,m))&&!i&&(o=l.setIdRule(b,{},m)),t.is('wrapper')&&o.set('wrapper',1,v)}o&&(t=o),s.start()}return t},getParentRules:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state,r=e.component,i=this.em,a=[];if(i&&t){var s=r,l=i.get('CssComposer'),c=i.get('CodeManager').getGenerator('css'),u=t.toHTML?t:t.getComponent(),f={combination:!0,array:!0},h=[],d=[],p=[];u?(h=l.getRules("#".concat(u.getId())),p=(d=s?l.getRules(s.getSelectors().getFullName(f)):[]).concat(h)):(h=s?l.getRules("#".concat(s.getId())):[],d=l.getRules(t.getSelectors().getFullName(f)),p=h.concat(d));var g=p.filter((function(t){return(0,o.isUndefined)(n)?1:t.get('state')===n})).sort(c.sortRules).reverse();a=g.slice(g.indexOf(t)+1)}return a},addType:function(e,n){t.addType(e,n)},getType:function(e){return t.getType(e)},getTypes:function(){return t.getTypes()},createType:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,r=void 0===n?{}:n,i=e.view,o=void 0===i?{}:i,a=this.config,s=this.getType(t);if(s)return new s.view(de({model:new s.model(r),config:a},o))},render:function(){var t=this.config,r=this.em,i=n&&n.el;return(n=new fe({el:i,em:r,config:t,collection:e,module:this})).render().el},_logNoSector:function(t){var e=this.em;e&&e.logWarning("'".concat(t,"' sector not found"))},__upProps:function(t){var n=this,r=this.getSelected();if(r){var i=this.model.get('component'),o=this.getSelectedParents(),a=r.getStyle(),s=o.map((function(t){return{target:t,style:t.getStyle()}}));e.map((function(e){e.getProperties().map((function(e){n.__upProp(e,a,s,t)}))})),e.forEach((function(t){var n=t.getProperties();n.forEach((function(t){var n=t.__checkVisibility({target:r,component:i,sectors:e});t.set('visible',n)}));var o=n.some((function(t){return t.isVisible()}));t.set('visible',o)}))}},__upProp:function(t,e,n,r){var i=this,o=t.getName(),a=e[o],s=_e(a),l='stack'===t.getType(),c='composite'===t.getType(),u=de(de({},r),{},{__up:!0}),f=!c&&!l,h=l?t.__getLayersFromStyle(e):[],d=c?t.__getPropsFromStyle(e):{},p=s?a:null,g=null;if(l&&null===h||c&&null===d){var v=l?'__getLayersFromStyle':'__getPropsFromStyle',m=n.filter((function(e){return null!==t[v](e.style)}))[0];if(m){p=m.style[o],g=m.target;var y=t[v](m.style);l?h=y:d=y}}else if(!s){p=null;var b=n.filter((function(t){return _e(t.style[o])}))[0];b&&(p=b.style[o],g=b.target)}if(t.__setParentTarget(g),f&&t.__getFullValue()!==p&&t.upValue(p,u),l&&t.__setLayers(h||[]),c){var w=t.getProperties();if(t.isDetached()){var k=t.__getPropsFromStyle(e,{byName:!0})||{},x=n.map((function(e){return de(de({},e),{},{style:t.__getPropsFromStyle(e.style,{byName:!0})||{}})}));w.map((function(t){return i.__upProp(t,k,x,r)}))}else t.__setProperties(d||{},u),t.getProperties().map((function(t){return t.__setParentTarget(g)}))}},destroy:function(){[t,e].forEach((function(t){t.reset(),t.stopListening()})),n&&n.remove(),[t,e,n].forEach((function(t){return{}})),this.em={},this.config={},this.builtIn={},this.model={}}})}},4406:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>U,evAll:()=>V,evCustom:()=>z,evPfx:()=>H});var r=n(4942),i=n(9050),o=n(3821),a=n(6409);const s={stylePrefix:'trt-',appendTo:'',optionsTarget:[{value:!1},{value:'_blank'}]};var l=n(5671),c=n(3144),u=n(7326),f=n(9340),h=n(2963),d=n(1120),p=n(9384),g=n(885),v=n(2316),m=n.n(v),y=n(3168);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,l.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,u.Z)(t),"events",{}),(0,r.Z)((0,u.Z)(t),"appendInput",!0);var o=i.config,a=void 0===o?{}:o,s=(0,u.Z)(t),c=s.model,f=s.eventCapture,h=c.target,d=c.attributes.type;t.config=a,t.em=a.em,t.pfx=a.stylePrefix||'',t.ppfx=a.pStylePrefix||'',t.target=h;var p=(0,u.Z)(t),v=p.ppfx;return t.clsField="".concat(v,"field ").concat(v,"field-").concat(d),[['change:value',t.onValueChange],['remove',t.removeView]].forEach((function(e){var n=(0,g.Z)(e,2),r=n[0],i=n[1];c.off(r,i),t.listenTo(c,r,i)})),c.view=(0,u.Z)(t),t.listenTo(c,'change:label',t.render),t.listenTo(c,'change:placeholder',t.rerender),t.events={},f.forEach((function(e){return t.events[e]='onChange'})),t.delegateEvents(),t.init(),t}return(0,c.Z)(n,[{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"templateLabel",value:function(){var t=this.ppfx,e=this.getLabel();return"
").concat(e,"
")}},{key:"templateInput",value:function(){var t=this.clsField;return"
")}},{key:"getClbOpts",value:function(){return{component:this.target,trait:this.model,elInput:this.getInputElem()}}},{key:"removeView",value:function(){this.remove(),this.removed()}},{key:"init",value:function(){}},{key:"removed",value:function(){}},{key:"onRender",value:function(){}},{key:"onUpdate",value:function(){}},{key:"onEvent",value:function(){}},{key:"onChange",value:function(t){var e=this.getInputElem();e&&!(0,i.isUndefined)(e.value)&&this.model.set('value',e.value),this.onEvent(w(w({},this.getClbOpts()),{},{event:t}))}},{key:"getValueForTarget",value:function(){return this.model.get('value')}},{key:"setInputValue",value:function(t){var e=this.getInputElem();e&&(e.value=t)}},{key:"onValueChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n.fromTarget)this.setInputValue(t.get('value')),this.postUpdate();else{var r=this.getValueForTarget();t.setTargetValue(r,n)}}},{key:"renderLabel",value:function(){var t=this.$el,e=this.target,n=this.getLabel(),r=this.templateLabel(e);this.createLabel&&(r=this.createLabel({label:n,component:e,trait:this})||''),t.find('[data-label]').append(r)}},{key:"getLabel",value:function(){var t=this.em,e=this.model.attributes,n=e.label,r=e.name;return t.t("traitManager.traits.labels.".concat(r))||(0,y.capitalize)(n||r).replace(/-/g,' ')}},{key:"getComponent",value:function(){return this.target}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.em,e=this.model,n=e,r=e.attributes.name,o=n.get('placeholder')||n.get('default')||'',a=n.get('type')||'text',s=n.get('min'),l=n.get('max'),c=this.getModelValue(),u=x("")),f=t.t("traitManager.traits.attributes.".concat(r))||{};u.attr(f),(0,i.isUndefined)(c)||(n.set({value:c},{silent:!0}),u.prop('value',c)),s&&u.prop('min',s),l&&u.prop('max',l),this.$input=u}return this.$input.get(0)}},{key:"getInputElem",value:function(){var t=this.input,e=this.$input;return t||e&&e.get&&e.get(0)||this.getElInput()}},{key:"getModelValue",value:function(){var t,e=this.model,n=this.target,r=e.get('name');if(e.get('changeProp'))t=n.get(r);else{var o=n.get('attributes');t=e.get('value')||o[r]}return(0,i.isUndefined)(t)?'':t}},{key:"getElInput",value:function(){return this.elInput}},{key:"renderField",value:function(){var t=this.$el,e=this.appendInput,n=this.model,r=t.find('[data-input]'),o=r[r.length-1],a=n.el;a||(a=this.createInput?this.createInput(this.getClbOpts()):this.getInputEl()),(0,i.isString)(a)?(o.innerHTML=a,this.elInput=o.firstChild):(e?o.appendChild(a):o.insertBefore(a,o.firstChild),this.elInput=a),n.el=this.elInput}},{key:"hasLabel",value:function(){var t=this.model.attributes.label;return!this.noLabel&&!1!==t}},{key:"rerender",value:function(){this.model.el=null,this.render()}},{key:"postUpdate",value:function(){this.onUpdate(this.getClbOpts())}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.ppfx,r=this.model.attributes,o=r.type,a=r.id,s=this.hasLabel&&this.hasLabel(),l="".concat(e,"trait");this.$input=null;var c="
\n ").concat(s?"
"):'',"\n
\n ").concat(this.templateInput?(0,i.isFunction)(this.templateInput)?this.templateInput(this.getClbOpts()):this.templateInput:'',"\n
\n
");return t.empty().append(c),s&&this.renderLabel(),this.renderField(),this.el.className="".concat(l,"__wrp ").concat(l,"__wrp-").concat(a),this.postUpdate(),this.onRender(this.getClbOpts()),this}}]),n}(m().View);function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}O.prototype.eventCapture=['change'];var S=function(t){(0,f.Z)(n,t);var e=C(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;(0,l.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,u.Z)(t),"reuseView",!0),t.itemsView=o;var a=i.config||{},s=a.stylePrefix||'',c=i.editor;return t.config=a,t.em=c,t.pfx=s,t.ppfx=a.pStylePrefix||'',t.className="".concat(s,"traits"),t.listenTo(c,'component:toggled',t.updatedCollection),t.updatedCollection(),t}return(0,c.Z)(n,[{key:"updatedCollection",value:function(){var t=this.ppfx,e=this.className,n=this.em.getSelected();this.el.className="".concat(e," ").concat(t,"one-bg ").concat(t,"two-color"),this.collection=n?n.get('traits'):[],this.render()}}]),n}(p.Z);function P(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}O.prototype.itemView=O;var _=m().$,T=function(t){(0,f.Z)(n,t);var e=P(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,l.Z)(this,n),(t=e.call(this,r)).listenTo(t.model,'change:options',t.rerender),t}return(0,c.Z)(n,[{key:"templateInput",value:function(){var t=this.ppfx,e=this.clsField;return"
\n
\n
\n
\n
\n
")}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.model,e=this.em,n=t.get('name'),r=t.get('options')||[],o=[],a='',this.$input=_(a);var s=t.getTargetValue(),l=o.indexOf(s)>=0?s:t.get('default');!(0,i.isUndefined)(l)&&this.$input.val(l)}return this.$input.get(0)}}]),n}(O);function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var j=function(t){(0,f.Z)(n,t);var e=E(n);function n(){var t;(0,l.Z)(this,n);for(var i=arguments.length,o=new Array(i),a=0;a\n \n ")}},{key:"onChange",value:function(){var t=this.getInputElem().checked;this.model.set('value',this.getCheckedValue(t))}},{key:"getCheckedValue",value:function(t){var e=t,n=this.model.attributes,r=n.valueTrue,o=n.valueFalse;return e&&!(0,i.isUndefined)(r)&&(e=r),e||(0,i.isUndefined)(o)||(e=o),e}},{key:"getInputEl",value:function(){for(var t=!this.$input,e=arguments.length,n=new Array(e),r=0;r").concat(a,"")}}]),n}(O);function F(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function B(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(s,n);var r=this.config,o=new a.Z;this.model=o;var l=this.em,c=r.pStylePrefix;this.types=B({},t),c&&(r.stylePrefix="".concat(c).concat(r.stylePrefix));var u=(0,i.debounce)((function(){return e.__upSel()}));o.listenTo(l,'component:toggled',u);var f=(0,i.debounce)((function(){return e.__onUp()}));return o.listenTo(l,'trait:update',f),this},__upSel:function(){this.select(this.em.getSelected())},__onUp:function(){this.select(this.getSelected())},select:function(t){var e=t?t.getTraits():[];this.model.set({component:t,traits:e}),this.__trgCustom()},getSelected:function(){return this.model.get('component')||null},getCurrent:function(){return this.model.get('traits')||[]},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},postRender:function(){this.__appendTo()},getTraitsViewer:function(){return this.view},addType:function(t,e){var n=this.getType('text');this.types[t]=n.extend(e)},getType:function(t){return this.getTypes()[t]},getTypes:function(){return this.types},render:function(){var t=this.view,e=this.getConfig(),n=t&&t.el;return t=new S({el:n,collection:[],editor:e.em,config:e},this.getTypes()),this.view=t,t.el},destroy:function(){this.__destroy()}})}},9960:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(2982),i=n(4942),o=n(3410),a=n.n(o),s=n(9050);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=c(c({},o),h),t=n.em,this.em=t,n._disable&&(n=c(c({},n),{},{maximumStackLength:0}));var d=!0;return(e=new(a())(c({track:!0,register:[]},n))).changeUndoType('change',{condition:function(t){var e=t.get('_undo');if(e){var n=t.get('_undoexc');if((0,s.isArray)(n)&&u(t).some((function(t){return n.indexOf(t)>=0})))return!1;if((0,s.isBoolean)(e))return!0;if((0,s.isArray)(e)&&u(t).some((function(t){return e.indexOf(t)>=0})))return!0}return!1},on:function(t,e,n){!i&&(i=t.previousAttributes());var r=n||e||{};if(r.noUndo&&setTimeout((function(){i=null})),!l(r)){var o=t.toJSON({fromUndo:d}),a={object:t,before:i,after:o};if(i=null,!(0,s.isEmpty)(o))return a}}}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:void 0,after:t,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:t,after:void 0,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('reset',{undo:function(t,e){t.reset(e,{fromUndo:d})},redo:function(t,e,n){t.reset(n,{fromUndo:d})},on:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l(e)&&f.isRegistered(t))return{object:t,before:e.previousModels,after:(0,r.Z)(t.models),options:c(c({},e),{},{fromUndo:d})}}}),e.on('undo redo',(function(){t.trigger('change:canvasOffset'),t.getSelectedAll().map((function(t){return t.trigger('rerender:layer')}))})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},postLoad:function(){n.trackSelection&&t&&this.add(t.get('selected'))},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.undo(n),this},undoAll:function(){return e.undoAll(),this},redo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.redo(n),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable('undo')},hasRedo:function(){return e.isAvailable('redo')},isRegistered:function(t){return!!this.getInstance().objectRegistry.isRegistered(t)},getStack:function(){return e.stack},getStackGroup:function(){var t=[],e=[];return this.getStack().forEach((function(n){var r=n.get('magicFusionIndex');e.indexOf(r)<0&&(e.push(r),t.push(n))})),t},skip:function(t){this.stop(),t(),this.start()},getGroupedStack:function(){var t={},e=this.getStack();return e.forEach((function(e,n){var r=e.get('magicFusionIndex'),i=function(t,e){var n=t.attributes,r=n.type,i=n.after,o=n.before,a=n.object,s=n.options;return{index:e,type:r,after:i,before:o,object:a,options:void 0===s?{}:s}}(e,n);t[r]?t[r].push(i):t[r]=[i]})),Object.keys(t).map((function(e){var n=t[e];return{index:n[n.length-1].index,actions:n,labels:(0,s.unique)(n.reduce((function(t,e){var n,r=null===(n=e.options)||void 0===n?void 0:n.action;return r&&t.push(r),t}),[]))}}))},goToGroup:function(t){var e=this;if(t){var n=this.getPointer(),r=t.index-n;(0,s.times)(Math.abs(r),(function(){e[r<0?'undo':'redo'](!1)}))}},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,i].forEach((function(t){return{}})),this.em={}}}}},1981:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var r=n(4942),i=n(5671),o=n(3144),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.Z)(this,t),this.opts={container:null,onStart:null,onDrag:null,onEnd:null,setPosition:null,getPosition:null,guidesStatic:null,guidesTarget:null,snapOffset:5,doc:0,scale:1},(0,a.bindAll)(this,'drag','stop','keyHandle','handleScroll'),this.setOptions(e),this.delta={x:0,y:0},this}return(0,o.Z)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=c(c({},this.opts),t)}},{key:"toggleDrag",value:function(t){var e=this.getDocumentEl(),n=this.getContainerEl(),r=this.getWindowEl(),i=t?'on':'off',o={on:s.on,off:s.off};o[i](n,'mousemove dragover',this.drag),o[i](e,'mouseup dragend touchend',this.stop),o[i](e,'keydown',this.keyHandle),o[i](r,'scroll',this.handleScroll)}},{key:"handleScroll",value:function(){var t=this.lastScroll,e=this.delta,n=this.getScrollInfo(),r={x:n.x-t.x,y:n.y-t.y};this.move(e.x+r.x,e.y+r.y),this.lastScrollDiff=r}},{key:"start",value:function(t){var e=this.opts,n=e.onStart;this.toggleDrag(1),this.startPointer=this.getPointerPos(t),this.guidesStatic=(0,a.result)(e,'guidesStatic')||[],this.guidesTarget=(0,a.result)(e,'guidesTarget')||[],(0,a.isFunction)(n)&&n(t,this),this.startPosition=this.getStartPosition(),this.lastScrollDiff={x:0,y:0},this.globScrollDiff={x:0,y:0},this.drag(t)}},{key:"drag",value:function(t){var e=this,n=this.opts,r=this.lastScrollDiff,i=this.globScrollDiff,o=n.onDrag,s=this.startPointer,l=this.getPointerPos(t),u={x:i.x+r.x,y:i.y+r.y};this.globScrollDiff=u;var f={x:l.x-s.x+u.x,y:l.y-s.y+u.y};this.lastScrollDiff={x:0,y:0};var h=this.lockedAxis;'x'===(h=t.shiftKey?!h&&this.detectAxisLock(f.x,f.y):null)?f.x=s.x:'y'===h&&(f.y=s.y);var d=function(r){['x','y'].forEach((function(t){return r[t]=r[t]*(0,a.result)(n,'scale')})),e.delta=r,e.move(r.x,r.y),(0,a.isFunction)(o)&&o(t,e)},p=c({},f);if(this.currentPointer=l,this.lockedAxis=h,this.lastScroll=this.getScrollInfo(),d(f),this.guidesTarget.length){var g=this.snapGuides(p),v=g.newDelta,m=g.trgX,y=g.trgY;(m||y)&&d(v)}0===t.which&&this.stop(t)}},{key:"snapGuides",value:function(t){var e=this,n=t,r=this.trgX,i=this.trgY;return this.guidesTarget.forEach((function(n){n.x&&e.trgX||n.y&&e.trgY||(n.active=0,e.guidesStatic.forEach((function(o){if(!(n.y&&o.x||n.x&&o.y)){var s=n.y&&o.y,l=s?'y':'x',c=n[l],u=o[l],f=t[l],h=s?i:r;if(e.isPointIn(c,u)&&(0,a.isUndefined)(h)){var d=f-(c-u);e.setGuideLock(n,d)}}})))})),r=this.trgX,i=this.trgY,['x','y'].forEach((function(r){var i=r.toUpperCase(),o=e["trg".concat(i)];o&&!e.isPointIn(t[r],o.lock)&&(e.setGuideLock(o,null),o=null),o&&!(0,a.isUndefined)(o.lock)&&(n[r]=o.lock)})),{newDelta:n,trgX:this.trgX,trgY:this.trgY}}},{key:"isPointIn",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.offset,i=r||this.opts.snapOffset;return t>=e&&t<=e+i||t<=e&&t>=e-i}},{key:"setGuideLock",value:function(t,e){var n=(0,a.isUndefined)(t.x)?'Y':'X',r="trg".concat(n);return null!==e?(t.active=1,t.lock=e,this[r]=t):(delete t.active,delete t.lock,delete this[r]),t}},{key:"stop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.delta,r=e.cancel,i=r?0:n.x,o=r?0:n.y;this.toggleDrag(),this.lockedAxis=null,this.move(i,o,1);var s=this.opts.onEnd;(0,a.isFunction)(s)&&s(t,this,{cancelled:r})}},{key:"keyHandle",value:function(t){(0,s.isEscKey)(t)&&this.stop(t,{cancel:1})}},{key:"move",value:function(t,e,n){var r=this.el,i=this.opts,o=this.startPosition;if(o){var s=i.setPosition,l=o.x+t,c=o.y+e;this.position={x:l,y:c,end:n},(0,a.isFunction)(s)&&s(this.position),r&&(r.style.left="".concat(l,"px"),r.style.top="".concat(c,"px"))}}},{key:"getContainerEl",value:function(){var t=this.opts.container;return t?[t]:this.getDocumentEl()}},{key:"getWindowEl",value:function(){return this.getContainerEl().map((function(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}))}},{key:"getDocumentEl",value:function(t){var e=this.opts.doc;if(t=t||this.el,!this.docs){var n=[document];t&&n.push(t.ownerDocument),e&&n.push(e),this.docs=n}return this.docs}},{key:"getPointerPos",value:function(t){var e=this.opts.getPointerPosition,n=(0,s.getPointerEvent)(t);return e?e(t):{x:n.clientX,y:n.clientY}}},{key:"getStartPosition",value:function(){var t=this.el,e=this.opts.getPosition,n={x:0,y:0};return(0,a.isFunction)(e)?n=e():t&&(n={x:parseFloat(t.style.left),y:parseFloat(t.style.top)}),n}},{key:"getScrollInfo",value:function(){var t=this.opts.doc,e=t&&t.body;return{y:e?e.scrollTop:0,x:e?e.scrollLeft:0}}},{key:"detectAxisLock",value:function(t,e){var n=t,r=e,i=Math.abs(n),o=Math.abs(r);return r>=i||r<=-i?'x':n>o||n<-o?'y':void 0}}]),t}()},290:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>pt});var r='undefined'!=typeof document?document:null,i='undefined'!=typeof window?window:null,o=Array.prototype,a=o.filter,s=o.indexOf,l=o.map,c=o.push,u=o.reverse,f=o.slice,h=o.splice,d=/^#[\w-]*$/,p=/^\.[\w-]*$/,g=/<.+>/,v=/^\w+$/;function m(t,e){return void 0===e&&(e=r),p.test(t)?e.getElementsByClassName(t.slice(1)):v.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function y(t,e){if(void 0===e&&(e=r),t){if(t.__cash)return t;var n=t;if(T(t)){if(e.__cash&&(e=e[0]),!(n=d.test(t)?e.getElementById(t.slice(1)):g.test(t)?ft(t):m(t,e)))return}else if(_(t))return this.ready(t);(n.nodeType||n===i)&&(n=[n]),this.length=n.length;for(var o=0,a=this.length;o=0})):n.value=i}))},w.clone=function(){return this.map((function(t,e){return e.cloneNode(!0)}))},w.detach=function(){return this.each((function(t,e){e.parentNode&&e.parentNode.removeChild(e)}))};var lt,ct=/^\s*<(\w+)[^>]*>/,ut=/^\s*<(\w+)\s*\/?>(?:<\/\1>)?\s*$/;function ft(t){if(function(){if(!lt){var t=r.createElement('table'),e=r.createElement('tr');lt={'*':r.createElement('div'),tr:r.createElement('tbody'),td:e,th:e,thead:t,tbody:t,tfoot:t}}}(),!T(t))return[];if(ut.test(t))return[r.createElement(RegExp.$1)];var e=ct.test(t)&&RegExp.$1,n=lt[e]||lt['*'];return n.innerHTML=t,b(n.childNodes).detach().get()}function ht(t,e,n){if(void 0!==e){var r=T(e);!r&&e.length?C(e,(function(e){return ht(t,e,n)})):C(t,r?function(t){t.insertAdjacentHTML(n?'afterbegin':'beforeend',e)}:function(t,r){return function(t,e,n){n?t.insertBefore(e,t.childNodes[0]):t.appendChild(e)}(t,r?e.cloneNode(!0):e,n)})}}b.parseHTML=ft,w.empty=function(){var t=this[0];if(t)for(;t.firstChild;)t.removeChild(t.firstChild);return this},w.append=function(){var t=this;return C(arguments,(function(e){ht(t,e)})),this},w.appendTo=function(t){return ht(b(t),this),this},w.html=function(t){if(void 0===t)return this[0]&&this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t,n){n.innerHTML=e}))},w.insertAfter=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n.nextSibling)}))})),this},w.after=function(){var t=this;return C(u.apply(arguments),(function(e){u.apply(b(e).slice()).insertAfter(t)})),this},w.insertBefore=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n)}))})),this},w.before=function(){var t=this;return C(arguments,(function(e){b(e).insertBefore(t)})),this},w.prepend=function(){var t=this;return C(arguments,(function(e){ht(t,e,!0)})),this},w.prependTo=function(t){return ht(b(t),u.apply(this.slice()),!0),this},w.remove=function(){return this.detach().off()},w.replaceWith=function(t){var e=this;return this.each((function(n,r){var i=r.parentNode;if(i){var o=n?b(t).clone():b(t);if(!o[0])return e.remove(),!1;i.replaceChild(o[0],r),b(o[0]).after(o.slice(1))}}))},w.replaceAll=function(t){return b(t).replaceWith(this),this},w.text=function(t){return void 0===t?this[0]?this[0].textContent:'':this.each((function(e,n){n.textContent=t}))};var dt=r&&r.documentElement;w.offset=function(){var t=this[0];if(t){var e=t.getBoundingClientRect();return{top:e.top+i.pageYOffset-dt.clientTop,left:e.left+i.pageXOffset-dt.clientLeft}}},w.offsetParent=function(){return b(this[0]&&this[0].offsetParent)},w.position=function(){var t=this[0];if(t)return{left:t.offsetLeft,top:t.offsetTop}},w.children=function(t){var e=[];return this.each((function(t,n){c.apply(e,n.children)})),e=b(M(e)),t?e.filter((function(e,n){return P(n,t)})):e},w.contents=function(){var t=[];return this.each((function(e,n){c.apply(t,'IFRAME'===n.tagName?[n.contentDocument]:n.childNodes)})),b(t.length&&M(t))},w.find=function(t){for(var e=[],n=0,r=this.length;n{"use strict";n.d(e,{G1:()=>o,Mx:()=>a,L_:()=>s,sE:()=>l,FW:()=>c,pn:()=>u,dL:()=>f,$Q:()=>h,R3:()=>d,ut:()=>p,rw:()=>g,t3:()=>v,SJ:()=>m});var r=n(9050),i='attributes',o='transitionend oTransitionEnd transitionend webkitTransitionEnd',a=function(t){return t&&9===t.nodeType},s=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l=function(t,e){return t.querySelectorAll(e)},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t&&t.setAttribute&&(0,r.each)(e,(function(e,n){return t.setAttribute(n,e)}))},u=function(t){return t&&!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},f=function(t,e){t.parentNode.replaceChild(e,t)},h=function(t,e,n){var i=t.childNodes,o=i.length,a=(0,r.isUndefined)(n)?o:n;(0,r.isString)(e)&&(t.insertAdjacentHTML('beforeEnd',e),e=t.lastChild,t.removeChild(e)),a>=o?t.appendChild(e):t.insertBefore(e,i[a])},d=function(t,e){return h(t,e)},p=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2?arguments[2]:void 0,i=document.createElement(t);return e&&(0,r.each)(e,(function(t,e){return i.setAttribute(e,t)})),n&&((0,r.isString)(n)?i.innerHTML=n:i.appendChild(n)),i},g=function(t){return document.createTextNode(t)},v=function(t,e){var n,r=t.type;try{n=new window[e](r,t)}catch(t){(n=document.createEvent(e)).initEvent(r,!0,!0)}return n._parentEvent=t,0===r.indexOf('key')&&(n.keyCodeVal=t.keyCode,['keyCode','which'].forEach((function(t){Object.defineProperty(n,t,{get:function(){return this.keyCodeVal}})}))),n},m=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Array.isArray(e)?e:[e];n.forEach((function(e){var n=e.tag||'div',o=e[i]||{},a=document.createElement(n);(0,r.each)(o,(function(t,e){a.setAttribute(e,t)})),t.appendChild(a)}))}},7644:(t,e,n)=>{"use strict";n.d(e,{Z:()=>m});var r=n(1002);const i=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){return e.reject(n)}))}))};const o=function(t){return new this((function(e,n){if(!t||void 0===t.length)return n(new TypeError((0,r.Z)(t)+' '+t+' is not iterable(cannot read property Symbol(Symbol.iterator))'));var i=Array.prototype.slice.call(t);if(0===i.length)return e([]);var o=i.length;function a(t,n){if(n&&('object'===(0,r.Z)(n)||'function'==typeof n)){var s=n.then;if('function'==typeof s)return void s.call(n,(function(e){a(t,e)}),(function(n){i[t]={status:'rejected',reason:n},0==--o&&e(i)}))}i[t]={status:'fulfilled',value:n},0==--o&&e(i)}for(var s=0;s{"use strict";n.d(e,{Z:()=>i});var r=n(3168);function i(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{"use strict";n.r(e),n.d(e,{default:()=>C});var r=n(4942),i=n(1981),o=n(2316),a=n.n(o),s=n(9050),l=n(3168);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=this.em,c=this.itemSel,u=this.containerSel,f=this.plh,h=this.getContainerEl(a.container),d=this.getDocuments(t);this.dropModel=null,this.target=null,this.prevTarget=null,this.moved=0,t&&!this.matches(t,"".concat(c,", ").concat(u))&&(t=this.closest(t,c)),this.sourceEl=t,f||(this.plh=this.createPlaceholder(),h.appendChild(this.plh)),t&&((o=this.getSourceModel(t))&&o.set&&o.set('status','freezed'),this.srcModel=o),(0,l.on)(h,'mousemove dragover',this.onMove),(0,l.on)(d,'mouseup dragend touchend',this.endMove),(0,l.on)(d,'keydown',this.rollback),this.onStart({sorter:this,target:o,parent:o&&(null===(e=(n=o).parent)||void 0===e?void 0:e.call(n)),index:o&&(null===(r=(i=o).index)||void 0===r?void 0:r.call(i))}),null==s||s.clearSelection(),this.toggleSortCursor(1),null==s||s.trigger('sorter:drag:start',t,o)},getTargetModel:function(t){var e=t||this.target;return f(e).data('model')},getSourceModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.target,i=n.avoidChildren,o=void 0===i?1:i,a=this.em,s=this.sourceEl,l=t||s,c=this.dropModel,h=this.dropContent,d=function(t){return t&&r&&t.opt&&t.opt.avoidChildren&&e.isTextableActive(t,r)};if(h&&a){if(d(c)&&(c=null),!c){var p=a.get('DomComponents').getComponents(),g={avoidChildren:o,avoidStore:1,avoidUpdateStyle:1},v=p.add(h,u(u({},g),{},{temporary:1}));if(c=(c=p.remove(v,g))instanceof Array?c[0]:c,this.dropModel=c,d(c))return this.getSourceModel(l,{target:r,avoidChildren:0})}return c}return l&&f(l).data('model')},selectTargetModel:function(t,e){if(!(t instanceof a().Collection||e&&e===t)){var n=this.targetModel;n&&n!==this.srcModel&&n.set('status',''),t&&t.set&&(t.set('status','selected-parent'),this.targetModel=t)}},onMove:function(t){var e=t,n=this.em,r=this.onMoveClb,i=this.plh,o=this.customTarget;this.moved=1;var a=i.style.display;a&&'none'!==a||(i.style.display='block');var l=this.offset(this.el);this.elT=this.wmargin?Math.abs(l.top):l.top,this.elL=this.wmargin?Math.abs(l.left):l.left;var c=t.pageY-this.elT+this.el.scrollTop,u=t.pageX-this.elL+this.el.scrollLeft;if(this.canvasRelative&&n){var h=n.get('Canvas').getMouseRelativeCanvas(t,{noScroll:1});u=h.x,c=h.y}this.rX=u,this.rY=c,this.eventMove=t;var d=this.getSourceModel(),p=o?o({sorter:this,event:t}):t.target,g=this.dimsFromTarget(p,u,c),v=this.target,m=v&&this.getTargetModel(v);if(this.selectTargetModel(m,d),m||(i.style.display='none'),v){this.lastDims=g;var y=this.findPosition(g,u,c);this.isTextableActive(d,m)?(this.activeTextModel=m,i.style.display='none',this.lastPos=y,this.updateTextViewCursorPosition(e)):(this.disableTextable(),this.activeTextModel=null,this.lastPos&&this.lastPos.index==y.index&&this.lastPos.method==y.method||(this.movePlaceholder(this.plh,g,y,this.prevTargetDim),this.$plh||(this.$plh=f(this.plh)),this.canvasRelative||(this.offTop&&this.$plh.css('top','+='+this.offTop+'px'),this.offLeft&&this.$plh.css('left','+='+this.offLeft+'px')),this.lastPos=y)),(0,s.isFunction)(r)&&r({event:t,target:d,parent:m,index:y.index+('after'==y.method?1:0)}),n&&n.trigger('sorter:drag',{target:v,targetModel:m,sourceModel:d,dims:g,pos:y,x:u,y:c})}},isTextableActive:function(t,e){return t&&t.get&&t.get('textable')&&e&&e.is('text')},disableTextable:function(){var t=this.activeTextModel;t&&t.getView().disableEditing(),this.setContentEditable(t,!1)},isInFlow:function(t,e){if(!t)return!1;e=e||document.body;var n=t;return n.offsetHeight,!!this.styleInFlow(n,e)},styleInFlow:function(t,e){if(!(0,l.isTextNode)(t)){var n=t.style||{},r=f(t),i=e&&f(e);if(!n.overflow||'visible'===n.overflow){var o=r.css('float');if(!(o&&'none'!==o||i&&'flex'==i.css('display')&&'column'!==i.css('flex-direction'))){switch(n.position){case'static':case'relative':case'':break;default:return}switch(t.tagName){case'TR':case'TBODY':case'THEAD':case'TFOOT':return!0}switch(r.css('display')){case'block':case'list-item':case'table':case'flex':return!0}}}}},validTarget:function(t,e){var n=this.getTargetModel(t),r=this.getSourceModel(e,{target:n}),i={valid:!0,src:e=r&&r.view&&r.view.el,srcModel:r,trg:t=n&&n.view&&n.view.el,trgModel:n};if(!e||!t)return i.valid=!1,i;var o=r.get('draggable');if((0,s.isFunction)(o)){var l=o(r,n);i.dragInfo=l,i.draggable=l,o=l}else o=o instanceof Array?o.join(', '):o,i.dragInfo=o,o=(0,s.isString)(o)?this.matches(t,o):o,i.draggable=o;var c=n.get('droppable');if((0,s.isFunction)(c)){var u=c(r,n);i.droppable=u,i.dropInfo=u,c=u}else c=(c=c instanceof a().Collection?1:c)instanceof Array?c.join(', '):c,i.dropInfo=c,c=(0,s.isString)(c)?this.matches(e,c):c,c=o&&this.isTextableActive(r,n)?1:c,i.droppable=c;return c&&o||(i.valid=!1),i},dimsFromTarget:function(t,e,n){var r=this.em,i=[];if(!t)return i;if(this.matches(t,"".concat(this.itemSel,", ").concat(this.containerSel))||(t=this.closest(t,this.itemSel)),this.draggable instanceof Array&&(t=this.closest(t,this.draggable.join(','))),!t)return i;if(this.prevTarget&&this.prevTarget!=t&&(this.prevTarget=null),!this.prevTarget){this.targetP=this.closest(t,this.containerSel);var o=this.validTarget(t);if(r&&r.trigger('sorter:drag:validation',o),!o.valid&&this.targetP)return this.dimsFromTarget(this.targetP,e,n);this.prevTarget=t,this.prevTargetDim=this.getDim(t),this.cacheDimsP=this.getChildrenDim(this.targetP),this.cacheDims=this.getChildrenDim(t)}if(this.prevTarget==t&&(i=this.cacheDims),this.target=this.prevTarget,this.nearBorders(this.prevTargetDim,e,n)||!this.nested&&!this.cacheDims.length){var a=this.targetP;a&&this.validTarget(a).valid&&(i=this.cacheDimsP,this.target=a)}return this.lastPos=null,i},getTargetFromEl:function(t){var e,n=t,r=this.targetPrev,i=this.em,o=this.containerSel,a=this.itemSel;if(this.matches(n,"".concat(a,", ").concat(o))||(n=this.closest(n,a)),this.draggable instanceof Array&&(n=this.closest(n,this.draggable.join(','))),r&&r!=n&&(this.targetPrev=''),!this.targetPrev){e=this.closest(n,o);var s=this.validTarget(n);if(i&&i.trigger('sorter:drag:validation',s),!s.valid&&e)return this.getTargetFromEl(e);this.targetPrev=n}return this.nearElBorders(n)&&(e=this.closest(n,o))&&this.validTarget(e).valid&&(n=e),n},nearElBorders:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body,r=this.getCurrentPos(),i=r.x,o=r.y,a=e.top+n.scrollTop,s=e.left+n.scrollLeft,l=e.width,c=e.height;if(oa+c-10||is+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,r,i,o=this.em,a=this.canvasRelative,s=o&&o.get('Canvas'),l=s?s.getElementOffsets(t):{};if(a&&o){var c=s.getElementPos(t,{noScroll:1});e=c.top,n=c.left,r=c.height,i=c.width}else{var u=this.offset(t);e=this.relative?t.offsetTop:u.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:u.left-(this.wmargin?-1:1)*this.elL,r=t.offsetHeight,i=t.offsetWidth}return{top:e,left:n,height:r,width:i,offsets:l}},getChildrenDim:function(t){var e=this,n=[];if(!t)return n;var r=this.getTargetModel(t);if(r&&r.view&&!this.ignoreViewChildren){var i=r.getCurrentView?r.getCurrentView():r.view;t=i.getChildrenContainer()}return(0,s.each)(t.children,(function(r,i){var o=(0,l.getModel)(r,f),a=o&&o.index?o.index():i;if((0,l.isTextNode)(r)||e.matches(r,e.itemSel)){var s=e.getDim(r),c=e.direction;c='v'==c||'h'!=c&&e.isInFlow(r,t),s.dir=c,s.el=r,s.indexEl=a,n.push(s)}})),n},nearBorders:function(t,e,n){var r=0,i=this.borderOffset,o=e||0,a=n||0,s=t.top,l=t.left,c=t.height,u=t.width;return(s+i>a||a>s+c-i||l+i>o||o>l+u-i)&&(r=1),!!r},findPosition:function(t,e,n){for(var r={index:0,indexEl:0,method:'before'},i=0,o=0,a=0,s=0,l=0,c=0,u=0,f=0,h=t.length;fo||a&&l>=a||i&&g+mx&&(w.at=d-1))}r&&(k?(delete w.at,i=v.getView().insertComponent(r,w)):i=g.add(r,w)),this.dropContent=null,this.prevTarget=null}else if(o){var C=p.dropInfo||(null==v?void 0:v.get('droppable')),S=p.dragInfo||(null==m?void 0:m.get('draggable'));!g&&h.push('Target collection not found'),!b&&C&&h.push("Target is not droppable, accepts [".concat(C,"]")),!y&&S&&h.push("Component not draggable, acceptable by [".concat(S,"]")),o.logWarning('Invalid target position',{errors:h,model:m,context:'sorter',target:v})}return null==o||o.trigger('sorter:drag:end',{targetCollection:g,modelToDrop:r,warns:h,validResult:p,dst:t,srcEl:u}),i},rollback:function(t){(0,l.off)(this.getDocuments(),'keydown',this.rollback),27==(t.which||t.keyCode)&&(this.moved=0,this.endMove())}});var p=n(5671),g=n(3144);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Z)(this,t),this.setOptions(e),(0,s.bindAll)(this,'handleKeyDown','handleMouseDown','move','stop'),this}return(0,g.Z)(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,s.defaults)(t,y),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||'',n=t.appendTo||document.body,r=this.container;for(r||((r=document.createElement('div')).className="".concat(e,"resizer-c"),n.appendChild(r),this.container=r);r.firstChild;)r.removeChild(r.firstChild);var i={};for(var o in['tl','tc','tr','cl','cr','bl','bc','br'].forEach((function(e){return i[e]=t[e]?function(t,e){var n=e.prefix||'',r=document.createElement('i');return r.className=n+'resizer-h '+n+'resizer-h-'+t,r.setAttribute('data-'+n+'handler',t),r}(e,t):''})),i){var a=i[o];a&&r.appendChild(a)}this.handlers=i,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd,this.onUpdateContainer=t.onUpdateContainer}},{key:"toggleFrames",value:function(t){if(this.opts.silentFrames){var e=document.querySelectorAll('iframe');(0,s.each)(e,(function(e){return e.style.pointerEvents=t?'none':''}))}}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getParentEl",value:function(){return this.el.parentElement}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.posFetcher||'';return n?n(t,e):b(t)}},{key:"focus",value:function(t){t&&t===this.el||(this.el=t,this.updateContainer({forceShow:1}),(0,l.on)(this.getDocumentEl(),'mousedown',this.handleMouseDown))}},{key:"blur",value:function(){this.container.style.display='none',this.el&&((0,l.off)(this.getDocumentEl(),'mousedown',this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this.getParentEl(),r=this.opts||{},i='data-'+r.prefix+'handler',o=this.getElementPos(e,{target:'el'}),a=this.getElementPos(n);this.handlerAttr=t.target.getAttribute(i),this.clickedHandler=t.target,this.startDim={t:o.top,l:o.left,w:o.width,h:o.height},this.rectDim={t:o.top,l:o.left,w:o.width,h:o.height},this.startPos={x:t.clientX,y:t.clientY},this.parentDim={t:a.top,l:a.left,w:a.width,h:a.height};var c=this.getDocumentEl();(0,l.on)(c,'mousemove',this.move),(0,l.on)(c,'keydown',this.handleKeyDown),(0,l.on)(c,'mouseup',this.stop),(0,s.isFunction)(this.onStart)&&this.onStart(t,{docs:c,config:r,el:e,resizer:this}),this.toggleFrames(1),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,r=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=r,this.delta={x:r.x-this.startPos.x,y:r.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,l.off)(n,'mousemove',this.move),(0,l.off)(n,'keydown',this.handleKeyDown),(0,l.off)(n,'mouseup',this.stop),this.updateRect(1),this.toggleFrames(),(0,s.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this.opts,r=this.rectDim,i=this.updateTarget,o=this.getSelectedHandler(),a=n.unitHeight,l=n.unitWidth,c=n.keyWidth,u=n.keyHeight;if((0,s.isFunction)(i))i(e,r,{store:t,selectedHandler:o,resizer:this,config:n});else{var f=e.style;f[c]=r.w+l,f[u]=r.h+a}this.updateContainer()}},{key:"updateContainer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.opts,n=this.container,r=this.el,i=n.style;!e.avoidContainerUpdate&&r&&t.forceShow&&(i.display='block'),this.onUpdateContainer({el:n,resizer:this,opts:m(m({},e),t)})}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler='',this.blur())}},{key:"calc",value:function(t){var e,n=this.opts||{},r=n.step,i=this.startDim,o=n.minDim,a=n.maxDim,s=t.delta.x,c=t.delta.y,u=this.parentDim.w,f=this.parentDim.h,h=this.opts.unitWidth,d=this.opts.unitHeight,p='%'===h?i.w/100*u:i.w,g='%'===d?i.h/100*f:i.h,v={t:0,l:0,w:p,h:g};if(t){var m=t.handlerAttr;~m.indexOf('r')&&(e='%'===h?(0,l.normalizeFloat)((p+s*r)/u*100,.01):(0,l.normalizeFloat)(p+s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('b')&&(e='%'===d?(0,l.normalizeFloat)((g+c*r)/f*100,.01):(0,l.normalizeFloat)(g+c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e),~m.indexOf('l')&&(e='%'===h?(0,l.normalizeFloat)((p-s*r)/u*100,.01):(0,l.normalizeFloat)(p-s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('t')&&(e='%'===d?(0,l.normalizeFloat)((g-c*r)/f*100,.01):(0,l.normalizeFloat)(g-c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e);var y=n.ratioDefault?!t.keys.shift:t.keys.shift;if(m.indexOf('c')<0&&y){var b=i.w/i.h;v.w/v.h>b?v.h=Math.round(v.w/b):v.w=Math.round(v.h*b)}return~m.indexOf('l')&&(v.l=i.w-v.w),~m.indexOf('t')&&(v.t=i.h-v.h),v}}}]),t}();const k={init:function(t){return new w(t)}};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{isDef:()=>c,hasWin:()=>u,getGlobal:()=>f,toLowerCase:()=>h,getUiClass:()=>g,isCommentNode:()=>_,isTaggableNode:()=>T,find:()=>E,escape:()=>j,deepMerge:()=>D,on:()=>y,off:()=>b,hasDnd:()=>C,upFirst:()=>k,matches:()=>p,getModel:()=>R,getElRect:()=>A,camelCase:()=>x,isTextNode:()=>P,getKeyCode:()=>Z,getKeyChar:()=>L,isEscKey:()=>N,isEnterKey:()=>I,getElement:()=>S,shallowDiff:()=>m,normalizeFloat:()=>O,getPointerEvent:()=>M,getUnitFromValue:()=>w,capitalize:()=>V,getViewEl:()=>U,setViewEl:()=>W,appendStyles:()=>v,isObject:()=>F,isEmptyObj:()=>B,isComponent:()=>H,createId:()=>$,isRule:()=>z});var r=n(1002),i=n(4942),o=n(2982),a=n(9050);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=(0,a.isArray)(e)?(0,o.Z)(e):[e];if(r.length){var i=r.shift();if(i&&(!n.unique||!document.querySelector("link[href=\"".concat(i,"\"]")))){var s=document,l=s.head,c=document.createElement('link');c.href=i,c.rel='stylesheet',n.prepand?l.insertBefore(c,l.firstChild):l.appendChild(c)}t(r)}},m=function(t,e){var n={},r=(0,a.keys)(e);for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],s=e[i];r.indexOf(i)>=0?o!==s&&(n[i]=s):n[i]=null}for(var l in e)e.hasOwnProperty(l)&&(0,a.isUndefined)(t[l])&&(n[l]=e[l]);return n},y=function(t,e,n,r){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=function(i){t.forEach((function(t){return t&&t.addEventListener(e[i],n,r)}))},o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var i=e.toString().split('.')[1];r=i?i.length:0}return r?parseFloat(t.toFixed(r)):t},C=function(t){return'draggable'in document.createElement('i')&&(t?t.get('Config').nativeDnD:1)},S=function(t){return(0,a.isElement)(t)||P(t)?t:t&&t.getEl?t.getEl():void 0},P=function(t){return t&&3===t.nodeType},_=function(t){return t&&8===t.nodeType},T=function(t){return t&&!P(t)&&!_(t)},E=function(t,e){var n=null;return t.some((function(r,i){return e(r,i,t)?(n=r,1):0})),n},j=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return"".concat(t).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/`/g,'`')},D=function t(){for(var e=l({},arguments.length<=0?void 0:arguments[0]),n=1;n0&&void 0!==arguments[0]?arguments[0]:16,e='',n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',r=n.length,i=0;i{var r,i,o;i=[n(9050),n(2316)],r=function(t,e){var n=Array.prototype.slice;function r(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return n.call(t,e)}function o(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,(function(t){return t in e})))}var a=function(){var e=!1,n=-1;function r(){n++,e=!0,t.defer((function(){e=!1}))}return function(){return e||r(),n}}();function s(){this.registeredObjects=[],this.cidIndexes=[]}function l(e,n,r,i){for(var o,a=0,s=n.length;at.maximumStackLength&&(t.shift(),t.pointer--)}}}s.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,(function(t){return this.registeredObjects[t]}),this).concat(this.registeredObjects)}};var d={add:{undo:function(t,e,n,r){t.remove(n,r)},redo:function(t,e,n,r){r.index&&(r.at=r.index),t.add(n,r)},on:function(e,n,r){return{object:n,before:void 0,after:e,options:t.clone(r)}}},remove:{undo:function(t,e,n,r){"index"in r&&(r.at=r.index),t.add(e,r)},redo:function(t,e,n,r){t.remove(e,r)},on:function(e,n,r){return{object:n,before:e,after:void 0,options:t.clone(r)}}},change:{undo:function(e,n,r,i){t.isEmpty(n)?t.each(t.keys(r),e.unset,e):(e.set(n),i&&i.unsetData&&i.unsetData.before&&i.unsetData.before.length&&t.each(i.unsetData.before,e.unset,e))},redo:function(e,n,r,i){t.isEmpty(r)?t.each(t.keys(n),e.unset,e):(e.set(r),i&&i.unsetData&&i.unsetData.after&&i.unsetData.after.length&&t.each(i.unsetData.after,e.unset,e))},on:function(e,n){var r=e.changedAttributes(),i=t.keys(r),o=t.pick(e.previousAttributes(),i),a=t.keys(o),s=(n||(n={})).unsetData={after:[],before:[]};return i.length!=a.length&&(i.length>a.length?t.each(i,(function(t){t in o||s.before.push(t)}),this):t.each(a,(function(t){t in r||s.after.push(t)}))),{object:e,before:o,after:r,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};function p(){}function g(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?g(e,t,r,i):g(e,n,t,r)}));switch(e){case 0:o(r,"undo","redo","on")&&t.all(t.pick(r,"undo","redo","on"),t.isFunction)&&(i[n]=r);break;case 1:i[n]&&t.isObject(r)&&(i[n]=t.extend({},i[n],r));break;case 2:delete i[n]}return this}p.prototype=d;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){c("undo",this.attributes)},redo:function(t){c("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new s,this.undoTypes=new p,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",(function(t,e){this.stack.setMaxLength(e)}),this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?r(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){h(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){l("on",arguments,this._addToStack,this)},unregister:function(){l("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){u("undo",this,this.stack,t)},undoAll:function(){u("undo",this,this.stack,!1,!0)},redo:function(t){u("redo",this,this.stack,t)},redoAll:function(){u("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer{var r,i,o;o='object'==typeof self&&self.self===self&&self||'object'==typeof n.g&&n.g.global===n.g&&n.g,r=[n(9050),n(290),e],i=function(t,e,n){o.Backbone=function(t,e,n,r){var i=t.Backbone,o=Array.prototype.slice;e.VERSION='1.3.3',e.$=r,e.noConflict=function(){return t.Backbone=i,this},e.emulateHTTP=!1,e.emulateJSON=!1;var a=function(t,e,r){switch(t){case 1:return function(){return n[e](this[r])};case 2:return function(t){return n[e](this[r],t)};case 3:return function(t,i){return n[e](this[r],l(t,this),i)};case 4:return function(t,i,o){return n[e](this[r],l(t,this),i,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[r]),n[e].apply(n,t)}}},s=function(t,e,r){n.each(e,(function(e,i){n[i]&&(t.prototype[i]=a(e,i,r))}))},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},f=/\s+/,h=function(t,e,r,i,o){var a,s=0;if(r&&'object'==typeof r){void 0!==i&&'context'in o&&void 0===o.context&&(o.context=i);for(a=n.keys(r);sthis.length&&(i=this.length),i<0&&(i+=this.length+1);var o,a,s=[],l=[],c=[],u=[],f={},h=e.add,d=e.merge,p=e.remove,g=!1,v=this.comparator&&null==i&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(a=0;a7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=('/'+this.root+'/').replace(Z,'/'),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||'/';return this.location.replace(e+'#'+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement('iframe'),this.iframe.src='javascript:0',this.iframe.style.display='none',this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash='#'+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent('on'+t,e)};if(this._usePushState?o('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe?o('hashchange',this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent('on'+t,e)};this._usePushState?t('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe&&t('hashchange',this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,(function(e){if(e.route.test(t))return e.callback(t),!0})))},navigate:function(t,e){if(!A.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||'');var n=this.root;''!==t&&'?'!==t.charAt(0)||(n=n.slice(0,-1)||'/');var r=n+t;if(t=this.decodeFragment(t.replace(L,'')),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?'replaceState':'pushState']({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;e.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var r=t.href.replace(/(javascript:|#).*$/,'');t.replace(r+'#'+e)}else t.hash='#'+e}}),e.history=new A;var N=function(t,e){var r,i=this;return r=t&&n.has(t,'constructor')?t.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,e),r.prototype=n.create(i.prototype,t),r.prototype.constructor=r,r.__super__=i.prototype,r};b.extend=w.extend=T.extend=C.extend=A.extend=N;var I=function(){throw new Error('A "url" property or function must be specified')},F=function(t,e){var n=e.error;e.error=function(r){n&&n.call(e.context,t,r,e),t.trigger('error',t,r,e)}};return e}(o,n,t,e)}.apply(e,r),void 0===i||(t.exports=i)},9210:(t,e,n)=>{!function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,r){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!r.lexical||")"!=r.lexical.type)&&/^[;{}]$/.test(e)&&!/^;/.test(n)}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,r,i){var o=!1;return"html"==this.configuration&&(o=!!i.context&&e.test(i.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&i.context||/^-1&&s>-1&&s>a&&(t=t.substr(0,a)+t.substring(a+o.commentStart.length,s)+t.substr(s+o.commentEnd.length)),i.replaceRange(t,n,r)}}))})),t.defineExtension("autoIndentRange",(function(t,e){var n=this;this.operation((function(){for(var r=t.line;r<=e.line;r++)n.indentLine(r,"smart")}))})),t.defineExtension("autoFormatRange",(function(e,n){var r=this,i=r.getMode(),o=r.getRange(e,n).split("\n"),a=t.copyState(i,r.getTokenAt(e).state),s=r.getOption("tabSize"),l="",c=0,u=0===e.ch;function f(){l+="\n",u=!0,++c}for(var h=0;h2),v=/Android/.test(t),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(t),y=g||/Mac/.test(e),b=/\bCrOS\b/.test(t),w=/win/i.test(e),k=f&&t.match(/Version\/(\d*\.\d*)/);k&&(k=Number(k[1])),k&&k>=15&&(f=!1,l=!0);var x=y&&(c||f&&(null==k||k<12.11)),O=n||a&&s>=9;function C(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var S,P=function(t,e){var n=t.className,r=C(e).exec(n);if(r){var i=n.slice(r.index+r[0].length);t.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function _(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function T(t,e){return _(t).appendChild(e)}function E(t,e,n,r){var i=document.createElement(t);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof e)i.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return a+(e-o);a+=s-o,a+=n-a%n,o=s+1}}g?Z=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:a&&(Z=function(t){try{t.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=L(this.onTimeout,this)};function B(t,e){for(var n=0;n=e)return r+Math.min(a,e-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=e)return r}}var q=[""];function G(t){for(;q.length<=t;)q.push(K(q)+" ");return q[t]}function K(t){return t[t.length-1]}function Y(t,e){for(var n=[],r=0;r"€"&&(t.toUpperCase()!=t.toLowerCase()||tt.test(t))}function nt(t,e){return e?!!(e.source.indexOf("\\w")>-1&&et(t))||e.test(t):et(t)}function rt(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}var it=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ot(t){return t.charCodeAt(0)>=768&&it.test(t)}function at(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var i=(e+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+r}}function lt(t,e,n,r){if(!t)return r(e,n,"ltr",0);for(var i=!1,o=0;oe||e==n&&a.to==e)&&(r(Math.max(a.from,e),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(e,n,"ltr")}var ct=null;function ut(t,e,n){var r;ct=null;for(var i=0;ie)return i;o.to==e&&(o.from!=o.to&&"before"==n?r=i:ct=i),o.from==e&&(o.from!=o.to&&"before"!=n?r=i:ct=i)}return null!=r?r:ct}var ft=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",e="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?t.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?e.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function l(t,e,n){this.level=t,this.from=e,this.to=n}return function(t,e){var c="ltr"==e?"L":"R";if(0==t.length||"ltr"==e&&!r.test(t))return!1;for(var u=t.length,f=[],h=0;h-1&&(r[e]=i.slice(0,o).concat(i.slice(o+1)))}}}function mt(t,e){var n=gt(t,e);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function kt(t){t.prototype.on=function(t,e){pt(this,t,e)},t.prototype.off=function(t,e){vt(this,t,e)}}function xt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Ot(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Ct(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function St(t){xt(t),Ot(t)}function Pt(t){return t.target||t.srcElement}function _t(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),y&&t.ctrlKey&&1==e&&(e=3),e}var Tt,Et,jt=function(){if(a&&s<9)return!1;var t=E('div');return"draggable"in t||"dragDrop"in t}();function Dt(t){if(null==Tt){var e=E("span","​");T(t,E("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Tt=e.offsetWidth<=1&&e.offsetHeight>2&&!(a&&s<8))}var n=Tt?E("span","​"):E("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Rt(t){if(null!=Et)return Et;var e=T(t,document.createTextNode("AخA")),n=S(e,0,1).getBoundingClientRect(),r=S(e,1,2).getBoundingClientRect();return _(t),!(!n||n.left==n.right)&&(Et=r.right-n.right<3)}var At,Mt=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,n=[],r=t.length;e<=r;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),e+=a+1):(n.push(o),e=i+1)}return n}:function(t){return t.split(/\r\n?|\n/)},Zt=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(t){return!1}}:function(t){var e;try{e=t.ownerDocument.selection.createRange()}catch(t){}return!(!e||e.parentElement()!=t)&&0!=e.compareEndPoints("StartToEnd",e)},Lt="oncopy"in(At=E("div"))||(At.setAttribute("oncopy","return;"),"function"==typeof At.oncopy),Nt=null;function It(t){if(null!=Nt)return Nt;var e=T(t,E("span","x")),n=e.getBoundingClientRect(),r=S(e,0,1).getBoundingClientRect();return Nt=Math.abs(n.left-r.left)>1}var Ft={},Bt={};function Vt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),Ft[t]=e}function Ht(t,e){Bt[t]=e}function zt(t){if("string"==typeof t&&Bt.hasOwnProperty(t))t=Bt[t];else if(t&&"string"==typeof t.name&&Bt.hasOwnProperty(t.name)){var e=Bt[t.name];"string"==typeof e&&(e={name:e}),(t=Q(e,t)).name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return zt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return zt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Ut(t,e){e=zt(e);var n=Ft[e.name];if(!n)return Ut(t,"text/plain");var r=n(t,e);if(Wt.hasOwnProperty(e.name)){var i=Wt[e.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=e.name,e.helperType&&(r.helperType=e.helperType),e.modeProps)for(var a in e.modeProps)r[a]=e.modeProps[a];return r}var Wt={};function $t(t,e){N(e,Wt.hasOwnProperty(t)?Wt[t]:Wt[t]={})}function qt(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var r in e){var i=e[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Gt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}var Yt=function(t,e,n){this.pos=this.start=0,this.string=t,this.tabSize=e||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Xt(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(e=t.first&&en?oe(n,Xt(t,n).text.length):de(e,Xt(t,e.line).text.length)}function de(t,e){var n=t.ch;return null==n||n>e?oe(t.line,e):n<0?oe(t.line,0):t}function pe(t,e){for(var n=[],r=0;r=this.string.length},Yt.prototype.sol=function(){return this.pos==this.lineStart},Yt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Yt.prototype.next=function(){if(this.pose},Yt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Yt.prototype.skipToEnd=function(){this.pos=this.string.length},Yt.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},Yt.prototype.backUp=function(t){this.pos-=t},Yt.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==e&&(this.pos+=r[0].length),r)}var i=function(t){return n?t.toLowerCase():t};if(i(this.string.substr(this.pos,t.length))==i(t))return!1!==e&&(this.pos+=t.length),!0},Yt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Yt.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},Yt.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},Yt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ge=function(t,e){this.state=t,this.lookAhead=e},ve=function(t,e,n,r){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function me(t,e,n,r){var i=[t.state.modeGen],o={};Pe(t,e.text,t.doc.mode,n,(function(t,e){return i.push(t,e)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=t.state.overlays[r],l=1,c=0;n.state=!0,Pe(t,e.text,s.mode,n,(function(t,e){for(var n=l;ct&&i.splice(l,1,t,i[l+1],r),l+=2,c=Math.min(t,r)}if(e)if(s.opaque)i.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&qt(t.doc.mode,r.state),o=me(t,e,r);i&&(r.state=i),e.stateAfter=r.save(!i),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function be(t,e,n){var r=t.doc,i=t.display;if(!r.mode.startState)return new ve(r,!0,e);var o=_e(t,e,n),a=o>r.first&&Xt(r,o-1).stateAfter,s=a?ve.fromSaved(r,a,o):new ve(r,Kt(r.mode),o);return r.iter(o,e,(function(n){we(t,n.text,s);var r=s.line;n.stateAfter=r==e-1||r%5==0||r>=i.viewFrom&&re.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}ve.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ve.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var e=this.baseTokens[this.baseTokenPos+1];return{type:e&&e.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ve.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ve.fromSaved=function(t,e,n){return e instanceof ge?new ve(t,qt(t.mode,e.state),n,e.lookAhead):new ve(t,qt(t.mode,e),n)},ve.prototype.save=function(t){var e=!1!==t?qt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ge(e,this.maxLookAhead):e};var Oe=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n};function Ce(t,e,n,r){var i,o,a=t.doc,s=a.mode,l=Xt(a,(e=he(a,e)).line),c=be(t,e.line,n),u=new Yt(l.text,t.options.tabSize,c);for(r&&(o=[]);(r||u.post.options.maxHighlightLength?(s=!1,a&&we(t,e,r,f.pos),f.pos=e.length,l=null):l=Se(xe(n,f,r.state,h),o),h){var d=h[0].name;d&&(l="m-"+(l?d+" "+l:d))}if(!s||u!=l){for(;ca;--s){if(s<=o.first)return o.first;var l=Xt(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof ge?c.lookAhead:0)<=o.modeFrontier))return s;var u=I(l.text,null,t.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function Te(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;r--){var i=Xt(t,r).stateAfter;if(i&&(!(i instanceof ge)||r+i.lookAhead=e:o.to>e);(r||(r=[])).push(new Ae(a,o.from,s?null:o.to))}}return r}function Ie(t,e,n){var r;if(t)for(var i=0;i=e:o.to>e)||o.from==e&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=e:o.from0&&s)for(var b=0;b0)){var u=[l,1],f=ae(c.from,s.from),h=ae(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function He(t){var e=t.markedSpans;if(e){for(var n=0;ne)&&(!n||$e(n,o.marker)<0)&&(n=o.marker)}return n}function Xe(t,e,n,r,i){var o=Xt(t,e),a=je&&o.markedSpans;if(a)for(var s=0;s=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.to,n)>=0:ae(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.from,r)<=0:ae(c.from,r)<0)))return!0}}}function Je(t){for(var e;e=Ge(t);)t=e.find(-1,!0).line;return t}function Qe(t){for(var e;e=Ke(t);)t=e.find(1,!0).line;return t}function tn(t){for(var e,n;e=Ke(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function en(t,e){var n=Xt(t,e),r=Je(n);return n==r?e:ee(r)}function nn(t,e){if(e>t.lastLine())return e;var n,r=Xt(t,e);if(!rn(t,r))return e;for(;n=Ke(r);)r=n.find(1,!0).line;return ee(r)+1}function rn(t,e){var n=je&&e.markedSpans;if(n)for(var r=void 0,i=0;ie.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)}))}var cn=function(t,e,n){this.text=t,ze(this,e),this.height=n?n(this):1};function un(t,e,n,r){t.text=e,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),null!=t.order&&(t.order=null),He(t),ze(t,n);var i=r?r(t):1;i!=t.height&&te(t,i)}function fn(t){t.parent=null,He(t)}cn.prototype.lineNo=function(){return ee(this)},kt(cn);var hn={},dn={};function pn(t,e){if(!t||/^\s*$/.test(t))return null;var n=e.addModeClass?dn:hn;return n[t]||(n[t]=t.replace(/\S+/g,"cm-$&"))}function gn(t,e){var n=j("span",null,null,l?"padding-right: .1px":null),r={pre:j("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};e.measure={};for(var i=0;i<=(e.rest?e.rest.length:0);i++){var o=i?e.rest[i-1]:e.line,a=void 0;r.pos=0,r.addToken=mn,Rt(t.display.measure)&&(a=ht(o,t.doc.direction))&&(r.addToken=bn(r.addToken,a)),r.map=[],kn(o,r,ye(t,o,e!=t.display.externalMeasured&&ee(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=M(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=M(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Dt(t.display.measure))),0==i?(e.measure.map=r.map,e.measure.cache={}):((e.measure.maps||(e.measure.maps=[])).push(r.map),(e.measure.caches||(e.measure.caches=[])).push({}))}if(l){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return mt(t,"renderLine",t,e.line,r.pre),r.pre.className&&(r.textClass=M(r.pre.className,r.textClass||"")),r}function vn(t){var e=E("span","•","cm-invalidchar");return e.title="\\u"+t.charCodeAt(0).toString(16),e.setAttribute("aria-label",e.title),e}function mn(t,e,n,r,i,o,l){if(e){var c,u=t.splitSpaces?yn(e,t.trailingSpace):e,f=t.cm.state.specialChars,h=!1;if(f.test(e)){c=document.createDocumentFragment();for(var d=0;;){f.lastIndex=d;var p=f.exec(e),g=p?p.index-d:e.length-d;if(g){var v=document.createTextNode(u.slice(d,d+g));a&&s<9?c.appendChild(E("span",[v])):c.appendChild(v),t.map.push(t.pos,t.pos+g,v),t.col+=g,t.pos+=g}if(!p)break;d+=g+1;var m=void 0;if("\t"==p[0]){var y=t.cm.options.tabSize,b=y-t.col%y;(m=c.appendChild(E("span",G(b),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),t.col+=b}else"\r"==p[0]||"\n"==p[0]?((m=c.appendChild(E("span","\r"==p[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",p[0]),t.col+=1):((m=t.cm.options.specialCharPlaceholder(p[0])).setAttribute("cm-text",p[0]),a&&s<9?c.appendChild(E("span",[m])):c.appendChild(m),t.col+=1);t.map.push(t.pos,t.pos+1,m),t.pos++}}else t.col+=e.length,c=document.createTextNode(u),t.map.push(t.pos,t.pos+e.length,c),a&&s<9&&(h=!0),t.pos+=e.length;if(t.trailingSpace=32==u.charCodeAt(e.length-1),n||r||i||h||o||l){var w=n||"";r&&(w+=r),i&&(w+=i);var k=E("span",[c],w,o);if(l)for(var x in l)l.hasOwnProperty(x)&&"style"!=x&&"class"!=x&&k.setAttribute(x,l[x]);return t.content.appendChild(k)}t.content.appendChild(c)}}function yn(t,e){if(t.length>1&&!/ /.test(t))return t;for(var n=e,r="",i=0;ic&&f.from<=c);h++);if(f.to>=u)return t(n,r,i,o,a,s,l);t(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function wn(t,e,n,r){var i=!r&&n.widgetNode;i&&t.map.push(t.pos,t.pos+e,i),!r&&t.cm.display.input.needsContentAttribute&&(i||(i=t.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(t.cm.display.input.setUneditable(i),t.content.appendChild(i)),t.pos+=e,t.trailingSpace=!1}function kn(t,e,n){var r=t.markedSpans,i=t.text,o=0;if(r)for(var a,s,l,c,u,f,h,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=s="",h=null,f=null,m=1/0;for(var y=[],b=void 0,w=0;wp||x.collapsed&&k.to==p&&k.from==p)){if(null!=k.to&&k.to!=p&&m>k.to&&(m=k.to,c=""),x.className&&(l+=" "+x.className),x.css&&(s=(s?s+";":"")+x.css),x.startStyle&&k.from==p&&(u+=" "+x.startStyle),x.endStyle&&k.to==m&&(b||(b=[])).push(x.endStyle,k.to),x.title&&((h||(h={})).title=x.title),x.attributes)for(var O in x.attributes)(h||(h={}))[O]=x.attributes[O];x.collapsed&&(!f||$e(f.marker,x)<0)&&(f=k)}else k.from>p&&m>k.from&&(m=k.from)}if(b)for(var C=0;C=d)break;for(var P=Math.min(d,m);;){if(v){var _=p+v.length;if(!f){var T=_>P?v.slice(0,P-p):v;e.addToken(e,T,a?a+l:l,u,p+T.length==m?c:"",s,h)}if(_>=P){v=v.slice(P-p),p=P;break}p=_,u=""}v=i.slice(o,o=n[g++]),a=pn(n[g++],e.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Jn(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var r=0;rn)return{map:t.measure.maps[i],cache:t.measure.caches[i],before:!0}}function Qn(t,e){var n=ee(e=Je(e)),r=t.display.externalMeasured=new xn(t.doc,e,n);r.lineN=n;var i=r.built=gn(t,r);return r.text=i.pre,T(t.display.lineMeasure,i.pre),r}function tr(t,e,n,r){return rr(t,nr(t,e),n,r)}function er(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(i=(o=l-s)-1,e>=l&&(a="right")),null!=i){if(r=t[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)r=t[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c=0&&(n=t[i]).left==n.right;i--);return n}function lr(t,e,n,r){var i,o=ar(e.map,n,r),l=o.node,c=o.start,u=o.end,f=o.collapse;if(3==l.nodeType){for(var h=0;h<4;h++){for(;c&&ot(e.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u0&&(f=r="right"),i=t.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==r?d.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+jr(t.display),top:p.top,bottom:p.bottom}:or}for(var g=i.top-e.rect.top,v=i.bottom-e.rect.top,m=(g+v)/2,y=e.view.measure.heights,b=0;b=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(t,e,n){return a(n?t-1:t,1==s[e].level!=n)}var f=ut(s,l,c),h=ct,d=u(l,f,"before"==c);return null!=h&&(d.other=u(l,h,"before"!=c)),d}function wr(t,e){var n=0;e=he(t.doc,e),t.options.lineWrapping||(n=jr(t.display)*e.ch);var r=Xt(t.doc,e.line),i=an(r)+Wn(t.display);return{left:n,right:n,top:i,bottom:i+r.height}}function kr(t,e,n,r,i){var o=oe(t,e,n);return o.xRel=i,r&&(o.outside=r),o}function xr(t,e,n){var r=t.doc;if((n+=t.display.viewOffset)<0)return kr(r.first,0,null,-1,-1);var i=ne(r,n),o=r.first+r.size-1;if(i>o)return kr(r.first+r.size-1,Xt(r,o).text.length,null,1,1);e<0&&(e=0);for(var a=Xt(r,i);;){var s=Pr(t,a,i,e,n),l=Ye(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=Xt(r,i=c.line)}}function Or(t,e,n,r){r-=gr(e);var i=e.text.length,o=st((function(e){return rr(t,n,e-1).bottom<=r}),i,0);return{begin:o,end:i=st((function(e){return rr(t,n,e).top>r}),o,i)}}function Cr(t,e,n,r){return n||(n=nr(t,e)),Or(t,e,n,vr(t,e,rr(t,n,r),"line").top)}function Sr(t,e,n,r){return!(t.bottom<=n)&&(t.top>n||(r?t.left:t.right)>e)}function Pr(t,e,n,r,i){i-=an(e);var o=nr(t,e),a=gr(e),s=0,l=e.text.length,c=!0,u=ht(e,t.doc.direction);if(u){var f=(t.options.lineWrapping?Tr:_r)(t,e,n,o,u,r,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var h,d,p=null,g=null,v=st((function(e){var n=rr(t,o,e);return n.top+=a,n.bottom+=a,!!Sr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=e,g=n),!0)}),s,l),m=!1;if(g){var y=r-g.left=w.bottom?1:0}return kr(n,v=at(e.text,v,1),d,m,r-h)}function _r(t,e,n,r,i,o,a){var s=st((function(s){var l=i[s],c=1!=l.level;return Sr(br(t,oe(n,c?l.to:l.from,c?"before":"after"),"line",e,r),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=br(t,oe(n,c?l.from:l.to,c?"after":"before"),"line",e,r);Sr(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function Tr(t,e,n,r,i,o,a){var s=Or(t,e,r,a),l=s.begin,c=s.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,f=null,h=0;h=c||d.to<=l)){var p=rr(t,r,1!=d.level?Math.min(c,d.to)-1:Math.max(l,d.from)).right,g=pg)&&(u=d,f=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Er(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==ir){ir=E("pre",null,"CodeMirror-line-like");for(var e=0;e<49;++e)ir.appendChild(document.createTextNode("x")),ir.appendChild(E("br"));ir.appendChild(document.createTextNode("x"))}T(t.measure,ir);var n=ir.offsetHeight/50;return n>3&&(t.cachedTextHeight=n),_(t.measure),n||1}function jr(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=E("span","xxxxxxxxxx"),n=E("pre",[e],"CodeMirror-line-like");T(t.measure,n);var r=e.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(t.cachedCharWidth=i),i||10}function Dr(t){for(var e=t.display,n={},r={},i=e.gutters.clientLeft,o=e.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=t.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:Rr(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:e.wrapper.clientWidth}}function Rr(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function Ar(t){var e=Er(t.display),n=t.options.lineWrapping,r=n&&Math.max(5,t.display.scroller.clientWidth/jr(t.display)-3);return function(i){if(rn(t.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=Xt(t.doc,c.line).text).length==c.ch){var u=I(l,l.length,t.options.tabSize)-l.length;c=oe(c.line,Math.max(0,Math.round((o-qn(t.display).left)/jr(t.display))-u))}return c}function Lr(t,e){if(e>=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,r=0;re)&&(i.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=i.viewTo)je&&en(t.doc,e)i.viewFrom?Fr(t):(i.viewFrom+=r,i.viewTo+=r);else if(e<=i.viewFrom&&n>=i.viewTo)Fr(t);else if(e<=i.viewFrom){var o=Br(t,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Fr(t)}else if(n>=i.viewTo){var a=Br(t,e,e,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Fr(t)}else{var s=Br(t,e,e,-1),l=Br(t,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(On(t,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Fr(t)}var c=i.externalMeasured;c&&(n=i.lineN&&e=r.viewTo)){var o=r.view[Lr(t,e)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==B(a,n)&&a.push(n)}}}function Fr(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Br(t,e,n,r){var i,o=Lr(t,e),a=t.display.view;if(!je||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var s=t.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-e,o++}else i=s-e;e+=i,n+=i}for(;en(t.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Vr(t,e,n){var r=t.display;0==r.view.length||e>=r.viewTo||n<=r.viewFrom?(r.view=On(t,e,n),r.viewFrom=e):(r.viewFrom>e?r.view=On(t,e,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Lr(t,n)))),r.viewTo=n}function Hr(t){for(var e=t.display.view,n=0,r=0;r=t.display.viewTo||s.to().line0&&(i.style.width=o.right-o.left+"px")}if(r.other){var a=n.appendChild(E("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=r.other.left+"px",a.style.top=r.other.top+"px",a.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function $r(t,e){return t.top-e.top||t.left-e.left}function qr(t,e,n){var r=t.display,i=t.doc,o=document.createDocumentFragment(),a=qn(t.display),s=a.left,l=Math.max(r.sizerWidth,Kn(t)-r.sizer.offsetLeft)-a.right,c="ltr"==i.direction;function u(t,e,n,r){e<0&&(e=0),e=Math.round(e),r=Math.round(r),o.appendChild(E("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px;\n top: "+e+"px; width: "+(null==n?l-t:n)+"px;\n height: "+(r-e)+"px"))}function f(e,n,r){var o,a,f=Xt(i,e),h=f.text.length;function d(n,r){return yr(t,oe(e,n),"div",f,r)}function p(e,n,r){var i=Cr(t,f,null,e),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(f.text.charAt(i.end-1))?2:1),o)[o]}var g=ht(f,i.direction);return lt(g,n||0,null==r?h:r,(function(t,e,i,f){var v="ltr"==i,m=d(t,v?"left":"right"),y=d(e-1,v?"right":"left"),b=null==n&&0==t,w=null==r&&e==h,k=0==f,x=!g||f==g.length-1;if(y.top-m.top<=3){var O=(c?w:b)&&x,C=(c?b:w)&&k?s:(v?m:y).left,S=O?l:(v?y:m).right;u(C,m.top,S-C,m.bottom)}else{var P,_,T,E;v?(P=c&&b&&k?s:m.left,_=c?l:p(t,i,"before"),T=c?s:p(e,i,"after"),E=c&&w&&x?l:y.right):(P=c?p(t,i,"before"):s,_=!c&&b&&k?l:m.right,T=!c&&w&&x?s:y.left,E=c?p(e,i,"after"):l),u(P,m.top,_-P,m.bottom),m.bottom0?e.blinker=setInterval((function(){t.hasFocus()||Jr(t),e.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Kr(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||Xr(t))}function Yr(t){t.state.delayingBlurEvent=!0,setTimeout((function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&Jr(t))}),100)}function Xr(t,e){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(mt(t,"focus",t,e),t.state.focused=!0,A(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),l&&setTimeout((function(){return t.display.input.reset(!0)}),20)),t.display.input.receivedFocus()),Gr(t))}function Jr(t,e){t.state.delayingBlurEvent||(t.state.focused&&(mt(t,"blur",t,e),t.state.focused=!1,P(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout((function(){t.state.focused||(t.display.shift=!1)}),150))}function Qr(t){for(var e=t.display,n=e.lineDiv.offsetTop,r=Math.max(0,e.scroller.getBoundingClientRect().top),i=e.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(it.display.sizerWidth){var m=Math.ceil(h/jr(t.display));m>t.display.maxLineLength&&(t.display.maxLineLength=m,t.display.maxLine=c.line,t.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(e.scroller.scrollTop+=o)}function ti(t){if(t.widgets)for(var e=0;e=a&&(o=ne(e,an(Xt(e,l))-t.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function ni(t,e){if(!yt(t,"scrollCursorIntoView")){var n=t.display,r=n.sizer.getBoundingClientRect(),i=null;if(e.top+r.top<0?i=!0:e.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=E("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Wn(t.display))+"px;\n height: "+(e.bottom-e.top+Gn(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(o),o.scrollIntoView(i),t.display.lineSpace.removeChild(o)}}}function ri(t,e,n,r){var i;null==r&&(r=0),t.options.lineWrapping||e!=n||(n="before"==e.sticky?oe(e.line,e.ch+1,"before"):e,e=e.ch?oe(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e);for(var o=0;o<5;o++){var a=!1,s=br(t,e),l=n&&n!=e?br(t,n):s,c=oi(t,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),u=t.doc.scrollTop,f=t.doc.scrollLeft;if(null!=c.scrollTop&&(hi(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(pi(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function ii(t,e){var n=oi(t,e);null!=n.scrollTop&&hi(t,n.scrollTop),null!=n.scrollLeft&&pi(t,n.scrollLeft)}function oi(t,e){var n=t.display,r=Er(t.display);e.top<0&&(e.top=0);var i=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Yn(t),a={};e.bottom-e.top>o&&(e.bottom=e.top+o);var s=t.doc.height+$n(n),l=e.tops-r;if(e.topi+o){var u=Math.min(e.top,(c?s:e.bottom)-o);u!=i&&(a.scrollTop=u)}var f=t.options.fixedGutter?0:n.gutters.offsetWidth,h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft-f,d=Kn(t)-n.gutters.offsetWidth,p=e.right-e.left>d;return p&&(e.right=e.left+d),e.left<10?a.scrollLeft=0:e.leftd+h-3&&(a.scrollLeft=e.right+(p?0:10)-d),a}function ai(t,e){null!=e&&(ui(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function si(t){ui(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function li(t,e,n){null==e&&null==n||ui(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function ci(t,e){ui(t),t.curOp.scrollToPos=e}function ui(t){var e=t.curOp.scrollToPos;e&&(t.curOp.scrollToPos=null,fi(t,wr(t,e.from),wr(t,e.to),e.margin))}function fi(t,e,n,r){var i=oi(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-r,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+r});li(t,i.scrollLeft,i.scrollTop)}function hi(t,e){Math.abs(t.doc.scrollTop-e)<2||(n||zi(t,{top:e}),di(t,e,!0),n&&zi(t),Zi(t,100))}function di(t,e,n){e=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e)),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function pi(t,e,n,r){e=Math.max(0,Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!r||(t.doc.scrollLeft=e,qi(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function gi(t){var e=t.display,n=e.gutters.offsetWidth,r=Math.round(t.doc.height+$n(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Gn(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}var vi=function(t,e,n){this.cm=n;var r=this.vert=E("div",[E("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=E("div",[E("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,t(r),t(i),pt(r,"scroll",(function(){r.clientHeight&&e(r.scrollTop,"vertical")})),pt(i,"scroll",(function(){i.clientWidth&&e(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vi.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,r=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?r+"px":"0";var i=t.viewHeight-(e?r:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:e?r:0}},vi.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vi.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vi.prototype.zeroWidthHack=function(){var t=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},vi.prototype.enableZeroWidthBar=function(t,e,n){function r(){var i=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,r)}t.style.pointerEvents="auto",e.set(1e3,r)},vi.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var mi=function(){};function yi(t,e){e||(e=gi(t));var n=t.display.barWidth,r=t.display.barHeight;bi(t,e);for(var i=0;i<4&&n!=t.display.barWidth||r!=t.display.barHeight;i++)n!=t.display.barWidth&&t.options.lineWrapping&&Qr(t),bi(t,gi(t)),n=t.display.barWidth,r=t.display.barHeight}function bi(t,e){var n=t.display,r=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}mi.prototype.update=function(){return{bottom:0,right:0}},mi.prototype.setScrollLeft=function(){},mi.prototype.setScrollTop=function(){},mi.prototype.clear=function(){};var wi={native:vi,null:mi};function ki(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&P(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new wi[t.options.scrollbarStyle]((function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pt(e,"mousedown",(function(){t.state.focused&&setTimeout((function(){return t.display.input.focus()}),0)})),e.setAttribute("cm-not-content","true")}),(function(e,n){"horizontal"==n?pi(t,e):hi(t,e)}),t),t.display.scrollbars.addClass&&A(t.display.wrapper,t.display.scrollbars.addClass)}var xi=0;function Oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++xi,markArrays:null},Sn(t.curOp)}function Ci(t){var e=t.curOp;e&&_n(e,(function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Ni(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function _i(t){t.updatedDisplay=t.mustUpdate&&Vi(t.cm,t.update)}function Ti(t){var e=t.cm,n=e.display;t.updatedDisplay&&Qr(e),t.barMeasure=gi(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=tr(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Gn(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Kn(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function Ei(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var n=+new Date+t.options.workTime,r=be(t,e.highlightFrontier),i=[];e.iter(r.line,Math.min(e.first+e.size,t.display.viewTo+500),(function(o){if(r.line>=t.display.viewFrom){var a=o.styles,s=o.text.length>t.options.maxHighlightLength?qt(e.mode,r.state):null,l=me(t,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!f&&hn)return Zi(t,t.options.workDelay),!0})),e.highlightFrontier=r.line,e.modeFrontier=Math.max(e.modeFrontier,r.line),i.length&&Di(t,(function(){for(var e=0;e=n.viewFrom&&e.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Hr(t))return!1;Gi(t)&&(Fr(t),e.dims=Dr(t));var i=r.first+r.size,o=Math.max(e.visible.from-t.options.viewportMargin,r.first),a=Math.min(i,e.visible.to+t.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),je&&(o=en(t.doc,o),a=nn(t.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=e.wrapperHeight||n.lastWrapWidth!=e.wrapperWidth;Vr(t,o,a),n.viewOffset=an(Xt(t.doc,n.viewFrom)),t.display.mover.style.top=n.viewOffset+"px";var l=Hr(t);if(!s&&0==l&&!e.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Fi(t);return l>4&&(n.lineDiv.style.display="none"),Ui(t,n.updateLineNumbers,e.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Bi(c),_(n.cursorDiv),_(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=e.wrapperHeight,n.lastWrapWidth=e.wrapperWidth,Zi(t,400)),n.updateLineNumbers=null,!0}function Hi(t,e){for(var n=e.viewport,r=!0;;r=!1){if(r&&t.options.lineWrapping&&e.oldDisplayWidth!=Kn(t))r&&(e.visible=ei(t.display,t.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$n(t.display)-Yn(t),n.top)}),e.visible=ei(t.display,t.doc,n),e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)break;if(!Vi(t,e))break;Qr(t);var i=gi(t);zr(t),yi(t,i),$i(t,i),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function zi(t,e){var n=new Ni(t,e);if(Vi(t,n)){Qr(t),Hi(t,n);var r=gi(t);zr(t),yi(t,r),$i(t,r),n.finish()}}function Ui(t,e,n){var r=t.display,i=t.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(e){var n=e.nextSibling;return l&&y&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var c=r.view,u=r.viewFrom,f=0;f-1&&(d=!1),Dn(t,h,u,n)),d&&(_(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(ie(t.options,u)))),a=h.node.nextSibling}else{var p=Fn(t,h,u,n);o.insertBefore(p,a)}u+=h.size}for(;a;)a=s(a)}function Wi(t){var e=t.gutters.offsetWidth;t.sizer.style.marginLeft=e+"px",En(t,"gutterChanged",t)}function $i(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Gn(t)+"px"}function qi(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=Rr(e)-e.scroller.scrollLeft+t.doc.scrollLeft,i=e.gutters.offsetWidth,o=r+"px",a=0;as.clientWidth,u=s.scrollHeight>s.clientHeight;if(i&&c||o&&u){if(o&&y&&l)t:for(var h=e.target,d=a.view;h!=s;h=h.parentNode)for(var p=0;p=0&&ae(t,r.to())<=0)return n}return-1};var oo=function(t,e){this.anchor=t,this.head=e};function ao(t,e,n){var r=t&&t.options.selectionsMayTouch,i=e[n];e.sort((function(t,e){return ae(t.from(),e.from())})),n=B(e,i);for(var o=1;o0:l>=0){var c=ue(s.from(),a.from()),u=ce(s.to(),a.to()),f=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,e.splice(--o,2,new oo(f?u:c,f?c:u))}}return new io(e,n)}function so(t,e){return new io([new oo(t,e||t)],0)}function lo(t){return t.text?oe(t.from.line+t.text.length-1,K(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function co(t,e){if(ae(t,e.from)<0)return t;if(ae(t,e.to)<=0)return lo(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,r=t.ch;return t.line==e.to.line&&(r+=lo(e).ch-e.to.ch),oe(n,r)}function uo(t,e){for(var n=[],r=0;r1&&t.remove(s.line+1,p-1),t.insert(s.line+1,m)}En(t,"change",t,e)}function yo(t,e,n){function r(t,i,o){if(t.linked)for(var a=0;a1&&!t.done[t.done.length-2].ranges?(t.done.pop(),K(t.done)):void 0}function Po(t,e,n,r){var i=t.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&i.lastModTime>s-(t.cm?t.cm.options.historyEventDelay:500)||"*"==e.origin.charAt(0)))&&(o=So(i,i.lastOp==r)))a=K(o.changes),0==ae(e.from,e.to)&&0==ae(e.from,a.to)?a.to=lo(e):o.changes.push(Oo(t,e));else{var l=K(i.done);for(l&&l.ranges||Eo(t.sel,i.done),o={changes:[Oo(t,e)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=e.origin,a||mt(t,"historyAdded")}function _o(t,e,n,r){var i=e.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function To(t,e,n,r){var i=t.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||_o(t,o,K(i.done),e))?i.done[i.done.length-1]=e:Eo(e,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Co(i.undone)}function Eo(t,e){var n=K(e);n&&n.ranges&&n.equals(t)||e.push(t)}function jo(t,e,n,r){var i=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,r),(function(n){n.markedSpans&&((i||(i=e["spans_"+t.id]={}))[o]=n.markedSpans),++o}))}function Do(t){if(!t)return null;for(var e,n=0;n-1&&(K(s)[f]=c[f],delete c[f])}}}return r}function Zo(t,e,n,r){if(r){var i=t.anchor;if(n){var o=ae(e,i)<0;o!=ae(n,i)<0?(i=e,e=n):o!=ae(e,n)<0&&(e=n)}return new oo(i,e)}return new oo(n||e,e)}function Lo(t,e,n,r,i){null==i&&(i=t.cm&&(t.cm.display.shift||t.extend)),Ho(t,new io([Zo(t.sel.primary(),e,n,i)],0),r)}function No(t,e,n){for(var r=[],i=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:s.to>e.ch))){if(i&&(mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var f=l.find(r<0?1:-1),h=void 0;if((r<0?u:c)&&(f=Ko(t,f,-r,f&&f.line==e.line?o:null)),f&&f.line==e.line&&(h=ae(f,n))&&(r<0?h<0:h>0))return qo(t,f,e,r,i)}var d=l.find(r<0?-1:1);return(r<0?c:u)&&(d=Ko(t,d,r,d.line==e.line?o:null)),d?qo(t,d,e,r,i):null}}return e}function Go(t,e,n,r,i){var o=r||1,a=qo(t,e,n,o,i)||!i&&qo(t,e,n,o,!0)||qo(t,e,n,-o,i)||!i&&qo(t,e,n,-o,!0);return a||(t.cantEdit=!0,oe(t.first,0))}function Ko(t,e,n,r){return n<0&&0==e.ch?e.line>t.first?he(t,oe(e.line-1)):null:n>0&&e.ch==(r||Xt(t,e.line)).text.length?e.line=0;--i)Qo(t,{from:r[i].from,to:r[i].to,text:i?[""]:e.text,origin:e.origin});else Qo(t,e)}}function Qo(t,e){if(1!=e.text.length||""!=e.text[0]||0!=ae(e.from,e.to)){var n=uo(t,e);Po(t,e,n,t.cm?t.cm.curOp.id:NaN),na(t,e,n,Fe(t,e));var r=[];yo(t,(function(t,n){n||-1!=B(r,t.history)||(sa(t.history,e),r.push(t.history)),na(t,e,null,Fe(t,e))}))}}function ta(t,e,n){var r=t.cm&&t.cm.state.suppressEdits;if(!r||n){for(var i,o=t.history,a=t.sel,s="undo"==e?o.done:o.undone,l="undo"==e?o.undone:o.done,c=0;c=0;--d){var p=h(d);if(p)return p.v}}}}function ea(t,e){if(0!=e&&(t.first+=e,t.sel=new io(Y(t.sel.ranges,(function(t){return new oo(oe(t.anchor.line+e,t.anchor.ch),oe(t.head.line+e,t.head.ch))})),t.sel.primIndex),t.cm)){Nr(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,r=n.viewFrom;rt.lastLine())){if(e.from.lineo&&(e={from:e.from,to:oe(o,Xt(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=Jt(t,e.from,e.to),n||(n=uo(t,e)),t.cm?ra(t.cm,e,r):mo(t,e,r),zo(t,n,z),t.cantEdit&&Go(t,oe(t.firstLine(),0))&&(t.cantEdit=!1)}}function ra(t,e,n){var r=t.doc,i=t.display,o=e.from,a=e.to,s=!1,l=o.line;t.options.lineWrapping||(l=ee(Je(Xt(r,o.line))),r.iter(l,a.line+1,(function(t){if(t==i.maxLine)return s=!0,!0}))),r.sel.contains(e.from,e.to)>-1&&bt(t),mo(r,e,n,Ar(t)),t.options.lineWrapping||(r.iter(l,o.line+e.text.length,(function(t){var e=sn(t);e>i.maxLineLength&&(i.maxLine=t,i.maxLineLength=e,i.maxLineChanged=!0,s=!1)})),s&&(t.curOp.updateMaxLine=!0)),Te(r,o.line),Zi(t,400);var c=e.text.length-(a.line-o.line)-1;e.full?Nr(t):o.line!=a.line||1!=e.text.length||vo(t.doc,e)?Nr(t,o.line,a.line+1,c):Ir(t,o.line,"text");var u=wt(t,"changes"),f=wt(t,"change");if(f||u){var h={from:o,to:a,text:e.text,removed:e.removed,origin:e.origin};f&&En(t,"change",t,h),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(h)}t.display.selForContextMenu=null}function ia(t,e,n,r,i){var o;r||(r=n),ae(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof e&&(e=t.splitLines(e)),Jo(t,{from:n,to:r,text:e,origin:i})}function oa(t,e,n,r){n1||!(this.children[0]instanceof ca))){var s=[];this.collapse(s),this.children=[new ca(s)],this.children[0].parent=this}},collapse:function(t){for(var e=0;e50){for(var a=i.lines.length%25+25,s=a;s10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=j("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Xe(t,e.line,e,n,o)||e.line!=n.line&&Xe(t,n.line,e,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Re()}o.addToHistory&&Po(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var s,l=e.line,c=t.cm;if(t.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Je(r)==c.display.maxLine&&(s=!0),o.collapsed&&l!=e.line&&te(r,0),Le(r,new Ae(o,l==e.line?e.ch:null,l==n.line?n.ch:null),t.cm&&t.cm.curOp),++l})),o.collapsed&&t.iter(e.line,n.line+1,(function(e){rn(t,e)&&te(e,0)})),o.clearOnEnter&&pt(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(De(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++pa,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Nr(c,e.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=e.line;u<=n.line;u++)Ir(c,u,"text");o.atomic&&Wo(c.doc),En(c,"markerAdded",c,o)}return o}ga.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&Oi(t),wt(this,"clear")){var n=this.find();n&&En(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Nr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Wo(t.doc)),t&&En(t,"markerCleared",t,this,r,i),e&&Ci(t),this.parent&&this.parent.clear()}},ga.prototype.find=function(t,e){var n,r;null==t&&"bookmark"==this.type&&(t=1);for(var i=0;i=0;l--)Jo(this,r[l]);s?Vo(this,s):this.cm&&si(this.cm)})),undo:Mi((function(){ta(this,"undo")})),redo:Mi((function(){ta(this,"redo")})),undoSelection:Mi((function(){ta(this,"undo",!0)})),redoSelection:Mi((function(){ta(this,"redo",!0)})),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,r=0;r=t.ch)&&e.push(i.marker.parent||i.marker)}return e},findMarks:function(t,e,n){t=he(this,t),e=he(this,e);var r=[],i=t.line;return this.iter(t.line,e.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=t.line||null!=l.from&&i==e.line&&l.from>=e.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var t=[];return this.iter((function(e){var n=e.markedSpans;if(n)for(var r=0;rt)return e=t,!0;t-=o,++n})),he(this,oe(n,e))},indexFromPos:function(t){var e=(t=he(this,t)).ch;if(t.linee&&(e=t.from),null!=t.to&&t.to-1)return e.state.draggingText(t),void setTimeout((function(){return e.display.input.focus()}),20);try{var f=t.dataTransfer.getData("Text");if(f){var h;if(e.state.draggingText&&!e.state.draggingText.copy&&(h=e.listSelections()),zo(e.doc,so(n,n)),h)for(var d=0;d=0;e--)ia(t.doc,"",r[e].from,r[e].to,"+delete");si(t)}))}function qa(t,e,n){var r=at(t.text,e+n,n);return r<0||r>t.text.length?null:r}function Ga(t,e,n){var r=qa(t,e.ch,n);return null==r?null:new oe(e.line,r,n<0?"after":"before")}function Ka(t,e,n,r,i){if(t){"rtl"==e.doc.direction&&(i=-i);var o=ht(n,e.doc.direction);if(o){var a,s=i<0?K(o):o[0],l=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==e.doc.direction){var c=nr(e,n);a=i<0?n.text.length-1:0;var u=rr(e,c,a).top;a=st((function(t){return rr(e,c,t).top==u}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=qa(n,a,1))}else a=i<0?s.to:s.from;return new oe(r,a,l)}}return new oe(r,i<0?n.text.length:0,i<0?"before":"after")}function Ya(t,e,n,r){var i=ht(e,t.doc.direction);if(!i)return Ga(e,n,r);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ut(i,n.ch,n.sticky),a=i[o];if("ltr"==t.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&h>=u.begin)){var d=f?"before":"after";return new oe(n.line,h,d)}}var p=function(t,e,r){for(var o=function(t,e){return e?new oe(n.line,l(t,1),"before"):new oe(n.line,t,"after")};t>=0&&t0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==v||r>0&&v==e.text.length||!(g=p(r>0?0:i.length-1,r,c(v)))?null:g}Ia.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Ia.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Ia.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Ia.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Ia.default=y?Ia.macDefault:Ia.pcDefault;var Xa={selectAll:Yo,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),z)},killLine:function(t){return $a(t,(function(e){if(e.empty()){var n=Xt(t.doc,e.head.line).text.length;return e.head.ch==n&&e.head.line0)i=new oe(i.line,i.ch+1),t.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),oe(i.line,i.ch-2),i,"+transpose");else if(i.line>t.doc.first){var a=Xt(t.doc,i.line-1).text;a&&(i=new oe(i.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+a.charAt(a.length-1),oe(i.line-1,a.length-1),i,"+transpose"))}n.push(new oo(i,i))}t.setSelections(n)}))},newlineAndIndent:function(t){return Di(t,(function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var r=0;r-1&&(ae((i=s.ranges[i]).from(),e)<0||e.xRel>0)&&(ae(i.to(),e)>0||e.xRel<0)?xs(t,r,e,o):Cs(t,r,e,o)}function xs(t,e,n,r){var i=t.display,o=!1,c=Ri(t,(function(e){l&&(i.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:Yr(t)),vt(i.wrapper.ownerDocument,"mouseup",c),vt(i.wrapper.ownerDocument,"mousemove",u),vt(i.scroller,"dragstart",f),vt(i.scroller,"drop",c),o||(xt(e),r.addNew||Lo(t.doc,n,null,null,r.extend),l&&!h||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},f=function(){return o=!0};l&&(i.scroller.draggable=!0),t.state.draggingText=c,c.copy=!r.moveOnDrag,pt(i.wrapper.ownerDocument,"mouseup",c),pt(i.wrapper.ownerDocument,"mousemove",u),pt(i.scroller,"dragstart",f),pt(i.scroller,"drop",c),t.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Os(t,e,n){if("char"==n)return new oo(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new oo(oe(e.line,0),he(t.doc,oe(e.line+1,0)));var r=n(t,e);return new oo(r.from,r.to)}function Cs(t,e,n,r){a&&Yr(t);var i=t.display,o=t.doc;xt(e);var s,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?u[l]:new oo(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new oo(n,n)),n=Zr(t,e,!0,!0),l=-1;else{var f=Os(t,n,r.unit);s=r.extend?Zo(s,f.anchor,f.head,r.extend):f}r.addNew?-1==l?(l=u.length,Ho(o,ao(t,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Ho(o,ao(t,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Io(o,l,s,U):(l=0,Ho(o,new io([s],0),U),c=o.sel);var h=n;function d(e){if(0!=ae(h,e))if(h=e,"rectangle"==r.unit){for(var i=[],a=t.options.tabSize,u=I(Xt(o,n.line).text,n.ch,a),f=I(Xt(o,e.line).text,e.ch,a),d=Math.min(u,f),p=Math.max(u,f),g=Math.min(n.line,e.line),v=Math.min(t.lastLine(),Math.max(n.line,e.line));g<=v;g++){var m=Xt(o,g).text,y=$(m,d,a);d==p?i.push(new oo(oe(g,y),oe(g,y))):m.length>y&&i.push(new oo(oe(g,y),oe(g,$(m,p,a))))}i.length||i.push(new oo(n,n)),Ho(o,ao(t,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var b,w=s,k=Os(t,e,r.unit),x=w.anchor;ae(k.anchor,x)>0?(b=k.head,x=ue(w.from(),k.anchor)):(b=k.anchor,x=ce(w.to(),k.head));var O=c.ranges.slice(0);O[l]=Ss(t,new oo(he(o,x),b)),Ho(o,ao(t,O,l),U)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(e){var n=++g,a=Zr(t,e,!0,"rectangle"==r.unit);if(a)if(0!=ae(a,h)){t.curOp.focus=R(),d(a);var s=ei(i,o);(a.line>=s.to||a.linep.bottom?20:0;l&&setTimeout(Ri(t,(function(){g==n&&(i.scroller.scrollTop+=l,v(e))})),50)}}function m(e){t.state.selectingText=!1,g=1/0,e&&(xt(e),i.input.focus()),vt(i.wrapper.ownerDocument,"mousemove",y),vt(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=Ri(t,(function(t){0!==t.buttons&&_t(t)?v(t):m(t)})),b=Ri(t,m);t.state.selectingText=b,pt(i.wrapper.ownerDocument,"mousemove",y),pt(i.wrapper.ownerDocument,"mouseup",b)}function Ss(t,e){var n=e.anchor,r=e.head,i=Xt(t.doc,n.line);if(0==ae(n,r)&&n.sticky==r.sticky)return e;var o=ht(i);if(!o)return e;var a=ut(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return e;var l,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return e;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=ut(o,r.ch,r.sticky),f=u-a||(r.ch-n.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:f>0}var h=o[c+(l?-1:0)],d=l==(1==h.level),p=d?h.from:h.to,g=d?"after":"before";return n.ch==p&&n.sticky==g?e:new oo(new oe(n.line,p,g),r)}function Ps(t,e,n,r){var i,o;if(e.touches)i=e.touches[0].clientX,o=e.touches[0].clientY;else try{i=e.clientX,o=e.clientY}catch(t){return!1}if(i>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;r&&xt(e);var a=t.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!wt(t,n))return Ct(e);o-=s.top-a.viewOffset;for(var l=0;l=i)return mt(t,n,t,ne(t.doc,o),t.display.gutterSpecs[l].className,e),Ct(e)}}function _s(t,e){return Ps(t,e,"gutterClick",!0)}function Ts(t,e){Un(t.display,e)||Es(t,e)||yt(t,e,"contextmenu")||O||t.display.input.onContextMenu(e)}function Es(t,e){return!!wt(t,"gutterContextMenu")&&Ps(t,e,"gutterContextMenu",!1)}function js(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),hr(t)}vs.prototype.compare=function(t,e,n){return this.time+gs>t&&0==ae(e,this.pos)&&n==this.button};var Ds={toString:function(){return"CodeMirror.Init"}},Rs={},As={};function Ms(t){var e=t.optionHandlers;function n(n,r,i,o){t.defaults[n]=r,i&&(e[n]=o?function(t,e,n){n!=Ds&&i(t,e,n)}:i)}t.defineOption=n,t.Init=Ds,n("value","",(function(t,e){return t.setValue(e)}),!0),n("mode",null,(function(t,e){t.doc.modeOption=e,po(t)}),!0),n("indentUnit",2,po,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(t){go(t),hr(t),Nr(t)}),!0),n("lineSeparator",null,(function(t,e){if(t.doc.lineSep=e,e){var n=[],r=t.doc.first;t.doc.iter((function(t){for(var i=0;;){var o=t.text.indexOf(e,i);if(-1==o)break;i=o+e.length,n.push(oe(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ia(t.doc,e,n[i],oe(n[i].line,n[i].ch+e.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ds&&t.refresh()})),n("specialCharPlaceholder",vn,(function(t){return t.refresh()}),!0),n("electricChars",!0),n("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(t,e){return t.getInputField().spellcheck=e}),!0),n("autocorrect",!1,(function(t,e){return t.getInputField().autocorrect=e}),!0),n("autocapitalize",!1,(function(t,e){return t.getInputField().autocapitalize=e}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(t){js(t),Xi(t)}),!0),n("keyMap","default",(function(t,e,n){var r=Wa(e),i=n!=Ds&&Wa(n);i&&i.detach&&i.detach(t,r),r.attach&&r.attach(t,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Ls,!0),n("gutters",[],(function(t,e){t.display.gutterSpecs=Ki(e,t.options.lineNumbers),Xi(t)}),!0),n("fixedGutter",!0,(function(t,e){t.display.gutters.style.left=e?Rr(t.display)+"px":"0",t.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(t){return yi(t)}),!0),n("scrollbarStyle","native",(function(t){ki(t),yi(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(t,e){t.display.gutterSpecs=Ki(t.options.gutters,e),Xi(t)}),!0),n("firstLineNumber",1,Xi,!0),n("lineNumberFormatter",(function(t){return t}),Xi,!0),n("showCursorWhenSelecting",!1,zr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(t,e){"nocursor"==e&&(Jr(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)})),n("screenReaderLabel",null,(function(t,e){e=''===e?null:e,t.display.input.screenReaderLabelChanged(e)})),n("disableInput",!1,(function(t,e){e||t.display.input.reset()}),!0),n("dragDrop",!0,Zs),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zr,!0),n("singleCursorHeightPerLine",!0,zr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,go,!0),n("addModeClass",!1,go,!0),n("pollInterval",100),n("undoDepth",200,(function(t,e){return t.doc.history.undoDepth=e})),n("historyEventDelay",1250),n("viewportMargin",10,(function(t){return t.refresh()}),!0),n("maxHighlightLength",1e4,go,!0),n("moveInputWithCursor",!0,(function(t,e){e||t.display.input.resetPosition()})),n("tabindex",null,(function(t,e){return t.display.input.getField().tabIndex=e||""})),n("autofocus",null),n("direction","ltr",(function(t,e){return t.doc.setDirection(e)}),!0),n("phrases",null)}function Zs(t,e,n){if(!e!=!(n&&n!=Ds)){var r=t.display.dragFunctions,i=e?pt:vt;i(t.display.scroller,"dragstart",r.start),i(t.display.scroller,"dragenter",r.enter),i(t.display.scroller,"dragover",r.over),i(t.display.scroller,"dragleave",r.leave),i(t.display.scroller,"drop",r.drop)}}function Ls(t){t.options.lineWrapping?(A(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(P(t.display.wrapper,"CodeMirror-wrap"),ln(t)),Mr(t),Nr(t),hr(t),setTimeout((function(){return yi(t)}),100)}function Ns(t,e){var n=this;if(!(this instanceof Ns))return new Ns(t,e);this.options=e=e?N(e):{},N(Rs,e,!1);var r=e.value;"string"==typeof r?r=new Oa(r,e.mode,null,e.lineSeparator,e.direction):e.mode&&(r.modeOption=e.mode),this.doc=r;var i=new Ns.inputStyles[e.inputStyle](this),o=this.display=new Ji(t,r,i,e);for(var c in o.wrapper.CodeMirror=this,js(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ki(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},e.autofocus&&!m&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Is(this),Da(),Oi(this),this.curOp.forceUpdate=!0,bo(this,r),e.autofocus&&!m||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Xr(n)}),20):Jr(this),As)As.hasOwnProperty(c)&&As[c](this,e[c],Ds);Gi(this),e.finishInit&&e.finishInit(this);for(var u=0;u400}pt(e.scroller,"touchstart",(function(i){if(!yt(t,i)&&!o(i)&&!_s(t,i)){e.input.ensurePolled(),clearTimeout(n);var a=+new Date;e.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(e.activeTouch.left=i.touches[0].pageX,e.activeTouch.top=i.touches[0].pageY)}})),pt(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),pt(e.scroller,"touchend",(function(n){var r=e.activeTouch;if(r&&!Un(e,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=t.coordsChar(e.activeTouch,"page");o=!r.prev||l(r,r.prev)?new oo(a,a):!r.prev.prev||l(r,r.prev.prev)?t.findWordAt(a):new oo(oe(a.line,0),he(t.doc,oe(a.line+1,0))),t.setSelection(o.anchor,o.head),t.focus(),xt(n)}i()})),pt(e.scroller,"touchcancel",i),pt(e.scroller,"scroll",(function(){e.scroller.clientHeight&&(hi(t,e.scroller.scrollTop),pi(t,e.scroller.scrollLeft,!0),mt(t,"scroll",t))})),pt(e.scroller,"mousewheel",(function(e){return ro(t,e)})),pt(e.scroller,"DOMMouseScroll",(function(e){return ro(t,e)})),pt(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(e){yt(t,e)||St(e)},over:function(e){yt(t,e)||(_a(t,e),St(e))},start:function(e){return Pa(t,e)},drop:Ri(t,Sa),leave:function(e){yt(t,e)||Ta(t)}};var c=e.input.getField();pt(c,"keyup",(function(e){return fs.call(t,e)})),pt(c,"keydown",Ri(t,cs)),pt(c,"keypress",Ri(t,hs)),pt(c,"focus",(function(e){return Xr(t,e)})),pt(c,"blur",(function(e){return Jr(t,e)}))}Ns.defaults=Rs,Ns.optionHandlers=As;var Fs=[];function Bs(t,e,n,r){var i,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=be(t,e).state:n="prev");var a=t.options.tabSize,s=Xt(o,e),l=I(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==H||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?I(Xt(o,e-1).text,null,a):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var f="",h=0;if(t.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)h+=a,f+="\t";if(ha,l=Mt(e),c=null;if(s&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==e){if(r.ranges.length%Vs.text.length==0){c=[];for(var u=0;u=0;h--){var d=r.ranges[h],p=d.from(),g=d.to();d.empty()&&(n&&n>0?p=oe(p.line,p.ch-n):t.state.overwrite&&!s?g=oe(g.line,Math.min(Xt(o,g.line).text.length,g.ch+K(l).length)):s&&Vs&&Vs.lineWise&&Vs.text.join("\n")==l.join("\n")&&(p=g=oe(p.line,0)));var v={from:p,to:g,text:c?c[h%c.length]:l,origin:i||(s?"paste":t.state.cutIncoming>a?"cut":"+input")};Jo(t.doc,v),En(t,"inputRead",t,v)}e&&!s&&Ws(t,e),si(t),t.curOp.updateInput<2&&(t.curOp.updateInput=f),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Us(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||Di(e,(function(){return zs(e,n,0,null,"paste")})),!0}function Ws(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=t.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Bs(t,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xt(t.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Bs(t,i.head.line,"smart"));a&&En(t,"electricInput",t,i.head.line)}}}function $s(t){for(var e=[],n=[],r=0;rn&&(Bs(this,i.head.line,t,!0),n=i.head.line,r==this.doc.sel.primIndex&&si(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&Io(this.doc,r,new oo(o,c[r].to()),z)}}})),getTokenAt:function(t,e){return Ce(this,t,e)},getLineTokens:function(t,e){return Ce(this,oe(t),e,!0)},getTokenTypeAt:function(t){t=he(this.doc,t);var e,n=ye(this,Xt(this.doc,t.line)),r=0,i=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(t=o,i=!0),r=Xt(this.doc,t)}else r=t;return vr(this,r,{top:0,left:0},e||"page",n||i).top+(i?this.doc.height-an(r):0)},defaultTextHeight:function(){return Er(this.display)},defaultCharWidth:function(){return jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,r,i){var o=this.display,a=(t=br(this,he(this.doc,t))).bottom,s=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==r)a=t.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);('above'==r||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?a=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(a=t.bottom),s+e.offsetWidth>c&&(s=c-e.offsetWidth)}e.style.top=a+"px",e.style.left=e.style.right="","right"==i?(s=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=s+"px"),n&&ii(this,{left:s,top:a,right:s+e.offsetWidth,bottom:a+e.offsetHeight})},triggerOnKeyDown:Ai(cs),triggerOnKeyPress:Ai(hs),triggerOnKeyUp:fs,triggerOnMouseDown:Ai(ys),execCommand:function(t){if(Xa.hasOwnProperty(t))return Xa[t].call(null,this)},triggerElectric:Ai((function(t){Ws(this,t)})),findPosH:function(t,e,n,r){var i=1;e<0&&(i=-1,e=-e);for(var o=he(this.doc,t),a=0;a0&&a(e.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Mr(this),mt(this,"refresh",this)})),swapDoc:Ai((function(t){var e=this.doc;return e.cm=null,this.state.selectingText&&this.state.selectingText(),bo(this,t),hr(this),this.display.input.reset(),li(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,En(this,"swapDoc",this,e),e})),phrase:function(t){var e=this.options.phrases;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},kt(t),t.registerHelper=function(e,r,i){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][r]=i},t.registerGlobalHelper=function(e,r,i,o){t.registerHelper(e,r,o),n[e]._global.push({pred:i,val:o})}}function Ys(t,e,n,r,i){var o=e,a=n,s=Xt(t,e.line),l=i&&"rtl"==t.direction?-n:n;function c(){var n=e.line+l;return!(n=t.first+t.size)&&(e=new oe(n,e.ch,e.sticky),s=Xt(t,n))}function u(o){var a;if("codepoint"==r){var u=s.text.charCodeAt(e.ch+(n>0?0:-1));if(isNaN(u))a=null;else{var f=n>0?u>=55296&&u<56320:u>=56320&&u<57343;a=new oe(e.line,Math.max(0,Math.min(s.text.length,e.ch+n*(f?2:1))),-n)}}else a=i?Ya(t.cm,s,e,n):Ga(s,e,n);if(null==a){if(o||!c())return!1;e=Ka(i,t.cm,s,e.line,l)}else e=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,d=t.cm&&t.cm.getHelper(e,"wordChars"),p=!0;!(n<0)||u(!p);p=!1){var g=s.text.charAt(e.ch)||"\n",v=nt(g,d)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||v||(v="s"),f&&f!=v){n<0&&(n=1,u(),e.sticky="after");break}if(v&&(f=v),n>0&&!u(!p))break}var m=Go(t,e,o,a,!0);return se(o,m)&&(m.hitSide=!0),m}function Xs(t,e,n,r){var i,o,a=t.doc,s=e.left;if("page"==r){var l=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Er(t.display),3);i=(n>0?e.bottom:e.top)+n*c}else"line"==r&&(i=n>0?e.bottom+3:e.top-3);for(;(o=xr(t,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Js=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qs(t,e){var n=er(t,e.line);if(!n||n.hidden)return null;var r=Xt(t.doc,e.line),i=Jn(n,r,e.line),o=ht(r,t.doc.direction),a="left";o&&(a=ut(o,e.ch)%2?"right":"left");var s=ar(i.map,e.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function tl(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function el(t,e){return e&&(t.bad=!0),t}function nl(t,e,n,r,i){var o="",a=!1,s=t.doc.lineSeparator(),l=!1;function c(t){return function(e){return e.id==t}}function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function f(t){t&&(u(),o+=t)}function h(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(n)return void f(n);var o,d=e.getAttribute("cm-marker");if(d){var p=t.findMarks(oe(r,0),oe(i+1,0),c(+d));return void(p.length&&(o=p[0].find(0))&&f(Jt(t.doc,o.from,o.to).join(s)))}if("false"==e.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;g&&u();for(var v=0;v=e.display.viewTo||o.line=e.display.viewFrom&&Qs(e,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(a=oe(a.line-1,Xt(r.doc,a.line-1).length)),s.ch==Xt(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(t=Lr(r,a.line))?(e=ee(i.view[0].line),n=i.view[0].node):(e=ee(i.view[t].line),n=i.view[t-1].node.nextSibling);var l,c,u=Lr(r,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ee(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var f=r.doc.splitLines(nl(r,n,c,e,l)),h=Jt(r.doc,oe(e,0),oe(l,Xt(r.doc,l).text.length));f.length>1&&h.length>1;)if(K(f)==K(h))f.pop(),h.pop(),l--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),e++}for(var d=0,p=0,g=f[0],v=h[0],m=Math.min(g.length,v.length);da.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(d).replace(/\u200b+$/,"");var k=oe(e,d),x=oe(l,h.length?K(h).length-p:0);return f.length>1||f[0]||ae(k,x)?(ia(r.doc,f,k,x,"+input"),!0):void 0},Js.prototype.ensurePolled=function(){this.forceCompositionEnd()},Js.prototype.reset=function(){this.forceCompositionEnd()},Js.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Js.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()}),80))},Js.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||Di(this.cm,(function(){return Nr(t.cm)}))},Js.prototype.setUneditable=function(t){t.contentEditable="false"},Js.prototype.onKeyPress=function(t){0==t.charCode||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Ri(this.cm,zs)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Js.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Js.prototype.onContextMenu=function(){},Js.prototype.resetPosition=function(){},Js.prototype.needsContentAttribute=!0;var ol=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};function al(t,e){if((e=e?N(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var n=R();e.autofocus=n==t||null!=t.getAttribute("autofocus")&&n==document.body}function r(){t.value=s.getValue()}var i;if(t.form&&(pt(t.form,"submit",r),!e.leaveSubmitMethodAlone)){var o=t.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(t){}}e.finishInit=function(n){n.save=r,n.getTextArea=function(){return t},n.toTextArea=function(){n.toTextArea=isNaN,r(),t.parentNode.removeChild(n.getWrapperElement()),t.style.display="",t.form&&(vt(t.form,"submit",r),e.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var s=Ns((function(e){return t.parentNode.insertBefore(e,t.nextSibling)}),e);return s}function sl(t){t.off=vt,t.on=pt,t.wheelEventPixels=no,t.Doc=Oa,t.splitLines=Mt,t.countColumn=I,t.findColumn=$,t.isWordChar=et,t.Pass=H,t.signal=mt,t.Line=cn,t.changeEnd=lo,t.scrollbarModel=wi,t.Pos=oe,t.cmpPos=ae,t.modes=Ft,t.mimeModes=Bt,t.resolveMode=zt,t.getMode=Ut,t.modeExtensions=Wt,t.extendMode=$t,t.copyState=qt,t.startState=Kt,t.innerMode=Gt,t.commands=Xa,t.keyMap=Ia,t.keyName=Ua,t.isModifierKey=Ha,t.lookupKey=Va,t.normalizeKeyMap=Ba,t.StringStream=Yt,t.SharedTextMarker=ma,t.TextMarker=ga,t.LineWidget=fa,t.e_preventDefault=xt,t.e_stopPropagation=Ot,t.e_stop=St,t.addClass=A,t.contains=D,t.rmClass=P,t.keyNames=Ma}ol.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(t){if(!yt(r,t)){if(r.somethingSelected())Hs({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=$s(r);Hs({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,z):(n.prevInput="",i.value=e.text.join("\n"),Z(i))}"cut"==t.type&&(r.state.cutIncoming=+new Date)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),g&&(i.style.width="0px"),pt(i,"input",(function(){a&&s>=9&&e.hasSelection&&(e.hasSelection=null),n.poll()})),pt(i,"paste",(function(t){yt(r,t)||Us(t,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pt(i,"cut",o),pt(i,"copy",o),pt(t.scroller,"paste",(function(e){if(!Un(t,e)&&!yt(r,e)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=e.clipboardData,i.dispatchEvent(o)}})),pt(t.lineSpace,"selectstart",(function(e){Un(t,e)||xt(e)})),pt(i,"compositionstart",(function(){var t=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pt(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},ol.prototype.createField=function(t){this.wrapper=Gs(),this.textarea=this.wrapper.firstChild},ol.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute('aria-label',t):this.textarea.removeAttribute('aria-label')},ol.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,r=Ur(t);if(t.options.moveInputWithCursor){var i=br(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),a=e.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},ol.prototype.showSelection=function(t){var e=this.cm.display;T(e.cursorDiv,t.cursors),T(e.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},ol.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&Z(this.textarea),a&&s>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},ol.prototype.getField=function(){return this.textarea},ol.prototype.supportsTouch=function(){return!1},ol.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||R()!=this.textarea))try{this.textarea.focus()}catch(t){}},ol.prototype.blur=function(){this.textarea.blur()},ol.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ol.prototype.receivedFocus=function(){this.slowPoll()},ol.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){t.poll(),t.cm.state.focused&&t.slowPoll()}))},ol.prototype.fastPoll=function(){var t=!1,e=this;function n(){e.poll()||t?(e.pollingFast=!1,e.slowPoll()):(t=!0,e.polling.set(60,n))}e.pollingFast=!0,e.polling.set(20,n)},ol.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||Zt(n)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var i=n.value;if(i==r&&!e.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=i,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ol.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ol.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},ol.prototype.onContextMenu=function(t){var e=this,n=e.cm,r=n.display,i=e.textarea;e.contextMenuPending&&e.contextMenuPending();var o=Zr(n,t),c=r.scroller.scrollTop;if(o&&!f){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Ri(n,Ho)(n.doc,so(o),z);var u,h=i.style.cssText,d=e.wrapper.style.cssText,p=e.wrapper.offsetParent.getBoundingClientRect();if(e.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-p.top-5)+"px; left: "+(t.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=e.prevInput=" "),e.contextMenuPending=m,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&v(),O){St(t);var g=function(){vt(window,"mouseup",g),setTimeout(m,20)};pt(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var t=n.somethingSelected(),o="​"+(t?i.value:"");i.value="⇚",i.value=o,e.prevInput=t?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function m(){if(e.contextMenuPending==m&&(e.contextMenuPending=!1,e.wrapper.style.cssText=d,i.style.cssText=h,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&v();var t=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==e.prevInput?Ri(n,Yo)(n):t++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},ol.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t,this.textarea.readOnly=!!t},ol.prototype.setUneditable=function(){},ol.prototype.needsContentAttribute=!1,Ms(Ns),Ks(Ns);var ll="iter insert remove copy getEditor constructor".split(" ");for(var cl in Oa.prototype)Oa.prototype.hasOwnProperty(cl)&&B(ll,cl)<0&&(Ns.prototype[cl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Oa.prototype[cl]));return kt(Oa),Ns.inputStyles={textarea:ol,contenteditable:Js},Ns.defineMode=function(t){Ns.defaults.mode||"null"==t||(Ns.defaults.mode=t),Vt.apply(this,arguments)},Ns.defineMIME=Ht,Ns.defineMode("null",(function(){return{token:function(t){return t.skipToEnd()}}})),Ns.defineMIME("text/plain","null"),Ns.defineExtension=function(t,e){Ns.prototype[t]=e},Ns.defineDocExtension=function(t,e){Oa.prototype[t]=e},Ns.fromTextArea=al,sl(Ns),Ns.version="5.63.0",Ns}()},6629:(t,e,n)=>{!function(t){"use strict";function e(t){for(var e={},n=0;n*\/]/.test(n)?x(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?x("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?x(null,n):t.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(t.current())&&(e.tokenize=S),x("variable callee","variable")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),x("property","word")):x(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),x("number","unit")):t.match(/^-[\w\\\-]*/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?x("variable-2","variable-definition"):x("variable-2","variable")):t.match(/^\w+-/)?x("meta","meta"):void 0}function C(t){return function(e,n){for(var r,i=!1;null!=(r=e.next());){if(r==t&&!i){")"==t&&e.backUp(1);break}i=!i&&"\\"==r}return(r==t||!i&&")"!=t)&&(n.tokenize=null),x("string","string")}}function S(t,e){return t.next(),t.match(/^\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=C(")"),x(null,"(")}function P(t,e,n){this.type=t,this.indent=e,this.prev=n}function _(t,e,n,r){return t.context=new P(n,e.indentation()+(!1===r?0:a),t.context),n}function T(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function E(t,e,n){return R[n.context.type](t,e,n)}function j(t,e,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(t,e,n)}function D(t){var e=t.current().toLowerCase();o=m.hasOwnProperty(e)?"atom":v.hasOwnProperty(e)?"keyword":"variable"}var R={top:function(t,e,n){if("{"==t)return _(n,e,"block");if("}"==t&&n.context.prev)return T(n);if(w&&/@component/i.test(t))return _(n,e,"atComponentBlock");if(/^@(-moz-)?document$/i.test(t))return _(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(t))return _(n,e,"atBlock");if(/^@(font-face|counter-style)/i.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return _(n,e,"at");if("hash"==t)o="builtin";else if("word"==t)o="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return _(n,e,"interpolation");if(":"==t)return"pseudo";if(y&&"("==t)return _(n,e,"parens")}return n.context.type},block:function(t,e,n){if("word"==t){var r=e.current().toLowerCase();return h.hasOwnProperty(r)?(o="property","maybeprop"):d.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):y?(o=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==t?"block":y||"hash"!=t&&"qualifier"!=t?R.top(t,e,n):(o="error","block")},maybeprop:function(t,e,n){return":"==t?_(n,e,"prop"):E(t,e,n)},prop:function(t,e,n){if(";"==t)return T(n);if("{"==t&&y)return _(n,e,"propBlock");if("}"==t||"{"==t)return j(t,e,n);if("("==t)return _(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)D(e);else if("interpolation"==t)return _(n,e,"interpolation")}else o+=" error";return"prop"},propBlock:function(t,e,n){return"}"==t?T(n):"word"==t?(o="property","maybeprop"):n.context.type},parens:function(t,e,n){return"{"==t||"}"==t?j(t,e,n):")"==t?T(n):"("==t?_(n,e,"parens"):"interpolation"==t?_(n,e,"interpolation"):("word"==t&&D(e),"parens")},pseudo:function(t,e,n){return"meta"==t?"pseudo":"word"==t?(o="variable-3",n.context.type):E(t,e,n)},documentTypes:function(t,e,n){return"word"==t&&l.hasOwnProperty(e.current())?(o="tag",n.context.type):R.atBlock(t,e,n)},atBlock:function(t,e,n){if("("==t)return _(n,e,"atBlock_parens");if("}"==t||";"==t)return j(t,e,n);if("{"==t)return T(n)&&_(n,e,y?"block":"top");if("interpolation"==t)return _(n,e,"interpolation");if("word"==t){var r=e.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?"keyword":h.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?k?"string-2":"property":m.hasOwnProperty(r)?"atom":v.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(t,e,n){return"}"==t?j(t,e,n):"{"==t?T(n)&&_(n,e,y?"block":"top",!1):("word"==t&&(o="error"),n.context.type)},atBlock_parens:function(t,e,n){return")"==t?T(n):"{"==t||"}"==t?j(t,e,n,2):R.atBlock(t,e,n)},restricted_atBlock_before:function(t,e,n){return"{"==t?_(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(t,e,n)},restricted_atBlock:function(t,e,n){return"}"==t?(n.stateArg=null,T(n)):"word"==t?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(t,e,n){return"word"==t?(o="variable","keyframes"):"{"==t?_(n,e,"top"):E(t,e,n)},at:function(t,e,n){return";"==t?T(n):"{"==t||"}"==t?j(t,e,n):("word"==t?o="tag":"hash"==t&&(o="builtin"),"at")},interpolation:function(t,e,n){return"}"==t?T(n):"{"==t||";"==t?j(t,e,n):("word"==t?o="variable":"variable"!=t&&"("!=t&&")"!=t&&(o="error"),"interpolation")}};return{startState:function(t){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new P(r?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||O)(t,e);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(e.state=R[e.state](i,t,e)),o},indent:function(t,e){var n=t.context,r=e&&e.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=e(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=e(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=e(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=e(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=e(u),h=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(h),p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=e(y),w=n.concat(i).concat(a).concat(l).concat(u).concat(h).concat(v).concat(y);function k(t,e){for(var n,r=!1;null!=(n=t.next());){if(r&&"/"==n){e.tokenize=null;break}r="*"==n}return["comment","comment"]}t.registerHelper("hintWords","css",w),t.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},":":function(t){return!!t.match(/^\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css",helperType:"gss"})}(n(4631))},6531:(t,e,n)=>{!function(t){"use strict";var e={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(t,e,n){var r=t.current(),i=r.search(e);return i>-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}var r={};function i(t){var e=r[t];return e||(r[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(t,e){var n=t.match(i(e));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function a(t,e){return new RegExp((e?"^":"")+"","i")}function s(t,e){for(var n in t)for(var r=e[n]||(e[n]=[]),i=t[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(t,e){for(var n=0;n=0;h--)c.script.unshift(["type",f[h].matches,f[h].mode]);function d(e,i){var s,u=o.token(e,i.htmlState),f=/\btag\b/.test(u);if(f&&!/[<>\s\/]/.test(e.current())&&(s=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(s))i.inTag=s+" ";else if(i.inTag&&f&&/>$/.test(e.current())){var h=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var p=">"==e.current()&&l(c[h[1]],h[2]),g=t.getMode(r,p),v=a(h[1],!0),m=a(h[1],!1);i.token=function(t,e){return t.match(v,!1)?(e.token=d,e.localState=e.localMode=null,null):n(t,m,e.localMode.token(t,e.localState))},i.localMode=g,i.localState=t.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=e.current(),e.eol()&&(i.inTag+=" "));return u}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(o)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(o,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?o.indent(e.htmlState,n,r):e.localMode.indent?e.localMode.indent(e.localState,n,r):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||o}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(4631),n(9589),n(6876),n(6629))},6876:(t,e,n)=>{!function(t){"use strict";t.defineMode("javascript",(function(e,n){var r,i,o=e.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,f=n.wordCharacters||/[\w$\xa1-\uffff]/,h=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),r=t("keyword c"),i=t("keyword d"),o=t("operator"),a={type:"atom",style:"atom"};return{if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:t("new"),delete:r,void:r,throw:r,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:t("this"),class:t("class"),super:t("atom"),yield:r,export:t("export"),import:t("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(t){for(var e,n=!1,r=!1;null!=(e=t.next());){if(!n){if("/"==e&&!r)return;"["==e?r=!0:r&&"]"==e&&(r=!1)}n=!n&&"\\"==e}}function v(t,e,n){return r=t,i=n,e}function m(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=y(n),e.tokenize(t,e);if("."==n&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return v("number","number");if("."==n&&t.match(".."))return v("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return v(n);if("="==n&&t.eat(">"))return v("=>","operator");if("0"==n&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return v("number","number");if(/\d/.test(n))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),v("number","number");if("/"==n)return t.eat("*")?(e.tokenize=b,b(t,e)):t.eat("/")?(t.skipToEnd(),v("comment","comment")):ie(t,e,1)?(g(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),v("regexp","string-2")):(t.eat("="),v("operator","operator",t.current()));if("`"==n)return e.tokenize=w,w(t,e);if("#"==n&&"!"==t.peek())return t.skipToEnd(),v("meta","meta");if("#"==n&&t.eatWhile(f))return v("variable","property");if("<"==n&&t.match("!--")||"-"==n&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),v("comment","comment");if(d.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-|&?]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),"?"==n&&t.eat(".")?v("."):v("operator","operator",t.current());if(f.test(n)){t.eatWhile(f);var r=t.current();if("."!=e.lastType){if(h.propertyIsEnumerable(r)){var i=h[r];return v(i.type,i.style,r)}if("async"==r&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return v("async","keyword",r)}return v("variable","variable",r)}}function y(t){return function(e,n){var r,i=!1;if(s&&"@"==e.peek()&&e.match(p))return n.tokenize=m,v("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=m),v("string","string")}}function b(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=m;break}r="*"==n}return v("comment","comment")}function w(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=m;break}r=!r&&"\\"==n}return v("quasi","string-2",t.current())}var k="([{}])";function x(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=t.string.charAt(a),l=k.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(f.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(t.string.charAt(a-1)==s&&"\\"!=t.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(e.fatArrowAt=a)}}var O={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function C(t,e,n,r,i,o){this.indented=t,this.column=e,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(t,e){if(!c)return!1;for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var r=t.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==e)return!0}function P(t,e,n,r,i){var o=t.cc;for(_.state=t,_.stream=i,_.marked=null,_.cc=o,_.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;)if((o.length?o.pop():l?W:z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&S(t,r)?"variable-2":e}}var _={state:null,column:null,marked:null,cc:null};function T(){for(var t=arguments.length-1;t>=0;t--)_.cc.push(arguments[t])}function E(){return T.apply(null,arguments),!0}function j(t,e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}function D(t){var e=_.state;if(_.marked="def",c){if(e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=R(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new Z(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new Z(t,e.globalVars))}}function R(t,e){if(e){if(e.block){var n=R(t,e.prev);return n?n==e.prev?e:new M(n,e.vars,!0):null}return j(t,e.vars)?e:new M(e.prev,new Z(t,e.vars),!1)}return null}function A(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function M(t,e,n){this.prev=t,this.vars=e,this.block=n}function Z(t,e){this.name=t,this.next=e}var L=new Z("this",new Z("arguments",null));function N(){_.state.context=new M(_.state.context,_.state.localVars,!1),_.state.localVars=L}function I(){_.state.context=new M(_.state.context,_.state.localVars,!0),_.state.localVars=null}function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function B(t,e){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new C(r,_.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function V(){var t=_.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function H(t){function e(n){return n==t?E():";"==t||"}"==n||")"==n||"]"==n?T():E(e)}return e}function z(t,e){return"var"==t?E(B("vardef",e),Tt,H(";"),V):"keyword a"==t?E(B("form"),q,z,V):"keyword b"==t?E(B("form"),z,V):"keyword d"==t?_.stream.match(/^\s*$/,!1)?E():E(B("stat"),K,H(";"),V):"debugger"==t?E(H(";")):"{"==t?E(B("}"),I,ht,V,F):";"==t?E():"if"==t?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==V&&_.state.cc.pop()(),E(B("form"),q,z,V,Mt)):"function"==t?E(It):"for"==t?E(B("form"),I,Zt,z,F,V):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form","class"==t?t:e),zt,V)):"variable"==t?u&&"declare"==e?(_.marked="keyword",E(z)):u&&("module"==e||"enum"==e||"type"==e)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==e?E(ee):"type"==e?E(Bt,H("operator"),mt,H(";")):E(B("form"),Et,H("{"),B("}"),ht,V,V)):u&&"namespace"==e?(_.marked="keyword",E(B("form"),W,z,V)):u&&"abstract"==e?(_.marked="keyword",E(z)):E(B("stat"),ot):"switch"==t?E(B("form"),q,H("{"),B("}","switch"),I,ht,V,V,F):"case"==t?E(W,H(":")):"default"==t?E(H(":")):"catch"==t?E(B("form"),N,U,z,V,F):"export"==t?E(B("stat"),qt,V):"import"==t?E(B("stat"),Kt,V):"async"==t?E(z):"@"==e?E(W,z):T(B("stat"),W,H(";"),V)}function U(t){if("("==t)return E(Vt,H(")"))}function W(t,e){return G(t,e,!1)}function $(t,e){return G(t,e,!0)}function q(t){return"("!=t?T():E(B(")"),K,H(")"),V)}function G(t,e,n){if(_.state.fatArrowAt==_.stream.start){var r=n?et:tt;if("("==t)return E(N,B(")"),ut(Vt,")"),V,H("=>"),r,F);if("variable"==t)return T(N,Et,H("=>"),r,F)}var i=n?X:Y;return O.hasOwnProperty(t)?E(i):"function"==t?E(It,i):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form"),Ht,V)):"keyword c"==t||"async"==t?E(n?$:W):"("==t?E(B(")"),K,H(")"),V,i):"operator"==t||"spread"==t?E(n?$:W):"["==t?E(B("]"),te,V,i):"{"==t?ft(st,"}",null,i):"quasi"==t?T(J,i):"new"==t?E(nt(n)):E()}function K(t){return t.match(/[;\}\)\],]/)?T():T(W)}function Y(t,e){return","==t?E(K):X(t,e,!1)}function X(t,e,n){var r=0==n?Y:X,i=0==n?W:$;return"=>"==t?E(N,n?et:tt,F):"operator"==t?/\+\+|--/.test(e)||u&&"!"==e?E(r):u&&"<"==e&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(B(">"),ut(mt,">"),V,r):"?"==e?E(W,H(":"),i):E(i):"quasi"==t?T(J,r):";"!=t?"("==t?ft($,")","call",r):"."==t?E(at,r):"["==t?E(B("]"),K,H("]"),V,r):u&&"as"==e?(_.marked="keyword",E(mt,r)):"regexp"==t?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),E(i)):void 0:void 0}function J(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(J):E(K,Q)}function Q(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(J)}function tt(t){return x(_.stream,_.state),T("{"==t?z:W)}function et(t){return x(_.stream,_.state),T("{"==t?z:$)}function nt(t){return function(e){return"."==e?E(t?it:rt):"variable"==e&&u?E(St,t?X:Y):T(t?$:W)}}function rt(t,e){if("target"==e)return _.marked="keyword",E(Y)}function it(t,e){if("target"==e)return _.marked="keyword",E(X)}function ot(t){return":"==t?E(V,z):T(Y,H(";"),V)}function at(t){if("variable"==t)return _.marked="property",E()}function st(t,e){return"async"==t?(_.marked="property",E(st)):"variable"==t||"keyword"==_.style?(_.marked="property","get"==e||"set"==e?E(lt):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),E(ct))):"number"==t||"string"==t?(_.marked=s?"property":_.style+" property",E(ct)):"jsonld-keyword"==t?E(ct):u&&A(e)?(_.marked="keyword",E(st)):"["==t?E(W,dt,H("]"),ct):"spread"==t?E($,ct):"*"==e?(_.marked="keyword",E(st)):":"==t?T(ct):void 0;var n}function lt(t){return"variable"!=t?T(ct):(_.marked="property",E(It))}function ct(t){return":"==t?E($):"("==t?T(It):void 0}function ut(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=_.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),E((function(n,r){return n==e||r==e?T():T(t)}),r)}return i==e||o==e?E():n&&n.indexOf(";")>-1?T(t):E(H(e))}return function(n,i){return n==e||i==e?E():T(t,r)}}function ft(t,e,n){for(var r=3;r"),mt):"quasi"==t?T(kt,Ct):void 0}function yt(t){if("=>"==t)return E(mt)}function bt(t){return t.match(/[\}\)\]]/)?E():","==t||";"==t?E(bt):T(wt,bt)}function wt(t,e){return"variable"==t||"keyword"==_.style?(_.marked="property",E(wt)):"?"==e||"number"==t||"string"==t?E(wt):":"==t?E(mt):"["==t?E(H("variable"),pt,H("]"),wt):"("==t?T(Ft,wt):t.match(/[;\}\)\],]/)?void 0:E()}function kt(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(kt):E(mt,xt)}function xt(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(kt)}function Ot(t,e){return"variable"==t&&_.stream.match(/^\s*[?:]/,!1)||"?"==e?E(Ot):":"==t?E(mt):"spread"==t?E(Ot):T(mt)}function Ct(t,e){return"<"==e?E(B(">"),ut(mt,">"),V,Ct):"|"==e||"."==t||"&"==e?E(mt):"["==t?E(mt,H("]"),Ct):"extends"==e||"implements"==e?(_.marked="keyword",E(mt)):"?"==e?E(mt,H(":"),mt):void 0}function St(t,e){if("<"==e)return E(B(">"),ut(mt,">"),V,Ct)}function Pt(){return T(mt,_t)}function _t(t,e){if("="==e)return E(mt)}function Tt(t,e){return"enum"==e?(_.marked="keyword",E(ee)):T(Et,dt,Rt,At)}function Et(t,e){return u&&A(e)?(_.marked="keyword",E(Et)):"variable"==t?(D(e),E()):"spread"==t?E(Et):"["==t?ft(Dt,"]"):"{"==t?ft(jt,"}"):void 0}function jt(t,e){return"variable"!=t||_.stream.match(/^\s*:/,!1)?("variable"==t&&(_.marked="property"),"spread"==t?E(Et):"}"==t?T():"["==t?E(W,H(']'),H(':'),jt):E(H(":"),Et,Rt)):(D(e),E(Rt))}function Dt(){return T(Et,Rt)}function Rt(t,e){if("="==e)return E($)}function At(t){if(","==t)return E(Tt)}function Mt(t,e){if("keyword b"==t&&"else"==e)return E(B("form","else"),z,V)}function Zt(t,e){return"await"==e?E(Zt):"("==t?E(B(")"),Lt,V):void 0}function Lt(t){return"var"==t?E(Tt,Nt):"variable"==t?E(Nt):T(Nt)}function Nt(t,e){return")"==t?E():";"==t?E(Nt):"in"==e||"of"==e?(_.marked="keyword",E(W,Nt)):T(W,Nt)}function It(t,e){return"*"==e?(_.marked="keyword",E(It)):"variable"==t?(D(e),E(It)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,z,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,It):void 0}function Ft(t,e){return"*"==e?(_.marked="keyword",E(Ft)):"variable"==t?(D(e),E(Ft)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,Ft):void 0}function Bt(t,e){return"keyword"==t||"variable"==t?(_.marked="type",E(Bt)):"<"==e?E(B(">"),ut(Pt,">"),V):void 0}function Vt(t,e){return"@"==e&&E(W,Vt),"spread"==t?E(Vt):u&&A(e)?(_.marked="keyword",E(Vt)):u&&"this"==t?E(dt,Rt):T(Et,dt,Rt)}function Ht(t,e){return"variable"==t?zt(t,e):Ut(t,e)}function zt(t,e){if("variable"==t)return D(e),E(Ut)}function Ut(t,e){return"<"==e?E(B(">"),ut(Pt,">"),V,Ut):"extends"==e||"implements"==e||u&&","==t?("implements"==e&&(_.marked="keyword"),E(u?mt:W,Ut)):"{"==t?E(B("}"),Wt,V):void 0}function Wt(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||u&&A(e))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",E(Wt)):"variable"==t||"keyword"==_.style?(_.marked="property",E($t,Wt)):"number"==t||"string"==t?E($t,Wt):"["==t?E(W,dt,H("]"),$t,Wt):"*"==e?(_.marked="keyword",E(Wt)):u&&"("==t?T(Ft,Wt):";"==t||","==t?E(Wt):"}"==t?E():"@"==e?E(W,Wt):void 0}function $t(t,e){if("!"==e)return E($t);if("?"==e)return E($t);if(":"==t)return E(mt,Rt);if("="==e)return E($);var n=_.state.lexical.prev;return T(n&&"interface"==n.info?Ft:It)}function qt(t,e){return"*"==e?(_.marked="keyword",E(Qt,H(";"))):"default"==e?(_.marked="keyword",E(W,H(";"))):"{"==t?E(ut(Gt,"}"),Qt,H(";")):T(z)}function Gt(t,e){return"as"==e?(_.marked="keyword",E(H("variable"))):"variable"==t?T($,Gt):void 0}function Kt(t){return"string"==t?E():"("==t?T(W):"."==t?T(Y):T(Yt,Xt,Qt)}function Yt(t,e){return"{"==t?ft(Yt,"}"):("variable"==t&&D(e),"*"==e&&(_.marked="keyword"),E(Jt))}function Xt(t){if(","==t)return E(Yt,Xt)}function Jt(t,e){if("as"==e)return _.marked="keyword",E(Yt)}function Qt(t,e){if("from"==e)return _.marked="keyword",E(W)}function te(t){return"]"==t?E():T(ut($,"]"))}function ee(){return T(B("form"),Et,H("{"),B("}"),ut(ne,"}"),V,V)}function ne(){return T(Et,Rt)}function re(t,e){return"operator"==t.lastType||","==t.lastType||d.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ie(t,e,n){return e.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}return F.lex=!0,V.lex=!0,{startState:function(t){var e={tokenize:m,lastType:"sof",cc:[],lexical:new C((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new M(null,null,!1),indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),x(t,e)),e.tokenize!=b&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",P(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==b||e.tokenize==w)return t.Pass;if(e.tokenize!=m)return 0;var i,s=r&&r.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(r))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==V)l=l.prev;else if(u!=Mt&&u!=F)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=e.cc[e.cc.length-1])&&(i==Y||i==X)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,h=s==f;return"vardef"==f?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==f&&"{"==s?l.indented:"form"==f?l.indented+o:"stat"==f?l.indented+(re(e,r)?a||o:0):"switch"!=l.info||h||0==n.doubleIndentSwitch?l.align?l.column+(h?0:1):l.indented+(h?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:ie,skipExpression:function(e){P(e,"atom","atom","true",new t.StringStream("",2,null))}}})),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/manifest+json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(4631))},9589:(t,e,n)=>{!function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?e:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function f(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return"<"==r?t.eat("!")?t.eat("[")?t.match("CDATA[")?n(p("atom","]]>")):null:t.match("--")?n(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(g(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=p("meta","?>"),"meta"):(o=t.eat("/")?"closeTag":"openTag",e.tokenize=h,"tag bracket"):"&"==r?(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error":(t.eatWhile(/[^&<]/),null)}function h(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=f,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){e.tokenize=f,e.state=w,e.tagName=e.tagStart=null;var r=e.tokenize(t,e);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=d(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function d(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=h;break}return"string"};return e.isInAttribute=!0,e}function p(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=f;break}n.next()}return t}}function g(t){return function(e,n){for(var r;null!=(r=e.next());){if("<"==r)return n.tokenize=g(t+1),n.tokenize(e,n);if(">"==r){if(1==t){n.tokenize=f;break}return n.tokenize=g(t-1),n.tokenize(e,n)}}return"meta"}}function v(t){return t&&t.toLowerCase()}function m(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function y(t){t.context&&(t.context=t.context.prev)}function b(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(v(n))||!l.contextGrabbers[v(n)].hasOwnProperty(v(e)))return;y(t)}}function w(t,e,n){return"openTag"==t?(n.tagStart=e.column(),k):"closeTag"==t?x:w}function k(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",S):l.allowMissingTagName&&"endTag"==t?(a="tag bracket",S(t,e,n)):(a="error",k)}function x(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(v(n.context.tagName))&&y(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",O):(a="tag error",C)}return l.allowMissingTagName&&"endTag"==t?(a="tag bracket",O(t,e,n)):(a="error",C)}function O(t,e,n){return"endTag"!=t?(a="error",O):(y(n),w)}function C(t,e,n){return a="error",O(t,e,n)}function S(t,e,n){if("word"==t)return a="attribute",P;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(v(r))?b(n,r):(b(n,r),n.context=new m(n,r,i==n.indented)),w}return a="error",S}function P(t,e,n){return"equals"==t?_:(l.allowMissing||(a="error"),S(t,e,n))}function _(t,e,n){return"string"==t?T:"word"==t&&l.allowUnquoted?(a="string",S):(a="error",S(t,e,n))}function T(t,e,n){return"string"==t?T:S(t,e,n)}return f.isInText=!0,{startState:function(t){var e={tokenize:f,state:w,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;o=null;var n=e.tokenize(t,e);return(n||o)&&"comment"!=n&&(a=null,e.state=e.state(o||n,t,e),a&&(n="error"==a?n+" error":a)),n},indent:function(e,n,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+s;if(i&&i.noIndent)return t.Pass;if(e.tokenize!=h&&e.tokenize!=f)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==l.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(t){t.state==_&&(t.state=S)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:"closeTag"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(4631))},5666:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new T(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=u(t,e,n);if("normal"===l.type){if(r=n.done?p:h,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(t,n,a),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f="suspendedStart",h="suspendedYield",d="executing",p="completed",g={};function v(){}function m(){}function y(){}var b={};b[o]=function(){return this};var w=Object.getPrototypeOf,k=w&&w(w(E([])));k&&k!==n&&r.call(k,o)&&(b=k);var x=y.prototype=v.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function C(t,e){function n(i,o,a,s){var l=u(t[i],t,o);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(f).then((function(t){c.value=t,a(c)}),(function(t){return n("throw",t,a,s)}))}s(l.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=u(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function E(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},6409:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r,i=n(2316),o=(r=function(t,e){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},r(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e}(n.n(i)().Model);const s=a},2828:(t,e,n)=>{var r={"./CanvasClear":9819,"./CanvasClear.js":9819,"./CanvasMove":2784,"./CanvasMove.js":2784,"./CommandAbstract":5884,"./CommandAbstract.js":5884,"./ComponentDelete":7585,"./ComponentDelete.js":7585,"./ComponentDrag":1035,"./ComponentDrag.js":1035,"./ComponentEnter":6785,"./ComponentEnter.js":6785,"./ComponentExit":9666,"./ComponentExit.js":9666,"./ComponentNext":7350,"./ComponentNext.js":7350,"./ComponentPrev":6572,"./ComponentPrev.js":6572,"./ComponentStyleClear":9097,"./ComponentStyleClear.js":9097,"./CopyComponent":515,"./CopyComponent.js":515,"./DeleteComponent":2095,"./DeleteComponent.js":2095,"./ExportTemplate":6949,"./ExportTemplate.js":6949,"./Fullscreen":6945,"./Fullscreen.js":6945,"./MoveComponent":5317,"./MoveComponent.js":5317,"./OpenAssets":9743,"./OpenAssets.js":9743,"./OpenBlocks":490,"./OpenBlocks.js":490,"./OpenLayers":3403,"./OpenLayers.js":3403,"./OpenStyleManager":9346,"./OpenStyleManager.js":9346,"./OpenTraitManager":2643,"./OpenTraitManager.js":2643,"./PasteComponent":5966,"./PasteComponent.js":5966,"./Preview":2074,"./Preview.js":2074,"./Resize":3953,"./Resize.js":3953,"./SelectComponent":7208,"./SelectComponent.js":7208,"./SelectPosition":1988,"./SelectPosition.js":1988,"./ShowOffset":6069,"./ShowOffset.js":6069,"./SwitchVisibility":2927,"./SwitchVisibility.js":2927};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code='MODULE_NOT_FOUND',e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=o,t.exports=i,i.id=2828},907:(t,e,n)=>{"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nr})},7326:(t,e,n)=>{"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,{Z:()=>r})},5861:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,a){try{var s=t[o](a),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,l,"next",t)}function l(t){r(a,i,o,s,l,"throw",t)}s(void 0)}))}}n.d(e,{Z:()=>i})},5671:(t,e,n)=>{"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:()=>r})},3144:(t,e,n)=>{"use strict";function r(t,e){for(var n=0;ni})},4942:(t,e,n)=>{"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>r})},1120:(t,e,n)=>{"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:()=>r})},9340:(t,e,n)=>{"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&r(t,e)}n.d(e,{Z:()=>i})},4925:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},2963:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(1002),i=n(7326);function o(t,e){if(e&&("object"===(0,r.Z)(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(t)}},885:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(181);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}}(t,e)||(0,r.Z)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},168:(t,e,n)=>{"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,{Z:()=>r})},2982:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(907);var i=n(181);function o(t){return function(t){if(Array.isArray(t))return(0,r.Z)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.Z)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},1002:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},181:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(907);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}},9050:(t,e,n)=>{"use strict";n.r(e),n.d(e,{VERSION:()=>i,after:()=>Me,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Mt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>zn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Mt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>R,isObject:()=>S,isRegExp:()=>M,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Re,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Mn,unescape:()=>se,union:()=>Rn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Mn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var r={};n.r(r),n.d(r,{VERSION:()=>i,after:()=>Me,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Mt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>Vn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Mt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>R,isObject:()=>S,isRegExp:()=>M,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Re,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Mn,unescape:()=>se,union:()=>Rn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Mn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var i='1.13.1',o='object'==typeof self&&self.self===self&&self||'object'==typeof global&&global.global===global&&global||Function('return this')()||{},a=Array.prototype,s=Object.prototype,l='undefined'!=typeof Symbol?Symbol.prototype:null,c=a.push,u=a.slice,f=s.toString,h=s.hasOwnProperty,d='undefined'!=typeof ArrayBuffer,p='undefined'!=typeof DataView,g=Array.isArray,v=Object.keys,m=Object.create,y=d&&ArrayBuffer.isView,b=isNaN,w=isFinite,k=!{toString:null}.propertyIsEnumerable('toString'),x=['valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'],O=Math.pow(2,53)-1;function C(t,e){return e=null==e?t.length-1:+e,function(){for(var n=Math.max(arguments.length-e,0),r=Array(n),i=0;i=0&&n<=O}}function tt(t){return function(e){return null==e?void 0:e[t]}}const et=tt('byteLength'),nt=Q(et);var rt=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const it=d?function(t){return y?y(t)&&!W(t):nt(t)&&rt.test(f.call(t))}:J(!1),ot=tt('length');function at(t,e){e=function(t){for(var e={},n=t.length,r=0;r':'>','"':'"',"'":''','`':'`'},ae=ie(oe),se=ie(jt(oe)),le=ut.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ce=/(.)^/,ue={"'":"'",'\\':'\\','\r':'r','\n':'n','\u2028':'u2028','\u2029':'u2029'},fe=/\\|'|\r|\n|\u2028|\u2029/g;function he(t){return'\\'+ue[t]}var de=/^\s*(\w|\$)+\s*$/;function pe(t,e,n){!e&&n&&(e=n),e=Zt({},e,ut.templateSettings);var r=RegExp([(e.escape||ce).source,(e.interpolate||ce).source,(e.evaluate||ce).source].join('|')+'|$','g'),i=0,o="__p+='";t.replace(r,(function(e,n,r,a,s){return o+=t.slice(i,s).replace(fe,he),i=s+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e})),o+="';\n";var a,s=e.variable;if(s){if(!de.test(s))throw new Error('variable is not a bare identifier: '+s)}else o='with(obj||{}){\n'+o+'}\n',s='obj';o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+'return __p;\n';try{a=new Function(s,'_',o)}catch(t){throw t.source=o,t}var l=function(t){return a.call(this,t,ut)};return l.source='function('+s+'){\n'+o+'}',l}function ge(t,e,n){var r=(e=Vt(e)).length;if(!r)return B(n)?n.call(t):n;for(var i=0;i1)Ce(s,e-1,n,r),i=r.length;else for(var l=0,c=s.length;le?(r&&(clearTimeout(r),r=null),s=c,a=t.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),s=0,r=i=o=null},c}function je(t,e,n){var r,i,o,a,s,l=function(){var c=re()-i;e>c?r=setTimeout(l,e-c):(r=null,n||(a=t.apply(s,o)),r||(o=s=null))},c=C((function(c){return s=this,o=c,i=re(),r||(r=setTimeout(l,e),n&&(a=t.apply(s,o))),a}));return c.cancel=function(){clearTimeout(r),r=o=s=null},c}function De(t,e){return ke(e,t)}function Re(t){return function(){return!t.apply(this,arguments)}}function Ae(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function Me(t,e){return function(){if(--t<1)return e.apply(this,arguments)}}function Ze(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}}const Le=ke(Ze,2);function Ne(t,e,n){e=Xt(e,n);for(var r,i=st(t),o=0,a=i.length;o0?0:i-1;o>=0&&o0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(n&&o&&s)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=e(u.call(r,a,s),X))>=0?o+a:-1;for(o=t>0?a:s-1;o>=0&&o0?0:a-1;for(i||(r=e[o?o[s]:s],s+=t);s>=0&&s=3;return e(t,Gt(n,i,4),r,o)}}const Ye=Ke(1),Xe=Ke(-1);function Je(t,e,n){var r=[];return e=Xt(e,n),qe(t,(function(t,n,i){e(t,n,i)&&r.push(t)})),r}function Qe(t,e,n){return Je(t,Re(Xt(e)),n)}function tn(t,e,n){e=Xt(e,n);for(var r=!Oe(t)&&st(t),i=(r||t).length,o=0;o=0}const rn=C((function(t,e,n){var r,i;return B(e)?i=e:(e=Vt(e),r=e.slice(0,-1),e=e[e.length-1]),Ge(t,(function(t){var o=i;if(!o){if(r&&r.length&&(t=Ht(t,r)),null==t)return;o=t[e]}return null==o?o:o.apply(t,n)}))}));function on(t,e){return Ge(t,qt(e))}function an(t,e){return Je(t,$t(e))}function sn(t,e,n){var r,i,o=-1/0,a=-1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;so&&(o=r);else e=Xt(e,n),qe(t,(function(t,n,r){((i=e(t,n,r))>a||i===-1/0&&o===-1/0)&&(o=t,a=i)}));return o}function ln(t,e,n){var r,i,o=1/0,a=1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;sr||void 0===n)return 1;if(n1&&(r=Gt(r,e[1])),e=vt(t)):(r=wn,e=Ce(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(n=e[1])):(e=Ge(Ce(e,!1,!1),String),r=function(t,n){return!nn(e,n)}),kn(t,r,n)}));function On(t,e,n){return u.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))}function Cn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[0]:On(t,t.length-e)}function Sn(t,e,n){return u.call(t,null==e||n?1:e)}function Pn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[t.length-1]:Sn(t,Math.max(0,t.length-e))}function _n(t){return Je(t,Boolean)}function Tn(t,e){return Ce(t,e,!1)}const En=C((function(t,e){return e=Ce(e,!0,!0),Je(t,(function(t){return!nn(e,t)}))})),jn=C((function(t,e){return En(t,e)}));function Dn(t,e,n,r){T(e)||(r=n,n=e,e=!1),null!=n&&(n=Xt(n,r));for(var i=[],o=[],a=0,s=ot(t);a{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if('object'==typeof globalThis)return globalThis;try{return this||new Function('return this')()}catch(t){if('object'==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(t,'__esModule',{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>U});var t=n(4942),e=n(9050),i=n(290),o=n(5861),a=n(7757),s=n.n(a),l=n(8595);const c={stylePrefix:'gjs-',components:'',style:'',fromElement:0,projectData:null,noticeOnUnload:!0,showOffsets:!1,showOffsetsSelected:!1,forceClass:!0,height:'900px',width:'100%',log:['warning','error'],baseCss:"\n * {\n box-sizing: border-box;\n }\n html, body, [data-gjs-type=wrapper] {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n [data-gjs-type=wrapper] {\n overflow: auto;\n overflow-x: hidden;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n ",protectedCss:'* { box-sizing: border-box; } body {margin: 0;}',canvasCss:'',defaultCommand:'select-comp',showToolbar:1,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,optsHtml:{},optsCss:{},avoidInlineStyle:1,avoidDefaults:1,clearStyles:0,dragMode:0,listenToEl:[],cssIcons:'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css',icons:{close:'',move:'',plus:'',caret:'',delete:'',copy:'',arrowUp:''},el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{},styleManager:{},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0,customUI:!1};var u=n(4925),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n.n(v);var y=n(3168),b=n(6409);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var k=function(t){(0,d.Z)(n,t);var e=w(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n)}(b.Z),x=function(t){(0,d.Z)(r,t);var n=w(r);function r(){return(0,f.Z)(this,r),n.apply(this,arguments)}return(0,h.Z)(r,[{key:"getByComponent",value:function(t){var e=this;return this.filter((function(n){return e.getComponent(n)===t}))[0]}},{key:"addComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).filter((function(t){return!r.hasComponent(t)})).map((function(t){return{component:t}}));return this.push(i,n)}},{key:"getComponent",value:function(t){return t.get('component')}},{key:"hasComponent",value:function(t){var e=this.getByComponent(t);return e&&this.contains(e)}},{key:"lastComponent",value:function(){var t=this.last();return t&&this.getComponent(t)}},{key:"allComponents",value:function(){var t=this;return this.map((function(e){return t.getComponent(e)})).filter((function(t){return t}))}},{key:"removeComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).map((function(t){return r.getByComponent(t)}));return this.remove(i,n)}}]),r}(v.Collection);x.prototype.model=k;var O=["unset"];function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};this.config=n;var r=this.config;this.set('Config',r),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new x),this.set('dmode',r.dragMode);var i=r.el,o=r.log,a=!0===o?(0,e.keys)(j):(0,e.isArray)(o)?o:[];(0,e.bindAll)(this,'initBaseColorPicker'),i&&r.fromElement&&(r.components=i.innerHTML),this.attrsOrig=i?(0,e.toArray)(i.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',r.components&&!r.pageManager&&(r.pageManager={pages:[{component:r.components}]}),E.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),this.on('change:readyLoad change:readyCanvas',this._checkReady,this),a.forEach((function(e){return t.listenLog(e)})),[{from:'change:selectedComponent',to:'component:toggled'}].forEach((function(e){var n=e.from,r=e.to;t.listenTo(t,n,(function(){for(var e=arguments.length,i=new Array(e),o=0;o=e.getStepsBeforeSave()&&this.store().catch((function(e){return t.logError(e)}))}},{key:"loadModule",value:function(t){var n=this.config,r=new(t.default||t),i=r.name.charAt(0).toLowerCase()+r.name.slice(1),o=(0,e.isUndefined)(n[i])?n[r.name]:n[i],a=!0===o?{}:o||{};if(a.pStylePrefix=n.pStylePrefix||'',(0,e.isUndefined)(o)||o||(a._disable=1),r.storageKey&&r.store&&r.load){var s=['domComponents','pageManager'].indexOf(i)>=0?'unshift':'push';this.get('storables')[s](r)}return a.em=this,r.init(S({},a)),!r.private&&this.set(r.name,r),r.onLoad&&this.get('toLoad').push(r),this.get('modules').push(r),this}},{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroyed&&(this.initialize(e),this.destroyed=0),this.set('Editor',t)}},{key:"getEditor",value:function(){return this.get('Editor')}},{key:"handleUpdates",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.__skip||r.temporary||r.noCount||r.avoidStore||!this.get('ready')||(_&&clearTimeout(_),_=setTimeout((function(){var t=n.getDirtyCount()||0,e=(r.unset,(0,u.Z)(r,O));n.set('changesCount',t+1,e)}),0))}},{key:"changesUp",value:function(t){this.handleUpdates(0,0,t)}},{key:"componentHovered",value:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)}},{key:"getSelected",value:function(){return this.get('selected').lastComponent()}},{key:"getSelectedAll",value:function(){return this.get('selected').allComponents()}},{key:"setSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.event,a=o&&(o.ctrlKey||o.metaKey),s=o||{},l=s.shiftKey,c=(0,e.isArray)(t),u=(c?t:[t]).map((function(t){return(0,y.getModel)(t,i.default)})),f=this.getSelectedAll(),h=this.getConfig('multipleSelection');c&&this.removeSelected(f.filter((function(t){return!(0,e.contains)(u,t)}))),u.forEach((function(t){var i=(0,y.getModel)(t);if(i&&(n.trigger('component:select:before',i,r),!i.get('selectable')||r.abort)){if(!r.useValid)return;for(var o=i.parent();o&&!o.get('selectable');)o=o.parent();i=o}if(a&&h)return n.toggleSelected(i);if(l&&h){n.clearSelection(n.get('Canvas').getWindow());var s,u,d=i.collection,p=i.index();if(n.getSelectedAll().forEach((function(t){var n=t.collection,r=t.index();n===d&&(rp&&(u=(0,e.isUndefined)(u)?r:Math.min(u,r)))})),!(0,e.isUndefined)(s))for(;s!==p;)n.addSelected(d.at(s)),s++;if(!(0,e.isUndefined)(u))for(;u!==p;)n.addSelected(d.at(u)),u--;return n.addSelected(i)}!c&&n.removeSelected(f.filter((function(t){return t!==i}))),n.addSelected(i,r),i}))}},{key:"addSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){if(!t||t.get('selectable')){var e=n.get('selected');r.forceChange&&n.removeSelected(t,r),e.addComponent(t,r),t&&n.trigger('component:select',t,r)}}))}},{key:"removeSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').removeComponent((0,y.getModel)(t,i.default),e)}},{key:"toggleSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){n.get('selected').hasComponent(t)?n.removeSelected(t,r):n.addSelected(t,r)}))}},{key:"setHovered",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return this.set('componentHovered','');var n='component:hover',r=(0,y.getModel)(t);if(r){if(e.forceChange&&this.set('componentHovered',''),this.trigger("".concat(n,":before"),r,e),!r.get('hoverable')){if(!e.useValid||e.abort)return;for(var i=r&&r.parent();i&&!i.get('hoverable');)i=i.parent();r=i}e.abort||(this.set('componentHovered',r,e),this.trigger(n,r,e))}}},{key:"getHovered",value:function(){return this.get('componentHovered')}},{key:"setComponents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)}},{key:"getComponents",value:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}}},{key:"setStyle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('CssComposer');return n.clear(e),n.getAll().add(t,e),this}},{key:"addStyle",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getStyle().add(t,n);return(0,e.isArray)(r)?r:[r]}},{key:"getStyle",value:function(){return this.get('CssComposer').getAll()}},{key:"setState",value:function(t){return this.set('state',t),this}},{key:"getState",value:function(){return this.get('state')||''}},{key:"getHtml",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.jsInHtml?this.getJs(t):'',i=t.component||this.get('DomComponents').getComponent(),o=i?this.get('CodeManager').getCode(i,'html',S(S({},n),t)):'';return o+=r?"` : '';\r\n return html;\r\n }\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @returns {string} CSS string\r\n * @private\r\n */\r\n getCss(opts = {}) {\r\n const config = this.config;\r\n const { optsCss } = config;\r\n const avoidProt = opts.avoidProtected;\r\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\r\n const cssc = this.get('CssComposer');\r\n const wrp = opts.component || this.get('DomComponents').getComponent();\r\n const protCss = !avoidProt ? config.protectedCss : '';\r\n const css =\r\n wrp &&\r\n this.get('CodeManager').getCode(wrp, 'css', {\r\n cssc,\r\n keepUnusedStyles,\r\n ...optsCss,\r\n ...opts,\r\n });\r\n return wrp ? (opts.json ? css : protCss + css) : '';\r\n }\r\n\r\n /**\r\n * Returns JS of all components\r\n * @return {string} JS string\r\n * @private\r\n */\r\n getJs(opts = {}) {\r\n var wrp = opts.component || this.get('DomComponents').getWrapper();\r\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\r\n }\r\n\r\n /**\r\n * Store data to the current storage.\r\n * @private\r\n */\r\n async store(options) {\r\n const data = this.storeData();\r\n await this.get('StorageManager').store(data, options);\r\n this.clearDirtyCount();\r\n return data;\r\n }\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @private\r\n */\r\n async load(options) {\r\n const result = await this.get('StorageManager').load(options);\r\n this.loadData(result);\r\n return result;\r\n }\r\n\r\n storeData() {\r\n let result = {};\r\n // Sync content if there is an active RTE\r\n const editingCmp = this.getEditing();\r\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\r\n\r\n this.get('storables').forEach(m => {\r\n result = { ...result, ...m.store(1) };\r\n });\r\n return JSON.parse(JSON.stringify(result));\r\n }\r\n\r\n loadData(data = {}) {\r\n this.get('storables').forEach(module => module.load(data));\r\n return data;\r\n }\r\n\r\n /**\r\n * Returns device model by name\r\n * @return {Device|null}\r\n * @private\r\n */\r\n getDeviceModel() {\r\n var name = this.get('device');\r\n return this.get('DeviceManager').get(name);\r\n }\r\n\r\n /**\r\n * Run default command if setted\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n runDefault(opts = {}) {\r\n var command = this.get('Commands').get(this.config.defaultCommand);\r\n if (!command || this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n command.run(this, this, opts);\r\n this.defaultRunning = 1;\r\n }\r\n\r\n /**\r\n * Stop default command\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n stopDefault(opts = {}) {\r\n const commands = this.get('Commands');\r\n const command = commands.get(this.config.defaultCommand);\r\n if (!command || !this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n this.defaultRunning = 0;\r\n }\r\n\r\n /**\r\n * Update canvas dimensions and refresh data useful for tools positioning\r\n * @private\r\n */\r\n refreshCanvas(opts = {}) {\r\n this.set('canvasOffset', null);\r\n this.set('canvasOffset', this.get('Canvas').getOffset());\r\n opts.tools && this.trigger('canvas:updateTools');\r\n }\r\n\r\n /**\r\n * Clear all selected stuf inside the window, sometimes is useful to call before\r\n * doing some dragging opearation\r\n * @param {Window} win If not passed the current one will be used\r\n * @private\r\n */\r\n clearSelection(win) {\r\n var w = win || window;\r\n w.getSelection().removeAllRanges();\r\n }\r\n\r\n /**\r\n * Get the current media text\r\n * @return {string}\r\n */\r\n getCurrentMedia() {\r\n const config = this.config;\r\n const device = this.getDeviceModel();\r\n const condition = config.mediaCondition;\r\n const preview = config.devicePreviewMode;\r\n const width = device && device.get('widthMedia');\r\n return device && width && !preview ? `(${condition}: ${width})` : '';\r\n }\r\n\r\n /**\r\n * Return the component wrapper\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return this.get('DomComponents').getWrapper();\r\n }\r\n\r\n setCurrentFrame(frameView) {\r\n return this.set('currentFrame', frameView);\r\n }\r\n\r\n getCurrentFrame() {\r\n return this.get('currentFrame');\r\n }\r\n\r\n getCurrentFrameModel() {\r\n return (this.getCurrentFrame() || {}).model;\r\n }\r\n\r\n getIcon(icon) {\r\n const icons = this.getConfig('icons') || {};\r\n return icons[icon] || '';\r\n }\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return this.get('changesCount');\r\n }\r\n\r\n clearDirtyCount() {\r\n return this.set('changesCount', 0);\r\n }\r\n\r\n getZoomDecimal() {\r\n return this.get('Canvas').getZoomDecimal();\r\n }\r\n\r\n getZoomMultiplier() {\r\n return this.get('Canvas').getZoomMultiplier();\r\n }\r\n\r\n setDragMode(value) {\r\n return this.set('dmode', value);\r\n }\r\n\r\n t(...args) {\r\n const i18n = this.get('I18n');\r\n return i18n?.t(...args);\r\n }\r\n\r\n /**\r\n * Returns true if the editor is in absolute mode\r\n * @returns {Boolean}\r\n */\r\n inAbsoluteMode() {\r\n return this.get('dmode') === 'absolute';\r\n }\r\n\r\n /**\r\n * Destroy editor\r\n */\r\n destroyAll() {\r\n const { config, view } = this;\r\n const editor = this.getEditor();\r\n const { editors = [] } = config.grapesjs || {};\r\n const shallow = this.get('shallow');\r\n shallow?.destroyAll();\r\n this.stopListening();\r\n this.stopDefault();\r\n this.get('modules')\r\n .slice()\r\n .reverse()\r\n .forEach(mod => mod.destroy());\r\n view && view.remove();\r\n this.clear({ silent: true });\r\n this.destroyed = 1;\r\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\r\n editors.splice(editors.indexOf(editor), 1);\r\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\r\n }\r\n\r\n getEditing() {\r\n const res = this.get('editing');\r\n return (res && res.model) || null;\r\n }\r\n\r\n setEditing(value) {\r\n this.set('editing', value);\r\n return this;\r\n }\r\n\r\n isEditing() {\r\n return !!this.get('editing');\r\n }\r\n\r\n log(msg, opts = {}) {\r\n const { ns, level = 'debug' } = opts;\r\n this.trigger('log', msg, opts);\r\n level && this.trigger(`log:${level}`, msg, opts);\r\n\r\n if (ns) {\r\n const logNs = `log-${ns}`;\r\n this.trigger(logNs, msg, opts);\r\n level && this.trigger(`${logNs}:${level}`, msg, opts);\r\n }\r\n }\r\n\r\n logInfo(msg, opts) {\r\n this.log(msg, { ...opts, level: 'info' });\r\n }\r\n\r\n logWarning(msg, opts) {\r\n this.log(msg, { ...opts, level: 'warning' });\r\n }\r\n\r\n logError(msg, opts) {\r\n this.log(msg, { ...opts, level: 'error' });\r\n }\r\n\r\n initBaseColorPicker(el, opts = {}) {\r\n const config = this.getConfig();\r\n const { colorPicker = {} } = config;\r\n const elToAppend = config.el;\r\n const ppfx = config.stylePrefix;\r\n\r\n return $(el).spectrum({\r\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\r\n appendTo: elToAppend || 'body',\r\n maxSelectionSize: 8,\r\n showPalette: true,\r\n palette: [],\r\n showAlpha: true,\r\n chooseText: 'Ok',\r\n cancelText: '⨯',\r\n ...opts,\r\n ...colorPicker,\r\n });\r\n }\r\n\r\n /**\r\n * Execute actions without triggering the storage and undo manager.\r\n * @param {Function} clb\r\n * @private\r\n */\r\n skip(clb) {\r\n this.__skip = true;\r\n const um = this.get('UndoManager');\r\n um ? um.skip(clb) : clb();\r\n this.__skip = false;\r\n }\r\n\r\n /**\r\n * Set/get data from the HTMLElement\r\n * @param {HTMLElement} el\r\n * @param {string} name Data name\r\n * @param {any} value Date value\r\n * @return {any}\r\n * @private\r\n */\r\n data(el, name, value) {\r\n const varName = '_gjs-data';\r\n\r\n if (!el[varName]) {\r\n el[varName] = {};\r\n }\r\n\r\n if (isUndefined(value)) {\r\n return el[varName][name];\r\n } else {\r\n el[varName][name] = value;\r\n }\r\n }\r\n}\r\n","import { isObject } from 'underscore';\r\n\r\nexport default ({ $ }) => {\r\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\r\n const fn = $.fn;\r\n\r\n // Additional helpers\r\n\r\n fn.hide = function () {\r\n return this.css('display', 'none');\r\n };\r\n\r\n fn.show = function () {\r\n return this.css('display', 'block');\r\n };\r\n\r\n fn.focus = function () {\r\n const el = this.get(0);\r\n el && el.focus();\r\n return this;\r\n };\r\n\r\n // For SVGs in IE\r\n // (fn.removeClass = function(c) {\r\n // if (!arguments.length) {\r\n // return this.attr('class', '');\r\n // }\r\n // const classes = isString(c) && c.match(/\\S+/g);\r\n // return classes\r\n // ? this.each(function(el) {\r\n // each(classes, function(c) {\r\n // if (el.classList) {\r\n // el.classList.remove(c);\r\n // } else {\r\n // const val = el.className;\r\n // const bval = el.className.baseVal;\r\n\r\n // if (!isUndefined(bval)) {\r\n // val.baseVal = bval.replace(c, '');\r\n // } else {\r\n // el.className = val.replace(c, '');\r\n // }\r\n // }\r\n // });\r\n // })\r\n // : this;\r\n // }),\r\n // (fn.remove = function() {\r\n // return this.each(node => {\r\n // return node.parentNode && node.parentNode.removeChild(node);\r\n // });\r\n // }),\r\n\r\n // For spectrum compatibility\r\n\r\n fn.bind = function (ev, h) {\r\n return this.on(ev, h);\r\n };\r\n\r\n fn.unbind = function (ev, h) {\r\n if (isObject(ev)) {\r\n for (let name in ev) {\r\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\r\n }\r\n\r\n return this;\r\n } else {\r\n return this.off(ev, h);\r\n }\r\n };\r\n\r\n fn.click = function (h) {\r\n return h ? this.on('click', h) : this.trigger('click');\r\n };\r\n\r\n fn.change = function (h) {\r\n return h ? this.on('change', h) : this.trigger('change');\r\n };\r\n\r\n fn.keydown = function (h) {\r\n return h ? this.on('keydown', h) : this.trigger('keydown');\r\n };\r\n\r\n fn.delegate = function (selector, events, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n }\r\n\r\n return this.on(events, selector, function (e) {\r\n e.data = data;\r\n handler(e);\r\n });\r\n };\r\n\r\n fn.scrollLeft = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageXOffset : el.scrollLeft || 0;\r\n };\r\n\r\n fn.scrollTop = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageYOffset : el.scrollTop || 0;\r\n };\r\n\r\n const offset = $.prototype.offset;\r\n fn.offset = function (coords) {\r\n let top, left;\r\n\r\n if (coords) {\r\n top = coords.top;\r\n left = coords.left;\r\n }\r\n\r\n if (typeof top != 'undefined') {\r\n this.css('top', `${top}px`);\r\n }\r\n if (typeof left != 'undefined') {\r\n this.css('left', `${left}px`);\r\n }\r\n\r\n return offset.call(this);\r\n };\r\n\r\n $.map = function (items, clb) {\r\n const ar = [];\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n ar.push(clb(items[i], i));\r\n }\r\n\r\n return ar;\r\n };\r\n\r\n const indexOf = Array.prototype.indexOf;\r\n\r\n $.inArray = function (val, arr, i) {\r\n return arr == null ? -1 : indexOf.call(arr, val, i);\r\n };\r\n\r\n $.Event = function (src, props) {\r\n if (!(this instanceof $.Event)) {\r\n return new $.Event(src, props);\r\n }\r\n\r\n this.type = src;\r\n this.isDefaultPrevented = () => false;\r\n };\r\n }\r\n};\r\n","import Backbone from 'backbone';\r\nimport { View } from '../../common';\r\nimport { appendStyles } from '../../utils/mixins';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default class EditorView extends View {\r\n initialize() {\r\n const { model } = this;\r\n const { Panels, UndoManager } = model.attributes;\r\n model.view = this;\r\n model.once('change:ready', () => {\r\n Panels.active();\r\n Panels.disableButtons();\r\n UndoManager.clear();\r\n setTimeout(() => {\r\n model.trigger('load', model.get('Editor'));\r\n model.clearDirtyCount();\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n const { $el, model } = this;\r\n const { Panels, Canvas, modules } = model.attributes;\r\n const conf = model.getConfig();\r\n const pfx = conf.stylePrefix;\r\n const contEl = $(conf.el || `body ${conf.container}`);\r\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\r\n $el.empty();\r\n\r\n if (conf.width) contEl.css('width', conf.width);\r\n if (conf.height) contEl.css('height', conf.height);\r\n\r\n $el.append(Canvas.render());\r\n $el.append(Panels.render());\r\n\r\n // Load shallow editor\r\n const shallow = model.get('shallow');\r\n const shallowCanvasEl = shallow.get('Canvas').render();\r\n shallowCanvasEl.style.display = 'none';\r\n $el.append(shallowCanvasEl);\r\n\r\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\r\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\r\n modules.forEach(md => md.postRender && md.postRender(this));\r\n\r\n return this;\r\n }\r\n}\r\n","/**\r\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\r\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\r\n *\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * // options\r\n * });\r\n * ```\r\n *\r\n * ## Available Events\r\n *\r\n * You can make use of available events in this way\r\n * ```js\r\n * editor.on('EVENT-NAME', (some, argument) => {\r\n * // do something\r\n * })\r\n * ```\r\n *\r\n * * `update` - The structure of the template is updated (its HTML/CSS)\r\n * * `undo` - Undo executed\r\n * * `redo` - Redo executed\r\n * * `load` - Editor is loaded\r\n *\r\n * ### Components\r\n * Check the [Components](/api/components.html) module.\r\n * ### Keymaps\r\n * Check the [Keymaps](/api/keymaps.html) module.\r\n * ### Style Manager\r\n * Check the [Style Manager](/api/style_manager.html) module.\r\n * ### Storage\r\n * Check the [Storage](/api/storage_manager.html) module.\r\n * ### Canvas\r\n * Check the [Canvas](/api/canvas.html) module.\r\n * ### RTE\r\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\r\n * ### Commands\r\n * Check the [Commands](/api/commands.html) module.\r\n * ### Selectors\r\n * Check the [Selectors](/api/selector_manager.html) module.\r\n * ### Blocks\r\n * Check the [Blocks](/api/block_manager.html) module.\r\n * ### Assets\r\n * Check the [Assets](/api/assets.html) module.\r\n * ### Modal\r\n * Check the [Modal](/api/modal_dialog.html) module.\r\n * ### Devices\r\n * Check the [Devices](/api/device_manager.html) module.\r\n * ### Parser\r\n * Check the [Parser](/api/parser.html) module.\r\n * ### Pages\r\n * Check the [Pages](/api/pages.html) module.\r\n *\r\n * ## Methods\r\n * @module Editor\r\n */\r\nimport html from '../utils/html';\r\nimport defaults from './config/config';\r\nimport EditorModel from './model/Editor';\r\nimport EditorView from './view/EditorView';\r\n\r\nexport default (config = {}, opts = {}) => {\r\n const { $ } = opts;\r\n let c = {\r\n ...defaults,\r\n ...config,\r\n };\r\n\r\n c.pStylePrefix = c.stylePrefix;\r\n let em = new EditorModel(c);\r\n let editorView;\r\n\r\n return {\r\n $,\r\n\r\n /**\r\n * @property {EditorModel}\r\n * @private\r\n */\r\n editor: em,\r\n\r\n modules: [],\r\n\r\n /**\r\n * Initialize editor model\r\n * @return {this}\r\n * @private\r\n */\r\n init(opts = {}) {\r\n em.init(this, { ...c, ...opts });\r\n\r\n this.modules = [\r\n 'I18n',\r\n 'Utils',\r\n 'Config',\r\n 'Commands',\r\n 'Keymaps',\r\n 'Modal',\r\n 'Panels',\r\n 'Canvas',\r\n 'Parser',\r\n 'CodeManager',\r\n 'UndoManager',\r\n 'RichTextEditor',\r\n ['Pages', 'PageManager'],\r\n 'DomComponents',\r\n ['Components', 'DomComponents'],\r\n 'LayerManager',\r\n ['Layers', 'LayerManager'],\r\n 'CssComposer',\r\n ['Css', 'CssComposer'],\r\n 'StorageManager',\r\n ['Storage', 'StorageManager'],\r\n 'AssetManager',\r\n ['Assets', 'AssetManager'],\r\n 'BlockManager',\r\n ['Blocks', 'BlockManager'],\r\n 'TraitManager',\r\n ['Traits', 'TraitManager'],\r\n 'SelectorManager',\r\n ['Selectors', 'SelectorManager'],\r\n 'StyleManager',\r\n ['Styles', 'StyleManager'],\r\n 'DeviceManager',\r\n ['Devices', 'DeviceManager'],\r\n ];\r\n\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = em.get(prop[1]);\r\n } else {\r\n this[prop] = em.get(prop);\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns configuration object\r\n * @param {string} [prop] Property name\r\n * @returns {any} Returns the configuration object or\r\n * the value of the specified property\r\n */\r\n getConfig(prop) {\r\n return em.getConfig(prop);\r\n },\r\n\r\n /**\r\n * Returns HTML built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the HTML of a specific Component\r\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\r\n * @returns {string} HTML string\r\n */\r\n getHtml(opts) {\r\n return em.getHtml(opts);\r\n },\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the CSS of a specific Component\r\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\r\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\r\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\r\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\r\n * @returns {String|Array} CSS string or array of CssRules\r\n */\r\n getCss(opts) {\r\n return em.getCss(opts);\r\n },\r\n\r\n /**\r\n * Returns JS of all components\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Get the JS of a specific component\r\n * @returns {String} JS string\r\n */\r\n getJs(opts) {\r\n return em.getJs(opts);\r\n },\r\n\r\n /**\r\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\r\n * @return {Components}\r\n */\r\n getComponents() {\r\n return em.get('DomComponents').getComponents();\r\n },\r\n\r\n /**\r\n * Return the wrapper and its all components\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return em.get('DomComponents').getWrapper();\r\n },\r\n\r\n /**\r\n * Set components inside editor's canvas. This method overrides actual components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\r\n * @return {this}\r\n * @example\r\n * editor.setComponents('
New component
');\r\n * // or\r\n * editor.setComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n setComponents(components, opt = {}) {\r\n em.setComponents(components, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opts Options\r\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\r\n * by default, they will be created and, if already exist, updated. When this option\r\n * is true, styles already created will not be updated.\r\n * @return {Array}\r\n * @example\r\n * editor.addComponents('
New component
');\r\n * // or\r\n * editor.addComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n addComponents(components, opts) {\r\n return this.getWrapper().append(components, opts);\r\n },\r\n\r\n /**\r\n * Returns style in JSON format object\r\n * @return {Object}\r\n */\r\n getStyle() {\r\n return em.get('CssComposer').getAll();\r\n },\r\n\r\n /**\r\n * Set style inside editor's canvas. This method overrides actual style\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @return {this}\r\n * @example\r\n * editor.setStyle('.cls{color: red}');\r\n * //or\r\n * editor.setStyle({\r\n * selectors: ['cls'],\r\n * style: { color: 'red' }\r\n * });\r\n */\r\n setStyle(style, opt = {}) {\r\n em.setStyle(style, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add styles to the editor\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @returns {Array} Array of created CssRule instances\r\n * @example\r\n * editor.addStyle('.cls{color: red}');\r\n */\r\n addStyle(style, opts = {}) {\r\n return em.addStyle(style, opts);\r\n },\r\n\r\n /**\r\n * Returns the last selected component, if there is one\r\n * @return {Model}\r\n */\r\n getSelected() {\r\n return em.getSelected();\r\n },\r\n\r\n /**\r\n * Returns an array of all selected components\r\n * @return {Array}\r\n */\r\n getSelectedAll() {\r\n return em.getSelectedAll();\r\n },\r\n\r\n /**\r\n * Get a stylable entity from the selected component.\r\n * If you select a component without classes the entity is the Component\r\n * itself and all changes will go inside its 'style' attribute. Otherwise,\r\n * if the selected component has one or more classes, the function will\r\n * return the corresponding CSS Rule\r\n * @return {Model}\r\n */\r\n getSelectedToStyle() {\r\n let selected = em.getSelected();\r\n\r\n if (selected) {\r\n return this.StyleManager.getModelToStyle(selected);\r\n }\r\n },\r\n\r\n /**\r\n * Select a component\r\n * @param {Component|HTMLElement} el Component to select\r\n * @param {Object} [opts] Options\r\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\r\n * @return {this}\r\n * @example\r\n * // Select dropped block\r\n * editor.on('block:drag:stop', function(model) {\r\n * editor.select(model);\r\n * });\r\n */\r\n select(el, opts) {\r\n em.setSelected(el, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add component to selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectAdd(model);\r\n */\r\n selectAdd(el) {\r\n em.addSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Remove component from selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectRemove(model);\r\n */\r\n selectRemove(el) {\r\n em.removeSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Toggle component selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectToggle(model);\r\n */\r\n selectToggle(el) {\r\n em.toggleSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns, if active, the Component enabled in rich text editing mode.\r\n * @returns {Component|null}\r\n * @example\r\n * const textComp = editor.getEditing();\r\n * if (textComp) {\r\n * console.log('HTML: ', textComp.toHTML());\r\n * }\r\n */\r\n getEditing() {\r\n return em.getEditing();\r\n },\r\n\r\n /**\r\n * Set device to the editor. If the device exists it will\r\n * change the canvas to the proper width\r\n * @param {string} name Name of the device\r\n * @return {this}\r\n * @example\r\n * editor.setDevice('Tablet');\r\n */\r\n setDevice(name) {\r\n em.set('device', name);\r\n return this;\r\n },\r\n\r\n /**\r\n * Return the actual active device\r\n * @return {string} Device name\r\n * @example\r\n * var device = editor.getDevice();\r\n * console.log(device);\r\n * // 'Tablet'\r\n */\r\n getDevice() {\r\n return em.get('device');\r\n },\r\n\r\n /**\r\n * Execute command\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.runCommand('myCommand', {someValue: 1});\r\n */\r\n runCommand(id, options = {}) {\r\n return em.get('Commands').run(id, options);\r\n },\r\n\r\n /**\r\n * Stop the command if stop method was provided\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.stopCommand('myCommand', {someValue: 1});\r\n */\r\n stopCommand(id, options = {}) {\r\n return em.get('Commands').stop(id, options);\r\n },\r\n\r\n /**\r\n * Store data to the current storage.\r\n * This will reset the counter of changes (`editor.getDirtyCount()`).\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Stored data.\r\n * @example\r\n * const storedData = await editor.store();\r\n */\r\n async store(options) {\r\n return await em.store(options);\r\n },\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Loaded data.\r\n * @example\r\n * const data = await editor.load();\r\n */\r\n async load(options) {\r\n return await em.load(options);\r\n },\r\n\r\n /**\r\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\r\n * @returns {Object}\r\n * @example\r\n * console.log(editor.getProjectData());\r\n * // { pages: [...], styles: [...], ... }\r\n */\r\n getProjectData() {\r\n return em.storeData();\r\n },\r\n\r\n /**\r\n * Load data from the JSON project\r\n * @param {Object} data Project to load\r\n * @example\r\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\r\n */\r\n loadProjectData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n storeData() {\r\n return em.storeData();\r\n },\r\n\r\n loadData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n /**\r\n * Returns container element. The one which was indicated as 'container'\r\n * on init method\r\n * @return {HTMLElement}\r\n */\r\n getContainer() {\r\n return c.el;\r\n },\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return em.getDirtyCount();\r\n },\r\n\r\n /**\r\n * Reset the counter of changes.\r\n */\r\n clearDirtyCount() {\r\n return em.clearDirtyCount();\r\n },\r\n\r\n /**\r\n * Update editor dimension offsets\r\n *\r\n * This method could be useful when you update, for example, some position\r\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\r\n * refresh you'll get misleading position of tools\r\n * @param {Object} [options] Options\r\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\r\n */\r\n refresh(opts) {\r\n em.refreshCanvas(opts);\r\n },\r\n\r\n /**\r\n * Replace the built-in Rich Text Editor with a custom one.\r\n * @param {Object} obj Custom RTE Interface\r\n * @example\r\n * editor.setCustomRte({\r\n * // Function for enabling custom RTE\r\n * // el is the HTMLElement of the double clicked Text Component\r\n * // rte is the same instance you have returned the first time you call\r\n * // enable(). This is useful if need to check if the RTE is already enabled so\r\n * // ion this case you'll need to return the RTE and the end of the function\r\n * enable: function(el, rte) {\r\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\r\n * ...\r\n * return rte; // return the RTE instance\r\n * },\r\n *\r\n * // Disable the editor, called for example when you unfocus the Text Component\r\n * disable: function(el, rte) {\r\n * rte.blur(); // this depends on the Custom RTE API\r\n * }\r\n *\r\n * // Called when the Text Component is focused again. If you returned the RTE instance\r\n * // from the enable function, the enable won't be called again instead will call focus,\r\n * // in this case to avoid double binding of the editor\r\n * focus: function (el, rte) {\r\n * rte.focus(); // this depends on the Custom RTE API\r\n * }\r\n * });\r\n */\r\n setCustomRte(obj) {\r\n this.RichTextEditor.customRte = obj;\r\n },\r\n\r\n /**\r\n * Replace the default CSS parser with a custom one.\r\n * The parser function receives a CSS string as a parameter and expects\r\n * an array of CSSRule objects as a result. If you need to remove the\r\n * custom parser, pass `null` as the argument\r\n * @param {Function|null} parser Parser function\r\n * @return {this}\r\n * @example\r\n * editor.setCustomParserCss(css => {\r\n * const result = [];\r\n * // ... parse the CSS string\r\n * result.push({\r\n * selectors: '.someclass, div .otherclass',\r\n * style: { color: 'red' }\r\n * })\r\n * // ...\r\n * return result;\r\n * });\r\n */\r\n setCustomParserCss(parser) {\r\n this.Parser.getConfig().parserCss = parser;\r\n return this;\r\n },\r\n\r\n /**\r\n * Change the global drag mode of components.\r\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\r\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\r\n * @returns {this}\r\n */\r\n setDragMode(value) {\r\n em.setDragMode(value);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event log message\r\n * @param {*} msg Message to log\r\n * @param {Object} [opts={}] Custom options\r\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\r\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\r\n * @return {this}\r\n * @example\r\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\r\n * // This will trigger following events\r\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\r\n * // Callbacks of those events will always receive the message and\r\n * // options, as arguments, eg:\r\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\r\n */\r\n log(msg, opts = {}) {\r\n em.log(msg, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Translate label\r\n * @param {String} key Label to translate\r\n * @param {Object} [opts] Options for the translation\r\n * @param {Object} [opts.params] Params for the translation\r\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\r\n * @returns {String}\r\n * @example\r\n * editor.t('msg');\r\n * // use params\r\n * editor.t('msg2', { params: { test: 'hello' } });\r\n * // custom local\r\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\r\n */\r\n t(...args) {\r\n return em.t(...args);\r\n },\r\n\r\n /**\r\n * Attach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n on(event, callback) {\r\n em.on(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Attach event and detach it after the first run\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n once(event, callback) {\r\n em.once(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Detach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n off(event, callback) {\r\n em.off(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event\r\n * @param {string} event Event to trigger\r\n * @return {this}\r\n */\r\n trigger(event) {\r\n em.trigger.apply(em, arguments);\r\n return this;\r\n },\r\n\r\n /**\r\n * Destroy the editor\r\n */\r\n destroy() {\r\n if (!em) return;\r\n em.destroyAll();\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = 0;\r\n } else {\r\n this[prop] = 0;\r\n }\r\n });\r\n this.modules = 0;\r\n editorView = 0;\r\n em = 0;\r\n c = 0;\r\n },\r\n\r\n /**\r\n * Returns editor element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getEl() {\r\n return editorView && editorView.el;\r\n },\r\n\r\n /**\r\n * Returns editor model\r\n * @return {Model}\r\n * @private\r\n */\r\n getModel() {\r\n return em;\r\n },\r\n\r\n /**\r\n * Render editor\r\n * @return {HTMLElement}\r\n */\r\n render() {\r\n editorView && editorView.remove();\r\n editorView = new EditorView({\r\n model: em,\r\n config: c,\r\n });\r\n return editorView.render().el;\r\n },\r\n\r\n /**\r\n * Trigger a callback once the editor is loaded and rendered.\r\n * The callback will be executed immediately if the method is called on the already rendered editor.\r\n * @param {Function} clb Callback to trigger\r\n * @example\r\n * editor.onReady(() => {\r\n * // perform actions\r\n * });\r\n */\r\n onReady(clb) {\r\n em.get('ready') ? clb(this) : em.on('load', clb);\r\n },\r\n\r\n /**\r\n * Print safe HTML by using ES6 tagged template strings.\r\n * @param {Array} literals\r\n * @param {Array} substs\r\n * @returns {String}\r\n * @example\r\n * const unsafeStr = '';\r\n * const safeStr = 'Hello';\r\n * // Use `$${var}` to avoid escaping\r\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\r\n */\r\n html,\r\n };\r\n};\r\n","export default {\r\n plugins: []\r\n};\r\n","/**\r\n * File made for IE/Edge support\r\n * https://github.com/artf/grapesjs/issues/214\r\n */\r\nimport { hasWin } from './mixins';\r\n\r\nexport default () => {\r\n /**\r\n * Check if IE/Edge\r\n * @return {Boolean}\r\n */\r\n const isIE = () => {\r\n let match;\r\n const agent = window.navigator.userAgent;\r\n const rules = [\r\n ['edge', /Edge\\/([0-9\\._]+)/],\r\n ['ie', /MSIE\\s(7\\.0)/],\r\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\r\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\r\n ];\r\n\r\n for (let i = 0; i < rules.length; i++) {\r\n const rule = rules[i];\r\n match = rule[1].exec(agent);\r\n if (match) break;\r\n }\r\n\r\n return !!match;\r\n };\r\n\r\n if (hasWin() && isIE()) {\r\n const originalCreateHTMLDocument =\r\n DOMImplementation.prototype.createHTMLDocument;\r\n DOMImplementation.prototype.createHTMLDocument = title => {\r\n if (!title) title = '';\r\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\r\n };\r\n }\r\n};\r\n","import { isElement, isFunction } from 'underscore';\r\nimport $ from './utils/cash-dom';\r\nimport Editor from './editor';\r\nimport polyfills from './utils/polyfills';\r\nimport { getGlobal } from './utils/mixins';\r\nimport PluginManager from './plugin_manager';\r\n\r\npolyfills();\r\n\r\nconst plugins = new PluginManager();\r\nconst editors = [];\r\nconst defaultConfig = {\r\n // If true renders editor on init\r\n autorender: 1,\r\n\r\n // Array of plugins to init\r\n plugins: [],\r\n\r\n // Custom options for plugins\r\n pluginsOpts: {},\r\n};\r\n\r\nexport default {\r\n $,\r\n\r\n editors,\r\n\r\n plugins,\r\n\r\n // Will be replaced on build\r\n version: __GJS_VERSION__,\r\n\r\n /**\r\n * Initialize the editor with passed options\r\n * @param {Object} config Configuration object\r\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\r\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\r\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\r\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\r\n * @param {Boolean} [config.headless=false] Init headless editor\r\n * @return {Editor} Editor instance\r\n * @example\r\n * var editor = grapesjs.init({\r\n * container: '#myeditor',\r\n * components: '
Hello world
',\r\n * style: '.hello{color: red}',\r\n * })\r\n */\r\n init(config = {}) {\r\n const { headless } = config;\r\n const els = config.container;\r\n if (!els && !headless) throw new Error(\"'container' is required\");\r\n config = { ...defaultConfig, ...config, grapesjs: this };\r\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\r\n const editor = new Editor(config, { $ }).init();\r\n const em = editor.getModel();\r\n\r\n // Load plugins\r\n config.plugins.forEach(pluginId => {\r\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\r\n const plgOptions = config.pluginsOpts[pluginId] || {};\r\n\r\n // Try to search in global context\r\n if (!plugin) {\r\n const wplg = getGlobal()[pluginId];\r\n plugin = wplg?.default || wplg;\r\n }\r\n\r\n if (plugin) {\r\n plugin(editor, plgOptions);\r\n } else if (isFunction(pluginId)) {\r\n pluginId(editor, plgOptions);\r\n } else {\r\n em.logWarning(`Plugin ${pluginId} not found`, {\r\n context: 'plugins',\r\n plugin: pluginId,\r\n });\r\n }\r\n });\r\n\r\n // Execute `onLoad` on modules once all plugins are initialized.\r\n // A plugin might have extended/added some custom type so this\r\n // is a good point to load stuff like components, css rules, etc.\r\n em.loadOnStart();\r\n config.autorender && !headless && editor.render();\r\n editors.push(editor);\r\n\r\n return editor;\r\n },\r\n};\r\n","import defaults from './config/config';\r\n\r\nexport default config => {\r\n var c = config || {};\r\n\r\n // Set default options\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var plugins = {};\r\n\r\n return {\r\n /**\r\n * Add new plugin. Plugins could not be overwritten\r\n * @param {string} id Plugin ID\r\n * @param {Function} plugin Function which contains all plugin logic\r\n * @return {Function} The plugin function\r\n * @example\r\n * PluginManager.add('some-plugin', function(editor){\r\n * editor.Commands.add('new-command', {\r\n * run: function(editor, senderBtn){\r\n * console.log('Executed new-command');\r\n * }\r\n * })\r\n * });\r\n */\r\n add(id, plugin) {\r\n if (plugins[id]) {\r\n return plugins[id];\r\n }\r\n\r\n plugins[id] = plugin;\r\n return plugin;\r\n },\r\n\r\n /**\r\n * Returns plugin by ID\r\n * @param {string} id Plugin ID\r\n * @return {Function|undefined} Plugin\r\n * @example\r\n * var plugin = PluginManager.get('some-plugin');\r\n * plugin(editor);\r\n */\r\n get(id) {\r\n return plugins[id];\r\n },\r\n\r\n /**\r\n * Returns object with all plugins\r\n * @return {Object}\r\n */\r\n getAll() {\r\n return plugins;\r\n }\r\n };\r\n};\r\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","get","split","pop","shift","getFilename","Model","prototype","idAttribute","getDefaults","result","AssetImage","unitDim","height","width","AssetView","o","options","collection","config","pfx","ppfx","pStylePrefix","em","className","listenTo","model","remove","view","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","el","innerHTML","template","View","AssetImageView","html","name","unit","dim","select","__getBhv","onClick","coll","trigger","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","events","click","dblclick","Assets","Collection","TypeableCollection","types","id","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","input","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","add","at","querySelector","inputUrl","length","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","render","appendChild","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","document","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","opts","c","undefined","disableUpload","constructor","delegateEvents","__propEv","res","val","err","console","error","onUploadEnd","text","clb","json","JSON","parse","data","files","dataTransfer","body","FormData","param","i","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","ev","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","forEach","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","event","match","exec","image","Image","readAsDataURL","push","all","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","storageKey","update","removeBefore","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","__initListen","on","getAllVisible","getAll","__onAllEvent","debounce","__trgCustom","container","getConfig","__customData","bhv","isOpen","models","asset","complete","cmd","run","stop","isActive","where","__remove","store","getProjectData","load","loadProjectData","getContainer","assts","toRender","obj","__viewParams","FileUploader","reset","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","m","f","func","__behaviour","_bhv","destroy","stopListening","appendTo","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","cls","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isString","isObject","catModel","catId","catView","getCategoriesEl","silent","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","map","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","elTo","isElement","__logWarn","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","conf","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","md","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","opt","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","key","prop","isEmpty","onReset","onRemove","previousModels","p","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","concat","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","action","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","logWarning","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","abort","callStop","create","DomComponents","clear","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","len","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","__getConfig","onResult","isDef","array","getAllMap","reduce","acc","__initConfig","def","deepMerge","changedAttributes","__catchAllEvent","collections","propagate","entity","rm","__appendTo","str","_createId","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"grapes.min.js","mappings":"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","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/@babel/runtime/regenerator/index.js","webpack://grapesjs/./src/abstract/moduleLegacy.js","webpack://grapesjs/./src/asset_manager/config/config.js","webpack://grapesjs/./src/asset_manager/model/Asset.js","webpack://grapesjs/./src/asset_manager/model/AssetImage.js","webpack://grapesjs/./src/asset_manager/view/AssetView.js","webpack://grapesjs/./src/asset_manager/view/AssetImageView.js","webpack://grapesjs/./src/asset_manager/model/Assets.js","webpack://grapesjs/./src/asset_manager/view/AssetsView.js","webpack://grapesjs/./src/asset_manager/view/FileUploader.js","webpack://grapesjs/./src/asset_manager/index.js","webpack://grapesjs/./src/block_manager/config/config.js","webpack://grapesjs/./src/block_manager/model/Block.js","webpack://grapesjs/./src/block_manager/model/Blocks.js","webpack://grapesjs/./src/block_manager/model/Category.js","webpack://grapesjs/./src/block_manager/model/Categories.js","webpack://grapesjs/./src/block_manager/view/BlockView.js","webpack://grapesjs/./src/block_manager/view/CategoryView.js","webpack://grapesjs/./src/block_manager/view/BlocksView.js","webpack://grapesjs/./src/block_manager/index.js","webpack://grapesjs/./src/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/index.js","webpack://grapesjs/./src/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/code_manager/config/config.js","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.js","webpack://grapesjs/./src/code_manager/model/JsonGenerator.js","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.js","webpack://grapesjs/./src/code_manager/model/JsGenerator.js","webpack://grapesjs/./src/code_manager/view/EditorView.js","webpack://grapesjs/./src/code_manager/index.js","webpack://grapesjs/./src/code_manager/model/CssGenerator.js","webpack://grapesjs/./src/commands/config/config.js","webpack://grapesjs/./src/commands/index.js","webpack://grapesjs/./src/commands/view/CanvasClear.js","webpack://grapesjs/./src/commands/view/CanvasMove.js","webpack://grapesjs/./src/commands/view/CommandAbstract.js","webpack://grapesjs/./src/commands/view/ComponentDelete.js","webpack://grapesjs/./src/commands/view/ComponentDrag.js","webpack://grapesjs/./src/commands/view/ComponentEnter.js","webpack://grapesjs/./src/commands/view/ComponentExit.js","webpack://grapesjs/./src/commands/view/ComponentNext.js","webpack://grapesjs/./src/commands/view/ComponentPrev.js","webpack://grapesjs/./src/commands/view/ComponentStyleClear.js","webpack://grapesjs/./src/commands/view/CopyComponent.js","webpack://grapesjs/./src/commands/view/DeleteComponent.js","webpack://grapesjs/./src/commands/view/ExportTemplate.js","webpack://grapesjs/./src/commands/view/Fullscreen.js","webpack://grapesjs/./src/commands/view/MoveComponent.js","webpack://grapesjs/./src/commands/view/OpenAssets.js","webpack://grapesjs/./src/commands/view/OpenBlocks.js","webpack://grapesjs/./src/commands/view/OpenLayers.js","webpack://grapesjs/./src/commands/view/OpenStyleManager.js","webpack://grapesjs/./src/commands/view/OpenTraitManager.js","webpack://grapesjs/./src/commands/view/PasteComponent.js","webpack://grapesjs/./src/commands/view/Preview.js","webpack://grapesjs/./src/commands/view/Resize.js","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.js","webpack://grapesjs/./src/dom_components/view/ToolbarView.js","webpack://grapesjs/./src/dom_components/model/ToolbarButton.js","webpack://grapesjs/./src/dom_components/model/Toolbar.js","webpack://grapesjs/./src/commands/view/SelectComponent.js","webpack://grapesjs/./src/commands/view/SelectPosition.js","webpack://grapesjs/./src/commands/view/ShowOffset.js","webpack://grapesjs/./src/commands/view/SwitchVisibility.js","webpack://grapesjs/./src/common/module.js","webpack://grapesjs/./src/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/css_composer/view/CssRuleView.js","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.js","webpack://grapesjs/./src/css_composer/view/CssRulesView.js","webpack://grapesjs/./src/device_manager/config/config.js","webpack://grapesjs/./src/device_manager/model/Device.js","webpack://grapesjs/./src/device_manager/model/Devices.js","webpack://grapesjs/./src/device_manager/view/DevicesView.js","webpack://grapesjs/./src/device_manager/index.js","webpack://grapesjs/./src/dom_components/config/config.js","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.js","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.js","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.js","webpack://grapesjs/./src/dom_components/model/ComponentTable.js","webpack://grapesjs/./src/dom_components/view/ComponentTableView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.js","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.js","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.js","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.js","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.js","webpack://grapesjs/./src/dom_components/model/ComponentImage.js","webpack://grapesjs/./src/dom_components/model/ComponentMap.js","webpack://grapesjs/./src/dom_components/view/ComponentImageView.js","webpack://grapesjs/./src/dom_components/view/ComponentMapView.js","webpack://grapesjs/./src/dom_components/model/ComponentText.js","webpack://grapesjs/./src/dom_components/model/ComponentLink.js","webpack://grapesjs/./src/dom_components/view/ComponentTextView.js","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.js","webpack://grapesjs/./src/dom_components/model/ComponentLabel.js","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.js","webpack://grapesjs/./src/dom_components/model/ComponentVideo.js","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.js","webpack://grapesjs/./src/dom_components/model/ComponentScript.js","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.js","webpack://grapesjs/./src/dom_components/model/ComponentSvg.js","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.js","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.js","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.js","webpack://grapesjs/./src/dom_components/model/ComponentComment.js","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.js","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.js","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.js","webpack://grapesjs/./src/dom_components/model/ComponentFrame.js","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.js","webpack://grapesjs/./src/dom_components/index.js","webpack://grapesjs/./src/trait_manager/model/Trait.js","webpack://grapesjs/./src/trait_manager/model/Traits.js","webpack://grapesjs/./src/trait_manager/model/TraitFactory.js","webpack://grapesjs/./src/dom_components/model/Component.js","webpack://grapesjs/./src/dom_components/model/Components.js","webpack://grapesjs/./src/dom_components/view/ComponentView.js","webpack://grapesjs/./src/dom_components/view/ComponentsView.js","webpack://grapesjs/./src/domain_abstract/model/Styleable.js","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.js","webpack://grapesjs/./src/domain_abstract/ui/Input.js","webpack://grapesjs/./src/domain_abstract/ui/InputColor.js","webpack://grapesjs/./src/utils/ColorPicker.js","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.js","webpack://grapesjs/./src/domain_abstract/view/DomainViews.js","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.js","webpack://grapesjs/./src/i18n/index.js","webpack://grapesjs/./src/utils/keymaster.js","webpack://grapesjs/./src/keymaps/index.js","webpack://grapesjs/./src/modal_dialog/config/config.js","webpack://grapesjs/./src/modal_dialog/model/Modal.js","webpack://grapesjs/./src/modal_dialog/view/ModalView.js","webpack://grapesjs/./src/modal_dialog/index.js","webpack://grapesjs/./src/navigator/config/config.js","webpack://grapesjs/./src/navigator/view/ItemView.js","webpack://grapesjs/./src/navigator/index.js","webpack://grapesjs/./src/navigator/view/ItemsView.js","webpack://grapesjs/./src/pages/model/Page.js","webpack://grapesjs/./src/pages/model/Pages.js","webpack://grapesjs/./src/pages/index.js","webpack://grapesjs/./src/panels/config/config.js","webpack://grapesjs/./src/panels/model/Panel.js","webpack://grapesjs/./src/panels/model/Panels.js","webpack://grapesjs/./src/panels/view/ButtonView.js","webpack://grapesjs/./src/panels/view/ButtonsView.js","webpack://grapesjs/./src/panels/view/PanelView.js","webpack://grapesjs/./src/panels/view/PanelsView.js","webpack://grapesjs/./src/panels/index.js","webpack://grapesjs/./src/panels/model/Button.js","webpack://grapesjs/./src/panels/model/Buttons.js","webpack://grapesjs/./src/parser/config/config.js","webpack://grapesjs/./src/parser/model/BrowserParserCss.js","webpack://grapesjs/./src/parser/model/ParserCss.js","webpack://grapesjs/./src/parser/index.js","webpack://grapesjs/./src/parser/model/BrowserParserHtml.js","webpack://grapesjs/./src/parser/model/ParserHtml.js","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.js","webpack://grapesjs/./src/rich_text_editor/config/config.js","webpack://grapesjs/./src/rich_text_editor/index.js","webpack://grapesjs/./src/selector_manager/config/config.js","webpack://grapesjs/./src/selector_manager/model/State.js","webpack://grapesjs/./src/selector_manager/view/ClassTagView.js","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.js","webpack://grapesjs/./src/selector_manager/index.js","webpack://grapesjs/./src/selector_manager/model/Selector.js","webpack://grapesjs/./src/selector_manager/model/Selectors.js","webpack://grapesjs/./src/storage_manager/config/config.js","webpack://grapesjs/./src/storage_manager/model/LocalStorage.js","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.js","webpack://grapesjs/./src/storage_manager/index.js","webpack://grapesjs/./src/style_manager/config/config.js","webpack://grapesjs/./src/style_manager/model/Property.js","webpack://grapesjs/./src/style_manager/model/PropertyComposite.js","webpack://grapesjs/./src/style_manager/model/Layer.js","webpack://grapesjs/./src/style_manager/model/Layers.js","webpack://grapesjs/./src/style_manager/model/PropertyStack.js","webpack://grapesjs/./src/style_manager/view/PropertyView.js","webpack://grapesjs/./src/style_manager/view/PropertiesView.js","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.js","webpack://grapesjs/./src/style_manager/view/LayerView.js","webpack://grapesjs/./src/style_manager/view/LayersView.js","webpack://grapesjs/./src/style_manager/view/PropertyStackView.js","webpack://grapesjs/./src/style_manager/view/PropertyFileView.js","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.js","webpack://grapesjs/./src/style_manager/view/PropertyColorView.js","webpack://grapesjs/./src/style_manager/model/PropertySelect.js","webpack://grapesjs/./src/style_manager/view/PropertySelectView.js","webpack://grapesjs/./src/style_manager/model/PropertyRadio.js","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.js","webpack://grapesjs/./src/style_manager/model/PropertyNumber.js","webpack://grapesjs/./src/style_manager/model/PropertySlider.js","webpack://grapesjs/./src/style_manager/view/PropertySliderView.js","webpack://grapesjs/./src/style_manager/model/Properties.js","webpack://grapesjs/./src/style_manager/model/Sector.js","webpack://grapesjs/./src/style_manager/model/Sectors.js","webpack://grapesjs/./src/style_manager/model/PropertyFactory.js","webpack://grapesjs/./src/style_manager/view/SectorView.js","webpack://grapesjs/./src/style_manager/view/SectorsView.js","webpack://grapesjs/./src/style_manager/index.js","webpack://grapesjs/./src/trait_manager/config/config.js","webpack://grapesjs/./src/trait_manager/view/TraitView.js","webpack://grapesjs/./src/trait_manager/view/TraitsView.js","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.js","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.js","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.js","webpack://grapesjs/./src/trait_manager/view/TraitColorView.js","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.js","webpack://grapesjs/./src/trait_manager/index.js","webpack://grapesjs/./src/undo_manager/index.js","webpack://grapesjs/./src/utils/Dragger.js","webpack://grapesjs/./src/utils/cash-dom.js","webpack://grapesjs/./src/utils/dom.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.js","webpack://grapesjs/./src/utils/html.js","webpack://grapesjs/./src/utils/Sorter.js","webpack://grapesjs/./src/utils/Resizer.js","webpack://grapesjs/./src/utils/index.js","webpack://grapesjs/./src/utils/mixins.js","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./node_modules/regenerator-runtime/runtime.js","webpack://grapesjs/./src/commands/view/ sync ^\\.\\/.*$","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/editor/config/config.js","webpack://grapesjs/./src/editor/model/Selected.js","webpack://grapesjs/./src/editor/model/Editor.js","webpack://grapesjs/./src/utils/extender.js","webpack://grapesjs/./src/editor/view/EditorView.js","webpack://grapesjs/./src/editor/index.js","webpack://grapesjs/./src/plugin_manager/config/config.js","webpack://grapesjs/./src/utils/polyfills.js","webpack://grapesjs/./src/index.js","webpack://grapesjs/./src/plugin_manager/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","module.exports = require(\"regenerator-runtime\");\n","import { isString, isElement } from 'underscore';\nimport { createId, deepMerge, isDef } from 'utils/mixins';\n\nexport default {\n getConfig(name) {\n return this.__getConfig(name);\n },\n\n getProjectData(data) {\n const obj = {};\n const key = this.storageKey;\n if (key) {\n obj[key] = data || this.getAll();\n }\n return obj;\n },\n\n loadProjectData(data = {}, { all, onResult, reset } = {}) {\n const key = this.storageKey;\n const opts = { action: 'load' };\n const coll = all || this.getAll();\n let result = data[key];\n\n if (typeof result == 'string') {\n try {\n result = JSON.parse(result);\n } catch (err) {\n this.__logWarn('Data parsing failed', { input: result });\n }\n }\n\n reset && result && coll.reset(null, opts);\n\n if (onResult) {\n result && onResult(result, opts);\n } else if (result && isDef(result.length)) {\n coll.reset(result, opts);\n }\n\n return result;\n },\n\n clear(opts = {}) {\n const { all } = this;\n all && all.reset(null, opts);\n return this;\n },\n\n __getConfig(name) {\n const res = this.config || {};\n return name ? res[name] : res;\n },\n\n getAll(opts = {}) {\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get(i.idAttribute)] = i;\n return acc;\n }, {});\n },\n\n __initConfig(def = {}, conf = {}) {\n this.config = deepMerge(def, conf);\n this.em = this.config.em;\n this.cls = [];\n },\n\n __initListen(opts = {}) {\n const { all, em, events } = this;\n all &&\n em &&\n all\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\n .on('all', this.__catchAllEvent, this);\n // Register collections\n this.cls = [all].concat(opts.collections || []);\n // Propagate events\n (opts.propagate || []).forEach(({ entity, event }) => {\n entity.on('all', (ev, model, coll, opts) => {\n const options = opts || coll;\n const opt = { event: ev, ...options };\n [em, all].map(md => md.trigger(event, model, opt));\n });\n });\n },\n\n __remove(model, opts = {}) {\n const { em } = this;\n const md = isString(model) ? this.get(model) : model;\n const rm = () => {\n md && this.all.remove(md, opts);\n return md;\n };\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\n return !opts.abort && rm();\n },\n\n __catchAllEvent(event, model, coll, opts) {\n const { em, events } = this;\n const options = opts || coll;\n em && events.all && em.trigger(events.all, { event, model, options });\n this.__onAllEvent();\n },\n\n __appendTo() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render());\n }\n },\n\n __onAllEvent() {},\n\n __logWarn(str, opts) {\n this.em.logWarning(`[${this.name}]: ${str}`, opts);\n },\n\n _createId(len = 16) {\n const all = this.getAll();\n const ln = all.length + len;\n const allMap = this.getAllMap();\n let id;\n\n do {\n id = createId(ln);\n } while (allMap[id]);\n\n return id;\n },\n\n __listenAdd(model, event) {\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenRemove(model, event) {\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenUpdate(model, event) {\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\n },\n\n __destroy() {\n this.cls.forEach(coll => {\n coll.stopListening();\n coll.reset();\n });\n this.em = 0;\n this.config = 0;\n this.view?.remove();\n this.view = 0;\n },\n};\n","export default {\n // Default assets\n // eg. [\n // 'https://...image1.png',\n // 'https://...image2.png',\n // {type: 'image', src: 'https://...image3.png', someOtherCustomProp: 1},\n // ..\n // ]\n assets: [],\n\n // Content to add where there is no assets to show\n // eg. 'No assets here, drag to upload'\n noAssets: '',\n\n // Style prefix\n stylePrefix: 'am-',\n\n // Upload endpoint, set `false` to disable upload\n // upload: 'https://endpoint/upload/assets',\n // upload: false,\n upload: 0,\n\n // The name used in POST to pass uploaded files\n uploadName: 'files',\n\n // Custom headers to pass with the upload request\n headers: {},\n\n // Custom parameters to pass with the upload request, eg. csrf token\n params: {},\n\n // The credentials setting for the upload request, eg. 'include', 'omit'\n credentials: 'include',\n\n // Allow uploading multiple files per request.\n // If disabled filename will not have '[]' appended\n multiUpload: true,\n\n // If true, tries to add automatically uploaded assets.\n // To make it work the server should respond with a JSON containing assets\n // in a data key, eg:\n // {\n // data: [\n // 'https://.../image.png',\n // ...\n // {src: 'https://.../image2.png'},\n // ...\n // ]\n // }\n autoAdd: true,\n\n // To upload your assets, the module uses Fetch API, with this option you\n // overwrite it with something else.\n // It should return a Promise\n // @example\n // customFetch: (url, options) => axios(url, { data: options.body }),\n customFetch: null,\n\n // Custom uploadFile function.\n // Differently from the `customFetch` option, this gives a total control\n // over the uploading process, but you also have to emit all `asset:upload:*` events\n // by yourself (if you need to use them somewhere)\n // @example\n // uploadFile: (e) => {\n // var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n // // ...send somewhere\n // }\n uploadFile: null,\n\n // In the absence of 'uploadFile' or 'upload' assets will be embedded as Base64\n embedAsBase64: true,\n\n // Handle the image url submit from the built-in 'Add image' form\n // @example\n // handleAdd: (textFromInput) => {\n // // some check...\n // editor.AssetManager.add(textFromInput);\n // }\n handleAdd: null,\n\n // Method called before upload, on return false upload is canceled.\n // @example\n // beforeUpload: (files) => {\n // // logic...\n // var stopUpload = true;\n // if(stopUpload) return false;\n // }\n beforeUpload: null,\n\n // Toggles visiblity of assets url input\n showUrlInput: true,\n\n // Avoid rendering the default asset manager.\n custom: false,\n\n // WARNING: all the options below are considered DEPRECATED.\n // ---------------------------------------------------------------\n\n // Enable an upload dropzone on the entire editor (not document) when dragging\n // files over it\n // If active the dropzone disable/hide the upload dropzone in asset modal,\n // otherwise you will get double drops (#507)\n dropzone: false,\n\n // Open the asset manager once files are been dropped via the dropzone\n openAssetsOnDrop: 1,\n\n // Any dropzone content to append inside dropzone element\n dropzoneContent: ''\n};\n","import { result } from 'underscore';\nimport { Model } from '../../common';\n\n/**\n * @property {String} type Asset type, eg. 'image'.\n * @property {String} src Asset URL, eg. 'https://.../image.png'.\n */\nexport default class Asset extends Model {\n defaults() {\n return {\n type: '',\n src: '',\n };\n }\n\n /**\n * Get asset type.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png', type: 'image' }\n * asset.getType(); // -> 'image'\n * */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get asset URL.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getSrc(); // -> 'https://.../image.png'\n * */\n getSrc() {\n return this.get('src');\n }\n\n /**\n * Get filename of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getFilename(); // -> 'image.png'\n * // Asset: { src: 'https://.../image' }\n * asset.getFilename(); // -> 'image'\n * */\n getFilename() {\n return this.get('src').split('/').pop().split('?').shift();\n }\n\n /**\n * Get extension of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getExtension(); // -> 'png'\n * // Asset: { src: 'https://.../image' }\n * asset.getExtension(); // -> ''\n * */\n getExtension() {\n return this.getFilename().split('.').pop();\n }\n}\n\nAsset.prototype.idAttribute = 'src';\n\nAsset.getDefaults = function () {\n return result(this.prototype, 'defaults');\n};\n","import Asset from './Asset';\n\nexport default class AssetImage extends Asset {\n defaults() {\n return {\n ...Asset.getDefaults(),\n type: 'image',\n unitDim: 'px',\n height: 0,\n width: 0\n };\n }\n}\n","import { View } from '../../common';\nimport { clone } from 'underscore';\n\nexport default class AssetView extends View {\n initialize(o = {}) {\n this.options = o;\n this.collection = o.collection;\n const config = o.config || {};\n this.config = config;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.em = config.em;\n this.className = this.pfx + 'asset';\n this.listenTo(this.model, 'destroy remove', this.remove);\n this.model.view = this;\n const init = this.init && this.init.bind(this);\n init && init(o);\n }\n\n __getBhv() {\n const { em } = this;\n const am = em && em.get('AssetManager');\n return (am && am.__getBehaviour()) || {};\n }\n\n template() {\n const pfx = this.pfx;\n return `\n
\n ${this.getPreview()}\n
\n
\n ${this.getInfo()}\n
\n
\n ⨯\n
\n `;\n }\n\n /**\n * Update target if exists\n * @param {Model} target\n * @private\n * */\n updateTarget(target) {\n if (target && target.set) {\n target.set('attributes', clone(target.get('attributes')));\n target.set('src', this.model.get('src'));\n }\n }\n\n getPreview() {\n return '';\n }\n\n getInfo() {\n return '';\n }\n\n render() {\n const el = this.el;\n el.innerHTML = this.template(this, this.model);\n el.className = this.className;\n return this;\n }\n}\n","import { isFunction } from 'underscore';\nimport AssetView from './AssetView';\nimport html from '../../utils/html';\n\nexport default class AssetImageView extends AssetView {\n getPreview() {\n const { pfx, ppfx, model } = this;\n const src = model.get('src');\n return html`\n
\n
\n `;\n }\n\n getInfo() {\n const { pfx, model } = this;\n let name = model.get('name');\n let width = model.get('width');\n let height = model.get('height');\n let unit = model.get('unitDim');\n let dim = width && height ? `${width}x${height}${unit}` : '';\n name = name || model.getFilename();\n return html`\n
${name}
\n
${dim}
\n `;\n }\n\n init(o) {\n const pfx = this.pfx;\n this.className += ` ${pfx}asset-image`;\n }\n\n /**\n * Triggered when the asset is clicked\n * @private\n * */\n onClick() {\n const { model, pfx } = this;\n const { select } = this.__getBhv();\n const { onClick } = this.config;\n const coll = this.collection;\n coll.trigger('deselectAll');\n this.$el.addClass(pfx + 'highlight');\n\n if (isFunction(select)) {\n select(model, false);\n } else if (isFunction(onClick)) {\n onClick(model);\n } else {\n this.updateTarget(coll.target);\n }\n }\n\n /**\n * Triggered when the asset is double clicked\n * @private\n * */\n onDblClick() {\n const { em, model } = this;\n const { select } = this.__getBhv();\n const { onDblClick } = this.config;\n const { target, onSelect } = this.collection;\n\n if (isFunction(select)) {\n select(model, true);\n } else if (isFunction(onDblClick)) {\n onDblClick(model);\n } else {\n this.updateTarget(target);\n em && em.get('Modal').close();\n }\n isFunction(onSelect) && onSelect(model);\n }\n\n /**\n * Remove asset from collection\n * @private\n * */\n onRemove(e) {\n e.stopImmediatePropagation();\n this.model.collection.remove(this.model);\n }\n}\n\nAssetImageView.prototype.events = {\n 'click [data-toggle=asset-remove]': 'onRemove',\n click: 'onClick',\n dblclick: 'onDblClick',\n};\n","import { Collection } from '../../common';\nimport AssetImage from './AssetImage';\nimport AssetImageView from './../view/AssetImageView';\nimport TypeableCollection from '../../domain_abstract/model/TypeableCollection';\n\nexport default class Assets extends Collection.extend(TypeableCollection) {}\n\nAssets.prototype.types = [\n {\n id: 'image',\n model: AssetImage,\n view: AssetImageView,\n isType(value) {\n if (typeof value == 'string') {\n return {\n type: 'image',\n src: value,\n };\n }\n return value;\n },\n },\n];\n","import { View } from '../../common';\n\nexport default class AssetsView extends View {\n template({ pfx, ppfx, em }) {\n let form = '';\n if (this.config.showUrlInput) {\n form = `\n
\n
\n \n
\n \n
\n
\n `;\n }\n\n return `\n
\n
\n ${form}\n
\n
\n
\n
\n `;\n }\n\n initialize(o) {\n this.options = o;\n this.config = o.config;\n this.pfx = this.config.stylePrefix || '';\n this.ppfx = this.config.pStylePrefix || '';\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'reset', this.renderAssets);\n this.listenTo(coll, 'add', this.addToAsset);\n this.listenTo(coll, 'remove', this.removedAsset);\n this.listenTo(coll, 'deselectAll', this.deselectAll);\n }\n\n /**\n * Add new asset to the collection via string\n * @param {Event} e Event object\n * @return {this}\n * @private\n */\n handleSubmit(e) {\n e.preventDefault();\n const input = this.getAddInput();\n const url = input && input.value.trim();\n const handleAdd = this.config.handleAdd;\n\n if (!url) {\n return;\n }\n\n input.value = '';\n this.getAssetsEl().scrollTop = 0;\n\n if (handleAdd) {\n handleAdd.bind(this)(url);\n } else {\n this.options.globalCollection.add(url, { at: 0 });\n }\n }\n\n /**\n * Returns assets element\n * @return {HTMLElement}\n * @private\n */\n getAssetsEl() {\n //if(!this.assets) // Not able to cache as after the rerender it losses the ref\n return this.el.querySelector(`.${this.pfx}assets`);\n }\n\n /**\n * Returns input url element\n * @return {HTMLElement}\n * @private\n */\n getAddInput() {\n if (!this.inputUrl || !this.inputUrl.value) this.inputUrl = this.el.querySelector(`.${this.pfx}add-asset input`);\n return this.inputUrl;\n }\n\n /**\n * Triggered when an asset is removed\n * @param {Asset} model Removed asset\n * @private\n */\n removedAsset(model) {\n if (!this.collection.length) {\n this.toggleNoAssets();\n }\n }\n\n /**\n * Add asset to collection\n * @private\n * */\n addToAsset(model) {\n if (this.collection.length == 1) {\n this.toggleNoAssets(1);\n }\n this.addAsset(model);\n }\n\n /**\n * Add new asset to collection\n * @param Object Model\n * @param Object Fragment collection\n * @return Object Object created\n * @private\n * */\n addAsset(model, fragmentEl = null) {\n const fragment = fragmentEl;\n const collection = this.collection;\n const config = this.config;\n const rendered = new model.typeView({\n model,\n collection,\n config,\n }).render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n const assetsEl = this.getAssetsEl();\n if (assetsEl) {\n assetsEl.insertBefore(rendered, assetsEl.firstChild);\n }\n }\n\n return rendered;\n }\n\n /**\n * Checks if to show noAssets\n * @param {Boolean} hide\n * @private\n */\n toggleNoAssets(hide) {\n const assetsEl = this.$el.find(`.${this.pfx}assets`);\n\n if (hide) {\n assetsEl.empty();\n } else {\n const noAssets = this.config.noAssets;\n noAssets && assetsEl.append(noAssets);\n }\n }\n\n /**\n * Deselect all assets\n * @private\n * */\n deselectAll() {\n const pfx = this.pfx;\n this.$el.find(`.${pfx}highlight`).removeClass(`${pfx}highlight`);\n }\n\n renderAssets() {\n const fragment = document.createDocumentFragment();\n const assets = this.$el.find(`.${this.pfx}assets`);\n assets.empty();\n this.toggleNoAssets(this.collection.length);\n this.collection.each(model => this.addAsset(model, fragment));\n assets.append(fragment);\n }\n\n render() {\n const fuRendered = this.options.fu.render().el;\n this.$el.empty();\n this.$el.append(fuRendered).append(this.template(this));\n this.el.className = `${this.ppfx}asset-manager`;\n this.renderAssets();\n return this;\n }\n}\n\nAssetsView.prototype.events = {\n submit: 'handleSubmit',\n};\n","import { View } from '../../common';\nimport fetch from '../../utils/fetch';\nimport html from '../../utils/html';\n\nexport default class FileUploaderView extends View {\n template({ pfx, title, uploadId, disabled, multiUpload }) {\n return html`\n
\n
${title}
\n \n
\n \n `;\n }\n\n initialize(opts = {}) {\n this.options = opts;\n const c = opts.config || {};\n this.module = opts.module;\n this.config = c;\n this.em = this.config.em;\n this.pfx = c.stylePrefix || '';\n this.ppfx = c.pStylePrefix || '';\n this.target = this.options.globalCollection || {};\n this.uploadId = this.pfx + 'uploadFile';\n this.disabled = c.disableUpload !== undefined ? c.disableUpload : !c.upload && !c.embedAsBase64;\n this.multiUpload = c.multiUpload !== undefined ? c.multiUpload : true;\n this.events = {\n [`change #${this.uploadId}`]: 'uploadFile',\n };\n let uploadFile = c.uploadFile;\n\n if (uploadFile) {\n this.uploadFile = uploadFile.bind(this);\n } else if (!c.upload && c.embedAsBase64) {\n this.uploadFile = this.constructor.embedAsBase64;\n }\n\n this.delegateEvents();\n }\n\n /**\n * Triggered before the upload is started\n * @private\n */\n onUploadStart() {\n const { module } = this;\n module && module.__propEv('asset:upload:start');\n }\n\n /**\n * Triggered after the upload is ended\n * @param {Object|string} res End result\n * @private\n */\n onUploadEnd(res) {\n const { $el, module } = this;\n module && module.__propEv('asset:upload:end', res);\n const input = $el.find('input');\n input && input.val('');\n }\n\n /**\n * Triggered on upload error\n * @param {Object} err Error\n * @private\n */\n onUploadError(err) {\n const { module } = this;\n console.error(err);\n this.onUploadEnd(err);\n module && module.__propEv('asset:upload:error', err);\n }\n\n /**\n * Triggered on upload response\n * @param {string} text Response text\n * @private\n */\n onUploadResponse(text, clb) {\n const { module, config, target } = this;\n let json;\n try {\n json = typeof text === 'string' ? JSON.parse(text) : text;\n } catch (e) {\n json = text;\n }\n\n module && module.__propEv('asset:upload:response', json);\n\n if (config.autoAdd && target) {\n target.add(json.data, { at: 0 });\n }\n\n this.onUploadEnd(text);\n clb && clb(json);\n }\n\n /**\n * Upload files\n * @param {Object} e Event\n * @return {Promise}\n * @private\n * */\n uploadFile(e, clb) {\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const { config } = this;\n const { beforeUpload } = config;\n\n const beforeUploadResponse = beforeUpload && beforeUpload(files);\n if (beforeUploadResponse === false) return;\n\n const body = new FormData();\n const { params, customFetch } = config;\n\n for (let param in params) {\n body.append(param, params[param]);\n }\n\n if (this.multiUpload) {\n for (let i = 0; i < files.length; i++) {\n body.append(`${config.uploadName}[]`, files[i]);\n }\n } else if (files.length) {\n body.append(config.uploadName, files[0]);\n }\n\n var target = this.target;\n const url = config.upload;\n const headers = config.headers;\n const reqHead = 'X-Requested-With';\n\n if (typeof headers[reqHead] == 'undefined') {\n headers[reqHead] = 'XMLHttpRequest';\n }\n\n if (url) {\n this.onUploadStart();\n const fetchOpts = {\n method: 'post',\n credentials: config.credentials || 'include',\n headers,\n body,\n };\n const fetchResult = customFetch\n ? customFetch(url, fetchOpts)\n : fetch(url, fetchOpts).then(res =>\n ((res.status / 200) | 0) == 1 ? res.text() : res.text().then(text => Promise.reject(text))\n );\n return fetchResult.then(text => this.onUploadResponse(text, clb)).catch(err => this.onUploadError(err));\n }\n }\n\n /**\n * Make input file droppable\n * @private\n * */\n initDrop() {\n var that = this;\n if (!this.uploadForm) {\n this.uploadForm = this.$el.find('form').get(0);\n if ('draggable' in this.uploadForm) {\n var uploadFile = this.uploadFile;\n this.uploadForm.ondragover = function () {\n this.className = that.pfx + 'hover';\n return false;\n };\n this.uploadForm.ondragleave = function () {\n this.className = '';\n return false;\n };\n this.uploadForm.ondrop = function (e) {\n this.className = '';\n e.preventDefault();\n that.uploadFile(e);\n return;\n };\n }\n }\n }\n\n initDropzone(ev) {\n let addedCls = 0;\n const c = this.config;\n const em = ev.model;\n const edEl = ev.el;\n const editor = em.get('Editor');\n const container = em.get('Config').el;\n const frameEl = em.get('Canvas').getBody();\n const ppfx = this.ppfx;\n const updatedCls = `${ppfx}dropzone-active`;\n const dropzoneCls = `${ppfx}dropzone`;\n const cleanEditorElCls = () => {\n edEl.className = edEl.className.replace(updatedCls, '').trim();\n addedCls = 0;\n };\n const onDragOver = () => {\n if (!addedCls) {\n edEl.className += ` ${updatedCls}`;\n addedCls = 1;\n }\n return false;\n };\n const onDragLeave = () => {\n cleanEditorElCls();\n return false;\n };\n const onDrop = e => {\n cleanEditorElCls();\n e.preventDefault();\n e.stopPropagation();\n this.uploadFile(e);\n\n if (c.openAssetsOnDrop && editor) {\n const target = editor.getSelected();\n editor.runCommand('open-assets', {\n target,\n onSelect() {\n editor.Modal.close();\n editor.AssetManager.setTarget(null);\n },\n });\n }\n\n return false;\n };\n\n ev.$el.append(`
${c.dropzoneContent}
`);\n cleanEditorElCls();\n\n if ('draggable' in edEl) {\n [edEl, frameEl].forEach(item => {\n item.ondragover = onDragOver;\n item.ondragleave = onDragLeave;\n item.ondrop = onDrop;\n });\n }\n }\n\n render() {\n const { $el, pfx, em } = this;\n $el.html(\n this.template({\n title: em && em.t('assetManager.uploadTitle'),\n uploadId: this.uploadId,\n disabled: this.disabled,\n multiUpload: this.multiUpload,\n pfx,\n })\n );\n this.initDrop();\n $el.attr('class', pfx + 'file-uploader');\n return this;\n }\n}\n\nFileUploaderView.embedAsBase64 = function (e, clb) {\n // List files dropped\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const response = { data: [] };\n\n // Unlikely, widely supported now\n if (!FileReader) {\n this.onUploadError(new Error('Unsupported platform, FileReader is not defined'));\n return;\n }\n\n const promises = [];\n const mimeTypeMatcher = /^(.+)\\/(.+)$/;\n\n for (const file of files) {\n // For each file a reader (to read the base64 URL)\n // and a promise (to track and merge results and errors)\n const promise = new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.addEventListener('load', event => {\n let type;\n const name = file.name;\n\n // Try to find the MIME type of the file.\n const match = mimeTypeMatcher.exec(file.type);\n if (match) {\n type = match[1]; // The first part in the MIME, \"image\" in image/png\n } else {\n type = file.type;\n }\n\n /*\n // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/\n var URL = window.URL || window.webkitURL\n var file = this.files[0]\n var type = file.type\n var videoNode = document.createElement('video');\n var canPlay = videoNode.canPlayType(type) // can use also for 'audio' types\n if (canPlay === '') canPlay = 'no'\n var message = 'Can play type \"' + type + '\": ' + canPlay\n var isError = canPlay === 'no'\n displayMessage(message, isError)\n\n if (isError) {\n return\n }\n\n var fileURL = URL.createObjectURL(file)\n videoNode.src = fileURL\n */\n\n // If it's an image, try to find its size\n if (type === 'image') {\n const data = {\n src: reader.result,\n name,\n type,\n height: 0,\n width: 0,\n };\n\n const image = new Image();\n image.addEventListener('error', error => {\n reject(error);\n });\n image.addEventListener('load', () => {\n data.height = image.height;\n data.width = image.width;\n resolve(data);\n });\n image.src = data.src;\n } else if (type) {\n // Not an image, but has a type\n resolve({\n src: reader.result,\n name,\n type,\n });\n } else {\n // No type found, resolve with the URL only\n resolve(reader.result);\n }\n });\n reader.addEventListener('error', error => {\n reject(error);\n });\n reader.addEventListener('abort', error => {\n reject('Aborted');\n });\n\n reader.readAsDataURL(file);\n });\n\n promises.push(promise);\n }\n\n Promise.all(promises).then(\n data => {\n response.data = data;\n this.onUploadResponse(response, clb);\n },\n error => {\n this.onUploadError(error);\n }\n );\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/asset_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * assetManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const assetManager = editor.AssetManager;\n * ```\n *\n * ## Available Events\n * * `asset:open` - Asset Manager opened.\n * * `asset:close` - Asset Manager closed.\n * * `asset:add` - Asset added. The [Asset] is passed as an argument to the callback.\n * * `asset:remove` - Asset removed. The [Asset] is passed as an argument to the callback.\n * * `asset:update` - Asset updated. The updated [Asset] and the object containing changes are passed as arguments to the callback.\n * * `asset:upload:start` - Before the upload is started.\n * * `asset:upload:end` - After the upload is ended.\n * * `asset:upload:error` - On any error in upload, passes the error as an argument.\n * * `asset:upload:response` - On upload response, passes the result as an argument.\n * * `asset` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n * * `asset:custom` - Event for handling custom Asset Manager UI.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [store](#store)\n * * [load](#load)\n * * [getContainer](#getcontainer)\n *\n * [Asset]: asset.html\n *\n * @module AssetManager\n */\n\nimport { debounce, isFunction } from 'underscore';\nimport { Module } from '../common';\nimport defaults from './config/config';\nimport Asset from './model/Assets';\nimport Assets from './model/Assets';\nimport AssetsView from './view/AssetsView';\nimport FileUpload from './view/FileUploader';\n\nexport const evAll = 'asset';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evCustom = `${evPfx}custom`;\nexport const evOpen = `${evPfx}open`;\nexport const evClose = `${evPfx}close`;\nexport const evUpload = `${evPfx}upload`;\nexport const evUploadStart = `${evUpload}:start`;\nexport const evUploadEnd = `${evUpload}:end`;\nexport const evUploadError = `${evUpload}:error`;\nexport const evUploadRes = `${evUpload}:response`;\n\nexport default () => {\n let c = {};\n let assets, assetsVis, am, fu;\n const assetCmd = 'open-assets';\n\n return {\n ...Module,\n\n name: 'AssetManager',\n\n storageKey: 'assets',\n\n Asset,\n\n Assets,\n\n events: {\n all: evAll,\n select: evSelect,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n custom: evCustom,\n open: evOpen,\n close: evClose,\n uploadStart: evUploadStart,\n uploadEnd: evUploadEnd,\n uploadError: evUploadError,\n uploadResponse: evUploadRes,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const ppfx = c.pStylePrefix;\n const { em } = c;\n this.config = c;\n this.em = em;\n\n if (ppfx) {\n c.stylePrefix = ppfx + c.stylePrefix;\n }\n\n // Global assets collection\n assets = new Assets([]);\n assetsVis = new Assets([]);\n this.all = assets;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n assets.on('add', model => this.getAllVisible().add(model));\n assets.on('remove', model => this.getAllVisible().remove(model));\n\n return this;\n },\n\n __propEv(ev, ...data) {\n this.em.trigger(ev, ...data);\n this.getAll().trigger(ev, ...data);\n },\n\n __onAllEvent: debounce(function () {\n this.__trgCustom();\n }),\n\n __trgCustom() {\n const bhv = this.__getBehaviour();\n if (!bhv.container && !this.getConfig('custom').open) {\n return;\n }\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n am: this,\n open: this.isOpen(),\n assets: this.getAll().models,\n types: bhv.types || [],\n container: bhv.container,\n close: () => this.close(),\n remove: (...args) => this.remove(...args),\n select: (asset, complete) => {\n const res = this.add(asset);\n isFunction(bhv.select) && bhv.select(res, complete);\n },\n // extra\n options: bhv.options || {},\n };\n },\n\n /**\n * Open the asset manager.\n * @param {Object} [options] Options for the asset manager.\n * @param {Array} [options.types=['image']] Types of assets to show.\n * @param {Function} [options.select] Type of operation to perform on asset selection. If not specified, nothing will happen.\n * @example\n * assetManager.open({\n * select(asset, complete) {\n * const selected = editor.getSelected();\n * if (selected && selected.is('image')) {\n * selected.addAttributes({ src: asset.getSrc() });\n * // The default AssetManager UI will trigger `select(asset, false)` on asset click\n * // and `select(asset, true)` on double-click\n * complete && assetManager.close();\n * }\n * }\n * });\n * // with your custom types (you should have assets with those types declared)\n * assetManager.open({ types: ['doc'], ... });\n */\n open(options = {}) {\n const cmd = this.em.get('Commands');\n cmd.run(assetCmd, {\n types: ['image'],\n select: () => {},\n ...options,\n });\n },\n\n /**\n * Close the asset manager.\n * @example\n * assetManager.close();\n */\n close() {\n const cmd = this.em.get('Commands');\n cmd.stop(assetCmd);\n },\n\n /**\n * Checks if the asset manager is open\n * @returns {Boolean}\n * @example\n * assetManager.isOpen(); // true | false\n */\n isOpen() {\n const cmd = this.em.get('Commands');\n return !!(cmd && cmd.isActive(assetCmd));\n },\n\n /**\n * Add new asset/s to the collection. URLs are supposed to be unique\n * @param {String|Object|Array|Array} asset URL strings or an objects representing the resource.\n * @param {Object} [opts] Options\n * @returns {[Asset]}\n * @example\n * // As strings\n * assetManager.add('http://img.jpg');\n * assetManager.add(['http://img.jpg', './path/to/img.png']);\n *\n * // Using objects you can indicate the type and other meta informations\n * assetManager.add({\n * // type: 'image',\t// image is default\n * \tsrc: 'http://img.jpg',\n * \theight: 300,\n *\twidth: 200,\n * });\n * assetManager.add([{ src: 'img2.jpg' }, { src: 'img2.png' }]);\n */\n add(asset, opts = {}) {\n // Put the model at the beginning\n if (typeof opts.at == 'undefined') {\n opts.at = 0;\n }\n\n return assets.add(asset, opts);\n },\n\n /**\n * Return asset by URL\n * @param {String} src URL of the asset\n * @returns {[Asset]|null}\n * @example\n * const asset = assetManager.get('http://img.jpg');\n */\n get(src) {\n return assets.where({ src })[0] || null;\n },\n\n /**\n * Return the global collection, containing all the assets\n * @returns {Collection<[Asset]>}\n */\n getAll() {\n return assets;\n },\n\n /**\n * Return the visible collection, which contains assets actually rendered\n * @returns {Collection<[Asset]>}\n */\n getAllVisible() {\n return assetsVis;\n },\n\n /**\n * Remove asset\n * @param {String|[Asset]} asset Asset or asset URL\n * @returns {[Asset]} Removed asset\n * @example\n * const removed = assetManager.remove('http://img.jpg');\n * // or by passing the Asset\n * const asset = assetManager.get('http://img.jpg');\n * assetManager.remove(asset);\n */\n remove(asset, opts) {\n return this.__remove(asset, opts);\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data);\n },\n\n /**\n * Return the Asset Manager Container\n * @returns {HTMLElement}\n */\n getContainer() {\n const bhv = this.__getBehaviour();\n return bhv.container || (am && am.el);\n },\n\n /**\n * Get assets element container\n * @returns {HTMLElement}\n * @private\n */\n getAssetsEl() {\n return am.el.querySelector('[data-el=assets]');\n },\n\n /**\n * Render assets\n * @param {array} assets Assets to render, without the argument will render all global assets\n * @returns {HTMLElement}\n * @example\n * // Render all assets\n * assetManager.render();\n *\n * // Render some of the assets\n * const assets = assetManager.getAll();\n * assetManager.render(assets.filter(\n * asset => asset.get('category') == 'cats'\n * ));\n */\n render(assts) {\n if (this.getConfig('custom')) return;\n const toRender = assts || this.getAll().models;\n\n if (!am) {\n const obj = this.__viewParams();\n obj.fu = this.FileUploader();\n const el = am && am.el;\n am = new AssetsView({\n el,\n ...obj,\n });\n am.render();\n }\n\n assetsVis.reset(toRender);\n return this.getContainer();\n },\n\n __viewParams() {\n return {\n collection: assetsVis, // Collection visible in asset manager\n globalCollection: assets,\n config: c,\n module: this,\n };\n },\n\n /**\n * Add new type. If you want to get more about type definition we suggest to read the [module's page](/modules/Assets.html)\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * @private\n * @example\n * assetManager.addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n this.getAll().addType(id, definition);\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @returns {Object} Type definition\n * @private\n */\n getType(id) {\n return this.getAll().getType(id);\n },\n\n /**\n * Get types\n * @returns {Array}\n * @private\n */\n getTypes() {\n return this.getAll().getTypes();\n },\n\n //-------\n\n AssetsView() {\n return am;\n },\n\n FileUploader() {\n if (!fu) {\n fu = new FileUpload(this.__viewParams());\n }\n return fu;\n },\n\n onLoad() {\n this.getAll().reset(c.assets);\n const { em, events } = this;\n em.on(`run:${assetCmd}`, () => this.__propEv(events.open));\n em.on(`stop:${assetCmd}`, () => this.__propEv(events.close));\n },\n\n postRender(editorView) {\n c.dropzone && fu && fu.initDropzone(editorView);\n },\n\n /**\n * Set new target\n * @param\t{Object}\tm Model\n * @private\n * */\n setTarget(m) {\n assetsVis.target = m;\n },\n\n /**\n * Set callback after asset was selected\n * @param\t{Object}\tf Callback function\n * @private\n * */\n onSelect(f) {\n assetsVis.onSelect = f;\n },\n\n /**\n * Set callback to fire when the asset is clicked\n * @param {function} func\n * @private\n */\n onClick(func) {\n c.onClick = func;\n },\n\n /**\n * Set callback to fire when the asset is double clicked\n * @param {function} func\n * @private\n */\n onDblClick(func) {\n c.onDblClick = func;\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour(opts = {}) {\n return this._bhv || {};\n },\n\n destroy() {\n assets.stopListening();\n assetsVis.stopListening();\n assets.reset();\n assetsVis.reset();\n fu && fu.remove();\n am && am.remove();\n [assets, assetsVis, am, fu].forEach(i => (i = null));\n this._bhv = {};\n this.all = {};\n c = {};\n },\n };\n};\n","export default {\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Append blocks to canvas on click.\n // With the `true` value, it will try to append the block to the selected component.\n // If there is no selected component, the block will be appened to the wrapper.\n // You can also pass a function to this option, use it as a catch-all for all block\n // clicks and implement a custom logic for each block.\n // appendOnClick: (block, editor) => {\n // if (block.get('id') === 'some-id')\n // editor.getSelected().append(block.get('content'))\n // else\n // editor.getWrapper().append(block.get('content'))\n // }\n appendOnClick: false,\n\n // Default blocks\n blocks: [],\n\n // Avoid rendering the default block manager.\n custom: false\n};\n","import { Model } from '../../common';\nimport { isFunction } from 'underscore';\n\n/**\n * @property {String} label Block label, eg. `My block`\n * @property {String|Object} content The content of the block. Might be an HTML string or a [Component Defintion](/modules/Components.html#component-definition)\n * @property {String} [media=''] HTML string for the media/icon of the block, eg. ` editor.getWrapper().append(block.get('content'))`\n * @property {Object} [attributes={}] Block attributes to apply in the view element\n */\nexport default class Block extends Model {\n defaults() {\n return {\n label: '',\n content: '',\n media: '',\n category: '',\n activate: false,\n select: null,\n resetId: false,\n disable: false,\n onClick: null,\n attributes: {},\n };\n }\n\n /**\n * Get block id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get block label\n * @returns {String}\n */\n getLabel() {\n return this.get('label');\n }\n\n /**\n * Get block media\n * @returns {String}\n */\n getMedia() {\n return this.get('media');\n }\n\n /**\n * Get block content\n * @returns {Object|String|Array} Component definition | HTML string\n */\n getContent() {\n return this.get('content');\n }\n\n /**\n * Get block category label\n * @returns {String}\n */\n getCategoryLabel() {\n const ctg = this.get('category');\n return isFunction(ctg.get) ? ctg.get('label') : ctg.label ? ctg.label : ctg;\n }\n}\n","import { Collection } from '../../common';\nimport Block from './Block';\n\nexport default class Blocks extends Collection {}\n\nBlocks.prototype.model = Block;\n","import { Model } from '../../common';\n\nexport default class Category extends Model {\n defaults() {\n return {\n id: '',\n label: '',\n open: true,\n attributes: {},\n };\n }\n}\n","import { Collection } from '../../common';\nimport Category from './Category';\n\nexport default class Categories extends Collection {}\n\nCategories.prototype.model = Category;\n","import { isFunction } from 'underscore';\nimport { View } from '../../common';\nimport { on, off, hasDnd } from '../../utils/mixins';\n\nexport default class BlockView extends View {\n events() {\n return {\n click: 'handleClick',\n mousedown: 'startDrag',\n dragstart: 'handleDragStart',\n drag: 'handleDrag',\n dragend: 'handleDragEnd',\n };\n }\n\n initialize(o, config = {}) {\n const { model } = this;\n this.em = config.em;\n this.config = config;\n this.endDrag = this.endDrag.bind(this);\n this.ppfx = config.pStylePrefix || '';\n this.listenTo(model, 'destroy remove', this.remove);\n this.listenTo(model, 'change', this.render);\n }\n\n __getModule() {\n return this.em.get('BlockManager');\n }\n\n handleClick(ev) {\n const { config, model, em } = this;\n const onClick = model.get('onClick') || config.appendOnClick;\n em.trigger('block:click', model, ev);\n if (!onClick) {\n return;\n } else if (isFunction(onClick)) {\n return onClick(model, em.getEditor(), { event: ev });\n }\n const sorter = config.getSorter();\n const content = model.get('content');\n const selected = em.getSelected();\n sorter.setDropContent(content);\n let target, valid, insertAt;\n\n // If there is a selected component, try first to append\n // the block inside, otherwise, try to place it as a next sibling\n if (selected) {\n valid = sorter.validTarget(selected.getEl(), content);\n\n if (valid.valid) {\n target = selected;\n } else {\n const parent = selected.parent();\n valid = sorter.validTarget(parent.getEl(), content);\n if (valid.valid) {\n target = parent;\n insertAt = parent.components().indexOf(selected) + 1;\n }\n }\n }\n\n // If no target found yet, try to append the block to the wrapper\n if (!target) {\n const wrapper = em.getWrapper();\n valid = sorter.validTarget(wrapper.getEl(), content);\n if (valid.valid) target = wrapper;\n }\n\n const result = target && target.append(content, { at: insertAt })[0];\n result && em.setSelected(result, { scroll: 1 });\n }\n\n /**\n * Start block dragging\n * @private\n */\n startDrag(e) {\n const { config, em, model } = this;\n const disable = model.get('disable');\n //Right or middel click\n if (e.button !== 0 || !config.getSorter || this.el.draggable || disable) return;\n em.refreshCanvas();\n const sorter = config.getSorter();\n sorter.setDragHelper(this.el, e);\n sorter.setDropContent(this.model.get('content'));\n sorter.startSort(this.el);\n on(document, 'mouseup', this.endDrag);\n }\n\n handleDragStart(ev) {\n this.__getModule().__startDrag(this.model, ev);\n }\n\n handleDrag(ev) {\n this.__getModule().__drag(ev);\n }\n\n handleDragEnd() {\n this.__getModule().__endDrag();\n }\n\n /**\n * Drop block\n * @private\n */\n endDrag(e) {\n off(document, 'mouseup', this.endDrag);\n const sorter = this.config.getSorter();\n\n // After dropping the block in the canvas the mouseup event is not yet\n // triggerd on 'this.doc' and so clicking outside, the sorter, tries to move\n // things (throws false positives). As this method just need to drop away\n // the block helper I use the trick of 'moved = 0' to void those errors.\n sorter.moved = 0;\n sorter.endMove();\n }\n\n render() {\n const { em, el, $el, ppfx, model } = this;\n const disable = model.get('disable');\n const attr = model.get('attributes') || {};\n const cls = attr.class || '';\n const className = `${ppfx}block`;\n const label = (em && em.t(`blockManager.labels.${model.id}`)) || model.get('label');\n const render = model.get('render');\n const media = model.get('media');\n const clsAdd = disable ? `${className}--disable` : `${ppfx}four-color-h`;\n $el.attr(attr);\n el.className = `${cls} ${className} ${ppfx}one-bg ${clsAdd}`.trim();\n el.innerHTML = `\n ${media ? `
${media}
` : ''}\n
${label}
\n `;\n el.title = attr.title || el.textContent.trim();\n el.setAttribute('draggable', hasDnd(em) && !disable ? true : false);\n const result = render && render({ el, model, className, prefix: ppfx });\n if (result) el.innerHTML = result;\n return this;\n }\n}\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class CategoryView extends View {\n template({ pfx, label }) {\n return html`\n
\n \n ${label}\n
\n
\n `;\n }\n\n attributes() {\n return this.model.get('attributes');\n }\n\n initialize(o = {}, config = {}) {\n this.config = config;\n const pfx = config.pStylePrefix || '';\n this.em = config.em;\n this.pfx = pfx;\n this.caretR = 'fa fa-caret-right';\n this.caretD = 'fa fa-caret-down';\n this.iconClass = `${pfx}caret-icon`;\n this.activeClass = `${pfx}open`;\n this.className = `${pfx}block-category`;\n this.events = {};\n this.events[`click .${pfx}title`] = 'toggle';\n this.listenTo(this.model, 'change:open', this.updateVisibility);\n this.delegateEvents();\n this.model.view = this;\n }\n\n updateVisibility() {\n if (this.model.get('open')) this.open();\n else this.close();\n }\n\n open() {\n this.$el.addClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\n this.getBlocksEl().style.display = '';\n }\n\n close() {\n this.$el.removeClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretR}`;\n this.getBlocksEl().style.display = 'none';\n }\n\n toggle() {\n var model = this.model;\n model.set('open', !model.get('open'));\n }\n\n getIconEl() {\n if (!this.iconEl) {\n this.iconEl = this.el.querySelector('.' + this.iconClass);\n }\n\n return this.iconEl;\n }\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c');\n }\n\n return this.blocksEl;\n }\n\n append(el) {\n this.getBlocksEl().appendChild(el);\n }\n\n render() {\n const { em, el, $el, model, pfx } = this;\n const label = em.t(`blockManager.categories.${model.id}`) || model.get('label');\n el.innerHTML = this.template({ pfx, label });\n $el.addClass(this.className);\n $el.css({ order: model.get('order') });\n this.updateVisibility();\n\n return this;\n }\n}\n","import { isString, isObject, bindAll } from 'underscore';\nimport { View } from '../../common';\nimport BlockView from './BlockView';\nimport CategoryView from './CategoryView';\n\nexport default class BlocksView extends View {\n initialize(opts, config) {\n bindAll(this, 'getSorter', 'onDrag', 'onDrop', 'onMove');\n this.config = config || {};\n this.categories = opts.categories || '';\n this.renderedCategories = [];\n var ppfx = this.config.pStylePrefix || '';\n this.ppfx = ppfx;\n this.noCatClass = `${ppfx}blocks-no-cat`;\n this.blockContClass = `${ppfx}blocks-c`;\n this.catsClass = `${ppfx}block-categories`;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n this.em = this.config.em;\n this.tac = 'test-tac';\n this.grabbingCls = this.ppfx + 'grabbing';\n\n if (this.em) {\n this.config.getSorter = this.getSorter;\n this.canvas = this.em.get('Canvas');\n }\n }\n\n updateConfig(opts = {}) {\n this.config = {\n ...this.config,\n ...opts,\n };\n }\n\n /**\n * Get sorter\n * @private\n */\n getSorter() {\n if (!this.em) return;\n if (!this.sorter) {\n var utils = this.em.get('Utils');\n var canvas = this.canvas;\n this.sorter = new utils.Sorter({\n container: canvas.getBody(),\n placer: canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n onStart: this.onDrag,\n onEndMove: this.onDrop,\n onMove: this.onMove,\n document: canvas.getFrameEl().contentDocument,\n direction: 'a',\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1,\n });\n }\n return this.sorter;\n }\n\n /**\n * Callback when block is on drag\n * @private\n */\n onDrag(e) {\n this.em.stopDefault();\n this.em.trigger('block:drag:start', e);\n }\n\n onMove(e) {\n this.em.trigger('block:drag:move', e);\n }\n\n /**\n * Callback when block is dropped\n * @private\n */\n onDrop(model) {\n const { em } = this;\n em.runDefault();\n\n if (model && model.get) {\n const oldActive = 'activeOnRender';\n\n if (model.get(oldActive)) {\n model.trigger('active');\n model.unset(oldActive);\n }\n\n em.trigger('block:drag:stop', model);\n }\n }\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n }\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config } = this;\n var frag = fragment || null;\n var view = new BlockView(\n {\n model,\n attributes: model.get('attributes'),\n },\n config\n );\n var rendered = view.render().el;\n var category = model.get('category');\n\n // Check for categories\n if (category && this.categories && !config.ignoreCategories) {\n if (isString(category)) {\n category = {\n id: category,\n label: category,\n };\n } else if (isObject(category) && !category.id) {\n category.id = category.label;\n }\n\n var catModel = this.categories.add(category);\n var catId = catModel.get('id');\n var catView = this.renderedCategories[catId];\n var categories = this.getCategoriesEl();\n model.set('category', catModel, { silent: true });\n\n if (!catView && categories) {\n catView = new CategoryView(\n {\n model: catModel,\n },\n this.config\n ).render();\n this.renderedCategories[catId] = catView;\n categories.appendChild(catView.el);\n }\n\n catView && catView.append(rendered);\n return;\n }\n\n if (frag) frag.appendChild(rendered);\n else this.append(rendered);\n }\n\n getCategoriesEl() {\n if (!this.catsEl) {\n this.catsEl = this.el.querySelector(`.${this.catsClass}`);\n }\n\n return this.catsEl;\n }\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector(`.${this.noCatClass} .${this.blockContClass}`);\n }\n\n return this.blocksEl;\n }\n\n append(el) {\n let blocks = this.getBlocksEl();\n blocks && blocks.appendChild(el);\n }\n\n render() {\n const ppfx = this.ppfx;\n const frag = document.createDocumentFragment();\n this.catsEl = null;\n this.blocksEl = null;\n this.renderedCategories = [];\n this.el.innerHTML = `\n
\n
\n
\n
\n `;\n\n this.collection.each(model => this.add(model, frag));\n this.append(frag);\n const cls = `${this.blockContClass}s ${ppfx}one-bg ${ppfx}two-color`;\n this.$el.addClass(cls);\n this.rendered = true;\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/block_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * blockManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('block:add', (block) => { ... });\n *\n * // Use the API\n * const blockManager = editor.BlockManager;\n * blockManager.add(...);\n * ```\n *\n * ## Available Events\n * * `block:add` - Block added. The [Block] is passed as an argument to the callback.\n * * `block:remove` - Block removed. The [Block] is passed as an argument to the callback.\n * * `block:update` - Block updated. The [Block] and the object containing changes are passed as arguments to the callback.\n * * `block:drag:start` - Started dragging block, the [Block] is passed as an argument.\n * * `block:drag` - Dragging block, the [Block] is passed as an argument.\n * * `block:drag:stop` - Dragging of the block is stopped. The dropped [Component] (if dropped successfully) and the [Block] are passed as arguments.\n * * `block` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [getConfig](#getconfig)\n * * [getCategories](#getcategories)\n * * [getContainer](#getcontainer)\n * * [render](#render)\n *\n * [Block]: block.html\n * [Component]: component.html\n *\n * @module BlockManager\n */\nimport { isElement, isArray } from 'underscore';\nimport Module from '../abstract/moduleLegacy';\nimport defaults from './config/config';\nimport Block from './model/Block';\nimport Blocks from './model/Blocks';\nimport Category from './model/Category';\nimport Categories from './model/Categories';\nimport BlocksView from './view/BlocksView';\n\nexport const evAll = 'block';\nexport const evPfx = `${evAll}:`;\nexport const evAdd = `${evPfx}add`;\nexport const evUpdate = `${evPfx}update`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evDrag = `${evPfx}drag`;\nexport const evDragStart = `${evDrag}:start`;\nexport const evDragStop = `${evDrag}:stop`;\nexport const evCustom = `${evPfx}custom`;\n\nexport default () => {\n var c = {};\n var blocks, blocksVisible, blocksView;\n var categories = [];\n\n return {\n ...Module,\n\n name: 'BlockManager',\n\n Block,\n\n Blocks,\n\n Category,\n\n Categories,\n\n events: {\n all: evAll,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n drag: evDrag,\n dragStart: evDragStart,\n dragEnd: evDragStop,\n custom: evCustom,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n this.em = em;\n\n // Global blocks collection\n blocks = new Blocks(c.blocks);\n blocksVisible = new Blocks(blocks.models);\n categories = new Categories();\n this.all = blocks;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n blocks.on('add', model => blocksVisible.add(model));\n blocks.on('remove', model => blocksVisible.remove(model));\n blocks.on('reset', coll => blocksVisible.reset(coll.models));\n\n return this;\n },\n\n __trgCustom() {\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n bm: this,\n blocks: this.getAll().models,\n container: bhv.container,\n dragStart: (block, ev) => this.startDrag(block, ev),\n drag: ev => this.__drag(ev),\n dragStop: cancel => this.endDrag(cancel),\n };\n },\n\n __startDrag(block, ev) {\n const { em, events } = this;\n const content = block.getContent ? block.getContent() : block;\n this._dragBlock = block;\n em.set({ dragResult: null, dragContent: content });\n [em, blocks].map(i => i.trigger(events.dragStart, block, ev));\n },\n\n __drag(ev) {\n const { em, events } = this;\n const block = this._dragBlock;\n [em, blocks].map(i => i.trigger(events.drag, block, ev));\n },\n\n __endDrag() {\n const { em, events } = this;\n const block = this._dragBlock;\n const cmp = em.get('dragResult');\n this._dragBlock = null;\n\n if (cmp) {\n const oldKey = 'activeOnRender';\n const oldActive = cmp.get && cmp.get(oldKey);\n const toActive = block.get('activate') || oldActive;\n const toSelect = block.get('select');\n const first = isArray(cmp) ? cmp[0] : cmp;\n\n if (toSelect || (toActive && toSelect !== false)) {\n em.setSelected(first);\n }\n\n if (toActive) {\n first.trigger('active');\n oldActive && first.unset(oldKey);\n }\n\n if (block.get('resetId')) {\n first.onAll(block => block.resetId());\n }\n }\n\n em.set({ dragResult: null, dragContent: null });\n [em, blocks].map(i => i.trigger(events.dragEnd, cmp, block));\n },\n\n __getFrameViews() {\n return this.em\n .get('Canvas')\n .getFrames()\n .map(frame => frame.view);\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour() {\n return this._bhv || {};\n },\n\n startDrag(block, ev) {\n this.__startDrag(block, ev);\n this.__getFrameViews().forEach(fv => fv.droppable.startCustom());\n },\n\n endDrag(cancel) {\n this.__getFrameViews().forEach(fv => fv.droppable.endCustom(cancel));\n this.__endDrag();\n },\n\n /**\n * Get configuration object\n * @return {Object}\n */\n getConfig() {\n return c;\n },\n\n postRender() {\n const collection = blocksVisible;\n blocksView = new BlocksView({ collection, categories }, c);\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render(blocksVisible.models));\n }\n\n this.__trgCustom();\n },\n\n /**\n * Add new block.\n * @param {String} id Block ID\n * @param {[Block]} props Block properties\n * @returns {[Block]} Added block\n * @example\n * blockManager.add('h1-block', {\n * label: 'Heading',\n * content: '

Put your title here

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

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

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

Title frame

',\n * '

Paragraph frame

',\n * ],\n * styles: `\n * .testh { color: red; }\n * .testp { color: blue; }\n * `,\n * });\n */\n addFrame(props = {}, opts = {}) {\n return canvas.get('frames').add(\n {\n ...props,\n },\n {\n ...opts,\n em: this.em,\n }\n );\n },\n\n destroy() {\n canvas.stopListening();\n CanvasView && CanvasView.remove();\n [c, canvas, CanvasView].forEach(i => (i = {}));\n ['em', 'model', 'droppable'].forEach(i => (this[i] = {}));\n },\n };\n};\n","import { result, forEach, isEmpty, isString } from 'underscore';\nimport { Model } from '../../common';\nimport { isComponent, isObject } from '../../utils/mixins';\n\nconst keyAutoW = '__aw';\nconst keyAutoH = '__ah';\n\n/**\n * @property {Object|String} component Wrapper component definition. You can also pass an HTML string as components of the default wrapper component.\n * @property {String} [width=''] Width of the frame. By default, the canvas width will be taken.\n * @property {String} [height=''] Height of the frame. By default, the canvas height will be taken.\n * @property {Number} [x=0] Horizontal position of the frame in the canvas.\n * @property {Number} [y=0] Vertical position of the frame in the canvas.\n *\n */\nexport default class Frame extends Model {\n defaults() {\n return {\n x: 0,\n y: 0,\n changesCount: 0,\n attributes: {},\n width: null,\n height: null,\n head: [],\n component: '',\n styles: '',\n _undo: true,\n _undoexc: ['changesCount'],\n };\n }\n\n initialize(props, opts = {}) {\n const { config } = opts;\n const { em } = config;\n const { styles, component } = this.attributes;\n const domc = em.get('DomComponents');\n const conf = domc.getConfig();\n const allRules = em.get('CssComposer').getAll();\n const idMap = {};\n this.em = em;\n const modOpts = { em, config: conf, frame: this, idMap };\n\n if (!isComponent(component)) {\n const wrp = isObject(component) ? component : { components: component };\n !wrp.type && (wrp.type = 'wrapper');\n const Wrapper = domc.getType('wrapper').model;\n this.set('component', new Wrapper(wrp, modOpts));\n }\n\n if (!styles) {\n this.set('styles', allRules);\n } else if (!isObject(styles)) {\n // Avoid losing styles on remapped components\n const idMapKeys = Object.keys(idMap);\n if (idMapKeys.length && Array.isArray(styles)) {\n styles.forEach(style => {\n const sel = style.selectors;\n if (sel && sel.length == 1) {\n const sSel = sel[0];\n const idSel = sSel.name && sSel.type === 2 && sSel;\n if (idSel && idMap[idSel.name]) {\n idSel.name = idMap[idSel.name];\n } else if (isString(sSel) && sSel[0] === '#') {\n const prevId = sSel.substring(1);\n if (prevId && idMap[prevId]) {\n sel[0] = `#${idMap[prevId]}`;\n }\n }\n }\n });\n }\n\n allRules.add(styles);\n this.set('styles', allRules);\n }\n\n !props.width && this.set(keyAutoW, 1);\n !props.height && this.set(keyAutoH, 1);\n }\n\n onRemove() {\n this.getComponent().remove({ root: 1 });\n }\n\n changesUp(opt = {}) {\n if (opt.temporary || opt.noCount || opt.avoidStore) {\n return;\n }\n this.set('changesCount', this.get('changesCount') + 1);\n }\n\n getComponent() {\n return this.get('component');\n }\n\n getStyles() {\n return this.get('styles');\n }\n\n disable() {\n this.trigger('disable');\n }\n\n remove() {\n this.view = 0;\n const coll = this.collection;\n return coll && coll.remove(this);\n }\n\n getHead() {\n const head = this.get('head') || [];\n return [...head];\n }\n\n setHead(value) {\n return this.set('head', [...value]);\n }\n\n addHeadItem(item) {\n const head = this.getHead();\n head.push(item);\n this.setHead(head);\n }\n\n getHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n return head.filter(item => item.attributes && item.attributes[attr] == value && (!tag || tag === item.tag))[0];\n }\n\n removeHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n const item = this.getHeadByAttr(attr, value, tag);\n const index = head.indexOf(item);\n\n if (index >= 0) {\n head.splice(index, 1);\n this.setHead(head);\n }\n }\n\n addLink(href) {\n const tag = 'link';\n !this.getHeadByAttr('href', href, tag) &&\n this.addHeadItem({\n tag,\n attributes: {\n href,\n rel: 'stylesheet',\n },\n });\n }\n\n removeLink(href) {\n this.removeHeadByAttr('href', href, 'link');\n }\n\n addScript(src) {\n const tag = 'script';\n !this.getHeadByAttr('src', src, tag) &&\n this.addHeadItem({\n tag,\n attributes: { src },\n });\n }\n\n removeScript(src) {\n this.removeHeadByAttr('src', src, 'script');\n }\n\n getPage() {\n const coll = this.collection;\n return coll && coll.page;\n }\n\n _emitUpdated(data = {}) {\n this.em.trigger('frame:updated', { frame: this, ...data });\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const defaults = result(this, 'defaults');\n\n if (opts.fromUndo) delete obj.component;\n delete obj.styles;\n delete obj.changesCount;\n obj[keyAutoW] && delete obj.width;\n obj[keyAutoH] && delete obj.height;\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n forEach(['attributes', 'head'], prop => {\n if (isEmpty(obj[prop])) delete obj[prop];\n });\n\n return obj;\n }\n}\n","import { bindAll } from 'underscore';\nimport { Collection } from '../../common';\nimport Frame from './Frame';\n\nexport default class Frames extends Collection {\n initialize(models, config = {}) {\n bindAll(this, 'itemLoaded');\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n itemLoaded() {\n this.loadedItems++;\n\n if (this.loadedItems >= this.itemsToLoad) {\n this.trigger('loaded:all');\n this.listenToLoadItems(0);\n }\n }\n\n listenToLoad() {\n this.loadedItems = 0;\n this.itemsToLoad = this.length;\n this.listenToLoadItems(1);\n }\n\n listenToLoadItems(on) {\n this.forEach(item => item[on ? 'on' : 'off']('loaded', this.itemLoaded));\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nFrames.prototype.model = Frame;\n","export default {\n // Style prefix\n stylePrefix: 'cm-',\n\n inlineCss: false\n};\n","import { Model } from '../../common';\n\nexport default class HTMLGenerator extends Model {\n build(model, opts = {}) {\n const htmlOpts = {};\n const { em } = opts;\n\n // Remove unnecessary IDs\n if (opts.cleanId && em) {\n const rules = em.get('CssComposer').getAll();\n const idRules = rules\n .toJSON()\n .map(rule => {\n const sels = rule.selectors;\n const sel = sels && sels.length === 1 && sels.models[0];\n return sel && sel.isId() && sel.get('name');\n })\n .filter(i => i);\n\n htmlOpts.attributes = (mod, attrs) => {\n const { id } = attrs;\n if (\n id &&\n id[0] === 'i' && // all autogenerated IDs start with 'i'\n !mod.get('script') && // if the component has script, we have to leave the ID\n !mod.get('attributes').id && // id is not intentionally in attributes\n idRules.indexOf(id) < 0 // we shouldn't have any rule with this ID\n ) {\n delete attrs.id;\n }\n return attrs;\n };\n }\n\n return model.toHTML(htmlOpts);\n }\n}\n","import { each } from 'underscore';\nimport { Model, Collection } from '../../common';\n\nexport default class JsonGenerator extends Model {\n build(model) {\n var json = model.toJSON();\n this.beforeEach(json);\n\n each(\n json,\n function (v, attr) {\n var obj = json[attr];\n if (obj instanceof Model) {\n json[attr] = this.build(obj);\n } else if (obj instanceof Collection) {\n var coll = obj;\n json[attr] = [];\n if (coll.length) {\n coll.each(function (el, index) {\n json[attr][index] = this.build(el);\n }, this);\n }\n }\n },\n this\n );\n\n return json;\n }\n\n /**\n * Execute on each object\n * @param {Object} obj\n */\n beforeEach(obj) {\n delete obj.status;\n }\n}\n","import { bindAll } from 'underscore';\nimport { Model } from '../../common';\nimport { hasWin } from '../../utils/mixins';\n\nlet CodeMirror;\n\nif (hasWin()) {\n CodeMirror = require('codemirror/lib/codemirror');\n require('codemirror/mode/htmlmixed/htmlmixed');\n require('codemirror/mode/css/css');\n require('codemirror-formatting');\n}\n\nexport default class CodeMirrorEditor extends Model {\n defaults() {\n return {\n input: '',\n label: '',\n codeName: '',\n theme: 'hopscotch',\n readOnly: true,\n lineNumbers: true,\n };\n }\n\n init(el) {\n bindAll(this, 'onChange');\n this.editor = CodeMirror.fromTextArea(el, {\n dragDrop: false,\n lineWrapping: true,\n mode: this.get('codeName'),\n ...this.attributes,\n });\n this.element = el;\n this.editor.on('change', this.onChange);\n\n return this;\n }\n\n onChange() {\n this.trigger('update', this);\n }\n\n getEditor() {\n return this.editor;\n }\n\n /**\n * The element where the viewer is attached\n * @return {HTMLElement}\n */\n getElement() {\n return this.element;\n }\n\n /**\n * Set the element which contains the viewer attached.\n * Generally, it should be just a textarea, but some editor might require\n * a container for it some in that case this method can be used\n * @param {HTMLElement} el\n * @return {self}\n */\n setElement(el) {\n this.element = el;\n return this;\n }\n\n /**\n * Refresh the viewer\n * @return {self}\n */\n refresh() {\n this.getEditor().refresh();\n return this;\n }\n\n /**\n * Focus the viewer\n * @return {self}\n */\n focus() {\n this.getEditor().focus();\n return this;\n }\n\n getContent() {\n const ed = this.getEditor();\n return ed && ed.getValue();\n }\n\n /** @inheritdoc */\n setContent(v, opts = {}) {\n const { editor } = this;\n if (!editor) return;\n editor.setValue(v);\n\n if (editor.autoFormatRange) {\n CodeMirror.commands.selectAll(editor);\n editor.autoFormatRange(editor.getCursor(true), editor.getCursor(false));\n CodeMirror.commands.goDocStart(editor);\n }\n\n !opts.noRefresh && setTimeout(() => this.refresh());\n }\n}\n\nCodeMirrorEditor.prototype.CodeMirror = CodeMirror;\n","import { extend } from 'underscore';\nimport { Model } from '../../common';\n\nfunction isFunctionEmpty(fn) {\n const content = fn.toString().match(/\\{([\\s\\S]*)\\}/m)[1]; // content between first and last { }\n return content.replace(/^\\s*\\/\\/.*$/gm, '').trim().length === 0; // remove comments\n}\n\nexport default class JsGenerator extends Model {\n mapModel(model) {\n var code = '';\n var script = model.get('script-export') || model.get('script');\n var type = model.get('type');\n var comps = model.get('components');\n var id = model.getId();\n\n if (script) {\n // If the component has scripts we need to expose his ID\n var attr = model.get('attributes');\n attr = extend({}, attr, { id });\n model.set('attributes', attr, { silent: 1 });\n var scrStr = model.getScriptString(script);\n const scrProps = model.get('script-props');\n\n // If the script was updated, I'll put its code in a separate container\n if (model.get('scriptUpdated') && !scrProps) {\n this.mapJs[type + '-' + id] = { ids: [id], code: scrStr };\n } else {\n let props;\n const mapType = this.mapJs[type];\n\n if (scrProps) {\n props = model.__getScriptProps();\n }\n\n if (mapType) {\n mapType.ids.push(id);\n if (props) mapType.props[id] = props;\n } else {\n const res = { ids: [id], code: scrStr };\n if (props) res.props = { [id]: props };\n this.mapJs[type] = res;\n }\n }\n }\n\n comps.each(function (model) {\n code += this.mapModel(model);\n }, this);\n\n return code;\n }\n\n build(model) {\n this.mapJs = {};\n this.mapModel(model);\n let code = '';\n\n for (let type in this.mapJs) {\n const mapType = this.mapJs[type];\n\n if (!mapType.code) {\n continue;\n }\n\n if (mapType.props) {\n if (isFunctionEmpty(mapType.code)) {\n continue;\n }\n\n code += `\n var props = ${JSON.stringify(mapType.props)};\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (${mapType.code}.bind(el))(props[el.id]);\n }`;\n } else {\n // Deprecated\n const ids = '#' + mapType.ids.join(', #');\n code += `\n var items = document.querySelectorAll('${ids}');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\\n${mapType.code}\\n}.bind(items[i]))();\n }`;\n }\n }\n\n return code;\n }\n}\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class EditorView extends View {\n template({ pfx, codeName, label }) {\n return html`\n
\n
${label}
\n
\n
\n `;\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.pfx = this.config.stylePrefix;\n }\n\n render() {\n const { model, pfx, $el } = this;\n const obj = model.toJSON();\n obj.pfx = pfx;\n $el.html(this.template(obj));\n $el.attr('class', `${pfx}editor-c`);\n $el.find(`#${pfx}code`).append(model.get('input'));\n return this;\n }\n}\n","/**\n * - [addGenerator](#addgenerator)\n * - [getGenerator](#getgenerator)\n * - [getGenerators](#getgenerators)\n * - [addViewer](#addviewer)\n * - [getViewer](#getviewer)\n * - [getViewers](#getviewers)\n * - [updateViewer](#updateviewer)\n * - [getCode](#getcode)\n *\n *\n * Before using methods you should get first the module from the editor instance, in this way:\n *\n * ```js\n * var codeManager = editor.CodeManager;\n * ```\n *\n * @module CodeManager\n */\nimport { isUndefined } from 'underscore';\nimport defaults from './config/config';\nimport gHtml from './model/HtmlGenerator';\nimport gCss from './model/CssGenerator';\nimport gJson from './model/JsonGenerator';\nimport gJs from './model/JsGenerator';\nimport eCM from './model/CodeMirrorEditor';\nimport editorView from './view/EditorView';\n\nexport default () => {\n var c = {};\n var generators = {},\n defGenerators = {},\n viewers = {},\n defViewers = {};\n\n const defaultViewer = 'CodeMirror';\n\n return {\n getConfig() {\n return c;\n },\n\n config: c,\n\n EditorView: editorView,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CodeManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n defGenerators.html = new gHtml();\n defGenerators.css = new gCss();\n defGenerators.json = new gJson();\n defGenerators.js = new gJs();\n defViewers.CodeMirror = new eCM();\n this.loadDefaultGenerators().loadDefaultViewers();\n\n return this;\n },\n\n /**\n * Add new code generator to the collection\n * @param {string} id Code generator ID\n * @param {Object} generator Code generator wrapper\n * @param {Function} generator.build Function that builds the code\n * @return {this}\n * @example\n * codeManager.addGenerator('html7',{\n * build: function(model){\n * return 'myCode';\n * }\n * });\n * */\n addGenerator(id, generator) {\n generators[id] = generator;\n return this;\n },\n\n /**\n * Get code generator by id\n * @param {string} id Code generator ID\n * @return {Object|null}\n * @example\n * var generator = codeManager.getGenerator('html7');\n * generator.build = function(model){\n * //extend\n * };\n * */\n getGenerator(id) {\n return generators[id] || null;\n },\n\n /**\n * Returns all code generators\n * @return {Array}\n * */\n getGenerators() {\n return generators;\n },\n\n /**\n * Add new code viewer\n * @param {string} id Code viewer ID\n * @param {Object} viewer Code viewer wrapper\n * @param {Function} viewer.init Set element on which viewer will be displayed\n * @param {Function} viewer.setContent Set content to the viewer\n * @return {this}\n * @example\n * codeManager.addViewer('ace',{\n * init: function(el){\n * var ace = require('ace-editor');\n * this.editor = ace.edit(el.id);\n * },\n * setContent: function(code){\n * this.editor.setValue(code);\n * }\n * });\n * */\n addViewer(id, viewer) {\n viewers[id] = viewer;\n return this;\n },\n\n /**\n * Get code viewer by id\n * @param {string} id Code viewer ID\n * @return {Object|null}\n * @example\n * var viewer = codeManager.getViewer('ace');\n * */\n getViewer(id) {\n return viewers[id] || null;\n },\n\n /**\n * Returns all code viewers\n * @return {Array}\n * */\n getViewers() {\n return viewers;\n },\n\n createViewer(opts = {}) {\n const type = !isUndefined(opts.type) ? opts.type : defaultViewer;\n const viewer = this.getViewer(type) && this.getViewer(type).clone();\n const cont = document.createElement('div');\n const txtarea = document.createElement('textarea');\n cont.appendChild(txtarea);\n viewer.set(opts);\n viewer.init(txtarea);\n viewer.setElement(cont);\n\n return viewer;\n },\n\n /**\n * Update code viewer content\n * @param {Object} viewer Viewer instance\n * @param {string} code Code string\n * @example\n * var AceViewer = codeManager.getViewer('ace');\n * // ...\n * var viewer = AceViewer.init(el);\n * // ...\n * codeManager.updateViewer(AceViewer, 'code');\n * */\n updateViewer(viewer, code) {\n viewer.setContent(code);\n },\n\n /**\n * Get code from model\n * @param {Object} model Any kind of model that will be passed to the build method of generator\n * @param {string} genId Code generator id\n * @param {Object} [opt] Options\n * @return {string}\n * @example\n * var codeStr = codeManager.getCode(model, 'html');\n * */\n getCode(model, genId, opt = {}) {\n opt.em = c.em;\n var generator = this.getGenerator(genId);\n return generator ? generator.build(model, opt) : '';\n },\n\n /**\n * Load default code generators\n * @return {this}\n * @private\n * */\n loadDefaultGenerators() {\n for (var id in defGenerators) this.addGenerator(id, defGenerators[id]);\n\n return this;\n },\n\n /**\n * Load default code viewers\n * @return {this}\n * @private\n * */\n loadDefaultViewers() {\n for (var id in defViewers) this.addViewer(id, defViewers[id]);\n\n return this;\n },\n\n destroy() {\n [c, generators, defGenerators, viewers, defViewers].forEach(\n i => (i = {})\n );\n }\n };\n};\n","import { bindAll, isUndefined, each } from 'underscore';\nimport { Model } from '../../common';\nimport { hasWin } from '../../utils/mixins';\n\nconst maxValue = Number.MAX_VALUE;\n\nexport const getMediaLength = mediaQuery => {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n return !length ? '' : length[0];\n};\n\nexport default class CssGenerator extends Model {\n initialize() {\n bindAll(this, 'sortRules');\n this.compCls = [];\n this.ids = [];\n }\n\n /**\n * Get CSS from a component\n * @param {Model} model\n * @return {String}\n */\n buildFromModel(model, opts = {}) {\n let code = '';\n const em = this.em;\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n const style = model.styleToString();\n const classes = model.get('classes');\n this.ids.push(`#${model.getId()}`);\n\n // Let's know what classes I've found\n classes.each(model => this.compCls.push(model.getFullName()));\n\n if (!avoidInline && style) {\n code = `#${model.getId()}{${style}}`;\n }\n\n const components = model.components();\n components.each(model => (code += this.buildFromModel(model, opts)));\n return code;\n }\n\n build(model, opts = {}) {\n const { json } = opts;\n const em = opts.em || '';\n const cssc = opts.cssc || (em && em.get('CssComposer'));\n this.em = em;\n this.compCls = [];\n this.ids = [];\n this.model = model;\n const codeJson = [];\n let code = model ? this.buildFromModel(model, opts) : '';\n const clearStyles = isUndefined(opts.clearStyles) && em ? em.getConfig('clearStyles') : opts.clearStyles;\n\n if (cssc) {\n let rules = opts.rules || cssc.getAll();\n const atRules = {};\n const dump = [];\n\n if (opts.onlyMatched && model && hasWin()) {\n rules = this.matchedRules(model, rules);\n }\n\n rules.forEach(rule => {\n const atRule = rule.getAtRule();\n\n if (atRule) {\n const mRules = atRules[atRule];\n if (mRules) {\n mRules.push(rule);\n } else {\n atRules[atRule] = [rule];\n }\n return;\n }\n\n const res = this.buildFromRule(rule, dump, opts);\n\n if (json) {\n codeJson.push(res);\n } else {\n code += res;\n }\n });\n\n this.sortMediaObject(atRules).forEach(item => {\n let rulesStr = '';\n const atRule = item.key;\n const mRules = item.value;\n\n mRules.forEach(rule => {\n const ruleStr = this.buildFromRule(rule, dump, opts);\n\n if (rule.get('singleAtRule')) {\n code += `${atRule}{${ruleStr}}`;\n } else {\n rulesStr += ruleStr;\n }\n\n json && codeJson.push(ruleStr);\n });\n\n if (rulesStr) {\n code += `${atRule}{${rulesStr}}`;\n }\n });\n\n em && clearStyles && rules.remove && rules.remove(dump);\n }\n\n return json ? codeJson.filter(r => r) : code;\n }\n\n /**\n * Get CSS from the rule model\n * @param {Model} rule\n * @return {string} CSS string\n */\n buildFromRule(rule, dump, opts = {}) {\n let result = '';\n const { model } = this;\n const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 });\n const selectorsAdd = rule.get('selectorsAdd');\n const singleAtRule = rule.get('singleAtRule');\n let found;\n\n // This will not render a rule if there is no its component\n rule.get('selectors').each(selector => {\n const name = selector.getFullName();\n if (this.compCls.indexOf(name) >= 0 || this.ids.indexOf(name) >= 0 || opts.keepUnusedStyles) {\n found = 1;\n }\n });\n\n if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule || !model) {\n const block = rule.getDeclaration({ body: 1 });\n block && (opts.json ? (result = rule) : (result += block));\n } else {\n dump.push(rule);\n }\n\n return result;\n }\n\n /**\n * Get matched rules of a component\n * @param {Component} component\n * @param {Array} rules\n * @returns {Array}\n */\n matchedRules(component, rules) {\n const el = component.getEl();\n let result = [];\n\n rules.forEach(rule => {\n try {\n if (\n rule\n .selectorsToString()\n .split(',')\n .some(selector => el.matches(this.__cleanSelector(selector)))\n ) {\n result.push(rule);\n }\n } catch (err) {}\n });\n\n component.components().forEach(component => {\n result = result.concat(this.matchedRules(component, rules));\n });\n\n // Remove duplicates\n result = result.filter((rule, i) => result.indexOf(rule) === i);\n\n return result;\n }\n\n /**\n * Get the numeric length of the media query string\n * @param {String} mediaQuery Media query string\n * @return {Number}\n */\n getQueryLength(mediaQuery) {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n if (!length) return maxValue;\n\n return parseFloat(length[1]);\n }\n\n /**\n * Return a sorted array from media query object\n * @param {Object} items\n * @return {Array}\n */\n sortMediaObject(items = {}) {\n const itemsArr = [];\n each(items, (value, key) => itemsArr.push({ key, value }));\n return itemsArr.sort((a, b) => {\n const isMobFirst = [a.key, b.key].every(mquery => mquery.indexOf('min-width') !== -1);\n const left = isMobFirst ? a.key : b.key;\n const right = isMobFirst ? b.key : a.key;\n return this.getQueryLength(left) - this.getQueryLength(right);\n });\n }\n\n sortRules(a, b) {\n const getKey = rule => rule.get('mediaText');\n const isMobFirst = [getKey(a), getKey(b)].every(q => q.indexOf('min-width') !== -1);\n const left = isMobFirst ? getKey(a) : getKey(b);\n const right = isMobFirst ? getKey(b) : getKey(a);\n return this.getQueryLength(left) - this.getQueryLength(right);\n }\n\n /**\n * Return passed selector without states\n * @param {String} selector\n * @returns {String}\n * @private\n */\n __cleanSelector(selector) {\n return selector\n .split(' ')\n .map(item => item.split(':')[0])\n .join(' ');\n }\n}\n","export default {\n stylePrefix: 'com-',\n\n // Default array of commands\n defaults: [],\n\n // If true, stateful commands (with `run` and `stop` methods) can't be runned multiple times.\n // So, if the command is already active, running it again will not execute the `run` method\n strict: 1\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/commands/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * commands: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('run', () => { ... });\n *\n * // Use the API\n * const commands = editor.Commands;\n * commands.add(...);\n * ```\n *\n ** ## Available Events\n * * `run:{commandName}` - Triggered when some command is called to run (eg. editor.runCommand('preview'))\n * * `stop:{commandName}` - Triggered when some command is called to stop (eg. editor.stopCommand('preview'))\n * * `run:{commandName}:before` - Triggered before the command is called\n * * `stop:{commandName}:before` - Triggered before the command is called to stop\n * * `abort:{commandName}` - Triggered when the command execution is aborted (`editor.on(`run:preview:before`, opts => opts.abort = 1);`)\n * * `run` - Triggered on run of any command. The id and the result are passed as arguments to the callback\n * * `stop` - Triggered on stop of any command. The id and the result are passed as arguments to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [extend](#extend)\n * * [has](#has)\n * * [run](#run)\n * * [stop](#stop)\n * * [isActive](#isactive)\n * * [getActive](#getactive)\n *\n * @module Commands\n */\n\nimport { isFunction, includes } from 'underscore';\nimport CommandAbstract from './view/CommandAbstract';\nimport defaults from './config/config';\nimport { eventDrag } from '../dom_components/model/Component';\n\nconst commandsDef = [\n ['preview', 'Preview', 'preview'],\n ['resize', 'Resize', 'resize'],\n ['fullscreen', 'Fullscreen', 'fullscreen'],\n ['copy', 'CopyComponent'],\n ['paste', 'PasteComponent'],\n ['canvas-move', 'CanvasMove'],\n ['canvas-clear', 'CanvasClear'],\n ['open-code', 'ExportTemplate', 'export-template'],\n ['open-layers', 'OpenLayers', 'open-layers'],\n ['open-styles', 'OpenStyleManager', 'open-sm'],\n ['open-traits', 'OpenTraitManager', 'open-tm'],\n ['open-blocks', 'OpenBlocks', 'open-blocks'],\n ['open-assets', 'OpenAssets', 'open-assets'],\n ['component-select', 'SelectComponent', 'select-comp'],\n ['component-outline', 'SwitchVisibility', 'sw-visibility'],\n ['component-offset', 'ShowOffset', 'show-offset'],\n ['component-move', 'MoveComponent', 'move-comp'],\n ['component-next', 'ComponentNext'],\n ['component-prev', 'ComponentPrev'],\n ['component-enter', 'ComponentEnter'],\n ['component-exit', 'ComponentExit', 'select-parent'],\n ['component-delete', 'ComponentDelete'],\n ['component-style-clear', 'ComponentStyleClear'],\n ['component-drag', 'ComponentDrag'],\n];\n\nexport default () => {\n let em;\n let c = {};\n const commands = {};\n const defaultCommands = {};\n const active = {};\n\n // Need it here as it would be used below\n const add = function (id, obj) {\n if (isFunction(obj)) obj = { run: obj };\n if (!obj.stop) obj.noStop = 1;\n delete obj.initialize;\n obj.id = id;\n commands[id] = CommandAbstract.extend(obj);\n return this;\n };\n\n return {\n CommandAbstract,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Commands',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config,\n };\n em = c.em;\n const ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load commands passed via configuration\n Object.keys(c.defaults).forEach(k => {\n const obj = c.defaults[k];\n if (obj.id) this.add(obj.id, obj);\n });\n\n defaultCommands['tlb-delete'] = {\n run(ed) {\n return ed.runCommand('core:component-delete');\n },\n };\n\n defaultCommands['tlb-clone'] = {\n run(ed) {\n ed.runCommand('core:copy');\n ed.runCommand('core:paste', { action: 'clone-component' });\n },\n };\n\n defaultCommands['tlb-move'] = {\n run(ed, sender, opts = {}) {\n let dragger;\n const em = ed.getModel();\n const event = opts && opts.event;\n const { target } = opts;\n const sel = target || ed.getSelected();\n const selAll = target ? [target] : [...ed.getSelectedAll()];\n const nativeDrag = event && event.type == 'dragstart';\n const defComOptions = { preserveSelected: 1 };\n const modes = ['absolute', 'translate'];\n\n if (!sel || !sel.get('draggable')) {\n return em.logWarning('The element is not draggable');\n }\n\n const mode = sel.get('dmode') || em.get('dmode');\n const hideTlb = () => em.stopDefault(defComOptions);\n const altMode = includes(modes, mode);\n selAll.forEach(sel => sel.trigger('disable'));\n\n // Without setTimeout the ghost image disappears\n nativeDrag ? setTimeout(hideTlb, 0) : hideTlb();\n\n const onStart = data => {\n em.trigger(`${eventDrag}:start`, data);\n };\n const onDrag = data => {\n em.trigger(eventDrag, data);\n };\n const onEnd = (e, opts, data) => {\n selAll.forEach(sel => sel.set('status', 'selected'));\n ed.select(selAll);\n sel.emitUpdate();\n em.trigger(`${eventDrag}:end`, data);\n\n // Defer selectComponent in order to prevent canvas \"freeze\" #2692\n setTimeout(() => em.runDefault(defComOptions));\n\n // Dirty patch to prevent parent selection on drop\n (altMode || data.cancelled) && em.set('_cmpDrag', 1);\n };\n\n if (altMode) {\n // TODO move grabbing func in editor/canvas from the Sorter\n dragger = ed.runCommand('core:component-drag', {\n guidesInfo: 1,\n mode,\n target: sel,\n onStart,\n onDrag,\n onEnd,\n event,\n });\n } else {\n if (nativeDrag) {\n event.dataTransfer.setDragImage(sel.view.el, 0, 0);\n //sel.set('status', 'freezed');\n }\n\n const cmdMove = ed.Commands.get('move-comp');\n cmdMove.onStart = onStart;\n cmdMove.onDrag = onDrag;\n cmdMove.onEndMoveFromModel = onEnd;\n cmdMove.initSorterFromModels(selAll);\n }\n\n selAll.forEach(sel => sel.set('status', 'freezed-selected'));\n },\n };\n\n // Core commands\n defaultCommands['core:undo'] = e => e.UndoManager.undo();\n defaultCommands['core:redo'] = e => e.UndoManager.redo();\n commandsDef.forEach(item => {\n const oldCmd = item[2];\n const cmd = require(`./view/${item[1]}`).default;\n const cmdName = `core:${item[0]}`;\n defaultCommands[cmdName] = cmd;\n if (oldCmd) {\n defaultCommands[oldCmd] = cmd;\n // Propogate old commands (can be removed once we stop to call old commands)\n ['run', 'stop'].forEach(name => {\n em.on(`${name}:${oldCmd}`, (...args) => em.trigger(`${name}:${cmdName}`, ...args));\n });\n }\n });\n\n if (c.em) c.model = c.em.get('Canvas');\n\n this.loadDefaultCommands();\n\n return this;\n },\n\n /**\n * Add new command to the collection\n * @param\t{string} id Command's ID\n * @param\t{Object|Function} command Object representing your command,\n * By passing just a function it's intended as a stateless command\n * (just like passing an object with only `run` method).\n * @return {this}\n * @example\n * commands.add('myCommand', {\n * \trun(editor, sender) {\n * \t\talert('Hello world!');\n * \t},\n * \tstop(editor, sender) {\n * \t},\n * });\n * // As a function\n * commands.add('myCommand2', editor => { ... });\n * */\n add,\n\n /**\n * Get command by ID\n * @param\t{string}\tid Command's ID\n * @return {Object} Object representing the command\n * @example\n * var myCommand = commands.get('myCommand');\n * myCommand.run();\n * */\n get(id) {\n let el = commands[id];\n\n if (isFunction(el)) {\n el = new el(c);\n commands[id] = el;\n } else if (!el) {\n em.logWarning(`'${id}' command not found`);\n }\n\n return el;\n },\n\n /**\n * Extend the command. The command to extend should be defined as an object\n * @param\t{string}\tid Command's ID\n * @param {Object} Object with the new command functions\n * @returns {this}\n * @example\n * commands.extend('old-command', {\n * someInnerFunction() {\n * // ...\n * }\n * });\n * */\n extend(id, cmd = {}) {\n const command = this.get(id);\n if (command) {\n const cmdObj = {\n ...command.constructor.prototype,\n ...cmd,\n };\n this.add(id, cmdObj);\n // Extend also old name commands if exist\n const oldCmd = commandsDef.filter(cmd => `core:${cmd[0]}` === id && cmd[2])[0];\n oldCmd && this.add(oldCmd[2], cmdObj);\n }\n return this;\n },\n\n /**\n * Check if command exists\n * @param\t{string}\tid Command's ID\n * @return {Boolean}\n * */\n has(id) {\n return !!commands[id];\n },\n\n /**\n * Get an object containing all the commands\n * @return {Object}\n */\n getAll() {\n return commands;\n },\n\n /**\n * Execute the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.run('myCommand', { someOption: 1 });\n */\n run(id, options = {}) {\n return this.runCommand(this.get(id), options);\n },\n\n /**\n * Stop the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.stop('myCommand', { someOption: 1 });\n */\n stop(id, options = {}) {\n return this.stopCommand(this.get(id), options);\n },\n\n /**\n * Check if the command is active. You activate commands with `run`\n * and disable them with `stop`. If the command was created without `stop`\n * method it can't be registered as active\n * @param {String} id Command id\n * @return {Boolean}\n * @example\n * const cId = 'some-command';\n * commands.run(cId);\n * commands.isActive(cId);\n * // -> true\n * commands.stop(cId);\n * commands.isActive(cId);\n * // -> false\n */\n isActive(id) {\n return this.getActive().hasOwnProperty(id);\n },\n\n /**\n * Get all active commands\n * @return {Object}\n * @example\n * console.log(commands.getActive());\n * // -> { someCommand: itsLastReturn, anotherOne: ... };\n */\n getActive() {\n return active;\n },\n\n /**\n * Load default commands\n * @return {this}\n * @private\n * */\n loadDefaultCommands() {\n for (var id in defaultCommands) {\n this.add(id, defaultCommands[id]);\n }\n\n return this;\n },\n\n /**\n * Run command via its object\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n runCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (!this.isActive(id) || options.force || !c.strict) {\n result = editor && command.callRun(editor, options);\n if (id && command.stop && !command.noStop && !options.abort) {\n active[id] = result;\n }\n }\n }\n\n return result;\n },\n\n /**\n * Stop the command\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n stopCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (this.isActive(id) || options.force || !c.strict) {\n if (id) delete active[id];\n result = command.callStop(editor, options);\n }\n }\n\n return result;\n },\n\n /**\n * Create anonymous Command instance\n * @param {Object} command Command object\n * @return {Command}\n * @private\n * */\n create(command) {\n if (!command.stop) command.noStop = 1;\n const cmd = CommandAbstract.extend(command);\n return new cmd(c);\n },\n\n destroy() {\n [em, c, commands, defaultCommands, active].forEach(i => (i = {}));\n },\n };\n};\n","export default {\n run(ed) {\n ed.DomComponents.clear();\n ed.CssComposer.clear();\n }\n};\n","import { bindAll } from 'underscore';\nimport { on, off, getKeyChar } from '../../utils/mixins';\nimport Dragger from '../../utils/Dragger';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable, ev) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y'),\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n },\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n },\n};\n","import { Model } from '../../common';\n\nexport default class CommandAbstract extends Model {\n /**\n * Initialize method that can't be removed\n * @param {Object} o Options\n * @private\n * */\n initialize(o) {\n this.config = o || {};\n this.editorModel = this.em = this.config.em || {};\n this.pfx = this.config.stylePrefix;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = this.pfx + 'hover';\n this.badgeClass = this.pfx + 'badge';\n this.plhClass = this.pfx + 'placeholder';\n this.freezClass = this.ppfx + 'freezed';\n\n this.canvas = this.em.get && this.em.get('Canvas');\n this.init(this.config);\n }\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e) {}\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n }\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n }\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft,\n };\n }\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o) {}\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor, options = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n }\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor, options = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n }\n\n /**\n * Stop current command\n */\n stopCommand() {\n this.em.get('Commands').stop(this.id);\n }\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em, sender) {}\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em, sender) {}\n}\n","import { isArray } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const toSelect = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n component.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from '../../utils/Dragger';\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger,\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic,\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach(item => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig('stylePrefix');\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = `
\n
\n
`;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides.forEach(item => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides) {\n let lastEl, lastPos;\n (guides || this.guides).forEach(item => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item, rect) {\n const result = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n const guides = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 }, // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item),\n }));\n guides.forEach(item => this.guides.push(item));\n\n return guides;\n },\n\n getTranslate(transform, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform, axis, value) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const en = !end ? 1 : ''; // this will trigger the final change\n const left = `${x}${unit}`;\n const top = `${y}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, en };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds = { position, width, height };\n const style = { left, top, en };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n // Update StyleManager properties\n em.getSelected() && keys(styleUp).forEach(i => em.trigger(`update:component:style:${i}`));\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index(),\n };\n },\n\n onStart(event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position,\n });\n }\n },\n\n onDrag(...args) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach(item => this.renderGuide(item));\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter(item => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev, dragger, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n .filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\n guide: stat,\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt,\n });\n }\n });\n },\n\n toggleDrag(enable) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n },\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter(c => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","import { flatten } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n },\n};\n","export default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()];\n models.length && em.set('clipboard', models);\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport SelectComponent from './SelectComponent';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectComponent, {\n init(o) {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el\n .find('*')\n .mouseover(this.startDelete)\n .mouseout(this.stopDelete)\n .click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model) {\n this.badge.html('Remove ' + model.getName());\n }\n});\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender, opts = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.$editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.el;\n this.cssEditor = oCsslEd.el;\n const $editors = $(`
`);\n $editors.append(oHtmlEd.$el).append(oCsslEd.$el);\n this.$editors = $editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.$editors\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(this.id));\n this.htmlEditor.setContent(editor.getHtml());\n this.cssEditor.setContent(editor.getCss());\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName, theme, label) {\n const input = document.createElement('textarea');\n !this.codeMirror && (this.codeMirror = this.cm.getViewer('CodeMirror'));\n\n const el = this.codeMirror.clone().set({\n label,\n codeName,\n theme,\n input\n });\n\n const $el = new this.cm.EditorView({\n model: el,\n config: this.cm.getConfig()\n }).render().$el;\n\n el.init(input);\n\n return { el, $el };\n }\n};\n","import { isElement } from 'underscore';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n var d = document;\n if (\n d.fullscreenElement ||\n d.webkitFullscreenElement ||\n d.mozFullScreenElement\n )\n return 1;\n else return 0;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el) {\n var pfx = '';\n if (el.requestFullscreen) el.requestFullscreen();\n else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) el.msRequestFullscreen();\n else console.warn('Fullscreen not supported');\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d = document;\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx, e) {\n var d = document;\n var ev = (pfx || '') + 'fullscreenchange';\n if (!this.isEnabled()) {\n this.stop(null, this.sender);\n document.removeEventListener(ev, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target)\n ? target\n : document.querySelector(target);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport { on, off } from '../../utils/mixins';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frame = (this.em.get('currentFrame') || {}).model;\n const el = lastModel.getEl(frame);\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e, el) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e, force) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\n },\n});\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open(content) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets = am.getAll().filter(i => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(\n `input#${config.stylePrefix}uploadFile`\n );\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n }\n};\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n }\n};\n","export default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n\n if (lm.getConfig().appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n layers.appendChild(lm.render());\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n }\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cn) {\n const config = editor.getConfig();\n const panels = editor.Panels;\n const trgEvCnt = 'change:appendContent';\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n\n // Device Manager\n const dvm = editor.DeviceManager;\n if (dvm && config.showDevices) {\n const devicePanel = panels.addPanel({ id: 'devices-c' });\n const dvEl = dvm.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slm = editor.SelectorManager;\n this.slm = slm;\n const slmConfig = slm.getConfig();\n if (slmConfig.custom) {\n slm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!slmConfig.appendTo) {\n this.$cn2.append(slm.render([]));\n }\n\n // Style Manager\n const sm = editor.StyleManager;\n this.sm = sm;\n const smConfig = sm.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(`
${editor.t('styleManager.empty')}
`);\n this.$cn.append(this.$header);\n\n if (smConfig.custom) {\n sm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!smConfig.appendTo) {\n this.$cn2.append(sm.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n this.panel = panels.getPanel(pnCnt);\n if (!this.panel) this.panel = panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n this.panel.set('appendContent', this.$cn).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n this.em = editor.getModel();\n this.listenTo(this.em, sm.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n this.$cn2?.show();\n this.$header?.hide();\n } else {\n this.$cn2?.hide();\n this.$header?.show();\n }\n },\n\n stop() {\n this.$cn2?.hide();\n this.$header?.hide();\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n this.$header = $('
').append(\n `
${em.t(\n 'traitManager.empty'\n )}
`\n );\n this.$cn.append(this.$header);\n this.$cn2.append(\n `
${em.t('traitManager.label')}
`\n );\n this.$cn2.append(tm.render());\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container'))\n panelC = panels.addPanel({ id: 'views-container' });\n else panelC = panels.getPanel('views-container');\n\n panelC\n .set('appendContent', this.$cn.get(0))\n .trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n }\n};\n","import { isArray, contains } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp = em.get('clipboard');\n const selected = ed.getSelected();\n\n if (clp && selected) {\n ed.getSelectedAll().forEach(comp => {\n if (!comp) return;\n\n const coll = comp.collection;\n if (!coll) return;\n\n const at = coll.indexOf(comp) + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n const copyable = clp.filter(cop => cop.get('copyable'));\n let added;\n\n if (contains(clp, comp) && comp.get('copyable')) {\n added = coll.add(comp.clone(), addOpts);\n } else {\n added = coll.add(\n copyable.map(cop => cop.clone()),\n addOpts\n );\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n selected.emitUpdate();\n }\n },\n};\n","import { each } from 'underscore';\n\nconst cmdVis = 'sw-visibility';\n\nexport default {\n getPanels(editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts) {\n opts.abort = 1;\n },\n\n tglEffects(on) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.get('Canvas');\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => (item.style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdVis);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdVis);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl();\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach(panel => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdVis);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach(panel => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n }\n};\n","export default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos,\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = editor.Utils.Resizer.init(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick'\n }\n );\n },\n\n attributes() {\n return this.model.get('attributes');\n },\n\n initialize(opts = {}) {\n const { config = {} } = opts;\n this.em = config.em;\n this.editor = config.editor;\n },\n\n handleClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/artf/grapesjs/issues/2372\n * https://github.com/artf/grapesjs/issues/2207\n */\n\n const { editor, em } = this;\n const { left, top } = editor.Canvas.getFrameEl().getBoundingClientRect();\n\n const calibrated = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top\n };\n\n em.trigger('toolbar:run:before');\n this.execCommand(calibrated);\n },\n\n execCommand(event) {\n const opts = { event };\n const command = this.model.get('command');\n const editor = this.editor;\n\n if (typeof command === 'function') {\n command(editor, null, opts);\n }\n\n if (typeof command === 'string') {\n editor.runCommand(command, opts);\n }\n },\n\n render() {\n const { editor, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = editor.getConfig('stylePrefix');\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n});\n","import DomainViews from 'domain_abstract/view/DomainViews';\nimport ToolbarButtonView from './ToolbarButtonView';\n\nexport default class ToolbarView extends DomainViews {\n constructor(opts = {}, config) {\n super(opts, config);\n this.config = { editor: opts.editor || '', em: opts.em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n}\n\nToolbarView.prototype.itemView = ToolbarButtonView;\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n command: '',\n attributes: {}\n }\n});\n","import Backbone from 'backbone';\nimport ToolbarButton from './ToolbarButton';\n\nexport default Backbone.Collection.extend({ model: ToolbarButton });\n","import Backbone from 'backbone';\nimport { bindAll, isElement, debounce } from 'underscore';\nimport { on, off, getUnitFromValue, isTaggableNode, getViewEl, hasWin } from '../../utils/mixins';\nimport { isVisible, isDoc } from '../../utils/dom';\nimport ToolbarView from '../../dom_components/view/ToolbarView';\nimport Toolbar from '../../dom_components/model/Toolbar';\n\nconst $ = Backbone.$;\nlet showOffsets;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init(o) {\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = 1;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable) {\n const { em } = this;\n const listenToEl = em.getConfig('listenToEl');\n const { parentNode } = em.getContainer();\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode);\n const trigger = (win, body) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click touchend', this.onClick);\n methods[method](win, 'scroll', this.onFrameScroll, true);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.get('Canvas')\n .getFrames()\n .forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view.getBody());\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(e) {\n e.stopPropagation();\n const { em } = this;\n const trg = e.target;\n const view = getViewEl(trg);\n const frameView = view && view._getFrame();\n const $el = $(trg);\n let model = $el.data('model');\n\n // Get first valid model\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n this.currentDoc = trg.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.set('currentFrame', frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em, component) {\n let result = {};\n\n if (component) {\n component.views.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n this.updateToolsLocal(result);\n\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect: debounce(function () {\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.get('currentFrame') || {};\n const view = component && component.getView(currentFrame.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n this.elSelected = result;\n this.updateToolsGlobal();\n // This will hide some elements from the select component\n this.updateLocalPos(result);\n this.initResize(component);\n }),\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered(0);\n },\n\n toggleToolsEl(on, view, opts = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el, pos, opts = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el, pos) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset(el, pos) {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n const $el = $(ev.target);\n let model = $el.data('model');\n\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el, pos, opts = {}) {\n const { canvas } = this;\n const model = $(el).data('model');\n if (!model || !model.get('badgable')) return;\n const badge = this.getBadge(opts);\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `
${icon}
` : ''}\n
${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n const bStyle = badge.style;\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem) {\n const { em, canvas } = this;\n const editor = em ? em.get('Editor') : '';\n const config = em ? em.get('Config') : '';\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model && model.get('resizable');\n let options = {};\n let modelToStyle;\n\n var toggleBodyClass = (method, e, opts) => {\n const docs = opts.docs;\n docs &&\n docs.forEach(doc => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n if (editor && resizable) {\n const el = isElement(elem) ? elem : model.getEl();\n options = {\n // Here the resizer is updated with the current element height and width\n onStart(e, opts = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.get('StyleManager').getModelToStyle(model);\n canvas.toggleFramesEvents();\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = 0;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e, opts) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(1);\n showOffsets = 1;\n },\n\n updateTarget(el, rect, options = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style = {};\n const en = !store ? 1 : ''; // this will trigger the final change\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });\n const updateEvent = `update:component:style`;\n const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`;\n em && em.trigger(eventToListen, null, null, { noEmit: 1 });\n },\n };\n\n if (typeof resizable == 'object') {\n options = { ...options, ...resizable, parent: options };\n }\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod) {\n const { em } = this.config;\n const model = mod == em ? em.getSelected() : mod;\n const toolbarEl = this.canvas.getToolbarEl();\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.get('Config').showToolbar;\n\n if (model && showToolbar && toolbar && toolbar.length) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n const toolbarView = new ToolbarView({\n collection: this.toolbar,\n editor: this.editor,\n em,\n });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = 0;\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl();\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data) {\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n this.updateToolsGlobal({ force: 1 });\n }),\n\n _trgToolUp(type, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl(), { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n this.updateGlobalPos();\n }),\n\n onContainerChange: debounce(function () {\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el) {\n return this.canvas.getCanvasView().getElementPos(el);\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected(null);\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg, doc, opts = {}) {\n this.isPointed = false;\n var utils = this.editorModel.get('Utils');\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.editorModel,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal()\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex =\n this.posMethod == 'after' && this.cDim.length !== 0\n ? this.posIndex + 1\n : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl =\n this.cDim.length !== 0 &&\n this.posMethod == 'after' &&\n this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index, method, dims) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (\n len !== 0 &&\n ((!isLast && !dims[i][4]) ||\n (dims[i - 1] && !dims[i - 1][4]) ||\n (isLast && !dims[i - 1][4]))\n )\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n }\n};\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport { isTextNode } from '../../utils/mixins';\nconst $ = Backbone.$;\n\nexport default {\n getOffsetMethod(state) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n var opt = opts || {};\n var state = opt.state || '';\n var config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el || '';\n\n if (!config.showOffsets || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\n editor.stopCommand(this.id, opts);\n return;\n }\n\n var canvas = editor.Canvas;\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(`
`).get(0);\n var paddingV = $(`
`).get(0);\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n var canvas = editor.Canvas;\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = 0;\n },\n};\n","import { bindAll } from 'underscore';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed);\n },\n\n stop(ed) {\n this.toggleVis(ed, 0);\n },\n\n toggleVis(ed, active = 1) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n cv.getFrames().forEach(frame => this._upFrame(frame, active));\n cv.getModel()[mth]('change:frames', this._onFramesChange);\n }\n },\n\n _onFramesChange(m, frames) {\n frames.forEach(frame => this._upFrame(frame, 1));\n },\n\n _upFrame(frame, active) {\n const method = active ? 'add' : 'remove';\n frame.view.getBody().classList[method](`${this.ppfx}dashed`);\n }\n};\n","import { isString, isElement } from 'underscore';\nimport { createId, deepMerge, isDef } from 'utils/mixins';\n\nexport default {\n getConfig(name) {\n return this.__getConfig(name);\n },\n\n getProjectData(data) {\n const obj = {};\n const key = this.storageKey;\n if (key) {\n obj[key] = data || this.getAll();\n }\n return obj;\n },\n\n loadProjectData(data = {}, { all, onResult, reset } = {}) {\n const key = this.storageKey;\n const opts = { action: 'load' };\n const coll = all || this.getAll();\n let result = data[key];\n\n if (typeof result == 'string') {\n try {\n result = JSON.parse(result);\n } catch (err) {\n this.__logWarn('Data parsing failed', { input: result });\n }\n }\n\n reset && result && coll.reset(null, opts);\n\n if (onResult) {\n result && onResult(result, opts);\n } else if (result && isDef(result.length)) {\n coll.reset(result, opts);\n }\n\n return result;\n },\n\n clear(opts = {}) {\n const { all } = this;\n all && all.reset(null, opts);\n return this;\n },\n\n __getConfig(name) {\n const res = this.config || {};\n return name ? res[name] : res;\n },\n\n getAll(opts = {}) {\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get(i.idAttribute)] = i;\n return acc;\n }, {});\n },\n\n __initConfig(def = {}, conf = {}) {\n this.config = deepMerge(def, conf);\n this.em = this.config.em;\n this.cls = [];\n },\n\n __initListen(opts = {}) {\n const { all, em, events } = this;\n all &&\n em &&\n all\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\n .on('all', this.__catchAllEvent, this);\n // Register collections\n this.cls = [all].concat(opts.collections || []);\n // Propagate events\n (opts.propagate || []).forEach(({ entity, event }) => {\n entity.on('all', (ev, model, coll, opts) => {\n const options = opts || coll;\n const opt = { event: ev, ...options };\n [em, all].map(md => md.trigger(event, model, opt));\n });\n });\n },\n\n __remove(model, opts = {}) {\n const { em } = this;\n const md = isString(model) ? this.get(model) : model;\n const rm = () => {\n md && this.all.remove(md, opts);\n return md;\n };\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\n return !opts.abort && rm();\n },\n\n __catchAllEvent(event, model, coll, opts) {\n const { em, events } = this;\n const options = opts || coll;\n em && events.all && em.trigger(events.all, { event, model, options });\n this.__onAllEvent();\n },\n\n __appendTo() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render());\n }\n },\n\n __onAllEvent() {},\n\n __logWarn(str, opts) {\n this.em.logWarning(`[${this.name}]: ${str}`, opts);\n },\n\n _createId(len = 16) {\n const all = this.getAll();\n const ln = all.length + len;\n const allMap = this.getAllMap();\n let id;\n\n do {\n id = createId(ln);\n } while (allMap[id]);\n\n return id;\n },\n\n __listenAdd(model, event) {\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenRemove(model, event) {\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenUpdate(model, event) {\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\n },\n\n __destroy() {\n this.cls.forEach(coll => {\n coll.stopListening();\n coll.reset();\n });\n this.em = 0;\n this.config = 0;\n this.view?.remove();\n this.view = 0;\n },\n};\n","export default {\n // Style prefix\n stylePrefix: 'css-',\n\n // Default CSS style\n rules: [],\n\n /**\n * Adjust style object before creation/update.\n * @example\n * onBeforeStyle(style) {\n * const padValue = style.padding;\n * if (padValue === '10px') {\n * delete style.padding;\n * style['padding-top'] = padValue;\n * // ...\n * }\n * return style;\n * }\n */\n onBeforeStyle: null\n};\n","import { isEmpty, forEach, isString, isArray } from 'underscore';\nimport { Model } from '../../common';\nimport Styleable from '../../domain_abstract/model/Styleable';\nimport Selectors from '../../selector_manager/model/Selectors';\nimport { getMediaLength } from '../../code_manager/model/CssGenerator';\nimport { isEmptyObj, hasWin } from '../../utils/mixins';\n\nconst { CSS } = hasWin() ? window : {};\n\n/**\n * @typedef CssRule\n * @property {Array} selectors Array of selectors\n * @property {Object} style Object containing style definitions\n * @property {String} [selectorsAdd=''] Additional string css selectors\n * @property {String} [atRuleType=''] Type of at-rule, eg. `media`, 'font-face'\n * @property {String} [mediaText=''] At-rule value, eg. `(max-width: 1000px)`\n * @property {Boolean} [singleAtRule=false] This property is used only on at-rules, like 'page' or 'font-face', where the block containes only style declarations\n * @property {String} [state=''] State of the rule, eg: `hover`, `focused`\n * @property {Boolean|Array} [important=false] If true, sets `!important` on all properties. You can also pass an array to specify properties on which use important\n * @property {Boolean} [stylable=true] Indicates if the rule is stylable from the editor\n *\n * [Device]: device.html\n * [State]: state.html\n * [Component]: component.html\n */\nexport default class CssRule extends Model.extend(Styleable) {\n defaults() {\n return {\n selectors: [],\n selectorsAdd: '',\n style: {},\n mediaText: '',\n state: '',\n stylable: true,\n atRuleType: '',\n singleAtRule: false,\n important: false,\n group: '',\n // If true, won't be stored in JSON or showed in CSS\n shallow: false,\n _undo: true,\n };\n }\n\n initialize(c, opt = {}) {\n this.config = c || {};\n this.opt = opt;\n this.em = opt.em;\n this.ensureSelectors();\n this.on('change', this.__onChange);\n }\n\n __onChange(m, opts) {\n const { em } = this;\n const changed = this.changedAttributes();\n !isEmptyObj(changed) && em && em.changesUp(opts);\n }\n\n clone() {\n const opts = { ...this.opt };\n const attr = { ...this.attributes };\n attr.selectors = this.get('selectors').map(s => s.clone());\n return new this.constructor(attr, opts);\n }\n\n ensureSelectors(m, c, opts) {\n const { em } = this;\n const sm = em && em.get('SelectorManager');\n const toListen = [this, 'change:selectors', this.ensureSelectors];\n let sels = this.getSelectors();\n this.stopListening(...toListen);\n\n if (sels.models) {\n sels = [...sels.models];\n }\n\n sels = isString(sels) ? [sels] : sels;\n\n if (Array.isArray(sels)) {\n const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i));\n sels = new Selectors(res);\n }\n\n this.set('selectors', sels, opts);\n this.listenTo(...toListen);\n }\n\n /**\n * Returns the at-rule statement when exists, eg. `@media (...)`, `@keyframes`\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getAtRule(); // \"@media (min-width: 500px)\"\n */\n getAtRule() {\n const type = this.get('atRuleType');\n const condition = this.get('mediaText');\n // Avoid breaks with the last condition\n const typeStr = type ? `@${type}` : condition ? '@media' : '';\n\n return typeStr + (condition && typeStr ? ` ${condition}` : '');\n }\n\n /**\n * Return selectors of the rule as a string\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.skipState] Skip state from the result\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1:hover', { color: 'red' });\n * cssRule.selectorsToString(); // \".class1:hover\"\n * cssRule.selectorsToString({ skipState: true }); // \".class1\"\n */\n selectorsToString(opts = {}) {\n const result = [];\n const state = this.get('state');\n const addSelector = this.get('selectorsAdd');\n const selOpts = {\n escape: str => (CSS && CSS.escape ? CSS.escape(str) : str),\n };\n const selectors = this.get('selectors').getFullString(0, selOpts);\n const stateStr = state && !opts.skipState ? `:${state}` : '';\n selectors && result.push(`${selectors}${stateStr}`);\n addSelector && !opts.skipAdd && result.push(addSelector);\n return result.join(', ');\n }\n\n /**\n * Get declaration block (without the at-rule statement)\n * @param {Object} [opts={}] Options (same as in `selectorsToString`)\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getDeclaration() // \".class1{color:red;}\"\n */\n getDeclaration(opts = {}) {\n let result = '';\n const selectors = this.selectorsToString(opts);\n const style = this.styleToString(opts);\n const singleAtRule = this.get('singleAtRule');\n\n if ((selectors || singleAtRule) && (style || opts.allowEmpty)) {\n result = singleAtRule ? style : `${selectors}{${style}}`;\n }\n\n return result;\n }\n\n /**\n * Get the Device the rule is related to.\n * @returns {[Device]|null}\n * @example\n * const device = rule.getDevice();\n * console.log(device?.getName());\n */\n getDevice() {\n const { em } = this;\n const { atRuleType, mediaText } = this.attributes;\n const devices = em?.get('DeviceManager').getDevices() || [];\n const deviceDefault = devices.filter(d => d.getWidthMedia() === '')[0];\n if (atRuleType !== 'media' || !mediaText) {\n return deviceDefault || null;\n }\n return devices.filter(d => d.getWidthMedia() === getMediaLength(mediaText))[0] || null;\n }\n\n /**\n * Get the State the rule is related to.\n * @returns {[State]|null}\n * @example\n * const state = rule.getState();\n * console.log(state?.getLabel());\n */\n getState() {\n const { em } = this;\n const stateValue = this.get('state');\n const states = em.get('SelectorManager').getStates() || [];\n return states.filter(s => s.getName() === stateValue)[0] || null;\n }\n\n /**\n * Returns the related Component (valid only for component-specific rules).\n * @returns {[Component]|null}\n * @example\n * const cmp = rule.getComponent();\n * console.log(cmp?.toHTML());\n */\n getComponent() {\n const sel = this.getSelectors();\n const sngl = sel.length == 1 && sel.at(0);\n const cmpId = sngl && sngl.isId() && sngl.get('name');\n return (cmpId && this.em?.get('DomComponents').getById(cmpId)) || null;\n }\n\n /**\n * Return the CSS string of the rule\n * @param {Object} [opts={}] Options (same as in `getDeclaration`)\n * @return {String} CSS string\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.toCSS() // \"@media (min-width: 500px){.class1{color:red;}}\"\n */\n toCSS(opts = {}) {\n let result = '';\n const atRule = this.getAtRule();\n const block = this.getDeclaration(opts);\n if (block || opts.allowEmpty) {\n result = block;\n }\n\n if (atRule && result) {\n result = `${atRule}{${result}}`;\n }\n\n return result;\n }\n\n toJSON(...args) {\n const obj = Model.prototype.toJSON.apply(this, args);\n\n if (this.em.getConfig('avoidDefaults')) {\n const defaults = this.defaults();\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) {\n delete obj[key];\n }\n });\n\n // Delete the property used for partial updates\n delete obj.style.__p;\n\n if (isEmpty(obj.selectors)) delete obj.selectors;\n if (isEmpty(obj.style)) delete obj.style;\n }\n\n return obj;\n }\n\n /**\n * Compare the actual model with parameters\n * @param {Object} selectors Collection of selectors\n * @param {String} state Css rule state\n * @param {String} width For which device this style is oriented\n * @param {Object} ruleProps Other rule props\n * @returns {Boolean}\n * @private\n */\n compare(selectors, state, width, ruleProps = {}) {\n const st = state || '';\n const wd = width || '';\n const selAdd = ruleProps.selectorsAdd || '';\n let atRule = ruleProps.atRuleType || '';\n const sel = !isArray(selectors) && !selectors.models ? [selectors] : selectors.models || selectors;\n\n // Fix atRuleType in case is not specified with width\n if (wd && !atRule) atRule = 'media';\n\n const a1 = sel.map(model => model.getFullName());\n const a2 = this.get('selectors').map(model => model.getFullName());\n\n // Check selectors\n const a1S = a1.slice().sort();\n const a2S = a2.slice().sort();\n if (a1.length !== a2.length || !a1S.every((v, i) => v === a2S[i])) {\n return false;\n }\n\n // Check other properties\n if (\n this.get('state') !== st ||\n this.get('mediaText') !== wd ||\n this.get('selectorsAdd') !== selAdd ||\n this.get('atRuleType') !== atRule\n ) {\n return false;\n }\n\n return true;\n }\n}\n","import { Collection } from '../../common';\nimport CssRule from './CssRule';\n\nexport default class CssRules extends Collection {\n initialize(models, opt) {\n // Inject editor\n if (opt && opt.em) this.editor = opt.em;\n\n // This will put the listener post CssComposer.postLoad\n setTimeout(() => {\n this.on('remove', this.onRemove);\n this.on('add', this.onAdd);\n });\n }\n\n toJSON(opts) {\n const result = Collection.prototype.toJSON.call(this, opts);\n return result.filter(rule => rule.style && !rule.shallow);\n }\n\n onAdd(model, c, o) {\n model.ensureSelectors(model, c, o); // required for undo\n }\n\n onRemove(removed) {\n const em = this.editor;\n em.stopListening(removed);\n em.get('UndoManager').remove(removed);\n }\n\n add(models, opt = {}) {\n if (typeof models === 'string') {\n models = this.editor.get('Parser').parseCss(models);\n }\n opt.em = this.editor;\n return Collection.prototype.add.apply(this, [models, opt]);\n }\n}\n\nCssRules.prototype.model = CssRule;\n","/**\n * This module manages CSS rules in the canvas.\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/css_composer/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * cssComposer: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const css = editor.Css;\n * ```\n *\n * * [addRules](#addrules)\n * * [setRule](#setrule)\n * * [getRule](#getrule)\n * * [getRules](#getrules)\n * * [remove](#remove)\n * * [clear](#clear)\n *\n * [CssRule]: css_rule.html\n *\n * @module CssComposer\n */\n\nimport { isArray, isString, isUndefined } from 'underscore';\nimport { isObject } from '../utils/mixins';\nimport Module from '../abstract/moduleLegacy';\nimport Selectors from '../selector_manager/model/Selectors';\nimport Selector from '../selector_manager/model/Selector';\nimport defaults from './config/config';\nimport CssRule from './model/CssRule';\nimport CssRules from './model/CssRules';\nimport CssRulesView from './view/CssRulesView';\n\nexport default () => {\n let em;\n var c = {};\n var rules, rulesView;\n\n return {\n ...Module,\n\n Selectors,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CssComposer',\n\n storageKey: 'styles',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initializes module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n var elStyle = (c.em && c.em.config.style) || '';\n c.rules = elStyle || c.rules;\n\n em = c.em;\n rules = new CssRules([], c);\n return this;\n },\n\n /**\n * On load callback\n * @private\n */\n onLoad() {\n rules.add(c.rules, { silent: 1 });\n },\n\n /**\n * Do stuff after load\n * @param {Editor} em\n * @private\n */\n postLoad() {\n const um = em && em.get('UndoManager');\n um && um.add(this.getAll());\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data);\n },\n\n /**\n * Add new rule to the collection, if not yet exists with the same selectors\n * @param {Array} selectors Array of selectors\n * @param {String} state Css rule state\n * @param {String} width For which device this style is oriented\n * @param {Object} props Other props for the rule\n * @param {Object} opts Options for the add of new rule\n * @return {Model}\n * @private\n * @example\n * var sm = editor.SelectorManager;\n * var sel1 = sm.add('myClass1');\n * var sel2 = sm.add('myClass2');\n * var rule = cssComposer.add([sel1, sel2], 'hover');\n * rule.set('style', {\n * width: '100px',\n * color: '#fff',\n * });\n * */\n add(selectors, state, width, opts = {}, addOpts = {}) {\n var s = state || '';\n var w = width || '';\n var opt = { ...opts };\n var rule = this.get(selectors, s, w, opt);\n\n // do not create rules that were found before\n // unless this is a single at-rule, for which multiple declarations\n // make sense (e.g. multiple `@font-type`s)\n if (rule && rule.config && !rule.config.singleAtRule) {\n return rule;\n } else {\n opt.state = s;\n opt.mediaText = w;\n opt.selectors = [];\n w && (opt.atRuleType = 'media');\n rule = new CssRule(opt, c);\n rule.get('selectors').add(selectors, addOpts);\n rules.add(rule, addOpts);\n return rule;\n }\n },\n\n /**\n * Get the rule\n * @param {String|Array} selectors Array of selectors or selector string, eg `.myClass1.myClass2`\n * @param {String} state Css rule state, eg. 'hover'\n * @param {String} width Media rule value, eg. '(max-width: 992px)'\n * @param {Object} ruleProps Other rule props\n * @return {Model|null}\n * @private\n * @example\n * const sm = editor.SelectorManager;\n * const sel1 = sm.add('myClass1');\n * const sel2 = sm.add('myClass2');\n * const rule = cssComposer.get([sel1, sel2], 'hover', '(max-width: 992px)');\n * // Update the style\n * rule.set('style', {\n * width: '300px',\n * color: '#000',\n * });\n * */\n get(selectors, state, width, ruleProps) {\n let slc = selectors;\n if (isString(selectors)) {\n const sm = em.get('SelectorManager');\n const singleSel = selectors.split(',')[0].trim();\n const node = em.get('Parser').parserCss.checkNode({ selectors: singleSel })[0];\n slc = sm.get(node.selectors);\n }\n return rules.find(rule => rule.compare(slc, state, width, ruleProps)) || null;\n },\n\n getAll() {\n return rules;\n },\n\n /**\n * Add a raw collection of rule objects\n * This method overrides styles, in case, of already defined rule\n * @param {String|Array} data CSS string or an array of rule objects, eg. [{selectors: ['class1'], style: {....}}, ..]\n * @param {Object} opts Options\n * @param {Object} props Additional properties to add on rules\n * @return {Array}\n * @private\n */\n addCollection(data, opts = {}, props = {}) {\n const result = [];\n\n if (isString(data)) {\n data = em.get('Parser').parseCss(data);\n }\n\n const d = data instanceof Array ? data : [data];\n\n for (var i = 0, l = d.length; i < l; i++) {\n var rule = d[i] || {};\n if (!rule.selectors) continue;\n var sm = c.em && c.em.get('SelectorManager');\n if (!sm) console.warn('Selector Manager not found');\n var sl = rule.selectors;\n var sels = sl instanceof Array ? sl : [sl];\n var newSels = [];\n\n for (var j = 0, le = sels.length; j < le; j++) {\n var selec = sm.add(sels[j]);\n newSels.push(selec);\n }\n\n var modelExists = this.get(newSels, rule.state, rule.mediaText, rule);\n var model = this.add(newSels, rule.state, rule.mediaText, rule, opts);\n var updateStyle = !modelExists || !opts.avoidUpdateStyle;\n const style = rule.style || {};\n\n isObject(props) && model.set(props, opts);\n\n if (updateStyle) {\n let styleUpdate = opts.extend ? { ...model.get('style'), ...style } : style;\n model.set('style', styleUpdate, opts);\n }\n\n result.push(model);\n }\n\n return result;\n },\n\n /**\n * Add CssRules via CSS string.\n * @param {String} css CSS string of rules to add.\n * @returns {Array<[CssRule]>} Array of rules\n * @example\n * const addedRules = css.addRules('.my-cls{ color: red } @media (max-width: 992px) { .my-cls{ color: darkred } }');\n * // Check rules\n * console.log(addedRules.map(rule => rule.toCSS()));\n */\n addRules(css) {\n return this.addCollection(css);\n },\n\n /**\n * Add/update the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass`\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. `(min-width: 500px)`\n * @returns {[CssRule]} The new/updated CssRule\n * @example\n * // Simple class-based rule\n * const rule = css.setRule('.class1.class2', { color: 'red' });\n * console.log(rule.toCSS()) // output: .class1.class2 { color: red }\n * // With state and other mixed selector\n * const rule = css.setRule('.class1.class2:hover, div#myid', { color: 'red' });\n * // output: .class1.class2:hover, div#myid { color: red }\n * // With media\n * const rule = css.setRule('.class1:hover', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n * // output: @media (min-width: 500px) { .class1:hover { color: red } }\n */\n setRule(selectors, style, opts = {}) {\n const { atRuleType, atRuleParams } = opts;\n const node = em.get('Parser').parserCss.checkNode({\n selectors,\n style,\n })[0];\n const { state, selectorsAdd } = node;\n const sm = em.get('SelectorManager');\n const selector = sm.add(node.selectors);\n const rule = this.add(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n });\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass:hover`\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'\n * @returns {[CssRule]}\n * @example\n * const rule = css.getRule('.myclass1:hover');\n * const rule2 = css.getRule('.myclass1:hover, div#myid');\n * const rule3 = css.getRule('.myclass1', {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n */\n getRule(selectors, opts = {}) {\n const sm = em.get('SelectorManager');\n const node = em.get('Parser').parserCss.checkNode({ selectors })[0];\n const selector = sm.get(node.selectors);\n const { state, selectorsAdd } = node;\n const { atRuleType, atRuleParams } = opts;\n return (\n selector &&\n this.get(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n })\n );\n },\n\n /**\n * Get all rules or filtered by a matching selector.\n * @param {String} [selector=''] Selector, eg. `.myclass`\n * @returns {Array<[CssRule]>}\n * @example\n * // Take all the component specific rules\n * const id = someComponent.getId();\n * const rules = css.getRules(`#${id}`);\n * console.log(rules.map(rule => rule.toCSS()))\n * // All rules in the project\n * console.log(css.getRules())\n */\n getRules(selector) {\n const rules = this.getAll();\n if (!selector) return [...rules.models];\n const sels = isString(selector) ? selector.split(',').map(s => s.trim()) : selector;\n const result = rules.filter(r => sels.indexOf(r.getSelectors().getFullString()) >= 0);\n return result;\n },\n\n /**\n * Add/update the CSS rule with id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setIdRule('myid', { color: 'red' });\n * const ruleHover = css.setIdRule('myid', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // #myid { color: red }\n * // #myid:hover { color: blue }\n */\n setIdRule(name, style = {}, opts = {}) {\n const { addOpts = {}, mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_ID }, addOpts);\n const rule = this.add(selector, state, media, {}, addOpts);\n rule.setStyle(style, { ...opts, ...addOpts });\n return rule;\n },\n\n /**\n * Get the CSS rule by id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getIdRule('myid');\n * const ruleHover = css.setIdRule('myid', { state: 'hover' });\n */\n getIdRule(name, opts = {}) {\n const { mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_ID);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Add/update the CSS rule with class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setClassRule('myclass', { color: 'red' });\n * const ruleHover = css.setClassRule('myclass', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // .myclass { color: red }\n * // .myclass:hover { color: blue }\n */\n setClassRule(name, style = {}, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_CLASS });\n const rule = this.add(selector, state, media);\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CSS rule by class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getClassRule('myclass');\n * const ruleHover = css.getClassRule('myclass', { state: 'hover' });\n */\n getClassRule(name, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_CLASS);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Remove rule, by CssRule or matching selector (eg. the selector will match also at-rules like `@media`)\n * @param {String|[CssRule]|Array<[CssRule]>} rule CssRule or matching selector.\n * @return {Array<[CssRule]>} Removed rules\n * @example\n * // Remove by CssRule\n * const toRemove = css.getRules('.my-cls');\n * css.remove(toRemove);\n * // Remove by selector\n * css.remove('.my-cls-2');\n */\n remove(rule, opts) {\n const toRemove = isString(rule) ? this.getRules(rule) : rule;\n const result = this.getAll().remove(toRemove, opts);\n return isArray(result) ? result : [result];\n },\n\n /**\n * Remove all rules\n * @return {this}\n */\n clear(opts = {}) {\n this.getAll().reset(null, opts);\n return this;\n },\n\n getComponentRules(cmp, opts = {}) {\n let { state, mediaText, current } = opts;\n if (current) {\n state = em.get('state') || '';\n mediaText = em.getCurrentMedia();\n }\n const id = cmp.getId();\n const rules = this.getAll().filter(r => {\n if (!isUndefined(state) && r.get('state') !== state) return;\n if (!isUndefined(mediaText) && r.get('mediaText') !== mediaText) return;\n return r.getSelectorsString() === `#${id}`;\n });\n return rules;\n },\n\n /**\n * Render the block of CSS rules\n * @return {HTMLElement}\n * @private\n */\n render() {\n rulesView && rulesView.remove();\n rulesView = new CssRulesView({\n collection: rules,\n config: c,\n });\n return rulesView.render().el;\n },\n\n destroy() {\n rules.reset();\n rules.stopListening();\n rulesView && rulesView.remove();\n [em, rules, rulesView].forEach(i => (i = null));\n c = {};\n },\n };\n};\n","import { View } from '../../common';\n\nexport default class CssRuleView extends View {\n tagName() {\n return 'style';\n }\n\n initialize(o = {}) {\n this.config = o.config || {};\n const { model } = this;\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'destroy remove', this.remove);\n this.listenTo(model.get('selectors'), 'change', this.render);\n }\n\n render() {\n const { model, el } = this;\n const important = model.get('important');\n el.innerHTML = model.toCSS({ important });\n return this;\n }\n}\n","import CssRuleView from './CssRuleView';\n\nexport default class CssGroupRuleView extends CssRuleView {\n _createElement() {\n return document.createTextNode('');\n }\n\n render() {\n const model = this.model;\n const important = model.get('important');\n this.el.textContent = model.getDeclaration({ important });\n return this;\n }\n}\n","import { View } from '../../common';\nimport { createEl } from '../../utils/dom';\nimport CssRuleView from './CssRuleView';\nimport CssGroupRuleView from './CssGroupRuleView';\n\nconst getBlockId = (pfx, order) => `${pfx}${order ? `-${parseFloat(order)}` : ''}`;\n\nexport default class CssRulesView extends View {\n initialize(o) {\n const config = o.config || {};\n this.atRules = {};\n this.config = config;\n this.em = config.em;\n this.pfx = config.stylePrefix || '';\n this.className = this.pfx + 'rules';\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n }\n\n /**\n * Add to collection\n * @param {Object} model\n * @private\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param {Object} model\n * @param {Object} fragmentEl\n * @return {Object}\n * @private\n * */\n addToCollection(model, fragmentEl) {\n // If the render is not yet started\n if (!this.renderStarted) {\n return;\n }\n\n const fragment = fragmentEl || null;\n const { config } = this;\n const opts = { model, config };\n let rendered, view;\n\n // I have to render keyframes of the same name together\n // Unfortunately at the moment I didn't find the way of appending them\n // if not staticly, via appendData\n if (model.get('atRuleType') === 'keyframes') {\n const atRule = model.getAtRule();\n let atRuleEl = this.atRules[atRule];\n\n if (!atRuleEl) {\n const styleEl = document.createElement('style');\n atRuleEl = document.createTextNode('');\n styleEl.appendChild(document.createTextNode(`${atRule}{`));\n styleEl.appendChild(atRuleEl);\n styleEl.appendChild(document.createTextNode(`}`));\n this.atRules[atRule] = atRuleEl;\n rendered = styleEl;\n }\n\n view = new CssGroupRuleView(opts);\n atRuleEl.appendData(view.render().el.textContent);\n } else {\n view = new CssRuleView(opts);\n rendered = view.render().el;\n }\n\n const clsName = this.className;\n const mediaText = model.get('mediaText');\n const defaultBlockId = getBlockId(clsName);\n let blockId = defaultBlockId;\n\n // If the rule contains a media query it might have a different container\n // for it (eg. rules created with Device Manager)\n if (mediaText) {\n blockId = getBlockId(clsName, this.getMediaWidth(mediaText));\n }\n\n if (rendered) {\n const container = fragment || this.el;\n let contRules;\n\n // Try to find a specific container for the rule (if it\n // containes a media query), otherwise get the default one\n try {\n contRules = container.querySelector(`#${blockId}`);\n } catch (e) {}\n\n if (!contRules) {\n contRules = container.querySelector(`#${defaultBlockId}`);\n }\n\n contRules.appendChild(rendered);\n }\n\n return rendered;\n }\n\n getMediaWidth(mediaText) {\n return mediaText && mediaText.replace(`(${this.em.getConfig('mediaCondition')}: `, '').replace(')', '');\n }\n\n render() {\n this.renderStarted = 1;\n this.atRules = {};\n const { em, $el, className, collection } = this;\n const frag = document.createDocumentFragment();\n $el.empty();\n\n // Create devices related DOM structure, ensure also to have a default container\n const prs = em.get('DeviceManager').getAll().pluck('priority');\n prs.every(pr => pr) && prs.unshift(0);\n prs.forEach(pr => frag.appendChild(createEl('div', { id: getBlockId(className, pr) })));\n\n collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.attr('class', className);\n return this;\n }\n}\n","export default {\n // The device `id` to select on start, if not indicated, the first available from `devices` will be used.\n default: null,\n\n // Default devices\n devices: [\n {\n id: 'desktop',\n name: 'Desktop',\n width: '',\n },\n {\n id: 'tablet',\n name: 'Tablet',\n width: '770px',\n widthMedia: '992px',\n },\n {\n id: 'mobileLandscape',\n name: 'Mobile landscape',\n width: '568px',\n widthMedia: '768px',\n },\n {\n id: 'mobilePortrait',\n name: 'Mobile portrait',\n width: '320px',\n widthMedia: '480px',\n },\n ],\n};\n","import { Model } from '../../common';\n\n/**\n * @typedef Device\n * @property {String} [name=''] Device type, eg. `Mobile`\n * @property {String} [width] Width to set for the editor iframe, eg. '900px'\n * @property {String} [height=''] Height to set for the editor iframe, eg. '600px'\n * @property {String} [widthMedia=''] The width which will be used in media queries, If empty the width will be used\n * @property {Number} [priority=null] Setup the order of media queries\n */\nexport default class Device extends Model {\n defaults() {\n return {\n name: '',\n width: null,\n height: '',\n widthMedia: null,\n priority: null,\n };\n }\n\n initialize() {\n this.get('widthMedia') === null && this.set('widthMedia', this.get('width'));\n this.get('width') === null && this.set('width', this.get('widthMedia'));\n !this.get('priority') && this.set('priority', parseFloat(this.get('widthMedia')) || 0);\n const toCheck = ['width', 'height', 'widthMedia'];\n toCheck.forEach(prop => this.checkUnit(prop));\n }\n\n checkUnit(prop) {\n const pr = this.get(prop) || '';\n const noUnit = (parseFloat(pr) || 0).toString() === pr.toString();\n noUnit && this.set(prop, `${pr}px`);\n }\n\n getName() {\n return this.get('name') || this.get('id');\n }\n\n getWidthMedia() {\n return this.get('widthMedia') || '';\n }\n}\n","import { Collection } from '../../common';\nimport Device from './Device';\n\nexport default class Devices extends Collection {\n comparator(left, right) {\n const max = Number.MAX_VALUE;\n return (right.get('priority') || max) - (left.get('priority') || max);\n }\n\n getSorted() {\n return this.sort();\n }\n}\n\nDevices.prototype.model = Device;\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class DevicesView extends View {\n template({ ppfx, label }) {\n return html`\n
${label}
\n
\n \n \n \n
\n
\n
\n
\n \n `;\n }\n\n events() {\n return {\n change: 'updateDevice',\n };\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.em = this.config.em;\n this.ppfx = this.config.pStylePrefix || '';\n this.events['click .' + this.ppfx + 'add-trasp'] = this.startAdd;\n this.listenTo(this.em, 'change:device', this.updateSelect);\n this.delegateEvents();\n }\n\n /**\n * Start adding new device\n * @return {[type]} [description]\n * @private\n */\n startAdd() {}\n\n /**\n * Update device of the editor\n * @private\n */\n updateDevice() {\n var em = this.em;\n if (em) {\n var devEl = this.devicesEl;\n var val = devEl ? devEl.val() : '';\n em.set('device', val);\n }\n }\n\n /**\n * Update select value on device update\n * @private\n */\n updateSelect() {\n var em = this.em;\n var devEl = this.devicesEl;\n if (em && em.getDeviceModel && devEl) {\n var device = em.getDeviceModel();\n var name = device ? device.get('id') : '';\n devEl.val(name);\n }\n }\n\n /**\n * Return devices options\n * @return {string} String of options\n * @private\n */\n getOptions() {\n const { collection, em } = this;\n let result = '';\n\n collection.each(device => {\n const { name, id } = device.attributes;\n const label = (em && em.t && em.t(`deviceManager.devices.${id}`)) || name;\n result += ``;\n });\n\n return result;\n }\n\n render() {\n const { em, ppfx, $el, el } = this;\n const label = em && em.t && em.t('deviceManager.device');\n $el.html(this.template({ ppfx, label }));\n this.devicesEl = $el.find(`.${ppfx}devices`);\n this.devicesEl.append(this.getOptions());\n this.devicesEl.val(em.get('device'));\n el.className = `${ppfx}devices-c`;\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/device_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * deviceManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const deviceManager = editor.Devices;\n * ```\n * ## Available Events\n * * `device:add` - Added new device. The [Device] is passed as an argument to the callback\n * * `device:remove` - Device removed. The [Device] is passed as an argument to the callback\n * * `device:select` - New device selected. The newly selected [Device] and the previous one, are passed as arguments to the callback\n * * `device:update` - Device updated. The updated [Device] and the object containing changes are passed as arguments to the callback\n * * `device` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getDevices](#getdevices)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Device]: device.html\n *\n * @module Devices\n */\nimport { isString } from 'underscore';\nimport Module from '../abstract/moduleLegacy';\nimport defaults from './config/config';\nimport Device from './model/Device';\nimport Devices from './model/Devices';\nimport DevicesView from './view/DevicesView';\n\nexport const evAll = 'device';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evSelectBefore = `${evSelect}:before`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evAddBefore = `${evAdd}:before`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nconst chnSel = 'change:device';\n\nexport default () => {\n let c = {};\n let devices;\n let view;\n\n return {\n ...Module,\n\n name: 'DeviceManager',\n\n Device,\n\n Devices,\n\n events: {\n all: evAll,\n select: evSelect,\n // selectBefore: evSelectBefore,\n update: evUpdate,\n add: evAdd,\n // addBefore: evAddBefore,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n\n devices = new Devices();\n c.devices.forEach(dv => this.add(dv));\n this.em = em;\n this.all = devices;\n this.select(c.default || devices.at(0));\n this.__initListen();\n em.on(chnSel, this._onSelect, this);\n\n return this;\n },\n\n _onSelect(m, deviceId, opts) {\n const { em, events } = this;\n const prevId = m.previous('device');\n const newDevice = this.get(deviceId);\n const ev = events.select;\n em.trigger(ev, newDevice, this.get(prevId));\n this.__catchAllEvent(ev, newDevice, opts);\n },\n\n /**\n * Add new device\n * @param {Object} props Device properties\n * @returns {[Device]} Added device\n * @example\n * const device1 = deviceManager.add({\n * // Without an explicit ID, the `name` will be taken. In case of missing `name`, a random ID will be created.\n * id: 'tablet',\n * name: 'Tablet',\n * width: '900px', // This width will be applied on the canvas frame and for the CSS media\n * });\n * const device2 = deviceManager.add({\n * id: 'tablet2',\n * name: 'Tablet 2',\n * width: '800px', // This width will be applied on the canvas frame\n * widthMedia: '810px', // This width that will be used for the CSS media\n * height: '600px', // Height will be applied on the canvas frame\n * });\n */\n add(props, options = {}) {\n let result;\n let opts = options;\n\n // Support old API\n if (isString(props)) {\n const width = options;\n opts = arguments[2] || {};\n result = {\n ...opts,\n id: props,\n name: opts.name || props,\n width,\n };\n } else {\n result = props;\n }\n\n if (!result.id) {\n result.id = result.name || this._createId();\n }\n\n return devices.add(result, opts);\n },\n\n /**\n * Return device by ID\n * @param {String} id ID of the device\n * @returns {[Device]|null}\n * @example\n * const device = deviceManager.get('Tablet');\n * console.log(JSON.stringify(device));\n * // {name: 'Tablet', width: '900px'}\n */\n get(id) {\n // Support old API\n const byName = this.getAll().filter(d => d.get('name') === id)[0];\n return byName || devices.get(id) || null;\n },\n\n /**\n * Remove device\n * @param {String|[Device]} device Device or device id\n * @returns {[Device]} Removed device\n * @example\n * const removed = deviceManager.remove('device-id');\n * // or by passing the Device\n * const device = deviceManager.get('device-id');\n * deviceManager.remove(device);\n */\n remove(device, opts = {}) {\n return this.__remove(device, opts);\n },\n\n /**\n * Return all devices\n * @returns {Array<[Device]>}\n * @example\n * const devices = deviceManager.getDevices();\n * console.log(JSON.stringify(devices));\n * // [{name: 'Desktop', width: ''}, ...]\n */\n getDevices() {\n return devices.models;\n },\n\n /**\n * Change the selected device. This will update the frame in the canvas\n * @param {String|[Device]} device Device or device id\n * @example\n * deviceManager.select('some-id');\n * // or by passing the page\n * const device = deviceManager.get('some-id');\n * deviceManager.select(device);\n */\n select(device, opts = {}) {\n const md = isString(device) ? this.get(device) : device;\n md && this.em.set('device', md.get('id'), opts);\n return this;\n },\n\n /**\n * Get the selected device\n * @returns {[Device]}\n * @example\n * const selected = deviceManager.getSelected();\n */\n getSelected() {\n return this.get(this.em.get('device'));\n },\n\n getAll() {\n return devices;\n },\n\n render() {\n view && view.remove();\n view = new DevicesView({\n collection: devices,\n config: c,\n });\n return view.render().el;\n },\n\n destroy() {\n devices.stopListening();\n devices.reset();\n view && view.remove();\n [devices, view].forEach(i => (i = null));\n c = {};\n },\n };\n};\n","export default {\n stylePrefix: 'comp-',\n\n // Could be used for default components\n components: [],\n\n // If the component is draggable you can drag the component itself (not only from the toolbar)\n draggableComponents: 1,\n\n /**\n * You can setup a custom component definition processor before adding it into the editor.\n * It might be useful to transform custom objects (es. some framework specific JSX) to GrapesJS component one.\n * This custom function will be executed on ANY new added component to the editor so make smart checks/conditions\n * to avoid doing useless executions\n * By default, GrapesJS supports already elements generated from React JSX preset\n * @example\n * processor: (obj) => {\n * if (obj.$$typeof) { // eg. this is a React Element\n * const gjsComponent = {\n * type: obj.type,\n * components: obj.props.children,\n * ...\n * };\n * ...\n * return gjsComponent;\n * }\n * }\n */\n processor: 0,\n\n // List of HTML void elements\n // https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#void-elements\n voidElements: [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ],\n};\n","import ComponentView from './ComponentView';\n\nexport default class ComponentWrapperView extends ComponentView {\n tagName() {\n return 'div';\n }\n}\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'cell',\n tagName: 'td',\n draggable: ['tr']\n }\n },\n {\n isComponent: el => ['td', 'th'].indexOf(toLowerCase(el.tagName)) >= 0\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst tagName = 'tr';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName,\n draggable: ['thead', 'tbody', 'tfoot'],\n droppable: ['th', 'td']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === tagName\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'table';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: ['tbody', 'thead', 'tfoot']\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n !components.length && components.add({ type: 'tbody' });\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n events: {}\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tbody';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n draggable: ['table'],\n droppable: ['tr'],\n columns: 1,\n rows: 1\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n let columns = this.get('columns');\n let rows = this.get('rows');\n\n // Init components if empty\n if (!components.length) {\n const rowsToAdd = [];\n\n while (rows--) {\n const columnsToAdd = [];\n let clm = columns;\n\n while (clm--) {\n columnsToAdd.push({\n type: 'cell',\n classes: ['cell']\n });\n }\n\n rowsToAdd.push({\n type: 'row',\n classes: ['row'],\n components: columnsToAdd\n });\n }\n\n components.add(rowsToAdd);\n }\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'thead';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tfoot';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import { result } from 'underscore';\nimport Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst svgAttrs =\n 'xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" viewBox=\"0 0 24 24\" style=\"fill: rgba(0,0,0,0.15); transform: scale(0.75)\"';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'image',\n tagName: 'img',\n void: true,\n droppable: 0,\n editable: 1,\n highlightable: 0,\n resizable: { ratioDefault: 1 },\n traits: ['alt'],\n\n src: `\n \n `,\n\n // Fallback image in case the src can't be loaded\n // If you use SVG, xmlns=\"http://www.w3.org/2000/svg\" is required\n fallback: `\n \n `,\n\n // File to load asynchronously once the model is rendered\n file: ''\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const { src } = this.get('attributes');\n if (src) this.set('src', src, { silent: 1 });\n },\n\n initToolbar(...args) {\n Component.prototype.initToolbar.apply(this, args);\n const em = this.em;\n\n if (em) {\n var cmd = em.get('Commands');\n var cmdName = 'image-editor';\n\n // Add Image Editor button only if the default command exists\n if (cmd.has(cmdName)) {\n let hasButtonBool = false;\n var tb = this.get('toolbar');\n\n for (let i = 0; i < tb.length; i++) {\n if (tb[i].command === 'image-editor') {\n hasButtonBool = true;\n break;\n }\n }\n\n if (!hasButtonBool) {\n tb.push({\n attributes: { class: 'fa fa-pencil' },\n command: cmdName\n });\n this.set('toolbar', tb);\n }\n }\n }\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n const attr = Component.prototype.getAttrToHTML.apply(this, args);\n const src = this.getSrcResult();\n if (src) attr.src = src;\n return attr;\n },\n\n getSrcResult(opt = {}) {\n const src = this.get(opt.fallback ? 'fallback' : 'src') || '';\n let result = src;\n\n if (src && src.substr(0, 4) === ' toLowerCase(el.tagName) === 'img'\n }\n);\n","import Component from './ComponentImage';\nimport OComponent from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'map',\n src: '',\n void: 0,\n mapUrl: 'https://maps.google.com/maps',\n tagName: 'iframe',\n mapType: 'q',\n address: '',\n zoom: '1',\n attributes: { frameborder: 0 },\n toolbar: OComponent.prototype.defaults.toolbar,\n traits: [\n {\n label: 'Address',\n name: 'address',\n placeholder: 'eg. London, UK',\n changeProp: 1\n },\n {\n type: 'select',\n label: 'Map type',\n name: 'mapType',\n changeProp: 1,\n options: [\n { value: 'q', name: 'Roadmap' },\n { value: 'w', name: 'Satellite' }\n ]\n },\n {\n label: 'Zoom',\n name: 'zoom',\n type: 'range',\n min: '1',\n max: '20',\n changeProp: 1\n }\n ]\n },\n\n initialize(o, opt) {\n if (this.get('src')) this.parseFromSrc();\n else this.updateSrc();\n Component.prototype.initialize.apply(this, arguments);\n this.listenTo(\n this,\n 'change:address change:zoom change:mapType',\n this.updateSrc\n );\n },\n\n updateSrc() {\n this.set('src', this.getMapUrl());\n },\n\n /**\n * Returns url of the map\n * @return {string}\n * @private\n */\n getMapUrl() {\n var md = this;\n var addr = md.get('address');\n var zoom = md.get('zoom');\n var type = md.get('mapType');\n var size = '';\n addr = addr ? '&q=' + addr : '';\n zoom = zoom ? '&z=' + zoom : '';\n type = type ? '&t=' + type : '';\n var result = md.get('mapUrl') + '?' + addr + zoom + type;\n result += '&output=embed';\n return result;\n },\n\n /**\n * Set attributes by src string\n * @private\n */\n parseFromSrc() {\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n if (qr.q) this.set('address', qr.q);\n if (qr.z) this.set('zoom', qr.z);\n if (qr.t) this.set('mapType', qr.t);\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n var result = '';\n if (\n toLowerCase(el.tagName) == 'iframe' &&\n /maps\\.google\\.com/.test(el.src)\n ) {\n result = { type: 'map', src: el.src };\n }\n return result;\n }\n }\n);\n","import { isString } from 'underscore';\nimport ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'img',\n\n events: {\n dblclick: 'onActive',\n click: 'initResize',\n error: 'onError',\n load: 'onLoad',\n dragstart: 'noDrag',\n },\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.listenTo(this.model, 'change:src', this.updateSrc);\n this.classEmpty = `${this.ppfx}plh-image`;\n this.fetchFile();\n },\n\n /**\n * Fetch file if exists\n */\n fetchFile() {\n if (this.modelOpt.temporary) return;\n const { model, em } = this;\n const file = model.get('file');\n\n if (file && em) {\n const fu = em.get('AssetManager').FileUploader();\n fu?.uploadFile({ dataTransfer: { files: [file] } }, res => {\n const obj = res && res.data && res.data[0];\n const src = obj && (isString(obj) ? obj : obj.src);\n src && model.set({ src });\n });\n model.set('file', '');\n }\n },\n\n /**\n * Update src attribute\n * @private\n * */\n updateSrc() {\n const { model, classEmpty, $el } = this;\n const src = model.getSrcResult();\n const srcExists = src && !model.isDefaultSrc();\n model.addAttributes({ src });\n $el[srcExists ? 'removeClass' : 'addClass'](classEmpty);\n },\n\n /**\n * Open dialog for image changing\n * @param {Object} e Event\n * @private\n * */\n onActive(ev) {\n ev && ev.stopPropagation();\n const { em, model } = this;\n const am = em && em.get('AssetManager');\n\n if (am && model.get('editable')) {\n am.open({\n select(asset, complete) {\n model.set({ src: asset.getSrc() });\n complete && am.close();\n },\n target: model,\n types: ['image'],\n accept: 'image/*',\n });\n }\n },\n\n onError() {\n const fallback = this.model.getSrcResult({ fallback: 1 });\n if (fallback) this.el.src = fallback;\n },\n\n onLoad() {\n // Used to update component tools box (eg. toolbar, resizer) once the image is loaded\n this.em.trigger('change:canvasOffset');\n },\n\n noDrag(ev) {\n ev.preventDefault();\n return false;\n },\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.updateSrc();\n const { $el, model } = this;\n const cls = $el.attr('class') || '';\n !model.get('src') && $el.attr('class', `${cls} ${this.classEmpty}`.trim());\n this.postRender();\n\n return this;\n },\n});\n","import Backbone from 'backbone';\nimport ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.classEmpty = this.ppfx + 'plh-map';\n },\n\n /**\n * Update the map on the canvas\n * @private\n */\n updateSrc() {\n this.getIframe().src = this.model.get('src');\n },\n\n getIframe() {\n if (!this.iframe) {\n var ifrm = document.createElement('iframe');\n ifrm.src = this.model.get('src');\n ifrm.frameBorder = 0;\n ifrm.style.height = '100%';\n ifrm.style.width = '100%';\n ifrm.className = this.ppfx + 'no-pointer';\n this.iframe = ifrm;\n }\n return this.iframe;\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n this.el.appendChild(this.getIframe());\n return this;\n }\n});\n","import Component from './Component';\n\nexport default class ComponentText extends Component {}\n\nComponentText.prototype.defaults = {\n ...Component.getDefaults(),\n type: 'text',\n droppable: false,\n editable: true,\n};\n","import { forEach } from 'underscore';\nimport { toLowerCase } from 'utils/mixins';\nimport ComponentText from './ComponentText';\n\nconst type = 'link';\n\nexport default class ComponentLink extends ComponentText {}\n\nComponentLink.prototype.defaults = {\n ...ComponentText.getDefaults(),\n type,\n tagName: 'a',\n traits: ['title', 'href', 'target'],\n};\n\nComponentLink.isComponent = (el, opts = {}) => {\n let result;\n\n if (toLowerCase(el.tagName) === 'a') {\n const textTags = opts.textTags || [];\n result = { type, editable: false };\n\n // The link is editable only if, at least, one of its\n // children is a text node (not empty one)\n const children = el.childNodes;\n const len = children.length;\n if (!len) delete result.editable;\n\n forEach(children, child => {\n const { tagName } = child;\n if (\n (child.nodeType == 3 && child.textContent.trim() !== '') ||\n (tagName && textTags.indexOf(toLowerCase(tagName)) >= 0)\n ) {\n delete result.editable;\n }\n });\n }\n\n return result;\n};\n","import { on, off, getModel } from 'utils/mixins';\nimport ComponentView from './ComponentView';\nimport { bindAll } from 'underscore';\n\nconst compProt = ComponentView.prototype;\n\nexport default ComponentView.extend({\n events: {\n dblclick: 'onActive',\n input: 'onInput',\n },\n\n initialize(o) {\n compProt.initialize.apply(this, arguments);\n bindAll(this, 'disableEditing', 'onDisable');\n const model = this.model;\n const em = this.em;\n this.listenTo(model, 'focus', this.onActive);\n this.listenTo(model, 'change:content', this.updateContentText);\n this.listenTo(model, 'sync:content', this.syncContent);\n this.rte = em && em.get('RichTextEditor');\n },\n\n updateContentText(m, v, opts = {}) {\n !opts.fromDisable && this.disableEditing();\n },\n\n canActivate() {\n const { model, rteEnabled, em } = this;\n const modelInEdit = em?.getEditing();\n const sameInEdit = modelInEdit === model;\n let result = true;\n let isInnerText = false;\n let delegate;\n\n if (rteEnabled || !model.get('editable') || sameInEdit || (isInnerText = model.isChildOf('text'))) {\n result = false;\n // If the current is inner text, select the closest text\n if (isInnerText && !model.get('textable')) {\n let parent = model.parent();\n\n while (parent && !parent.isInstanceOf('text')) {\n parent = parent.parent();\n }\n\n if (parent && parent.get('editable')) {\n delegate = parent;\n } else {\n result = true;\n }\n }\n }\n\n return { result, delegate };\n },\n\n /**\n * Enable element content editing\n * @private\n * */\n async onActive(ev) {\n const { rte, em } = this;\n const { result, delegate } = this.canActivate();\n\n // We place this before stopPropagation in case of nested\n // text components will not block the editing (#1394)\n if (!result) {\n if (delegate) {\n ev?.stopPropagation?.();\n em.setSelected(delegate);\n delegate.trigger('active', ev);\n }\n return;\n }\n\n ev?.stopPropagation?.();\n this.lastContent = this.getContent();\n\n if (rte) {\n try {\n this.activeRte = await rte.enable(this, this.activeRte, { event: ev });\n } catch (err) {\n em.logError(err);\n }\n }\n\n this.toggleEvents(1);\n },\n\n onDisable() {\n this.disableEditing();\n },\n\n /**\n * Disable element content editing\n * @private\n * */\n async disableEditing(opts = {}) {\n const { model, rte, activeRte, em } = this;\n // There are rare cases when disableEditing is called when the view is already removed\n // so, we have to check for the model, this will avoid breaking stuff.\n const editable = model && model.get('editable');\n\n if (rte) {\n try {\n await rte.disable(this, activeRte);\n } catch (err) {\n em.logError(err);\n }\n\n if (editable && this.getContent() !== this.lastContent) {\n this.syncContent(opts);\n this.lastContent = '';\n }\n }\n\n this.toggleEvents();\n },\n\n /**\n * get content from RTE\n * @return string\n */\n getContent() {\n const { activeRte } = this;\n const canGetRteContent = activeRte && typeof activeRte.getContent === 'function';\n\n return canGetRteContent ? activeRte.getContent() : this.getChildrenContainer().innerHTML;\n },\n\n /**\n * Merge content from the DOM to the model\n */\n syncContent(opts = {}) {\n const { model, rte, rteEnabled } = this;\n if (!rteEnabled && !opts.force) return;\n const content = this.getContent();\n const comps = model.components();\n const contentOpt = { fromDisable: 1, ...opts };\n model.set('content', '', contentOpt);\n\n // If there is a custom RTE the content is just baked staticly\n // inside 'content'\n if (rte.customRte) {\n comps.length && comps.reset(null, opts);\n model.set('content', content, contentOpt);\n } else {\n comps.resetFromString(content, opts);\n }\n },\n\n insertComponent(content, opts = {}) {\n const { model, el } = this;\n const doc = el.ownerDocument;\n const selection = doc.getSelection();\n\n if (selection?.rangeCount) {\n const range = selection.getRangeAt(0);\n const textNode = range.startContainer;\n const offset = range.startOffset;\n const textModel = getModel(textNode);\n const newCmps = [];\n\n if (textModel && textModel.is?.('textnode')) {\n const cmps = textModel.collection;\n cmps.forEach(cmp => {\n if (cmp === textModel) {\n const type = 'textnode';\n const cnt = cmp.get('content');\n newCmps.push({ type, content: cnt.slice(0, offset) });\n newCmps.push(content);\n newCmps.push({ type, content: cnt.slice(offset) });\n } else {\n newCmps.push(cmp);\n }\n });\n\n const result = newCmps.filter(Boolean);\n const index = result.indexOf(content);\n cmps.reset(result, opts);\n\n return cmps.at(index);\n }\n }\n\n return model.append(content, opts);\n },\n\n /**\n * Callback on input event\n * @param {Event} e\n */\n onInput() {\n const { em } = this;\n const evPfx = 'component';\n const ev = [`${evPfx}:update`, `${evPfx}:input`].join(' ');\n\n // Update toolbars\n em && em.trigger(ev, this.model);\n },\n\n /**\n * Isolate disable propagation method\n * @param {Event}\n * @private\n * */\n disablePropagation(e) {\n e.stopPropagation();\n },\n\n /**\n * Enable/Disable events\n * @param {Boolean} enable\n */\n toggleEvents(enable) {\n const { em, model, $el } = this;\n const mixins = { on, off };\n const method = enable ? 'on' : 'off';\n em.setEditing(enable ? this : 0);\n this.rteEnabled = !!enable;\n\n // The ownerDocument is from the frame\n var elDocs = [this.el.ownerDocument, document];\n mixins.off(elDocs, 'mousedown', this.onDisable);\n mixins[method](elDocs, 'mousedown', this.onDisable);\n em[method]('toolbar:run:before', this.onDisable);\n if (model) {\n model[method]('removed', this.onDisable);\n model.trigger(`rte:${enable ? 'enable' : 'disable'}`);\n }\n\n // Avoid closing edit mode on component click\n $el && $el.off('mousedown', this.disablePropagation);\n $el && $el[method]('mousedown', this.disablePropagation);\n\n // Fixes #2210 but use this also as a replacement\n // of this fix: bd7b804f3b46eb45b4398304b2345ce870f232d2\n if (this.config.draggableComponents) {\n let { el } = this;\n\n while (el) {\n el.draggable = enable ? !1 : !0;\n // Note: el.parentNode is sometimes null here\n el = el.parentNode;\n el && el.tagName == 'BODY' && (el = 0);\n }\n }\n },\n});\n","import ComponentView from './ComponentTextView';\n\nexport default ComponentView.extend({\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n\n // I need capturing instead of bubbling as bubbled clicks from other\n // children will execute the link event\n this.el.addEventListener('click', this.prevDef, true);\n\n return this;\n }\n});\n","import Component from './ComponentText';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'label';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n traits: ['id', 'title', 'for']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentLinkView from './ComponentLinkView';\n\nexport default ComponentLinkView.extend({\n tagName: 'span' // Avoid Firefox bug with label editing #2332\n});\n","import Component from './ComponentImage';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'video';\nconst yt = 'yt';\nconst vi = 'vi';\nconst ytnc = 'ytnc';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n videoId: '',\n void: 0,\n provider: 'so', // on change of provider, traits are switched\n ytUrl: 'https://www.youtube.com/embed/',\n ytncUrl: 'https://www.youtube-nocookie.com/embed/',\n viUrl: 'https://player.vimeo.com/video/',\n loop: 0,\n poster: '',\n muted: 0,\n autoplay: 0,\n controls: 1,\n color: '',\n list: '',\n rel: 1, // YT related videos\n modestbranding: 0, // YT modest branding\n sources: [],\n attributes: { allowfullscreen: 'allowfullscreen' }\n },\n\n initialize(o, opt) {\n this.em = opt.em;\n if (this.get('src')) this.parseFromSrc();\n this.updateTraits();\n this.listenTo(this, 'change:provider', this.updateTraits);\n this.listenTo(this, 'change:videoId change:provider', this.updateSrc);\n Component.prototype.initialize.apply(this, arguments);\n },\n\n /**\n * Update traits by provider\n * @private\n */\n updateTraits() {\n const prov = this.get('provider');\n let tagName = 'iframe';\n let traits;\n\n switch (prov) {\n case yt:\n case ytnc:\n traits = this.getYoutubeTraits();\n break;\n case vi:\n traits = this.getVimeoTraits();\n break;\n default:\n tagName = 'video';\n traits = this.getSourceTraits();\n }\n\n this.set({ tagName }, { silent: 1 }); // avoid break in view\n this.set({ traits });\n this.em.trigger('component:toggled');\n },\n\n /**\n * Set attributes by src string\n */\n parseFromSrc() {\n var prov = this.get('provider');\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n var videoId = uri.pathname.split('/').pop();\n this.set('videoId', videoId);\n qr.list && this.set('list', qr.list);\n if (qr.autoplay) this.set('autoplay', 1);\n if (qr.loop) this.set('loop', 1);\n if (parseInt(qr.controls) === 0) this.set('controls', 0);\n if (qr.color) this.set('color', qr.color);\n if (qr.rel === '0') this.set('rel', 0);\n if (qr.modestbranding === '1') this.set('modestbranding', 1);\n break;\n default:\n }\n },\n\n /**\n * Update src on change of video ID\n * @private\n */\n updateSrc() {\n const prov = this.get('provider');\n let src = '';\n\n switch (prov) {\n case yt:\n src = this.getYoutubeSrc();\n break;\n case ytnc:\n src = this.getYoutubeNoCookieSrc();\n break;\n case vi:\n src = this.getVimeoSrc();\n break;\n }\n\n this.set({ src });\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n var attr = Component.prototype.getAttrToHTML.apply(this, args);\n var prov = this.get('provider');\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n break;\n default:\n if (this.get('loop')) attr.loop = 'loop';\n if (this.get('autoplay')) attr.autoplay = 'autoplay';\n if (this.get('controls')) attr.controls = 'controls';\n }\n return attr;\n },\n\n // Listen provider change and switch traits, in TraitView listen traits change\n\n /**\n * Return the provider trait\n * @return {Object}\n * @private\n */\n getProviderTrait() {\n return {\n type: 'select',\n label: 'Provider',\n name: 'provider',\n changeProp: 1,\n options: [\n { value: 'so', name: 'HTML5 Source' },\n { value: yt, name: 'Youtube' },\n { value: ytnc, name: 'Youtube (no cookie)' },\n { value: vi, name: 'Vimeo' }\n ]\n };\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getSourceTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Source',\n name: 'src',\n placeholder: 'eg. ./media/video.mp4',\n changeProp: 1\n },\n {\n label: 'Poster',\n name: 'poster',\n placeholder: 'eg. ./media/image.jpg'\n // changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait()\n ];\n },\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getYoutubeTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. jNQXAC9IVRw',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait(),\n {\n type: 'checkbox',\n label: 'Related',\n name: 'rel',\n changeProp: 1\n },\n {\n type: 'checkbox',\n label: 'Modest',\n name: 'modestbranding',\n changeProp: 1\n }\n ];\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getVimeoTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. 123456789',\n changeProp: 1\n },\n {\n label: 'Color',\n name: 'color',\n placeholder: 'eg. FF0000',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait()\n ];\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getAutoplayTrait() {\n return {\n type: 'checkbox',\n label: 'Autoplay',\n name: 'autoplay',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getLoopTrait() {\n return {\n type: 'checkbox',\n label: 'Loop',\n name: 'loop',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getControlsTrait() {\n return {\n type: 'checkbox',\n label: 'Controls',\n name: 'controls',\n changeProp: 1\n };\n },\n\n /**\n * Returns url to youtube video\n * @return {string}\n * @private\n */\n getYoutubeSrc() {\n const id = this.get('videoId');\n let url = this.get('ytUrl');\n const list = this.get('list');\n url += id + (id.indexOf('?') < 0 ? '?' : '');\n url += list ? `&list=${list}` : '';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += !this.get('controls') ? '&controls=0&showinfo=0' : '';\n // Loop works only with playlist enabled\n // https://stackoverflow.com/questions/25779966/youtube-iframe-loop-doesnt-work\n url += this.get('loop') ? `&loop=1&playlist=${id}` : '';\n url += this.get('rel') ? '' : '&rel=0';\n url += this.get('modestbranding') ? '&modestbranding=1' : '';\n return url;\n },\n\n /**\n * Returns url to youtube no cookie video\n * @return {string}\n * @private\n */\n getYoutubeNoCookieSrc() {\n let url = this.getYoutubeSrc();\n url = url.replace(this.get('ytUrl'), this.get('ytncUrl'));\n return url;\n },\n\n /**\n * Returns url to vimeo video\n * @return {string}\n * @private\n */\n getVimeoSrc() {\n var url = this.get('viUrl');\n url += this.get('videoId') + '?';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += this.get('loop') ? '&loop=1' : '';\n url += !this.get('controls') ? '&title=0&portrait=0&badge=0' : '';\n url += this.get('color') ? '&color=' + this.get('color') : '';\n return url;\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n let result = '';\n const { tagName, src } = el;\n const isYtProv = /youtube\\.com\\/embed/.test(src);\n const isYtncProv = /youtube-nocookie\\.com\\/embed/.test(src);\n const isViProv = /player\\.vimeo\\.com\\/video/.test(src);\n const isExtProv = isYtProv || isYtncProv || isViProv;\n if (\n toLowerCase(tagName) == type ||\n (toLowerCase(tagName) == 'iframe' && isExtProv)\n ) {\n result = { type: 'video' };\n if (src) result.src = src;\n if (isExtProv) {\n if (isYtProv) result.provider = yt;\n else if (isYtncProv) result.provider = ytnc;\n else if (isViProv) result.provider = vi;\n }\n }\n return result;\n }\n }\n);\n","import ComponentView from './ComponentImageView';\nimport OComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n OComponentView.prototype.initialize.apply(this, arguments);\n const { model } = this;\n const props = [\n 'loop',\n 'autoplay',\n 'controls',\n 'color',\n 'rel',\n 'modestbranding',\n 'poster'\n ];\n const events = props.map(p => `change:${p}`).join(' ');\n this.listenTo(model, 'change:provider', this.updateProvider);\n this.listenTo(model, 'change:src', this.updateSrc);\n this.listenTo(model, events, this.updateVideo);\n },\n\n /**\n * Rerender on update of the provider\n * @private\n */\n updateProvider() {\n var prov = this.model.get('provider');\n this.el.innerHTML = '';\n this.el.appendChild(this.renderByProvider(prov));\n },\n\n /**\n * Update the source of the video\n * @private\n */\n updateSrc() {\n const { model, videoEl } = this;\n if (!videoEl) return;\n const prov = model.get('provider');\n let src = model.get('src');\n\n switch (prov) {\n case 'yt':\n src = model.getYoutubeSrc();\n break;\n case 'ytnc':\n src = model.getYoutubeNoCookieSrc();\n break;\n case 'vi':\n src = model.getVimeoSrc();\n break;\n }\n\n videoEl.src = src;\n },\n\n /**\n * Update video parameters\n * @private\n */\n updateVideo() {\n var prov = this.model.get('provider');\n var videoEl = this.videoEl;\n var md = this.model;\n switch (prov) {\n case 'yt':\n case 'ytnc':\n case 'vi':\n this.model.trigger('change:videoId');\n break;\n default:\n videoEl.loop = md.get('loop');\n videoEl.autoplay = md.get('autoplay');\n videoEl.controls = md.get('controls');\n videoEl.poster = md.get('poster');\n }\n },\n\n renderByProvider(prov) {\n var videoEl;\n switch (prov) {\n case 'yt':\n videoEl = this.renderYoutube();\n break;\n case 'ytnc':\n videoEl = this.renderYoutubeNoCookie();\n break;\n case 'vi':\n videoEl = this.renderVimeo();\n break;\n default:\n videoEl = this.renderSource();\n }\n this.videoEl = videoEl;\n return videoEl;\n },\n\n renderSource() {\n var el = document.createElement('video');\n el.src = this.model.get('src');\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutube() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutubeNoCookie() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeNoCookieSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderVimeo() {\n var el = document.createElement('iframe');\n el.src = this.model.getVimeoSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n initVideoEl(el) {\n el.className = this.ppfx + 'no-pointer';\n el.style.height = '100%';\n el.style.width = '100%';\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n var prov = this.model.get('provider');\n this.el.appendChild(this.renderByProvider(prov));\n this.updateVideo();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'script';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n draggable: false,\n layerable: false\n }\n },\n {\n isComponent(el) {\n if (toLowerCase(el.tagName) == type) {\n const result = { type };\n\n if (el.src) {\n result.src = el.src;\n result.onload = el.onload;\n }\n\n return result;\n }\n }\n }\n);\n","import ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'script',\n\n events: {},\n\n render() {\n const { model, em } = this;\n const src = model.get('src');\n const scrCnt = em && em.get('scriptCount');\n const scriptCount = scrCnt ? scrCnt : 0;\n let content = '';\n\n // If it's an external script\n if (src) {\n const onload = model.get('onload');\n const svar = `script${scriptCount}`;\n const svarNext = `script${scriptCount + 1}`;\n const svarFn = `${svar}Start`;\n const svarNextFn = `${svarNext}Start`;\n // Load multiple external scripts in the correct order\n content = `\n var ${svar} = document.createElement('script');\n ${svar}.onload = function() {\n ${onload ? `${onload}();\\n` : ''}\n typeof ${svarNextFn} == 'function' && ${svarNextFn}();\n };\n ${svar}.src = '${src}';\n function ${svarFn}() { document.body.appendChild(${svar}); };\n ${!scriptCount ? `${svarFn}();` : ''}\n `;\n em && em.set('scriptCount', scriptCount + 1);\n } else {\n content = model.__innerHTML();\n }\n\n this.el.innerHTML = content;\n this.postRender();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'svg';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n highlightable: 0,\n resizable: { ratioDefault: 1 }\n },\n\n getName() {\n let name = this.get('tagName');\n let customName = this.get('custom-name');\n name = name.charAt(0).toUpperCase() + name.slice(1);\n return customName || name;\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import Component from './ComponentSvg';\n\n/**\n * Component for inner SVG elements\n */\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n selectable: false,\n hoverable: false,\n layerable: false\n }\n },\n {\n isComponent: (el, opts = {}) => !!opts.inSvg\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n _createElement: function(tagName) {\n return document.createElementNS('http://www.w3.org/2000/svg', tagName);\n }\n});\n","import Component from './Component';\nimport { escape } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName: '',\n droppable: false,\n layerable: false,\n selectable: false,\n editable: true\n },\n\n toHTML() {\n const parent = this.parent();\n const cnt = this.get('content');\n return parent && parent.is('script') ? cnt : escape(cnt);\n }\n },\n {\n isComponent(el) {\n var result = '';\n if (el.nodeType === 3) {\n result = {\n type: 'textnode',\n content: el.textContent\n };\n }\n return result;\n }\n }\n);\n","import Component from './ComponentTextNode';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults\n },\n\n toHTML() {\n return ``;\n }\n },\n {\n isComponent(el) {\n if (el.nodeType == 8) {\n return {\n tagName: 'NULL',\n type: 'comment',\n content: el.textContent\n };\n }\n }\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n initialize() {\n ComponentView.prototype.initialize.apply(this, arguments);\n },\n\n // Clear methods used on Nodes with attributes\n _setAttributes() {},\n renderAttributes() {},\n updateStatus() {},\n updateClasses() {},\n setAttribute() {},\n updateAttributes() {},\n initClasses() {},\n initComponents() {},\n delegateEvents() {},\n\n _createElement() {\n return document.createTextNode('');\n },\n\n render() {\n const { model, el } = this;\n if (model.opt.temporary) return this;\n el.textContent = model.get('content');\n return this;\n }\n});\n","import ComponentView from './ComponentTextNodeView';\n\nexport default ComponentView.extend({\n _createElement() {\n return document.createComment(this.model.get('content'));\n }\n});\n","import Component from './Component';\n\nexport default class ComponentWrapper extends Component {\n defaults() {\n return {\n ...Component.getDefaults(),\n tagName: 'body',\n removable: false,\n copyable: false,\n draggable: false,\n components: [],\n traits: [],\n stylable: [\n 'background',\n 'background-color',\n 'background-image',\n 'background-repeat',\n 'background-attachment',\n 'background-position',\n 'background-size',\n ],\n };\n }\n\n __postAdd() {\n const um = this.em && this.em.get('UndoManager');\n um && !this.__hasUm && um.add(this);\n return Component.prototype.__postAdd.call(this, arguments);\n }\n\n __postRemove() {\n const um = this.em && this.em.get('UndoManager');\n um && um.remove(this);\n return Component.prototype.__postRemove.call(this, arguments);\n }\n}\n\nComponentWrapper.isComponent = () => false;\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'iframe';\n\nexport default Component.extend(\n {\n defaults() {\n return {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n resizable: true,\n traits: ['id', 'title', 'src'],\n attributes: { frameborder: '0' }\n };\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\nimport { createEl, find, attrUp } from 'utils/dom';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n initialize(...args) {\n ComponentView.prototype.initialize.apply(this, args);\n this.listenTo(this.model, 'change:attributes:src', this.updateSrc);\n },\n\n updateSrc() {\n const frame = find(this.el, 'iframe')[0];\n frame && attrUp(frame, { src: this.__getSrc() });\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n const frame = createEl('iframe', {\n class: `${this.ppfx}no-pointer`,\n style: 'width: 100%; height: 100%; border: none',\n src: this.__getSrc()\n });\n this.el.appendChild(frame);\n return this;\n },\n\n __getSrc() {\n return this.model.getAttributes().src || '';\n }\n});\n","/**\n * With this module is possible to manage components inside the canvas. You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/dom_components/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * domComponents: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('component:create', () => { ... });\n *\n * // Use the API\n * const cmp = editor.Components;\n * cmp.addType(...);\n * ```\n *\n * ## Available Events\n * * `component:create` - Component is created (only the model, is not yet mounted in the canvas), called after the init() method\n * * `component:mount` - Component is mounted to an element and rendered in canvas\n * * `component:add` - Triggered when a new component is added to the editor, the model is passed as an argument to the callback\n * * `component:remove` - Triggered when a component is removed, the model is passed as an argument to the callback\n * * `component:remove:before` - Triggered before the remove of the component, the model, remove function (if aborted via options, with this function you can complete the remove) and options (use options.abort = true to prevent remove), are passed as arguments to the callback\n * * `component:clone` - Triggered when a component is cloned, the new model is passed as an argument to the callback\n * * `component:update` - Triggered when a component is updated (moved, styled, etc.), the model is passed as an argument to the callback\n * * `component:update:{propertyName}` - Listen any property change, the model is passed as an argument to the callback\n * * `component:styleUpdate` - Triggered when the style of the component is updated, the model is passed as an argument to the callback\n * * `component:styleUpdate:{propertyName}` - Listen for a specific style property change, the model is passed as an argument to the callback\n * * `component:selected` - New component selected, the selected model is passed as an argument to the callback\n * * `component:deselected` - Component deselected, the deselected model is passed as an argument to the callback\n * * `component:toggled` - Component selection changed, toggled model is passed as an argument to the callback\n * * `component:type:add` - New component type added, the new type is passed as an argument to the callback\n * * `component:type:update` - Component type updated, the updated type is passed as an argument to the callback\n * * `component:drag:start` - Component drag started. Passed an object, to the callback, containing the `target` (component to drag), `parent` (parent of the component) and `index` (component index in the parent)\n * * `component:drag` - During component drag. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the current pointer\n * * `component:drag:end` - Component drag ended. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the final pointer\n *\n * ## Methods\n * * [getWrapper](#getwrapper)\n * * [getComponents](#getcomponents)\n * * [addComponent](#addcomponent)\n * * [clear](#clear)\n * * [load](#load)\n * * [store](#store)\n * * [addType](#addtype)\n * * [getType](#gettype)\n * * [getTypes](#gettypes)\n * * [render](#render)\n *\n * @module Components\n */\nimport { isEmpty, isObject, isArray, isFunction, isString, result, debounce } from 'underscore';\nimport defaults from './config/config';\nimport Component, { keyUpdate, keyUpdateInside } from './model/Component';\nimport Components from './model/Components';\nimport ComponentView from './view/ComponentView';\nimport ComponentWrapperView from './view/ComponentWrapperView';\nimport ComponentsView from './view/ComponentsView';\nimport ComponentTableCell from './model/ComponentTableCell';\nimport ComponentTableCellView from './view/ComponentTableCellView';\nimport ComponentTableRow from './model/ComponentTableRow';\nimport ComponentTableRowView from './view/ComponentTableRowView';\nimport ComponentTable from './model/ComponentTable';\nimport ComponentTableView from './view/ComponentTableView';\nimport ComponentTableHead from './model/ComponentTableHead';\nimport ComponentTableHeadView from './view/ComponentTableHeadView';\nimport ComponentTableBody from './model/ComponentTableBody';\nimport ComponentTableBodyView from './view/ComponentTableBodyView';\nimport ComponentTableFoot from './model/ComponentTableFoot';\nimport ComponentTableFootView from './view/ComponentTableFootView';\nimport ComponentMap from './model/ComponentMap';\nimport ComponentMapView from './view/ComponentMapView';\nimport ComponentLink from './model/ComponentLink';\nimport ComponentLinkView from './view/ComponentLinkView';\nimport ComponentLabel from './model/ComponentLabel';\nimport ComponentLabelView from './view/ComponentLabelView';\nimport ComponentVideo from './model/ComponentVideo';\nimport ComponentVideoView from './view/ComponentVideoView';\nimport ComponentImage from './model/ComponentImage';\nimport ComponentImageView from './view/ComponentImageView';\nimport ComponentScript from './model/ComponentScript';\nimport ComponentScriptView from './view/ComponentScriptView';\nimport ComponentSvg from './model/ComponentSvg';\nimport ComponentSvgIn from './model/ComponentSvgIn';\nimport ComponentSvgView from './view/ComponentSvgView';\nimport ComponentComment from './model/ComponentComment';\nimport ComponentCommentView from './view/ComponentCommentView';\nimport ComponentTextNode from './model/ComponentTextNode';\nimport ComponentTextNodeView from './view/ComponentTextNodeView';\nimport ComponentText from './model/ComponentText';\nimport ComponentTextView from './view/ComponentTextView';\nimport ComponentWrapper from './model/ComponentWrapper';\nimport ComponentFrame from './model/ComponentFrame';\nimport ComponentFrameView from './view/ComponentFrameView';\nimport Module from 'abstract/moduleLegacy';\n\nexport default () => {\n var c = {};\n let em;\n const componentsById = {};\n\n var component, componentView;\n var componentTypes = [\n {\n id: 'cell',\n model: ComponentTableCell,\n view: ComponentTableCellView,\n },\n {\n id: 'row',\n model: ComponentTableRow,\n view: ComponentTableRowView,\n },\n {\n id: 'table',\n model: ComponentTable,\n view: ComponentTableView,\n },\n {\n id: 'thead',\n model: ComponentTableHead,\n view: ComponentTableHeadView,\n },\n {\n id: 'tbody',\n model: ComponentTableBody,\n view: ComponentTableBodyView,\n },\n {\n id: 'tfoot',\n model: ComponentTableFoot,\n view: ComponentTableFootView,\n },\n {\n id: 'map',\n model: ComponentMap,\n view: ComponentMapView,\n },\n {\n id: 'link',\n model: ComponentLink,\n view: ComponentLinkView,\n },\n {\n id: 'label',\n model: ComponentLabel,\n view: ComponentLabelView,\n },\n {\n id: 'video',\n model: ComponentVideo,\n view: ComponentVideoView,\n },\n {\n id: 'image',\n model: ComponentImage,\n view: ComponentImageView,\n },\n {\n id: 'script',\n model: ComponentScript,\n view: ComponentScriptView,\n },\n {\n id: 'svg-in',\n model: ComponentSvgIn,\n view: ComponentSvgView,\n },\n {\n id: 'svg',\n model: ComponentSvg,\n view: ComponentSvgView,\n },\n {\n id: 'iframe',\n model: ComponentFrame,\n view: ComponentFrameView,\n },\n {\n id: 'comment',\n model: ComponentComment,\n view: ComponentCommentView,\n },\n {\n id: 'textnode',\n model: ComponentTextNode,\n view: ComponentTextNodeView,\n },\n {\n id: 'text',\n model: ComponentText,\n view: ComponentTextView,\n },\n {\n id: 'wrapper',\n model: ComponentWrapper,\n view: ComponentWrapperView,\n },\n {\n id: 'default',\n model: Component,\n view: ComponentView,\n },\n ];\n\n return {\n ...Module,\n\n Component,\n\n Components,\n\n ComponentsView,\n\n componentTypes,\n\n componentsById,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'DomComponents',\n\n storageKey: 'components',\n\n /**\n * Returns config\n * @return {Object} Config object\n * @private\n */\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module. Called on a new instance of the editor with configurations passed\n * inside 'domComponents' field\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n em = c.em;\n this.em = em;\n\n if (em) {\n c.components = em.config.components || c.components;\n }\n\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load dependencies\n if (em) {\n c.modal = em.get('Modal') || '';\n c.am = em.get('AssetManager') || '';\n em.get('Parser').compTypes = componentTypes;\n em.on('change:componentHovered', this.componentHovered, this);\n\n const selected = em.get('selected');\n em.listenTo(selected, 'add', (sel, c, opts) => this.selectAdd(selected.getComponent(sel), opts));\n em.listenTo(selected, 'remove', (sel, c, opts) => this.selectRemove(selected.getComponent(sel), opts));\n }\n\n return this;\n },\n\n load(data) {\n return this.loadProjectData(data, {\n onResult: result => {\n const wrapper = this.getWrapper();\n if (isArray(result)) {\n result.length && wrapper.components(result);\n } else {\n const { components = [], ...rest } = result;\n wrapper.set(rest);\n wrapper.components(components);\n }\n },\n });\n },\n\n store() {\n return {};\n },\n\n /**\n * Returns privately the main wrapper\n * @return {Object}\n * @private\n */\n getComponent() {\n const sel = this.em.get('PageManager').getSelected();\n const frame = sel && sel.getMainFrame();\n return frame && frame.getComponent();\n },\n\n /**\n * Returns root component inside the canvas. Something like `` inside HTML page\n * The wrapper doesn't differ from the original Component Model\n * @return {Component} Root Component\n * @example\n * // Change background of the wrapper and set some attribute\n * var wrapper = cmp.getWrapper();\n * wrapper.set('style', {'background-color': 'red'});\n * wrapper.set('attributes', {'title': 'Hello!'});\n */\n getWrapper() {\n return this.getComponent();\n },\n\n /**\n * Returns wrapper's children collection. Once you have the collection you can\n * add other Components(Models) inside. Each component can have several nested\n * components inside and you can nest them as more as you wish.\n * @return {Components} Collection of components\n * @example\n * // Let's add some component\n * var wrapperChildren = cmp.getComponents();\n * var comp1 = wrapperChildren.add({\n * style: { 'background-color': 'red'}\n * });\n * var comp2 = wrapperChildren.add({\n * tagName: 'span',\n * attributes: { title: 'Hello!'}\n * });\n * // Now let's add an other one inside first component\n * // First we have to get the collection inside. Each\n * // component has 'components' property\n * var comp1Children = comp1.get('components');\n * // Procede as before. You could also add multiple objects\n * comp1Children.add([\n * { style: { 'background-color': 'blue'}},\n * { style: { height: '100px', width: '100px'}}\n * ]);\n * // Remove comp2\n * wrapperChildren.remove(comp2);\n */\n getComponents() {\n const wrp = this.getWrapper();\n return wrp && wrp.get('components');\n },\n\n /**\n * Add new components to the wrapper's children. It's the same\n * as 'cmp.getComponents().add(...)'\n * @param {Object|Component|Array} component Component/s to add\n * @param {string} [component.tagName='div'] Tag name\n * @param {string} [component.type=''] Type of the component. Available: ''(default), 'text', 'image'\n * @param {boolean} [component.removable=true] If component is removable\n * @param {boolean} [component.draggable=true] If is possible to move the component around the structure\n * @param {boolean} [component.droppable=true] If is possible to drop inside other components\n * @param {boolean} [component.badgable=true] If the badge is visible when the component is selected\n * @param {boolean} [component.stylable=true] If is possible to style component\n * @param {boolean} [component.copyable=true] If is possible to copy&paste the component\n * @param {string} [component.content=''] String inside component\n * @param {Object} [component.style={}] Style object\n * @param {Object} [component.attributes={}] Attribute object\n * @param {Object} opt the options object to be used by the [Components.add]{@link getComponents} method\n * @return {Component|Array} Component/s added\n * @example\n * // Example of a new component with some extra property\n * var comp1 = cmp.addComponent({\n * tagName: 'div',\n * removable: true, // Can't remove it\n * draggable: true, // Can't move it\n * copyable: true, // Disable copy/past\n * content: 'Content text', // Text inside component\n * style: { color: 'red'},\n * attributes: { title: 'here' }\n * });\n */\n addComponent(component, opt = {}) {\n return this.getComponents().add(component, opt);\n },\n\n /**\n * Render and returns wrapper element with all components inside.\n * Once the wrapper is rendered, and it's what happens when you init the editor,\n * the all new components will be added automatically and property changes are all\n * updated immediately\n * @return {HTMLElement}\n */\n render() {\n return componentView.render().el;\n },\n\n /**\n * Remove all components\n * @return {this}\n */\n clear(opts = {}) {\n this.getComponents()\n .map(i => i)\n .forEach(i => i.remove(opts));\n return this;\n },\n\n /**\n * Set components\n * @param {Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the {@link addComponent} method\n * @return {this}\n * @private\n */\n setComponents(components, opt = {}) {\n this.clear(opt).addComponent(components, opt);\n },\n\n /**\n * Add new component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @param {Object} methods Component methods\n * @return {this}\n */\n addType(type, methods) {\n const { em } = this;\n const { model = {}, view = {}, isComponent, extend, extendView, extendFn = [], extendFnView = [] } = methods;\n const compType = this.getType(type);\n const extendType = this.getType(extend);\n const extendViewType = this.getType(extendView);\n const typeToExtend = extendType ? extendType : compType ? compType : this.getType('default');\n const modelToExt = typeToExtend.model;\n const viewToExt = extendViewType ? extendViewType.view : typeToExtend.view;\n\n // Function for extending source object methods\n const getExtendedObj = (fns, target, srcToExt) =>\n fns.reduce((res, next) => {\n const fn = target[next];\n const parentFn = srcToExt.prototype[next];\n if (fn && parentFn) {\n res[next] = function (...args) {\n parentFn.bind(this)(...args);\n fn.bind(this)(...args);\n };\n }\n return res;\n }, {});\n\n // If the model/view is a simple object I need to extend it\n if (typeof model === 'object') {\n methods.model = modelToExt.extend(\n {\n ...model,\n ...getExtendedObj(extendFn, model, modelToExt),\n defaults: {\n ...(result(modelToExt.prototype, 'defaults') || {}),\n ...(result(model, 'defaults') || {}),\n },\n },\n {\n isComponent: compType && !extendType && !isComponent ? modelToExt.isComponent : isComponent || (() => 0),\n }\n );\n }\n\n if (typeof view === 'object') {\n methods.view = viewToExt.extend({\n ...view,\n ...getExtendedObj(extendFnView, view, viewToExt),\n });\n }\n\n if (compType) {\n compType.model = methods.model;\n compType.view = methods.view;\n } else {\n methods.id = type;\n componentTypes.unshift(methods);\n }\n\n const event = `component:type:${compType ? 'update' : 'add'}`;\n em && em.trigger(event, compType || methods);\n\n return this;\n },\n\n /**\n * Get component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @return {Object} Component type definition, eg. `{ model: ..., view: ... }`\n */\n getType(type) {\n var df = componentTypes;\n\n for (var it = 0; it < df.length; it++) {\n var dfId = df[it].id;\n if (dfId == type) {\n return df[it];\n }\n }\n return;\n },\n\n /**\n * Remove component type\n * @param {string} type Component ID\n * @returns {Object|undefined} Removed component type, undefined otherwise\n */\n removeType(id) {\n const df = componentTypes;\n const type = this.getType(id);\n if (!type) return;\n const index = df.indexOf(type);\n df.splice(index, 1);\n return type;\n },\n\n /**\n * Return the array of all types\n * @return {Array}\n */\n getTypes() {\n return componentTypes;\n },\n\n selectAdd(component, opts = {}) {\n if (component) {\n component.set({\n status: 'selected',\n });\n ['component:selected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n selectRemove(component, opts = {}) {\n if (component) {\n const { em } = this;\n component.set({\n status: '',\n state: '',\n });\n ['component:deselected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n /**\n * Triggered when the component is hovered\n * @private\n */\n componentHovered() {\n const em = c.em;\n const model = em.get('componentHovered');\n const previous = em.previous('componentHovered');\n const state = 'hovered';\n\n // Deselect the previous component\n previous &&\n previous.get('status') == state &&\n previous.set({\n status: '',\n state: '',\n });\n\n model && isEmpty(model.get('status')) && model.set('status', state);\n },\n\n getShallowWrapper() {\n let { shallow, em } = this;\n\n if (!shallow && em) {\n const shallowEm = em.get('shallow');\n if (!shallowEm) return;\n const domc = shallowEm.get('DomComponents');\n domc.componentTypes = this.componentTypes;\n shallow = domc.getWrapper();\n if (shallow) {\n const events = [keyUpdate, keyUpdateInside].join(' ');\n shallow.on(\n events,\n debounce(() => shallow.components(''), 100)\n );\n }\n this.shallow = shallow;\n }\n\n return shallow;\n },\n\n /**\n * Check if the component can be moved inside another.\n * @param {[Component]} target The target Component is the one that is supposed to receive the source one.\n * @param {[Component]|String} source The source can be another Component or an HTML string.\n * @param {Number} [index] Index position. If not specified, the check will perform against appending the source to target.\n * @returns {Object} Object containing the `result` (Boolean), `source`, `target` (as Components), and a `reason` (Number) with these meanings:\n * * `0` - Invalid source. This is a default value and should be ignored in case the `result` is true.\n * * `1` - Source doesn't accept target as destination.\n * * `2` - Target doesn't accept source.\n * @private\n */\n canMove(target, source, index) {\n const at = index || index === 0 ? index : null;\n const result = {\n result: false,\n reason: 0,\n target,\n source: null,\n };\n\n if (!source) return result;\n\n let srcModel = source?.toHTML ? source : null;\n\n if (!srcModel) {\n const wrapper = this.getShallowWrapper();\n srcModel = wrapper?.append(source)[0];\n }\n\n result.source = srcModel;\n\n if (!srcModel) return result;\n\n // Check if the source is draggable in the target\n let draggable = srcModel.get('draggable');\n\n if (isFunction(draggable)) {\n draggable = !!draggable(srcModel, target, at);\n } else {\n const el = target.getEl();\n draggable = isArray(draggable) ? draggable.join(',') : draggable;\n draggable = isString(draggable) ? el?.matches(draggable) : draggable;\n }\n\n if (!draggable) return { ...result, reason: 1 };\n\n // Check if the target accepts the source\n let droppable = target.get('droppable');\n\n if (isFunction(droppable)) {\n droppable = !!droppable(srcModel, target, at);\n } else {\n if (droppable === false && target.isInstanceOf('text') && srcModel.get('textable')) {\n droppable = true;\n } else {\n const el = srcModel.getEl();\n droppable = isArray(droppable) ? droppable.join(',') : droppable;\n droppable = isString(droppable) ? el?.matches(droppable) : droppable;\n }\n }\n\n if (!droppable) return { ...result, reason: 2 };\n\n return { ...result, result: true };\n },\n\n allById() {\n return componentsById;\n },\n\n getById(id) {\n return componentsById[id] || null;\n },\n\n destroy() {\n const all = this.allById();\n Object.keys(all).forEach(id => all[id] && all[id].remove());\n componentView && componentView.remove();\n [c, em, componentsById, component, componentView].forEach(i => (i = {}));\n this.em = {};\n },\n };\n};\n","import { isUndefined } from 'underscore';\nimport { Model } from '../../common';\n\n/**\n * @typedef Trait\n * @property {String} id Trait id, eg. `my-trait-id`.\n * @property {String} type Trait type, defines how the trait should rendered. Possible values: `text` (default), `number`, `select`, `checkbox`, `color`, `button`\n * @property {String} label The trait label to show for the rendered trait.\n * @property {String} name The name of the trait used as a key for the attribute/property. By default, the name is used as attribute name or property in case `changeProp` in enabled.\n * @property {Boolean} changeProp If `true` the trait value is applied on component\n *\n */\nexport default class Trait extends Model {\n initialize() {\n const { target, name, changeProp } = this.attributes;\n !this.get('id') && this.set('id', name);\n\n if (target) {\n this.target = target;\n this.unset('target');\n const targetEvent = changeProp ? `change:${name}` : `change:attributes:${name}`;\n this.listenTo(target, targetEvent, this.targetUpdated);\n }\n }\n\n /**\n * Get the trait id.\n * @returns {String}\n */\n getId() {\n return this.get('id');\n }\n\n /**\n * Get the trait type.\n * @returns {String}\n */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get the trait name.\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Get the trait label.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.locale=true] Use the locale string from i18n module.\n * @returns {String}\n */\n getLabel(opts = {}) {\n const { locale = true } = opts;\n const id = this.getId();\n const name = this.get('label') || this.getName();\n return (locale && this.em?.t(`traitManager.traits.labels.${id}`)) || name;\n }\n\n /**\n * Get the trait value.\n * The value is taken from component attributes by default or from properties if the trait has the `changeProp` enabled.\n * @returns {any}\n */\n getValue() {\n return this.getTargetValue();\n }\n\n /**\n * Update the trait value.\n * The value is applied on component attributes by default or on properties if the trait has the `changeProp` enabled.\n * @param {any} value Value of the trait.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.partial] If `true` the update won't be considered complete (not stored in UndoManager).\n */\n setValue(value, opts = {}) {\n const valueOpts = {};\n\n if (opts.partial) {\n valueOpts.avoidStore = true;\n }\n\n this.setTargetValue(value, valueOpts);\n\n if (opts.partial === false) {\n this.setTargetValue('');\n this.setTargetValue(value);\n }\n }\n\n props() {\n return this.attributes;\n }\n\n targetUpdated() {\n const value = this.getTargetValue();\n this.set({ value }, { fromTarget: 1 });\n this.em?.trigger('trait:update', {\n trait: this,\n component: this.target,\n });\n }\n\n getTargetValue() {\n const name = this.get('name');\n const target = this.target;\n let value;\n\n if (this.get('changeProp')) {\n value = target.get(name);\n } else {\n value = target.getAttributes()[name];\n }\n\n return !isUndefined(value) ? value : '';\n }\n\n setTargetValue(value, opts = {}) {\n const target = this.target;\n const name = this.get('name');\n if (isUndefined(value)) return;\n let valueToSet = value;\n\n if (value === 'false') {\n valueToSet = false;\n } else if (value === 'true') {\n valueToSet = true;\n }\n\n if (this.get('changeProp')) {\n target.set(name, valueToSet, opts);\n } else {\n const attrs = { ...target.get('attributes') };\n attrs[name] = valueToSet;\n target.set('attributes', attrs, opts);\n }\n }\n\n setValueFromInput(value, final = 1, opts = {}) {\n const toSet = { value };\n this.set(toSet, { ...opts, avoidStore: 1 });\n\n // Have to trigger the change\n if (final) {\n this.set('value', '', opts);\n this.set(toSet, opts);\n }\n }\n\n getInitValue() {\n const target = this.target;\n const name = this.get('name');\n let value;\n\n if (target) {\n const attrs = target.get('attributes');\n value = this.get('changeProp') ? target.get(name) : attrs[name];\n }\n\n return value || this.get('value') || this.get('default');\n }\n}\n\nTrait.prototype.defaults = {\n type: 'text',\n label: '',\n name: '',\n min: '',\n max: '',\n unit: '',\n step: 1,\n value: '',\n target: '',\n default: '',\n placeholder: '',\n changeProp: 0,\n options: [],\n};\n","import { isString, isArray } from 'underscore';\nimport { Collection } from '../../common';\nimport Trait from './Trait';\nimport TraitFactory from './TraitFactory';\n\nexport default class Traits extends Collection {\n initialize(coll, options = {}) {\n this.em = options.em;\n this.listenTo(this, 'add', this.handleAdd);\n this.listenTo(this, 'reset', this.handleReset);\n }\n\n handleReset(coll, { previousModels = [] } = {}) {\n previousModels.forEach(model => model.trigger('remove'));\n }\n\n handleAdd(model) {\n model.em = this.em;\n const target = this.target;\n\n if (target) {\n model.target = target;\n }\n }\n\n setTarget(target) {\n this.target = target;\n }\n\n add(models, opt) {\n const em = this.em;\n\n // Use TraitFactory if necessary\n if (isString(models) || isArray(models)) {\n const tm = em && em.get && em.get('TraitManager');\n const tmOpts = tm && tm.getConfig();\n const tf = TraitFactory(tmOpts);\n\n if (isString(models)) {\n models = [models];\n }\n\n for (var i = 0, len = models.length; i < len; i++) {\n const str = models[i];\n const model = isString(str) ? tf.build(str)[0] : str;\n model.target = this.target;\n models[i] = model;\n }\n }\n\n return Collection.prototype.add.apply(this, [models, opt]);\n }\n}\n\nTraits.prototype.model = Trait;\n","export default (config = {}) => ({\n /**\n * Build props object by their name\n * @param {Array|string} props Array of properties name\n * @return {Array}\n */\n build(props) {\n const objs = [];\n\n if (typeof props === 'string') props = [props];\n\n for (let i = 0; i < props.length; i++) {\n const obj = {};\n const prop = props[i];\n obj.name = prop;\n\n switch (prop) {\n case 'target':\n obj.type = 'select';\n obj.default = false;\n obj.options = config.optionsTarget;\n break;\n }\n\n objs.push(obj);\n }\n\n return objs;\n }\n});\n","import {\n isUndefined,\n isFunction,\n isArray,\n isEmpty,\n isBoolean,\n has,\n isString,\n forEach,\n result,\n bindAll,\n keys,\n} from 'underscore';\nimport { shallowDiff, capitalize, isEmptyObj, isObject, toLowerCase } from 'utils/mixins';\nimport Styleable from 'domain_abstract/model/Styleable';\nimport { Model } from 'backbone';\nimport Components from './Components';\nimport Selector from 'selector_manager/model/Selector';\nimport Selectors from 'selector_manager/model/Selectors';\nimport Traits from 'trait_manager/model/Traits';\n\nconst escapeRegExp = str => {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\nconst avoidInline = em => em && em.getConfig('avoidInlineStyle');\n\nexport const eventDrag = 'component:drag';\nexport const keySymbols = '__symbols';\nexport const keySymbol = '__symbol';\nexport const keySymbolOvrd = '__symbol_ovrd';\nexport const keyUpdate = 'component:update';\nexport const keyUpdateInside = `${keyUpdate}-inside`;\n\n/**\n * The Component object represents a single node of our template structure, so when you update its properties the changes are\n * immediately reflected on the canvas and in the code to export (indeed, when you ask to export the code we just go through all\n * the tree of nodes).\n * An example on how to update properties:\n * ```js\n * component.set({\n * tagName: 'span',\n * attributes: { ... },\n * removable: false,\n * });\n * component.get('tagName');\n * // -> 'span'\n * ```\n *\n * [Component]: component.html\n *\n * @typedef Component\n * @property {String} [type=''] Component type, eg. `text`, `image`, `video`, etc.\n * @property {String} [tagName='div'] HTML tag of the component, eg. `span`. Default: `div`\n * @property {Object} [attributes={}] Key-value object of the component's attributes, eg. `{ title: 'Hello' }` Default: `{}`\n * @property {String} [name=''] Name of the component. Will be used, for example, in Layers and badges\n * @property {Boolean} [removable=true] When `true` the component is removable from the canvas, default: `true`\n * @property {Boolean|String|Function} [draggable=true] Indicates if it's possible to drag the component inside others.\n * You can also specify a query string to indentify elements,\n * eg. `'.some-class[title=Hello], [data-gjs-type=column]'` means you can drag the component only inside elements\n * containing `some-class` class and `Hello` title, and `column` components. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drag is possible. Default: `true`\n * @property {Boolean|String|Function} [droppable=true] Indicates if it's possible to drop other components inside. You can use\n * a query string as with `draggable`. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drop is possible. Default: `true`\n * @property {Boolean} [badgable=true] Set to false if you don't want to see the badge (with the name) over the component. Default: `true`\n * @property {Boolean|Array} [stylable=true] True if it's possible to style the component.\n * You can also indicate an array of CSS properties which is possible to style, eg. `['color', 'width']`, all other properties\n * will be hidden from the style manager. Default: `true`\n * @property {Array} [stylable-require=[]] Indicate an array of style properties to show up which has been marked as `toRequire`. Default: `[]`\n * @property {Array} [unstylable=[]] Indicate an array of style properties which should be hidden from the style manager. Default: `[]`\n * @property {Boolean} [highlightable=true] It can be highlighted with 'dotted' borders if true. Default: `true`\n * @property {Boolean} [copyable=true] True if it's possible to clone the component. Default: `true`\n * @property {Boolean} [resizable=false] Indicates if it's possible to resize the component. It's also possible to pass an object as [options for the Resizer](https://github.com/artf/grapesjs/blob/master/src/utils/Resizer.js). Default: `false`\n * @property {Boolean} [editable=false] Allow to edit the content of the component (used on Text components). Default: `false`\n * @property {Boolean} [layerable=true] Set to `false` if you need to hide the component inside Layers. Default: `true`\n * @property {Boolean} [selectable=true] Allow component to be selected when clicked. Default: `true`\n * @property {Boolean} [hoverable=true] Shows a highlight outline when hovering on the element if `true`. Default: `true`\n * @property {Boolean} [void=false] This property is used by the HTML exporter as void elements don't have closing tags, eg. `
`, `
`, etc. Default: `false`\n * @property {Object} [style={}] Component default style, eg. `{ width: '100px', height: '100px', 'background-color': 'red' }`\n * @property {String} [styles=''] Component related styles, eg. `.my-component-class { color: red }`\n * @property {String} [content=''] Content of the component (not escaped) which will be appended before children rendering. Default: `''`\n * @property {String} [icon=''] Component's icon, this string will be inserted before the name (in Layers and badge), eg. it can be an HTML string ''. Default: `''`\n * @property {String|Function} [script=''] Component's javascript. More about it [here](/modules/Components-js.html). Default: `''`\n * @property {String|Function} [script-export=''] You can specify javascript available only in export functions (eg. when you get the HTML).\n * If this property is defined it will overwrite the `script` one (in export functions). Default: `''`\n * @property {Array} [traits=''] Component's traits. More about it [here](/modules/Traits.html). Default: `['id', 'title']`\n * @property {Array} [propagate=[]] Indicates an array of properties which will be inhereted by all NEW appended children.\n * For example if you create a component likes this: `{ removable: false, draggable: false, propagate: ['removable', 'draggable'] }`\n * and append some new component inside, the new added component will get the exact same properties indicated in the `propagate` array (and the `propagate` property itself). Default: `[]`\n * @property {Array} [toolbar=null] Set an array of items to show up inside the toolbar when the component is selected (move, clone, delete).\n * Eg. `toolbar: [ { attributes: {class: 'fa fa-arrows'}, command: 'tlb-move' }, ... ]`.\n * By default, when `toolbar` property is falsy the editor will add automatically commands `core:component-exit` (select parent component, added if there is one), `tlb-move` (added if `draggable`) , `tlb-clone` (added if `copyable`), `tlb-delete` (added if `removable`).\n * @property {Collection} [components=null] Children components. Default: `null`\n */\nexport default class Component extends Model.extend(Styleable) {\n /**\n * Hook method, called once the model is created\n */\n init() {}\n\n /**\n * Hook method, called when the model has been updated (eg. updated some model's property)\n * @param {String} property Property name, if triggered after some property update\n * @param {*} value Property value, if triggered after some property update\n * @param {*} previous Property previous value, if triggered after some property update\n */\n updated(property, value, previous) {}\n\n /**\n * Hook method, called once the model has been removed\n */\n removed() {}\n\n initialize(props = {}, opt = {}) {\n bindAll(this, '__upSymbProps', '__upSymbCls', '__upSymbComps');\n const em = opt.em;\n\n // Propagate properties from parent if indicated\n const parent = this.parent();\n const parentAttr = parent && parent.attributes;\n const propagate = this.get('propagate');\n propagate && this.set('propagate', isArray(propagate) ? propagate : [propagate]);\n\n if (parentAttr && parentAttr.propagate && !propagate) {\n const newAttr = {};\n const toPropagate = parentAttr.propagate;\n toPropagate.forEach(prop => (newAttr[prop] = parent.get(prop)));\n newAttr.propagate = toPropagate;\n this.set({ ...newAttr, ...props });\n }\n\n // Check void elements\n if (opt && opt.config && opt.config.voidElements.indexOf(this.get('tagName')) >= 0) {\n this.set('void', true);\n }\n\n opt.em = em;\n this.opt = opt;\n this.em = em;\n this.frame = opt.frame;\n this.config = opt.config || {};\n this.set('attributes', {\n ...(result(this, 'defaults').attributes || {}),\n ...(this.get('attributes') || {}),\n });\n this.ccid = Component.createId(this, opt);\n this.initClasses();\n this.initTraits();\n this.initComponents();\n this.initToolbar();\n this.initScriptProps();\n this.listenTo(this, 'change:script', this.scriptUpdated);\n this.listenTo(this, 'change:tagName', this.tagUpdated);\n this.listenTo(this, 'change:attributes', this.attrUpdated);\n this.listenTo(this, 'change:attributes:id', this._idUpdated);\n this.on('change:toolbar', this.__emitUpdateTlb);\n this.on('change', this.__onChange);\n this.on(keyUpdateInside, this.__propToParent);\n this.set('status', '');\n this.views = [];\n\n // Register global updates for collection properties\n ['classes', 'traits', 'components'].forEach(name => {\n const events = `add remove ${name !== 'components' ? 'change' : ''}`;\n this.listenTo(this.get(name), events.trim(), (...args) => this.emitUpdate(name, ...args));\n });\n\n if (!opt.temporary) {\n // Add component styles\n const cssc = em && em.get('CssComposer');\n const { styles, type } = this.attributes;\n if (styles && cssc) {\n cssc.addCollection(styles, {}, { group: `cmp:${type}` });\n }\n\n this.__postAdd();\n this.init();\n this.__isSymbolOrInst() && this.__initSymb();\n em && em.trigger('component:create', this);\n }\n }\n\n __postAdd(opts = {}) {\n const { em } = this;\n const um = em && em.get('UndoManager');\n const comps = this.components();\n if (um && !this.__hasUm) {\n um.add(comps);\n um.add(this.getSelectors());\n this.__hasUm = 1;\n }\n opts.recursive && comps.map(c => c.__postAdd(opts));\n }\n\n __postRemove() {\n const { em } = this;\n const um = em && em.get('UndoManager');\n if (um) {\n um.remove(this.components());\n um.remove(this.getSelectors());\n delete this.__hasUm;\n }\n }\n\n __onChange(m, opts) {\n const changed = this.changedAttributes();\n ['status', 'open', 'toolbar', 'traits'].forEach(name => delete changed[name]);\n // Propagate component prop changes\n if (!isEmptyObj(changed)) {\n this.__changesUp(opts);\n this.__propSelfToParent({ component: this, changed, options: opts });\n }\n }\n\n __changesUp(opts) {\n const { em, frame } = this;\n [frame, em].forEach(md => md && md.changesUp(opts));\n }\n\n __propSelfToParent(props) {\n this.trigger(keyUpdate, props);\n this.__propToParent(props);\n }\n\n __propToParent(props) {\n const parent = this.parent();\n parent && parent.trigger(keyUpdateInside, props);\n }\n\n __emitUpdateTlb() {\n this.emitUpdate('toolbar');\n }\n\n /**\n * Check component's type\n * @param {string} type Component type\n * @return {Boolean}\n * @example\n * component.is('image')\n * // -> false\n */\n is(type) {\n return !!(this.get('type') == type);\n }\n\n /**\n * Return all the propeties\n * @returns {Object}\n */\n props() {\n return this.attributes;\n }\n\n /**\n * Get the index of the component in the parent collection.\n * @return {Number}\n */\n index() {\n const { collection } = this;\n return collection ? collection.indexOf(this) : 0;\n }\n\n /**\n * Change the drag mode of the component.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n /**\n * Find inner components by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {String} query Query string\n * @return {Array} Array of components\n * @example\n * component.find('div > .class');\n * // -> [Component, Component, ...]\n */\n find(query) {\n const result = [];\n const $els = this.view.$el.find(query);\n $els.each(i => {\n const $el = $els.eq(i);\n const model = $el.data('model');\n model && result.push(model);\n });\n\n return result;\n }\n\n /**\n * Find all inner components by component type.\n * The advantage of this method over `find` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Array}\n * @example\n * const allImages = component.findType('image');\n * console.log(allImages[0]) // prints the first found component\n */\n findType(type) {\n const result = [];\n const find = components =>\n components.forEach(item => {\n item.is(type) && result.push(item);\n find(item.components());\n });\n find(this.components());\n return result;\n }\n\n /**\n * Find the closest parent component by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {string} query Query string\n * @return {Component}\n * @example\n * component.closest('div.some-class');\n * // -> Component\n */\n closest(query) {\n const result = this.view.$el.closest(query);\n return result.length && result.data('model');\n }\n\n /**\n * Find the closest parent component by its type.\n * The advantage of this method over `closest` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Component} Found component, otherwise `undefined`\n * @example\n * const Section = component.closestType('section');\n * console.log(Section);\n */\n closestType(type) {\n let parent = this.parent();\n\n while (parent && !parent.is(type)) {\n parent = parent.parent();\n }\n\n return parent;\n }\n\n /**\n * The method returns a Boolean value indicating whether the passed\n * component is a descendant of a given component\n * @param {Component} component Component to check\n * @returns {Boolean}\n */\n contains(component) {\n let result = !1;\n if (!component) return result;\n const contains = components => {\n !result &&\n components.forEach(item => {\n if (item === component) result = !0;\n !result && contains(item.components());\n });\n };\n contains(this.components());\n return result;\n }\n\n /**\n * Once the tag is updated I have to rerender the element\n * @private\n */\n tagUpdated() {\n this.trigger('rerender');\n }\n\n /**\n * Replace a component with another one\n * @param {String|Component} el Component or HTML string\n * @return {Component|Array} New added component/s\n * @example\n * component.replaceWith('
Some new content
');\n * // -> Component\n */\n replaceWith(el) {\n const coll = this.collection;\n const at = coll.indexOf(this);\n coll.remove(this);\n return coll.add(el, { at });\n }\n\n /**\n * Emit changes for each updated attribute\n * @private\n */\n attrUpdated(m, v, opts = {}) {\n const attrs = this.get('attributes');\n // Handle classes\n const classes = attrs.class;\n classes && this.setClass(classes);\n delete attrs.class;\n\n // Handle style\n const style = attrs.style;\n style && this.setStyle(style);\n delete attrs.style;\n\n const attrPrev = { ...this.previous('attributes') };\n const diff = shallowDiff(attrPrev, this.get('attributes'));\n keys(diff).forEach(pr => this.trigger(`change:attributes:${pr}`, this, diff[pr], opts));\n }\n\n /**\n * Update attributes of the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.setAttributes({ id: 'test', 'data-key': 'value' });\n */\n setAttributes(attrs, opts = {}) {\n this.set('attributes', { ...attrs }, opts);\n return this;\n }\n\n /**\n * Add attributes to the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.addAttributes({ 'data-key': 'value' });\n */\n addAttributes(attrs, opts = {}) {\n return this.setAttributes(\n {\n ...this.getAttributes({ noClass: 1 }),\n ...attrs,\n },\n opts\n );\n }\n\n /**\n * Remove attributes from the component\n * @param {String|Array} attrs Array of attributes to remove\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.removeAttributes('some-attr');\n * component.removeAttributes(['some-attr1', 'some-attr2']);\n */\n removeAttributes(attrs = [], opts = {}) {\n const attrArr = Array.isArray(attrs) ? attrs : [attrs];\n const compAttr = this.getAttributes();\n attrArr.map(i => delete compAttr[i]);\n return this.setAttributes(compAttr, opts);\n }\n\n /**\n * Get the style of the component\n * @return {Object}\n */\n getStyle(options = {}, optsAdd = {}) {\n const em = this.em;\n const prop = isString(options) ? options : '';\n const opts = prop ? optsAdd : options;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const rule = cc.getIdRule(this.getId(), { state, ...opts });\n this.rule = rule;\n\n if (rule) {\n return rule.getStyle(prop);\n }\n }\n\n return Styleable.getStyle.call(this, prop);\n }\n\n /**\n * Set the style on the component\n * @param {Object} prop Key value style object\n * @return {Object}\n * @example\n * component.setStyle({ color: 'red' });\n */\n setStyle(prop = {}, opts = {}) {\n const em = this.em;\n const { opt } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opt.temporary && !opts.inline) {\n const style = this.get('style') || {};\n prop = isString(prop) ? this.parseStyle(prop) : prop;\n prop = { ...prop, ...style };\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const propOrig = this.getStyle(opts);\n this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state });\n const diff = shallowDiff(propOrig, prop);\n this.set('style', '', { silent: 1 });\n keys(diff).forEach(pr => this.trigger(`change:style:${pr}`));\n } else {\n prop = Styleable.setStyle.apply(this, arguments);\n }\n\n return prop;\n }\n\n /**\n * Return all component's attributes\n * @return {Object}\n */\n getAttributes(opts = {}) {\n const { em } = this;\n const classes = [];\n const attributes = { ...this.get('attributes') };\n const sm = em && em.get('SelectorManager');\n const id = this.getId();\n\n // Add classes\n if (!opts.noClass) {\n this.get('classes').forEach(cls => classes.push(isString(cls) ? cls : cls.get('name')));\n classes.length && (attributes.class = classes.join(' '));\n }\n\n // Add style\n if (!opts.noStyle) {\n const style = this.get('style');\n if (isObject(style) && !isEmptyObj(style)) {\n attributes.style = this.styleToString({ inline: 1 });\n }\n }\n\n // Check if we need an ID on the component\n if (!has(attributes, 'id')) {\n let addId;\n\n // If we don't rely on inline styling we have to check\n // for the ID selector\n if (avoidInline(em)) {\n addId = sm && sm.get(id, sm.Selector.TYPE_ID);\n } else if (!isEmpty(this.getStyle())) {\n addId = 1;\n }\n\n // Symbols should always have an id\n if (this.__getSymbol() || this.__getSymbols()) {\n addId = 1;\n }\n\n if (addId) {\n attributes.id = id;\n }\n }\n\n return attributes;\n }\n\n /**\n * Add classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.addClass('class1');\n * model.addClass('class1 class2');\n * model.addClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n addClass(classes) {\n const added = this.em.get('SelectorManager').addClass(classes);\n return this.get('classes').add(added);\n }\n\n /**\n * Set classes (resets current collection)\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.setClass('class1');\n * model.setClass('class1 class2');\n * model.setClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n setClass(classes) {\n this.get('classes').reset();\n return this.addClass(classes);\n }\n\n /**\n * Remove classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of removed selectors\n * @example\n * model.removeClass('class1');\n * model.removeClass('class1 class2');\n * model.removeClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n removeClass(classes) {\n const removed = [];\n classes = isArray(classes) ? classes : [classes];\n const selectors = this.get('classes');\n const type = Selector.TYPE_CLASS;\n\n classes.forEach(classe => {\n const classes = classe.split(' ');\n classes.forEach(name => {\n const selector = selectors.where({ name, type })[0];\n selector && removed.push(selectors.remove(selector));\n });\n });\n\n return removed;\n }\n\n /**\n * Returns component's classes as an array of strings\n * @return {Array}\n */\n getClasses() {\n const attr = this.getAttributes();\n const classStr = attr.class;\n return classStr ? classStr.split(' ') : [];\n }\n\n __logSymbol(type, toUp, opts = {}) {\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n if (!symbol && !symbols) return;\n this.em.log(type, { model: this, toUp, context: 'symbols', opts });\n }\n\n __initSymb() {\n if (this.__symbReady) return;\n this.on('change', this.__upSymbProps);\n this.__symbReady = 1;\n }\n\n __isSymbol() {\n return isArray(this.get(keySymbols));\n }\n\n __isSymbolOrInst() {\n return !!(this.__isSymbol() || this.get(keySymbol));\n }\n\n __isSymbolTop() {\n const parent = this.parent();\n const symb = this.__isSymbolOrInst();\n return symb && (!parent || (parent && !parent.__isSymbol() && !parent.__getSymbol()));\n }\n\n __isSymbolNested() {\n if (!this.__isSymbolOrInst() || this.__isSymbolTop()) return false;\n const symbTopSelf = (this.__isSymbol() ? this : this.__getSymbol()).__getSymbTop();\n const symbTop = this.__getSymbTop();\n const symbTopMain = symbTop.__isSymbol() ? symbTop : symbTop.__getSymbol();\n return symbTopMain !== symbTopSelf;\n }\n\n __getAllById() {\n const { em } = this;\n return em ? em.get('DomComponents').allById() : {};\n }\n\n __getSymbol() {\n let symb = this.get(keySymbol);\n if (symb && isString(symb)) {\n const ref = this.__getAllById()[symb];\n if (ref) {\n symb = ref;\n this.set(keySymbol, ref);\n } else {\n symb = 0;\n }\n }\n return symb;\n }\n\n __getSymbols() {\n let symbs = this.get(keySymbols);\n if (symbs && isArray(symbs)) {\n symbs.forEach((symb, idx) => {\n if (symb && isString(symb)) {\n symbs[idx] = this.__getAllById()[symb];\n }\n });\n symbs = symbs.filter(symb => symb && !isString(symb));\n }\n return symbs;\n }\n\n __isSymbOvrd(prop = '') {\n const ovrd = this.get(keySymbolOvrd);\n const [prp] = prop.split(':');\n const props = prop !== prp ? [prop, prp] : [prop];\n return ovrd === true || (isArray(ovrd) && props.some(p => ovrd.indexOf(p) >= 0));\n }\n\n __getSymbToUp(opts = {}) {\n let result = [];\n const { em } = this;\n const { changed } = opts;\n const symbEnabled = em && em.get('symbols');\n\n if (\n opts.fromInstance ||\n opts.noPropagate ||\n opts.fromUndo ||\n !symbEnabled ||\n // Avoid updating others if the current component has override\n (changed && this.__isSymbOvrd(changed))\n ) {\n return result;\n }\n\n const symbols = this.__getSymbols() || [];\n const symbol = this.__getSymbol();\n const all = symbol ? [symbol, ...(symbol.__getSymbols() || [])] : symbols;\n result = all\n .filter(s => s !== this)\n // Avoid updating those with override\n .filter(s => !(changed && s.__isSymbOvrd(changed)));\n\n return result;\n }\n\n __getSymbTop(opts) {\n let result = this;\n let parent = this.parent(opts);\n\n while (parent && (parent.__isSymbol() || parent.__getSymbol())) {\n result = parent;\n parent = parent.parent(opts);\n }\n\n return result;\n }\n\n __upSymbProps(m, opts = {}) {\n const changed = this.changedAttributes();\n const attrs = changed.attributes || {};\n delete changed.status;\n delete changed.open;\n delete changed[keySymbols];\n delete changed[keySymbol];\n delete changed[keySymbolOvrd];\n delete changed.attributes;\n delete attrs.id;\n if (!isEmptyObj(attrs)) changed.attributes = attrs;\n if (!isEmptyObj(changed)) {\n const toUp = this.__getSymbToUp(opts);\n // Avoid propagating overrides to other symbols\n keys(changed).map(prop => {\n if (this.__isSymbOvrd(prop)) delete changed[prop];\n });\n\n this.__logSymbol('props', toUp, { opts, changed });\n toUp.forEach(child => {\n const propsChanged = { ...changed };\n // Avoid updating those with override\n keys(propsChanged).map(prop => {\n if (child.__isSymbOvrd(prop)) delete propsChanged[prop];\n });\n child.set(propsChanged, { fromInstance: this, ...opts });\n });\n }\n }\n\n __upSymbCls(m, c, opts = {}) {\n const toUp = this.__getSymbToUp(opts);\n this.__logSymbol('classes', toUp, { opts });\n toUp.forEach(child => {\n // This will propagate the change up to __upSymbProps\n child.set('classes', this.get('classes'), { fromInstance: this });\n });\n this.__changesUp(opts);\n }\n\n __upSymbComps(m, c, o) {\n const optUp = o || c || {};\n const { fromInstance, fromUndo } = optUp;\n const toUpOpts = { fromInstance, fromUndo };\n const isTemp = m.opt.temporary;\n\n // Reset\n if (!o) {\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:reset',\n });\n this.__logSymbol('reset', toUp, { components: m.models });\n toUp.forEach(symb => {\n const newMods = m.models.map(mod => mod.clone({ symbol: 1 }));\n symb.components().reset(newMods, { fromInstance: this, ...c });\n });\n // Add\n } else if (o.add) {\n let addedInstances = [];\n const isMainSymb = !!this.__getSymbols();\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:add',\n });\n if (toUp.length) {\n const addSymb = m.__getSymbol();\n addedInstances = (addSymb ? addSymb.__getSymbols() : m.__getSymbols()) || [];\n addedInstances = [...addedInstances];\n addedInstances.push(addSymb ? addSymb : m);\n }\n !isTemp &&\n this.__logSymbol('add', toUp, {\n opts: o,\n addedInstances: addedInstances.map(c => c.cid),\n added: m.cid,\n });\n // Here, before appending a new symbol, I have to ensure there are no previously\n // created symbols (eg. used mainly when drag components around)\n toUp.forEach(symb => {\n const symbTop = symb.__getSymbTop();\n const symbPrev = addedInstances.filter(addedInst => {\n const addedTop = addedInst.__getSymbTop({ prev: 1 });\n return symbTop && addedTop && addedTop === symbTop;\n })[0];\n const toAppend = symbPrev || m.clone({ symbol: 1, symbolInv: isMainSymb });\n symb.append(toAppend, { fromInstance: this, ...o });\n });\n // Remove\n } else {\n // Remove instance reference from the symbol\n const symb = m.__getSymbol();\n symb &&\n !o.temporary &&\n symb.set(\n keySymbols,\n symb.__getSymbols().filter(i => i !== m)\n );\n\n // Propagate remove only if the component is an inner symbol\n if (!m.__isSymbolTop()) {\n const changed = 'components:remove';\n const { index } = o;\n const parent = m.parent();\n const opts = { fromInstance: m, ...o };\n const isSymbNested = m.__isSymbolNested();\n let toUpFn = symb => {\n const symbPrnt = symb.parent();\n symbPrnt && !symbPrnt.__isSymbOvrd(changed) && symb.remove(opts);\n };\n // Check if the parent allows the removing\n let toUp = !parent.__isSymbOvrd(changed) ? m.__getSymbToUp(toUpOpts) : [];\n\n if (isSymbNested) {\n toUp = parent.__getSymbToUp({ ...toUpOpts, changed });\n toUpFn = symb => {\n const toRemove = symb.components().at(index);\n toRemove && toRemove.remove({ fromInstance: parent, ...opts });\n };\n }\n\n !isTemp &&\n this.__logSymbol('remove', toUp, {\n opts: o,\n removed: m.cid,\n isSymbNested,\n });\n toUp.forEach(toUpFn);\n }\n }\n\n this.__changesUp(optUp);\n }\n\n initClasses(m, c, opts = {}) {\n const event = 'change:classes';\n const attrCls = this.get('attributes').class || [];\n const toListen = [this, event, this.initClasses];\n const cls = this.get('classes') || attrCls;\n const clsArr = isString(cls) ? cls.split(' ') : cls;\n this.stopListening(...toListen);\n const classes = this.normalizeClasses(clsArr);\n const selectors = new Selectors([]);\n this.set('classes', selectors, opts);\n selectors.add(classes);\n selectors.on('add remove reset', this.__upSymbCls);\n this.listenTo(...toListen);\n return this;\n }\n\n initComponents() {\n const event = 'change:components';\n const toListen = [this, event, this.initComponents];\n this.stopListening(...toListen);\n // Have to add components after the init, otherwise the parent\n // is not visible\n const comps = new Components(null, this.opt);\n comps.parent = this;\n const components = this.get('components');\n const addChild = !this.opt.avoidChildren;\n this.set('components', comps);\n addChild && components && comps.add(isFunction(components) ? components(this) : components, this.opt);\n comps.on('add remove reset', this.__upSymbComps);\n this.listenTo(...toListen);\n return this;\n }\n\n initTraits(changed) {\n const { em } = this;\n const event = 'change:traits';\n this.off(event, this.initTraits);\n this.__loadTraits();\n const attrs = { ...this.get('attributes') };\n const traits = this.get('traits');\n traits.each(trait => {\n if (!trait.get('changeProp')) {\n const name = trait.get('name');\n const value = trait.getInitValue();\n if (name && value) attrs[name] = value;\n }\n });\n traits.length && this.set('attributes', attrs);\n this.on(event, this.initTraits);\n changed && em && em.trigger('component:toggled');\n return this;\n }\n\n initScriptProps() {\n if (this.opt.temporary) return;\n const prop = 'script-props';\n const toListen = [`change:${prop}`, this.initScriptProps];\n this.off(...toListen);\n const prevProps = this.previous(prop) || [];\n const newProps = this.get(prop) || [];\n const prevPropsEv = prevProps.map(e => `change:${e}`).join(' ');\n const newPropsEv = newProps.map(e => `change:${e}`).join(' ');\n prevPropsEv && this.off(prevPropsEv, this.__scriptPropsChange);\n newPropsEv && this.on(newPropsEv, this.__scriptPropsChange);\n this.on(...toListen);\n }\n\n __scriptPropsChange(m, v, opts = {}) {\n if (opts.avoidStore) return;\n this.trigger('rerender');\n }\n\n /**\n * Add new component children\n * @param {Component|String} components Component to add\n * @param {Object} [opts={}] Options for the append action\n * @return {Array} Array of appended components\n * @example\n * someComponent.get('components').length // -> 0\n * const videoComponent = someComponent.append('
')[0];\n * // This will add 2 components (`video` and `div`) to your `someComponent`\n * someComponent.get('components').length // -> 2\n * // You can pass components directly\n * otherComponent.append(otherComponent2);\n * otherComponent.append([otherComponent3, otherComponent4]);\n * // append at specific index (eg. at the beginning)\n * someComponent.append(otherComponent, { at: 0 });\n */\n append(components, opts = {}) {\n const compArr = isArray(components) ? components : [components];\n const toAppend = compArr.map(comp => {\n if (isString(comp)) {\n return comp;\n } else {\n // I have to remove components from the old container before adding them to a new one\n comp.collection && comp.collection.remove(comp, { temporary: 1 });\n return comp;\n }\n });\n const result = this.components().add(toAppend, opts);\n return isArray(result) ? result : [result];\n }\n\n /**\n * Set new collection if `components` are provided, otherwise the\n * current collection is returned\n * @param {Component|String} [components] Component Definitions or HTML string\n * @param {Object} [opts={}] Options, same as in `Component.append()`\n * @returns {Collection|Array<[Component]>}\n * @example\n * // Set new collection\n * component.components('
');\n * // Get current collection\n * const collection = component.components();\n * console.log(collection.length);\n * // -> 2\n */\n components(components, opts = {}) {\n const coll = this.get('components');\n\n if (isUndefined(components)) {\n return coll;\n } else {\n coll.reset(null, opts);\n return components ? this.append(components, opts) : [];\n }\n }\n\n /**\n * If exists, returns the child component at specific index.\n * @param {Number} index Index of the component to return\n * @returns {[Component]|null}\n * @example\n * // Return first child\n * component.getChildAt(0);\n * // Return second child\n * component.getChildAt(1);\n */\n getChildAt(index) {\n return this.components().at(index || 0) || null;\n }\n\n /**\n * If exists, returns the last child component.\n * @returns {[Component]|null}\n * @example\n * const lastChild = component.getLastChild();\n */\n getLastChild() {\n const children = this.components();\n return children.at(children.length - 1) || null;\n }\n\n /**\n * Remove all inner components\n * * @return {this}\n */\n empty(opts = {}) {\n this.components().reset(null, opts);\n return this;\n }\n\n /**\n * Get the parent component, if exists\n * @return {Component|null}\n * @example\n * component.parent();\n * // -> Component\n */\n parent(opts = {}) {\n const coll = this.collection || (opts.prev && this.prevColl);\n return coll ? coll.parent : null;\n }\n\n /**\n * Script updated\n * @private\n */\n scriptUpdated() {\n this.set('scriptUpdated', 1);\n }\n\n /**\n * Init toolbar\n * @private\n */\n initToolbar() {\n const { em } = this;\n const model = this;\n const ppfx = (em && em.getConfig('stylePrefix')) || '';\n\n if (!model.get('toolbar') && em) {\n const tb = [];\n model.collection &&\n tb.push({\n label: em.getIcon('arrowUp'),\n command: ed => ed.runCommand('core:component-exit', { force: 1 }),\n });\n model.get('draggable') &&\n tb.push({\n attributes: { class: `${ppfx}no-touch-actions`, draggable: true },\n label: em.getIcon('move'),\n command: 'tlb-move',\n });\n model.get('copyable') &&\n tb.push({\n label: em.getIcon('copy'),\n command: 'tlb-clone',\n });\n model.get('removable') &&\n tb.push({\n label: em.getIcon('delete'),\n command: 'tlb-delete',\n });\n model.set('toolbar', tb);\n }\n }\n\n __loadTraits(tr, opts = {}) {\n let traitsI = tr || this.get('traits');\n\n if (!(traitsI instanceof Traits)) {\n traitsI = isFunction(traitsI) ? traitsI(this) : traitsI;\n const traits = new Traits([], this.opt);\n traits.setTarget(this);\n\n if (traitsI.length) {\n traitsI.forEach(tr => tr.attributes && delete tr.attributes.value);\n traits.add(traitsI);\n }\n\n this.set({ traits }, opts);\n }\n\n return this;\n }\n\n /**\n * Get traits.\n * @returns {Array}\n * @example\n * const traits = component.getTraits();\n * console.log(traits);\n * // [Trait, Trait, Trait, ...]\n */\n getTraits() {\n this.__loadTraits();\n return [...this.get('traits').models];\n }\n\n /**\n * Replace current collection of traits with a new one.\n * @param {Array} traits Array of trait definitions\n * @returns {Array}\n * @example\n * const traits = component.setTraits([{ type: 'checkbox', name: 'disabled'}, ...]);\n * console.log(traits);\n * // [Trait, ...]\n */\n setTraits(traits) {\n const tr = isArray(traits) ? traits : [traits];\n this.set({ traits: tr });\n return this.getTraits();\n }\n\n /**\n * Get the trait by id/name.\n * @param {String} id The `id` or `name` of the trait\n * @return {Trait|null} Trait getModelToStyle\n * @example\n * const traitTitle = component.getTrait('title');\n * traitTitle && traitTitle.set('label', 'New label');\n */\n getTrait(id) {\n return (\n this.getTraits().filter(trait => {\n return trait.get('id') === id || trait.get('name') === id;\n })[0] || null\n );\n }\n\n /**\n * Update a trait.\n * @param {String} id The `id` or `name` of the trait\n * @param {Object} props Object with the props to update\n * @return {this}\n * @example\n * component.updateTrait('title', {\n * type: 'select',\n * options: [ 'Option 1', 'Option 2' ],\n * });\n */\n updateTrait(id, props) {\n const trait = this.getTrait(id);\n trait && trait.set(props);\n this.em?.trigger('component:toggled');\n return this;\n }\n\n /**\n * Get the trait position index by id/name. Useful in case you want to\n * replace some trait, at runtime, with something else.\n * @param {String} id The `id` or `name` of the trait\n * @return {Number} Index position of the current trait\n * @example\n * const traitTitle = component.getTraitIndex('title');\n * console.log(traitTitle); // 1\n */\n getTraitIndex(id) {\n const trait = this.getTrait(id);\n return trait ? this.get('traits').indexOf(trait) : -1;\n }\n\n /**\n * Remove trait/s by id/s.\n * @param {String|Array} id The `id`/`name` of the trait (or an array)\n * @return {Array} Array of removed traits\n * @example\n * component.removeTrait('title');\n * component.removeTrait(['title', 'id']);\n */\n removeTrait(id) {\n const ids = isArray(id) ? id : [id];\n const toRemove = ids.map(id => this.getTrait(id));\n const traits = this.get('traits');\n const removed = toRemove.length ? traits.remove(toRemove) : [];\n this.em?.trigger('component:toggled');\n return isArray(removed) ? removed : [removed];\n }\n\n /**\n * Add new trait/s.\n * @param {String|Object|Array} trait Trait to add (or an array of traits)\n * @param {Options} opts Options for the add\n * @return {Array} Array of added traits\n * @example\n * component.addTrait('title', { at: 1 }); // Add title trait (`at` option is the position index)\n * component.addTrait({\n * type: 'checkbox',\n * name: 'disabled',\n * });\n * component.addTrait(['title', {...}, ...]);\n */\n addTrait(trait, opts = {}) {\n this.__loadTraits();\n const added = this.get('traits').add(trait, opts);\n this.em?.trigger('component:toggled');\n return isArray(added) ? added : [added];\n }\n\n /**\n * Normalize input classes from array to array of objects\n * @param {Array} arr\n * @return {Array}\n * @private\n */\n normalizeClasses(arr) {\n const res = [];\n const { em } = this;\n const clm = em && em.get('SelectorManager');\n if (!clm) return;\n if (arr.models) return [...arr.models];\n arr.forEach(val => res.push(clm.add(val)));\n return res;\n }\n\n /**\n * Override original clone method\n * @private\n */\n clone(opt = {}) {\n const em = this.em;\n const attr = { ...this.attributes };\n const opts = { ...this.opt };\n const id = this.getId();\n const cssc = em && em.get('CssComposer');\n attr.attributes = { ...attr.attributes };\n delete attr.attributes.id;\n attr.components = [];\n attr.classes = [];\n attr.traits = [];\n\n if (this.__isSymbolTop()) {\n opt.symbol = 1;\n }\n\n this.get('components').each((md, i) => {\n attr.components[i] = md.clone({ ...opt, _inner: 1 });\n });\n this.get('traits').each((md, i) => {\n attr.traits[i] = md.clone();\n });\n this.get('classes').each((md, i) => {\n attr.classes[i] = md.get('name');\n });\n\n attr.status = '';\n opts.collection = null;\n\n const cloned = new this.constructor(attr, opts);\n\n // Clone component specific rules\n const newId = `#${cloned.getId()}`;\n const rulesToClone = cssc ? cssc.getRules(`#${id}`) : [];\n rulesToClone.forEach(rule => {\n const newRule = rule.clone();\n newRule.set('selectors', [newId]);\n cssc.getAll().add(newRule);\n });\n\n // Symbols\n // If I clone an inner symbol, I have to reset it\n cloned.set(keySymbols, 0);\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n\n if (!opt.symbol && (symbol || symbols)) {\n cloned.set(keySymbol, 0);\n cloned.set(keySymbols, 0);\n } else if (symbol) {\n // Contains already a reference to a symbol\n symbol.set(keySymbols, [...symbol.__getSymbols(), cloned]);\n cloned.__initSymb();\n } else if (opt.symbol) {\n // Request to create a symbol\n if (this.__isSymbol()) {\n // Already a symbol, cloned should be an instance\n this.set(keySymbols, [...symbols, cloned]);\n cloned.set(keySymbol, this);\n cloned.__initSymb();\n } else if (opt.symbolInv) {\n // Inverted, cloned is the instance, the origin is the main symbol\n this.set(keySymbols, [cloned]);\n cloned.set(keySymbol, this);\n [this, cloned].map(i => i.__initSymb());\n } else {\n // Cloned becomes the main symbol\n cloned.set(keySymbols, [this]);\n [this, cloned].map(i => i.__initSymb());\n this.set(keySymbol, cloned);\n }\n }\n\n const event = 'component:clone';\n em && em.trigger(event, cloned);\n this.trigger(event, cloned);\n\n return cloned;\n }\n\n /**\n * Get the name of the component\n * @return {String}\n * */\n getName() {\n const { em } = this;\n const { type, tagName, name } = this.attributes;\n const defName = type || tagName;\n const nameTag = !type && tagName;\n const i18nPfx = 'domComponents.names.';\n const i18nName = name && em?.t(`${i18nPfx}${name}`);\n const i18nNameTag = nameTag && em?.t(`${i18nPfx}${nameTag}`);\n const i18nDefName = em && (em.t(`${i18nPfx}${type}`) || em.t(`${i18nPfx}${tagName}`));\n return (\n this.get('custom-name') || // Used in Layers (when the user changes the name)\n i18nName || // Use local component `name` key (eg. `domComponents.names.myComponentName`)\n name || // Use component `name` key\n i18nNameTag || // Use local component `tagName` key (eg. `domComponents.names.div`)\n capitalize(nameTag) || // Use component `tagName` key\n i18nDefName || // Use local component `type` key (eg. `domComponents.names.image`)\n capitalize(defName) // Use component `type` key\n );\n }\n\n /**\n * Get the icon string\n * @return {String}\n */\n getIcon() {\n let icon = this.get('icon');\n return icon ? icon + ' ' : '';\n }\n\n /**\n * Return HTML string of the component\n * @param {Object} [opts={}] Options\n * @param {String} [opts.tag] Custom tagName\n * @param {Object|Function} [opts.attributes=null] You can pass an object of custom attributes to replace with the current ones or you can even pass a function to generate attributes dynamically.\n * @param {Boolean} [opts.withProps] Include component properties as `data-gjs-*` attributes. This allows you to have re-importable HTML.\n * @param {Boolean} [opts.altQuoteAttr] In case the attribute value contains a `\"` char, instead of escaping it (`attr=\"value "\"`), the attribute will be quoted using single quotes (`attr='value \"'`).\n * @return {String} HTML string\n * @example\n * // Simple HTML return\n * component.set({ tagName: 'span' });\n * component.setAttributes({ title: 'Hello' });\n * component.toHTML();\n * // -> \n *\n * // Custom attributes\n * component.toHTML({ attributes: { 'data-test': 'Hello' } });\n * // -> \n *\n * // Custom dynamic attributes\n * component.toHTML({\n * attributes(component, attributes) {\n * if (component.get('tagName') == 'span') {\n * attributes.title = 'Custom attribute';\n * }\n * return attributes;\n * },\n * });\n * // -> \n */\n toHTML(opts = {}) {\n const model = this;\n const attrs = [];\n const customTag = opts.tag;\n const tag = customTag || model.get('tagName');\n const sTag = model.get('void');\n const customAttr = opts.attributes;\n let attributes = this.getAttrToHTML();\n delete opts.tag;\n\n // Get custom attributes if requested\n if (customAttr) {\n if (isFunction(customAttr)) {\n attributes = customAttr(model, attributes) || {};\n } else if (isObject(customAttr)) {\n attributes = customAttr;\n }\n }\n\n if (opts.withProps) {\n const props = this.toJSON();\n\n forEach(props, (value, key) => {\n const skipProps = ['classes', 'attributes', 'components'];\n if (key[0] !== '_' && skipProps.indexOf(key) < 0) {\n attributes[`data-gjs-${key}`] = isArray(value) || isObject(value) ? JSON.stringify(value) : value;\n }\n });\n }\n\n for (let attr in attributes) {\n const val = attributes[attr];\n\n if (!isUndefined(val) && val !== null) {\n if (isBoolean(val)) {\n val && attrs.push(attr);\n } else {\n let valueRes = '';\n if (opts.altQuoteAttr && isString(val) && val.indexOf('\"') >= 0) {\n valueRes = `'${val.replace(/'/g, ''')}'`;\n } else {\n const value = isString(val) ? val.replace(/\"/g, '"') : val;\n valueRes = `\"${value}\"`;\n }\n\n attrs.push(`${attr}=${valueRes}`);\n }\n }\n }\n\n const attrString = attrs.length ? ` ${attrs.join(' ')}` : '';\n const inner = model.getInnerHTML(opts);\n let code = `<${tag}${attrString}${sTag ? '/' : ''}>${inner}`;\n !sTag && (code += ``);\n\n return code;\n }\n\n /**\n * Get inner HTML of the component\n * @param {Object} [opts={}] Same options of `toHTML`\n * @returns {String} HTML string\n */\n getInnerHTML(opts) {\n return this.__innerHTML(opts);\n }\n\n __innerHTML(opts = {}) {\n const cmps = this.components();\n return !cmps.length ? this.get('content') : cmps.map(c => c.toHTML(opts)).join('');\n }\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML() {\n var attr = this.getAttributes();\n delete attr.style;\n return attr;\n }\n\n /**\n * Return a shallow copy of the model's attributes for JSON\n * stringification.\n * @return {Object}\n * @private\n */\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n obj.attributes = this.getAttributes();\n delete obj.attributes.class;\n delete obj.toolbar;\n delete obj.traits;\n delete obj.status;\n delete obj.open; // used in Layers\n\n if (!opts.fromUndo) {\n const symbol = obj[keySymbol];\n const symbols = obj[keySymbols];\n if (symbols && isArray(symbols)) {\n obj[keySymbols] = symbols.filter(i => i).map(i => (i.getId ? i.getId() : i));\n }\n if (symbol && !isString(symbol)) {\n obj[keySymbol] = symbol.getId();\n }\n }\n\n if (this.em.getConfig('avoidDefaults')) {\n this.getChangedProps(obj);\n }\n\n return obj;\n }\n\n /**\n * Return an object containing only changed props\n */\n getChangedProps(res) {\n const obj = res || Model.prototype.toJSON.apply(this);\n const defaults = result(this, 'defaults');\n\n forEach(defaults, (value, key) => {\n if (['type'].indexOf(key) === -1 && obj[key] === value) {\n delete obj[key];\n }\n });\n\n if (isEmpty(obj.type)) {\n delete obj.type;\n }\n\n forEach(['attributes', 'style'], prop => {\n if (isEmpty(defaults[prop]) && isEmpty(obj[prop])) {\n delete obj[prop];\n }\n });\n\n forEach(['classes', 'components'], prop => {\n if (!obj[prop] || (isEmpty(defaults[prop]) && !obj[prop].length)) {\n delete obj[prop];\n }\n });\n\n return obj;\n }\n\n /**\n * Return the component id\n * @return {String}\n */\n getId() {\n let attrs = this.get('attributes') || {};\n return attrs.id || this.ccid || this.cid;\n }\n\n /**\n * Set new id on the component\n * @param {String} id\n * @return {this}\n */\n setId(id, opts) {\n const attrs = { ...this.get('attributes') };\n attrs.id = id;\n this.set('attributes', attrs, opts);\n return this;\n }\n\n /**\n * Get the DOM element of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Specific frame from which taking the element\n * @return {HTMLElement}\n */\n getEl(frame) {\n const view = this.getView(frame);\n return view && view.el;\n }\n\n /**\n * Get the View of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Get View of a specific frame\n * @return {ComponentView}\n */\n getView(frame) {\n let { view, views } = this;\n\n if (frame) {\n view = views.filter(view => view._getFrame() === frame.view)[0];\n }\n\n return view;\n }\n\n getCurrentView() {\n const frame = (this.em.get('currentFrame') || {}).model;\n return this.getView(frame);\n }\n\n __getScriptProps() {\n const modelProps = this.props();\n const scrProps = this.get('script-props') || [];\n return scrProps.reduce((acc, prop) => {\n acc[prop] = modelProps[prop];\n return acc;\n }, {});\n }\n\n /**\n * Return script in string format, cleans 'function() {..' from scripts\n * if it's a function\n * @param {string|Function} script\n * @return {string}\n * @private\n */\n getScriptString(script) {\n let scr = script || this.get('script');\n\n if (!scr) {\n return scr;\n }\n\n if (this.get('script-props')) {\n scr = scr.toString().trim();\n } else {\n // Deprecated\n // Need to convert script functions to strings\n if (typeof scr == 'function') {\n var scrStr = scr.toString().trim();\n scrStr = scrStr.replace(/^function[\\s\\w]*\\(\\)\\s?\\{/, '').replace(/\\}$/, '');\n scr = scrStr.trim();\n }\n\n var config = this.em.getConfig();\n var tagVarStart = escapeRegExp(config.tagVarStart || '{[ ');\n var tagVarEnd = escapeRegExp(config.tagVarEnd || ' ]}');\n var reg = new RegExp(`${tagVarStart}([\\\\w\\\\d-]*)${tagVarEnd}`, 'g');\n scr = scr.replace(reg, (match, v) => {\n // If at least one match is found I have to track this change for a\n // better optimization inside JS generator\n this.scriptUpdated();\n const result = this.attributes[v] || '';\n return isArray(result) || typeof result == 'object' ? JSON.stringify(result) : result;\n });\n }\n return scr;\n }\n\n emitUpdate(property, ...args) {\n const { em } = this;\n const event = keyUpdate + (property ? `:${property}` : '');\n const item = property && this.get(property);\n property && this.updated(property, item, property && this.previous(property), ...args);\n this.trigger(event, ...args);\n em && em.trigger(event, this, ...args);\n ['components', 'classes'].indexOf(property) >= 0 &&\n this.__propSelfToParent({\n component: this,\n changed: { [property]: item },\n options: args[2] || args[1] || {},\n });\n }\n\n /**\n * Execute callback function on itself and all inner components\n * @param {Function} clb Callback function, the model is passed as an argument\n * @return {this}\n * @example\n * component.onAll(component => {\n * // do something with component\n * })\n */\n onAll(clb) {\n if (isFunction(clb)) {\n clb(this);\n this.components().forEach(model => model.onAll(clb));\n }\n return this;\n }\n\n /**\n * Remove the component\n * @return {this}\n */\n remove(opts = {}) {\n const { em } = this;\n const coll = this.collection;\n const remove = () => {\n coll && coll.remove(this, { ...opts, action: 'remove-component' });\n // Component without parent\n if (!coll) {\n this.components('', opts);\n this.components().removeChildren(this, null, opts);\n }\n };\n const rmOpts = { ...opts };\n [this, em].map(i => i.trigger('component:remove:before', this, remove, rmOpts));\n !rmOpts.abort && remove();\n return this;\n }\n\n /**\n * Move the component to another destination component\n * @param {Component} component Destination component (so the current one will be appended as a child)\n * @param {Object} opts Options for the append action\n * @returns {this}\n * @example\n * // Move the selected component on top of the wrapper\n * const dest = editor.getWrapper();\n * editor.getSelected().move(dest, { at: 0 });\n */\n move(component, opts = {}) {\n this.remove({ temporary: 1 });\n component && component.append(this, opts);\n return this;\n }\n\n /**\n * Check if the component is an instance of some component type.\n * @param {String} type Component type\n * @returns {Boolean}\n * @example\n * // Add a new component type by extending an existing one\n * editor.Components.addType('text-ext', { extend: 'text' });\n * // Append a new component somewhere\n * const newTextExt = editor.getSelected().append({ type: 'text-ext' })[0];\n * newTextExt.isInstanceOf('text-ext'); // true\n * newTextExt.isInstanceOf('text'); // true\n */\n isInstanceOf(type) {\n const cmp = this.em?.get('DomComponents').getType(type)?.model;\n\n if (!cmp) return false;\n\n return this instanceof cmp;\n }\n\n /**\n * Check if the component is a child of some other component (or component type)\n * @param {[Component]|String} component Component parent to check. In case a string is passed,\n * the check will be performed on the component type.\n * @returns {Boolean}\n * @example\n * const newTextComponent = editor.getSelected().append({\n * type: 'text',\n * components: 'My text here',\n * })[0];\n * const innerComponent = newTextComponent.find('b')[0];\n * innerComponent.isChildOf(newTextComponent); // true\n * innerComponent.isChildOf('text'); // true\n */\n isChildOf(component) {\n const byType = isString(component);\n let parent = this.parent();\n\n while (parent) {\n if (byType) {\n if (parent.isInstanceOf(component)) {\n return true;\n }\n } else {\n if (parent === component) {\n return true;\n }\n }\n\n parent = parent.parent();\n }\n\n return false;\n }\n\n /**\n * Reset id of the component and any of its style rule\n * @param {Object} [opts={}] Options\n * @return {this}\n * @private\n */\n resetId(opts = {}) {\n const { em } = this;\n const oldId = this.getId();\n if (!oldId) return;\n const newId = Component.createId(this);\n this.setId(newId);\n const rule = em && em.get('CssComposer').getIdRule(oldId);\n const selector = rule && rule.get('selectors').at(0);\n selector && selector.set('name', newId);\n return this;\n }\n\n _getStyleRule({ id } = {}) {\n const { em } = this;\n const idS = id || this.getId();\n return em && em.get('CssComposer').getIdRule(idS);\n }\n\n _getStyleSelector(opts) {\n const rule = this._getStyleRule(opts);\n return rule && rule.get('selectors').at(0);\n }\n\n _idUpdated(m, v, opts = {}) {\n if (opts.idUpdate) return;\n\n const { ccid } = this;\n const { id } = this.get('attributes') || {};\n const idPrev = (this.previous('attributes') || {}).id || ccid;\n const list = Component.getList(this);\n\n // If the ID already exists I need to rollback to the old one\n if (list[id] || (!id && idPrev)) {\n return this.setId(idPrev, { idUpdate: 1 });\n }\n\n // Remove the old ID reference and add the new one\n delete list[idPrev];\n list[id] = this;\n this.ccid = id;\n\n // Update the style selector name\n const selector = this._getStyleSelector({ id: idPrev });\n selector && selector.set({ name: id, label: id });\n }\n}\n\n/**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\nComponent.isComponent = el => {\n return { tagName: toLowerCase(el.tagName) };\n};\n\nComponent.ensureInList = model => {\n const list = Component.getList(model);\n const id = model.getId();\n const current = list[id];\n\n if (!current) {\n // Insert in list\n list[id] = model;\n } else if (current !== model) {\n // Create new ID\n const nextId = Component.getIncrementId(id, list);\n model.setId(nextId);\n list[nextId] = model;\n }\n\n model.components().forEach(i => Component.ensureInList(i));\n};\n\n/**\n * Relying simply on the number of components becomes a problem when you\n * store and load them back, you might hit collisions with new components\n * @param {Model} model\n * @return {string}\n * @private\n */\nComponent.createId = (model, opts = {}) => {\n const list = Component.getList(model);\n const { idMap = {} } = opts;\n let { id } = model.get('attributes');\n let nextId;\n\n if (id) {\n nextId = Component.getIncrementId(id, list, opts);\n model.setId(nextId);\n if (id !== nextId) idMap[id] = nextId;\n } else {\n nextId = Component.getNewId(list);\n }\n\n list[nextId] = model;\n return nextId;\n};\n\nComponent.getNewId = list => {\n const count = Object.keys(list).length;\n // Testing 1000000 components with `+ 2` returns 0 collisions\n const ilen = count.toString().length + 2;\n const uid = (Math.random() + 1.1).toString(36).slice(-ilen);\n let newId = `i${uid}`;\n\n while (list[newId]) {\n newId = Component.getNewId(list);\n }\n\n return newId;\n};\n\nComponent.getIncrementId = (id, list, opts = {}) => {\n const { keepIds = [] } = opts;\n let counter = 1;\n let newId = id;\n\n if (keepIds.indexOf(id) < 0) {\n while (list[newId]) {\n counter++;\n newId = `${id}-${counter}`;\n }\n }\n\n return newId;\n};\n\n/**\n * The list of components is taken from the Components module.\n * Initially, the list, was set statically on the Component object but it was\n * not ok, as it was shared between multiple editor instances\n * @private\n */\nComponent.getList = model => {\n const { opt = {} } = model;\n const { domc, em } = opt;\n const dm = domc || (em && em.get('DomComponents'));\n return dm ? dm.componentsById : {};\n};\n\n/**\n * This method checks, for each parsed component and style object\n * (are not Components/CSSRules yet), for duplicated id and fixes them\n * This method is used in Components.js just after the parsing\n * @private\n */\nComponent.checkId = (components, styles = [], list = {}, opts = {}) => {\n const comps = isArray(components) ? components : [components];\n const { keepIds = [] } = opts;\n comps.forEach(comp => {\n const { attributes = {}, components } = comp;\n const { id } = attributes;\n\n // Check if we have collisions with current components\n if (id && list[id] && keepIds.indexOf(id) < 0) {\n const newId = Component.getIncrementId(id, list);\n attributes.id = newId;\n // Update passed styles\n isArray(styles) &&\n styles.forEach(style => {\n const { selectors } = style;\n selectors.forEach((sel, idx) => {\n if (sel === `#${id}`) selectors[idx] = `#${newId}`;\n });\n });\n }\n\n components && Component.checkId(components, styles, list, opts);\n });\n};\n\nComponent.getDefaults = function () {\n return result(this.prototype, 'defaults');\n};\n\nComponent.prototype.defaults = {\n tagName: 'div',\n type: '',\n name: '',\n removable: true,\n draggable: true,\n droppable: true,\n badgable: true,\n stylable: true,\n 'stylable-require': '',\n 'style-signature': '',\n unstylable: '',\n highlightable: true,\n copyable: true,\n resizable: false,\n editable: false,\n layerable: true,\n selectable: true,\n hoverable: true,\n void: false,\n state: '', // Indicates if the component is in some CSS state like ':hover', ':active', etc.\n status: '', // State, eg. 'selected'\n content: '',\n icon: '',\n style: '',\n styles: '', // Component related styles\n classes: '', // Array of classes\n script: '',\n 'script-props': '',\n 'script-export': '',\n attributes: '',\n traits: ['id', 'title'],\n propagate: '',\n dmode: '',\n toolbar: null,\n [keySymbol]: 0,\n [keySymbols]: 0,\n [keySymbolOvrd]: 0,\n _undo: true,\n _undoexc: ['status', 'open'],\n};\n","import Backbone from 'backbone';\nimport { isEmpty, isArray, isString, isFunction, each, includes, extend, flatten, debounce } from 'underscore';\nimport Component, { keySymbol, keySymbols } from './Component';\n\nexport const getComponentIds = (cmp, res = []) => {\n if (!cmp) return [];\n const cmps = isArray(cmp) || isFunction(cmp.map) ? cmp : [cmp];\n cmps.map(cmp => {\n res.push(cmp.getId());\n getComponentIds(cmp.components().models, res);\n });\n return res;\n};\n\nconst getComponentsFromDefs = (items, all = {}, opts = {}) => {\n const itms = isArray(items) ? items : [items];\n\n return itms.map(item => {\n const { attributes = {}, components, tagName } = item;\n const { id } = attributes;\n let result = item;\n\n if (id && all[id]) {\n result = all[id];\n tagName && result.set({ tagName }, { ...opts, silent: true });\n }\n\n if (components) {\n const newComponents = getComponentsFromDefs(components, all);\n\n if (isFunction(result.components)) {\n const cmps = result.components();\n cmps.length > 0 && cmps.reset(newComponents, opts);\n } else {\n result.components = newComponents;\n }\n }\n\n return result;\n });\n};\n\nexport default Backbone.Collection.extend({\n initialize(models, opt = {}) {\n this.opt = opt;\n this.listenTo(this, 'add', this.onAdd);\n this.listenTo(this, 'remove', this.removeChildren);\n this.listenTo(this, 'reset', this.resetChildren);\n const { em, config } = opt;\n this.config = config;\n this.em = em;\n this.domc = opt.domc || (em && em.get('DomComponents'));\n },\n\n resetChildren(models, opts = {}) {\n const coll = this;\n const prev = opts.previousModels || [];\n const toRemove = prev.filter(prev => !models.get(prev.cid));\n const newIds = getComponentIds(models);\n opts.keepIds = getComponentIds(prev).filter(pr => newIds.indexOf(pr) >= 0);\n toRemove.forEach(md => this.removeChildren(md, coll, opts));\n models.each(model => this.onAdd(model));\n },\n\n resetFromString(input = '', opts = {}) {\n opts.keepIds = getComponentIds(this);\n const { domc } = this;\n const allByID = domc?.allById() || {};\n const parsed = this.parseString(input, opts);\n const cmps = isArray(parsed) ? parsed : [parsed];\n const newCmps = getComponentsFromDefs(cmps, allByID, opts);\n this.reset(newCmps, opts);\n this.em?.trigger('component:content', this.parent, opts, input);\n },\n\n removeChildren(removed, coll, opts = {}) {\n // Removing a parent component can cause this function\n // to be called with an already removed child element\n if (!removed) {\n return;\n }\n\n const { domc, em } = this;\n const isTemp = opts.temporary || opts.fromUndo;\n removed.prevColl = this; // This one is required for symbols\n\n if (!isTemp) {\n // Remove the component from the global list\n const id = removed.getId();\n const sels = em.get('SelectorManager').getAll();\n const rules = em.get('CssComposer').getAll();\n const canRemoveStyle = (opts.keepIds || []).indexOf(id) < 0;\n const allByID = domc ? domc.allById() : {};\n delete allByID[id];\n\n // Remove all component related styles\n const rulesRemoved = canRemoveStyle\n ? rules.remove(\n rules.filter(r => r.getSelectors().getFullString() === `#${id}`),\n opts\n )\n : [];\n\n // Clean selectors\n sels.remove(rulesRemoved.map(rule => rule.getSelectors().at(0)));\n\n if (!removed.opt.temporary) {\n em.get('Commands').run('core:component-style-clear', {\n target: removed,\n });\n removed.removed();\n removed.trigger('removed');\n em.trigger('component:remove', removed);\n }\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n }\n\n // Remove stuff registered in DomComponents.handleChanges\n const inner = removed.components();\n em.stopListening(inner);\n em.stopListening(removed);\n em.stopListening(removed.get('classes'));\n removed.__postRemove();\n },\n\n model(attrs, options) {\n const { opt } = options.collection;\n const { em } = opt;\n let model;\n const df = em.get('DomComponents').componentTypes;\n options.em = em;\n options.config = opt.config;\n options.componentTypes = df;\n options.domc = opt.domc;\n\n for (let it = 0; it < df.length; it++) {\n const dfId = df[it].id;\n if (dfId == attrs.type) {\n model = df[it].model;\n break;\n }\n }\n\n // If no model found, get the default one\n if (!model) {\n model = df[df.length - 1].model;\n em &&\n attrs.type &&\n em.logWarning(`Component type '${attrs.type}' not found`, {\n attrs,\n options,\n });\n }\n\n return new model(attrs, options);\n },\n\n parseString(value, opt = {}) {\n const { em, domc } = this;\n const cssc = em.get('CssComposer');\n const parsed = em.get('Parser').parseHtml(value);\n // We need this to avoid duplicate IDs\n Component.checkId(parsed.html, parsed.css, domc.componentsById, opt);\n\n if (parsed.css && cssc && !opt.temporary) {\n const { at, ...optsToPass } = opt;\n cssc.addCollection(parsed.css, {\n ...optsToPass,\n extend: 1,\n });\n }\n\n return parsed.html;\n },\n\n add(models, opt = {}) {\n opt.keepIds = [...(opt.keepIds || []), ...getComponentIds(opt.previousModels)];\n\n if (isString(models)) {\n models = this.parseString(models, opt);\n } else if (isArray(models)) {\n models = [...models];\n models.forEach((item, index) => {\n if (isString(item)) {\n const nodes = this.parseString(item, opt);\n models[index] = isArray(nodes) && !nodes.length ? null : nodes;\n }\n });\n }\n\n const isMult = isArray(models);\n models = (isMult ? models : [models]).filter(i => i).map(model => this.processDef(model));\n models = isMult ? flatten(models, 1) : models[0];\n\n const result = Backbone.Collection.prototype.add.apply(this, [models, opt]);\n this.__firstAdd = result;\n return result;\n },\n\n /**\n * Process component definition.\n */\n processDef(mdl) {\n // Avoid processing Models\n if (mdl.cid && mdl.ccid) return mdl;\n const { em, config = {} } = this;\n const { processor } = config;\n let model = mdl;\n\n if (processor) {\n model = { ...model }; // Avoid 'Cannot delete property ...'\n const modelPr = processor(model);\n if (modelPr) {\n each(model, (val, key) => delete model[key]);\n extend(model, modelPr);\n }\n }\n\n // React JSX preset\n if (model.$$typeof && typeof model.props == 'object') {\n model = { ...model };\n model.props = { ...model.props };\n const domc = em.get('DomComponents');\n const parser = em.get('Parser');\n const { parserHtml } = parser;\n\n each(model, (value, key) => {\n if (!includes(['props', 'type'], key)) delete model[key];\n });\n const { props } = model;\n const comps = props.children;\n delete props.children;\n delete model.props;\n const res = parserHtml.splitPropsFromAttr(props);\n model.attributes = res.attrs;\n\n if (comps) {\n model.components = comps;\n }\n if (!model.type) {\n model.type = 'textnode';\n } else if (!domc.getType(model.type)) {\n model.tagName = model.type;\n delete model.type;\n }\n\n extend(model, res.props);\n }\n\n return model;\n },\n\n onAdd(model, c, opts = {}) {\n const { domc, em } = this;\n const style = model.getStyle();\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n domc && domc.Component.ensureInList(model);\n\n if (!isEmpty(style) && !avoidInline && em && em.get && em.getConfig('forceClass') && !opts.temporary) {\n const name = model.cid;\n const rule = em.get('CssComposer').setClassRule(name, style);\n model.setStyle({});\n model.addClass(name);\n }\n\n model.__postAdd({ recursive: 1 });\n this.__onAddEnd();\n },\n\n __onAddEnd: debounce(function () {\n // TODO to check symbols on load, probably this might be removed as symbols\n // are always recovered from the model\n // const { domc } = this;\n // const allComp = (domc && domc.allById()) || {};\n // const firstAdd = this.__firstAdd;\n // const toCheck = isArray(firstAdd) ? firstAdd : [firstAdd];\n // const silent = { silent: true };\n // const onAll = comps => {\n // comps.forEach(comp => {\n // const symbol = comp.get(keySymbols);\n // const symbolOf = comp.get(keySymbol);\n // if (symbol && isArray(symbol) && isString(symbol[0])) {\n // comp.set(\n // keySymbols,\n // symbol.map(smb => allComp[smb]).filter(i => i),\n // silent\n // );\n // }\n // if (isString(symbolOf)) {\n // comp.set(keySymbol, allComp[symbolOf], silent);\n // }\n // onAll(comp.components());\n // });\n // };\n // onAll(toCheck);\n }),\n});\n","import Backbone from 'backbone';\nimport { isEmpty, each, keys } from 'underscore';\nimport Components from '../model/Components';\nimport ComponentsView from './ComponentsView';\nimport Selectors from 'selector_manager/model/Selectors';\nimport { replaceWith } from 'utils/dom';\nimport { setViewEl } from 'utils/mixins';\n\nexport default Backbone.View.extend({\n className() {\n return this.getClasses();\n },\n\n tagName() {\n return this.model.get('tagName');\n },\n\n initialize(opt = {}) {\n const model = this.model;\n const config = opt.config || {};\n const em = config.em;\n const modelOpt = model.opt || {};\n const { $el, el } = this;\n this.opts = opt;\n this.modelOpt = modelOpt;\n this.config = config;\n this.em = em || '';\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.attr = model.get('attributes');\n this.classe = this.attr.class || [];\n this.listenTo(model, 'change:style', this.updateStyle);\n this.listenTo(model, 'change:attributes', this.renderAttributes);\n this.listenTo(model, 'change:highlightable', this.updateHighlight);\n this.listenTo(model, 'change:status', this.updateStatus);\n this.listenTo(model, 'change:script rerender', this.reset);\n this.listenTo(model, 'change:content', this.updateContent);\n this.listenTo(model, 'change', this.handleChange);\n this.listenTo(model, 'active', this.onActive);\n this.listenTo(model, 'disable', this.onDisable);\n $el.data('model', model);\n setViewEl(el, this);\n model.view = this;\n this._getFrame() && model.views.push(this);\n this.initClasses();\n this.initComponents({ avoidRender: 1 });\n this.events = {\n ...this.events,\n dragstart: 'handleDragStart',\n };\n this.delegateEvents();\n !modelOpt.temporary && this.init(this._clbObj());\n },\n\n __isDraggable() {\n const { model, config } = this;\n const { draggable } = model.attributes;\n return config.draggableComponents && draggable;\n },\n\n _clbObj() {\n const { em, model, el } = this;\n return {\n editor: em && em.getEditor(),\n model,\n el,\n };\n },\n\n /**\n * Initialize callback\n */\n init() {},\n\n /**\n * Remove callback\n */\n removed() {},\n\n /**\n * Callback executed when the `active` event is triggered on component\n */\n onActive() {},\n\n /**\n * Callback executed when the `disable` event is triggered on component\n */\n onDisable() {},\n\n remove() {\n Backbone.View.prototype.remove.apply(this, arguments);\n const { model, $el } = this;\n const { views } = model;\n const frame = this._getFrame() || {};\n model.components().forEach(comp => {\n const view = comp.getView(frame.model);\n view?.remove();\n });\n this.childrenView?.remove();\n views.splice(views.indexOf(this), 1);\n this.removed(this._clbObj());\n $el.data({ model: '', collection: '', view: '' });\n // delete model.view; // Sorter relies on this property\n return this;\n },\n\n handleDragStart(event) {\n if (!this.__isDraggable()) return false;\n event.stopPropagation();\n event.preventDefault();\n this.em.get('Commands').run('tlb-move', {\n target: this.model,\n event,\n });\n },\n\n initClasses() {\n const { model } = this;\n const event = 'change:classes';\n const classes = model.get('classes');\n\n if (classes instanceof Selectors) {\n this.stopListening(model, event, this.initClasses);\n this.listenTo(model, event, this.initClasses);\n this.listenTo(classes, 'add remove change', this.updateClasses);\n classes.length && this.importClasses();\n }\n },\n\n initComponents(opts = {}) {\n const { model, $el, childrenView } = this;\n const event = 'change:components';\n const comps = model.get('components');\n const toListen = [model, event, this.initComponents];\n\n if (comps instanceof Components) {\n $el.data('collection', comps);\n childrenView && childrenView.remove();\n this.stopListening(...toListen);\n !opts.avoidRender && this.renderChildren();\n this.listenTo(...toListen);\n }\n },\n\n /**\n * Handle any property change\n * @private\n */\n handleChange() {\n const { model } = this;\n const chgArr = keys(model.changed);\n if (chgArr.length === 1 && chgArr[0] === 'status') return;\n model.emitUpdate();\n\n for (let prop in model.changed) {\n model.emitUpdate(prop);\n }\n },\n\n /**\n * Import, if possible, classes inside main container\n * @private\n * */\n importClasses() {\n var clm = this.config.em.get('SelectorManager');\n\n if (clm) {\n this.model.get('classes').each(m => {\n clm.add(m.get('name'));\n });\n }\n },\n\n /**\n * Update item on status change\n * @param {Event} e\n * @private\n * */\n updateStatus(opts = {}) {\n const { em } = this;\n const { extHl } = em ? em.get('Canvas').getConfig() : {};\n const el = this.el;\n const status = this.model.get('status');\n const ppfx = this.ppfx;\n const selectedCls = `${ppfx}selected`;\n const selectedParentCls = `${selectedCls}-parent`;\n const freezedCls = `${ppfx}freezed`;\n const hoveredCls = `${ppfx}hovered`;\n const toRemove = [selectedCls, selectedParentCls, freezedCls, hoveredCls];\n const selCls = extHl && !opts.noExtHl ? '' : selectedCls;\n this.$el.removeClass(toRemove.join(' '));\n var actualCls = el.getAttribute('class') || '';\n var cls = '';\n\n switch (status) {\n case 'selected':\n cls = `${actualCls} ${selCls}`;\n break;\n case 'selected-parent':\n cls = `${actualCls} ${selectedParentCls}`;\n break;\n case 'freezed':\n cls = `${actualCls} ${freezedCls}`;\n break;\n case 'freezed-selected':\n cls = `${actualCls} ${freezedCls} ${selCls}`;\n break;\n case 'hovered':\n cls = !opts.avoidHover ? `${actualCls} ${hoveredCls}` : '';\n break;\n }\n\n cls = cls.trim();\n cls && el.setAttribute('class', cls);\n },\n\n /**\n * Update highlight attribute\n * @private\n * */\n updateHighlight() {\n const { model } = this;\n const isTextable = model.get('textable');\n const hl = model.get('highlightable') && (isTextable || !model.isChildOf('text'));\n this.setAttribute('data-gjs-highlightable', hl ? true : '');\n },\n\n /**\n * Update style attribute\n * @private\n * */\n updateStyle(m, v, opts = {}) {\n const { model, em } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const style = model.getStyle();\n !isEmpty(style) && model.setStyle(style);\n } else {\n this.setAttribute('style', model.styleToString(opts));\n }\n },\n\n /**\n * Update classe attribute\n * @private\n * */\n updateClasses() {\n const str = this.model.get('classes').pluck('name').join(' ');\n this.setAttribute('class', str);\n\n // Regenerate status class\n this.updateStatus();\n this.onAttrUpdate();\n },\n\n /**\n * Update single attribute\n * @param {[type]} name [description]\n * @param {[type]} value [description]\n */\n setAttribute(name, value) {\n const el = this.$el;\n value ? el.attr(name, value) : el.removeAttr(name);\n },\n\n /**\n * Get classes from attributes.\n * This method is called before initialize\n *\n * @return {Array}|null\n * @private\n * */\n getClasses() {\n return this.model.getClasses().join(' ');\n },\n\n /**\n * Update attributes\n * @private\n * */\n updateAttributes() {\n const attrs = [];\n const { model, $el, el } = this;\n const { textable, type } = model.attributes;\n\n const defaultAttr = {\n id: model.getId(),\n 'data-gjs-type': type || 'default',\n ...(this.__isDraggable() && { draggable: true }),\n ...(textable && { contenteditable: 'false' }),\n };\n\n // Remove all current attributes\n each(el.attributes, attr => attrs.push(attr.nodeName));\n attrs.forEach(attr => $el.removeAttr(attr));\n this.updateStyle();\n this.updateHighlight();\n const attr = {\n ...defaultAttr,\n ...model.getAttributes(),\n };\n\n // Remove all `false` attributes\n keys(attr).forEach(key => attr[key] === false && delete attr[key]);\n\n $el.attr(attr);\n },\n\n /**\n * Update component content\n * @private\n * */\n updateContent() {\n const content = this.model.get('content');\n const hasComps = this.model.components().length;\n this.getChildrenContainer().innerHTML = hasComps ? '' : content;\n },\n\n /**\n * Prevent default helper\n * @param {Event} e\n * @private\n */\n prevDef(e) {\n e.preventDefault();\n },\n\n /**\n * Render component's script\n * @private\n */\n updateScript() {\n const { model, em } = this;\n if (!model.get('script')) return;\n em && em.get('Canvas').getCanvasView().updateScript(this);\n },\n\n /**\n * Return children container\n * Differently from a simple component where children container is the\n * component itself\n * \n * \n * \n * You could have the children container more deeper\n * \n *
\n *
\n *
\n *
\n * \n *
\n *
\n *
\n * @return HTMLElement\n * @private\n */\n getChildrenContainer() {\n var container = this.el;\n\n if (typeof this.getChildrenSelector == 'function') {\n container = this.el.querySelector(this.getChildrenSelector());\n } else if (typeof this.getTemplate == 'function') {\n // Need to find deepest first child\n }\n\n return container;\n },\n\n /**\n * This returns rect informations not affected by the canvas zoom.\n * The method `getBoundingClientRect` doesn't work here and we\n * have to take in account offsetParent\n */\n getOffsetRect() {\n const rect = {};\n const target = this.el;\n let gtop = 0;\n let gleft = 0;\n\n const assignRect = el => {\n const { offsetParent } = el;\n\n if (offsetParent) {\n gtop += offsetParent.offsetTop;\n gleft += offsetParent.offsetLeft;\n assignRect(offsetParent);\n } else {\n rect.top = target.offsetTop + gtop;\n rect.left = target.offsetLeft + gleft;\n rect.bottom = rect.top + target.offsetHeight;\n rect.right = rect.left + target.offsetWidth;\n }\n };\n assignRect(target);\n\n return rect;\n },\n\n isInViewport({ rect } = {}) {\n const { el } = this;\n const elDoc = el.ownerDocument;\n const { body } = elDoc;\n const { frameElement } = elDoc.defaultView;\n const { top, left } = rect || this.getOffsetRect();\n const frame = this._getFrame().getOffsetRect();\n\n return (\n top >= frame.scrollTop &&\n left >= frame.scrollLeft &&\n top <= frame.scrollBottom &&\n left <= frameElement.offsetWidth + body.scrollLeft\n );\n },\n\n scrollIntoView(opts = {}) {\n const rect = this.getOffsetRect();\n const isInViewport = this.isInViewport({ rect });\n\n if (!isInViewport || opts.force) {\n const { el } = this;\n\n // PATCH: scrollIntoView won't work with multiple requests from iframes\n if (opts.behavior !== 'smooth') {\n el.ownerDocument.defaultView.scrollTo(0, rect.top);\n } else {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n ...opts,\n });\n }\n }\n },\n\n /**\n * Recreate the element of the view\n */\n reset() {\n const { el } = this;\n this.el = '';\n this._ensureElement();\n this._setData();\n replaceWith(el, this.el);\n this.render();\n },\n\n _setData() {\n const { model } = this;\n const collection = model.components();\n const view = this;\n this.$el.data({ model, collection, view });\n },\n\n _getFrame() {\n return this.config.frameView;\n },\n\n /**\n * Render children components\n * @private\n */\n renderChildren() {\n this.updateContent();\n const container = this.getChildrenContainer();\n const view =\n this.childrenView ||\n new ComponentsView({\n collection: this.model.get('components'),\n config: this.config,\n componentTypes: this.opts.componentTypes,\n });\n\n view.render(container);\n this.childrenView = view;\n const childNodes = Array.prototype.slice.call(view.el.childNodes);\n\n for (var i = 0, len = childNodes.length; i < len; i++) {\n container.appendChild(childNodes.shift());\n }\n },\n\n renderAttributes() {\n this.updateAttributes();\n this.updateClasses();\n },\n\n onAttrUpdate() {},\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.renderChildren();\n this.updateScript();\n setViewEl(this.el, this);\n this.postRender();\n\n return this;\n },\n\n postRender() {\n if (!this.modelOpt.temporary) {\n this.onRender(this._clbObj());\n }\n },\n\n onRender() {},\n});\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport { removeEl } from '../../utils/dom';\n\nexport default Backbone.View.extend({\n initialize(o) {\n this.opts = o || {};\n this.config = o.config || {};\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.resetChildren);\n this.listenTo(coll, 'remove', this.removeChildren);\n },\n\n removeChildren(removed, coll, opts = {}) {\n removed.views.forEach(view => {\n if (!view) return;\n const { childrenView, scriptContainer } = view;\n childrenView && childrenView.stopListening();\n removeEl(scriptContainer);\n view.remove.apply(view);\n });\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n },\n\n /**\n * Add to collection\n * @param {Model} model\n * @param {Collection} coll\n * @param {Object} opts\n * @private\n * */\n addTo(model, coll = {}, opts = {}) {\n const em = this.config.em;\n const i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n\n if (em && !opts.temporary) {\n const triggerAdd = model => {\n em.trigger('component:add', model);\n model.components().forEach(comp => triggerAdd(comp));\n };\n triggerAdd(model);\n }\n },\n\n /**\n * Add new object to collection\n * @param {Object} Model\n * @param {Object} Fragment collection\n * @param {Integer} Index of append\n *\n * @return {Object} Object rendered\n * @private\n * */\n addToCollection(model, fragmentEl, index) {\n if (!this.compView) this.compView = require('./ComponentView').default;\n const { config, opts, em } = this;\n const fragment = fragmentEl || null;\n const { frameView = {} } = config;\n const sameFrameView = frameView.model && model.getView(frameView.model);\n const dt = opts.componentTypes || (em && em.get('DomComponents').getTypes());\n const type = model.get('type') || 'default';\n let viewObject = this.compView;\n\n for (let it = 0; it < dt.length; it++) {\n if (dt[it].id == type) {\n viewObject = dt[it].view;\n break;\n }\n }\n const view =\n sameFrameView ||\n new viewObject({\n model,\n config,\n componentTypes: dt,\n });\n let rendered;\n\n try {\n // Avoid breaking on DOM rendering (eg. invalid attribute name)\n rendered = view.render().el;\n } catch (error) {\n rendered = document.createTextNode('');\n em.logError(error);\n }\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n const parent = this.parentEl;\n const children = parent.childNodes;\n\n if (!isUndefined(index)) {\n const lastIndex = children.length == index;\n\n // If the added model is the last of collection\n // need to change the logic of append\n if (lastIndex) {\n index--;\n }\n\n // In case the added is new in the collection index will be -1\n if (lastIndex || !children.length) {\n parent.appendChild(rendered);\n } else {\n parent.insertBefore(rendered, children[index]);\n }\n } else {\n parent.appendChild(rendered);\n }\n }\n\n if (!model.opt.temporary) {\n em?.trigger('component:mount', model);\n }\n\n return rendered;\n },\n\n resetChildren(models, { previousModels = [] } = {}) {\n this.parentEl.innerHTML = '';\n previousModels.forEach(md => this.removeChildren(md, this.collection));\n models.each(model => this.addToCollection(model));\n },\n\n render(parent) {\n const el = this.el;\n const frag = document.createDocumentFragment();\n this.parentEl = parent || this.el;\n this.collection.each(model => this.addToCollection(model, frag));\n el.innerHTML = '';\n el.appendChild(frag);\n return this;\n },\n});\n","import { isString, isArray, keys, isUndefined } from 'underscore';\nimport { shallowDiff } from '../../utils/mixins';\nimport ParserHtml from '../../parser/model/ParserHtml';\n\nconst parseStyle = ParserHtml().parseStyle;\n\nexport default {\n parseStyle,\n\n /**\n * To trigger the style change event on models I have to\n * pass a new object instance\n * @param {Object} prop\n * @return {Object}\n */\n extendStyle(prop) {\n return { ...this.getStyle(), ...prop };\n },\n\n /**\n * Get style object\n * @return {Object}\n */\n getStyle(prop) {\n const style = this.get('style') || {};\n const result = { ...style };\n return prop && isString(prop) ? result[prop] : result;\n },\n\n /**\n * Set new style object\n * @param {Object|string} prop\n * @param {Object} opts\n * @return {Object} Applied properties\n */\n setStyle(prop = {}, opts = {}) {\n if (isString(prop)) {\n prop = parseStyle(prop);\n }\n\n const propOrig = this.getStyle(opts);\n const propNew = { ...prop };\n this.set('style', propNew, opts);\n const diff = shallowDiff(propOrig, propNew);\n keys(diff).forEach(pr => {\n const em = this.em;\n if (opts.noEvent) return;\n this.trigger(`change:style:${pr}`);\n if (em) {\n em.trigger(`styleable:change`, this, pr, opts);\n em.trigger(`styleable:change:${pr}`, this, pr, opts);\n }\n });\n\n return propNew;\n },\n\n /**\n * Add style property\n * @param {Object|string} prop\n * @param {string} value\n * @example\n * this.addStyle({color: 'red'});\n * this.addStyle('color', 'blue');\n */\n addStyle(prop, value = '', opts = {}) {\n if (typeof prop == 'string') {\n prop = {\n prop: value,\n };\n } else {\n opts = value || {};\n }\n\n prop = this.extendStyle(prop);\n this.setStyle(prop, opts);\n },\n\n /**\n * Remove style property\n * @param {string} prop\n */\n removeStyle(prop) {\n let style = this.getStyle();\n delete style[prop];\n this.setStyle(style);\n },\n\n /**\n * Returns string of style properties\n * @param {Object} [opts={}] Options\n * @return {String}\n */\n styleToString(opts = {}) {\n const result = [];\n const style = this.getStyle(opts);\n\n for (let prop in style) {\n const imp = opts.important;\n const important = isArray(imp) ? imp.indexOf(prop) >= 0 : imp;\n const value = `${style[prop]}${important ? ' !important' : ''}`;\n const propPrv = prop.substr(0, 2) == '__';\n value && !propPrv && result.push(`${prop}:${value};`);\n }\n\n return result.join('');\n },\n\n getSelectors() {\n return this.get('selectors') || this.get('classes');\n },\n\n getSelectorsString(opts) {\n return this.selectorsToString ? this.selectorsToString(opts) : this.getSelectors().getFullString();\n },\n\n _validate(attr, opts) {\n const { style } = attr;\n const em = this.em || opts.em;\n const onBeforeStyle = em?.get('CssComposer')?.getConfig().onBeforeStyle;\n\n if (style && onBeforeStyle) {\n const newStyle = onBeforeStyle({ ...style });\n newStyle &&\n keys(style).map(prop => {\n if (isUndefined(newStyle[prop])) delete attr.style[prop];\n });\n newStyle &&\n keys(newStyle).map(prop => {\n attr.style[prop] = newStyle[prop];\n });\n }\n\n return true;\n },\n};\n","import { isFunction } from 'underscore';\nimport { View, Model } from '../../common';\n\nexport default {\n types: [],\n\n initialize(models, opts = {}) {\n const { em } = opts;\n this.em = em;\n this.opts = opts;\n this.model = (attrs = {}, options = {}) => {\n let Model, View, type;\n\n if (attrs && attrs.type) {\n const baseType = this.getBaseType();\n type = this.getType(attrs.type);\n Model = type ? type.model : baseType.model;\n View = type ? type.view : baseType.view;\n } else {\n const typeFound = this.recognizeType(attrs);\n type = typeFound.type;\n Model = type.model;\n View = type.view;\n attrs = typeFound.attributes;\n }\n\n const model = new Model(attrs, { ...options, em });\n model.typeView = View;\n return model;\n };\n const init = this.init && this.init.bind(this);\n init && init();\n },\n\n /**\n * Recognize type by any value\n * @param {mixed} value\n * @return {Object} Found type\n */\n recognizeType(value) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n let typeFound = type.isType(value);\n typeFound = typeof typeFound == 'boolean' && typeFound ? { type: type.id } : typeFound;\n\n if (typeFound) {\n return {\n type,\n attributes: typeFound,\n };\n }\n }\n\n // If, for any reason, the type is not found it'll return the base one\n return {\n type: this.getBaseType(),\n attributes: value,\n };\n },\n\n /**\n * Returns the base type (last object in the stack)\n * @return {Object}\n */\n getBaseType() {\n const types = this.getTypes();\n return types[types.length - 1];\n },\n\n /**\n * Get types\n * @return {Array}\n */\n getTypes() {\n return this.types;\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @return {Object} Type definition\n */\n getType(id) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (type.id === id) {\n return type;\n }\n }\n },\n\n /**\n * Add new type\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n const type = this.getType(id);\n const baseType = this.getBaseType();\n const ModelInst = type ? type.model : baseType.model;\n const ViewInst = type ? type.view : baseType.view;\n let { model, view, isType } = definition;\n model = model instanceof Model || isFunction(model) ? model : ModelInst.extend(model || {});\n view = view instanceof View || isFunction(view) ? view : ViewInst.extend(view || {});\n\n // New API\n if (this.extendViewApi && !definition.model && !definition.view) {\n view = view.extend(definition);\n }\n\n if (type) {\n type.model = model;\n type.view = view;\n type.isType = isType || type.isType;\n } else {\n definition.id = id;\n definition.model = model;\n definition.view = view;\n definition.isType =\n isType ||\n function (value) {\n if (value && value.type == id) {\n return true;\n }\n };\n this.getTypes().unshift(definition);\n }\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default class Input extends Backbone.View {\n template() {\n return ``;\n }\n\n inputClass() {\n return `${this.ppfx}field`;\n }\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n }\n\n constructor(opts = {}) {\n super(opts);\n const ppfx = opts.ppfx || '';\n this.opts = opts;\n this.ppfx = ppfx;\n this.em = opts.target || {};\n !opts.onChange && this.listenTo(this.model, 'change:value', this.handleModelChange);\n }\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n }\n\n /**\n * Set value to the input element\n * @param {string} value\n */\n setValue(value) {\n const model = this.model;\n let val = value || model.get('defaults');\n const input = this.getInputEl();\n input && (input.value = val);\n }\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange(model, value, opts) {\n this.setValue(value, opts);\n }\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n const value = this.getInputEl().value;\n this.__onInputChange(value);\n this.elementUpdated();\n }\n\n __onInputChange(value) {\n this.model.set({ value }, { fromInput: 1 });\n }\n\n /**\n * Get the input element\n * @return {HTMLElement}\n */\n getInputEl() {\n if (!this.inputEl) {\n const { model, opts } = this;\n const type = opts.type || 'text';\n const plh = model.get('placeholder') || model.get('defaults') || model.get('default') || '';\n this.inputEl = $(``);\n }\n\n return this.inputEl.get(0);\n }\n\n render() {\n this.inputEl = null;\n const el = this.$el;\n el.addClass(this.inputClass());\n el.html(this.template());\n el.find(`.${this.holderClass()}`).append(this.getInputEl());\n return this;\n }\n}\n\nInput.prototype.events = {\n change: 'handleChange',\n};\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport ColorPicker from '../../utils/ColorPicker';\nimport Input from './Input';\n\nconst { $ } = Backbone;\n$ && ColorPicker($);\n\nconst getColor = color => {\n const name = color.getFormat() === 'name' && color.toName();\n const cl = color.getAlpha() == 1 ? color.toHexString() : color.toRgbString();\n return name || cl.replace(/ /g, '');\n};\n\nexport default class InputColor extends Input {\n template() {\n const ppfx = this.ppfx;\n return `\n
\n
\n
\n
\n
\n
\n `;\n }\n\n inputClass() {\n const ppfx = this.ppfx;\n return `${ppfx}field ${ppfx}field-color`;\n }\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n }\n\n remove() {\n Input.prototype.remove.apply(this, arguments);\n this.colorEl.spectrum('destroy');\n }\n\n handleChange(e) {\n e.stopPropagation();\n const { value } = e.target;\n if (isUndefined(value)) return;\n this.__onInputChange(value);\n }\n\n __onInputChange(val) {\n const { model, opts } = this;\n const { onChange } = opts;\n let value = val;\n const colorEl = this.getColorEl();\n\n // Check the color by using the ColorPicker's parser\n if (colorEl) {\n colorEl.spectrum('set', value);\n const tc = colorEl.spectrum('get');\n const color = value && getColor(tc);\n color && (value = color);\n }\n\n onChange ? onChange(value) : model.set({ value }, { fromInput: 1 });\n }\n\n /**\n * Set value to the model\n * @param {string} val\n * @param {Object} opts\n */\n setValue(val, opts = {}) {\n const { model } = this;\n const def = !isUndefined(opts.def) ? opts.def : model.get('defaults');\n const value = !isUndefined(val) ? val : !isUndefined(def) ? def : '';\n const inputEl = this.getInputEl();\n const colorEl = this.getColorEl();\n const valueClr = value != 'none' ? value : '';\n inputEl.value = value;\n colorEl.get(0).style.backgroundColor = valueClr;\n\n // This prevents from adding multiple thumbs in spectrum\n if (opts.fromTarget || (opts.fromInput && !opts.avoidStore)) {\n colorEl.spectrum('set', valueClr);\n this.noneColor = value == 'none';\n }\n }\n\n /**\n * Get the color input element\n * @return {HTMLElement}\n */\n getColorEl() {\n if (!this.colorEl) {\n const { em, model, opts } = this;\n const self = this;\n const ppfx = this.ppfx;\n const { onChange } = opts;\n\n var colorEl = $(`
`);\n var cpStyle = colorEl.get(0).style;\n var elToAppend = em && em.config ? em.config.el : '';\n var colorPickerConfig = (em && em.getConfig && em.getConfig('colorPicker')) || {};\n\n let changed = 0;\n let previousColor;\n this.$el.find(`[data-colorp-c]`).append(colorEl);\n colorEl.spectrum({\n color: model.getValue() || false,\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n palette: [],\n\n // config expanded here so that the functions below are not overridden\n ...colorPickerConfig,\n ...(model.get('colorPicker') || {}),\n\n move(color) {\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n onChange ? onChange(cl, true) : model.setValueFromInput(cl, 0);\n },\n change(color) {\n changed = 1;\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n if (onChange) {\n onChange(cl);\n } else {\n model.setValueFromInput(0, 0); // for UndoManager\n model.setValueFromInput(cl);\n }\n self.noneColor = 0;\n },\n show(color) {\n changed = 0;\n previousColor = onChange ? model.getValue({ noDefault: true }) : getColor(color);\n },\n hide(color) {\n if (!changed && (previousColor || onChange)) {\n if (self.noneColor) {\n previousColor = '';\n }\n cpStyle.backgroundColor = previousColor;\n colorEl.spectrum('set', previousColor);\n onChange ? onChange(previousColor, true) : model.setValueFromInput(previousColor, 0);\n }\n },\n });\n\n if (em && em.on) {\n this.listenTo(em, 'component:selected', () => {\n changed = 1;\n colorEl.spectrum('hide');\n });\n }\n\n this.colorEl = colorEl;\n }\n return this.colorEl;\n }\n\n render() {\n Input.prototype.render.call(this);\n // This will make the color input available on render\n this.getColorEl();\n return this;\n }\n}\n","// Without jquery I have to update few stuff\n//\n// Spectrum Colorpicker v1.8.0\n// https://github.com/bgrins/spectrum\n// Author: Brian Grinstead\n// License: MIT\nimport { hasWin } from './mixins';\n\nexport default function ($, undefined) {\n 'use strict';\n if (!hasWin()) return;\n\n var defaultOpts = {\n // Callbacks\n beforeShow: noop,\n move: noop,\n change: noop,\n show: noop,\n hide: noop,\n\n // Options\n color: false,\n flat: false,\n showInput: false,\n allowEmpty: false,\n showButtons: true,\n clickoutFiresChange: true,\n showInitial: false,\n showPalette: false,\n showPaletteOnly: false,\n hideAfterPaletteSelect: false,\n togglePaletteOnly: false,\n showSelectionPalette: true,\n localStorageKey: false,\n appendTo: 'body',\n maxSelectionSize: 7,\n cancelText: 'cancel',\n chooseText: 'choose',\n togglePaletteMoreText: 'more',\n togglePaletteLessText: 'less',\n clearText: 'Clear Color Selection',\n noColorSelectedText: 'No Color Selected',\n preferredFormat: false,\n className: '', // Deprecated - use containerClassName and replacerClassName instead.\n containerClassName: '',\n replacerClassName: '',\n showAlpha: false,\n theme: 'sp-light',\n palette: [['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00', '#008000', '#0000ff', '#4b0082', '#9400d3']],\n selectionPalette: [],\n disabled: false,\n offset: null,\n },\n spectrums = [],\n IE = !!/msie/i.exec(window.navigator.userAgent),\n rgbaSupport = (function () {\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n var elem = document.createElement('div');\n var style = elem.style;\n style.cssText = 'background-color:rgba(0,0,0,.5)';\n return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');\n })(),\n replaceInput = [\n \"
\",\n \"
\",\n \"
\",\n '
',\n ].join(''),\n markup = (function () {\n // IE does not support gradients with multiple stops, so we need to simulate\n // that for the rainbow slider with 8 divs that each have a single gradient\n var gradientFix = '';\n if (IE) {\n for (var i = 1; i <= 6; i++) {\n gradientFix += \"
\";\n }\n }\n\n return [\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"\",\n '
',\n '
',\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n '
',\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"
\",\n gradientFix,\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"\",\n '
',\n \"
\",\n \"
\",\n \"\",\n \"\",\n '
',\n '
',\n '
',\n ].join('');\n })();\n\n function paletteTemplate(p, color, className, opts) {\n var html = [];\n for (var i = 0; i < p.length; i++) {\n var current = p[i];\n if (current) {\n var tiny = tinycolor(current);\n var c = tiny.toHsl().l < 0.5 ? 'sp-thumb-el sp-thumb-dark' : 'sp-thumb-el sp-thumb-light';\n c += tinycolor.equals(color, current) ? ' sp-thumb-active' : '';\n var formattedString = tiny.toString(opts.preferredFormat || 'rgb');\n var swatchStyle = rgbaSupport ? 'background-color:' + tiny.toRgbString() : 'filter:' + tiny.toFilter();\n html.push(\n ''\n );\n } else {\n var cls = 'sp-clear-display';\n html.push(\n $('
')\n .append(\n $('').attr(\n 'title',\n opts.noColorSelectedText\n )\n )\n .html()\n );\n }\n }\n return \"
\" + html.join('') + '
';\n }\n\n function hideAll() {\n for (var i = 0; i < spectrums.length; i++) {\n if (spectrums[i]) {\n spectrums[i].hide();\n }\n }\n }\n\n function instanceOptions(o, callbackContext) {\n var opts = $.extend({}, defaultOpts, o);\n opts.callbacks = {\n move: bind(opts.move, callbackContext),\n change: bind(opts.change, callbackContext),\n show: bind(opts.show, callbackContext),\n hide: bind(opts.hide, callbackContext),\n beforeShow: bind(opts.beforeShow, callbackContext),\n };\n return opts;\n }\n\n function spectrum(element, o) {\n var opts = instanceOptions(o, element),\n flat = opts.flat,\n showSelectionPalette = opts.showSelectionPalette,\n localStorageKey = opts.localStorageKey,\n theme = opts.theme,\n callbacks = opts.callbacks,\n resize = throttle(reflow, 10),\n visible = false,\n isDragging = false,\n isDefault = true,\n dragWidth = 0,\n dragHeight = 0,\n dragHelperHeight = 0,\n slideHeight = 0,\n slideWidth = 0,\n alphaWidth = 0,\n alphaSlideHelperWidth = 0,\n slideHelperHeight = 0,\n currentHue = 0,\n currentSaturation = 0,\n currentValue = 0,\n currentAlpha = 1,\n palette = [],\n paletteArray = [],\n paletteLookup = {},\n selectionPalette = opts.selectionPalette.slice(0),\n maxSelectionSize = opts.maxSelectionSize,\n draggingClass = 'sp-dragging',\n shiftMovementDirection = null;\n\n var doc = element.ownerDocument,\n body = doc.body,\n boundElement = $(element),\n disabled = false,\n container = $(markup, doc).addClass(theme),\n pickerContainer = container.find('.sp-picker-container'),\n dragger = container.find('.sp-color'),\n dragHelper = container.find('.sp-dragger'),\n slider = container.find('.sp-hue'),\n slideHelper = container.find('.sp-slider'),\n alphaSliderInner = container.find('.sp-alpha-inner'),\n alphaSlider = container.find('.sp-alpha'),\n alphaSlideHelper = container.find('.sp-alpha-handle'),\n textInput = container.find('.sp-input'),\n paletteContainer = container.find('.sp-palette'),\n initialColorContainer = container.find('.sp-initial'),\n cancelButton = container.find('.sp-cancel'),\n clearButton = container.find('.sp-clear'),\n chooseButton = container.find('.sp-choose'),\n toggleButton = container.find('.sp-palette-toggle'),\n isInput = boundElement.is('input'),\n isInputTypeColor = isInput && boundElement.attr('type') === 'color' && inputTypeColorSupport(),\n shouldReplace = isInput && !flat,\n replacer = shouldReplace\n ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName)\n : $([]),\n offsetElement = shouldReplace ? replacer : boundElement,\n previewElement = replacer.find('.sp-preview-inner'),\n initialColor = opts.color || (isInput && boundElement.val()),\n colorOnShow = false,\n currentPreferredFormat = opts.preferredFormat,\n clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,\n isEmpty = !initialColor,\n allowEmpty = opts.allowEmpty && !isInputTypeColor;\n\n function applyOptions() {\n if (opts.showPaletteOnly) {\n opts.showPalette = true;\n }\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n\n if (opts.palette) {\n palette = opts.palette.slice(0);\n paletteArray = $.isArray(palette[0]) ? palette : [palette];\n paletteLookup = {};\n for (var i = 0; i < paletteArray.length; i++) {\n for (var j = 0; j < paletteArray[i].length; j++) {\n var rgb = tinycolor(paletteArray[i][j]).toRgbString();\n paletteLookup[rgb] = true;\n }\n }\n }\n\n container.toggleClass('sp-flat', flat);\n container.toggleClass('sp-input-disabled', !opts.showInput);\n container.toggleClass('sp-alpha-enabled', opts.showAlpha);\n container.toggleClass('sp-clear-enabled', allowEmpty);\n container.toggleClass('sp-buttons-disabled', !opts.showButtons);\n container.toggleClass('sp-palette-buttons-disabled', !opts.togglePaletteOnly);\n container.toggleClass('sp-palette-disabled', !opts.showPalette);\n container.toggleClass('sp-palette-only', opts.showPaletteOnly);\n container.toggleClass('sp-initial-disabled', !opts.showInitial);\n container.addClass(opts.className).addClass(opts.containerClassName);\n\n reflow();\n }\n\n function initialize() {\n if (IE) {\n container.find('*:not(input)').attr('unselectable', 'on');\n }\n\n applyOptions();\n\n if (shouldReplace) {\n boundElement.after(replacer).hide();\n }\n\n if (!allowEmpty) {\n clearButton.hide();\n }\n\n if (flat) {\n boundElement.after(container).hide();\n } else {\n var appendTo = opts.appendTo === 'parent' ? boundElement.parent() : $(opts.appendTo);\n if (appendTo.length !== 1) {\n appendTo = $('body');\n }\n\n appendTo.append(container);\n }\n\n updateSelectionPaletteFromStorage();\n\n offsetElement.bind('click.spectrum touchstart.spectrum', function (e) {\n if (!disabled) {\n toggle();\n }\n\n e.stopPropagation();\n\n if (!$(e.target).is('input')) {\n e.preventDefault();\n }\n });\n\n if (boundElement.is(':disabled') || opts.disabled === true) {\n disable();\n }\n\n // Prevent clicks from bubbling up to document. This would cause it to be hidden.\n container.click(stopPropagation);\n\n // Handle user typed input\n textInput.change(setFromTextInput);\n textInput.bind('paste', function () {\n setTimeout(setFromTextInput, 1);\n });\n textInput.keydown(function (e) {\n if (e.keyCode == 13) {\n setFromTextInput();\n }\n });\n\n cancelButton.text(opts.cancelText);\n cancelButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n revert();\n hide();\n });\n\n clearButton.attr('title', opts.clearText);\n clearButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n isEmpty = true;\n move();\n\n if (flat) {\n //for the flat style, this is a change event\n updateOriginalInput(true);\n }\n });\n\n chooseButton.text(opts.chooseText);\n chooseButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n if (IE && textInput.is(':focus')) {\n textInput.trigger('change');\n }\n\n if (isValid()) {\n updateOriginalInput(true);\n hide();\n }\n });\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n toggleButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n opts.showPaletteOnly = !opts.showPaletteOnly;\n\n // To make sure the Picker area is drawn on the right, next to the\n // Palette area (and not below the palette), first move the Palette\n // to the left to make space for the picker, plus 5px extra.\n // The 'applyOptions' function puts the whole container back into place\n // and takes care of the button-text and the sp-palette-only CSS class.\n if (!opts.showPaletteOnly && !flat) {\n container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));\n }\n applyOptions();\n });\n\n draggable(\n alphaSlider,\n function (dragX, dragY, e) {\n currentAlpha = dragX / alphaWidth;\n isEmpty = false;\n if (e.shiftKey) {\n currentAlpha = Math.round(currentAlpha * 10) / 10;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n slider,\n function (dragX, dragY) {\n currentHue = parseFloat(dragY / slideHeight);\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n dragger,\n function (dragX, dragY, e) {\n // shift+drag should snap the movement to either the x or y axis.\n if (!e.shiftKey) {\n shiftMovementDirection = null;\n } else if (!shiftMovementDirection) {\n var oldDragX = currentSaturation * dragWidth;\n var oldDragY = dragHeight - currentValue * dragHeight;\n var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);\n\n shiftMovementDirection = furtherFromX ? 'x' : 'y';\n }\n\n var setSaturation = !shiftMovementDirection || shiftMovementDirection === 'x';\n var setValue = !shiftMovementDirection || shiftMovementDirection === 'y';\n\n if (setSaturation) {\n currentSaturation = parseFloat(dragX / dragWidth);\n }\n if (setValue) {\n currentValue = parseFloat((dragHeight - dragY) / dragHeight);\n }\n\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n if (!!initialColor) {\n set(initialColor);\n\n // In case color was black - update the preview UI and set the format\n // since the set function will not run (default color is black).\n updateUI();\n currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).getFormat();\n\n addColorToSelectionPalette(initialColor);\n } else {\n updateUI();\n }\n\n if (flat) {\n show();\n }\n\n function paletteElementClick(e) {\n if (e.data && e.data.ignore) {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n } else {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n if (opts.hideAfterPaletteSelect) {\n updateOriginalInput(true);\n hide();\n }\n }\n\n return false;\n }\n\n var paletteEvent = IE ? 'mousedown.spectrum' : 'click.spectrum touchstart.spectrum';\n paletteContainer.delegate('.sp-thumb-el', paletteEvent, paletteElementClick);\n initialColorContainer.delegate('.sp-thumb-el:nth-child(1)', paletteEvent, { ignore: true }, paletteElementClick);\n }\n\n function updateSelectionPaletteFromStorage() {\n if (localStorageKey && window.localStorage) {\n // Migrate old palettes over to new format. May want to remove this eventually.\n try {\n var oldPalette = window.localStorage[localStorageKey].split(',#');\n if (oldPalette.length > 1) {\n delete window.localStorage[localStorageKey];\n $.each(oldPalette, function (i, c) {\n addColorToSelectionPalette(c);\n });\n }\n } catch (e) {}\n\n try {\n selectionPalette = window.localStorage[localStorageKey].split(';');\n } catch (e) {}\n }\n }\n\n function addColorToSelectionPalette(color) {\n if (showSelectionPalette) {\n var rgb = tinycolor(color).toRgbString();\n if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {\n selectionPalette.push(rgb);\n while (selectionPalette.length > maxSelectionSize) {\n selectionPalette.shift();\n }\n }\n\n if (localStorageKey && window.localStorage) {\n try {\n window.localStorage[localStorageKey] = selectionPalette.join(';');\n } catch (e) {}\n }\n }\n }\n\n function getUniqueSelectionPalette() {\n var unique = [];\n if (opts.showPalette) {\n for (var i = 0; i < selectionPalette.length; i++) {\n var rgb = tinycolor(selectionPalette[i]).toRgbString();\n\n if (!paletteLookup[rgb]) {\n unique.push(selectionPalette[i]);\n }\n }\n }\n\n return unique.reverse().slice(0, opts.maxSelectionSize);\n }\n\n function drawPalette() {\n var currentColor = get();\n\n var html = $.map(paletteArray, function (palette, i) {\n return paletteTemplate(palette, currentColor, 'sp-palette-row sp-palette-row-' + i, opts);\n });\n\n updateSelectionPaletteFromStorage();\n\n if (selectionPalette) {\n html.push(\n paletteTemplate(getUniqueSelectionPalette(), currentColor, 'sp-palette-row sp-palette-row-selection', opts)\n );\n }\n\n paletteContainer.html(html.join(''));\n }\n\n function drawInitial() {\n if (opts.showInitial) {\n var initial = colorOnShow;\n var current = get();\n initialColorContainer.html(paletteTemplate([initial, current], current, 'sp-palette-row-initial', opts));\n }\n }\n\n function dragStart() {\n if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {\n reflow();\n }\n isDragging = true;\n container.addClass(draggingClass);\n shiftMovementDirection = null;\n boundElement.trigger('dragstart.spectrum', [get()]);\n }\n\n function dragStop() {\n isDragging = false;\n container.removeClass(draggingClass);\n boundElement.trigger('dragstop.spectrum', [get()]);\n }\n\n function setFromTextInput() {\n var value = textInput.val();\n\n if ((value === null || value === '') && allowEmpty) {\n set(null);\n updateOriginalInput(true);\n } else {\n var tiny = tinycolor(value);\n if (tiny.isValid()) {\n set(tiny);\n updateOriginalInput(true);\n } else {\n textInput.addClass('sp-validation-error');\n }\n }\n }\n\n function toggle() {\n if (visible) {\n hide();\n } else {\n show();\n }\n }\n\n function show() {\n var event = $.Event('beforeShow.spectrum');\n\n if (visible) {\n reflow();\n return;\n }\n\n boundElement.trigger('beforeShow.spectrum', [get()]);\n\n if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {\n return;\n }\n\n hideAll();\n visible = true;\n\n var $doc = $(doc);\n $doc.bind('keydown.spectrum', onkeydown);\n $doc.bind('click.spectrum', clickout);\n $(window).bind('resize.spectrum', resize);\n replacer.addClass('sp-active');\n container.removeClass('sp-hidden');\n\n reflow();\n updateUI();\n\n colorOnShow = get();\n\n drawInitial();\n callbacks.show(colorOnShow);\n boundElement.trigger('show.spectrum', [colorOnShow]);\n }\n\n function onkeydown(e) {\n // Close on ESC\n if (e.keyCode === 27) {\n hide();\n }\n }\n\n function clickout(e) {\n // Return on right click.\n if (e.button == 2) {\n return;\n }\n\n // If a drag event was happening during the mouseup, don't hide\n // on click.\n if (isDragging) {\n return;\n }\n\n if (clickoutFiresChange) {\n updateOriginalInput(true);\n } else {\n revert();\n }\n hide();\n }\n\n function hide() {\n // Return if hiding is unnecessary\n if (!visible || flat) {\n return;\n }\n visible = false;\n\n $(doc).unbind('keydown.spectrum', onkeydown);\n $(doc).unbind('click.spectrum', clickout);\n $(window).unbind('resize.spectrum', resize);\n\n replacer.removeClass('sp-active');\n container.addClass('sp-hidden');\n\n callbacks.hide(get());\n boundElement.trigger('hide.spectrum', [get()]);\n }\n\n function revert() {\n set(colorOnShow, true);\n }\n\n function set(color, ignoreFormatChange) {\n if (tinycolor.equals(color, get())) {\n // Update UI just in case a validation error needs\n // to be cleared.\n updateUI();\n return;\n }\n\n var newColor, newHsv;\n if (!color && allowEmpty) {\n isEmpty = true;\n } else {\n isEmpty = false;\n isDefault = !color; // if no color is available an empty string will be passed. tinycolor will then set it to #000\n newColor = tinycolor(color);\n newHsv = newColor.toHsv();\n\n currentHue = (newHsv.h % 360) / 360;\n currentSaturation = newHsv.s;\n currentValue = newHsv.v;\n currentAlpha = newHsv.a;\n }\n updateUI();\n\n if (newColor && newColor.isValid() && !ignoreFormatChange) {\n currentPreferredFormat = opts.preferredFormat || newColor.getFormat();\n }\n }\n\n function get(opts) {\n opts = opts || {};\n\n if (allowEmpty && isEmpty) {\n return null;\n }\n\n return tinycolor.fromRatio(\n {\n h: currentHue,\n s: currentSaturation,\n v: currentValue,\n a: Math.round(currentAlpha * 100) / 100,\n },\n { format: opts.format || currentPreferredFormat }\n );\n }\n\n function isValid() {\n return !textInput.hasClass('sp-validation-error');\n }\n\n function move() {\n updateUI();\n\n callbacks.move(get());\n boundElement.trigger('move.spectrum', [get()]);\n }\n\n function updateUI() {\n textInput.removeClass('sp-validation-error');\n\n updateHelperLocations();\n\n // Update dragger background color (gradients take care of saturation and value).\n var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });\n dragger.css('background-color', flatColor.toHexString());\n\n // Get a format that alpha will be included in (hex and names ignore alpha)\n var format = currentPreferredFormat;\n if (currentAlpha < 1 && !(currentAlpha === 0 && format === 'name')) {\n if (format === 'hex' || format === 'hex3' || format === 'hex6' || format === 'name') {\n format = 'rgb';\n }\n }\n\n var realColor = get({ format: format }),\n displayColor = '';\n\n //reset background info for preview element\n previewElement.removeClass('sp-clear-display');\n previewElement.css('background-color', 'transparent');\n\n if (!realColor && allowEmpty) {\n // Update the replaced elements background with icon indicating no color selection\n previewElement.addClass('sp-clear-display');\n } else {\n var realHex = realColor.toHexString(),\n realRgb = realColor.toRgbString();\n\n // Update the replaced elements background color (with actual selected color)\n if (rgbaSupport || realColor.alpha === 1) {\n previewElement.css('background-color', realRgb);\n } else {\n previewElement.css('background-color', 'transparent');\n previewElement.css('filter', realColor.toFilter());\n }\n\n if (opts.showAlpha) {\n var rgb = realColor.toRgb();\n rgb.a = 0;\n var realAlpha = tinycolor(rgb).toRgbString();\n var gradient = 'linear-gradient(left, ' + realAlpha + ', ' + realHex + ')';\n\n if (IE) {\n alphaSliderInner.css('filter', tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));\n } else {\n alphaSliderInner.css('background', '-webkit-' + gradient);\n alphaSliderInner.css('background', '-moz-' + gradient);\n alphaSliderInner.css('background', '-ms-' + gradient);\n // Use current syntax gradient on unprefixed property.\n alphaSliderInner.css('background', 'linear-gradient(to right, ' + realAlpha + ', ' + realHex + ')');\n }\n }\n\n displayColor = realColor.toString(format);\n }\n\n // Update the text entry input as it changes happen\n if (opts.showInput) {\n textInput.val(displayColor);\n }\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n drawInitial();\n }\n\n function updateHelperLocations() {\n var s = currentSaturation;\n var v = currentValue;\n\n if (allowEmpty && isEmpty) {\n //if selected color is empty, hide the helpers\n alphaSlideHelper.hide();\n slideHelper.hide();\n dragHelper.hide();\n } else {\n //make sure helpers are visible\n alphaSlideHelper.show();\n slideHelper.show();\n dragHelper.show();\n\n // Where to show the little circle in that displays your current selected color\n var dragX = s * dragWidth;\n var dragY = dragHeight - v * dragHeight;\n dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight));\n dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight));\n dragHelper.css({\n top: dragY + 'px',\n left: dragX + 'px',\n });\n\n var alphaX = currentAlpha * alphaWidth;\n alphaSlideHelper.css({\n left: alphaX - alphaSlideHelperWidth / 2 + 'px',\n });\n\n // Where to show the bar that displays your current selected hue\n var slideY = currentHue * slideHeight;\n slideHelper.css({\n top: slideY - slideHelperHeight + 'px',\n });\n }\n }\n\n function updateOriginalInput(fireCallback) {\n var color = get(),\n displayColor = '',\n hasChanged = isDefault ? true : !tinycolor.equals(color, colorOnShow);\n\n if (color) {\n displayColor = color.toString(currentPreferredFormat);\n // Update the selection palette with the current color\n !visible && addColorToSelectionPalette(color);\n }\n\n if (isInput) {\n boundElement.val(displayColor);\n }\n\n if (fireCallback && hasChanged) {\n callbacks.change(color);\n boundElement.trigger('change', [color]);\n }\n }\n\n function reflow() {\n if (!visible) {\n return; // Calculations would be useless and wouldn't be reliable anyways\n }\n dragWidth = dragger.width();\n dragHeight = dragger.height();\n dragHelperHeight = dragHelper.height();\n slideWidth = slider.width();\n slideHeight = slider.height();\n slideHelperHeight = slideHelper.height();\n alphaWidth = alphaSlider.width();\n alphaSlideHelperWidth = alphaSlideHelper.width();\n\n if (!flat) {\n container.css('position', 'absolute');\n if (opts.offset) {\n container.offset(opts.offset);\n } else {\n container.offset(getOffset(container, offsetElement));\n }\n }\n\n updateHelperLocations();\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n boundElement.trigger('reflow.spectrum');\n }\n\n function destroy() {\n boundElement.show();\n offsetElement.unbind('click.spectrum touchstart.spectrum');\n container.remove();\n replacer.remove();\n spectrums[spect.id] = null;\n }\n\n function option(optionName, optionValue) {\n if (optionName === undefined) {\n return $.extend({}, opts);\n }\n if (optionValue === undefined) {\n return opts[optionName];\n }\n\n opts[optionName] = optionValue;\n\n if (optionName === 'preferredFormat') {\n currentPreferredFormat = opts.preferredFormat;\n }\n applyOptions();\n }\n\n function enable() {\n disabled = false;\n boundElement.attr('disabled', false);\n offsetElement.removeClass('sp-disabled');\n }\n\n function disable() {\n hide();\n disabled = true;\n boundElement.attr('disabled', true);\n offsetElement.addClass('sp-disabled');\n }\n\n function setOffset(coord) {\n opts.offset = coord;\n reflow();\n }\n\n initialize();\n\n var spect = {\n show: show,\n hide: hide,\n toggle: toggle,\n reflow: reflow,\n option: option,\n enable: enable,\n disable: disable,\n offset: setOffset,\n set: function (c) {\n set(c);\n updateOriginalInput();\n },\n get: get,\n destroy: destroy,\n container: container,\n };\n\n spect.id = spectrums.push(spect) - 1;\n\n return spect;\n }\n\n /**\n * checkOffset - get the offset below/above and left/right element depending on screen position\n * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js\n */\n function getOffset(picker, input) {\n var extraY = 0;\n var dpWidth = picker.outerWidth();\n var dpHeight = picker.outerHeight();\n var inputHeight = input.outerHeight();\n var doc = picker[0].ownerDocument;\n var docElem = doc.documentElement;\n var cW = docElem.clientWidth;\n var cH = docElem.clientHeight;\n var scL = $(doc).scrollLeft();\n var scT = $(doc).scrollTop();\n var viewWidth = cW + scL;\n var viewHeight = cH + scT;\n var offset = input.offset();\n\n offset.top += inputHeight;\n\n offset.left -= Math.min(\n offset.left,\n offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0\n );\n\n offset.top -= Math.min(\n offset.top,\n offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY\n );\n\n return offset;\n }\n\n /**\n * noop - do nothing\n */\n function noop() {}\n\n /**\n * stopPropagation - makes the code only doing this a little easier to read in line\n */\n function stopPropagation(e) {\n e.stopPropagation();\n }\n\n /**\n * Create a function bound to a given object\n * Thanks to underscore.js\n */\n function bind(func, obj) {\n var slice = Array.prototype.slice;\n var args = slice.call(arguments, 2);\n return function () {\n return func.apply(obj, args.concat(slice.call(arguments)));\n };\n }\n\n /**\n * Lightweight drag helper. Handles containment within the element, so that\n * when dragging, the x is within [0,element.width] and y is within [0,element.height]\n */\n function draggable(element, onmove, onstart, onstop) {\n onmove = onmove || function () {};\n onstart = onstart || function () {};\n onstop = onstop || function () {};\n var doc = document;\n var dragging = false;\n var offset = {};\n var maxHeight = 0;\n var maxWidth = 0;\n var hasTouch = 'ontouchstart' in window;\n\n var duringDragEvents = {};\n duringDragEvents['selectstart'] = prevent;\n duringDragEvents['dragstart'] = prevent;\n duringDragEvents['touchmove mousemove'] = move;\n duringDragEvents['touchend mouseup'] = stop;\n\n function prevent(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.returnValue = false;\n }\n\n function move(e) {\n if (dragging) {\n // Mouseup happened outside of window\n if (IE && doc.documentMode < 9 && !e.button) {\n return stop();\n }\n\n var t0 = e && e.touches && e.touches[0];\n var pageX = (t0 && t0.pageX) || e.pageX;\n var pageY = (t0 && t0.pageY) || e.pageY;\n\n var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));\n var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));\n\n if (hasTouch) {\n // Stop scrolling in iOS\n prevent(e);\n }\n\n onmove.apply(element, [dragX, dragY, e]);\n }\n }\n\n function start(e) {\n var rightclick = e.which ? e.which == 3 : e.button == 2;\n\n if (!rightclick && !dragging) {\n if (onstart.apply(element, arguments) !== false) {\n dragging = true;\n maxHeight = $(element).height();\n maxWidth = $(element).width();\n offset = $(element).offset();\n\n $(doc).bind(duringDragEvents);\n $(doc.body).addClass('sp-dragging');\n\n move(e);\n\n prevent(e);\n }\n }\n }\n\n function stop() {\n if (dragging) {\n $(doc).unbind(duringDragEvents);\n $(doc.body).removeClass('sp-dragging');\n\n // Wait a tick before notifying observers to allow the click event\n // to fire in Chrome.\n setTimeout(function () {\n onstop.apply(element, arguments);\n }, 0);\n }\n dragging = false;\n }\n\n $(element).bind('touchstart mousedown', start);\n }\n\n function throttle(func, wait, debounce) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var throttler = function () {\n timeout = null;\n func.apply(context, args);\n };\n if (debounce) clearTimeout(timeout);\n if (debounce || !timeout) timeout = setTimeout(throttler, wait);\n };\n }\n\n function inputTypeColorSupport() {\n return $.fn.spectrum.inputTypeColorSupport();\n }\n\n /**\n * Define a jQuery plugin\n */\n var dataID = 'spectrum.id';\n $.fn.spectrum = function (opts, extra) {\n if (typeof opts == 'string') {\n var returnValue = this;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var spect = spectrums[$(this).data(dataID)];\n if (spect) {\n var method = spect[opts];\n if (!method) {\n throw new Error(\"Spectrum: no such method: '\" + opts + \"'\");\n }\n\n if (opts == 'get') {\n returnValue = spect.get();\n } else if (opts == 'container') {\n returnValue = spect.container;\n } else if (opts == 'option') {\n returnValue = spect.option.apply(spect, args);\n } else if (opts == 'destroy') {\n spect.destroy();\n $(this).removeData(dataID);\n } else {\n method.apply(spect, args);\n }\n }\n });\n\n return returnValue;\n }\n\n // Initializing a new instance of spectrum\n return this.spectrum('destroy').each(function () {\n var options = $.extend({}, opts, $(this).data());\n var spect = spectrum(this, options);\n $(this).data(dataID, spect.id);\n });\n };\n\n $.fn.spectrum.load = true;\n $.fn.spectrum.loadOpts = {};\n $.fn.spectrum.draggable = draggable;\n $.fn.spectrum.defaults = defaultOpts;\n $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {\n if (typeof inputTypeColorSupport._cachedResult === 'undefined') {\n var colorInput = $(\"\")[0]; // if color element is supported, value will default to not null\n inputTypeColorSupport._cachedResult = colorInput.type === 'color' && colorInput.value !== '';\n }\n return inputTypeColorSupport._cachedResult;\n };\n\n $.spectrum = {};\n $.spectrum.localization = {};\n $.spectrum.palettes = {};\n\n $.fn.spectrum.processNativeColorInputs = function () {\n var colorInputs = $('input[type=color]');\n if (colorInputs.length && !inputTypeColorSupport()) {\n colorInputs.spectrum({\n preferredFormat: 'hex6',\n });\n }\n };\n\n // TinyColor v1.1.2\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n //(function() {\n\n var trimLeft = /^[\\s,#]+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n math = Math,\n mathRound = math.round,\n mathMin = math.min,\n mathMax = math.max,\n mathRandom = math.random;\n\n var tinycolor = function (color, opts) {\n color = color ? color : '';\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n (this._originalInput = color),\n (this._r = rgb.r),\n (this._g = rgb.g),\n (this._b = rgb.b),\n (this._a = rgb.a),\n (this._roundA = mathRound(100 * this._a) / 100),\n (this._format = opts.format || rgb.format);\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n };\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100 * this._a) / 100;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360),\n s = mathRound(hsv.s * 100),\n v = mathRound(hsv.v * 100);\n return this._a == 1\n ? 'hsv(' + h + ', ' + s + '%, ' + v + '%)'\n : 'hsva(' + h + ', ' + s + '%, ' + v + '%, ' + this._roundA + ')';\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360),\n s = mathRound(hsl.s * 100),\n l = mathRound(hsl.l * 100);\n return this._a == 1\n ? 'hsl(' + h + ', ' + s + '%, ' + l + '%)'\n : 'hsla(' + h + ', ' + s + '%, ' + l + '%, ' + this._roundA + ')';\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function () {\n return rgbaToHex(this._r, this._g, this._b, this._a);\n },\n toHex8String: function () {\n return '#' + this.toHex8();\n },\n toRgb: function () {\n return {\n r: mathRound(this._r),\n g: mathRound(this._g),\n b: mathRound(this._b),\n a: this._a,\n };\n },\n toRgbString: function () {\n return this._a == 1\n ? 'rgb(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ')'\n : 'rgba(' +\n mathRound(this._r) +\n ', ' +\n mathRound(this._g) +\n ', ' +\n mathRound(this._b) +\n ', ' +\n this._roundA +\n ')';\n },\n toPercentageRgb: function () {\n return {\n r: mathRound(bound01(this._r, 255) * 100) + '%',\n g: mathRound(bound01(this._g, 255) * 100) + '%',\n b: mathRound(bound01(this._b, 255) * 100) + '%',\n a: this._a,\n };\n },\n toPercentageRgbString: function () {\n return this._a == 1\n ? 'rgb(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%)'\n : 'rgba(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%, ' +\n this._roundA +\n ')';\n },\n toName: function () {\n if (this._a === 0) {\n return 'transparent';\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? 'GradientType = 1, ' : '';\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = s.toHex8String();\n }\n\n return (\n 'progid:DXImageTransform.Microsoft.gradient(' +\n gradientType +\n 'startColorstr=' +\n hex8String +\n ',endColorstr=' +\n secondHex8String +\n ')'\n );\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat =\n !formatSet && hasAlpha && (format === 'hex' || format === 'hex6' || format === 'hex3' || format === 'name');\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function () {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function () {\n return this._applyCombination(tetrad, arguments);\n },\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == 'object') {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === 'a') {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var ok = false;\n var format = false;\n\n if (typeof color == 'string') {\n color = stringInputToObject(color);\n }\n\n if (typeof color == 'object') {\n if (color.hasOwnProperty('r') && color.hasOwnProperty('g') && color.hasOwnProperty('b')) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('v')) {\n color.s = convertToPercentage(color.s);\n color.v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, color.s, color.v);\n ok = true;\n format = 'hsv';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('l')) {\n color.s = convertToPercentage(color.s);\n color.l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, color.s, color.l);\n ok = true;\n format = 'hsl';\n }\n\n if (color.hasOwnProperty('a')) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a,\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n }\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b and a are contained in the set [0, 255]\n // Returns an 8 character hex\n function rgbaToHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n ];\n\n return hex.join('');\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom(),\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (mathRound(hsl.h) + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n var w = p * 2 - 1;\n var a = rgb2.a - rgb1.a;\n\n var w1;\n\n if (w * a == -1) {\n w1 = w;\n } else {\n w1 = (w + a) / (1 + w * a);\n }\n\n w1 = (w1 + 1) / 2;\n\n var w2 = 1 - w1;\n\n var rgba = {\n r: rgb2.r * w1 + rgb1.r * w2,\n g: rgb2.g * w1 + rgb1.g * w2,\n b: rgb2.b * w1 + rgb1.b * w2,\n a: rgb2.a * p + rgb1.a * (1 - p),\n };\n\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // \n\n // `readability`\n // Analyze the 2 colors and returns an object with the following properties:\n // `brightness`: difference in brightness between the two colors\n // `color`: difference in color/hue between the two colors\n tinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n var rgb1 = c1.toRgb();\n var rgb2 = c2.toRgb();\n var brightnessA = c1.getBrightness();\n var brightnessB = c2.getBrightness();\n var colorDiff =\n Math.max(rgb1.r, rgb2.r) -\n Math.min(rgb1.r, rgb2.r) +\n Math.max(rgb1.g, rgb2.g) -\n Math.min(rgb1.g, rgb2.g) +\n Math.max(rgb1.b, rgb2.b) -\n Math.min(rgb1.b, rgb2.b);\n\n return {\n brightness: Math.abs(brightnessA - brightnessB),\n color: colorDiff,\n };\n };\n\n // `readable`\n // http://www.w3.org/TR/AERT#color-contrast\n // Ensure that foreground and background color combinations provide sufficient contrast.\n // *Example*\n // tinycolor.isReadable(\"#000\", \"#111\") => false\n tinycolor.isReadable = function (color1, color2) {\n var readability = tinycolor.readability(color1, color2);\n return readability.brightness > 125 && readability.color > 500;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // *Example*\n // tinycolor.mostReadable(\"#123\", [\"#fff\", \"#000\"]) => \"#000\"\n tinycolor.mostReadable = function (baseColor, colorList) {\n var bestColor = null;\n var bestScore = 0;\n var bestIsReadable = false;\n for (var i = 0; i < colorList.length; i++) {\n // We normalize both around the \"acceptable\" breaking point,\n // but rank brightness constrast higher than hue.\n\n var readability = tinycolor.readability(baseColor, colorList[i]);\n var readable = readability.brightness > 125 && readability.color > 500;\n var score = 3 * (readability.brightness / 125) + readability.color / 500;\n\n if (\n (readable && !bestIsReadable) ||\n (readable && bestIsReadable && score > bestScore) ||\n (!readable && !bestIsReadable && score > bestScore)\n ) {\n bestIsReadable = readable;\n bestScore = score;\n bestColor = tinycolor(colorList[i]);\n }\n }\n return bestColor;\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = (tinycolor.names = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '0ff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '00f',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n burntsienna: 'ea7e5d',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '0ff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'f0f',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32',\n });\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = (tinycolor.hexNames = flip(names));\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == 'string' && n.indexOf('.') != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + '%';\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n\n var matchers = (function () {\n // \n var CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n\n // \n var CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\n var PERMISSIVE_MATCH4 =\n '[\\\\s|\\\\(]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')\\\\s*\\\\)?';\n\n return {\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n };\n })();\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n a: convertHexToDecimal(match[1]),\n r: parseIntFromHex(match[2]),\n g: parseIntFromHex(match[3]),\n b: parseIntFromHex(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n\n return false;\n }\n\n window.tinycolor = tinycolor;\n //})();\n\n $(function () {\n if ($.fn.spectrum.load) {\n $.fn.spectrum.processNativeColorInputs();\n }\n });\n}\n","import Backbone from 'backbone';\nimport { bindAll, isUndefined, indexOf } from 'underscore';\nimport { on, off } from '../../utils/mixins';\nimport Input from './Input';\n\nconst $ = Backbone.$;\n\nexport default class InputNumber extends Input {\n template() {\n const ppfx = this.ppfx;\n return `\n \n \n
\n
\n
\n
\n `;\n }\n\n inputClass() {\n const ppfx = this.ppfx;\n return this.opts.contClass || `${ppfx}field ${ppfx}field-integer`;\n }\n\n constructor(opts = {}) {\n super(opts);\n bindAll(this, 'moveIncrement', 'upIncrement');\n this.doc = document;\n this.listenTo(this.model, 'change:unit', this.handleModelChange);\n }\n\n /**\n * Set value to the model\n * @param {string} value\n * @param {Object} opts\n */\n setValue(value, opts) {\n var opt = opts || {};\n var valid = this.validateInputValue(value, { deepCheck: 1 });\n var validObj = { value: valid.value };\n\n // If found some unit value\n if (valid.unit || valid.force) {\n validObj.unit = valid.unit;\n }\n\n this.model.set(validObj, opt);\n\n // Generally I get silent when I need to reflect data to view without\n // reupdating the target\n if (opt.silent) {\n this.handleModelChange();\n }\n }\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n this.setValue(this.getInputEl().value);\n this.elementUpdated();\n }\n\n /**\n * Handled when the view is changed\n */\n handleUnitChange(e) {\n e.stopPropagation();\n var value = this.getUnitEl().value;\n this.model.set('unit', value);\n this.elementUpdated();\n }\n\n /**\n * Handled when user uses keyboard\n */\n handleKeyDown(e) {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.upArrowClick();\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.downArrowClick();\n }\n }\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n }\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange() {\n const model = this.model;\n this.getInputEl().value = model.get('value');\n const unitEl = this.getUnitEl();\n unitEl && (unitEl.value = model.get('unit') || '');\n }\n\n /**\n * Get the unit element\n * @return {HTMLElement}\n */\n getUnitEl() {\n if (!this.unitEl) {\n const model = this.model;\n const units = model.get('units') || [];\n\n if (units.length) {\n const options = [''];\n\n units.forEach(unit => {\n const selected = unit == model.get('unit') ? 'selected' : '';\n options.push(``);\n });\n\n const temp = document.createElement('div');\n temp.innerHTML = ``;\n this.unitEl = temp.firstChild;\n }\n }\n\n return this.unitEl;\n }\n\n /**\n * Invoked when the up arrow is clicked\n * */\n upArrowClick() {\n const { model } = this;\n const step = model.get('step');\n let value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value + step));\n this.elementUpdated();\n }\n\n /**\n * Invoked when the down arrow is clicked\n * */\n downArrowClick() {\n const { model } = this;\n const step = model.get('step');\n const value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value - step));\n this.elementUpdated();\n }\n\n /**\n * Change easily integer input value with click&drag method\n * @param Event\n *\n * @return void\n * */\n downIncrement(e) {\n e.preventDefault();\n this.moved = 0;\n var value = this.model.get('value') || 0;\n value = this.normalizeValue(value);\n this.current = { y: e.pageY, val: value };\n on(this.doc, 'mousemove', this.moveIncrement);\n on(this.doc, 'mouseup', this.upIncrement);\n }\n\n /** While the increment is clicked, moving the mouse will update input value\n * @param Object\n *\n * @return bool\n * */\n moveIncrement(ev) {\n this.moved = 1;\n const model = this.model;\n const step = model.get('step');\n const data = this.current;\n var pos = this.normalizeValue(data.val + (data.y - ev.pageY) * step);\n const { value, unit } = this.validateInputValue(pos);\n this.prValue = value;\n model.set({ value, unit }, { avoidStore: 1 });\n return false;\n }\n\n /**\n * Stop moveIncrement method\n * */\n upIncrement() {\n const model = this.model;\n const step = model.get('step');\n off(this.doc, 'mouseup', this.upIncrement);\n off(this.doc, 'mousemove', this.moveIncrement);\n\n if (this.prValue && this.moved) {\n var value = this.prValue - step;\n model.set('value', value, { avoidStore: 1 }).set('value', value + step);\n this.elementUpdated();\n }\n }\n\n normalizeValue(value, defValue = 0) {\n const model = this.model;\n const step = model.get('step');\n let stepDecimals = 0;\n\n if (isNaN(value)) {\n return defValue;\n }\n\n value = parseFloat(value);\n\n if (Math.floor(value) !== value) {\n const side = step.toString().split('.')[1];\n stepDecimals = side ? side.length : 0;\n }\n\n return stepDecimals ? parseFloat(value.toFixed(stepDecimals)) : value;\n }\n\n /**\n * Validate input value\n * @param {String} value Raw value\n * @param {Object} opts Options\n * @return {Object} Validated string\n */\n validateInputValue(value, opts = {}) {\n var force = 0;\n var opt = opts || {};\n var model = this.model;\n const defValue = ''; //model.get('defaults');\n var val = !isUndefined(value) ? value : defValue;\n var units = opts.units || model.get('units') || [];\n var unit = model.get('unit') || (units.length && units[0]) || '';\n var max = !isUndefined(opts.max) ? opts.max : model.get('max');\n var min = !isUndefined(opts.min) ? opts.min : model.get('min');\n var limitlessMax = !!model.get('limitlessMax');\n var limitlessMin = !!model.get('limitlessMin');\n\n if (opt.deepCheck) {\n var fixed = model.get('fixedValues') || [];\n\n if (val === '') unit = '';\n\n if (val) {\n // If the value is one of the fixed values I leave it as it is\n var regFixed = new RegExp('^' + fixed.join('|'), 'g');\n if (fixed.length && regFixed.test(val)) {\n val = val.match(regFixed)[0];\n unit = '';\n force = 1;\n } else {\n var valCopy = val + '';\n val += ''; // Make it suitable for replace\n val = parseFloat(val.replace(',', '.'));\n val = !isNaN(val) ? val : defValue;\n var uN = valCopy.replace(val, '');\n // Check if exists as unit\n if (indexOf(units, uN) >= 0) unit = uN;\n }\n }\n }\n\n if (!limitlessMax && !isUndefined(max) && max !== '') val = val > max ? max : val;\n if (!limitlessMin && !isUndefined(min) && min !== '') val = val < min ? min : val;\n\n return {\n force,\n value: val,\n unit,\n };\n }\n\n render() {\n Input.prototype.render.call(this);\n this.unitEl = null;\n const unit = this.getUnitEl();\n unit && this.$el.find(`.${this.ppfx}field-units`).get(0).appendChild(unit);\n return this;\n }\n}\n\nInputNumber.prototype.events = {\n 'change input': 'handleChange',\n 'change select': 'handleUnitChange',\n 'click [data-arrow-up]': 'upArrowClick',\n 'click [data-arrow-down]': 'downArrowClick',\n 'mousedown [data-arrows]': 'downIncrement',\n keydown: 'handleKeyDown',\n};\n","import { includes } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default class DomainViews extends Backbone.View {\n // Defines the View per type\n itemsView = '';\n\n itemType = 'type';\n\n reuseView = false;\n\n constructor(opts = {}, config, autoAdd = false) {\n super(opts);\n this.config = config || opts.config || {};\n autoAdd && this.listenTo(this.collection, 'add', this.addTo);\n this.items = [];\n }\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n }\n\n itemViewNotFound(type) {\n const { config, ns } = this;\n const { em } = config;\n const warn = `${ns ? `[${ns}]: ` : ''}'${type}' type not found`;\n em && em.logWarning(warn);\n }\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config, reuseView, items, itemsView = {} } = this;\n const inputTypes = [\n 'button',\n 'checkbox',\n 'color',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n ];\n var frag = fragment || null;\n var itemView = this.itemView;\n var typeField = model.get(this.itemType);\n let view;\n\n if (itemsView[typeField]) {\n itemView = itemsView[typeField];\n } else if (typeField && !itemsView[typeField] && !includes(inputTypes, typeField)) {\n this.itemViewNotFound(typeField);\n }\n\n if (model.view && reuseView) {\n view = model.view;\n } else {\n view = new itemView({ model, config }, config);\n }\n\n items && items.push(view);\n const rendered = view.render().el;\n\n if (frag) frag.appendChild(rendered);\n else this.$el.append(rendered);\n }\n\n render() {\n var frag = document.createDocumentFragment();\n this.clearItems();\n this.$el.empty();\n\n if (this.collection.length)\n this.collection.each(function (model) {\n this.add(model, frag);\n }, this);\n\n this.$el.append(frag);\n this.onRender();\n return this;\n }\n\n onRender() {}\n\n onRemoveBefore() {}\n onRemove() {}\n\n remove(opts = {}) {\n const { items } = this;\n this.onRemoveBefore(items, opts);\n this.clearItems();\n Backbone.View.prototype.remove.apply(this, arguments);\n this.onRemove(items, opts);\n }\n\n clearItems() {\n const items = this.items || [];\n // TODO Traits do not update the target anymore\n // items.forEach(item => item.remove());\n // this.items = [];\n }\n}\n\n// Default view\nDomainViews.prototype.itemView = '';\n","const traitInputAttr = { placeholder: 'eg. Text here' };\n\nexport default {\n assetManager: {\n addButton: 'Add image',\n inputPlh: 'http://path/to/the/image.jpg',\n modalTitle: 'Select Image',\n uploadTitle: 'Drop files here or click to upload',\n },\n // Here just as a reference, GrapesJS core doesn't contain any block,\n // so this should be omitted from other local files\n blockManager: {\n labels: {\n // 'block-id': 'Block Label',\n },\n categories: {\n // 'category-id': 'Category Label',\n },\n },\n domComponents: {\n names: {\n '': 'Box',\n wrapper: 'Body',\n text: 'Text',\n comment: 'Comment',\n image: 'Image',\n video: 'Video',\n label: 'Label',\n link: 'Link',\n map: 'Map',\n tfoot: 'Table foot',\n tbody: 'Table body',\n thead: 'Table head',\n table: 'Table',\n row: 'Table row',\n cell: 'Table cell',\n },\n },\n deviceManager: {\n device: 'Device',\n devices: {\n desktop: 'Desktop',\n tablet: 'Tablet',\n mobileLandscape: 'Mobile Landscape',\n mobilePortrait: 'Mobile Portrait',\n },\n },\n panels: {\n buttons: {\n titles: {\n preview: 'Preview',\n fullscreen: 'Fullscreen',\n 'sw-visibility': 'View components',\n 'export-template': 'View code',\n 'open-sm': 'Open Style Manager',\n 'open-tm': 'Settings',\n 'open-layers': 'Open Layer Manager',\n 'open-blocks': 'Open Blocks',\n },\n },\n },\n selectorManager: {\n label: 'Classes',\n selected: 'Selected',\n emptyState: '- State -',\n states: {\n hover: 'Hover',\n active: 'Click',\n 'nth-of-type(2n)': 'Even/Odd',\n },\n },\n styleManager: {\n empty: 'Select an element before using Style Manager',\n layer: 'Layer',\n fileButton: 'Images',\n sectors: {\n general: 'General',\n layout: 'Layout',\n typography: 'Typography',\n decorations: 'Decorations',\n extra: 'Extra',\n flex: 'Flex',\n dimension: 'Dimension',\n },\n // Default names for sub properties in Composite and Stack types.\n // Other labels are generated directly from their property names (eg. 'font-size' will be 'Font size').\n properties: {\n 'text-shadow-h': 'X',\n 'text-shadow-v': 'Y',\n 'text-shadow-blur': 'Blur',\n 'text-shadow-color': 'Color',\n 'box-shadow-h': 'X',\n 'box-shadow-v': 'Y',\n 'box-shadow-blur': 'Blur',\n 'box-shadow-spread': 'Spread',\n 'box-shadow-color': 'Color',\n 'box-shadow-type': 'Type',\n 'margin-top-sub': 'Top',\n 'margin-right-sub': 'Right',\n 'margin-bottom-sub': 'Bottom',\n 'margin-left-sub': 'Left',\n 'padding-top-sub': 'Top',\n 'padding-right-sub': 'Right',\n 'padding-bottom-sub': 'Bottom',\n 'padding-left-sub': 'Left',\n 'border-width-sub': 'Width',\n 'border-style-sub': 'Style',\n 'border-color-sub': 'Color',\n 'border-top-left-radius-sub': 'Top Left',\n 'border-top-right-radius-sub': 'Top Right',\n 'border-bottom-right-radius-sub': 'Bottom Right',\n 'border-bottom-left-radius-sub': 'Bottom Left',\n 'transform-rotate-x': 'Rotate X',\n 'transform-rotate-y': 'Rotate Y',\n 'transform-rotate-z': 'Rotate Z',\n 'transform-scale-x': 'Scale X',\n 'transform-scale-y': 'Scale Y',\n 'transform-scale-z': 'Scale Z',\n 'transition-property-sub': 'Property',\n 'transition-duration-sub': 'Duration',\n 'transition-timing-function-sub': 'Timing',\n 'background-image-sub': 'Image',\n 'background-repeat-sub': 'Repeat',\n 'background-position-sub': 'Position',\n 'background-attachment-sub': 'Attachment',\n 'background-size-sub': 'Size',\n },\n // Translate options in style properties\n // options: {\n // float: { // Id of the property\n // ...\n // left: 'Left', // {option id}: {Option label}\n // }\n // }\n },\n traitManager: {\n empty: 'Select an element before using Trait Manager',\n label: 'Component settings',\n traits: {\n // The core library generates the name by their `name` property\n labels: {\n // id: 'Id',\n // alt: 'Alt',\n // title: 'Title',\n // href: 'Href',\n },\n // In a simple trait, like text input, these are used on input attributes\n attributes: {\n id: traitInputAttr,\n alt: traitInputAttr,\n title: traitInputAttr,\n href: { placeholder: 'eg. https://google.com' },\n },\n // In a trait like select, these are used to translate option names\n options: {\n target: {\n false: 'This window',\n _blank: 'New window',\n },\n },\n },\n },\n storageManager: {\n recover: 'Do you want to recover unsaved changes?',\n },\n};\n","import en from './locale/en';\n\nexport default {\n // Locale value\n locale: 'en',\n\n // Fallback locale\n localeFallback: 'en',\n\n // Detect locale by checking browser language\n detectLocale: true,\n\n // Show warnings when some of the i18n resources are missing\n debug: false,\n\n // Messages to translate\n messages: {\n en,\n },\n\n // Additional messages. This allows extending the default `messages` set directly from the configuration.\n messagesAdd: null,\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/i18n/config.js)\n * ```js\n * const editor = grapesjs.init({\n * i18n: {\n * locale: 'en',\n * localeFallback: 'en',\n * messages: {\n * it: { hello: 'Ciao', ... },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const i18n = editor.I18n;\n * ```\n *\n * ### Events\n * * `i18n:add` - New set of messages is added\n * * `i18n:update` - The set of messages is updated\n * * `i18n:locale` - Locale changed\n *\n * @module I18n\n */\nimport { isUndefined, isString } from 'underscore';\nimport { hasWin } from '../utils/mixins';\nimport config from './config';\n\nconst isObj = el => !Array.isArray(el) && el !== null && typeof el === 'object';\n\nconst deepAssign = (...args) => {\n const target = { ...args[0] };\n\n for (let i = 1; i < args.length; i++) {\n const source = { ...args[i] };\n\n for (let key in source) {\n const targValue = target[key];\n const srcValue = source[key];\n\n if (isObj(targValue) && isObj(srcValue)) {\n target[key] = deepAssign(targValue, srcValue);\n } else {\n target[key] = srcValue;\n }\n }\n }\n\n return target;\n};\n\nexport default () => {\n return {\n name: 'I18n',\n\n config,\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = {\n ...config,\n ...opts,\n messages: {\n ...config.messages,\n ...(opts.messages || {}),\n },\n };\n const add = this.config.messagesAdd;\n add && this.addMessages(add);\n\n if (this.config.detectLocale) {\n this.config.locale = this._localLang();\n }\n\n this.em = opts.em;\n return this;\n },\n\n /**\n * Get module configurations\n * @returns {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Update current locale\n * @param {String} locale Locale value\n * @returns {this}\n * @example\n * i18n.setLocale('it');\n */\n setLocale(locale) {\n const { em, config } = this;\n const evObj = { value: locale, valuePrev: config.locale };\n em && em.trigger('i18n:locale', evObj);\n config.locale = locale;\n return this;\n },\n\n /**\n * Get current locale\n * @returns {String} Current locale value\n */\n getLocale() {\n return this.config.locale;\n },\n\n /**\n * Get all messages\n * @param {String} [lang] Specify the language of messages to return\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.debug] Show warnings in case of missing language\n * @returns {Object}\n * @example\n * i18n.getMessages();\n * // -> { en: { hello: '...' }, ... }\n * i18n.getMessages('en');\n * // -> { hello: '...' }\n */\n getMessages(lang, opts = {}) {\n const { messages } = this.config;\n lang && !messages[lang] && this._debug(`'${lang}' i18n lang not found`, opts);\n return lang ? messages[lang] : messages;\n },\n\n /**\n * Set new set of messages\n * @param {Object} msg Set of messages\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.setMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set replaced\n * i18n.getMessages();\n * // -> { en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n setMessages(msg) {\n const { em, config } = this;\n config.messages = msg;\n em && em.trigger('i18n:update', msg);\n return this;\n },\n\n /**\n * Update messages\n * @param {Object} msg Set of messages to add\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.addMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set updated\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n addMessages(msg) {\n const { em } = this;\n const { messages } = this.config;\n em && em.trigger('i18n:add', msg);\n this.setMessages(deepAssign(messages, msg));\n\n return this;\n },\n\n /**\n * Translate the locale message\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.debug] Show warnings in case of missing resources\n * @returns {String}\n * @example\n * obj.setMessages({\n * en: { msg: 'Msg', msg2: 'Msg {test}'},\n * it: { msg2: 'Msg {test} it'},\n * });\n * obj.t('msg');\n * // -> outputs `Msg`\n * obj.t('msg2', { params: { test: 'hello' } }); // use params\n * // -> outputs `Msg hello`\n * obj.t('msg2', { l: 'it', params: { test: 'hello' } }); // custom local\n * // -> outputs `Msg hello it`\n */\n t(key, opts = {}) {\n const { config } = this;\n const param = opts.params || {};\n const locale = opts.l || this.getLocale();\n const localeFlb = opts.lFlb || config.localeFallback;\n let result = this._getMsg(key, locale, opts);\n\n // Try with fallback\n if (!result) result = this._getMsg(key, localeFlb, opts);\n\n !result && this._debug(`'${key}' i18n key not found in '${locale}' lang`, opts);\n result = result && isString(result) ? this._addParams(result, param) : result;\n\n return result;\n },\n\n _localLang() {\n const nav = (hasWin() && window.navigator) || {};\n const lang = nav.language || nav.userLanguage;\n return lang ? lang.split('-')[0] : 'en';\n },\n\n _addParams(str, params) {\n const reg = new RegExp(`\\{([\\\\w\\\\d-]*)\\}`, 'g');\n return str.replace(reg, (m, val) => params[val] || '').trim();\n },\n\n _getMsg(key, locale, opts = {}) {\n const msgSet = this.getMessages(locale, opts);\n\n // Lang set is missing\n if (!msgSet) return;\n\n let result = msgSet[key];\n\n // Check for nested getter\n if (!result && key.indexOf('.') > 0) {\n result = key.split('.').reduce((lang, key) => {\n if (isUndefined(lang)) return;\n return lang[key];\n }, msgSet);\n }\n\n return result;\n },\n\n _debug(str, opts = {}) {\n const { em, config } = this;\n (opts.debug || config.debug) && em && em.logWarning(str);\n },\n\n destroy() {\n this.config = config;\n this.em = {};\n },\n };\n};\n","// The initial version of this library was borrowed from https://github.com/madrobby/keymaster\n// and adapted to the GrapesJS's need\n\nvar k,\n _handlers = {},\n _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false,\n },\n _scope = 'all',\n // modifier keys\n _MODIFIERS = {\n '⇧': 16,\n shift: 16,\n '⌥': 18,\n alt: 18,\n option: 18,\n '⌃': 17,\n ctrl: 17,\n control: 17,\n '⌘': 91,\n command: 91,\n },\n // special keys\n _MAP = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': 189,\n '=': 187,\n ';': 186,\n \"'\": 222,\n '[': 219,\n ']': 221,\n '\\\\': 220,\n },\n code = function (x) {\n return _MAP[x] || x.toUpperCase().charCodeAt(0);\n },\n _downKeys = [];\n\nfor (k = 1; k < 20; k++) _MAP['f' + k] = 111 + k;\n\n// IE doesn't support Array#indexOf, so have a simple replacement\nfunction index(array, item) {\n var i = array.length;\n while (i--) if (array[i] === item) return i;\n return -1;\n}\n\n// for comparing mods before unassignment\nfunction compareArray(a1, a2) {\n if (a1.length != a2.length) return false;\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) return false;\n }\n return true;\n}\n\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n};\n\nfunction updateModifierKey(event) {\n for (k in _mods) _mods[k] = event[modifierMap[k]];\n}\n\n// handle keydown event\nfunction dispatch(event) {\n var key, handler, k, i, modifiersMatch, scope;\n key = event.keyCode;\n\n if (index(_downKeys, key) == -1) {\n _downKeys.push(key);\n }\n\n // if a modifier key, set the key. property to true and return\n if (key == 93 || key == 224) key = 91; // right command on webkit, command on Gecko\n if (key in _mods) {\n _mods[key] = true;\n // 'assignKey' from inside this closure is exported to window.key\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = true;\n return;\n }\n updateModifierKey(event);\n\n // see if we need to ignore the keypress (filter() can can be overridden)\n // by default ignore key presses if a select, textarea, or input is focused\n if (!assignKey.filter.call(this, event)) return;\n\n // abort if no potentially matching shortcuts found\n if (!(key in _handlers)) return;\n\n scope = getScope();\n\n // for each potential shortcut\n for (i = 0; i < _handlers[key].length; i++) {\n handler = _handlers[key][i];\n\n // see if it's in the current scope\n if (handler.scope == scope || handler.scope == 'all') {\n // check if modifiers match if any\n modifiersMatch = handler.mods.length > 0;\n for (k in _mods)\n if ((!_mods[k] && index(handler.mods, +k) > -1) || (_mods[k] && index(handler.mods, +k) == -1))\n modifiersMatch = false;\n // call the handler and stop the event if neccessary\n if ((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch) {\n if (handler.method(event, handler) === false) {\n if (event.preventDefault) event.preventDefault();\n else event.returnValue = false;\n if (event.stopPropagation) event.stopPropagation();\n if (event.cancelBubble) event.cancelBubble = true;\n }\n }\n }\n }\n}\n\n// unset modifier keys on keyup\nfunction clearModifier(event) {\n var key = event.keyCode,\n k,\n i = index(_downKeys, key);\n\n // remove key from _downKeys\n if (i >= 0) {\n _downKeys.splice(i, 1);\n }\n\n if (key == 93 || key == 224) key = 91;\n if (key in _mods) {\n _mods[key] = false;\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = false;\n }\n}\n\nfunction resetModifiers() {\n for (k in _mods) _mods[k] = false;\n for (k in _MODIFIERS) assignKey[k] = false;\n}\n\n// parse and assign shortcut\nfunction assignKey(key, scope, method) {\n var keys, mods;\n keys = getKeys(key);\n if (method === undefined) {\n method = scope;\n scope = 'all';\n }\n\n // for each shortcut\n for (var i = 0; i < keys.length; i++) {\n // set modifier keys if any\n mods = [];\n key = keys[i].split('+');\n if (key.length > 1) {\n mods = getMods(key);\n key = [key[key.length - 1]];\n }\n // convert to keycode and...\n key = key[0];\n key = code(key);\n // ...store handler\n if (!(key in _handlers)) _handlers[key] = [];\n _handlers[key].push({\n shortcut: keys[i],\n scope: scope,\n method: method,\n key: keys[i],\n mods: mods,\n });\n }\n}\n\n// unbind all handlers for given key in current scope\nfunction unbindKey(key, scope) {\n var multipleKeys,\n keys,\n mods = [],\n i,\n j,\n obj;\n\n multipleKeys = getKeys(key);\n\n for (j = 0; j < multipleKeys.length; j++) {\n keys = multipleKeys[j].split('+');\n\n if (keys.length > 1) {\n mods = getMods(keys);\n }\n\n key = keys[keys.length - 1];\n key = code(key);\n\n if (scope === undefined) {\n scope = getScope();\n }\n if (!_handlers[key]) {\n return;\n }\n for (i = 0; i < _handlers[key].length; i++) {\n obj = _handlers[key][i];\n // only clear handlers if correct scope and mods match\n if (obj.scope === scope && compareArray(obj.mods, mods)) {\n _handlers[key][i] = {};\n }\n }\n }\n}\n\n// Returns true if the key with code 'keyCode' is currently down\n// Converts strings into key codes.\nfunction isPressed(keyCode) {\n if (typeof keyCode == 'string') {\n keyCode = code(keyCode);\n }\n return index(_downKeys, keyCode) != -1;\n}\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n}\n\nfunction filter(event) {\n var tagName = (event.target || event.srcElement).tagName;\n // ignore keypressed in any elements that support keyboard data input\n return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\n}\n\n// initialize key. to false\nfor (k in _MODIFIERS) assignKey[k] = false;\n\n// set current scope (default 'all')\nfunction setScope(scope) {\n _scope = scope || 'all';\n}\n\nfunction getScope() {\n return _scope || 'all';\n}\n\n// delete all handlers for a given scope\nfunction deleteScope(scope) {\n var key, handlers, i;\n\n for (key in _handlers) {\n handlers = _handlers[key];\n for (i = 0; i < handlers.length; ) {\n if (handlers[i].scope === scope) handlers.splice(i, 1);\n else i++;\n }\n }\n}\n\n// abstract key logic for assign and unassign\nfunction getKeys(key) {\n var keys;\n key = key.replace(/\\s/g, '');\n keys = key.split(',');\n if (keys[keys.length - 1] == '') {\n keys[keys.length - 2] += ',';\n }\n return keys;\n}\n\n// abstract mods logic for assign and unassign\nfunction getMods(key) {\n var mods = key.slice(0, key.length - 1);\n for (var mi = 0; mi < mods.length; mi++) mods[mi] = _MODIFIERS[mods[mi]];\n return mods;\n}\n\n// cross-browser events\nfunction addEvent(object, event, method) {\n if (object.addEventListener) object.addEventListener(event, method, false);\n else if (object.attachEvent)\n object.attachEvent('on' + event, function () {\n method(window.event);\n });\n}\n\n// set window.key and window.key.set/get/deleteScope, and the default filter\nassignKey.setScope = setScope;\nassignKey.getScope = getScope;\nassignKey.deleteScope = deleteScope;\nassignKey.filter = filter;\nassignKey.isPressed = isPressed;\nassignKey.getPressedKeyCodes = getPressedKeyCodes;\nassignKey.unbind = unbindKey;\nassignKey.handlers = _handlers;\nassignKey.init = win => {\n // set the handlers globally on document\n // Passing _scope to a callback to ensure it remains the same by execution. Fixes #48\n addEvent(win.document, 'keydown', function (event) {\n dispatch(event);\n });\n addEvent(win.document, 'keyup', clearModifier);\n addEvent(win, 'focus', resetModifiers);\n};\n\nexport default assignKey;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * keymaps: {\n * // Object of keymaps\n * defaults: {\n * 'your-namespace:keymap-name' {\n * keys: '⌘+z, ctrl+z',\n * handler: 'some-command-id'\n * },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('keymap:add', () => { ... });\n *\n * // Use the API\n * const keymaps = editor.Keymaps;\n * keymaps.add(...);\n * ```\n *\n * ## Available Events\n * * `keymap:add` - New keymap added. The new keyamp object is passed as an argument\n * * `keymap:remove` - Keymap removed. The removed keyamp object is passed as an argument\n * * `keymap:emit` - Some keymap emitted, in arguments you get keymapId, shortcutUsed, Event\n * * `keymap:emit:{keymapId}` - `keymapId` emitted, in arguments you get keymapId, shortcutUsed, Event\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getAll)\n * * [remove](#remove)\n * * [removeAll](#removeall)\n *\n * @module Keymaps\n */\n\nimport { isString } from 'underscore';\nimport { hasWin } from '../utils/mixins';\nimport keymaster from '../utils/keymaster';\n\nhasWin() && keymaster.init(window);\n\nexport default () => {\n const configDef = {\n defaults: {\n 'core:undo': {\n keys: '⌘+z, ctrl+z',\n handler: 'core:undo',\n },\n 'core:redo': {\n keys: '⌘+shift+z, ctrl+shift+z',\n handler: 'core:redo',\n },\n 'core:copy': {\n keys: '⌘+c, ctrl+c',\n handler: 'core:copy',\n },\n 'core:paste': {\n keys: '⌘+v, ctrl+v',\n handler: 'core:paste',\n },\n 'core:component-next': {\n keys: 's',\n handler: 'core:component-next',\n },\n 'core:component-prev': {\n keys: 'w',\n handler: 'core:component-prev',\n },\n 'core:component-enter': {\n keys: 'd',\n handler: 'core:component-enter',\n },\n 'core:component-exit': {\n keys: 'a',\n handler: 'core:component-exit',\n },\n 'core:component-delete': {\n keys: 'backspace, delete',\n handler: 'core:component-delete',\n opts: { prevent: 1 },\n },\n },\n };\n\n return {\n keymaster,\n\n name: 'Keymaps',\n\n /**\n * Get module configurations\n * @return {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = { ...configDef, ...opts };\n this.em = this.config.em;\n this.keymaps = {};\n return this;\n },\n\n onLoad() {\n const defKeys = this.config.defaults;\n\n for (let id in defKeys) {\n const value = defKeys[id];\n this.add(id, value.keys, value.handler, value.opts || {});\n }\n },\n\n /**\n * Add new keymap\n * @param {string} id Keymap id\n * @param {string} keys Keymap keys, eg. `ctrl+a`, `⌘+z, ctrl+z`\n * @param {Function|string} handler Keymap handler, might be a function\n * @param {Object} [opts={}] Options\n * @return {Object} Added keymap\n * or just a command id as a string\n * @example\n * // 'ns' is just a custom namespace\n * keymaps.add('ns:my-keymap', '⌘+j, ⌘+u, ctrl+j, alt+u', editor => {\n * console.log('do stuff');\n * });\n * // or\n * keymaps.add('ns:my-keymap', '⌘+s, ctrl+s', 'some-gjs-command');\n *\n * // listen to events\n * editor.on('keymap:emit', (id, shortcut, e) => {\n * // ...\n * })\n */\n add(id, keys, handler, opts = {}) {\n const { em } = this;\n const cmd = em.get('Commands');\n const editor = em.getEditor();\n const canvas = em.get('Canvas');\n const keymap = { id, keys, handler };\n const pk = this.keymaps[id];\n pk && this.remove(id);\n this.keymaps[id] = keymap;\n keymaster(keys, (e, h) => {\n // It's safer putting handlers resolution inside the callback\n const opt = { event: e, h };\n handler = isString(handler) ? cmd.get(handler) : handler;\n const ableTorun = !em.isEditing() && !editor.Canvas.isInputFocused();\n if (ableTorun || opts.force) {\n opts.prevent && canvas.getCanvasView().preventDefault(e);\n typeof handler == 'object' ? cmd.runCommand(handler, opt) : handler(editor, 0, opt);\n const args = [id, h.shortcut, e];\n em.trigger('keymap:emit', ...args);\n em.trigger(`keymap:emit:${id}`, ...args);\n }\n });\n em.trigger('keymap:add', keymap);\n return keymap;\n },\n\n /**\n * Get the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Keymap object\n * @example\n * keymaps.get('ns:my-keymap');\n * // -> {keys, handler};\n */\n get(id) {\n return this.keymaps[id];\n },\n\n /**\n * Get all keymaps\n * @return {Object}\n * @example\n * keymaps.getAll();\n * // -> {id1: {}, id2: {}};\n */\n getAll() {\n return this.keymaps;\n },\n\n /**\n * Remove the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Removed keymap\n * @example\n * keymaps.remove('ns:my-keymap');\n * // -> {keys, handler};\n */\n remove(id) {\n const em = this.em;\n const keymap = this.get(id);\n\n if (keymap) {\n delete this.keymaps[id];\n keymap.keys.split(', ').forEach(k => keymaster.unbind(k.trim()));\n em && em.trigger('keymap:remove', keymap);\n return keymap;\n }\n },\n\n /**\n * Remove all binded keymaps\n * @return {this}\n */\n removeAll() {\n Object.keys(this.keymaps).forEach(keymap => this.remove(keymap));\n keymaster.handlers = {};\n return this;\n },\n\n destroy() {\n this.removeAll();\n this.keymaps = {};\n this.em = {};\n },\n };\n};\n","export default {\n stylePrefix: 'mdl-',\n\n title: '',\n\n content: '',\n\n backdrop: true,\n\n // Avoid rendering the default modal.\n custom: false,\n\n /**\n * Extend ModalView object (view/ModalView.js)\n * @example\n * extend: {\n * template() {\n * return '
...New modal template...
';\n * },\n * },\n */\n extend: {}\n};\n","import { Model } from '../../common';\n\nexport default class Modal extends Model {\n defaults() {\n return {\n title: '',\n content: '',\n attributes: {},\n open: false,\n };\n }\n\n open() {\n this.set('open', true);\n }\n\n close() {\n this.set('open', false);\n }\n}\n","import { View } from '../../common';\n\nexport default class ModalView extends View {\n template({ pfx, ppfx, content, title }) {\n return `
\n
\n
${title}
\n
\n
\n
\n
${content}
\n
\n
\n
\n
`;\n }\n\n events() {\n return {\n click: 'onClick',\n 'click [data-close-modal]': 'hide',\n };\n }\n\n initialize(o) {\n const model = this.model;\n const config = o.config || {};\n const pfx = config.stylePrefix || '';\n this.config = config;\n this.pfx = pfx;\n this.ppfx = config.pStylePrefix || '';\n this.listenTo(model, 'change:open', this.updateOpen);\n this.listenTo(model, 'change:title', this.updateTitle);\n this.listenTo(model, 'change:content', this.updateContent);\n }\n\n onClick(e) {\n const bkd = this.config.backdrop;\n bkd && e.target === this.el && this.hide();\n }\n\n /**\n * Returns collector element\n * @return {HTMLElement}\n * @private\n */\n getCollector() {\n if (!this.$collector) this.$collector = this.$el.find('.' + this.pfx + 'collector');\n return this.$collector;\n }\n\n /**\n * Returns content element\n * @return {HTMLElement}\n * @private\n */\n getContent() {\n const pfx = this.pfx;\n\n if (!this.$content) {\n this.$content = this.$el.find(`.${pfx}content #${pfx}c`);\n }\n\n return this.$content;\n }\n\n /**\n * Returns title element\n * @return {HTMLElement}\n * @private\n */\n getTitle(opts = {}) {\n if (!this.$title) this.$title = this.$el.find('.' + this.pfx + 'title');\n return opts.$ ? this.$title : this.$title.get(0);\n }\n\n /**\n * Update content\n * @private\n * */\n updateContent() {\n var content = this.getContent();\n const children = content.children();\n const coll = this.getCollector();\n const body = this.model.get('content');\n children.length && coll.append(children);\n content.empty().append(body);\n }\n\n /**\n * Update title\n * @private\n * */\n updateTitle() {\n const title = this.getTitle({ $: true });\n title && title.empty().append(this.model.get('title'));\n }\n\n /**\n * Update open\n * @private\n * */\n updateOpen() {\n this.el.style.display = this.model.get('open') ? '' : 'none';\n }\n\n /**\n * Hide modal\n * @private\n * */\n hide() {\n this.model.close();\n }\n\n /**\n * Show modal\n * @private\n * */\n show() {\n this.model.open();\n }\n\n updateAttr(attr) {\n const { pfx, $el, el } = this;\n const currAttr = [].slice.call(el.attributes).map(i => i.name);\n $el.removeAttr(currAttr.join(' '));\n $el.attr({\n ...(attr || {}),\n class: `${pfx}container ${(attr && attr.class) || ''}`.trim(),\n });\n }\n\n render() {\n const el = this.$el;\n const obj = this.model.toJSON();\n obj.pfx = this.pfx;\n obj.ppfx = this.ppfx;\n el.html(this.template(obj));\n this.updateAttr();\n this.updateOpen();\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/modal_dialog/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * modal: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const modal = editor.Modal;\n * ```\n *\n * ## Available Events\n * * `modal:open` - Modal is opened\n * * `modal:close` - Modal is closed\n * * `modal` - Event triggered on any change related to the modal. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [setTitle](#settitle)\n * * [getTitle](#gettitle)\n * * [setContent](#setcontent)\n * * [getContent](#getcontent)\n * * [onceClose](#onceclose)\n * * [onceOpen](#onceopen)\n *\n * @module Modal\n */\n\nimport { debounce, isFunction, isString } from 'underscore';\nimport { createText } from '../utils/dom';\nimport defaults from './config/config';\nimport ModalM from './model/Modal';\nimport ModalView from './view/ModalView';\n\nexport default () => {\n var c = {};\n var model, modal;\n\n const triggerEvent = (enable, em) => {\n em && em.trigger(`modal:${enable ? 'open' : 'close'}`);\n };\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Modal',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config\n };\n\n const em = c.em;\n this.em = em;\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n model = new ModalM(c);\n model.on('change:open', (m, enb) => triggerEvent(enb, em));\n model.on(\n 'change',\n debounce(() => {\n const data = this._evData();\n const { custom } = this.getConfig();\n isFunction(custom) && custom(data);\n em.trigger('modal', data);\n })\n );\n\n return this;\n },\n\n _evData() {\n const titl = this.getTitle();\n const cnt = this.getContent();\n const { open, attributes } = model.attributes;\n return {\n open,\n attributes,\n title: isString(titl) ? createText(titl) : titl,\n content: isString(cnt) ? createText(cnt) : cnt.get ? cnt.get(0) : cnt,\n close: () => this.close()\n };\n },\n\n postRender(view) {\n const el = view.model.getConfig().el || view.el;\n const res = this.render();\n res && res.appendTo(el);\n },\n\n /**\n * Open the modal window\n * @param {Object} [opts={}] Options\n * @param {String|HTMLElement} [opts.title] Title to set for the modal\n * @param {String|HTMLElement} [opts.content] Content to set for the modal\n * @param {Object} [opts.attributes] Updates the modal wrapper with custom attributes\n * @returns {this}\n * @example\n * modal.open({\n * title: 'My title',\n * content: 'My content',\n * attributes: { class: 'my-class' },\n * });\n */\n open(opts = {}) {\n const attr = opts.attributes || {};\n opts.title && this.setTitle(opts.title);\n opts.content && this.setContent(opts.content);\n model.set('attributes', attr);\n model.open();\n modal && modal.updateAttr(attr);\n return this;\n },\n\n /**\n * Close the modal window\n * @returns {this}\n * @example\n * modal.close();\n */\n close() {\n model.close();\n return this;\n },\n\n /**\n * Execute callback when the modal will be closed.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceClose(() => {\n * console.log('The modal is closed');\n * });\n */\n onceClose(clb) {\n this.em.once('modal:close', clb);\n return this;\n },\n\n /**\n * Execute callback when the modal will be opened.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceOpen(() => {\n * console.log('The modal is opened');\n * });\n */\n onceOpen(clb) {\n this.em.once('modal:open', clb);\n return this;\n },\n\n /**\n * Checks if the modal window is open\n * @returns {Boolean}\n * @example\n * modal.isOpen(); // true | false\n */\n isOpen() {\n return !!model.get('open');\n },\n\n /**\n * Set the title to the modal window\n * @param {string | HTMLElement} title Title\n * @returns {this}\n * @example\n * // pass a string\n * modal.setTitle('Some title');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New title';\n * modal.setTitle(el);\n */\n setTitle(title) {\n model.set('title', title);\n return this;\n },\n\n /**\n * Returns the title of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getTitle();\n */\n getTitle() {\n return model.get('title');\n },\n\n /**\n * Set the content of the modal window\n * @param {string | HTMLElement} content Content\n * @returns {this}\n * @example\n * // pass a string\n * modal.setContent('Some content');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New content';\n * modal.setContent(el);\n */\n setContent(content) {\n model.set('content', ' ');\n model.set('content', content);\n return this;\n },\n\n /**\n * Get the content of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getContent();\n */\n getContent() {\n return model.get('content');\n },\n\n /**\n * Returns content element\n * @return {HTMLElement}\n * @private\n */\n getContentEl() {\n return modal.getContent().get(0);\n },\n\n /**\n * Returns modal model\n * @return {Model}\n * @private\n */\n getModel() {\n return model;\n },\n\n /**\n * Render the modal window\n * @return {HTMLElement}\n * @private\n */\n render() {\n if (this.getConfig().custom) return;\n const View = ModalView.extend(c.extend);\n const el = modal && modal.el;\n modal = new View({\n el,\n model,\n config: c\n });\n return modal.render().$el;\n },\n\n destroy() {\n modal && modal.remove();\n [c, model, modal].forEach(i => (i = {}));\n this.em = {};\n }\n };\n};\n","export default {\n stylePrefix: '',\n\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Enable/Disable globally the possibility to sort layers\n sortable: 1,\n\n // Enable/Disable globally the possibility to hide layers\n hidable: 1,\n\n // Hide textnodes\n hideTextnode: 1,\n\n // Indicate a query string of the element to be selected as the root of layers.\n // By default the root is the wrapper\n root: '',\n\n // Indicates if the wrapper is visible in layers\n showWrapper: 1,\n\n // Show hovered components in canvas\n showHover: 1,\n\n // Scroll to selected component in Canvas when it's selected in Layers\n // true, false or `scrollIntoView`-like options,\n // `block: 'nearest'` avoids the issue of window scrolling\n scrollCanvas: { behavior: 'smooth', block: 'nearest' },\n\n // Scroll to selected component in Layers when it's selected in Canvas\n // true, false or `scrollIntoView`-like options\n scrollLayers: { behavior: 'auto', block: 'nearest' },\n\n // Highlight when a layer component is hovered\n highlightHover: 1,\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is initialized.\n * Useful to trigger updates on some component prop change.\n * @example\n * onInit({ component, render, listenTo }) {\n * listenTo(component, 'change:some-prop', render);\n * };\n */\n onInit: () => {},\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is rendered.\n * A callback useful to update the layer DOM on some component change\n * @example\n * onRender({ component, el }) { // el is the DOM of the layer\n * if (component.get('some-prop')) {\n * // do changes using the `el` DOM\n * }\n * }\n */\n onRender: () => {},\n\n /**\n * Extend Layer view object (view/ItemView.js)\n * @example\n * extend: {\n * setName(name) {\n * // this.model is the component of the layer\n * this.model.set('another-prop-for-name', name);\n * },\n * },\n */\n extend: {}\n};\n","import { isUndefined, isString, bindAll } from 'underscore';\nimport { View } from '../../common';\nimport { getModel, isEscKey, isEnterKey } from '../../utils/mixins';\nimport ComponentView from '../../dom_components/view/ComponentView';\nimport { eventDrag } from '../../dom_components/model/Component';\n\nconst inputProp = 'contentEditable';\nconst styleOpts = { mediaText: '' };\nconst isStyleHidden = (style = {}) => {\n return (style.display || '').trim().indexOf('none') === 0;\n};\nlet ItemsView;\n\nexport default class ItemView extends View {\n events() {\n return {\n 'mousedown [data-toggle-move]': 'startSort',\n 'touchstart [data-toggle-move]': 'startSort',\n 'click [data-toggle-visible]': 'toggleVisibility',\n 'click [data-toggle-open]': 'toggleOpening',\n 'click [data-toggle-select]': 'handleSelect',\n 'mouseover [data-toggle-select]': 'handleHover',\n 'mouseout [data-toggle-select]': 'handleHoverOut',\n 'dblclick [data-name]': 'handleEdit',\n 'keydown [data-name]': 'handleEditKey',\n 'focusout [data-name]': 'handleEditEnd',\n };\n }\n\n template(model) {\n const { pfx, ppfx, config, clsNoEdit } = this;\n const { hidable } = config;\n const count = this.countChildren(model);\n const addClass = !count ? this.clsNoChild : '';\n const clsTitle = `${this.clsTitle} ${addClass}`;\n const clsTitleC = `${this.clsTitleC} ${ppfx}one-bg`;\n const clsCaret = `${this.clsCaret} fa fa-chevron-right`;\n const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`;\n const level = this.level + 1;\n const gut = `${30 + level * 10}px`;\n const name = model.getName();\n const icon = model.getIcon();\n const clsBase = `${pfx}layer`;\n\n return `\n ${\n hidable\n ? ``\n : ''\n }\n
\n
\n
\n \n ${icon ? `${icon}` : ''}\n ${name}\n
\n
\n
\n
${count || ''}
\n
\n \n
\n
`;\n }\n\n initialize(o = {}) {\n bindAll(this, '__render');\n this.opt = o;\n this.level = o.level;\n const config = o.config || {};\n const { onInit } = config;\n this.config = config;\n this.em = o.config.em;\n this.ppfx = this.em.get('Config').stylePrefix;\n this.sorter = o.sorter || '';\n this.pfx = this.config.stylePrefix;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const model = this.model;\n const components = model.get('components');\n const type = model.get('type') || 'default';\n model.set('open', false);\n this.listenTo(components, 'remove add reset', this.checkChildren);\n [\n ['change:status', this.updateStatus],\n ['change:open', this.updateOpening],\n ['change:layerable', this.updateLayerable],\n ['change:style:display', this.updateVisibility],\n ['rerender:layer', this.render],\n ['change:name change:custom-name', this.updateName],\n ].forEach(item => this.listenTo(model, item[0], item[1]));\n this.className = `${pfx}layer ${pfx}layer__t-${type} no-select ${ppfx}two-color`;\n this.inputNameCls = `${ppfx}layer-name`;\n this.clsTitleC = `${pfx}layer-title-c`;\n this.clsTitle = `${pfx}layer-title`;\n this.clsCaret = `${pfx}layer-caret`;\n this.clsCount = `${pfx}layer-count`;\n this.clsMove = `${pfx}layer-move`;\n this.clsChildren = `${pfx}layer-children`;\n this.clsNoChild = `${pfx}layer-no-chld`;\n this.clsEdit = `${this.inputNameCls}--edit`;\n this.clsNoEdit = `${this.inputNameCls}--no-edit`;\n this.$el.data('model', model);\n this.$el.data('collection', components);\n model.viewLayer = this;\n onInit.bind(this)({\n component: model,\n render: this.__render,\n listenTo: this.listenTo,\n });\n }\n\n updateName() {\n this.getInputName().innerText = this.model.getName();\n }\n\n getVisibilityEl() {\n if (!this.eyeEl) {\n this.eyeEl = this.$el.children(`.${this.pfx}layer-vis`);\n }\n\n return this.eyeEl;\n }\n\n updateVisibility() {\n const pfx = this.pfx;\n const model = this.model;\n const hClass = `${pfx}layer-hidden`;\n const hideIcon = 'fa-eye-slash';\n const hidden = isStyleHidden(model.getStyle(styleOpts));\n const method = hidden ? 'addClass' : 'removeClass';\n this.$el[method](hClass);\n this.getVisibilityEl()[method](hideIcon);\n }\n\n /**\n * Toggle visibility\n * @param\tEvent\n *\n * @return \tvoid\n * */\n toggleVisibility(e) {\n e && e.stopPropagation();\n const { model, em } = this;\n const prevDspKey = '__prev-display';\n const prevDisplay = model.get(prevDspKey);\n const style = model.getStyle(styleOpts);\n const { display } = style;\n const hidden = isStyleHidden(style);\n\n if (hidden) {\n delete style.display;\n\n if (prevDisplay) {\n style.display = prevDisplay;\n model.unset(prevDspKey);\n }\n } else {\n display && model.set(prevDspKey, display);\n style.display = 'none';\n }\n\n model.setStyle(style, styleOpts);\n em && em.trigger('component:toggled'); // Updates Style Manager #2938\n }\n\n /**\n * Handle the edit of the component name\n */\n handleEdit(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n inputEl[inputProp] = true;\n inputEl.focus();\n document.execCommand('selectAll', false, null);\n em && em.setEditing(1);\n $el.find(`.${this.inputNameCls}`).removeClass(clsNoEdit).addClass(clsEdit);\n }\n\n handleEditKey(ev) {\n ev.stopPropagation();\n (isEscKey(ev) || isEnterKey(ev)) && this.handleEditEnd(ev);\n }\n\n /**\n * Handle with the end of editing of the component name\n */\n handleEditEnd(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n const name = inputEl.textContent;\n inputEl.scrollLeft = 0;\n inputEl[inputProp] = false;\n this.setName(name, { component: this.model, propName: 'custom-name' });\n em && em.setEditing(0);\n $el.find(`.${this.inputNameCls}`).addClass(clsNoEdit).removeClass(clsEdit);\n }\n\n setName(name, { propName }) {\n this.model.set(propName, name);\n }\n\n /**\n * Get the input containing the name of the component\n * @return {HTMLElement}\n */\n getInputName() {\n if (!this.inputName) {\n this.inputName = this.el.querySelector(`.${this.inputNameCls}`);\n }\n return this.inputName;\n }\n\n /**\n * Update item opening\n *\n * @return void\n * */\n updateOpening() {\n var opened = this.opt.opened || {};\n var model = this.model;\n const chvDown = 'fa-chevron-down';\n\n if (model.get('open')) {\n this.$el.addClass('open');\n this.getCaret().addClass(chvDown);\n opened[model.cid] = model;\n } else {\n this.$el.removeClass('open');\n this.getCaret().removeClass(chvDown);\n delete opened[model.cid];\n }\n }\n\n /**\n * Toggle item opening\n * @param {Object}\te\n *\n * @return void\n * */\n toggleOpening(e) {\n const { model } = this;\n e.stopImmediatePropagation();\n\n if (!model.get('components').length) return;\n\n model.set('open', !model.get('open'));\n }\n\n /**\n * Handle component selection\n */\n handleSelect(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n\n if (em) {\n em.setSelected(model, { fromLayers: 1, event: e });\n const scroll = config.scrollCanvas;\n scroll && model.views.forEach(view => view.scrollIntoView(scroll));\n }\n }\n\n /**\n * Handle component selection\n */\n handleHover(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n em && config.showHover && em.setHovered(model, { fromLayers: 1 });\n }\n\n handleHoverOut(ev) {\n ev.stopPropagation();\n const { em, config } = this;\n em && config.showHover && em.setHovered(0, { fromLayers: 1 });\n }\n\n /**\n * Delegate to sorter\n * @param\tEvent\n * */\n startSort(e) {\n e.stopPropagation();\n const { em, sorter } = this;\n // Right or middel click\n if (e.button && e.button !== 0) return;\n\n if (sorter) {\n sorter.onStart = data => em.trigger(`${eventDrag}:start`, data);\n sorter.onMoveClb = data => em.trigger(eventDrag, data);\n sorter.startSort(e.target);\n }\n }\n\n /**\n * Freeze item\n * @return\tvoid\n * */\n freeze() {\n this.$el.addClass(this.pfx + 'opac50');\n this.model.set('open', 0);\n }\n\n /**\n * Unfreeze item\n * @return\tvoid\n * */\n unfreeze() {\n this.$el.removeClass(this.pfx + 'opac50');\n }\n\n /**\n * Update item on status change\n * @param\tEvent\n * */\n updateStatus(e) {\n ComponentView.prototype.updateStatus.apply(this, [\n {\n avoidHover: !this.config.highlightHover,\n noExtHl: 1,\n },\n ]);\n }\n\n /**\n * Check if component is visible\n *\n * @return boolean\n * */\n isVisible() {\n return !isStyleHidden(this.model.getStyle());\n }\n\n /**\n * Update item aspect after children changes\n *\n * @return void\n * */\n checkChildren() {\n const { model, clsNoChild } = this;\n const count = this.countChildren(model);\n const title = this.$el.children(`.${this.clsTitleC}`).children(`.${this.clsTitle}`);\n let { cnt } = this;\n\n if (!cnt) {\n cnt = this.$el.children('[data-count]').get(0);\n this.cnt = cnt;\n }\n\n title[count ? 'removeClass' : 'addClass'](clsNoChild);\n if (cnt) cnt.innerHTML = count || '';\n !count && model.set('open', 0);\n }\n\n /**\n * Count children inside model\n * @param {Object} model\n * @return {number}\n * @private\n */\n countChildren(model) {\n var count = 0;\n model.get('components').each(function (m) {\n var isCountable = this.opt.isCountable;\n var hide = this.config.hideTextnode;\n if (isCountable && !isCountable(m, hide)) return;\n count++;\n }, this);\n return count;\n }\n\n getCaret() {\n if (!this.caret || !this.caret.length) {\n const pfx = this.pfx;\n this.caret = this.$el.children(`.${this.clsTitleC}`).find(`.${this.clsCaret}`);\n }\n\n return this.caret;\n }\n\n setRoot(el) {\n el = isString(el) ? this.em.getWrapper().find(el)[0] : el;\n const model = getModel(el);\n if (!model) return;\n this.stopListening();\n this.model = model;\n this.initialize(this.opt);\n this._rendered && this.render();\n }\n\n updateLayerable() {\n const { parentView } = this;\n const toRerender = parentView || this;\n toRerender.render();\n }\n\n __clearItems() {\n const { items } = this;\n items && items.remove();\n }\n\n remove() {\n View.prototype.remove.apply(this, arguments);\n this.__clearItems();\n }\n\n render() {\n const { model, config, pfx, ppfx, opt } = this;\n this.__clearItems();\n const { isCountable } = opt;\n const hidden = isCountable && !isCountable(model, config.hideTextnode);\n const vis = this.isVisible();\n const el = this.$el.empty();\n const level = this.level + 1;\n this.inputName = 0;\n\n if (isUndefined(ItemsView)) {\n ItemsView = require('./ItemsView').default;\n }\n\n this.items = new ItemsView({\n ItemView: opt.ItemView,\n collection: model.get('components'),\n config: this.config,\n sorter: this.sorter,\n opened: this.opt.opened,\n parentView: this,\n parent: model,\n level,\n });\n const children = this.items.render().$el;\n\n if (!this.config.showWrapper && level === 1) {\n el.append(children);\n } else {\n el.html(this.template(model));\n el.find(`.${this.clsChildren}`).append(children);\n }\n\n if (!model.get('draggable') || !this.config.sortable) {\n el.children(`.${this.clsMove}`).remove();\n }\n\n !vis && (this.className += ` ${pfx}hide`);\n hidden && (this.className += ` ${ppfx}hidden`);\n el.attr('class', this.className);\n this.updateOpening();\n this.updateStatus();\n this.updateVisibility();\n this.__render();\n this._rendered = 1;\n return this;\n }\n\n __render() {\n const { model, config, el } = this;\n const { onRender } = config;\n const opt = { component: model, el };\n onRender.bind(this)(opt);\n this.em.trigger('layer:render', opt);\n }\n}\n","import { isElement } from 'underscore';\nimport defaults from './config/config';\nimport View from './view/ItemView';\n\nexport default () => {\n let em;\n let layers;\n let config = {};\n\n return {\n name: 'LayerManager',\n\n init(opts = {}) {\n config = { ...defaults, ...opts };\n config.stylePrefix = opts.pStylePrefix;\n em = config.em;\n return this;\n },\n\n getConfig() {\n return config;\n },\n\n onLoad() {\n em && em.on('component:selected', this.componentChanged);\n this.componentChanged();\n },\n\n postRender() {\n const elTo = config.appendTo;\n const root = config.root;\n root && this.setRoot(root);\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render());\n }\n },\n\n /**\n * Set new root for layers\n * @param {HTMLElement|Component|String} el Component to be set as the root\n * @return {self}\n */\n setRoot(el) {\n layers && layers.setRoot(el);\n return this;\n },\n\n /**\n * Get the root of layers\n * @return {Component}\n */\n getRoot() {\n return layers && layers.model;\n },\n\n /**\n * Return the view of layers\n * @return {View}\n */\n getAll() {\n return layers;\n },\n\n /**\n * Triggered when the selected component is changed\n * @private\n */\n componentChanged(selected, opts = {}) {\n if (opts.fromLayers) return;\n const opened = em.get('opened');\n const model = em.getSelected();\n const scroll = config.scrollLayers;\n let parent = model && model.collection ? model.collection.parent : null;\n for (let cid in opened) opened[cid].set('open', 0);\n\n while (parent) {\n parent.set('open', 1);\n opened[parent.cid] = parent;\n parent = parent.collection ? parent.collection.parent : null;\n }\n\n if (model && scroll) {\n const el = model.viewLayer && model.viewLayer.el;\n el && el.scrollIntoView(scroll);\n }\n },\n\n render() {\n const ItemView = View.extend(config.extend);\n layers && layers.remove();\n layers = new ItemView({\n ItemView,\n level: 0,\n config,\n opened: config.opened || {},\n model: em.get('DomComponents').getWrapper(),\n });\n return layers.render().el;\n },\n\n destroy() {\n layers && layers.remove();\n [em, layers, config].forEach(i => (i = {}));\n },\n };\n};\n","import { View } from '../../common';\nimport { eventDrag } from '../../dom_components/model/Component';\n\nexport default class ItemsView extends View {\n initialize(o = {}) {\n this.items = [];\n this.opt = o;\n const config = o.config || {};\n this.level = o.level;\n this.config = config;\n this.preview = o.preview;\n this.ppfx = config.pStylePrefix || '';\n this.pfx = config.stylePrefix || '';\n this.parent = o.parent;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const parent = this.parent;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset resetNavigator', this.render);\n this.listenTo(coll, 'remove', this.removeChildren);\n this.className = `${pfx}layers`;\n const em = config.em;\n\n if (config.sortable && !this.opt.sorter) {\n const utils = em.get('Utils');\n this.opt.sorter = new utils.Sorter({\n container: config.sortContainer || this.el,\n containerSel: `.${this.className}`,\n itemSel: `.${pfx}layer`,\n ignoreViewChildren: 1,\n onEndMove(created, sorter, data) {\n const srcModel = sorter.getSourceModel();\n em.setSelected(srcModel, { forceChange: 1 });\n em.trigger(`${eventDrag}:end`, data);\n },\n avoidSelectOnEnd: 1,\n nested: 1,\n ppfx,\n pfx,\n });\n }\n\n this.sorter = this.opt.sorter || '';\n\n // For the sorter\n this.$el.data('collection', coll);\n parent && this.$el.data('model', parent);\n }\n\n removeChildren(removed) {\n const view = removed.viewLayer;\n if (!view) return;\n view.remove();\n removed.viewLayer = 0;\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * */\n addTo(model) {\n var i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n * @param integer Index of append\n *\n * @return Object Object created\n * */\n addToCollection(model, fragmentEl, index) {\n const { level, parentView, opt } = this;\n const { ItemView } = opt;\n const fragment = fragmentEl || null;\n const item = new ItemView({\n ItemView,\n level,\n model,\n parentView,\n config: this.config,\n sorter: this.sorter,\n isCountable: this.isCountable,\n opened: this.opt.opened,\n });\n const rendered = item.render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n if (typeof index != 'undefined') {\n var method = 'before';\n // If the added model is the last of collection\n // need to change the logic of append\n if (this.$el.children().length == index) {\n index--;\n method = 'after';\n }\n // In case the added is new in the collection index will be -1\n if (index < 0) {\n this.$el.append(rendered);\n } else this.$el.children().eq(index)[method](rendered);\n } else this.$el.append(rendered);\n }\n this.items.push(item);\n return rendered;\n }\n\n remove() {\n View.prototype.remove.apply(this, arguments);\n this.items.map(i => i.remove());\n }\n\n /**\n * Check if the model could be count by the navigator\n * @param {Object} model\n * @return {Boolean}\n * @private\n */\n isCountable(model, hide) {\n var type = model.get('type');\n var tag = model.get('tagName');\n if (((type == 'textnode' || tag == 'br') && hide) || !model.get('layerable')) {\n return false;\n }\n return true;\n }\n\n render() {\n const frag = document.createDocumentFragment();\n const el = this.el;\n el.innerHTML = '';\n this.collection.each(model => this.addToCollection(model, frag));\n el.appendChild(frag);\n el.className = this.className;\n return this;\n }\n}\n","import { result, forEach } from 'underscore';\nimport { Model } from '../../common';\nimport Frames from '../../canvas/model/Frames';\n\nexport default class Page extends Model {\n defaults() {\n return {\n frames: [],\n _undo: true,\n };\n }\n\n initialize(props, opts = {}) {\n const { config = {} } = opts;\n const { em } = config;\n const defFrame = {};\n this.em = em;\n if (!props.frames) {\n defFrame.component = props.component;\n defFrame.styles = props.styles;\n ['component', 'styles'].map(i => this.unset(i));\n }\n const frms = props.frames || [defFrame];\n const frames = new Frames(frms, config);\n frames.page = this;\n this.set('frames', frames);\n const um = em && em.get('UndoManager');\n um && um.add(frames);\n }\n\n onRemove() {\n this.get('frames').reset();\n }\n\n getFrames() {\n return this.get('frames');\n }\n\n /**\n * Get page id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get page name\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Update page name\n * @param {String} name New page name\n * @example\n * page.setName('New name');\n */\n setName(name) {\n return this.get({ name });\n }\n\n /**\n * Get all frames\n * @returns {Array}\n * @example\n * const arrayOfFrames = page.getAllFrames();\n */\n getAllFrames() {\n return this.getFrames().models || [];\n }\n\n /**\n * Get the first frame of the page (identified always as the main one)\n * @returns {Frame}\n * @example\n * const mainFrame = page.getMainFrame();\n */\n getMainFrame() {\n return this.getFrames().at(0);\n }\n\n /**\n * Get the root component (usually is the `wrapper` component) from the main frame\n * @returns {Component}\n * @example\n * const rootComponent = page.getMainComponent();\n * console.log(rootComponent.toHTML());\n */\n getMainComponent() {\n const frame = this.getMainFrame();\n return frame && frame.getComponent();\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const defaults = result(this, 'defaults');\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n return obj;\n }\n}\n","import { Collection } from '../../common';\nimport Page from './Page';\n\nexport default class Pages extends Collection {\n initialize(models, config = {}) {\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nPages.prototype.model = Page;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * ....\n * pageManager: {\n * pages: [\n * {\n * id: 'page-id',\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * }\n * ]\n * },\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const pageManager = editor.Pages;\n * ```\n *\n * ## Available Events\n * * `page:add` - Added new page. The page is passed as an argument to the callback\n * * `page:remove` - Page removed. The page is passed as an argument to the callback\n * * `page:select` - New page selected. The newly selected page and the previous one, are passed as arguments to the callback\n * * `page:update` - Page updated. The updated page and the object containing changes are passed as arguments to the callback\n * * `page` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllWrappers](#getallwrappers)\n * * [getMain](#getmain)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Page]: page.html\n * [Component]: component.html\n *\n * @module Pages\n */\n\nimport { isString, bindAll, unique, flatten } from 'underscore';\nimport { createId } from '../utils/mixins';\nimport { Model, Module } from '../common';\nimport Pages from './model/Pages';\nimport Page from './model/Page';\n\nexport const evAll = 'page';\nexport const evPfx = `${evAll}:`;\nexport const evPageSelect = `${evPfx}select`;\nexport const evPageSelectBefore = `${evPageSelect}:before`;\nexport const evPageUpdate = `${evPfx}update`;\nexport const evPageAdd = `${evPfx}add`;\nexport const evPageAddBefore = `${evPageAdd}:before`;\nexport const evPageRemove = `${evPfx}remove`;\nexport const evPageRemoveBefore = `${evPageRemove}:before`;\nconst chnSel = 'change:selected';\nconst typeMain = 'main';\n\nexport default () => {\n return {\n ...Module,\n\n name: 'PageManager',\n\n storageKey: 'pages',\n\n Page,\n\n Pages,\n\n events: {\n all: evAll,\n select: evPageSelect,\n selectBefore: evPageSelectBefore,\n update: evPageUpdate,\n add: evPageAdd,\n addBefore: evPageAddBefore,\n remove: evPageRemove,\n removeBefore: evPageRemoveBefore,\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n bindAll(this, '_onPageChange');\n const { em } = opts;\n const cnf = { ...opts };\n this.config = cnf;\n this.em = em;\n const pages = new Pages([], cnf);\n this.pages = pages;\n this.all = pages;\n const model = new Model({ _undo: true });\n this.model = model;\n pages.on('add', (p, c, o) => em.trigger(evPageAdd, p, o));\n pages.on('remove', (p, c, o) => em.trigger(evPageRemove, p, o));\n pages.on('change', (p, c) => {\n em.trigger(evPageUpdate, p, p.changedAttributes(), c);\n });\n pages.on('reset', coll => coll.at(0) && this.select(coll.at(0)));\n pages.on('all', this.__onChange, this);\n model.on(chnSel, this._onPageChange);\n\n return this;\n },\n\n __onChange(event, page, coll, opts) {\n const options = opts || coll;\n this.em.trigger(evAll, { event, page, options });\n },\n\n onLoad() {\n const { pages } = this;\n const opt = { silent: true };\n pages.add(this.config.pages || [], opt);\n const mainPage = !pages.length ? this.add({ type: typeMain }, opt) : this.getMain();\n this.select(mainPage, opt);\n },\n\n _onPageChange(m, page, opts) {\n const { em } = this;\n const lm = em.get('LayerManager');\n const mainComp = page.getMainComponent();\n lm && mainComp && lm.setRoot(mainComp);\n em.trigger(evPageSelect, page, m.previous('selected'));\n this.__onChange(chnSel, page, opts);\n },\n\n postLoad() {\n const { em, model } = this;\n const um = em.get('UndoManager');\n um && um.add(model);\n um && um.add(this.pages);\n },\n\n /**\n * Add new page\n * @param {Object} props Page properties\n * @param {Object} [opts] Options\n * @returns {[Page]}\n * @example\n * const newPage = pageManager.add({\n * id: 'new-page-id', // without an explicit ID, a random one will be created\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * });\n */\n add(props, opts = {}) {\n const { em } = this;\n props.id = props.id || this._createId();\n const add = () => {\n const page = this.pages.add(props, opts);\n opts.select && this.select(page);\n return page;\n };\n !opts.silent && em.trigger(evPageAddBefore, props, add, opts);\n return !opts.abort && add();\n },\n\n /**\n * Remove page\n * @param {String|[Page]} page Page or page id\n * @returns {[Page]} Removed Page\n * @example\n * const removedPage = pageManager.remove('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.remove(somePage);\n */\n remove(page, opts = {}) {\n const { em } = this;\n const pg = isString(page) ? this.get(page) : page;\n const rm = () => {\n pg && this.pages.remove(pg, opts);\n return pg;\n };\n !opts.silent && em.trigger(evPageRemoveBefore, pg, rm, opts);\n return !opts.abort && rm();\n },\n\n /**\n * Get page by id\n * @param {String} id Page id\n * @returns {[Page]}\n * @example\n * const somePage = pageManager.get('page-id');\n */\n get(id) {\n return this.pages.filter(p => p.get('id') === id)[0];\n },\n\n /**\n * Get main page (the first one available)\n * @returns {[Page]}\n * @example\n * const mainPage = pageManager.getMain();\n */\n getMain() {\n const { pages } = this;\n return pages.filter(p => p.get('type') === typeMain)[0] || pages.at(0);\n },\n\n /**\n * Get all pages\n * @returns {Array<[Page]>}\n * @example\n * const arrayOfPages = pageManager.getAll();\n */\n getAll() {\n return [...this.pages.models];\n },\n\n /**\n * Get wrapper components (aka body) from all pages and frames.\n * @returns {Array<[Component]>}\n * @example\n * const wrappers = pageManager.getAllWrappers();\n * // Get all `image` components from the project\n * const allImages = wrappers.map(wrp => wrp.findType('image')).flat();\n */\n getAllWrappers() {\n const pages = this.getAll();\n return unique(flatten(pages.map(page => page.getAllFrames().map(frame => frame.getComponent()))));\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get('id')] = i;\n return acc;\n }, {});\n },\n\n /**\n * Change the selected page. This will switch the page rendered in canvas\n * @param {String|[Page]} page Page or page id\n * @returns {this}\n * @example\n * pageManager.select('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.select(somePage);\n */\n select(page, opts = {}) {\n const pg = isString(page) ? this.get(page) : page;\n if (pg) {\n this.em.trigger(evPageSelectBefore, pg, opts);\n this.model.set('selected', pg, opts);\n }\n return this;\n },\n\n /**\n * Get the selected page\n * @returns {[Page]}\n * @example\n * const selectedPage = pageManager.getSelected();\n */\n getSelected() {\n return this.model.get('selected');\n },\n\n destroy() {\n this.pages.off().reset();\n this.model.stopListening();\n this.model.clear({ silent: true });\n ['selected', 'config', 'em', 'pages', 'model'].map(i => (this[i] = 0));\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data, { all: this.pages, reset: true });\n },\n\n _createId() {\n const pages = this.getAll();\n const len = pages.length + 16;\n const pagesMap = this.getAllMap();\n let id;\n\n do {\n id = createId(len);\n } while (pagesMap[id]);\n\n return id;\n },\n };\n};\n","const swv = 'sw-visibility';\nconst expt = 'export-template';\nconst osm = 'open-sm';\nconst otm = 'open-tm';\nconst ola = 'open-layers';\nconst obl = 'open-blocks';\nconst ful = 'fullscreen';\nconst prv = 'preview';\n\nexport default {\n stylePrefix: 'pn-',\n\n // Default panels fa-sliders for features\n defaults: [\n {\n id: 'commands',\n buttons: [{}]\n },\n {\n id: 'options',\n buttons: [\n {\n active: true,\n id: swv,\n className: 'fa fa-square-o',\n command: swv,\n context: swv,\n attributes: { title: 'View components' }\n },\n {\n id: prv,\n className: 'fa fa-eye',\n command: prv,\n context: prv,\n attributes: { title: 'Preview' }\n },\n {\n id: ful,\n className: 'fa fa-arrows-alt',\n command: ful,\n context: ful,\n attributes: { title: 'Fullscreen' }\n },\n {\n id: expt,\n className: 'fa fa-code',\n command: expt,\n attributes: { title: 'View code' }\n }\n ]\n },\n {\n id: 'views',\n buttons: [\n {\n id: osm,\n className: 'fa fa-paint-brush',\n command: osm,\n active: true,\n togglable: 0,\n attributes: { title: 'Open Style Manager' }\n },\n {\n id: otm,\n className: 'fa fa-cog',\n command: otm,\n togglable: 0,\n attributes: { title: 'Settings' }\n },\n {\n id: ola,\n className: 'fa fa-bars',\n command: ola,\n togglable: 0,\n attributes: { title: 'Open Layer Manager' }\n },\n {\n id: obl,\n className: 'fa fa-th-large',\n command: obl,\n togglable: 0,\n attributes: { title: 'Open Blocks' }\n }\n ]\n }\n ],\n\n // Editor model\n em: null,\n\n // Delay before show children buttons (in milliseconds)\n delayBtnsShow: 300\n};\n","import { Model } from '../../common';\nimport Buttons from './Buttons';\n\nexport default class Panel extends Model {\n defaults() {\n return {\n id: '',\n content: '',\n visible: true,\n buttons: [],\n attributes: {},\n };\n }\n\n initialize(options) {\n this.btn = this.get('buttons') || [];\n this.buttons = new Buttons(this.btn);\n this.set('buttons', this.buttons);\n }\n}\n","import { Collection } from '../../common';\nimport Panel from './Panel';\n\nexport default class Panels extends Collection {}\n\nPanels.prototype.model = Panel;\n","import { isString, isObject, isFunction } from 'underscore';\nimport { View } from '../../common';\n\nexport default class ButtonView extends View {\n tagName() {\n return this.model.get('tagName');\n }\n\n events() {\n return {\n click: 'clicked',\n };\n }\n\n initialize(o) {\n const { model } = this;\n const cls = model.get('className');\n const { command, listen } = model.attributes;\n const config = o.config || {};\n const { em } = config;\n this.config = config;\n this.em = em;\n const pfx = this.config.stylePrefix || '';\n const ppfx = this.config.pStylePrefix || '';\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix || '';\n this.id = pfx + model.get('id');\n this.activeCls = `${pfx}active ${ppfx}four-color`;\n this.disableCls = `${ppfx}disabled`;\n this.btnsVisCls = `${pfx}visible`;\n this.className = pfx + 'btn' + (cls ? ' ' + cls : '');\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'change:active updateActive', this.updateActive);\n this.listenTo(model, 'checkActive', this.checkActive);\n this.listenTo(model, 'change:bntsVis', this.updateBtnsVis);\n this.listenTo(model, 'change:attributes', this.updateAttributes);\n this.listenTo(model, 'change:className', this.updateClassName);\n this.listenTo(model, 'change:disable', this.updateDisable);\n\n if (em && isString(command) && listen) {\n const chnOpt = { fromListen: 1 };\n this.listenTo(em, `run:${command}`, () => model.set('active', true, chnOpt));\n this.listenTo(em, `stop:${command}`, () => model.set('active', false, chnOpt));\n }\n\n if (em && em.get) this.commands = em.get('Commands');\n }\n\n /**\n * Updates class name of the button\n *\n * @return void\n * */\n updateClassName() {\n const { model, pfx } = this;\n const cls = model.get('className');\n const attrCls = model.get('attributes').class;\n const classStr = `${attrCls ? attrCls : ''} ${pfx}btn ${cls ? cls : ''}`;\n this.$el.attr('class', classStr.trim());\n }\n\n /**\n * Updates attributes of the button\n *\n * @return void\n * */\n updateAttributes() {\n const { em, model, $el } = this;\n const attr = model.get('attributes') || {};\n const title = em && em.t && em.t(`panels.buttons.titles.${model.id}`);\n $el.attr(attr);\n title && $el.attr({ title });\n\n this.updateClassName();\n }\n\n /**\n * Updates visibility of children buttons\n *\n * @return void\n * */\n updateBtnsVis() {\n if (!this.$buttons) return;\n\n if (this.model.get('bntsVis')) this.$buttons.addClass(this.btnsVisCls);\n else this.$buttons.removeClass(this.btnsVisCls);\n }\n\n /**\n * Update active status of the button\n *\n * @return void\n * */\n updateActive(m, v, opts = {}) {\n const { model, commands, $el, activeCls } = this;\n const { fromCollection, fromListen } = opts;\n const context = model.get('context');\n const options = model.get('options');\n const commandName = model.get('command');\n let command = {};\n\n if (!commandName) return;\n\n if (commands && isString(commandName)) {\n command = commands.get(commandName) || {};\n } else if (isFunction(commandName)) {\n command = commands.create({ run: commandName });\n } else if (commandName !== null && isObject(commandName)) {\n command = commands.create(commandName);\n }\n\n if (model.get('active')) {\n !fromCollection && model.collection.deactivateAll(context, model);\n model.set('active', true, { silent: true }).trigger('checkActive');\n !fromListen && commands.runCommand(command, { ...options, sender: model });\n\n // Disable button if the command has no stop method\n command.noStop && model.set('active', false);\n } else {\n $el.removeClass(activeCls);\n !fromListen && commands.stopCommand(command, { ...options, sender: model, force: 1 });\n }\n }\n\n updateDisable() {\n const { disableCls, model } = this;\n const disable = model.get('disable');\n this.$el[disable ? 'addClass' : 'removeClass'](disableCls);\n }\n\n /**\n * Update active style status\n *\n * @return void\n * */\n checkActive() {\n const { model, $el, activeCls } = this;\n model.get('active') ? $el.addClass(activeCls) : $el.removeClass(activeCls);\n }\n\n /**\n * Triggered when button is clicked\n * @param {Object} e Event\n *\n * @return void\n * */\n clicked(e) {\n const { model } = this;\n\n if (model.get('bntsVis') || model.get('disable') || !model.get('command')) return;\n\n this.toggleActive();\n }\n\n toggleActive() {\n const { model, em } = this;\n const { active, togglable } = model.attributes;\n\n if (active && !togglable) return;\n\n model.set('active', !active);\n\n // If the stop is requested\n if (active) {\n if (model.get('runDefaultCommand')) em.runDefault();\n } else {\n if (model.get('stopDefaultCommand')) em.stopDefault();\n }\n }\n\n render() {\n const { model } = this;\n const label = model.get('label');\n const { $el } = this;\n !model.get('el') && $el.empty();\n this.updateAttributes();\n label && $el.append(label);\n this.checkActive();\n this.updateDisable();\n\n return this;\n }\n}\n","import { result } from 'underscore';\nimport { View } from '../../common';\nimport ButtonView from './ButtonView';\n\nexport default class ButtonsView extends View {\n initialize(o) {\n this.opt = o || {};\n this.config = this.opt.config || {};\n this.pfx = this.config.stylePrefix || '';\n this.parentM = this.opt.parentM || null;\n this.listenTo(this.collection, 'add', this.addTo);\n this.listenTo(this.collection, 'reset remove', this.render);\n this.className = this.pfx + 'buttons';\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n *\n * @return Object Object created\n * */\n addToCollection(model, fragmentEl) {\n const fragment = fragmentEl || null;\n const viewObject = ButtonView;\n const el = model.get('el');\n const view = new viewObject({\n el,\n model,\n config: this.config,\n parentM: this.parentM,\n });\n const rendered = view.render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n this.$el.append(rendered);\n }\n\n return rendered;\n }\n\n render() {\n var fragment = document.createDocumentFragment();\n this.$el.empty();\n\n this.collection.each(function (model) {\n this.addToCollection(model, fragment);\n }, this);\n\n this.$el.append(fragment);\n this.$el.attr('class', result(this, 'className'));\n return this;\n }\n}\n","import { View } from '../../common';\nimport ButtonsView from './ButtonsView';\n\nexport default class PanelView extends View {\n initialize(o) {\n const config = o.config || {};\n const model = this.model;\n this.config = config;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.buttons = model.get('buttons');\n this.className = this.pfx + 'panel';\n this.id = this.pfx + model.get('id');\n this.listenTo(model, 'change:appendContent', this.appendContent);\n this.listenTo(model, 'change:content', this.updateContent);\n this.listenTo(model, 'change:visible', this.toggleVisible);\n model.view = this;\n }\n\n /**\n * Append content of the panel\n * */\n appendContent() {\n this.$el.append(this.model.get('appendContent'));\n }\n\n /**\n * Update content\n * */\n updateContent() {\n this.$el.html(this.model.get('content'));\n }\n\n toggleVisible() {\n if (!this.model.get('visible')) {\n this.$el.addClass(`${this.ppfx}hidden`);\n return;\n }\n this.$el.removeClass(`${this.ppfx}hidden`);\n }\n\n attributes() {\n return this.model.get('attributes');\n }\n\n initResize() {\n const em = this.config.em;\n const editor = em ? em.get('Editor') : '';\n const resizable = this.model.get('resizable');\n\n if (editor && resizable) {\n var resz = resizable === true ? [1, 1, 1, 1] : resizable;\n var resLen = resz.length;\n var tc,\n cr,\n bc,\n cl = 0;\n\n // Choose which sides of the panel are resizable\n if (resLen == 2) {\n tc = resz[0];\n bc = resz[0];\n cr = resz[1];\n cl = resz[1];\n } else if (resLen == 4) {\n tc = resz[0];\n cr = resz[1];\n bc = resz[2];\n cl = resz[3];\n }\n\n var resizer = editor.Utils.Resizer.init({\n tc,\n cr,\n bc,\n cl,\n tl: 0,\n tr: 0,\n bl: 0,\n br: 0,\n appendTo: this.el,\n silentFrames: 1,\n avoidContainerUpdate: 1,\n prefix: editor.getConfig().stylePrefix,\n onEnd() {\n em && em.trigger('change:canvasOffset');\n },\n posFetcher: (el, { target }) => {\n const style = el.style;\n const config = resizer.getConfig();\n const keyWidth = config.keyWidth;\n const keyHeight = config.keyHeight;\n const rect = el.getBoundingClientRect();\n const forContainer = target == 'container';\n const styleWidth = style[keyWidth];\n const styleHeight = style[keyHeight];\n const width = styleWidth && !forContainer ? parseFloat(styleWidth) : rect.width;\n const height = styleHeight && !forContainer ? parseFloat(styleHeight) : rect.height;\n return {\n left: 0,\n top: 0,\n width,\n height,\n };\n },\n ...resizable,\n });\n resizer.blur = () => {};\n resizer.focus(this.el);\n }\n }\n\n render() {\n const $el = this.$el;\n const ppfx = this.ppfx;\n const cls = `${this.className} ${this.id} ${ppfx}one-bg ${ppfx}two-color`;\n $el.addClass(cls);\n\n this.toggleVisible();\n\n if (this.buttons.length) {\n var buttons = new ButtonsView({\n collection: this.buttons,\n config: this.config,\n });\n $el.append(buttons.render().el);\n }\n\n $el.append(this.model.get('content'));\n return this;\n }\n}\n","import { View } from '../../common';\nimport PanelView from './PanelView';\n\nexport default class PanelsView extends View {\n initialize(o) {\n this.opt = o || {};\n this.config = this.opt.config || {};\n this.pfx = this.config.stylePrefix || '';\n const items = this.collection;\n this.listenTo(items, 'add', this.addTo);\n this.listenTo(items, 'reset', this.render);\n this.listenTo(items, 'remove', this.onRemove);\n this.className = this.pfx + 'panels';\n }\n\n onRemove(model) {\n const view = model.view;\n view && view.remove();\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * @private\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n * @param integer Index of append\n *\n * @return Object Object created\n * @private\n * */\n addToCollection(model, fragmentEl) {\n const fragment = fragmentEl || null;\n const config = this.config;\n const el = model.get('el');\n const view = new PanelView({\n el,\n model,\n config,\n });\n const rendered = view.render().el;\n const appendTo = model.get('appendTo');\n\n // Do nothing if the panel was requested to be another element\n if (el) {\n } else if (appendTo) {\n var appendEl = document.querySelector(appendTo);\n appendEl.appendChild(rendered);\n } else {\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n this.$el.append(rendered);\n }\n }\n\n view.initResize();\n return rendered;\n }\n\n render() {\n const $el = this.$el;\n const frag = document.createDocumentFragment();\n $el.empty();\n this.collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.attr('class', this.className);\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/panels/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * panels: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const panelManager = editor.Panels;\n * ```\n *\n * * [addPanel](#addpanel)\n * * [addButton](#addbutton)\n * * [getButton](#getbutton)\n * * [getPanel](#getpanel)\n * * [getPanels](#getpanels)\n * * [getPanelsEl](#getpanelsel)\n * * [removePanel](#removepanel)\n * * [removeButton](#removebutton)\n *\n * @module Panels\n */\nimport defaults from './config/config';\nimport Panel from './model/Panel';\nimport Panels from './model/Panels';\nimport PanelsView from './view/PanelsView';\n\nexport default () => {\n var c = {};\n var panels, PanelsViewObj;\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Panels',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n panels = new Panels(c.defaults);\n return this;\n },\n\n /**\n * Returns the collection of panels\n * @return {Collection} Collection of panel\n */\n getPanels() {\n return panels;\n },\n\n /**\n * Returns panels element\n * @return {HTMLElement}\n */\n getPanelsEl() {\n return PanelsViewObj && PanelsViewObj.el;\n },\n\n /**\n * Add new panel to the collection\n * @param {Object|Panel} panel Object with right properties or an instance of Panel\n * @return {Panel} Added panel. Useful in case passed argument was an Object\n * @example\n * var newPanel = panelManager.addPanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n */\n addPanel(panel) {\n return panels.add(panel);\n },\n\n /**\n * Remove a panel from the collection\n * @param {Object|Panel|String} panel Object with right properties or an instance of Panel or Painel id\n * @return {Panel} Removed panel. Useful in case passed argument was an Object\n * @example\n * const newPanel = panelManager.removePanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n *\n * const newPanel = panelManager.removePanel('myNewPanel');\n *\n */\n removePanel(panel) {\n return panels.remove(panel);\n },\n\n /**\n * Get panel by ID\n * @param {string} id Id string\n * @return {Panel|null}\n * @example\n * var myPanel = panelManager.getPanel('myNewPanel');\n */\n getPanel(id) {\n var res = panels.where({ id });\n return res.length ? res[0] : null;\n },\n\n /**\n * Add button to the panel\n * @param {string} panelId Panel's ID\n * @param {Object|Button} button Button object or instance of Button\n * @return {Button|null} Added button. Useful in case passed button was an Object\n * @example\n * var newButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n * // It's also possible to pass the command as an object\n * // with .run and .stop methods\n * ...\n * command: {\n * run: function(editor) {\n * ...\n * },\n * stop: function(editor) {\n * ...\n * }\n * },\n * // Or simply like a function which will be evaluated as a single .run command\n * ...\n * command: function(editor) {\n * ...\n * }\n */\n addButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn ? pn.get('buttons').add(button) : null;\n },\n\n /**\n * Remove button from the panel\n * @param {String} panelId Panel's ID\n * @param {String} buttonId Button's ID\n * @return {Button|null} Removed button.\n * @example\n * const removedButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n *\n * const removedButton = panelManager.removeButton('myNewPanel', 'myNewButton');\n *\n */\n removeButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn && pn.get('buttons').remove(button);\n },\n\n /**\n * Get button from the panel\n * @param {string} panelId Panel's ID\n * @param {string} id Button's ID\n * @return {Button|null}\n * @example\n * var button = panelManager.getButton('myPanel','myButton');\n */\n getButton(panelId, id) {\n var pn = this.getPanel(panelId);\n if (pn) {\n var res = pn.get('buttons').where({ id });\n return res.length ? res[0] : null;\n }\n return null;\n },\n\n /**\n * Render panels and buttons\n * @return {HTMLElement}\n * @private\n */\n render() {\n PanelsViewObj && PanelsViewObj.remove();\n PanelsViewObj = new PanelsView({\n collection: panels,\n config: c\n });\n return PanelsViewObj.render().el;\n },\n\n /**\n * Active activable buttons\n * @private\n */\n active() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n btn.get('active') && btn.trigger('updateActive');\n });\n });\n },\n\n /**\n * Disable buttons flagged as disabled\n * @private\n */\n disableButtons() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n if (btn.get('disable')) btn.trigger('change:disable');\n });\n });\n },\n\n destroy() {\n panels.reset();\n panels.stopListening();\n PanelsViewObj && PanelsViewObj.remove();\n [c, panels, PanelsViewObj].forEach(i => (i = {}));\n },\n\n Panel\n };\n};\n","import { Model } from '../../common';\n\nexport default class Button extends Model {\n defaults() {\n return {\n id: '',\n label: '',\n tagName: 'span',\n className: '',\n command: '',\n context: '',\n buttons: [],\n attributes: {},\n options: {},\n active: false,\n dragDrop: false,\n togglable: true,\n runDefaultCommand: true,\n stopDefaultCommand: false,\n disable: false,\n };\n }\n\n initialize(options) {\n if (this.get('buttons').length) {\n var Buttons = require('./Buttons').default;\n this.set('buttons', new Buttons(this.get('buttons')));\n }\n }\n}\n","import { Collection } from '../../common';\nimport Button from './Button';\n\nexport default class Buttons extends Collection {\n /**\n * Deactivate all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n deactivateAllExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('active', false);\n if (r && model.get('buttons').length) model.get('buttons').deactivateAllExceptOne(except, r);\n }\n });\n }\n\n /**\n * Deactivate all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n deactivateAll(ctx, sender) {\n const context = ctx || '';\n this.forEach(model => {\n if (model.get('context') == context && model !== sender) {\n model.set('active', false, { fromCollection: 1 });\n }\n });\n }\n\n /**\n * Disables all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n disableAllButtons(ctx) {\n var context = ctx || '';\n this.forEach((model, index) => {\n if (model.get('context') == context) {\n model.set('disable', true);\n }\n });\n }\n\n /**\n * Disables all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n disableAllButtonsExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('disable', true);\n if (r && model.get('buttons').length) model.get('buttons').disableAllButtonsExceptOne(except, r);\n }\n });\n }\n}\n\nButtons.prototype.model = Button;\n","export default {\n textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'],\n\n // Custom CSS parser\n // @see https://grapesjs.com/docs/guides/Custom-CSS-parser.html\n parserCss: null,\n\n // Custom HTML parser\n // At the moment, the custom HTML parser should rely on DOM Node instance as the result\n // @example\n // The return should be an instance of an Node as the root to traverse\n // https://developer.mozilla.org/en-US/docs/Web/API/Node\n // parserHtml: (input, opts = {}) => (new DOMParser()).parseFromString(input, 'text/xml')\n // Here the result will be XMLDocument, which extends Node\n parserHtml: null,\n\n // Default HTML parser options (used in `parserModule.parseHtml(' tags\n allowScripts: false,\n\n // Allow unsafe HTML attributes (eg. `on*` inline event handlers)\n allowUnsafeAttr: false,\n },\n};\n","import { keys } from 'underscore';\n\n// At-rules\n// https://developer.mozilla.org/it/docs/Web/API/CSSRule#Type_constants\nconst atRules = {\n 4: 'media',\n 5: 'font-face',\n 6: 'page',\n 7: 'keyframes',\n 11: 'counter-style',\n 12: 'supports',\n 13: 'document',\n 14: 'font-feature-values',\n 15: 'viewport'\n};\nconst atRuleKeys = keys(atRules);\nconst singleAtRules = ['5', '6', '11', '15'];\nconst singleAtRulesNames = ['font-face', 'page', 'counter-style', 'viewport'];\n\n/**\n * Parse selector string to array.\n * Only classe based are valid as CSS rules inside editor, not valid\n * selectors will be dropped as additional\n * It's ok with the last part of the string as state (:hover, :active)\n * @param {string} str Selectors string\n * @return {Object}\n * @example\n * var res = parseSelector('.test1, .test1.test2, .test2 .test3');\n * console.log(res);\n * // {\n * //result: [['test1'], ['test1', 'test2']],\n * //add: ['.test2 .test3']\n * //}\n */\nexport const parseSelector = (str = '') => {\n const add = [];\n const result = [];\n const sels = str.split(',');\n\n for (var i = 0, len = sels.length; i < len; i++) {\n var sel = sels[i].trim();\n\n // Will accept only concatenated classes and last\n // class might be with state (eg. :hover), nothing else.\n // Can also accept SINGLE ID selectors, eg. `#myid`, `#myid:hover`\n // Composed are not valid: `#myid.some-class`, `#myid.some-class:hover`\n if (\n /^(\\.{1}[\\w\\-]+)+(:{1,2}[\\w\\-()]+)?$/gi.test(sel) ||\n /^(#{1}[\\w\\-]+){1}(:{1,2}[\\w\\-()]+)?$/gi.test(sel)\n ) {\n var cls = sel.split('.').filter(Boolean);\n result.push(cls);\n } else {\n add.push(sel);\n }\n }\n\n return {\n result,\n add\n };\n};\n\n/**\n * Parse style declarations of the node\n * @param {CSSRule} node\n * @return {Object}\n */\nexport const parseStyle = node => {\n const stl = node.style;\n const style = {};\n\n for (var i = 0, len = stl.length; i < len; i++) {\n const propName = stl[i];\n const propValue = stl.getPropertyValue(propName);\n const important = stl.getPropertyPriority(propName);\n style[propName] = `${propValue}${important ? ` !${important}` : ''}`;\n }\n\n return style;\n};\n\n/**\n * Get the condition when possible\n * @param {CSSRule} node\n * @return {string}\n */\nexport const parseCondition = node => {\n const condition =\n node.conditionText ||\n (node.media && node.media.mediaText) ||\n node.name ||\n node.selectorText ||\n '';\n return condition.trim();\n};\n\n/**\n * Create node for the editor\n * @param {Array} selectors Array containing strings of classes\n * @param {Object} style Key-value object of style declarations\n * @return {Object}\n */\nexport const createNode = (selectors, style = {}, opts = {}) => {\n const node = {};\n const selLen = selectors.length;\n const lastClass = selectors[selLen - 1];\n const stateArr = lastClass ? lastClass.split(/:(.+)/) : [];\n const state = stateArr[1];\n const { atRule, selectorsAdd, mediaText } = opts;\n const singleAtRule = singleAtRulesNames.indexOf(atRule) >= 0;\n singleAtRule && (node.singleAtRule = 1);\n atRule && (node.atRuleType = atRule);\n selectorsAdd && (node.selectorsAdd = selectorsAdd);\n mediaText && (node.mediaText = mediaText);\n\n // Isolate the state from selectors\n if (state) {\n selectors[selLen - 1] = stateArr[0];\n node.state = state;\n stateArr.splice(stateArr.length - 1, 1);\n }\n\n node.selectors = selectors;\n node.style = style;\n\n return node;\n};\n\n/**\n * Fetch data from node\n * @param {StyleSheet|CSSRule} el\n * @return {Array}\n */\nexport const parseNode = el => {\n var result = [];\n var nodes = el.cssRules || [];\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n const type = node.type.toString();\n let singleAtRule = 0;\n let atRuleType = '';\n let condition = '';\n // keyText is for CSSKeyframeRule\n let sels = node.selectorText || node.keyText;\n const isSingleAtRule = singleAtRules.indexOf(type) >= 0;\n\n // Check if the node is an at-rule\n if (isSingleAtRule) {\n singleAtRule = 1;\n atRuleType = atRules[type];\n condition = parseCondition(node);\n } else if (atRuleKeys.indexOf(type) >= 0) {\n var subRules = parseNode(node);\n condition = parseCondition(node);\n\n for (var s = 0, lens = subRules.length; s < lens; s++) {\n var subRule = subRules[s];\n condition && (subRule.mediaText = condition);\n subRule.atRuleType = atRules[type];\n }\n result = result.concat(subRules);\n }\n\n if (!sels && !isSingleAtRule) continue;\n const style = parseStyle(node);\n const selsParsed = parseSelector(sels);\n const selsAdd = selsParsed.add;\n sels = selsParsed.result;\n\n let lastRule;\n // For each group of selectors\n for (var k = 0, len3 = sels.length; k < len3; k++) {\n const model = createNode(sels[k], style, {\n atRule: atRules[type]\n });\n result.push(model);\n lastRule = model;\n }\n\n // Need to push somewhere not class-based selectors, if some rule was\n // created will push them there, otherwise will create a new rule\n if (selsAdd.length) {\n var selsAddStr = selsAdd.join(', ');\n if (lastRule) {\n lastRule.selectorsAdd = selsAddStr;\n } else {\n const model = {\n selectors: [],\n selectorsAdd: selsAddStr,\n style\n };\n singleAtRule && (model.singleAtRule = singleAtRule);\n atRuleType && (model.atRuleType = atRuleType);\n condition && (model.mediaText = condition);\n result.push(model);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Parse CSS string and return the array of objects\n * @param {String} str CSS string\n * @return {Array} Array of objects for the definition of CSSRules\n */\nexport default str => {\n const el = document.createElement('style');\n el.innerHTML = str;\n\n // There is no .sheet before adding it to the \n document.head.appendChild(el);\n const sheet = el.sheet;\n document.head.removeChild(el);\n\n return parseNode(sheet);\n};\n","import { isString } from 'underscore';\nimport BrowserCssParser, {\n parseSelector,\n createNode\n} from './BrowserParserCss';\n\nexport default (config = {}) => ({\n /**\n * Parse CSS string to a desired model object\n * @param {String} str CSS string\n * @return {Array}\n */\n parse(str) {\n let result = [];\n const { parserCss, em } = config;\n const editor = em && em.get && em.get('Editor');\n const nodes = parserCss ? parserCss(str, editor) : BrowserCssParser(str);\n nodes.forEach(node => (result = result.concat(this.checkNode(node))));\n em && em.trigger('parse:css', { input: str, output: result });\n\n return result;\n },\n\n /**\n * Check the returned node from a custom parser and transforms it to\n * a valid object for the CSS composer\n * @return {[type]}\n */\n checkNode(node) {\n const { selectors, style } = node;\n\n if (isString(selectors)) {\n const nodes = [];\n const selsParsed = parseSelector(selectors);\n const classSets = selsParsed.result;\n const selectorsAdd = selsParsed.add.join(', ');\n const opts = {\n atRule: node.atRule,\n mediaText: node.params\n };\n\n if (classSets.length) {\n classSets.forEach(classSet => {\n nodes.push(createNode(classSet, style, opts));\n });\n } else {\n nodes.push(createNode([], style, opts));\n }\n\n if (selectorsAdd) {\n const lastNode = nodes[nodes.length - 1];\n lastNode.selectorsAdd = selectorsAdd;\n }\n\n node = nodes;\n }\n\n return node;\n }\n});\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/parser/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * parser: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const { Parser } = editor;\n * ```\n * ## Available Events\n * * `parse:html` - On HTML parse, an object containing the input and the output of the parser is passed as an argument\n * * `parse:css` - On CSS parse, an object containing the input and the output of the parser is passed as an argument\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [parseHtml](#parsehtml)\n * * [parseCss](#parsecss)\n *\n * @module Parser\n */\nimport defaults from './config/config';\nimport parserCss from './model/ParserCss';\nimport parserHtml from './model/ParserHtml';\n\nexport default () => {\n let conf = {};\n let pHtml, pCss;\n\n return {\n compTypes: '',\n\n parserCss: null,\n\n parserHtml: null,\n\n name: 'Parser',\n\n init(config = {}) {\n conf = { ...defaults, ...config };\n conf.Parser = this;\n pHtml = new parserHtml(conf);\n pCss = new parserCss(conf);\n this.em = conf.em;\n this.parserCss = pCss;\n this.parserHtml = pHtml;\n return this;\n },\n\n /**\n * Get the configuration object\n * @returns {Object} Configuration object\n * @example\n * console.log(Parser.getConfig())\n */\n getConfig() {\n return conf;\n },\n\n /**\n * Parse HTML string and return the object containing the Component Definition\n * @param {String} input HTML string to parse\n * @param {Object} [options] Options\n * @param {String} [options.htmlType] [HTML mime type](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02) to parse\n * @param {Boolean} [options.allowScripts=false] Allow `` : '';\n return html;\n }\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @returns {string} CSS string\n * @private\n */\n getCss(opts = {}) {\n const config = this.config;\n const { optsCss } = config;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = opts.component || this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n const css =\n wrp &&\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n keepUnusedStyles,\n ...optsCss,\n ...opts,\n });\n return wrp ? (opts.json ? css : protCss + css) : '';\n }\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs(opts = {}) {\n var wrp = opts.component || this.get('DomComponents').getWrapper();\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\n }\n\n /**\n * Store data to the current storage.\n * @private\n */\n async store(options) {\n const data = this.storeData();\n await this.get('StorageManager').store(data, options);\n this.clearDirtyCount();\n return data;\n }\n\n /**\n * Load data from the current storage.\n * @private\n */\n async load(options) {\n const result = await this.get('StorageManager').load(options);\n this.loadData(result);\n return result;\n }\n\n storeData() {\n let result = {};\n // Sync content if there is an active RTE\n const editingCmp = this.getEditing();\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\n\n this.get('storables').forEach(m => {\n result = { ...result, ...m.store(1) };\n });\n return JSON.parse(JSON.stringify(result));\n }\n\n loadData(data = {}) {\n this.get('storables').forEach(module => module.load(data));\n return data;\n }\n\n /**\n * Returns device model by name\n * @return {Device|null}\n * @private\n */\n getDeviceModel() {\n var name = this.get('device');\n return this.get('DeviceManager').get(name);\n }\n\n /**\n * Run default command if setted\n * @param {Object} [opts={}] Options\n * @private\n */\n runDefault(opts = {}) {\n var command = this.get('Commands').get(this.config.defaultCommand);\n if (!command || this.defaultRunning) return;\n command.stop(this, this, opts);\n command.run(this, this, opts);\n this.defaultRunning = 1;\n }\n\n /**\n * Stop default command\n * @param {Object} [opts={}] Options\n * @private\n */\n stopDefault(opts = {}) {\n const commands = this.get('Commands');\n const command = commands.get(this.config.defaultCommand);\n if (!command || !this.defaultRunning) return;\n command.stop(this, this, opts);\n this.defaultRunning = 0;\n }\n\n /**\n * Update canvas dimensions and refresh data useful for tools positioning\n * @private\n */\n refreshCanvas(opts = {}) {\n this.set('canvasOffset', null);\n this.set('canvasOffset', this.get('Canvas').getOffset());\n opts.tools && this.trigger('canvas:updateTools');\n }\n\n /**\n * Clear all selected stuf inside the window, sometimes is useful to call before\n * doing some dragging opearation\n * @param {Window} win If not passed the current one will be used\n * @private\n */\n clearSelection(win) {\n var w = win || window;\n w.getSelection().removeAllRanges();\n }\n\n /**\n * Get the current media text\n * @return {string}\n */\n getCurrentMedia() {\n const config = this.config;\n const device = this.getDeviceModel();\n const condition = config.mediaCondition;\n const preview = config.devicePreviewMode;\n const width = device && device.get('widthMedia');\n return device && width && !preview ? `(${condition}: ${width})` : '';\n }\n\n /**\n * Return the component wrapper\n * @return {Component}\n */\n getWrapper() {\n return this.get('DomComponents').getWrapper();\n }\n\n setCurrentFrame(frameView) {\n return this.set('currentFrame', frameView);\n }\n\n getCurrentFrame() {\n return this.get('currentFrame');\n }\n\n getCurrentFrameModel() {\n return (this.getCurrentFrame() || {}).model;\n }\n\n getIcon(icon) {\n const icons = this.getConfig('icons') || {};\n return icons[icon] || '';\n }\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return this.get('changesCount');\n }\n\n clearDirtyCount() {\n return this.set('changesCount', 0);\n }\n\n getZoomDecimal() {\n return this.get('Canvas').getZoomDecimal();\n }\n\n getZoomMultiplier() {\n return this.get('Canvas').getZoomMultiplier();\n }\n\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n t(...args) {\n const i18n = this.get('I18n');\n return i18n?.t(...args);\n }\n\n /**\n * Returns true if the editor is in absolute mode\n * @returns {Boolean}\n */\n inAbsoluteMode() {\n return this.get('dmode') === 'absolute';\n }\n\n /**\n * Destroy editor\n */\n destroyAll() {\n const { config, view } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n const shallow = this.get('shallow');\n shallow?.destroyAll();\n this.stopListening();\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n view && view.remove();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\n editors.splice(editors.indexOf(editor), 1);\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\n }\n\n getEditing() {\n const res = this.get('editing');\n return (res && res.model) || null;\n }\n\n setEditing(value) {\n this.set('editing', value);\n return this;\n }\n\n isEditing() {\n return !!this.get('editing');\n }\n\n log(msg, opts = {}) {\n const { ns, level = 'debug' } = opts;\n this.trigger('log', msg, opts);\n level && this.trigger(`log:${level}`, msg, opts);\n\n if (ns) {\n const logNs = `log-${ns}`;\n this.trigger(logNs, msg, opts);\n level && this.trigger(`${logNs}:${level}`, msg, opts);\n }\n }\n\n logInfo(msg, opts) {\n this.log(msg, { ...opts, level: 'info' });\n }\n\n logWarning(msg, opts) {\n this.log(msg, { ...opts, level: 'warning' });\n }\n\n logError(msg, opts) {\n this.log(msg, { ...opts, level: 'error' });\n }\n\n initBaseColorPicker(el, opts = {}) {\n const config = this.getConfig();\n const { colorPicker = {} } = config;\n const elToAppend = config.el;\n const ppfx = config.stylePrefix;\n\n return $(el).spectrum({\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n palette: [],\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n ...opts,\n ...colorPicker,\n });\n }\n\n /**\n * Execute actions without triggering the storage and undo manager.\n * @param {Function} clb\n * @private\n */\n skip(clb) {\n this.__skip = true;\n const um = this.get('UndoManager');\n um ? um.skip(clb) : clb();\n this.__skip = false;\n }\n\n /**\n * Set/get data from the HTMLElement\n * @param {HTMLElement} el\n * @param {string} name Data name\n * @param {any} value Date value\n * @return {any}\n * @private\n */\n data(el, name, value) {\n const varName = '_gjs-data';\n\n if (!el[varName]) {\n el[varName] = {};\n }\n\n if (isUndefined(value)) {\n return el[varName][name];\n } else {\n el[varName][name] = value;\n }\n }\n}\n","import { isObject } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\n const fn = $.fn;\n\n // Additional helpers\n\n fn.hide = function () {\n return this.css('display', 'none');\n };\n\n fn.show = function () {\n return this.css('display', 'block');\n };\n\n fn.focus = function () {\n const el = this.get(0);\n el && el.focus();\n return this;\n };\n\n // For SVGs in IE\n // (fn.removeClass = function(c) {\n // if (!arguments.length) {\n // return this.attr('class', '');\n // }\n // const classes = isString(c) && c.match(/\\S+/g);\n // return classes\n // ? this.each(function(el) {\n // each(classes, function(c) {\n // if (el.classList) {\n // el.classList.remove(c);\n // } else {\n // const val = el.className;\n // const bval = el.className.baseVal;\n\n // if (!isUndefined(bval)) {\n // val.baseVal = bval.replace(c, '');\n // } else {\n // el.className = val.replace(c, '');\n // }\n // }\n // });\n // })\n // : this;\n // }),\n // (fn.remove = function() {\n // return this.each(node => {\n // return node.parentNode && node.parentNode.removeChild(node);\n // });\n // }),\n\n // For spectrum compatibility\n\n fn.bind = function (ev, h) {\n return this.on(ev, h);\n };\n\n fn.unbind = function (ev, h) {\n if (isObject(ev)) {\n for (let name in ev) {\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\n }\n\n return this;\n } else {\n return this.off(ev, h);\n }\n };\n\n fn.click = function (h) {\n return h ? this.on('click', h) : this.trigger('click');\n };\n\n fn.change = function (h) {\n return h ? this.on('change', h) : this.trigger('change');\n };\n\n fn.keydown = function (h) {\n return h ? this.on('keydown', h) : this.trigger('keydown');\n };\n\n fn.delegate = function (selector, events, data, handler) {\n if (!handler) {\n handler = data;\n }\n\n return this.on(events, selector, function (e) {\n e.data = data;\n handler(e);\n });\n };\n\n fn.scrollLeft = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageXOffset : el.scrollLeft || 0;\n };\n\n fn.scrollTop = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageYOffset : el.scrollTop || 0;\n };\n\n const offset = $.prototype.offset;\n fn.offset = function (coords) {\n let top, left;\n\n if (coords) {\n top = coords.top;\n left = coords.left;\n }\n\n if (typeof top != 'undefined') {\n this.css('top', `${top}px`);\n }\n if (typeof left != 'undefined') {\n this.css('left', `${left}px`);\n }\n\n return offset.call(this);\n };\n\n $.map = function (items, clb) {\n const ar = [];\n\n for (var i = 0; i < items.length; i++) {\n ar.push(clb(items[i], i));\n }\n\n return ar;\n };\n\n const indexOf = Array.prototype.indexOf;\n\n $.inArray = function (val, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, val, i);\n };\n\n $.Event = function (src, props) {\n if (!(this instanceof $.Event)) {\n return new $.Event(src, props);\n }\n\n this.type = src;\n this.isDefaultPrevented = () => false;\n };\n }\n};\n","import Backbone from 'backbone';\nimport { View } from '../../common';\nimport { appendStyles } from '../../utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default class EditorView extends View {\n initialize() {\n const { model } = this;\n const { Panels, UndoManager } = model.attributes;\n model.view = this;\n model.once('change:ready', () => {\n Panels.active();\n Panels.disableButtons();\n UndoManager.clear();\n setTimeout(() => {\n model.trigger('load', model.get('Editor'));\n model.clearDirtyCount();\n });\n });\n }\n\n render() {\n const { $el, model } = this;\n const { Panels, Canvas, modules } = model.attributes;\n const conf = model.getConfig();\n const pfx = conf.stylePrefix;\n const contEl = $(conf.el || `body ${conf.container}`);\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\n $el.empty();\n\n if (conf.width) contEl.css('width', conf.width);\n if (conf.height) contEl.css('height', conf.height);\n\n $el.append(Canvas.render());\n $el.append(Panels.render());\n\n // Load shallow editor\n const shallow = model.get('shallow');\n const shallowCanvasEl = shallow.get('Canvas').render();\n shallowCanvasEl.style.display = 'none';\n $el.append(shallowCanvasEl);\n\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\n modules.forEach(md => md.postRender && md.postRender(this));\n\n return this;\n }\n}\n","/**\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\n *\n * ```js\n * const editor = grapesjs.init({\n * // options\n * });\n * ```\n *\n * ## Available Events\n *\n * You can make use of available events in this way\n * ```js\n * editor.on('EVENT-NAME', (some, argument) => {\n * // do something\n * })\n * ```\n *\n * * `update` - The structure of the template is updated (its HTML/CSS)\n * * `undo` - Undo executed\n * * `redo` - Redo executed\n * * `load` - Editor is loaded\n *\n * ### Components\n * Check the [Components](/api/components.html) module.\n * ### Keymaps\n * Check the [Keymaps](/api/keymaps.html) module.\n * ### Style Manager\n * Check the [Style Manager](/api/style_manager.html) module.\n * ### Storage\n * Check the [Storage](/api/storage_manager.html) module.\n * ### Canvas\n * Check the [Canvas](/api/canvas.html) module.\n * ### RTE\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\n * ### Commands\n * Check the [Commands](/api/commands.html) module.\n * ### Selectors\n * Check the [Selectors](/api/selector_manager.html) module.\n * ### Blocks\n * Check the [Blocks](/api/block_manager.html) module.\n * ### Assets\n * Check the [Assets](/api/assets.html) module.\n * ### Modal\n * Check the [Modal](/api/modal_dialog.html) module.\n * ### Devices\n * Check the [Devices](/api/device_manager.html) module.\n * ### Parser\n * Check the [Parser](/api/parser.html) module.\n * ### Pages\n * Check the [Pages](/api/pages.html) module.\n *\n * ## Methods\n * @module Editor\n */\nimport html from '../utils/html';\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\n\nexport default (config = {}, opts = {}) => {\n const { $ } = opts;\n let c = {\n ...defaults,\n ...config,\n };\n\n c.pStylePrefix = c.stylePrefix;\n let em = new EditorModel(c);\n let editorView;\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n modules: [],\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n this.modules = [\n 'I18n',\n 'Utils',\n 'Config',\n 'Commands',\n 'Keymaps',\n 'Modal',\n 'Panels',\n 'Canvas',\n 'Parser',\n 'CodeManager',\n 'UndoManager',\n 'RichTextEditor',\n ['Pages', 'PageManager'],\n 'DomComponents',\n ['Components', 'DomComponents'],\n 'LayerManager',\n ['Layers', 'LayerManager'],\n 'CssComposer',\n ['Css', 'CssComposer'],\n 'StorageManager',\n ['Storage', 'StorageManager'],\n 'AssetManager',\n ['Assets', 'AssetManager'],\n 'BlockManager',\n ['Blocks', 'BlockManager'],\n 'TraitManager',\n ['Traits', 'TraitManager'],\n 'SelectorManager',\n ['Selectors', 'SelectorManager'],\n 'StyleManager',\n ['Styles', 'StyleManager'],\n 'DeviceManager',\n ['Devices', 'DeviceManager'],\n ];\n\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = em.get(prop[1]);\n } else {\n this[prop] = em.get(prop);\n }\n });\n\n return this;\n },\n\n /**\n * Returns configuration object\n * @param {string} [prop] Property name\n * @returns {any} Returns the configuration object or\n * the value of the specified property\n */\n getConfig(prop) {\n return em.getConfig(prop);\n },\n\n /**\n * Returns HTML built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the HTML of a specific Component\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\n * @returns {string} HTML string\n */\n getHtml(opts) {\n return em.getHtml(opts);\n },\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the CSS of a specific Component\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\n * @returns {String|Array} CSS string or array of CssRules\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Get the JS of a specific component\n * @returns {String} JS string\n */\n getJs(opts) {\n return em.getJs(opts);\n },\n\n /**\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\n * @return {Components}\n */\n getComponents() {\n return em.get('DomComponents').getComponents();\n },\n\n /**\n * Return the wrapper and its all components\n * @return {Component}\n */\n getWrapper() {\n return em.get('DomComponents').getWrapper();\n },\n\n /**\n * Set components inside editor's canvas. This method overrides actual components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\n * @return {this}\n * @example\n * editor.setComponents('
New component
');\n * // or\n * editor.setComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n setComponents(components, opt = {}) {\n em.setComponents(components, opt);\n return this;\n },\n\n /**\n * Add components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opts Options\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\n * by default, they will be created and, if already exist, updated. When this option\n * is true, styles already created will not be updated.\n * @return {Array}\n * @example\n * editor.addComponents('
New component
');\n * // or\n * editor.addComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n addComponents(components, opts) {\n return this.getWrapper().append(components, opts);\n },\n\n /**\n * Returns style in JSON format object\n * @return {Object}\n */\n getStyle() {\n return em.get('CssComposer').getAll();\n },\n\n /**\n * Set style inside editor's canvas. This method overrides actual style\n * @param {Array|Object|string} style CSS string or style model\n * @return {this}\n * @example\n * editor.setStyle('.cls{color: red}');\n * //or\n * editor.setStyle({\n * selectors: ['cls'],\n * style: { color: 'red' }\n * });\n */\n setStyle(style, opt = {}) {\n em.setStyle(style, opt);\n return this;\n },\n\n /**\n * Add styles to the editor\n * @param {Array|Object|string} style CSS string or style model\n * @returns {Array} Array of created CssRule instances\n * @example\n * editor.addStyle('.cls{color: red}');\n */\n addStyle(style, opts = {}) {\n return em.addStyle(style, opts);\n },\n\n /**\n * Returns the last selected component, if there is one\n * @return {Model}\n */\n getSelected() {\n return em.getSelected();\n },\n\n /**\n * Returns an array of all selected components\n * @return {Array}\n */\n getSelectedAll() {\n return em.getSelectedAll();\n },\n\n /**\n * Get a stylable entity from the selected component.\n * If you select a component without classes the entity is the Component\n * itself and all changes will go inside its 'style' attribute. Otherwise,\n * if the selected component has one or more classes, the function will\n * return the corresponding CSS Rule\n * @return {Model}\n */\n getSelectedToStyle() {\n let selected = em.getSelected();\n\n if (selected) {\n return this.StyleManager.getModelToStyle(selected);\n }\n },\n\n /**\n * Select a component\n * @param {Component|HTMLElement} el Component to select\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\n * @return {this}\n * @example\n * // Select dropped block\n * editor.on('block:drag:stop', function(model) {\n * editor.select(model);\n * });\n */\n select(el, opts) {\n em.setSelected(el, opts);\n return this;\n },\n\n /**\n * Add component to selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectAdd(model);\n */\n selectAdd(el) {\n em.addSelected(el);\n return this;\n },\n\n /**\n * Remove component from selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectRemove(model);\n */\n selectRemove(el) {\n em.removeSelected(el);\n return this;\n },\n\n /**\n * Toggle component selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectToggle(model);\n */\n selectToggle(el) {\n em.toggleSelected(el);\n return this;\n },\n\n /**\n * Returns, if active, the Component enabled in rich text editing mode.\n * @returns {Component|null}\n * @example\n * const textComp = editor.getEditing();\n * if (textComp) {\n * console.log('HTML: ', textComp.toHTML());\n * }\n */\n getEditing() {\n return em.getEditing();\n },\n\n /**\n * Set device to the editor. If the device exists it will\n * change the canvas to the proper width\n * @param {string} name Name of the device\n * @return {this}\n * @example\n * editor.setDevice('Tablet');\n */\n setDevice(name) {\n em.set('device', name);\n return this;\n },\n\n /**\n * Return the actual active device\n * @return {string} Device name\n * @example\n * var device = editor.getDevice();\n * console.log(device);\n * // 'Tablet'\n */\n getDevice() {\n return em.get('device');\n },\n\n /**\n * Execute command\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.runCommand('myCommand', {someValue: 1});\n */\n runCommand(id, options = {}) {\n return em.get('Commands').run(id, options);\n },\n\n /**\n * Stop the command if stop method was provided\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.stopCommand('myCommand', {someValue: 1});\n */\n stopCommand(id, options = {}) {\n return em.get('Commands').stop(id, options);\n },\n\n /**\n * Store data to the current storage.\n * This will reset the counter of changes (`editor.getDirtyCount()`).\n * @param {Object} [options] Storage options.\n * @returns {Object} Stored data.\n * @example\n * const storedData = await editor.store();\n */\n async store(options) {\n return await em.store(options);\n },\n\n /**\n * Load data from the current storage.\n * @param {Object} [options] Storage options.\n * @returns {Object} Loaded data.\n * @example\n * const data = await editor.load();\n */\n async load(options) {\n return await em.load(options);\n },\n\n /**\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\n * @returns {Object}\n * @example\n * console.log(editor.getProjectData());\n * // { pages: [...], styles: [...], ... }\n */\n getProjectData() {\n return em.storeData();\n },\n\n /**\n * Load data from the JSON project\n * @param {Object} data Project to load\n * @example\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\n */\n loadProjectData(data) {\n return em.loadData(data);\n },\n\n storeData() {\n return em.storeData();\n },\n\n loadData(data) {\n return em.loadData(data);\n },\n\n /**\n * Returns container element. The one which was indicated as 'container'\n * on init method\n * @return {HTMLElement}\n */\n getContainer() {\n return c.el;\n },\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return em.getDirtyCount();\n },\n\n /**\n * Reset the counter of changes.\n */\n clearDirtyCount() {\n return em.clearDirtyCount();\n },\n\n /**\n * Update editor dimension offsets\n *\n * This method could be useful when you update, for example, some position\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\n * refresh you'll get misleading position of tools\n * @param {Object} [options] Options\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\n */\n refresh(opts) {\n em.refreshCanvas(opts);\n },\n\n /**\n * Replace the built-in Rich Text Editor with a custom one.\n * @param {Object} obj Custom RTE Interface\n * @example\n * editor.setCustomRte({\n * // Function for enabling custom RTE\n * // el is the HTMLElement of the double clicked Text Component\n * // rte is the same instance you have returned the first time you call\n * // enable(). This is useful if need to check if the RTE is already enabled so\n * // ion this case you'll need to return the RTE and the end of the function\n * enable: function(el, rte) {\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\n * ...\n * return rte; // return the RTE instance\n * },\n *\n * // Disable the editor, called for example when you unfocus the Text Component\n * disable: function(el, rte) {\n * rte.blur(); // this depends on the Custom RTE API\n * }\n *\n * // Called when the Text Component is focused again. If you returned the RTE instance\n * // from the enable function, the enable won't be called again instead will call focus,\n * // in this case to avoid double binding of the editor\n * focus: function (el, rte) {\n * rte.focus(); // this depends on the Custom RTE API\n * }\n * });\n */\n setCustomRte(obj) {\n this.RichTextEditor.customRte = obj;\n },\n\n /**\n * Replace the default CSS parser with a custom one.\n * The parser function receives a CSS string as a parameter and expects\n * an array of CSSRule objects as a result. If you need to remove the\n * custom parser, pass `null` as the argument\n * @param {Function|null} parser Parser function\n * @return {this}\n * @example\n * editor.setCustomParserCss(css => {\n * const result = [];\n * // ... parse the CSS string\n * result.push({\n * selectors: '.someclass, div .otherclass',\n * style: { color: 'red' }\n * })\n * // ...\n * return result;\n * });\n */\n setCustomParserCss(parser) {\n this.Parser.getConfig().parserCss = parser;\n return this;\n },\n\n /**\n * Change the global drag mode of components.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n em.setDragMode(value);\n return this;\n },\n\n /**\n * Trigger event log message\n * @param {*} msg Message to log\n * @param {Object} [opts={}] Custom options\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\n * @return {this}\n * @example\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\n * // This will trigger following events\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\n * // Callbacks of those events will always receive the message and\n * // options, as arguments, eg:\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\n */\n log(msg, opts = {}) {\n em.log(msg, opts);\n return this;\n },\n\n /**\n * Translate label\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\n * @returns {String}\n * @example\n * editor.t('msg');\n * // use params\n * editor.t('msg2', { params: { test: 'hello' } });\n * // custom local\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\n */\n t(...args) {\n return em.t(...args);\n },\n\n /**\n * Attach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n on(event, callback) {\n em.on(event, callback);\n return this;\n },\n\n /**\n * Attach event and detach it after the first run\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n once(event, callback) {\n em.once(event, callback);\n return this;\n },\n\n /**\n * Detach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n off(event, callback) {\n em.off(event, callback);\n return this;\n },\n\n /**\n * Trigger event\n * @param {string} event Event to trigger\n * @return {this}\n */\n trigger(event) {\n em.trigger.apply(em, arguments);\n return this;\n },\n\n /**\n * Destroy the editor\n */\n destroy() {\n if (!em) return;\n em.destroyAll();\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = 0;\n } else {\n this[prop] = 0;\n }\n });\n this.modules = 0;\n editorView = 0;\n em = 0;\n c = 0;\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return editorView && editorView.el;\n },\n\n /**\n * Returns editor model\n * @return {Model}\n * @private\n */\n getModel() {\n return em;\n },\n\n /**\n * Render editor\n * @return {HTMLElement}\n */\n render() {\n editorView && editorView.remove();\n editorView = new EditorView({\n model: em,\n config: c,\n });\n return editorView.render().el;\n },\n\n /**\n * Trigger a callback once the editor is loaded and rendered.\n * The callback will be executed immediately if the method is called on the already rendered editor.\n * @param {Function} clb Callback to trigger\n * @example\n * editor.onReady(() => {\n * // perform actions\n * });\n */\n onReady(clb) {\n em.get('ready') ? clb(this) : em.on('load', clb);\n },\n\n /**\n * Print safe HTML by using ES6 tagged template strings.\n * @param {Array} literals\n * @param {Array} substs\n * @returns {String}\n * @example\n * const unsafeStr = '';\n * const safeStr = 'Hello';\n * // Use `$${var}` to avoid escaping\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\n */\n html,\n };\n};\n","export default {\n plugins: []\n};\n","/**\n * File made for IE/Edge support\n * https://github.com/artf/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument =\n DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement, isFunction } from 'underscore';\nimport $ from './utils/cash-dom';\nimport Editor from './editor';\nimport polyfills from './utils/polyfills';\nimport { getGlobal } from './utils/mixins';\nimport PluginManager from './plugin_manager';\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors = [];\nconst defaultConfig = {\n // If true renders editor on init\n autorender: 1,\n\n // Array of plugins to init\n plugins: [],\n\n // Custom options for plugins\n pluginsOpts: {},\n};\n\nexport default {\n $,\n\n editors,\n\n plugins,\n\n // Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: '
Hello world
',\n * style: '.hello{color: red}',\n * })\n */\n init(config = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\n const editor = new Editor(config, { $ }).init();\n const em = editor.getModel();\n\n // Load plugins\n config.plugins.forEach(pluginId => {\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = getGlobal()[pluginId];\n plugin = wplg?.default || wplg;\n }\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else if (isFunction(pluginId)) {\n pluginId(editor, plgOptions);\n } else {\n em.logWarning(`Plugin ${pluginId} not found`, {\n context: 'plugins',\n plugin: pluginId,\n });\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n config.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n","import defaults from './config/config';\n\nexport default config => {\n var c = config || {};\n\n // Set default options\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var plugins = {};\n\n return {\n /**\n * Add new plugin. Plugins could not be overwritten\n * @param {string} id Plugin ID\n * @param {Function} plugin Function which contains all plugin logic\n * @return {Function} The plugin function\n * @example\n * PluginManager.add('some-plugin', function(editor){\n * editor.Commands.add('new-command', {\n * run: function(editor, senderBtn){\n * console.log('Executed new-command');\n * }\n * })\n * });\n */\n add(id, plugin) {\n if (plugins[id]) {\n return plugins[id];\n }\n\n plugins[id] = plugin;\n return plugin;\n },\n\n /**\n * Returns plugin by ID\n * @param {string} id Plugin ID\n * @return {Function|undefined} Plugin\n * @example\n * var plugin = PluginManager.get('some-plugin');\n * plugin(editor);\n */\n get(id) {\n return plugins[id];\n },\n\n /**\n * Returns object with all plugins\n * @return {Object}\n */\n getAll() {\n return plugins;\n }\n };\n};\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","getConfig","name","__getConfig","getProjectData","data","obj","key","storageKey","getAll","loadProjectData","all","onResult","reset","opts","action","coll","result","JSON","parse","err","__logWarn","input","isDef","length","clear","res","config","array","models","getAllMap","reduce","acc","i","get","idAttribute","__initConfig","def","conf","deepMerge","em","cls","__initListen","events","on","m","c","o","trigger","add","remove","p","update","changedAttributes","__catchAllEvent","concat","collections","propagate","forEach","entity","event","ev","model","opt","map","md","__remove","isString","rm","silent","removeBefore","abort","options","__onAllEvent","__appendTo","elTo","appendTo","el","isElement","document","querySelector","appendChild","render","str","logWarning","_createId","id","len","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","stopListening","view","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","split","pop","shift","getFilename","Model","prototype","getDefaults","AssetImage","unitDim","height","width","AssetView","collection","pfx","ppfx","pStylePrefix","className","listenTo","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","innerHTML","template","View","AssetImageView","html","unit","dim","select","__getBhv","onClick","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","click","dblclick","Assets","Collection","TypeableCollection","types","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","at","inputUrl","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","undefined","disableUpload","constructor","delegateEvents","__propEv","val","console","error","onUploadEnd","text","clb","json","files","dataTransfer","body","FormData","param","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","match","exec","image","Image","readAsDataURL","push","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","getAllVisible","debounce","__trgCustom","container","__customData","bhv","isOpen","asset","complete","cmd","run","stop","isActive","where","store","load","getContainer","assts","toRender","__viewParams","FileUploader","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","f","func","__behaviour","_bhv","destroy","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isObject","catModel","catId","catView","getCategoriesEl","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","prop","isEmpty","onReset","onRemove","previousModels","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","callStop","create","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 0a7e30b28..4ecf2c981 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grapesjs", "description": "Free and Open Source Web Builder Framework", - "version": "0.19.0", + "version": "0.19.1", "author": "Artur Arseniev", "license": "BSD-3-Clause", "homepage": "http://grapesjs.com", @@ -26,6 +26,7 @@ "devDependencies": { "@babel/cli": "^7.15.7", "@babel/preset-typescript": "^7.16.7", + "@types/backbone": "^1.4.15", "@vuepress/plugin-google-analytics": "^1.8.2", "documentation": "^13.2.5", "eslint": "^8.12.0", @@ -61,7 +62,7 @@ "env": { "test": { "presets": [ - "@babel/preset-env", + "@babel/preset-env", "@babel/preset-typescript" ] } diff --git a/src/abstract/Module.ts b/src/abstract/Module.ts index caab8b65a..3aa05d605 100644 --- a/src/abstract/Module.ts +++ b/src/abstract/Module.ts @@ -1,5 +1,4 @@ import EditorModel from "../editor/model/Editor"; -import { ModuleConfig } from "./ModuleConfig"; export interface IModule { init(cfg: any): void; @@ -11,6 +10,11 @@ export interface IModule { postRender?(view: any): void; } +interface ModuleConfig{ + name: string; + stylePrefix?: string; +} + export default abstract class Module implements IModule { @@ -22,10 +26,10 @@ export default abstract class Module constructor( em: EditorModel, - confClass: { new (em: EditorModel, module: Module): T } + config: T ) { this._em = em; - this._config = new confClass(em, this); + this._config = config; } public get em() { diff --git a/src/abstract/ModuleConfig.ts b/src/abstract/ModuleConfig.ts deleted file mode 100644 index ff7d770dd..000000000 --- a/src/abstract/ModuleConfig.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Module from "./Module"; - -export abstract class ModuleConfig { - protected abstract stylePrefix?: string; - private: boolean = false; - abstract name: string; - module: Module; - - public get pfx() { - return this.module.em.getConfig() || ""; - } - public get ppfx() { - return this.pfx + this.stylePrefix || ""; - } - - constructor(module: Module) { - this.module = module; - //console.log(module.name) - /*const moduleConfig: { [id: string]: any } = - config[module.name as keyof EditorConfig]; - if (moduleConfig) { - for (const key in moduleConfig) { - if (Object.prototype.hasOwnProperty.call(this, key)) { - console.log(key); - const element = moduleConfig[key]; - } - } - }*/ - } -} diff --git a/src/abstract/View.ts b/src/abstract/View.ts index 29090a0c4..c0c158b7c 100644 --- a/src/abstract/View.ts +++ b/src/abstract/View.ts @@ -6,11 +6,11 @@ export default class View< TElement extends Element = HTMLElement > extends Backbone.View { protected get pfx() { - return this.model.module.config.pfx; + return this.model.module.em.config.stylePrefix || ""; } protected get ppfx() { - return this.model.module.config.ppfx; + return this.pfx + this.model.module.config.stylePrefix || ""; } protected get em() { diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index adfee48e3..b28e1818c 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -127,6 +127,10 @@ export default class EditorModel extends Model { this.listenTo(this, `log:${event}`, logs[event]); } + get config() { + return this.config; + } + /** * Get configurations * @param {string} [prop] Property name diff --git a/yarn.lock b/yarn.lock index 80e19c97e..971f32bdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,24 +38,24 @@ "version" "7.17.7" "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.17.5", "@babel/core@^7.4.0-0", "@babel/core@^7.8.4": - "integrity" "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz" - "version" "7.17.8" + "integrity" "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz" + "version" "7.17.9" dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" + "@babel/generator" "^7.17.9" "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.8" - "@babel/parser" "^7.17.8" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "convert-source-map" "^1.7.0" "debug" "^4.1.0" "gensync" "^1.0.0-beta.2" - "json5" "^2.1.2" + "json5" "^2.2.1" "semver" "^6.3.0" "@babel/core@7.12.3": @@ -89,10 +89,10 @@ "jsesc" "^2.5.1" "source-map" "^0.5.0" -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.4.0": - "integrity" "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz" - "version" "7.17.7" +"@babel/generator@^7.17.9", "@babel/generator@^7.4.0": + "integrity" "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/types" "^7.17.0" "jsesc" "^2.5.1" @@ -172,21 +172,13 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7": - "integrity" "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" - "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" - "version" "7.16.7" +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + "integrity" "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" + "version" "7.17.9" dependencies: - "@babel/helper-get-function-arity" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - "integrity" "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" - "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-hoist-variables@^7.16.7": "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" @@ -296,13 +288,13 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.17.8": - "integrity" "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz" - "version" "7.17.8" +"@babel/helpers@^7.12.1", "@babel/helpers@^7.17.9": + "integrity" "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": @@ -314,10 +306,10 @@ "chalk" "^2.0.0" "js-tokens" "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8", "@babel/parser@^7.4.3": - "integrity" "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz" - "version" "7.17.8" +"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.4.3": + "integrity" "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" + "version" "7.17.9" "@babel/parser@^7.12.3", "@babel/parser@7.12.3": "integrity" "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" @@ -983,18 +975,18 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.3": - "integrity" "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz" - "version" "7.17.3" +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3": + "integrity" "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.17.9" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" + "@babel/parser" "^7.17.9" "@babel/types" "^7.17.0" "debug" "^4.1.0" "globals" "^11.1.0" @@ -1340,6 +1332,14 @@ dependencies: "@babel/types" "^7.3.0" +"@types/backbone@^1.4.15": + "integrity" "sha512-WWeKtYlsIMtDyLbbhkb96taJMEbfQBnuz7yw1u0pkphCOtksemoWhIXhK74VRCY9hbjnsH3rsJu2uUiFtnsEYg==" + "resolved" "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.15.tgz" + "version" "1.4.15" + dependencies: + "@types/jquery" "*" + "@types/underscore" "*" + "@types/body-parser@*": "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" @@ -1450,6 +1450,13 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/jquery@*": + "integrity" "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==" + "resolved" "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz" + "version" "3.5.14" + dependencies: + "@types/sizzle" "*" + "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" @@ -1522,6 +1529,11 @@ "@types/mime" "^1" "@types/node" "*" +"@types/sizzle@*": + "integrity" "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" + "version" "2.3.3" + "@types/sockjs@^0.3.33": "integrity" "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==" "resolved" "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz" @@ -1534,6 +1546,11 @@ "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" "version" "1.0.1" +"@types/underscore@*": + "integrity" "sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg==" + "resolved" "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.4.tgz" + "version" "1.11.4" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": "integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" "resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" @@ -1547,14 +1564,14 @@ "@types/node" "*" "@types/yargs-parser@*": - "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - "version" "21.0.0" + "integrity" "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz" + "version" "20.2.0" "@types/yargs@^13.0.0": - "integrity" "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" - "version" "13.0.12" + "integrity" "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz" + "version" "13.0.11" dependencies: "@types/yargs-parser" "*" @@ -2260,10 +2277,10 @@ "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" "version" "5.7.4" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.0.0": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8", "acorn@^8.4.1", "acorn@^8.5.0", "acorn@^8.7.0": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" "acorn@^6.0.1": "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" @@ -2275,20 +2292,10 @@ "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" "version" "6.4.2" -"acorn@^8.5.0": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"acorn@^8.7.0": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"acorn@^8", "acorn@^8.4.1": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" +"acorn@^7.0.0": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" "add-stream@^1.0.0": "integrity" "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=" @@ -2428,9 +2435,9 @@ "version" "2.1.1" "ansi-regex@^3.0.0": - "integrity" "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" - "version" "3.0.1" + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "version" "3.0.0" "ansi-regex@^4.0.0", "ansi-regex@^4.1.0": "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" @@ -2847,6 +2854,13 @@ "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" "version" "2.2.0" +"bindings@^1.5.0": + "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==" + "resolved" "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "file-uri-to-path" "1.0.0" + "bl@^4.1.0": "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" @@ -3365,9 +3379,9 @@ "supports-color" "^7.1.0" "chalk@^4.0.0": - "integrity" "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" - "version" "4.1.1" + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" dependencies: "ansi-styles" "^4.1.0" "supports-color" "^7.1.0" @@ -4538,7 +4552,14 @@ dependencies: "ms" "^2.1.1" -"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2": +"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"debug@^4.3.2": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -4607,9 +4628,9 @@ "version" "0.6.0" "deep-is@^0.1.3", "deep-is@~0.1.3": - "integrity" "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - "version" "0.1.3" + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" "deepmerge@^1.5.2": "integrity" "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" @@ -5123,7 +5144,7 @@ "memory-fs" "^0.5.0" "tapable" "^1.0.0" -"enhanced-resolve@^5.0.0", "enhanced-resolve@^5.8.3": +"enhanced-resolve@^5.0.0": "integrity" "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==" "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz" "version" "5.9.0" @@ -5131,6 +5152,14 @@ "graceful-fs" "^4.2.4" "tapable" "^2.2.0" +"enhanced-resolve@^5.9.2": + "integrity" "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz" + "version" "5.9.2" + dependencies: + "graceful-fs" "^4.2.4" + "tapable" "^2.2.0" + "entities@^2.0.0": "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" @@ -5373,21 +5402,21 @@ dependencies: "estraverse" "^5.2.0" -"estraverse@^4.1.1", "estraverse@^4.2.0": +"estraverse@^4.1.1": "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" "version" "4.3.0" -"estraverse@^5.1.0": +"estraverse@^4.2.0": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0", "estraverse@^5.2.0": "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" "version" "5.2.0" -"estraverse@^5.2.0": - "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - "version" "5.3.0" - "estree-walker@^2.0.1": "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" @@ -5811,9 +5840,9 @@ "rimraf" "^3.0.2" "flatted@^3.1.0": - "integrity" "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" - "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" - "version" "3.1.1" + "integrity" "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + "version" "3.2.5" "flush-write-stream@^1.0.0", "flush-write-stream@^1.0.2": "integrity" "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==" @@ -5938,6 +5967,24 @@ "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "version" "1.0.0" +"fsevents@^1.2.7": + "integrity" "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" + "version" "1.2.13" + dependencies: + "bindings" "^1.5.0" + "nan" "^2.12.1" + +"fsevents@~2.3.1": + "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + "version" "2.3.2" + +"fsevents@~2.3.2": + "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + "version" "2.3.2" + "function-bind@^1.1.1": "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -6201,9 +6248,9 @@ "version" "11.12.0" "globals@^13.6.0": - "integrity" "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz" - "version" "13.9.0" + "integrity" "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz" + "version" "13.13.0" dependencies: "type-fest" "^0.20.2" @@ -6569,9 +6616,9 @@ "version" "1.4.0" "html-entities@^2.3.2": - "integrity" "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz" - "version" "2.3.3" + "integrity" "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" + "version" "2.3.2" "html-escaper@^2.0.0": "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" @@ -7218,7 +7265,14 @@ dependencies: "is-extglob" "^2.1.0" -"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1": +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-extglob" "^2.1.1" + +"is-glob@^4.0.3": "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" "version" "4.0.3" @@ -8061,12 +8115,10 @@ dependencies: "minimist" "^1.2.0" -"json5@^2.1.2": - "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "minimist" "^1.2.5" +"json5@^2.1.2", "json5@^2.2.1": + "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + "version" "2.2.1" "jsonfile@^4.0.0": "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" @@ -8608,12 +8660,12 @@ dependencies: "semver" "^6.0.0" -"makeerror@1.0.12": - "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" - "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - "version" "1.0.12" +"makeerror@1.0.x": + "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" + "version" "1.0.11" dependencies: - "tmpl" "1.0.5" + "tmpl" "1.0.x" "map-cache@^0.2.0", "map-cache@^0.2.2": "integrity" "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" @@ -9121,9 +9173,9 @@ "kind-of" "^6.0.3" "minimist@^1.1.0", "minimist@^1.1.1", "minimist@^1.1.3", "minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" + "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + "version" "1.2.6" "mississippi@^3.0.0": "integrity" "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==" @@ -9238,6 +9290,11 @@ "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" "version" "0.0.8" +"nan@^2.12.1": + "integrity" "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "resolved" "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" + "version" "2.15.0" + "nanoid@^3.1.23": "integrity" "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" @@ -9350,6 +9407,11 @@ "util" "^0.11.0" "vm-browserify" "^1.0.1" +"node-modules-regexp@^1.0.0": + "integrity" "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + "resolved" "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" + "version" "1.0.0" + "node-notifier@^5.4.2": "integrity" "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==" "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" @@ -10122,9 +10184,9 @@ "version" "1.0.0" "picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3": - "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - "version" "2.3.1" + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" "pidtree@^0.3.0": "integrity" "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==" @@ -10169,9 +10231,11 @@ "version" "2.0.4" "pirates@^4.0.1": - "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - "version" "4.0.5" + "integrity" "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "node-modules-regexp" "^1.0.0" "pkg-dir@^3.0.0": "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" @@ -10740,9 +10804,9 @@ "version" "8.2.0" "prompts@^2.0.1": - "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" - "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - "version" "2.4.2" + "integrity" "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" + "version" "2.4.1" dependencies: "kleur" "^3.0.3" "sisteransi" "^1.0.5" @@ -12149,7 +12213,12 @@ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" "version" "0.5.7" -"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.6.1", "source-map@~0.6.1": "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" "version" "0.6.1" @@ -12908,7 +12977,7 @@ dependencies: "os-tmpdir" "~1.0.2" -"tmpl@1.0.5": +"tmpl@1.0.x": "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" "version" "1.0.5" @@ -13719,11 +13788,11 @@ "browser-process-hrtime" "^1.0.0" "walker@^1.0.7", "walker@~1.0.5": - "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" - "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - "version" "1.0.8" + "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" + "version" "1.0.7" dependencies: - "makeerror" "1.0.12" + "makeerror" "1.0.x" "watchpack-chokidar2@^2.0.1": "integrity" "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==" @@ -13967,9 +14036,9 @@ "webpack-sources" "^1.4.1" "webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.20.0", "webpack@^5.69.1", "webpack@>=2", "webpack@4.x.x || 5.x.x": - "integrity" "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==" - "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz" - "version" "5.69.1" + "integrity" "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz" + "version" "5.72.0" dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -13980,7 +14049,7 @@ "acorn-import-assertions" "^1.7.6" "browserslist" "^4.14.5" "chrome-trace-event" "^1.0.2" - "enhanced-resolve" "^5.8.3" + "enhanced-resolve" "^5.9.2" "es-module-lexer" "^0.9.0" "eslint-scope" "5.1.1" "events" "^3.2.0" From da89f943b92806963bff94cca90af59b8f646bfe Mon Sep 17 00:00:00 2001 From: Alex Ritter Date: Tue, 12 Apr 2022 21:10:33 +0200 Subject: [PATCH 3/4] Revert min.js changes --- dist/grapes.min.js | 4 ++-- dist/grapes.min.js.map | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/grapes.min.js b/dist/grapes.min.js index 2bf112c8f..86a2ed0f1 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,3 +1,3 @@ -/*! grapesjs - 0.19.1 */ -!function(t,e){'object'==typeof exports&&'object'==typeof module?module.exports=e():'function'==typeof define&&define.amd?define([],e):'object'==typeof exports?exports.grapesjs=e():t.grapesjs=e()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(()=>(()=>{var t={7757:(t,e,n)=>{t.exports=n(5666)},9075:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),a=n(3168);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.all,r=e.onResult,i=e.reset,o=this.storageKey,s={action:'load'},l=n||this.getAll(),c=t[o];if('string'==typeof c)try{c=JSON.parse(c)}catch(t){this.__logWarn('Data parsing failed',{input:c})}return i&&c&&l.reset(null,s),r?c&&r(c,s):c&&(0,a.isDef)(c.length)&&l.reset(c,s),c},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all;return e&&e.reset(null,t),this},__getConfig:function(t){var e=this.config||{};return t?e[t]:e},getAll:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=(0,a.deepMerge)(t,e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,a){var s=l({event:t},a||o);[n,e].map((function(t){return t.trigger(i,r,s)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,a,n),!n.abort&&a()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,a=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:a}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t,e){this.em.logWarning("[".concat(this.name,"]: ").concat(t),e)},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,a.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},4374:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>et,evAdd:()=>U,evAll:()=>B,evClose:()=>K,evCustom:()=>q,evOpen:()=>G,evPfx:()=>V,evRemove:()=>W,evRemoveBefore:()=>$,evSelect:()=>H,evUpdate:()=>z,evUpload:()=>Y,evUploadEnd:()=>J,evUploadError:()=>Q,evUploadRes:()=>tt,evUploadStart:()=>X});var r=n(4942),i=n(9050),o=n(3821);const a={assets:[],noAssets:'',stylePrefix:'am-',upload:0,uploadName:'files',headers:{},params:{},credentials:'include',multiUpload:!0,autoAdd:!0,customFetch:null,uploadFile:null,embedAsBase64:!0,handleAdd:null,beforeUpload:null,showUrlInput:!0,custom:!1,dropzone:!1,openAssetsOnDrop:1,dropzoneContent:''};var s=n(3144),l=n(5671),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"defaults",value:function(){return{type:'',src:''}}},{key:"getType",value:function(){return this.get('type')}},{key:"getSrc",value:function(){return this.get('src')}},{key:"getFilename",value:function(){return this.get('src').split('/').pop().split('?').shift()}},{key:"getExtension",value:function(){return this.getFilename().split('.').pop()}}]),n}(h.Model);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.className=this.pfx+'asset',this.listenTo(this.model,'destroy remove',this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)}},{key:"__getBhv",value:function(){var t=this.em,e=t&&t.get('AssetManager');return e&&e.__getBehaviour()||{}}},{key:"template",value:function(){var t=this.pfx;return"\n
\n ").concat(this.getPreview(),"\n
\n
\n ").concat(this.getInfo(),"\n
\n
\n ⨯\n
\n ")}},{key:"updateTarget",value:function(t){t&&t.set&&(t.set('attributes',(0,i.clone)(t.get('attributes'))),t.set('src',this.model.get('src')))}},{key:"getPreview",value:function(){return''}},{key:"getInfo",value:function(){return''}},{key:"render",value:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}}]),n}(h.View),C=n(8595);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var P=function(t){(0,c.Z)(n,t);var e=S(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"getPreview",value:function(){var t=this.pfx,e=this.ppfx,n=this.model.get('src');return(0,C.Z)(k||(k=(0,b.Z)(["\n
\n
\n "])),t,n,t,e)}},{key:"getInfo",value:function(){var t=this.pfx,e=this.model,n=e.get('name'),r=e.get('width'),i=e.get('height'),o=e.get('unitDim'),a=r&&i?"".concat(r,"x").concat(i).concat(o):'';return n=n||e.getFilename(),(0,C.Z)(x||(x=(0,b.Z)(["\n
","
\n
","
\n "])),t,n,t,a)}},{key:"init",value:function(t){var e=this.pfx;this.className+=" ".concat(e,"asset-image")}},{key:"onClick",value:function(){var t=this.model,e=this.pfx,n=this.__getBhv().select,r=this.config.onClick,o=this.collection;o.trigger('deselectAll'),this.$el.addClass(e+'highlight'),(0,i.isFunction)(n)?n(t,!1):(0,i.isFunction)(r)?r(t):this.updateTarget(o.target)}},{key:"onDblClick",value:function(){var t=this.em,e=this.model,n=this.__getBhv().select,r=this.config.onDblClick,o=this.collection,a=o.target,s=o.onSelect;(0,i.isFunction)(n)?n(e,!0):(0,i.isFunction)(r)?r(e):(this.updateTarget(a),t&&t.get('Modal').close()),(0,i.isFunction)(s)&&s(e)}},{key:"onRemove",value:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}}]),n}(O);P.prototype.events={'click [data-toggle=asset-remove]':'onRemove',click:'onClick',dblclick:'onDblClick'};var _=n(6475);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var E=function(t){(0,c.Z)(n,t);var e=T(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n)}(h.Collection.extend(_.Z));function j(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}E.prototype.types=[{id:'image',model:y,view:P,isType:function(t){return'string'==typeof t?{type:'image',src:t}:t}}];var D=function(t){(0,c.Z)(n,t);var e=j(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.ppfx,r=t.em,i='';return this.config.showUrlInput&&(i="\n
\n
\n \n
\n \n
\n
\n ")),"\n
\n
\n ").concat(i,"\n
\n
\n
\n
\n ")}},{key:"initialize",value:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.em=this.config.em;var e=this.collection;this.listenTo(e,'reset',this.renderAssets),this.listenTo(e,'add',this.addToAsset),this.listenTo(e,'remove',this.removedAsset),this.listenTo(e,'deselectAll',this.deselectAll)}},{key:"handleSubmit",value:function(t){t.preventDefault();var e=this.getAddInput(),n=e&&e.value.trim(),r=this.config.handleAdd;n&&(e.value='',this.getAssetsEl().scrollTop=0,r?r.bind(this)(n):this.options.globalCollection.add(n,{at:0}))}},{key:"getAssetsEl",value:function(){return this.el.querySelector(".".concat(this.pfx,"assets"))}},{key:"getAddInput",value:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector(".".concat(this.pfx,"add-asset input"))),this.inputUrl}},{key:"removedAsset",value:function(t){this.collection.length||this.toggleNoAssets()}},{key:"addToAsset",value:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)}},{key:"addAsset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.collection,i=this.config,o=new t.typeView({model:t,collection:r,config:i}).render().el;if(n)n.appendChild(o);else{var a=this.getAssetsEl();a&&a.insertBefore(o,a.firstChild)}return o}},{key:"toggleNoAssets",value:function(t){var e=this.$el.find(".".concat(this.pfx,"assets"));if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}}},{key:"deselectAll",value:function(){var t=this.pfx;this.$el.find(".".concat(t,"highlight")).removeClass("".concat(t,"highlight"))}},{key:"renderAssets",value:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find(".".concat(this.pfx,"assets"));n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each((function(n){return t.addAsset(n,e)})),n.append(e)}},{key:"render",value:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className="".concat(this.ppfx,"asset-manager"),this.renderAssets(),this}}]),n}(h.View);D.prototype.events={submit:'handleSubmit'};var M,A=n(7644);function R(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return Z(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Z(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n
","
\n \n
\n \n "])),e,n,r,i?'disabled':'',o?'multiple':'')}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.module=t.module,this.config=e,this.em=this.config.em,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.target=this.options.globalCollection||{},this.uploadId=this.pfx+'uploadFile',this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.multiUpload=void 0===e.multiUpload||e.multiUpload,this.events=(0,r.Z)({},"change #".concat(this.uploadId),'uploadFile');var n=e.uploadFile;n?this.uploadFile=n.bind(this):!e.upload&&e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()}},{key:"onUploadStart",value:function(){var t=this.module;t&&t.__propEv('asset:upload:start')}},{key:"onUploadEnd",value:function(t){var e=this.$el,n=this.module;n&&n.__propEv('asset:upload:end',t);var r=e.find('input');r&&r.val('')}},{key:"onUploadError",value:function(t){var e=this.module;console.error(t),this.onUploadEnd(t),e&&e.__propEv('asset:upload:error',t)}},{key:"onUploadResponse",value:function(t,e){var n,r=this.module,i=this.config,o=this.target;try{n='string'==typeof t?JSON.parse(t):t}catch(e){n=t}r&&r.__propEv('asset:upload:response',n),i.autoAdd&&o&&o.add(n.data,{at:0}),this.onUploadEnd(t),e&&e(n)}},{key:"uploadFile",value:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i=this.config,o=i.beforeUpload;if(!1!==(o&&o(r))){var a=new FormData,s=i.params,l=i.customFetch;for(var c in s)a.append(c,s[c]);if(this.multiUpload)for(var u=0;u").concat(r.dropzoneContent,"")),f(),'draggable'in o&&[o,s].forEach((function(t){t.ondragover=h,t.ondragleave=d,t.ondrop=p}))}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.em;return t.html(this.template({title:n&&n.t('assetManager.uploadTitle'),uploadId:this.uploadId,disabled:this.disabled,multiUpload:this.multiUpload,pfx:e})),this.initDrop(),t.attr('class',e+'file-uploader'),this}}]),n}(h.View);function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function F(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=(s=F(F({},a),r)).pStylePrefix,o=s,l=o.em;return this.config=s,this.em=l,i&&(s.stylePrefix=i+s.stylePrefix),t=new E([]),e=new E([]),this.all=t,this.__initListen(),t.on('add',(function(t){return n.getAllVisible().add(t)})),t.on('remove',(function(t){return n.getAllVisible().remove(t)})),this},__propEv:function(t){for(var e,n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=this.em.get('Commands');e.run(l,F({types:['image'],select:function(){}},t))},close:function(){this.em.get('Commands').stop(l)},isOpen:function(){var t=this.em.get('Commands');return!(!t||!t.isActive(l))},add:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===n.at&&(n.at=0),t.add(e,n)},get:function(e){return t.where({src:e})[0]||null},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t,e){return this.__remove(t,e)},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t)},getContainer:function(){return this.__getBehaviour().container||n&&n.el},getAssetsEl:function(){return n.el.querySelector('[data-el=assets]')},render:function(t){if(!this.getConfig('custom')){var r=t||this.getAll().models;if(!n){var i=this.__viewParams();i.fu=this.FileUploader();var o=n&&n.el;(n=new D(F({el:o},i))).render()}return e.reset(r),this.getContainer()}},__viewParams:function(){return{collection:e,globalCollection:t,config:s,module:this}},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return n},FileUploader:function(){return r||(r=new N(this.__viewParams())),r},onLoad:function(){var t=this;this.getAll().reset(s.assets);var e=this.em,n=this.events;e.on("run:".concat(l),(function(){return t.__propEv(n.open)})),e.on("stop:".concat(l),(function(){return t.__propEv(n.close)}))},postRender:function(t){s.dropzone&&r&&r.initDropzone(t)},setTarget:function(t){e.target=t},onSelect:function(t){e.onSelect=t},onClick:function(t){s.onClick=t},onDblClick:function(t){s.onDblClick=t},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=F(F({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},destroy:function(){t.stopListening(),e.stopListening(),t.reset(),e.reset(),r&&r.remove(),n&&n.remove(),[t,e,n,r].forEach((function(t){return null})),this._bhv={},this.all={},s={}}})}},796:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>W,evAdd:()=>N,evAll:()=>Z,evCustom:()=>U,evDrag:()=>V,evDragStart:()=>H,evDragStop:()=>z,evPfx:()=>L,evRemove:()=>F,evRemoveBefore:()=>B,evUpdate:()=>I});var r=n(4942),i=n(9050),o=n(9075);const a={appendTo:'',appendOnClick:!1,blocks:[],custom:!1};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{label:'',content:'',media:'',category:'',activate:!1,select:null,resetId:!1,disable:!1,onClick:null,attributes:{}}}},{key:"getId",value:function(){return this.id}},{key:"getLabel",value:function(){return this.get('label')}},{key:"getMedia",value:function(){return this.get('media')}},{key:"getContent",value:function(){return this.get('content')}},{key:"getCategoryLabel",value:function(){var t=this.get('category');return(0,i.isFunction)(t.get)?t.get('label'):t.label?t.label:t}}]),n}(h.Model);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(h.Collection);function m(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}v.prototype.model=p;var y=function(t){(0,c.Z)(n,t);var e=m(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{id:'',label:'',open:!0,attributes:{}}}}]),n}(h.Model);function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var w=function(t){(0,c.Z)(n,t);var e=b(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(h.Collection);w.prototype.model=y;var k=n(3168);function x(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var O,C=function(t){(0,c.Z)(n,t);var e=x(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"events",value:function(){return{click:'handleClick',mousedown:'startDrag',dragstart:'handleDragStart',drag:'handleDrag',dragend:'handleDragEnd'}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model;this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change',this.render)}},{key:"__getModule",value:function(){return this.em.get('BlockManager')}},{key:"handleClick",value:function(t){var e=this.config,n=this.model,r=this.em,o=n.get('onClick')||e.appendOnClick;if(r.trigger('block:click',n,t),o){if((0,i.isFunction)(o))return o(n,r.getEditor(),{event:t});var a,s,l=e.getSorter(),c=n.get('content'),u=r.getSelected();if(l.setDropContent(c),u)if(l.validTarget(u.getEl(),c).valid)a=u;else{var f=u.parent();l.validTarget(f.getEl(),c).valid&&(a=f,s=f.components().indexOf(u)+1)}if(!a){var h=r.getWrapper();l.validTarget(h.getEl(),c).valid&&(a=h)}var d=a&&a.append(c,{at:s})[0];d&&r.setSelected(d,{scroll:1})}}},{key:"startDrag",value:function(t){var e=this.config,n=this.em,r=this.model.get('disable');if(0===t.button&&e.getSorter&&!this.el.draggable&&!r){n.refreshCanvas();var i=e.getSorter();i.setDragHelper(this.el,t),i.setDropContent(this.model.get('content')),i.startSort(this.el),(0,k.on)(document,'mouseup',this.endDrag)}}},{key:"handleDragStart",value:function(t){this.__getModule().__startDrag(this.model,t)}},{key:"handleDrag",value:function(t){this.__getModule().__drag(t)}},{key:"handleDragEnd",value:function(){this.__getModule().__endDrag()}},{key:"endDrag",value:function(t){(0,k.off)(document,'mouseup',this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.ppfx,i=this.model,o=i.get('disable'),a=i.get('attributes')||{},s=a.class||'',l="".concat(r,"block"),c=t&&t.t("blockManager.labels.".concat(i.id))||i.get('label'),u=i.get('render'),f=i.get('media'),h=o?"".concat(l,"--disable"):"".concat(r,"four-color-h");n.attr(a),e.className="".concat(s," ").concat(l," ").concat(r,"one-bg ").concat(h).trim(),e.innerHTML="\n ".concat(f?"
").concat(f,"
"):'',"\n
").concat(c,"
\n "),e.title=a.title||e.textContent.trim(),e.setAttribute('draggable',!(!(0,k.hasDnd)(t)||o));var d=u&&u({el:e,model:i,className:l,prefix:r});return d&&(e.innerHTML=d),this}}]),n}(h.View),S=n(168),P=n(8595);function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var T=function(t){(0,c.Z)(n,t);var e=_(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.label;return(0,P.Z)(O||(O=(0,S.Z)(["\n
\n \n ","\n
\n
\n "])),e,e,n,e)}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initialize",value:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t;var e=t.pStylePrefix||'';this.em=t.em,this.pfx=e,this.caretR='fa fa-caret-right',this.caretD='fa fa-caret-down',this.iconClass="".concat(e,"caret-icon"),this.activeClass="".concat(e,"open"),this.className="".concat(e,"block-category"),this.events={},this.events["click .".concat(e,"title")]='toggle',this.listenTo(this.model,'change:open',this.updateVisibility),this.delegateEvents(),this.model.view=this}},{key:"updateVisibility",value:function(){this.model.get('open')?this.open():this.close()}},{key:"open",value:function(){this.$el.addClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretD),this.getBlocksEl().style.display=''}},{key:"close",value:function(){this.$el.removeClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretR),this.getBlocksEl().style.display='none'}},{key:"toggle",value:function(){var t=this.model;t.set('open',!t.get('open'))}},{key:"getIconEl",value:function(){return this.iconEl||(this.iconEl=this.el.querySelector('.'+this.iconClass)),this.iconEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector('.'+this.pfx+'blocks-c')),this.blocksEl}},{key:"append",value:function(t){this.getBlocksEl().appendChild(t)}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.pfx,o=t.t("blockManager.categories.".concat(r.id))||r.get('label');return e.innerHTML=this.template({pfx:i,label:o}),n.addClass(this.className),n.css({order:r.get('order')}),this.updateVisibility(),this}}]),n}(h.View);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=j(j({},this.config),t)}},{key:"getSorter",value:function(){if(this.em){if(!this.sorter){var t=this.em.get('Utils'),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:'a',wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}}},{key:"onDrag",value:function(t){this.em.stopDefault(),this.em.trigger('block:drag:start',t)}},{key:"onMove",value:function(t){this.em.trigger('block:drag:move',t)}},{key:"onDrop",value:function(t){var e=this.em;if(e.runDefault(),t&&t.get){var n='activeOnRender';t.get(n)&&(t.trigger('active'),t.unset(n)),e.trigger('block:drag:stop',t)}}},{key:"addTo",value:function(t){this.add(t)}},{key:"add",value:function(t,e){var n=this.config,r=e||null,o=new C({model:t,attributes:t.get('attributes')},n).render().el,a=t.get('category');if(a&&this.categories&&!n.ignoreCategories){(0,i.isString)(a)?a={id:a,label:a}:(0,i.isObject)(a)&&!a.id&&(a.id=a.label);var s=this.categories.add(a),l=s.get('id'),c=this.renderedCategories[l],u=this.getCategoriesEl();return t.set('category',s,{silent:!0}),!c&&u&&(c=new T({model:s},this.config).render(),this.renderedCategories[l]=c,u.appendChild(c.el)),void(c&&c.append(o))}r?r.appendChild(o):this.append(o)}},{key:"getCategoriesEl",value:function(){return this.catsEl||(this.catsEl=this.el.querySelector(".".concat(this.catsClass))),this.catsEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector(".".concat(this.noCatClass," .").concat(this.blockContClass))),this.blocksEl}},{key:"append",value:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)}},{key:"render",value:function(){var t=this,e=this.ppfx,n=document.createDocumentFragment();this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML="\n
\n
\n
\n
\n "),this.collection.each((function(e){return t.add(e,n)})),this.append(n);var r="".concat(this.blockContClass,"s ").concat(e,"one-bg ").concat(e,"two-color");return this.$el.addClass(r),this.rendered=!0,this}}]),n}(h.View);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 R(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=r=R(R({},a),n),o=i.em;return this.em=o,t=new v(r.blocks),e=new v(t.models),s=new w,this.all=t,this.__initListen(),t.on('add',(function(t){return e.add(t)})),t.on('remove',(function(t){return e.remove(t)})),t.on('reset',(function(t){return e.reset(t.models)})),this},__trgCustom:function(){this.em.trigger(this.events.custom,this.__customData())},__customData:function(){var t=this,e=this.__getBehaviour();return{bm:this,blocks:this.getAll().models,container:e.container,dragStart:function(e,n){return t.startDrag(e,n)},drag:function(e){return t.__drag(e)},dragStop:function(e){return t.endDrag(e)}}},__startDrag:function(e,n){var r=this.em,i=this.events,o=e.getContent?e.getContent():e;this._dragBlock=e,r.set({dragResult:null,dragContent:o}),[r,t].map((function(t){return t.trigger(i.dragStart,e,n)}))},__drag:function(e){var n=this.em,r=this.events,i=this._dragBlock;[n,t].map((function(t){return t.trigger(r.drag,i,e)}))},__endDrag:function(){var e=this.em,n=this.events,r=this._dragBlock,o=e.get('dragResult');if(this._dragBlock=null,o){var a='activeOnRender',s=o.get&&o.get(a),l=r.get('activate')||s,c=r.get('select'),u=(0,i.isArray)(o)?o[0]:o;(c||l&&!1!==c)&&e.setSelected(u),l&&(u.trigger('active'),s&&u.unset(a)),r.get('resetId')&&u.onAll((function(t){return t.resetId()}))}e.set({dragResult:null,dragContent:null}),[e,t].map((function(t){return t.trigger(n.dragEnd,o,r)}))},__getFrameViews:function(){return this.em.get('Canvas').getFrames().map((function(t){return t.view}))},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=R(R({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},startDrag:function(t,e){this.__startDrag(t,e),this.__getFrameViews().forEach((function(t){return t.droppable.startCustom()}))},endDrag:function(t){this.__getFrameViews().forEach((function(e){return e.droppable.endCustom(t)})),this.__endDrag()},getConfig:function(){return r},postRender:function(){n=new M({collection:e,categories:s},r);var t=this.getConfig().appendTo;if(t){var o=(0,i.isElement)(t)?t:document.querySelector(t);if(!o)return this.__logWarn('"appendTo" element not found');o.appendChild(this.render(e.models))}this.__trgCustom()},add:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n||{};return i.id=e,t.add(i,r)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getCategories:function(){return s},getContainer:function(){return n.el},render:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t||this.getAll().models;if(e.external){var o=new v(i);return new M({collection:o,categories:s},R(R({},r),e)).render().el}return n&&(n.updateConfig(e),n.collection.reset(i),n.rendered||(n.render(),n.rendered=1)),this.getContainer()},destroy:function(){var i=[t,e,s];i.map((function(t){return t.stopListening()})),i.map((function(t){return t.reset()})),n&&n.remove(),r={},t={},e={},n={},s=[],this.all={}}})}},6242:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>V});var r=n(2982),i=n(4942),o=n(9050),a=n(3168);const s={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,extHl:0,notTextable:['button','a','input[type=checkbox]','input[type=radio]']};var l=n(5671),c=n(3144),u=n(9340),f=n(2963),h=n(1120),d=n(2316),p=n(9084),g=n(8445);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var m=function(t){(0,u.Z)(n,t);var e=v(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frame:'',frames:'',rulers:!1,zoom:100,x:0,y:0,scripts:[],styles:[]}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.em;this.config=e,this.em=n,this.set('frames',new g.Z),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(n,'change:device',this.updateDevice),this.listenTo(n,p.evPageSelect,this._pageUpdated)}},{key:"init",value:function(){var t=this.em.get('PageManager').getMain(),e=t.getMainFrame();this.set('frames',t.getFrames()),this.updateDevice({frame:e})}},{key:"_pageUpdated",value:function(t,e){var n=this.em;n.setSelected(),n.get('readyCanvas')&&n.stopDefault(),e&&e.getFrames().map((function(t){return t.disable()})),this.set('frames',t.getFrames())}},{key:"updateDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e.getDeviceModel(),r=t.frame||e.getCurrentFrameModel();if(r&&n){var i=n.attributes,o=i.width,a=i.height;r.set({width:o,height:a},{noUndo:1})}}},{key:"onZoomChange",value:function(){this.get('zoom')<1&&this.set('zoom',1)}}]),n}(d.Model),y=n(827),b=n(9384),w=n(698);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var x=function(){function t(e,n){var r=this;(0,l.Z)(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.getComponent().getEl()})),a=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,(0,o.bindAll)(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),a.forEach((function(t){return r.toggleEffects(t,1)})),this}return(0,c.Z)(t,[{key:"toggleEffects",value:function(t,e){var n={on:a.on,off:a.off},r=e?'on':'off';n[r](t,'dragenter',this.handleDragEnter),n[r](t,'dragover',this.handleDragOver),n[r](t,'drop',this.handleDrop),n[r](t,'dragleave',this.handleDragLeave)}},{key:"__customTglEff",value:function(t){var e=t?a.on:a.off,n=this.el.ownerDocument,r=n.defaultView.frameElement;this.sortOpts=t?{onStart:function(t){var e=t.sorter;(0,a.on)(r,'pointermove',e.onMove)},onEnd:function(t){var e=t.sorter;(0,a.off)(r,'pointermove',e.onMove)},customTarget:function(t){var e=t.event;return n.elementFromPoint(e.clientX,e.clientY)}}:null,e(r,'pointerenter',this.handleDragEnter),e(r,'pointermove',this.handleDragOver),e(document,'pointerup',this.handleDrop),e(r,'pointerout',this.handleDragLeave)}},{key:"startCustom",value:function(){this.__customTglEff(!0)}},{key:"endCustom",value:function(t){this.over?this.endDrop(t):this.__customTglEff(!1)}},{key:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),this.__customTglEff(!1),n.trigger('canvas:dragend',e)}},{key:"handleDragLeave",value:function(t){this.updateCounter(-1,t)}},{key:"updateCounter",value:function(t,e){this.counter+=t,0===this.counter&&this.endDrop(1,e)}},{key:"handleDragEnter",value:function(t){var e=this,n=this.em,r=t.dataTransfer;if(this.updateCounter(1,t),!this.over){this.over=1;var o,a,s=n.get('Utils'),l=n.get('Canvas'),c=n.get('dragContent')||'
';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),f=u.append({})[0],h=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:f,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var a=f.getStyle(),s=a.left,l=a.top,h=a.position;o.addStyle({left:s,top:l,position:h})}e.handleDragEnd(o,r),f.remove()}});o=function(e){return h.stop(t,{cancel:e})},a=function(t){return c=t}}else{var d=new s.Sorter(function(t){for(var e=1;e=0)a=t&&t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if((0,o.indexOf)(n,'text/uri-list')>=0)a={type:'link',attributes:{href:a},content:a};else if((0,o.indexOf)(n,'text/json')>=0){var u=t&&t.getData('text/json');u&&(a=JSON.parse(u))}else 1===n.length&&'text/plain'===n[0]&&(a="
".concat(a,"
"));var f={content:a};return e.trigger('canvas:dragdata',t,f),f}}]),t}();function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(t).sort().map((function(e){return"[".concat(e,"=\"").concat(t[e],"\"]")})).join('')},s=function(t,e,n){t.forEach((function(t){var r=t.tag,i=t.attributes;!e.some((function(t){return t.tag===r&&a(t.attributes)===a(i)}))&&n.push(t)}))};s(i,o,r),s(o,i,n),n.forEach((function(t){var n=e.querySelector("".concat(t.tag).concat(a(t.attributes)));n&&n.parentNode.removeChild(n)})),(0,y.SJ)(e,r)}},{key:"getEl",value:function(){return this.el}},{key:"getCanvasModel",value:function(){return this.em.get('Canvas').getModel()}},{key:"getWindow",value:function(){return this.getEl().contentWindow}},{key:"getDoc",value:function(){return this.getEl().contentDocument}},{key:"getHead",value:function(){return this.getDoc().querySelector('head')}},{key:"getBody",value:function(){return this.getDoc().querySelector('body')}},{key:"getWrapper",value:function(){return this.getBody().querySelector('[data-gjs-type=wrapper]')}},{key:"getJsContainer",value:function(){return this.jsContainer||(this.jsContainer=(0,y.ut)('div',{class:"".concat(this.ppfx,"js-cont")})),this.jsContainer}},{key:"getToolsEl",value:function(){var t=this.config.frameWrapView;return t&&t.elTools}},{key:"getGlobalToolsEl",value:function(){return this.em.get('Canvas').getGlobalToolsEl()}},{key:"getHighlighter",value:function(){return this._getTool('[data-hl]')}},{key:"getBadgeEl",value:function(){return this._getTool('[data-badge]')}},{key:"getOffsetViewerEl",value:function(){return this._getTool('[data-offset]')}},{key:"getRect",value:function(){return this.rect||(this.rect=this.el.getBoundingClientRect()),this.rect}},{key:"getOffsetRect",value:function(){var t=this.el,e=this.getBody(),n=e.scrollTop,r=e.scrollLeft,i=t.offsetHeight,o=t.offsetWidth;return{top:t.offsetTop,left:t.offsetLeft,height:i,width:o,scrollTop:n,scrollLeft:r,scrollBottom:n+i,scrollRight:r+o}}},{key:"_getTool",value:function(t){var e=this.tools,n=this.getToolsEl();return e[t]||(e[t]=n.querySelector(t)),e[t]}},{key:"remove",value:function(){var t=this.wrapper;this._toggleEffects(),this.tools={},t&&t.remove(),d.View.prototype.remove.apply(this,arguments)}},{key:"startAutoscroll",value:function(){var t=this;this.lastMaxHeight=this.getWrapper().offsetHeight-this.el.offsetHeight,setTimeout((function(){t._toggleAutoscrollFx(1),requestAnimationFrame(t.autoscroll)}),0)}},{key:"autoscroll",value:function(){if(this.dragging){var t=this.lastClientY,e=this.em.get('Canvas'),n=this.getWindow(),r=this.getBody().scrollTop,i=t||0,a=e.getConfig().autoscrollLimit,s=this.getRect().height-a,l=r;if(is&&(l+=i-s),!(0,o.isUndefined)(t)&&l!==r&&l>0&&l0){var l=r.shift(),c=(0,y.ut)('script',C({type:'text/javascript'},(0,o.isString)(l)?{src:l}:l));c.onerror=c.onload=n.bind(null,r),e.contentDocument.head.appendChild(c)}else t.renderBody(),i&&i.trigger(a,s)};e.onload=function(){i&&i.trigger("".concat(a,":before"),s),c((0,r.Z)(l.get('scripts')))}}},{key:"renderStyles",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getHead(),n=this.getCanvasModel(),r=function(t){return t.map((function(t){return{tag:'link',attributes:C({rel:'stylesheet'},(0,o.isString)(t)?{href:t}:t)}}))},i=r(t.prev||n.previous('styles')),a=r(n.get('styles')),s=[],l=[],c=function(t,e,n){t.forEach((function(t){var r=t.attributes.href;!e.some((function(t){return t.attributes.href===r}))&&n.push(t)}))};c(a,i,l),c(i,a,s),s.forEach((function(t){var n=e.querySelector("link[href=\"".concat(t.attributes.href,"\"]"));n&&n.parentNode.removeChild(n)})),(0,y.SJ)(e,l)}},{key:"renderBody",value:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=e.em,o=this.getDoc(),s=this.getBody(),l=this.getWindow(),c=i.get('Config');l._isEditor=!0,this.renderStyles({prev:[]});(0,y.R3)(s,""));var u=n.getComponent(),f=i.get('DomComponents').getType('wrapper').view;this.wrapper=new f({model:u,config:C(C({},u.config),{},{frameView:this})}).render(),(0,y.R3)(s,this.wrapper.el),(0,y.R3)(s,new w.Z({collection:n.getStyles(),config:C(C({},i.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),(0,y.R3)(s,this.getJsContainer()),(0,a.on)(s,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),(0,a.on)(s,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'pointerdown pointermove pointerup',class:'PointerEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){o.addEventListener(n,(function(n){return t.el.dispatchEvent((0,y.t3)(n,e.class))}))}))})),this._toggleEffects(1),this.droppable=(0,a.hasDnd)(i)&&new x(i,this.wrapper.el),n.trigger('loaded')}},{key:"_toggleEffects",value:function(t){var e=t?a.on:a.off,n=this.getWindow();n&&e(n,"".concat(y.G1," resize"),this._emitUpdate)}},{key:"_emitUpdate",value:function(){this.model._emitUpdated()}}]),n}(d.View),_=n(1981);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.bindAll)(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=E(E({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,a=r.em;this.cv=i,this.config=r,this.em=a,this.canvas=a&&a.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new P({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),this.updateOffset=(0,o.debounce)(this.updateOffset.bind(this)),this.updateSize=(0,o.debounce)(this.updateSize.bind(this)),this.listenTo(n,'loaded',this.frameLoaded),this.listenTo(n,'change:x change:y',this.updatePos),this.listenTo(n,'change:width change:height',this.updateSize),this.listenTo(n,'destroy remove',this.remove),this.updatePos(),this.setupDragger()}},{key:"setupDragger",value:function(){var t,e,n,r=this,i=this.canvas,o=this.model,a=function(t){i.toggleFramesEvents(t)};this.dragger=new _.Z({onStart:function(){var i=o.attributes,s=i.x,l=i.y;n=r.em.getZoomMultiplier(),t=s,e=l,a()},onEnd:function(){return a(1)},setPosition:function(r){o.set({x:t+r.x*n,y:e+r.y*n})}})}},{key:"startDrag",value:function(t){t&&this.dragger.start(t)}},{key:"__clear",value:function(t){var e=this.frame;e&&e.remove(t),(0,y.L_)(this.elTools)}},{key:"remove",value:function(t){var e=this;return this.__clear(t),d.View.prototype.remove.apply(this,arguments),['frame','dragger','cv','em','canvas','elTools'].forEach((function(t){return e[t]=0})),this}},{key:"updateOffset",value:function(){var t=this.em,e=this.$el,n=this.frame;t&&(t.runDefault({preserveSelected:1}),e.removeClass(this.classAnim),n.model._emitUpdated())}},{key:"updatePos",value:function(t){var e=this.model,n=this.el,r=e.attributes,i=r.x,o=r.y,a=n.style;this.frame.rect=0,a.left=isNaN(i)?i:"".concat(i,"px"),a.top=isNaN(o)?o:"".concat(o,"px"),t&&this.updateOffset()}},{key:"updateSize",value:function(){this.updateDim()}},{key:"updateDim",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,a=this.frame;if(a){a.rect=0,n.addClass(i);var s=this.__handleSize(),l=s.noChanges,c=s.width,u=s.height;((0,o.isNull)(c)||(0,o.isNull)(u))&&r.set(E(E({},c?{}:{width:e.offsetWidth}),u?{}:{height:e.offsetHeight}),{silent:1}),t.stopDefault({preserveSelected:1}),l?this.updateOffset():setTimeout(this.updateOffset,350)}}},{key:"onScroll",value:function(){var t=this.frame;this.em.trigger('frame:scroll',{frame:t,body:t.getBody(),target:t.getWindow()})}},{key:"frameLoaded",value:function(){this.frame.getWindow().onscroll=this.onScroll,this.updateDim()}},{key:"__handleSize",value:function(){var t=this.model,e=this.el.style,n=t.attributes,r=n.width,i=n.height,a=e.width||'',s=e.height||'',l=r||'',c=i||'',u=a==l&&s==c;return e.width=(0,o.isNumber)(l)?"".concat(l).concat("px"):l,e.height=(0,o.isNumber)(c)?"".concat(c).concat("px"):c,{noChanges:u,width:r,height:i,newW:l,newH:c}}},{key:"render",value:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,a=i.attributes.onRender;this.__clear(),this.__handleSize(),t.render(),e.empty().attr({class:"".concat(n,"frame-wrapper")}).append("\n
\n
\n ").concat(i.get('name')||'',"\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n ")).append(t.el);var s=(0,y.ut)('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n "));this.elTools=s;var l=r.toolsWrapper;return l&&l.appendChild(s),a&&a({el:o,elTop:o.querySelector('[data-frame-top]'),elRight:o.querySelector('[data-frame-right]'),elBottom:o.querySelector('[data-frame-bottom]'),elLeft:o.querySelector('[data-frame-left]'),frame:i,frameWrapperView:this,remove:this.remove,startDrag:this.startDrag}),this}}]),n}(d.View);function M(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var A,R=function(t){(0,u.Z)(n,t);var e=M(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,l.Z)(this,n),(t=e.call(this,r,i,!0)).listenTo(t.collection,'reset',t.render),t}return(0,c.Z)(n,[{key:"onRemoveBefore",value:function(t,e){t.forEach((function(t){return t.remove(e)}))}},{key:"onRender",value:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}}]),n}(b.Z);function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function L(t){for(var e=1;e\n
\n ")}},{key:"initialize",value:function(t){(0,o.bindAll)(this,'clearOff','onKeyPress','onCanvasMove');var e=this.model;this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.config.stylePrefix+'canvas';var n=this.em;this._initFrames(),this.listenTo(n,'change:canvasOffset',this.clearOff),this.listenTo(n,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(e,'change:frames',this._onFramesUpdate),this.toggleListeners(1)}},{key:"_onFramesUpdate",value:function(){this._initFrames(),this._renderFrames()}},{key:"_initFrames",value:function(){var t=this.frames,e=this.model,n=this.config,r=this.em,i=e.get('frames');r.set('readyCanvas',0),i.once('loaded:all',(function(){return r.set('readyCanvas',1)})),t&&t.remove(),this.frames=new R({collection:i,config:L(L({},n),{},{canvasView:this})})}},{key:"checkSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.scroll,r=this.em.get('currentFrame');n&&t.views.forEach((function(t){t._getFrame()===r&&t.scrollIntoView(n)}))}},{key:"remove",value:function(){this.frames.remove(),this.frames={},d.View.prototype.remove.apply(this,arguments),this.toggleListeners()}},{key:"preventDefault",value:function(t){t&&(t.preventDefault(),t._parentEvent&&t._parentEvent.preventDefault())}},{key:"onCanvasMove",value:function(t){}},{key:"toggleListeners",value:function(t){this.el;var e=t?a.on:a.off;e(document,'keypress',this.onKeyPress),e(window,'scroll resize',this.clearOff)}},{key:"onKeyPress",value:function(t){var e=this.em;' '!==(0,a.getKeyChar)(t)||1===e.getZoomDecimal()||e.get('Canvas').isInputFocused()||(this.preventDefault(t),e.get('Editor').runCommand('core:canvas-move'))}},{key:"onWheel",value:function(t){if((t.ctrlKey||t.metaKey)&&this.em.getConfig('multiFrames')){this.preventDefault(t);var e=this.model,n=Math.max(-1,Math.min(1,t.wheelDelta||-t.detail)),r=e.get('zoom');e.set('zoom',r+2*n)}}},{key:"updateFrames",value:function(t){var e=this.em,n=this.model.attributes,r=n.x,i=n.y,o=this.getZoom(),a={preserveSelected:1},s=o?1/o:1;this.framesArea.style.transform="scale(".concat(o,") translate(").concat(r*s,"px, ").concat(i*s,"px)"),this.clearOff(),e.stopDefault(a),e.trigger('canvas:update',t),A&&clearTimeout(A),A=setTimeout((function(){return e.runDefault(a)}),300)}},{key:"getZoom",value:function(){return this.em.getZoomDecimal()}},{key:"isElInViewport",value:function(t){var e=(0,a.getElement)(t),n=(0,a.getElRect)(e),r=this.getFrameOffset(e),i=n.top,o=n.left;return i>=0&&o>=0&&i<=r.height&&o<=r.width}},{key:"offset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElRect)(t),r=t.ownerDocument.body,i=e.noScroll;return{top:n.top+(i?0:r.scrollTop),left:n.left+(i?0:r.scrollLeft),width:n.width,height:n.height}}},{key:"clearOff",value:function(){this.frmOff=null,this.cvsOff=null}},{key:"getFrameOffset",value:function(t){if(!this.frmOff||t){var e=this.frame.el,n=t&&t.ownerDocument.defaultView,r=n?n.frameElement:e;this.frmOff=this.offset(r||e)}return this.frmOff}},{key:"getCanvasOffset",value:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff}},{key:"getElementPos",value:function(t,e){var n=this.getZoom(),r=e||{},i=this.getFrameOffset(t),o=this.getCanvasOffset(),a=this.offset(t,e),s=r.avoidFrameOffset?0:i.top,l=r.avoidFrameOffset?0:i.left;return{top:a.top*n+s-o.top,left:a.left*n+l-o.left,height:a.height*n,width:a.width*n,zoom:n,rect:a}}},{key:"getElementOffsets",value:function(t){var e=this;if(!t||(0,a.isTextNode)(t))return{};var n={},r=window.getComputedStyle(t);return['marginTop','marginRight','marginBottom','marginLeft','paddingTop','paddingRight','paddingBottom','paddingLeft'].forEach((function(t){n[t]=parseFloat(r[t])*e.getZoom()})),n}},{key:"getPosition",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.frame.el.contentDocument;if(e){var n=e.body,r=this.getZoom(),i=this.getFrameOffset(),o=this.getCanvasOffset(),a=t.noScroll;return{top:i.top+(a?0:n.scrollTop)*r-o.top,left:i.left+(a?0:n.scrollLeft)*r-o.left,width:o.width,height:o.height}}}},{key:"updateScript",value:function(t){var e=t.model,n=e.getId();t.scriptContainer||(t.scriptContainer=(0,y.ut)('div',{'data-id':n}),this.getJsContainer().appendChild(t.scriptContainer)),t.el.id=n,t.scriptContainer.innerHTML='';var r=document.createElement('script'),i=e.getScriptString(),o=e.get('script-props')?i:"function(){\n".concat(i,"\n;}"),a=JSON.stringify(e.__getScriptProps());r.innerHTML="\n setTimeout(function() {\n var item = document.getElementById('".concat(n,"');\n if (!item) return;\n (").concat(o,".bind(item))(").concat(a,")\n }, 1);"),setTimeout((function(){var e=t.scriptContainer;null==e||e.appendChild(r)}),0)}},{key:"getJsContainer",value:function(t){var e=this.getFrameView(t);return e&&e.getJsContainer()}},{key:"getFrameView",value:function(t){return t&&t._getFrame()||this.em.get('currentFrame')}},{key:"_renderFrames",value:function(){if(this.ready){var t=this.model,e=this.frames,n=this.em,r=this.framesArea,i=t.get('frames');i.listenToLoad(),e.render();var o=i.at(0),a=o&&o.view;n.setCurrentFrame(a),r&&r.appendChild(e.el),this.frame=a}}},{key:"render",value:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.config,i=this.em;e.html(this.template());var o=e.find('[data-frames]');this.framesArea=o.get(0);var s=e.find('[data-tools]');this.toolsWrapper=s.get(0),s.append("\n
\n
\n
\n
\n
\n
\n ").concat(r.extHl?"
"):'',"\n
\n
\n
\n
\n
\n
\n
\n "));var l=t.querySelector("#".concat(n,"tools"));return this.hlEl=t.querySelector(".".concat(n,"highlighter")),this.badgeEl=t.querySelector(".".concat(n,"badge")),this.placerEl=t.querySelector(".".concat(n,"placeholder")),this.ghostEl=t.querySelector(".".concat(n,"ghost")),this.toolbarEl=t.querySelector(".".concat(n,"toolbar")),this.resizerEl=t.querySelector(".".concat(n,"resizer")),this.offsetEl=t.querySelector(".".concat(n,"offset-v")),this.fixedOffsetEl=t.querySelector(".".concat(n,"offset-fixed-v")),this.toolsGlobEl=t.querySelector(".".concat(n,"tools-gl")),this.toolsEl=l,this.el.className=(0,a.getUiClass)(i,this.className),this.ready=1,this._renderFrames(),this}}]),n}(d.View);function F(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function B(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=B(B(B({},s),e),{},{module:this}),this.em=n.em;var r=n,i=r.scripts,o=r.styles,a=n.pStylePrefix;return a&&(n.stylePrefix=a+n.stylePrefix),t=new m({scripts:i,styles:o},e),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},onLoad:function(){this.model.init()},getModel:function(){return t},getConfig:function(){return n},getElement:function(){return e.el},getFrame:function(t){return this.getFrames()[t||0]},getFrameEl:function(){var t=(e||{}).frame;return t&&t.el},getFramesEl:function(){return e.framesArea},getWindow:function(){return this.getFrameEl().contentWindow},getDocument:function(){var t=this.getFrameEl();return t&&t.contentDocument},getBody:function(){var t=this.getDocument();return t&&t.body},_getCompFrame:function(t){return t&&t._getFrame()},_getLocalEl:function(t,e,n){var r=t,i=this._getCompFrame(e);return r=i?i[n]():r},getGlobalToolsEl:function(){return e.toolsGlobEl},getToolsEl:function(t){return this._getLocalEl(e.toolsEl,t,'getToolsEl')},getHighlighter:function(t){return this._getLocalEl(e.hlEl,t,'getHighlighter')},getBadgeEl:function(t){return this._getLocalEl(e.badgeEl,t,'getBadgeEl')},getPlacerEl:function(){return e.placerEl},getGhostEl:function(){return e.ghostEl},getToolbarEl:function(){return e.toolbarEl},getResizerEl:function(){return e.resizerEl},getOffsetViewerEl:function(t){return this._getLocalEl(e.offsetEl,t,'getOffsetViewerEl')},getFixedOffsetViewerEl:function(){return e.fixedOffsetEl},render:function(){return e&&e.remove(),(e=new I({model:t,config:n})).render().el},getOffset:function(){var t=this.offset(this.getFrameEl()),e=this.offset(this.getElement());return{top:t.top-e.top,left:t.left-e.left}},offset:function(t){return e.offset(t)},setCustomBadgeLabel:function(t){n.customBadgeLabel=t},getElementPos:function(t,n){return e.getElementPos(t,n)},getElementOffsets:function(t){return e.getElementOffsets(t)},getRect:function(){var t=e.getPosition(),n=t.top,r=t.left;return B(B({},e.getCanvasOffset()),{},{topScroll:n,leftScroll:r})},getTargetToElementDim:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i||{},a=e.getPosition();if(a){var s=o.elPos||e.getElementPos(r),l=i.toRight||0,c=o.targetHeight||t.offsetHeight,u=o.targetWidth||t.offsetWidth,f=o.event||null,h=s.top-c,d=s.left;d+=l?s.width:0;var p=(d=l?d-u:d)s.top+s.height?s.top+s.height:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:a.top,canvasLeft:a.left,canvasWidth:a.width,canvasHeight:a.height};return f&&n.em&&n.em.trigger(f,v),v}},canvasRectOffset:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=function(t){var e=t.defaultView;return e&&e.frameElement},o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0,a=n.em.getZoomDecimal(),s=e?'top':'left',l=t.ownerDocument,c=r.offset?i(l):{},u=c.offsetTop,f=void 0===u?0:u,h=c.offsetLeft,d=void 0===h?0:h,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,y=void 0===m?0:m,b=e?v:y,w=e?f:d;return o[s]-(b-w)*a};return{top:o(t,1,e),left:o(t,0,e)}},getTargetToElementFixed:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.pos||this.getElementPos(t),i=n.canvasOff||this.canvasRectOffset(t,r),a=e.offsetHeight||0,s=e.offsetWidth||0,l=r.left+r.width,c=this.getCanvasView(),u=c.getPosition(),f=c.getFrameOffset(t),h=n.event,d=-a,p=(0,o.isUndefined)(n.left)?r.width-s:n.left;p=r.left<-p?-r.left:p,p=l>u.width?p-(l-u.width):p;var g=r.height+a,v=g1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElement)(t),r=n&&(0,a.getViewEl)(n);r&&r.scrollIntoView(e)},startAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.startAutoscroll()},stopAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.stopAutoscroll()},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},setCoords:function(e,n){return t.set({x:parseFloat(e),y:parseFloat(n)}),this},getCoords:function(){var e=t.attributes;return{x:e.x,y:e.y}},getZoomDecimal:function(){return this.getZoom()/100},getZoomMultiplier:function(){var t=this.getZoomDecimal();return t?1/t:1},toggleFramesEvents:function(t){this.getFramesEl().style.pointerEvents=t?'':'none'},getFrames:function(){return t.get('frames').map((function(t){return t}))},addFrame:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.get('frames').add(B({},e),B(B({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e&&e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},8445:(t,e,n)=>{"use strict";n.d(e,{Z:()=>x});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(9050),u=n(2316),f=n(2982),h=n(3168);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 p(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.config,r=n.em,i=this.attributes,o=i.styles,a=i.component,s=r.get('DomComponents'),l=s.getConfig(),u=r.get('CssComposer').getAll(),f={};this.em=r;var d={em:r,config:l,frame:this,idMap:f};if(!(0,h.isComponent)(a)){var p=(0,h.isObject)(a)?a:{components:a};!p.type&&(p.type='wrapper');var g=s.getType('wrapper').model;this.set('component',new g(p,d))}if(o){if(!(0,h.isObject)(o)){var y=Object.keys(f);y.length&&Array.isArray(o)&&o.forEach((function(t){var e=t.selectors;if(e&&1==e.length){var n=e[0],r=n.name&&2===n.type&&n;if(r&&f[r.name])r.name=f[r.name];else if((0,c.isString)(n)&&'#'===n[0]){var i=n.substring(1);i&&f[i]&&(e[0]="#".concat(f[i]))}}})),u.add(o),this.set('styles',u)}}else this.set('styles',u);!t.width&&this.set(v,1),!t.height&&this.set(m,1)}},{key:"onRemove",value:function(){this.getComponent().remove({root:1})}},{key:"changesUp",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.temporary||t.noCount||t.avoidStore||this.set('changesCount',this.get('changesCount')+1)}},{key:"getComponent",value:function(){return this.get('component')}},{key:"getStyles",value:function(){return this.get('styles')}},{key:"disable",value:function(){this.trigger('disable')}},{key:"remove",value:function(){this.view=0;var t=this.collection;return t&&t.remove(this)}},{key:"getHead",value:function(){var t=this.get('head')||[];return(0,f.Z)(t)}},{key:"setHead",value:function(t){return this.set('head',(0,f.Z)(t))}},{key:"addHeadItem",value:function(t){var e=this.getHead();e.push(t),this.setHead(e)}},{key:"getHeadByAttr",value:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]}},{key:"removeHeadByAttr",value:function(t,e,n){var r=this.getHead(),i=this.getHeadByAttr(t,e,n),o=r.indexOf(i);o>=0&&(r.splice(o,1),this.setHead(r))}},{key:"addLink",value:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})}},{key:"removeLink",value:function(t){this.removeHeadByAttr('href',t,'link')}},{key:"addScript",value:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})}},{key:"removeScript",value:function(t){this.removeHeadByAttr('src',t,'script')}},{key:"getPage",value:function(){var t=this.collection;return t&&t.page}},{key:"_emitUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',p({frame:this},t))}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=u.Model.prototype.toJSON.call(this,t),n=(0,c.result)(this,'defaults');return t.fromUndo&&delete e.component,delete e.styles,delete e.changesCount,e.__aw&&delete e.width,e.__ah&&delete e.height,(0,c.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,c.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),(0,c.forEach)(['attributes','head'],(function(t){(0,c.isEmpty)(e[t])&&delete e[t]})),e}}]),n}(u.Model);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,c.bindAll)(this,'itemLoaded'),this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"itemLoaded",value:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))}},{key:"listenToLoad",value:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)}},{key:"listenToLoadItems",value:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return u.Collection.prototype.add.call(this,t,w(w({},e),{},{config:n}))}}]),n}(u.Collection);x.prototype.model=y},8101:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>T});var r=n(9050);const i={stylePrefix:'cm-',inlineCss:!1};var o=n(5671),a=n(3144),s=n(9340),l=n(2963),c=n(1120),u=n(2316);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var h=function(t){(0,s.Z)(n,t);var e=f(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=e.em;if(e.cleanId&&r){var i=r.get('CssComposer').getAll(),o=i.toJSON().map((function(t){var e=t.selectors,n=e&&1===e.length&&e.models[0];return n&&n.isId()&&n.get('name')})).filter((function(t){return t}));n.attributes=function(t,e){var n=e.id;return n&&'i'===n[0]&&!t.get('script')&&!t.get('attributes').id&&o.indexOf(n)<0&&delete e.id,e}}return t.toHTML(n)}}]),n}(u.Model),d=n(8467);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var g=function(t){(0,s.Z)(n,t);var e=p(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=t.toJSON();return this.beforeEach(e),(0,r.each)(e,(function(t,n){var r=e[n];if(r instanceof u.Model)e[n]=this.build(r);else if(r instanceof u.Collection){var i=r;e[n]=[],i.length&&i.each((function(t,r){e[n][r]=this.build(t)}),this)}}),this),e}},{key:"beforeEach",value:function(t){delete t.status}}]),n}(u.Model),v=n(4942);function m(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var y,b=function(t){(0,s.Z)(n,t);var e=m(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"mapModel",value:function(t){var e='',n=t.get('script-export')||t.get('script'),i=t.get('type'),o=t.get('components'),a=t.getId();if(n){var s=t.get('attributes');s=(0,r.extend)({},s,{id:a}),t.set('attributes',s,{silent:1});var l=t.getScriptString(n),c=t.get('script-props');if(t.get('scriptUpdated')&&!c)this.mapJs[i+'-'+a]={ids:[a],code:l};else{var u,f=this.mapJs[i];if(c&&(u=t.__getScriptProps()),f)f.ids.push(a),u&&(f.props[a]=u);else{var h={ids:[a],code:l};u&&(h.props=(0,v.Z)({},a,u)),this.mapJs[i]=h}}}return o.each((function(t){e+=this.mapModel(t)}),this),e}},{key:"build",value:function(t){this.mapJs={},this.mapModel(t);var e='';for(var n in this.mapJs){var r=this.mapJs[n];if(r.code)if(r.props){if(0===r.code.toString().match(/\{([\s\S]*)\}/m)[1].replace(/^\s*\/\/.*$/gm,'').trim().length)continue;e+="\n var props = ".concat(JSON.stringify(r.props),";\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (").concat(r.code,".bind(el))(props[el.id]);\n }")}else{var i='#'+r.ids.join(', #');e+="\n var items = document.querySelectorAll('".concat(i,"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\n").concat(r.code,"\n}.bind(items[i]))();\n }")}}return e}}]),n}(u.Model);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}(0,n(3168).hasWin)()&&(y=n(4631),n(6531),n(6629),n(9210));var x=function(t){(0,s.Z)(n,t);var e=k(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"defaults",value:function(){return{input:'',label:'',codeName:'',theme:'hopscotch',readOnly:!0,lineNumbers:!0}}},{key:"init",value:function(t){return(0,r.bindAll)(this,'onChange'),this.editor=y.fromTextArea(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=this.editor;r&&(r.setValue(t),r.autoFormatRange&&(y.commands.selectAll(r),r.autoFormatRange(r.getCursor(!0),r.getCursor(!1)),y.commands.goDocStart(r)),!n.noRefresh&&setTimeout((function(){return e.refresh()})))}}]),n}(u.Model);x.prototype.CodeMirror=y;var O,C=n(168),S=n(8595);function P(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var _=function(t){(0,s.Z)(n,t);var e=P(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.codeName,r=t.label;return(0,S.Z)(O||(O=(0,C.Z)(["\n
\n
","
\n
\n
\n "])),e,e,n,e,r,e)}},{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix}},{key:"render",value:function(){var t=this.model,e=this.pfx,n=this.$el,r=t.toJSON();return r.pfx=e,n.html(this.template(r)),n.attr('class',"".concat(e,"editor-c")),n.find("#".concat(e,"code")).append(t.get('input')),this}}]),n}(u.View);const T=function(){var t={},e={},n={},o={},a={},s='CodeMirror';return{getConfig:function(){return t},config:t,EditorView:_,name:'CodeManager',init:function(e){for(var r in t=e||{},i)r in t||(t[r]=i[r]);var o=t.pStylePrefix;return o&&(t.stylePrefix=o+t.stylePrefix),n.html=new h,n.css=new d.Z,n.json=new g,n.js=new b,a.CodeMirror=new x,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,n){return e[t]=n,this},getGenerator:function(t){return e[t]||null},getGenerators:function(){return e},addViewer:function(t,e){return o[t]=e,this},getViewer:function(t){return o[t]||null},getViewers:function(){return o},createViewer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,r.isUndefined)(t.type)?s:t.type,n=this.getViewer(e)&&this.getViewer(e).clone(),i=document.createElement('div'),o=document.createElement('textarea');return i.appendChild(o),n.set(t),n.init(o),n.setElement(i),n},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.em=t.em;var i=this.getGenerator(n);return i?i.build(e,r):''},loadDefaultGenerators:function(){for(var t in n)this.addGenerator(t,n[t]);return this},loadDefaultViewers:function(){for(var t in a)this.addViewer(t,a[t]);return this},destroy:function(){[t,e,n,o,a].forEach((function(t){return{}}))}}}},8467:(t,e,n)=>{"use strict";n.d(e,{U:()=>d,Z:()=>p});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(2316),u=n(3168);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=Number.MAX_VALUE,d=function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?e[0]:''},p=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){(0,l.bindAll)(this,'sortRules'),this.compCls=[],this.ids=[]}},{key:"buildFromModel",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r='',i=this.em,o=i&&i.getConfig('avoidInlineStyle'),a=t.styleToString(),s=t.get('classes');this.ids.push("#".concat(t.getId())),s.each((function(t){return e.compCls.push(t.getFullName())})),!o&&a&&(r="#".concat(t.getId(),"{").concat(a,"}"));var l=t.components();return l.each((function(t){return r+=e.buildFromModel(t,n)})),r}},{key:"build",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.json,i=n.em||'',o=n.cssc||i&&i.get('CssComposer');this.em=i,this.compCls=[],this.ids=[],this.model=t;var a=[],s=t?this.buildFromModel(t,n):'',c=(0,l.isUndefined)(n.clearStyles)&&i?i.getConfig('clearStyles'):n.clearStyles;if(o){var f=n.rules||o.getAll(),h={},d=[];n.onlyMatched&&t&&(0,u.hasWin)()&&(f=this.matchedRules(t,f)),f.forEach((function(t){var i=t.getAtRule();if(i){var o=h[i];o?o.push(t):h[i]=[t]}else{var l=e.buildFromRule(t,d,n);r?a.push(l):s+=l}})),this.sortMediaObject(h).forEach((function(t){var i='',o=t.key;t.value.forEach((function(t){var l=e.buildFromRule(t,d,n);t.get('singleAtRule')?s+="".concat(o,"{").concat(l,"}"):i+=l,r&&a.push(l)})),i&&(s+="".concat(o,"{").concat(i,"}"))})),i&&c&&f.remove&&f.remove(d)}return r?a.filter((function(t){return t})):s}},{key:"buildFromRule",value:function(t,e){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o='',a=this.model,s=t.selectorsToString({skipAdd:1}),l=t.get('selectorsAdd'),c=t.get('singleAtRule');if(t.get('selectors').each((function(t){var e=t.getFullName();(r.compCls.indexOf(e)>=0||r.ids.indexOf(e)>=0||i.keepUnusedStyles)&&(n=1)})),s&&n||l||c||!a){var u=t.getDeclaration({body:1});u&&(i.json?o=t:o+=u)}else e.push(t);return o}},{key:"matchedRules",value:function(t,e){var n=this,r=t.getEl(),i=[];return e.forEach((function(t){try{t.selectorsToString().split(',').some((function(t){return r.matches(n.__cleanSelector(t))}))&&i.push(t)}catch(t){}})),t.components().forEach((function(t){i=i.concat(n.matchedRules(t,e))})),i=i.filter((function(t,e){return i.indexOf(t)===e}))}},{key:"getQueryLength",value:function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?parseFloat(e[1]):h}},{key:"sortMediaObject",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return(0,l.each)(e,(function(t,e){return n.push({key:e,value:t})})),n.sort((function(e,n){var r=[e.key,n.key].every((function(t){return-1!==t.indexOf('min-width')})),i=r?e.key:n.key,o=r?n.key:e.key;return t.getQueryLength(i)-t.getQueryLength(o)}))}},{key:"sortRules",value:function(t,e){var n=function(t){return t.get('mediaText')},r=[n(t),n(e)].every((function(t){return-1!==t.indexOf('min-width')})),i=n(r?t:e),o=n(r?e:t);return this.getQueryLength(i)-this.getQueryLength(o)}},{key:"__cleanSelector",value:function(t){return t.split(' ').map((function(t){return t.split(':')[0]})).join(' ')}}]),n}(c.Model)},6045:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>h});var r=n(2982),i=n(4942),o=n(9050),a=n(5884);const s={stylePrefix:'com-',defaults:[],strict:1};var l=n(4822);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};e=u(u({},s),a),t=e.em;var h=e.pStylePrefix;return h&&(e.stylePrefix=h+e.stylePrefix),Object.keys(e.defaults).forEach((function(t){var n=e.defaults[t];n.id&&i.add(n.id,n)})),c['tlb-delete']={run:function(t){return t.runCommand('core:component-delete')}},c['tlb-clone']={run:function(t){t.runCommand('core:copy'),t.runCommand('core:paste',{action:'clone-component'})}},c['tlb-move']={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),a=n&&n.event,s=n.target,c=s||t.getSelected(),u=s?[s]:(0,r.Z)(t.getSelectedAll()),f=a&&'dragstart'==a.type,h={preserveSelected:1},d=['absolute','translate'];if(!c||!c.get('draggable'))return i.logWarning('The element is not draggable');var p=c.get('dmode')||i.get('dmode'),g=function(){return i.stopDefault(h)},v=(0,o.includes)(d,p);u.forEach((function(t){return t.trigger('disable')})),f?setTimeout(g,0):g();var m=function(t){i.trigger("".concat(l.OA,":start"),t)},y=function(t){i.trigger(l.OA,t)},b=function(e,n,r){u.forEach((function(t){return t.set('status','selected')})),t.select(u),c.emitUpdate(),i.trigger("".concat(l.OA,":end"),r),setTimeout((function(){return i.runDefault(h)})),(v||r.cancelled)&&i.set('_cmpDrag',1)};if(v)t.runCommand('core:component-drag',{guidesInfo:1,mode:p,target:c,onStart:m,onDrag:y,onEnd:b,event:a});else{f&&a.dataTransfer.setDragImage(c.view.el,0,0);var w=t.Commands.get('move-comp');w.onStart=m,w.onDrag=y,w.onEndMoveFromModel=b,w.initSorterFromModels(u)}u.forEach((function(t){return t.set('status','freezed-selected')}))}},c['core:undo']=function(t){return t.UndoManager.undo()},c['core:redo']=function(t){return t.UndoManager.redo()},f.forEach((function(e){var r=e[2],i=n(2828)("./".concat(e[1])).default,o="core:".concat(e[0]);c[o]=i,r&&(c[r]=i,['run','stop'].forEach((function(e){t.on("".concat(e,":").concat(r),(function(){for(var n,r=arguments.length,i=new Array(r),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.get(t);if(n){var r=u(u({},n.constructor.prototype),e);this.add(t,r);var i=f.filter((function(e){return"core:".concat(e[0])===t&&e[2]}))[0];i&&this.add(i[2],r)}return this},has:function(t){return!!i[t]},getAll:function(){return i},run:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.runCommand(this.get(t),e)},stop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.stopCommand(this.get(t),e)},isActive:function(t){return this.getActive().hasOwnProperty(t)},getActive:function(){return h},loadDefaultCommands:function(){for(var t in c)this.add(t,c[t]);return this},runCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');this.isActive(o)&&!i.force&&e.strict||(r=a&&n.callRun(a,i),o&&n.stop&&!n.noStop&&!i.abort&&(h[o]=r))}return r},stopCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');(this.isActive(o)||i.force||!e.strict)&&(o&&delete h[o],r=n.callStop(a,i))}return r},create:function(t){return t.stop||(t.noStop=1),new(a.default.extend(t))(e)},destroy:function(){[t,e,i,c,h].forEach((function(t){return{}}))}}}},9819:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){t.DomComponents.clear(),t.CssComposer.clear()}}},2784:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(9050),i=n(3168),o=n(1981);const a={run:function(t){(0,r.bindAll)(this,'onKeyUp','enableDragger','disableDragger'),this.editor=t,this.canvasModel=this.canvas.getCanvasView().model,this.toggleMove(1)},stop:function(t){this.toggleMove(),this.disableDragger()},onKeyUp:function(t){' '===(0,i.getKeyChar)(t)&&this.editor.stopCommand(this.id)},enableDragger:function(t){this.toggleDragger(1,t)},disableDragger:function(t){this.toggleDragger(0,t)},toggleDragger:function(t,e){var n=this.canvasModel,r=this.em,i=this.dragger,a=t?'add':'remove';this.getCanvas().classList[a]("".concat(this.ppfx,"is__grabbing")),i||(i=new o.Z({getPosition:function(){return{x:n.get('x'),y:n.get('y')}},setPosition:function(t){var e=t.x,r=t.y;n.set({x:e,y:r})},onStart:function(t,e){r.trigger('canvas:move:start',e)},onDrag:function(t,e){r.trigger('canvas:move',e)},onEnd:function(t,e){r.trigger('canvas:move:end',e)}}),this.dragger=i),t?i.start(e):i.stop()},toggleMove:function(t){var e=this.ppfx,n=t?'add':'remove',r=t?'on':'off',o={on:i.on,off:i.off},a=this.getCanvas(),s=["".concat(e,"is__grab")];!t&&s.push("".concat(e,"is__grabbing")),s.forEach((function(t){return a.classList[n](t)})),o[r](document,'keyup',this.onKeyUp),o[r](a,'mousedown',this.enableDragger),o[r](document,'mouseup',this.disableDragger)}}},5884:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316);function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var u=function(t){(0,o.Z)(n,t);var e=c(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+'hover',this.badgeClass=this.pfx+'badge',this.plhClass=this.pfx+'placeholder',this.freezClass=this.ppfx+'freezed',this.canvas=this.em.get&&this.em.get('Canvas'),this.init(this.config)}},{key:"onFrameScroll",value:function(t){}},{key:"getCanvas",value:function(){return this.canvas.getElement()}},{key:"getCanvasBody",value:function(){return this.canvas.getBody()}},{key:"getCanvasTools",value:function(){return this.canvas.getToolsEl()}},{key:"offset",value:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}}},{key:"init",value:function(t){}},{key:"callRun",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id;if(t.trigger("run:".concat(n,":before"),e),!e||!e.abort){var r=e.sender||t,i=this.run(t,r,e);return t.trigger("run:".concat(n),i,e),t.trigger('run',n,i,e),i}t.trigger("abort:".concat(n),e)}},{key:"callStop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id,r=e.sender||t;t.trigger("stop:".concat(n,":before"),e);var i=this.stop(t,r,e);return t.trigger("stop:".concat(n),i,e),t.trigger('stop',n,i,e),i}},{key:"stopCommand",value:function(){this.em.get('Commands').stop(this.id)}},{key:"run",value:function(t,e){}},{key:"stop",value:function(t,e){}}]),n}(l.Model)},7585:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2982),i=n(9050);const o={run:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[],s=o.component||t.getSelectedAll();return(s=(0,i.isArray)(s)?(0,r.Z)(s):[s]).filter(Boolean).forEach((function(t){if(!t.get('removable'))return a.push(t),n.em.logWarning('The element is not removable',{component:t});t.remove()})),t.select(a),s}}},1035:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(4942),i=n(9050),o=n(1981);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};(0,i.bindAll)(this,'setPosition','onStart','onDrag','onEnd','getPosition','getGuidesStatic','renderGuide','getGuidesTarget');var a=r.target,c=r.event,u=r.mode,f=r.dragger,h=void 0===f?{}:f,d=a.getEl(),p=s({doc:d.ownerDocument,onStart:this.onStart,onEnd:this.onEnd,onDrag:this.onDrag,getPosition:this.getPosition,setPosition:this.setPosition,guidesStatic:function(){return n.guidesStatic},guidesTarget:function(){return n.guidesTarget}},h);this.setupGuides(),this.opts=r,this.editor=t,this.em=t.getModel(),this.target=a,this.isTran='translate'==u,this.guidesContainer=this.getGuidesContainer(),this.guidesTarget=this.getGuidesTarget(),this.guidesStatic=this.getGuidesStatic();var g=this.dragger;return g?g.setOptions(p):(g=new o.Z(p),this.dragger=g),c&&g.start(c),this.toggleDrag(1),this.em.trigger("".concat(l,":start"),this.getEventOpts()),g},getEventOpts:function(){return{mode:this.opts.mode,target:this.target,guidesTarget:this.guidesTarget,guidesStatic:this.guidesStatic}},stop:function(){this.toggleDrag()},setupGuides:function(){(this.guides||[]).forEach((function(t){var e=t.guide;e&&e.parentNode.removeChild(e)})),this.guides=[]},getGuidesContainer:function(){var t=this,e=this.guidesEl;if(!e){var n=this.editor,r=this.em,o=this.opts,a=n.getConfig('stylePrefix'),s=document.createElement('div'),l=document.createElement('div'),c="
\n
\n
");(e=document.createElement('div')).className="".concat(a,"guides"),s.className="".concat(a,"guide-info ").concat(a,"guide-info__x"),l.className="".concat(a,"guide-info ").concat(a,"guide-info__y"),s.innerHTML=c,l.innerHTML=c,e.appendChild(s),e.appendChild(l),n.Canvas.getGlobalToolsEl().appendChild(e),this.guidesEl=e,this.elGuideInfoX=s,this.elGuideInfoY=l,this.elGuideInfoContentX=s.querySelector(".".concat(a,"guide-info__content")),this.elGuideInfoContentY=l.querySelector(".".concat(a,"guide-info__content")),r.on('canvas:update frame:scroll',(0,i.debounce)((function(){t.updateGuides(),o.debug&&t.guides.forEach((function(e){return t.renderGuide(e)}))}),200))}return e},getGuidesStatic:function(){var t=this,e=[],n=this.target.getEl(),r=n.parentNode,o=void 0===r?{}:r;return(0,i.each)(o.children,(function(r){return e=e.concat(n!==r?t.getElementGuides(r):[])})),e.concat(this.getElementGuides(o))},getGuidesTarget:function(){return this.getElementGuides(this.target.getEl())},updateGuides:function(t){var e,n,r=this;(t||this.guides).forEach((function(t){var o=t.origin,a=e===o?n:r.getElementPos(o);e=o,n=a,(0,i.each)(r.getGuidePosUpdate(t,a),(function(e,n){return t[n]=e})),t.originRect=a}))},getGuidePosUpdate:function(t,e){var n={},r=e.top,i=e.height,o=e.left,a=e.width;switch(t.type){case't':n.y=r;break;case'b':n.y=r+i;break;case'l':n.x=o;break;case'r':n.x=o+a;break;case'x':n.x=o+a/2;break;case'y':n.y=r+i/2}return n},renderGuide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.guide||document.createElement('div'),n='px',r=t.active?2:1,i=e.children[0];return e.style="position: absolute; background-color: ".concat(t.active?'green':'red',";"),e.children.length||((i=document.createElement('div')).style='position: absolute; color: red; padding: 5px; top: 0; left: 0;',e.appendChild(i)),t.y?(e.style.width='100%',e.style.height="".concat(r).concat(n),e.style.top="".concat(t.y).concat(n),e.style.left=0):(e.style.width="".concat(r).concat(n),e.style.height='100%',e.style.left="".concat(t.x).concat(n),e.style.top="0".concat(n)),!t.guide&&this.guidesContainer.appendChild(e),e},getElementPos:function(t){return this.editor.Canvas.getElementPos(t,{noScroll:1})},getElementGuides:function(t){var e=this,n=this.opts,r=this.getElementPos(t),i=r.top,o=r.height,a=r.left,l=r.width,c=[{type:'t',y:i},{type:'b',y:i+o},{type:'l',x:a},{type:'r',x:a+l},{type:'x',x:a+l/2},{type:'y',y:i+o/2}].map((function(i){return s(s({},i),{},{origin:t,originRect:r,guide:n.debug&&e.renderGuide(i)})}));return c.forEach((function(t){return e.guides.push(t)})),c},getTranslate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'x',n=0;return(t||'').split(' ').forEach((function(t){var r=t.trim(),i="translate".concat(e.toUpperCase(),"(");0===r.indexOf(i)&&(n=parseFloat(r.replace(i,'')))})),n},setTranslate:function(t,e,n){var r="translate".concat(e.toUpperCase(),"("),i="".concat(r).concat(n,")"),o=(t||'').split(' ').map((function(t){return 0===t.trim().indexOf(r)&&(t=i),t})).join(' ');return o.indexOf(r)<0&&(o+=" ".concat(i)),o},getPosition:function(){var t=this.target,e=this.isTran,n=t.getStyle(),r=n.left,i=n.top,o=n.transform,a=0,s=0;return e?(a=this.getTranslate(o),s=this.getTranslate(o,'y')):(a=parseFloat(r||0),s=parseFloat(i||0)),{x:a,y:s}},setPosition:function(t){var e=t.x,n=t.y,r=t.end,o=t.position,a=t.width,s=t.height,l=this.target,c=this.isTran,u=this.em,f=r?'':1,h="".concat(e).concat("px"),d="".concat(n).concat("px"),p={};if(c){var g=l.getStyle().transform||'';g=this.setTranslate(g,'x',h),p={transform:g=this.setTranslate(g,'y',d),en:f},l.addStyle(p,{avoidStore:!r})}else{var v={position:o,width:a,height:s},m={left:h,top:d,en:f};(0,i.keys)(v).forEach((function(t){var e=v[t];e&&(m[t]=e)})),p=m,l.addStyle(p,{avoidStore:!r})}u.getSelected()&&(0,i.keys)(p).forEach((function(t){return u.trigger("update:component:style:".concat(t))}))},_getDragData:function(){var t=this.target;return{target:t,parent:t.parent(),index:t.index()}},onStart:function(t){var e=this.target,n=this.editor,r=this.isTran,i=this.opts,o=i.center,a=i.onStart,s=n.Canvas,l=e.getStyle(),c='absolute',u=[c,'relative'];if(a&&a(this._getDragData()),!r&&l.position!==c){var f,h=s.offset(e.getEl()),d=h.left,p=h.top,g=h.width,v=h.height,m=e.parent();do{var y=m.getStyle();f=u.indexOf(y.position)>=0?m:null,m=m.parent()}while(m&&!f);if(o){var b=s.getMouseRelativeCanvas(t);d=b.x,p=b.y}else if(f){var w=s.offset(f.getEl());d-=w.left,p-=w.top}this.setPosition({x:d,y:p,width:"".concat(g,"px"),height:"".concat(v,"px"),position:c})}},onDrag:function(){var t=this,e=this.guidesTarget,n=this.opts,r=n.onDrag;this.updateGuides(e),n.debug&&e.forEach((function(e){return t.renderGuide(e)})),n.guidesInfo&&this.renderGuideInfo(e.filter((function(t){return t.active}))),r&&r(this._getDragData())},onEnd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.editor,i=this.opts,o=this.id,a=i.onEnd;a&&a(t,n,s(s({event:t},n),this._getDragData())),r.stopCommand(o),this.hideGuidesInfo(),this.em.trigger("".concat(l,":end"),this.getEventOpts())},hideGuidesInfo:function(){var t=this;['X','Y'].forEach((function(e){var n=t["elGuideInfo".concat(e)];n&&(n.style.display='none')}))},renderGuideInfo:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=this.guidesStatic;this.hideGuidesInfo(),e.forEach((function(e){var r=e.origin,o=e.x,a=t.getElementPos(r),c=(0,i.isUndefined)(o)?'y':'x',u='y'===c,f=a[u?'left':'top'],h=a.rect[u?'left':'top'],d=u?f+a.width:f+a.height,p=u?h+a.rect.width:h+a.rect.height,g=t["elGuideInfo".concat(c.toUpperCase())],v=t["elGuideInfoContent".concat(c.toUpperCase())],m=g.style,y=n.filter((function(t){return t.type===e.type})).map((function(t){var e=t.originRect,n=e.left,r=e.width,i=e.top,o=e.height,a=u?n+r:i+o;return{gap:a0})).sort((function(t,e){return t.gap-e.gap})).map((function(t){return t.guide}))[0];if(y){var b=y.originRect,w=b.left,k=b.width,x=b.top,O=b.height,C=b.rect,S=u?w{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.components(),r=n&&n.filter((function(t){return t.get('selectable')}))[0];r&&e.push(r)})),e.length&&t.select(e)}}}},9666:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t.Canvas.hasFocus()||n.force){var r=[];t.getSelectedAll().forEach((function(t){for(var e=t.parent();e&&!e.get('selectable');)e=e.parent();e&&r.push(e)})),r.length&&t.select(r)}}}},7350:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=n.components().length,o=0,a=0;do{o++,r=(a=t.index()+o)<=i?n.getChildAt(a):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},6572:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=0,o=0;do{i++,r=(o=t.index()-i)>=0?n.getChildAt(o):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},9097:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.target,o=[];if(!i.get('styles'))return o;var a=i.get('type'),s=t.Pages.getAllWrappers(),l=(0,r.flatten)(s.map((function(t){return t.findType(a)}))).length;if(!l){var c=t.CssComposer.getAll();o=c.filter((function(t){return t.get('group')==="cmp:".concat(a)})),c.remove(o)}return o}}},515:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2982);const i={run:function(t){var e=t.getModel(),n=(0,r.Z)(t.getSelectedAll());n.length&&e.set('clipboard',n)}}},2095:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>l});var r=n(9050),i=n(2316),o=n.n(i),a=n(7208),s=o().$;const l=(0,r.extend)({},a.default,{init:function(t){(0,r.bindAll)(this,'startDelete','stopDelete','onDelete'),this.hoverClass=this.pfx+'hover-delete',this.badgeClass=this.pfx+'badge-red'},enable:function(){this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),s(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.data('model').destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html('Remove '+t.getName())}})},6949:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){var n=this;e&&e.set&&e.set('active',0);var r=t.getConfig(),o=t.Modal,a=r.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var s=this.buildEditor('htmlmixed','hopscotch','HTML'),l=this.buildEditor('css','hopscotch','CSS');this.htmlEditor=s.el,this.cssEditor=l.el;var c=i("
"));c.append(s.$el).append(l.$el),this.$editors=c}o.open({title:r.textViewCode,content:this.$editors}).getModel().once('change:open',(function(){return t.stopCommand(n.id)})),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var r=document.createElement('textarea');!this.codeMirror&&(this.codeMirror=this.cm.getViewer('CodeMirror'));var i=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:r}),o=new this.cm.EditorView({model:i,config:this.cm.getConfig()}).render().$el;return i.init(r),{el:i,$el:o}}}},6945:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e='';return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e='webkit',t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e='moz',t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn('Fullscreen not supported'),e},disable:function(){var t=document;this.isEnabled()&&(t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen())},fsChanged:function(t,e){document;var n=(t||'')+'fullscreenchange';this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.sender=e;var i=n.target,o=(0,r.isElement)(i)?i:document.querySelector(i),a=this.enable(o||t.getContainer());this.fsChanged=this.fsChanged.bind(this,a),document.addEventListener(a+'fullscreenchange',this.fsChanged),t.trigger('change:canvasOffset')},stop:function(t,e){e&&e.set&&e.set('active',!1),this.disable(),t&&t.trigger('change:canvasOffset')}}},5317:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(9050),i=n(2316),o=n.n(i),a=n(3168),s=n(7208),l=n(1988),c=o().$;const u=(0,r.extend)({},l.default,s.default,{init:function(t){s.default.init.apply(this,arguments),(0,r.bindAll)(this,'initSorter','rollback','onEndMove'),this.opt=t,this.hoverClass=this.ppfx+'highlighter-warning',this.badgeClass=this.ppfx+'badge-warning',this.noSelClass=this.ppfx+'no-select'},enable:function(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(t){var e=this,n=this.editor,i=this.title,o=this.config,a=this.am,s=o.custom;if((0,r.isFunction)(s.open))return s.open(a.__customData());n.Modal.open({title:i,content:t}).onceClose((function(){return n.stopCommand(e.id)}))},close:function(){var t=this.config.custom;if((0,r.isFunction)(t.close))return t.close(this.am.__customData());var e=this.editor.Modal;e&&e.close()},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.AssetManager,o=r.getConfig(),a=n.types,s=void 0===a?[]:a,l=n.accept,c=n.select;if(this.title=n.modalTitle||t.t('assetManager.modalTitle')||'',this.editor=t,this.config=o,this.am=r,r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),r.__behaviour({select:c,types:s,options:n}),o.custom)this.rendered=this.rendered||(0,i.ut)('div'),this.rendered.className="".concat(o.stylePrefix,"custom-wrp"),r.__behaviour({container:this.rendered}),r.__trgCustom();else{if(!this.rendered||s){var u=r.getAll().filter((function(t){return t}));s&&s.length&&(u=u.filter((function(t){return-1!==s.indexOf(t.get('type'))}))),r.render(u),this.rendered=r.getContainer()}if(l){var f=this.rendered.querySelector("input#".concat(o.stylePrefix,"uploadFile"));f&&f.setAttribute('accept',l)}}return this.open(this.rendered),this},stop:function(t){this.editor=t,this.close(this.rendered)}}},490:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(){var t=this.container,e=this.editor,n=this.bm,i=this.config,o=i.custom,a=i.appendTo;if((0,r.isFunction)(o.open))return o.open(n.__customData());if(this.firstRender&&!a){var s='views-container',l=e.Panels;(l.getPanel(s)||l.addPanel({id:s})).set('appendContent',t).trigger('change:appendContent'),o||t.appendChild(n.render())}t&&(t.style.display='block')},close:function(){var t=this.container,e=this.config.custom;if((0,r.isFunction)(e.close))return e.close(this.bm.__customData());t&&(t.style.display='none')},run:function(t){var e=t.Blocks;this.config=e.getConfig(),this.firstRender=!this.container,this.container=this.container||(0,i.ut)('div'),this.editor=t,this.bm=e;var n=this.container;e.__behaviour({container:n}),this.config.custom&&e.__trgCustom(),this.open()},stop:function(){this.close()}}},3403:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){var e=t.LayerManager,n=t.Panels;if(!e.getConfig().appendTo){if(!this.layers){var r='views-container',i=document.createElement('div'),o=n.getPanel(r)||n.addPanel({id:r});i.appendChild(e.render()),o.set('appendContent',i).trigger('change:appendContent'),this.layers=i}this.layers.style.display='block'}},stop:function(){var t=this.layers;t&&(t.style.display='none')}}},9346:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),r=t.Panels,o='change:appendContent';this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2);var a=t.DeviceManager;if(a&&n.showDevices){var s=r.addPanel({id:'devices-c'}),l=a.render();s.set('appendContent',l).trigger(o)}var c=t.SelectorManager;this.slm=c;var u=c.getConfig();u.custom?c.__trgCustom({container:this.$cn2.get(0)}):u.appendTo||this.$cn2.append(c.render([]));var f=t.StyleManager;this.sm=f;var h=f.getConfig(),d=h.stylePrefix;this.$header=i("
").concat(t.t('styleManager.empty'),"
")),this.$cn.append(this.$header),h.custom?f.__trgCustom({container:this.$cn2.get(0)}):h.appendTo||this.$cn2.append(f.render());var p='views-container';this.panel=r.getPanel(p),this.panel||(this.panel=r.addPanel({id:p})),this.panel.set('appendContent',this.$cn).trigger(o),this.em=t.getModel(),this.listenTo(this.em,f.events.target,this.toggleSm)}this.toggleSm()},toggleSm:function(){var t,e,n,r,i=this.sender,o=this.sm;i&&i.get&&!i.get('active')||!o||(o.getSelected()?(null===(t=this.$cn2)||void 0===t||t.show(),null===(e=this.$header)||void 0===e||e.hide()):(null===(n=this.$cn2)||void 0===n||n.hide(),null===(r=this.$header)||void 0===r||r.show()))},stop:function(){var t,e;null===(t=this.$cn2)||void 0===t||t.hide(),null===(e=this.$header)||void 0===e||e.hide()}}},2643:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){this.sender=e;var n=t.getModel(),r=t.Config.stylePrefix,o=t.TraitManager,a=o.getConfig();if(!a.appendTo){if(!this.$cn){this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2),this.$header=i('
').append("
").concat(n.t('traitManager.empty'),"
")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(o.render());var s=t.Panels;(s.getPanel('views-container')?s.getPanel('views-container'):s.addPanel({id:'views-container'})).set('appendContent',this.$cn.get(0)).trigger('change:appendContent'),this.target=t.getModel(),this.listenTo(this.target,'component:toggled',this.toggleTm)}this.toggleTm()}},toggleTm:function(){var t=this.sender;t&&t.get&&!t.get('active')||(1===this.target.getSelectedAll().length?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},5966:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),o=i.get('clipboard'),a=t.getSelected();o&&a&&(t.getSelectedAll().forEach((function(e){if(e){var i=e.collection;if(i){var a,s={at:i.indexOf(e)+1,action:n.action||'paste-component'},l=o.filter((function(t){return t.get('copyable')}));a=(0,r.contains)(o,e)&&e.get('copyable')?i.add(e.clone(),s):i.add(l.map((function(t){return t.clone()})),s),(a=(0,r.isArray)(a)?a:[a]).forEach((function(e){return t.trigger('component:paste',e)}))}}})),a.emitUpdate())}}},2074:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(2982),i=n(9050),o='sw-visibility';const a={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanels()),this.panels},preventDrag:function(t){t.abort=1},tglEffects:function(t){var e=this.em,n=t?'on':'off';if(e){var r=e.get('Canvas'),o=r.getBody(),a=r.getToolbarEl();a&&(a.style.display=t?'none':'');var s=o.querySelectorAll(".".concat(this.ppfx,"no-pointer"));(0,i.each)(s,(function(e){return e.style.pointerEvents=t?'all':''})),e[n]('run:tlb-move:before',this.preventDrag)}},run:function(t,e){var n=this;this.sender=e,this.selected=(0,r.Z)(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(o)),this.shouldRunSwVisibility&&t.stopCommand(o),t.getModel().stopDefault();var i=this.getPanels(t),a=t.Canvas.getElement(),s=t.getEl(),l=t.Config.stylePrefix;if(!this.helper){var c=document.createElement('span');c.className="".concat(l,"off-prv fa fa-eye-slash"),s.appendChild(c),c.onclick=function(){return n.stopCommand()},this.helper=c}this.helper.style.display='inline-block',i.forEach((function(t){return t.set('visible',!1)}));var u=a.style;u.width='100%',u.height='100%',u.top='0',u.left='0',u.padding='0',u.margin='0',t.refresh(),this.tglEffects(1)},stop:function(t){var e=this.sender,n=void 0===e?{}:e,r=this.selected;n.set&&n.set('active',0);var i=this.getPanels(t);this.shouldRunSwVisibility&&(t.runCommand(o),this.shouldRunSwVisibility=!1),t.getModel().runDefault(),i.forEach((function(t){return t.set('visible',!0)})),t.Canvas.getElement().setAttribute('style',''),r&&t.select(r),delete this.selected,this.helper&&(this.helper.style.display='none'),t.refresh(),this.tglEffects()}}},3953:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(4942);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const o={run:function(t,e,n){var o=n||{},a=t.Canvas,s=a.getCanvasView(),l=function(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{default:()=>_});var r=n(1002),i=n(4942),o=n(2316),a=n.n(o),s=n(9050),l=n(3168),c=n(827),u=n(3144),f=n(5671),h=n(9340),d=n(2963),p=n(1120),g=n(9384);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.config,n=void 0===e?{}:e;this.em=n.em,this.editor=n.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e=this.editor,n=this.em,r=e.Canvas.getFrameEl().getBoundingClientRect(),i=r.left,o=r.top,a=m(m({},t),{},{clientX:t.clientX-i,clientY:t.clientY-o});n.trigger('toolbar:run:before'),this.execCommand(a)},execCommand:function(t){var e={event:t},n=this.model.get('command'),r=this.editor;'function'==typeof n&&n(r,null,e),'string'==typeof n&&r.runCommand(n,e)},render:function(){var t=this.editor,e=this.$el,n=this.model,r=n.get('id'),i=n.get('label'),o=t.getConfig('stylePrefix');return e.addClass("".concat(o,"toolbar-item")),r&&e.addClass("".concat(o,"toolbar-item__").concat(r)),i&&e.append(i),this}});function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var w=function(t){(0,h.Z)(n,t);var e=b(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,f.Z)(this,n),(t=e.call(this,r,i)).config={editor:r.editor||'',em:r.em},t.listenTo(t.collection,'reset',t.render),t}return(0,u.Z)(n)}(g.Z);w.prototype.itemView=y;const k=a().Model.extend({defaults:{command:'',attributes:{}}}),x=a().Collection.extend({model:k});function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=n.el||this.canvas.getToolsEl(e);return r&&(r.style.display=t?'':'none'),r||{}},showElementOffset:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};S&&this.editor.runCommand('show-offset',{el:t,elPos:e,view:n.view,force:1,top:0,left:0})},hideElementOffset:function(t){this.editor.stopCommand('show-offset',{view:t})},showFixedElementOffset:function(t,e){this.editor.runCommand('show-offset',{el:t,elPos:e,state:'Fixed'})},hideFixedElementOffset:function(t,e){this.editor&&this.editor.stopCommand('show-offset',{state:'Fixed'})},hideHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=0},onClick:function(t){t.stopPropagation(),t.preventDefault();var e=this.em;if(e.get('_cmpDrag'))return e.set('_cmpDrag');var n=P(t.target),r=n.data('model');if(!r)for(var i=n.parent();!r&&i.length&&!(0,c.Mx)(i[0]);)r=i.data('model'),i=i.parent();if(r){if(e.isEditing()&&!r.get('textable')&&r.isChildOf('text'))return;this.select(r,t)}},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&(this.editor.select(t,{event:e,useValid:!0}),this.initResize(t))},updateBadge:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.canvas,i=P(t).data('model');if(i&&i.get('badgable')){var o=this.getBadge(n);if(!n.posOnly){var a=this.canvas.getConfig(),s=i.getIcon(),l=a.pStylePrefix||'',c="".concat(l,"badge"),u=a.customBadgeLabel,f="".concat(s?"
").concat(s,"
"):'',"\n
").concat(i.getName(),"
");o.innerHTML=u?u(i):f}var h='px',d=o.style;d.display='block';var p=r.getTargetToElementFixed(t,o,{pos:e}),g=p.top,v=n.leftOff<0?-n.leftOff:0;d.top=g+h,d.left=v+h}},showHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=''},initResize:function(t){var e,n=this.em,i=this.canvas,o=n?n.get('Editor'):'',a=(n?n.get('Config'):'').stylePrefix||'',c="".concat(a,"resizing"),u=!(0,s.isElement)(t)&&(0,l.isTaggableNode)(t)?t:n.getSelected(),f=u&&u.get('resizable'),h={},d=function(t,e,n){var r=n.docs;r&&r.forEach((function(e){var n=e.body,r=n.className||'';n.className=('add'==t?"".concat(r," ").concat(c):r.replace(c,'')).trim()}))};if(o&&f){var p=(0,s.isElement)(t)?t:u.getEl();h={onStart:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.el,a=r.config,s=r.resizer,c=a.keyHeight,f=a.keyWidth,h=a.currentUnit,p=a.keepAutoHeight,g=a.keepAutoWidth;d('add',0,r),e=n.get('StyleManager').getModelToStyle(u),i.toggleFramesEvents();var v=getComputedStyle(o),m=e.getStyle(),y=m[f];a.autoWidth=g&&'auto'===y,isNaN(parseFloat(y))&&(y=v[f]);var b=m[c];a.autoHeight=p&&'auto'===b,isNaN(parseFloat(b))&&(b=v[c]),s.startDim.w=parseFloat(y),s.startDim.h=parseFloat(b),S=0,h&&(a.unitHeight=(0,l.getUnitFromValue)(b),a.unitWidth=(0,l.getUnitFromValue)(y))},onMove:function(){o.trigger('component:resize')},onEnd:function(t,e){d('remove',0,e),o.trigger('component:resize'),i.toggleFramesEvents(1),S=1},updateTarget:function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var a=o.store,s=o.selectedHandler,l=o.config,c=l.keyHeight,u=l.keyWidth,f=l.autoHeight,h=l.autoWidth,d=l.unitWidth,p=l.unitHeight,g=['tc','bc'].indexOf(s)>=0,v=['cl','cr'].indexOf(s)>=0,m={},y=a?'':1;if(!g){var b=i.getBody().offsetWidth,w=r.w0&&void 0!==arguments[0]?arguments[0]:{};return this.canvas.getBadgeEl(t.view)},onFrameScroll:function(){this.updateTools()},updateTools:function(){this.updateLocalPos(),this.updateGlobalPos()},isCompSelected:function(t){return t&&'selected'===t.get('status')},updateToolsLocal:function(t){var e=t||this.getElHovered(),n=e.el,r=e.pos,i=e.view,o=e.component;if(n){var a=o.get('hoverable'),s=this.lastHovered!==n,l=s?{}:{posOnly:1};s&&a&&(this.lastHovered=n,this.showHighlighter(i),this.showElementOffset(n,r,{view:i})),this.isCompSelected(o)&&(this.hideHighlighter(i),this.hideElementOffset(i));var c='px',u=this.toggleToolsEl(1,i),f=u.style,h=this.canvas.canvasRectOffset(n,r),d=h.top,p=h.left;this.updateBadge(n,r,C(C({},l),{},{view:i,topOff:d,leftOff:p})),f.top=d+c,f.left=p+c,f.width=r.width+c,f.height=r.height+c,this._trgToolUp('local',{component:o,el:u,top:d,left:p,width:r.width,height:r.height})}else this.lastHovered=0},_upToolbar:(0,s.debounce)((function(){this.updateToolsGlobal({force:1})})),_trgToolUp:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em.trigger('canvas:tools:update',C({type:t},e))},updateToolsGlobal:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getElSelected(),n=e.el,r=e.pos,i=e.component;if(!n)return this.toggleToolsEl(),void(this.lastSelected=0);var o=this.canvas,a=this.lastSelected!==n;(a||t.force)&&(this.lastSelected=n,this.updateToolbar(i));var s='px',l=this.toggleToolsEl(1),c=l.style,u=o.getTargetToElementFixed(n,o.getToolbarEl(),{pos:r}),f=u.canvasOffsetTop,h=u.canvasOffsetLeft;c.top=f+s,c.left=h+s,c.width=r.width+s,c.height=r.height+s,this.updateToolbarPos({top:u.top,left:u.left}),this._trgToolUp('global',{component:i,el:l,top:f,left:h,width:r.width,height:r.height})},updateAttached:(0,s.debounce)((function(){this.updateGlobalPos()})),onContainerChange:(0,s.debounce)((function(){this.em.refreshCanvas()}),150),getElementPos:function(t){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display='none'},cleanPrevious:function(t){t&&t.set({status:'',state:''})},getContentWindow:function(){return this.canvas.getWindow()},run:function(t){(0,l.hasWin)()&&(this.editor=t&&t.get('Editor'),this.enable())},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,l.hasWin)()){var r=this.em,i=this.editor;this.onHovered(),this.stopSelectComponent(),!n.preserveSelected&&r.setSelected(null),this.toggleToolsEl(),i&&i.stopCommand('resize')}}}},1988:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={startSelectPosition:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.isPointed=!1;var i=this.editorModel.get('Utils'),o=t.ownerDocument.body;i&&!this.sorter&&(this.sorter=new i.Sorter({container:o,placer:this.canvas.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,direction:'a',document:e,wmargin:1,nested:1,em:this.editorModel,canvasRelative:1,scale:function(){return n.em.getZoomDecimal()}})),r.onStart&&(this.sorter.onStart=r.onStart),t&&this.sorter.startSort(t,{container:o})},getOffsetDim:function(){var t=this.offset(this.canvas.getFrameEl()),e=this.offset(this.canvas.getElement());return{top:t.top-e.top,left:t.left-e.left}},stopSelectPosition:function(){this.posTargetCollection=null,this.posIndex='after'==this.posMethod&&0!==this.cDim.length?this.posIndex+1:this.posIndex,this.sorter&&(this.sorter.moved=0,this.sorter.endMove()),this.cDim&&(this.posIsLastEl=0!==this.cDim.length&&'after'==this.posMethod&&this.posIndex==this.cDim.length,this.posTargetEl=0===this.cDim.length?i(this.outsideElem):!this.posIsLastEl&&this.cDim[this.posIndex]?i(this.cDim[this.posIndex][5]).parent():i(this.outsideElem),this.posTargetModel=this.posTargetEl.data('model'),this.posTargetCollection=this.posTargetEl.data('model-comp'))},enable:function(){this.startSelectPosition()},nearFloat:function(t,e,n){var r=t||0,i=e||'before',o=n.length,a=0!==o&&'after'==i&&r==o;return 0!==o&&(!a&&!n[r][4]||n[r-1]&&!n[r-1][4]||a&&!n[r-1][4])?1:0},run:function(){this.enable()},stop:function(){this.stopSelectPosition(),this.$wrapper.css('cursor',''),this.$wrapper.unbind()}}},6069:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=o().$;const u={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var i=n||{},o=i.state||'',u=t.getConfig(),f=this.em.getZoomDecimal(),h=i.el||'';if(!u.showOffsets||(0,s.isTextNode)(h)||!u.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var d=t.Canvas,p=function(t){for(var e=1;e")).get(0),D=c("
")).get(0),M=v+E+'-el',A="".concat(v+T+'-el'," ").concat(v+T),R="".concat(M," ").concat(v+E);b=c("
")).get(0),w=c("
")).get(0),k=c("
")).get(0),x=c("
")).get(0),O=c("
")).get(0),C=c("
")).get(0),S=c("
")).get(0),P=c("
")).get(0),this['marginT'+o]=b,this['marginB'+o]=w,this['marginL'+o]=k,this['marginR'+o]=x,this['padT'+o]=O,this['padB'+o]=C,this['padL'+o]=S,this['padR'+o]=P,j.appendChild(b),j.appendChild(w),j.appendChild(k),j.appendChild(x),D.appendChild(O),D.appendChild(C),D.appendChild(S),D.appendChild(P),y.appendChild(j),y.appendChild(D),this[m]='1'}var Z='px',L=parseFloat(g.marginLeft.replace(Z,''))*f,N=parseFloat(g.marginRight.replace(Z,''))*f,I=parseFloat(g.marginTop.replace(Z,''))*f,F=parseFloat(g.marginBottom.replace(Z,''))*f,B=b.style,V=w.style,H=k.style,z=x.style,U=O.style,W=C.style,$=S.style,q=P.style,G=parseFloat(p.left),K=parseFloat(g.width)*f+Z;B.height=I+Z,B.width=K,B.top=p.top-I+Z,B.left=G+Z,V.height=F+Z,V.width=K,V.top=p.top+p.height+Z,V.left=G+Z;var Y=p.height+I+F+Z,X=p.top-I+Z;H.height=Y,H.width=L+Z,H.top=X,H.left=G-L+Z,z.height=Y,z.width=N+Z,z.top=X,z.left=G+p.width+Z;var J=parseFloat(g.paddingTop)*f;U.height=J+Z;var Q=parseFloat(g.paddingBottom)*f;W.height=Q+Z;var tt=p.height-Q-J+Z,et=p.top+J+Z;$.height=tt,$.width=parseFloat(g.paddingLeft)*f+Z,$.top=et;var nt=parseFloat(g.paddingRight)*f;q.height=tt,q.width=nt+Z,q.top=et}},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n||{},i=r.state||'',o=this.getOffsetMethod(i),a=t.Canvas,s=a[o](n.view);s.style.opacity=0}}},2927:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={init:function(){(0,r.bindAll)(this,'_onFramesChange')},run:function(t){this.toggleVis(t)},stop:function(t){this.toggleVis(t,0)},toggleVis:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t.Commands.isActive('preview')){var r=t.Canvas,i=n?'on':'off';r.getFrames().forEach((function(t){return e._upFrame(t,n)})),r.getModel()[i]('change:frames',this._onFramesChange)}},_onFramesChange:function(t,e){var n=this;e.forEach((function(t){return n._upFrame(t,1)}))},_upFrame:function(t,e){var n=e?'add':'remove';t.view.getBody().classList[n]("".concat(this.ppfx,"dashed"))}}},3821:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),a=n(3168);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.all,r=e.onResult,i=e.reset,o=this.storageKey,s={action:'load'},l=n||this.getAll(),c=t[o];if('string'==typeof c)try{c=JSON.parse(c)}catch(t){this.__logWarn('Data parsing failed',{input:c})}return i&&c&&l.reset(null,s),r?c&&r(c,s):c&&(0,a.isDef)(c.length)&&l.reset(c,s),c},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all;return e&&e.reset(null,t),this},__getConfig:function(t){var e=this.config||{};return t?e[t]:e},getAll:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=(0,a.deepMerge)(t,e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,a){var s=l({event:t},a||o);[n,e].map((function(t){return t.trigger(i,r,s)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,a,n),!n.abort&&a()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,a=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:a}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t,e){this.em.logWarning("[".concat(this.name,"]: ").concat(t),e)},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,a.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},799:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(9075),l=n(2030),c=n(9985);const u={stylePrefix:'css-',rules:[],onBeforeStyle:null};var f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n(9707),y=n(8467);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{},this.opt=e,this.em=e.em,this.ensureSelectors(),this.on('change',this.__onChange)}},{key:"__onChange",value:function(t,e){var n=this.em,r=this.changedAttributes();!(0,a.isEmptyObj)(r)&&n&&n.changesUp(e)}},{key:"clone",value:function(){var t=w({},this.opt),e=w({},this.attributes);return e.selectors=this.get('selectors').map((function(t){return t.clone()})),new this.constructor(e,t)}},{key:"ensureSelectors",value:function(t,e,n){var i=this.em,a=i&&i.get('SelectorManager'),s=[this,'change:selectors',this.ensureSelectors],c=this.getSelectors();if(this.stopListening.apply(this,s),c.models&&(c=(0,r.Z)(c.models)),c=(0,o.isString)(c)?[c]:c,Array.isArray(c)){var u=c.filter((function(t){return t})).map((function(t){return a?a.add(t):t}));c=new l.Z(u)}this.set('selectors',c,n),this.listenTo.apply(this,s)}},{key:"getAtRule",value:function(){var t=this.get('atRuleType'),e=this.get('mediaText'),n=t?"@".concat(t):e?'@media':'';return n+(e&&n?" ".concat(e):'')}},{key:"selectorsToString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get('state'),r=this.get('selectorsAdd'),i={escape:function(t){return x&&x.escape?x.escape(t):t}},o=this.get('selectors').getFullString(0,i),a=n&&!t.skipState?":".concat(n):'';return o&&e.push("".concat(o).concat(a)),r&&!t.skipAdd&&e.push(r),e.join(', ')}},{key:"getDeclaration",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.selectorsToString(t),r=this.styleToString(t),i=this.get('singleAtRule');return(n||i)&&(r||t.allowEmpty)&&(e=i?r:"".concat(n,"{").concat(r,"}")),e}},{key:"getDevice",value:function(){var t=this.em,e=this.attributes,n=e.atRuleType,r=e.mediaText,i=(null==t?void 0:t.get('DeviceManager').getDevices())||[],o=i.filter((function(t){return''===t.getWidthMedia()}))[0];return'media'===n&&r?i.filter((function(t){return t.getWidthMedia()===(0,y.U)(r)}))[0]||null:o||null}},{key:"getState",value:function(){var t=this.em,e=this.get('state');return(t.get('SelectorManager').getStates()||[]).filter((function(t){return t.getName()===e}))[0]||null}},{key:"getComponent",value:function(){var t,e=this.getSelectors(),n=1==e.length&&e.at(0),r=n&&n.isId()&&n.get('name');return r&&(null===(t=this.em)||void 0===t?void 0:t.get('DomComponents').getById(r))||null}},{key:"toCSS",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.getAtRule(),r=this.getDeclaration(t);return(r||t.allowEmpty)&&(e=r),n&&e&&(e="".concat(n,"{").concat(e,"}")),e}},{key:"toJSON",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{},i=e||'',a=n||'',s=r.selectorsAdd||'',l=r.atRuleType||'',c=(0,o.isArray)(t)||t.models?t.models||t:[t];a&&!l&&(l='media');var u=c.map((function(t){return t.getFullName()})),f=this.get('selectors').map((function(t){return t.getFullName()})),h=u.slice().sort(),d=f.slice().sort();return!(u.length!==f.length||!h.every((function(t,e){return t===d[e]})))&&(this.get('state')===i&&this.get('mediaText')===a&&this.get('selectorsAdd')===s&&this.get('atRuleType')===l)}}]),n}(v.Model.extend(m.Z));function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var S=function(t){(0,d.Z)(n,t);var e=C(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t,e){var n=this;e&&e.em&&(this.editor=e.em),setTimeout((function(){n.on('remove',n.onRemove),n.on('add',n.onAdd)}))}},{key:"toJSON",value:function(t){return v.Collection.prototype.toJSON.call(this,t).filter((function(t){return t.style&&!t.shallow}))}},{key:"onAdd",value:function(t,e,n){t.ensureSelectors(t,e,n)}},{key:"onRemove",value:function(t){var e=this.editor;e.stopListening(t),e.get('UndoManager').remove(t)}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=this.editor.get('Parser').parseCss(t)),e.em=this.editor,v.Collection.prototype.add.apply(this,[t,e])}}]),n}(v.Collection);S.prototype.model=O;var P=n(698);function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=n||'',l=r||'',c=T({},o),u=this.get(t,s,l,c);return u&&u.config&&!u.config.singleAtRule||(c.state=s,c.mediaText=l,c.selectors=[],l&&(c.atRuleType='media'),(u=new O(c,i)).get('selectors').add(t,a),e.add(u,a)),u},get:function(n,r,i,a){var s=n;if((0,o.isString)(n)){var l=t.get('SelectorManager'),c=n.split(',')[0].trim(),u=t.get('Parser').parserCss.checkNode({selectors:c})[0];s=l.get(u.selectors)}return e.find((function(t){return t.compare(s,r,i,a)}))||null},getAll:function(){return e},addCollection:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[];(0,o.isString)(e)&&(e=t.get('Parser').parseCss(e));for(var l=e instanceof Array?e:[e],c=0,u=l.length;c2&&void 0!==arguments[2]?arguments[2]:{},i=r.atRuleType,o=r.atRuleParams,a=t.get('Parser').parserCss.checkNode({selectors:e,style:n})[0],s=a.state,l=a.selectorsAdd,c=t.get('SelectorManager'),u=c.add(a.selectors),f=this.add(u,s,o,{selectorsAdd:l,atRule:i});return f.setStyle(n,r),f},getRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.get('SelectorManager'),i=t.get('Parser').parserCss.checkNode({selectors:e})[0],o=r.get(i.selectors),a=i.state,s=i.selectorsAdd,l=n.atRuleType,c=n.atRuleParams;return o&&this.get(o,a,c,{selectorsAdd:s,atRule:l})},getRules:function(t){var e=this.getAll();if(!t)return(0,r.Z)(e.models);var n=(0,o.isString)(t)?t.split(',').map((function(t){return t.trim()})):t;return e.filter((function(t){return n.indexOf(t.getSelectors().getFullString())>=0}))},setIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.addOpts,a=void 0===i?{}:i,s=r.mediaText,l=r.state||'',u=(0,o.isUndefined)(s)?t.getCurrentMedia():s,f=t.get('SelectorManager'),h=f.add({name:e,type:c.Z.TYPE_ID},a),d=this.add(h,l,u,{},a);return d.setStyle(n,T(T({},r),a)),d},getIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.mediaText,i=n.state||'',a=(0,o.isUndefined)(r)?t.getCurrentMedia():r,s=t.get('SelectorManager').get(e,c.Z.TYPE_ID);return s&&this.get(s,i,a)},setClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.state||'',o=r.mediaText||t.getCurrentMedia(),a=t.get('SelectorManager'),s=a.add({name:e,type:c.Z.TYPE_CLASS}),l=this.add(s,i,o);return l.setStyle(n,r),l},getClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state||'',i=n.mediaText||t.getCurrentMedia(),o=t.get('SelectorManager').get(e,c.Z.TYPE_CLASS);return o&&this.get(o,r,i)},remove:function(t,e){var n=(0,o.isString)(t)?this.getRules(t):t,r=this.getAll().remove(n,e);return(0,o.isArray)(r)?r:[r]},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().reset(null,t),this},getComponentRules:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state,i=n.mediaText,a=n.current;a&&(r=t.get('state')||'',i=t.getCurrentMedia());var s=e.getId(),l=this.getAll().filter((function(t){if(((0,o.isUndefined)(r)||t.get('state')===r)&&((0,o.isUndefined)(i)||t.get('mediaText')===i))return t.getSelectorsString()==="#".concat(s)}));return l},render:function(){return n&&n.remove(),(n=new P.Z({collection:e,config:i})).render().el},destroy:function(){e.reset(),e.stopListening(),n&&n.remove(),[t,e,n].forEach((function(t){return null})),i={}}})}},698:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(827);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"tagName",value:function(){return'style'}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,'change',this.render),this.listenTo(e,'destroy remove',this.remove),this.listenTo(e.get('selectors'),'change',this.render)}},{key:"render",value:function(){var t=this.model,e=this.el,n=t.get('important');return e.innerHTML=t.toCSS({important:n}),this}}]),n}(l.View);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var d=function(t){(0,o.Z)(n,t);var e=h(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"_createElement",value:function(){return document.createTextNode('')}},{key:"render",value:function(){var t=this.model,e=t.get('important');return this.el.textContent=t.getDeclaration({important:e}),this}}]),n}(f);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var g=function(t,e){return"".concat(t).concat(e?"-".concat(parseFloat(e)):'')},v=function(t){(0,o.Z)(n,t);var e=p(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{};this.atRules={},this.config=e,this.em=e.em,this.pfx=e.stylePrefix||'',this.className=this.pfx+'rules';var n=this.collection;this.listenTo(n,'add',this.addTo),this.listenTo(n,'reset',this.render)}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){if(this.renderStarted){var n,r,i=e||null,o={model:t,config:this.config};if('keyframes'===t.get('atRuleType')){var a=t.getAtRule(),s=this.atRules[a];if(!s){var l=document.createElement('style');s=document.createTextNode(''),l.appendChild(document.createTextNode("".concat(a,"{"))),l.appendChild(s),l.appendChild(document.createTextNode("}")),this.atRules[a]=s,n=l}r=new d(o),s.appendData(r.render().el.textContent)}else n=(r=new f(o)).render().el;var c=this.className,u=t.get('mediaText'),h=g(c),p=h;if(u&&(p=g(c,this.getMediaWidth(u))),n){var v,m=i||this.el;try{v=m.querySelector("#".concat(p))}catch(t){}v||(v=m.querySelector("#".concat(h))),v.appendChild(n)}return n}}},{key:"getMediaWidth",value:function(t){return t&&t.replace("(".concat(this.em.getConfig('mediaCondition'),": "),'').replace(')','')}},{key:"render",value:function(){var t=this;this.renderStarted=1,this.atRules={};var e=this.em,n=this.$el,r=this.className,i=this.collection,o=document.createDocumentFragment();n.empty();var a=e.get('DeviceManager').getAll().pluck('priority');return a.every((function(t){return t}))&&a.unshift(0),a.forEach((function(t){return o.appendChild((0,c.ut)('div',{id:g(r,t)}))})),i.each((function(e){return t.addToCollection(e,o)})),n.append(o),n.attr('class',r),this}}]),n}(l.View)},7001:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>R,evAdd:()=>E,evAddBefore:()=>j,evAll:()=>C,evPfx:()=>S,evRemove:()=>D,evRemoveBefore:()=>M,evSelect:()=>P,evSelectBefore:()=>_,evUpdate:()=>T});var r=n(4942),i=n(9050),o=n(9075);const a={default:null,devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'770px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{name:'',width:null,height:'',widthMedia:null,priority:null}}},{key:"initialize",value:function(){var t=this;null===this.get('widthMedia')&&this.set('widthMedia',this.get('width')),null===this.get('width')&&this.set('width',this.get('widthMedia')),!this.get('priority')&&this.set('priority',parseFloat(this.get('widthMedia'))||0);['width','height','widthMedia'].forEach((function(e){return t.checkUnit(e)}))}},{key:"checkUnit",value:function(t){var e=this.get(t)||'';(parseFloat(e)||0).toString()===e.toString()&&this.set(t,"".concat(e,"px"))}},{key:"getName",value:function(){return this.get('name')||this.get('id')}},{key:"getWidthMedia",value:function(){return this.get('widthMedia')||''}}]),n}(h.Model);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"comparator",value:function(t,e){var n=Number.MAX_VALUE;return(e.get('priority')||n)-(t.get('priority')||n)}},{key:"getSorted",value:function(){return this.sort()}}]),n}(h.Collection);v.prototype.model=p;var m,y=n(168),b=n(8595);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.ppfx,n=t.label;return(0,b.Z)(m||(m=(0,y.Z)(["\n
","
\n
\n \n \n \n
\n
\n
\n
\n \n "])),e,n,e,e,e,e,e,e,e)}},{key:"events",value:function(){return{change:'updateDevice'}}},{key:"initialize",value:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||'',this.events['click .'+this.ppfx+'add-trasp']=this.startAdd,this.listenTo(this.em,'change:device',this.updateSelect),this.delegateEvents()}},{key:"startAdd",value:function(){}},{key:"updateDevice",value:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():'';t.set('device',n)}}},{key:"updateSelect",value:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),r=n?n.get('id'):'';e.val(r)}}},{key:"getOptions",value:function(){var t=this.collection,e=this.em,n='';return t.each((function(t){var r=t.attributes,i=r.name,o=r.id,a=e&&e.t&&e.t("deviceManager.devices.".concat(o))||i;n+="")})),n}},{key:"render",value:function(){var t=this.em,e=this.ppfx,n=this.$el,r=this.el,i=t&&t.t&&t.t('deviceManager.device');return n.html(this.template({ppfx:e,label:i})),this.devicesEl=n.find(".".concat(e,"devices")),this.devicesEl.append(this.getOptions()),this.devicesEl.val(t.get('device')),r.className="".concat(e,"devices-c"),this}}]),n}(h.View);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=n=O(O({},a),r),o=i.em;return t=new v,n.devices.forEach((function(t){return e.add(t)})),this.em=o,this.all=t,this.select(n.default||t.at(0)),this.__initListen(),o.on(A,this._onSelect,this),this},_onSelect:function(t,e,n){var r=this.em,i=this.events,o=t.previous('device'),a=this.get(e),s=i.select;r.trigger(s,a,this.get(o)),this.__catchAllEvent(s,a,n)},add:function(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r;if((0,i.isString)(e)){var a=r;n=O(O({},o=arguments[2]||{}),{},{id:e,name:o.name||e,width:a})}else n=e;return n.id||(n.id=n.name||this._createId()),t.add(n,o)},get:function(e){return this.getAll().filter((function(t){return t.get('name')===e}))[0]||t.get(e)||null},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getDevices:function(){return t.models},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.isString)(t)?this.get(t):t;return n&&this.em.set('device',n.get('id'),e),this},getSelected:function(){return this.get(this.em.get('device'))},getAll:function(){return t},render:function(){return e&&e.remove(),(e=new k({collection:t,config:n})).render().el},destroy:function(){t.stopListening(),t.reset(),e&&e.remove(),[t,e].forEach((function(t){return null})),n={}}})}},6510:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>de});var r=n(1002),i=n(4925),o=n(4942),a=n(9050);const s={stylePrefix:'comp-',components:[],draggableComponents:1,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']};var l=n(4822),c=n(9256),u=n(274),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var m=function(t){(0,d.Z)(n,t);var e=v(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"tagName",value:function(){return'div'}}]),n}(u.Z),y=n(2586),b=n(3168);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e=0}}),O=u.Z.extend({});function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){l.ZP.prototype.initialize.apply(this,arguments);var n=this.get('attributes'),r=n.src;r&&this.set('src',r,{silent:1})},initToolbar:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.get(t.fallback?'fallback':'src')||'',n=e;return e&&'1&&void 0!==arguments[1]?arguments[1]:{};if('a'===(0,b.toLowerCase)(t.tagName)){var r=n.textTags||[];e={type:ut,editable:!1};var i=t.childNodes,o=i.length;o||delete e.editable,(0,a.forEach)(i,(function(t){var n=t.tagName;(3==t.nodeType&&''!==t.textContent.trim()||n&&r.indexOf((0,b.toLowerCase)(n))>=0)&&delete e.editable}))}return e};var ht=n(5861),dt=n(7757),pt=n.n(dt);function gt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function vt(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},canActivate:function(){var t,e=this.model,n=this.rteEnabled,r=this.em,i=(null==r?void 0:r.getEditing())===e,o=!0,a=!1;if((n||!e.get('editable')||i||(a=e.isChildOf('text')))&&(o=!1,a&&!e.get('textable'))){for(var s=e.parent();s&&!s.isInstanceOf('text');)s=s.parent();s&&s.get('editable')?t=s:o=!0}return{result:o,delegate:t}},onActive:function(t){var e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l,c;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=e.rte,o=e.em,a=e.canActivate(),s=a.result,l=a.delegate,s){n.next=5;break}return l&&(null==t||null===(c=t.stopPropagation)||void 0===c||c.call(t),o.setSelected(l),l.trigger('active',t)),n.abrupt("return");case 5:if(null==t||null===(r=t.stopPropagation)||void 0===r||r.call(t),e.lastContent=e.getContent(),!i){n.next=17;break}return n.prev=8,n.next=11,i.enable(e,e.activeRte,{event:t});case 11:e.activeRte=n.sent,n.next=17;break;case 14:n.prev=14,n.t0=n.catch(8),o.logError(n.t0);case 17:e.toggleEvents(1);case 18:case"end":return n.stop()}}),n,null,[[8,14]])})))()},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=arguments,e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.model,o=e.rte,a=e.activeRte,s=e.em,l=i&&i.get('editable'),!o){n.next=13;break}return n.prev=4,n.next=7,o.disable(e,a);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),s.logError(n.t0);case 12:l&&e.getContent()!==e.lastContent&&(e.syncContent(r),e.lastContent='');case 13:e.toggleEvents();case 14:case"end":return n.stop()}}),n,null,[[4,9]])})))()},getContent:function(){var t=this.activeRte;return t&&'function'==typeof t.getContent?t.getContent():this.getChildrenContainer().innerHTML},syncContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.rte,r=this.rteEnabled;if(r||t.force){var i=this.getContent(),o=e.components(),a=vt({fromDisable:1},t);e.set('content','',a),n.customRte?(o.length&&o.reset(null,t),e.set('content',i,a)):o.resetFromString(i,t)}},insertComponent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=this.el,i=r.ownerDocument,o=i.getSelection();if(null!=o&&o.rangeCount){var a,s=o.getRangeAt(0),l=s.startContainer,c=s.startOffset,u=(0,b.getModel)(l),f=[];if(u&&null!==(a=u.is)&&void 0!==a&&a.call(u,'textnode')){var h=u.collection;h.forEach((function(e){if(e===u){var n='textnode',r=e.get('content');f.push({type:n,content:r.slice(0,c)}),f.push(t),f.push({type:n,content:r.slice(c)})}else f.push(e)}));var d=f.filter(Boolean),p=d.indexOf(t);return h.reset(d,e),h.at(p)}}return n.append(t,e)},onInput:function(){var t=this.em,e='component',n=["".concat(e,":update"),"".concat(e,":input")].join(' ');t&&t.trigger(n,this.model)},disablePropagation:function(t){t.stopPropagation()},toggleEvents:function(t){var e=this.em,n=this.model,r=this.$el,i={on:b.on,off:b.off},o=t?'on':'off';e.setEditing(t?this:0),this.rteEnabled=!!t;var a=[this.el.ownerDocument,document];if(i.off(a,'mousedown',this.onDisable),i[o](a,'mousedown',this.onDisable),e[o]('toolbar:run:before',this.onDisable),n&&(n[o]('removed',this.onDisable),n.trigger("rte:".concat(t?'enable':'disable'))),r&&r.off('mousedown',this.disablePropagation),r&&r[o]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var s=this.el;s;)s.draggable=!t,(s=s.parentNode)&&'BODY'==s.tagName&&(s=0)}}),bt=yt.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return!!e.inSvg}}),Wt=u.Z.extend({_createElement:function(t){return document.createElementNS('http://www.w3.org/2000/svg',t)}});function $t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function qt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return this.getComponents().add(t,e)},render:function(){return n.render().el},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getComponents().map((function(t){return t})).forEach((function(e){return e.remove(t)})),this},setComponents:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.clear(e).addComponent(t,e)},addType:function(t,e){var n=this.em,i=e.model,o=void 0===i?{}:i,s=e.view,l=void 0===s?{}:s,c=e.isComponent,u=e.extend,f=e.extendView,d=e.extendFn,p=void 0===d?[]:d,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),y=this.getType(u),b=this.getType(f),w=y||(m||this.getType('default')),k=w.model,x=b?b.view:w.view,O=function(t,e,n){return t.reduce((function(t,r){var i=e[r],o=n.prototype[r];return i&&o&&(t[r]=function(){o.bind(this).apply(void 0,arguments),i.bind(this).apply(void 0,arguments)}),t}),{})};'object'===(0,r.Z)(o)&&(e.model=k.extend(he(he(he({},o),O(p,o,k)),{},{defaults:he(he({},(0,a.result)(k.prototype,'defaults')||{}),(0,a.result)(o,'defaults')||{})}),{isComponent:!m||y||c?c||function(){return 0}:k.isComponent})),'object'===(0,r.Z)(l)&&(e.view=x.extend(he(he({},l),O(v,l,x)))),m?(m.model=e.model,m.view=e.view):(e.id=t,h.unshift(e));var C="component:type:".concat(m?'update':'add');return n&&n.trigger(C,m||e),this},getType:function(t){for(var e=h,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};t&&(t.set({status:'selected'}),['component:selected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)})))},selectRemove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t){this.em;t.set({status:'',state:''}),['component:deselected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)}))}},componentHovered:function(){var t=o.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),r='hovered';n&&n.get('status')==r&&n.set({status:'',state:''}),e&&(0,a.isEmpty)(e.get('status'))&&e.set('status',r)},getShallowWrapper:function(){var t=this.shallow,e=this.em;if(!t&&e){var n=e.get('shallow');if(!n)return;var r=n.get('DomComponents');if(r.componentTypes=this.componentTypes,t=r.getWrapper()){var i=[l.GN,l.xH].join(' ');t.on(i,(0,a.debounce)((function(){return t.components('')}),100))}this.shallow=t}return t},canMove:function(t,e,n){var r=n||0===n?n:null,i={result:!1,reason:0,target:t,source:null};if(!e)return i;var o=null!=e&&e.toHTML?e:null;if(!o){var s=this.getShallowWrapper();o=null==s?void 0:s.append(e)[0]}if(i.source=o,!o)return i;var l=o.get('draggable');if((0,a.isFunction)(l))l=!!l(o,t,r);else{var c=t.getEl();l=(0,a.isArray)(l)?l.join(','):l,l=(0,a.isString)(l)?null==c?void 0:c.matches(l):l}if(!l)return he(he({},i),{},{reason:1});var u=t.get('droppable');if((0,a.isFunction)(u))u=!!u(o,t,r);else if(!1===u&&t.isInstanceOf('text')&&o.get('textable'))u=!0;else{var f=o.getEl();u=(0,a.isArray)(u)?u.join(','):u,u=(0,a.isString)(u)?null==f?void 0:f.matches(u):u}return he(he({},i),{},u?{result:!0}:{reason:2})},allById:function(){return f},getById:function(t){return f[t]||null},destroy:function(){var r=this.allById();Object.keys(r).forEach((function(t){return r[t]&&r[t].remove()})),n&&n.remove(),[o,t,f,e,n].forEach((function(t){return{}})),this.em={}}})}},4822:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>N,OA:()=>D,GN:()=>Z,xH:()=>L});var r=n(1002),i=n(2982),o=n(885),a=n(4942),s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(9050),d=n(3168),p=n(9707),g=n(2316),v=n(9256),m=n(9985),y=n(2030);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('label')||this.getName();return r&&(null===(t=this.em)||void 0===t?void 0:t.t("traitManager.traits.labels.".concat(i)))||o}},{key:"getValue",value:function(){return this.getTargetValue()}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};e.partial&&(n.avoidStore=!0),this.setTargetValue(t,n),!1===e.partial&&(this.setTargetValue(''),this.setTargetValue(t))}},{key:"props",value:function(){return this.attributes}},{key:"targetUpdated",value:function(){var t,e=this.getTargetValue();this.set({value:e},{fromTarget:1}),null===(t=this.em)||void 0===t||t.trigger('trait:update',{trait:this,component:this.target})}},{key:"getTargetValue",value:function(){var t,e=this.get('name'),n=this.target;return t=this.get('changeProp')?n.get(e):n.getAttributes()[e],(0,h.isUndefined)(t)?'':t}},{key:"setTargetValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.target,r=this.get('name');if(!(0,h.isUndefined)(t)){var i=t;if('false'===t?i=!1:'true'===t&&(i=!0),this.get('changeProp'))n.set(r,i,e);else{var o=w({},n.get('attributes'));o[r]=i,n.set('attributes',o,e)}}}},{key:"setValueFromInput",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,w(w({},n),{},{avoidStore:1})),e&&(this.set('value','',n),this.set(r,n))}},{key:"getInitValue",value:function(){var t,e=this.target,n=this.get('name');if(e){var r=e.get('attributes');t=this.get('changeProp')?e.get(n):r[n]}return t||this.get('value')||this.get('default')}}]),n}(g.Model);x.prototype.defaults={type:'text',label:'',name:'',min:'',max:'',unit:'',step:1,value:'',target:'',default:'',placeholder:'',changeProp:0,options:[]};function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var C,S=function(t){(0,c.Z)(n,t);var e=O(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.listenTo(this,'add',this.handleAdd),this.listenTo(this,'reset',this.handleReset)}},{key:"handleReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels,r=void 0===n?[]:n;r.forEach((function(t){return t.trigger('remove')}))}},{key:"handleAdd",value:function(t){t.em=this.em;var e=this.target;e&&(t.target=e)}},{key:"setTarget",value:function(t){this.target=t}},{key:"add",value:function(t,e){var n=this.em;if((0,h.isString)(t)||(0,h.isArray)(t)){var r=n&&n.get&&n.get('TraitManager'),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];'string'==typeof e&&(e=[e]);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,h.bindAll)(this,'__upSymbProps','__upSymbCls','__upSymbComps');var i=r.em,o=this.parent(),a=o&&o.attributes,s=this.get('propagate');if(s&&this.set('propagate',(0,h.isArray)(s)?s:[s]),a&&a.propagate&&!s){var l={},c=a.propagate;c.forEach((function(t){return l[t]=o.get(t)})),l.propagate=c,this.set(_(_({},l),e))}if(r&&r.config&&r.config.voidElements.indexOf(this.get('tagName'))>=0&&this.set('void',!0),r.em=i,this.opt=r,this.em=i,this.frame=r.frame,this.config=r.config||{},this.set('attributes',_(_({},(0,h.result)(this,'defaults').attributes||{}),this.get('attributes')||{})),this.ccid=n.createId(this,r),this.initClasses(),this.initTraits(),this.initComponents(),this.initToolbar(),this.initScriptProps(),this.listenTo(this,'change:script',this.scriptUpdated),this.listenTo(this,'change:tagName',this.tagUpdated),this.listenTo(this,'change:attributes',this.attrUpdated),this.listenTo(this,'change:attributes:id',this._idUpdated),this.on('change:toolbar',this.__emitUpdateTlb),this.on('change',this.__onChange),this.on(L,this.__propToParent),this.set('status',''),this.views=[],['classes','traits','components'].forEach((function(e){var n="add remove ".concat('components'!==e?'change':'');t.listenTo(t.get(e),n.trim(),(function(){for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e&&e.get('UndoManager'),r=this.components();n&&!this.__hasUm&&(n.add(r),n.add(this.getSelectors()),this.__hasUm=1),t.recursive&&r.map((function(e){return e.__postAdd(t)}))}},{key:"__postRemove",value:function(){var t=this.em,e=t&&t.get('UndoManager');e&&(e.remove(this.components()),e.remove(this.getSelectors()),delete this.__hasUm)}},{key:"__onChange",value:function(t,e){var n=this.changedAttributes();['status','open','toolbar','traits'].forEach((function(t){return delete n[t]})),(0,d.isEmptyObj)(n)||(this.__changesUp(e),this.__propSelfToParent({component:this,changed:n,options:e}))}},{key:"__changesUp",value:function(t){var e=this.em;[this.frame,e].forEach((function(e){return e&&e.changesUp(t)}))}},{key:"__propSelfToParent",value:function(t){this.trigger(Z,t),this.__propToParent(t)}},{key:"__propToParent",value:function(t){var e=this.parent();e&&e.trigger(L,t)}},{key:"__emitUpdateTlb",value:function(){this.emitUpdate('toolbar')}},{key:"is",value:function(t){return!(this.get('type')!=t)}},{key:"props",value:function(){return this.attributes}},{key:"index",value:function(){var t=this.collection;return t?t.indexOf(this):0}},{key:"setDragMode",value:function(t){return this.set('dmode',t)}},{key:"find",value:function(t){var e=[],n=this.view.$el.find(t);return n.each((function(t){var r=n.eq(t).data('model');r&&e.push(r)})),e}},{key:"findType",value:function(t){var e=[];return function n(r){return r.forEach((function(r){r.is(t)&&e.push(r),n(r.components())}))}(this.components()),e}},{key:"closest",value:function(t){var e=this.view.$el.closest(t);return e.length&&e.data('model')}},{key:"closestType",value:function(t){for(var e=this.parent();e&&!e.is(t);)e=e.parent();return e}},{key:"contains",value:function(t){var e=!1;if(!t)return e;var n=function n(r){!e&&r.forEach((function(r){r===t&&(e=!0),!e&&n(r.components())}))};return n(this.components()),e}},{key:"tagUpdated",value:function(){this.trigger('rerender')}},{key:"replaceWith",value:function(t){var e=this.collection,n=e.indexOf(this);return e.remove(this),e.add(t,{at:n})}},{key:"attrUpdated",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.get('attributes'),o=i.class;o&&this.setClass(o),delete i.class;var a=i.style;a&&this.setStyle(a),delete i.style;var s=_({},this.previous('attributes')),l=(0,d.shallowDiff)(s,this.get('attributes'));(0,h.keys)(l).forEach((function(t){return n.trigger("change:attributes:".concat(t),n,l[t],r)}))}},{key:"setAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.set('attributes',_({},t),e),this}},{key:"addAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setAttributes(_(_({},this.getAttributes({noClass:1})),t),e)}},{key:"removeAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.getAttributes();return n.map((function(t){return delete r[t]})),this.setAttributes(r,e)}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=(0,h.isString)(t)?t:'',i=r?e:t;if(n&&n.getConfig('avoidInlineStyle')&&!i.inline){var o=n.get('state'),a=n.get('CssComposer'),s=a.getIdRule(this.getId(),_({state:o},i));if(this.rule=s,s)return s.getStyle(r)}return p.Z.getStyle.call(this,r)}},{key:"setStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=this.opt;if(r&&r.getConfig('avoidInlineStyle')&&!i.temporary&&!n.inline){var o=this.get('style')||{};e=_(_({},e=(0,h.isString)(e)?this.parseStyle(e):e),o);var a=r.get('state'),s=r.get('CssComposer'),l=this.getStyle(n);this.rule=s.setIdRule(this.getId(),e,_(_({},n),{},{state:a}));var c=(0,d.shallowDiff)(l,e);this.set('style','',{silent:1}),(0,h.keys)(c).forEach((function(e){return t.trigger("change:style:".concat(e))}))}else e=p.Z.setStyle.apply(this,arguments);return e}},{key:"getAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=[],i=_({},this.get('attributes')),o=n&&n.get('SelectorManager'),a=this.getId();if(e.noClass||(this.get('classes').forEach((function(t){return r.push((0,h.isString)(t)?t:t.get('name'))})),r.length&&(i.class=r.join(' '))),!e.noStyle){var s=this.get('style');(0,d.isObject)(s)&&!(0,d.isEmptyObj)(s)&&(i.style=this.styleToString({inline:1}))}(0,h.has)(i,'id')||(j(n)?t=o&&o.get(a,o.Selector.TYPE_ID):(0,h.isEmpty)(this.getStyle())||(t=1),(this.__getSymbol()||this.__getSymbols())&&(t=1),t&&(i.id=a));return i}},{key:"addClass",value:function(t){var e=this.em.get('SelectorManager').addClass(t);return this.get('classes').add(e)}},{key:"setClass",value:function(t){return this.get('classes').reset(),this.addClass(t)}},{key:"removeClass",value:function(t){var e=[];t=(0,h.isArray)(t)?t:[t];var n=this.get('classes'),r=m.Z.TYPE_CLASS;return t.forEach((function(t){t.split(' ').forEach((function(t){var i=n.where({name:t,type:r})[0];i&&e.push(n.remove(i))}))})),e}},{key:"getClasses",value:function(){var t=this.getAttributes().class;return t?t.split(' '):[]}},{key:"__logSymbol",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.__getSymbol(),i=this.__getSymbols();(r||i)&&this.em.log(t,{model:this,toUp:e,context:'symbols',opts:n})}},{key:"__initSymb",value:function(){this.__symbReady||(this.on('change',this.__upSymbProps),this.__symbReady=1)}},{key:"__isSymbol",value:function(){return(0,h.isArray)(this.get(M))}},{key:"__isSymbolOrInst",value:function(){return!(!this.__isSymbol()&&!this.get(A))}},{key:"__isSymbolTop",value:function(){var t=this.parent();return this.__isSymbolOrInst()&&(!t||t&&!t.__isSymbol()&&!t.__getSymbol())}},{key:"__isSymbolNested",value:function(){if(!this.__isSymbolOrInst()||this.__isSymbolTop())return!1;var t=(this.__isSymbol()?this:this.__getSymbol()).__getSymbTop(),e=this.__getSymbTop();return(e.__isSymbol()?e:e.__getSymbol())!==t}},{key:"__getAllById",value:function(){var t=this.em;return t?t.get('DomComponents').allById():{}}},{key:"__getSymbol",value:function(){var t=this.get(A);if(t&&(0,h.isString)(t)){var e=this.__getAllById()[t];e?(t=e,this.set(A,e)):t=0}return t}},{key:"__getSymbols",value:function(){var t=this,e=this.get(M);return e&&(0,h.isArray)(e)&&(e.forEach((function(n,r){n&&(0,h.isString)(n)&&(e[r]=t.__getAllById()[n])})),e=e.filter((function(t){return t&&!(0,h.isString)(t)}))),e}},{key:"__isSymbOvrd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.get(R),n=t.split(':'),r=(0,o.Z)(n,1),i=r[0],a=t!==i?[t,i]:[t];return!0===e||(0,h.isArray)(e)&&a.some((function(t){return e.indexOf(t)>=0}))}},{key:"__getSymbToUp",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[],r=this.em,o=e.changed,a=r&&r.get('symbols');if(e.fromInstance||e.noPropagate||e.fromUndo||!a||o&&this.__isSymbOvrd(o))return n;var s=this.__getSymbols()||[],l=this.__getSymbol(),c=l?[l].concat((0,i.Z)(l.__getSymbols()||[])):s;return n=c.filter((function(e){return e!==t})).filter((function(t){return!(o&&t.__isSymbOvrd(o))}))}},{key:"__getSymbTop",value:function(t){for(var e=this,n=this.parent(t);n&&(n.__isSymbol()||n.__getSymbol());)e=n,n=n.parent(t);return e}},{key:"__upSymbProps",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.changedAttributes(),i=r.attributes||{};if(delete r.status,delete r.open,delete r.__symbols,delete r.__symbol,delete r.__symbol_ovrd,delete r.attributes,delete i.id,(0,d.isEmptyObj)(i)||(r.attributes=i),!(0,d.isEmptyObj)(r)){var o=this.__getSymbToUp(n);(0,h.keys)(r).map((function(t){e.__isSymbOvrd(t)&&delete r[t]})),this.__logSymbol('props',o,{opts:n,changed:r}),o.forEach((function(t){var i=_({},r);(0,h.keys)(i).map((function(e){t.__isSymbOvrd(e)&&delete i[e]})),t.set(i,_({fromInstance:e},n))}))}}},{key:"__upSymbCls",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.__getSymbToUp(r);this.__logSymbol('classes',i,{opts:r}),i.forEach((function(t){t.set('classes',n.get('classes'),{fromInstance:n})})),this.__changesUp(r)}},{key:"__upSymbComps",value:function(t,e,n){var r=this,o=n||e||{},a={fromInstance:o.fromInstance,fromUndo:o.fromUndo},s=t.opt.temporary;if(n)if(n.add){var l=[],c=!!this.__getSymbols(),u=this.__getSymbToUp(_(_({},a),{},{changed:'components:add'}));if(u.length){var f=t.__getSymbol();l=(f?f.__getSymbols():t.__getSymbols())||[],(l=(0,i.Z)(l)).push(f||t)}!s&&this.__logSymbol('add',u,{opts:n,addedInstances:l.map((function(t){return t.cid})),added:t.cid}),u.forEach((function(e){var i=e.__getSymbTop(),o=l.filter((function(t){var e=t.__getSymbTop({prev:1});return i&&e&&e===i}))[0]||t.clone({symbol:1,symbolInv:c});e.append(o,_({fromInstance:r},n))}))}else{var h=t.__getSymbol();if(h&&!n.temporary&&h.set(M,h.__getSymbols().filter((function(e){return e!==t}))),!t.__isSymbolTop()){var d='components:remove',p=n.index,g=t.parent(),v=_({fromInstance:t},n),m=t.__isSymbolNested(),y=function(t){var e=t.parent();e&&!e.__isSymbOvrd(d)&&t.remove(v)},b=g.__isSymbOvrd(d)?[]:t.__getSymbToUp(a);m&&(b=g.__getSymbToUp(_(_({},a),{},{changed:d})),y=function(t){var e=t.components().at(p);e&&e.remove(_({fromInstance:g},v))}),!s&&this.__logSymbol('remove',b,{opts:n,removed:t.cid,isSymbNested:m}),b.forEach(y)}}else{var w=this.__getSymbToUp(_(_({},a),{},{changed:'components:reset'}));this.__logSymbol('reset',w,{components:t.models}),w.forEach((function(n){var i=t.models.map((function(t){return t.clone({symbol:1})}));n.components().reset(i,_({fromInstance:r},e))}))}this.__changesUp(o)}},{key:"initClasses",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r='change:classes',i=this.get('attributes').class||[],o=[this,r,this.initClasses],a=this.get('classes')||i,s=(0,h.isString)(a)?a.split(' '):a;this.stopListening.apply(this,o);var l=this.normalizeClasses(s),c=new y.Z([]);return this.set('classes',c,n),c.add(l),c.on('add remove reset',this.__upSymbCls),this.listenTo.apply(this,o),this}},{key:"initComponents",value:function(){var t=[this,'change:components',this.initComponents];this.stopListening.apply(this,t);var e=new v.Z(null,this.opt);e.parent=this;var n=this.get('components'),r=!this.opt.avoidChildren;return this.set('components',e),r&&n&&e.add((0,h.isFunction)(n)?n(this):n,this.opt),e.on('add remove reset',this.__upSymbComps),this.listenTo.apply(this,t),this}},{key:"initTraits",value:function(t){var e=this.em,n='change:traits';this.off(n,this.initTraits),this.__loadTraits();var r=_({},this.get('attributes')),i=this.get('traits');return i.each((function(t){if(!t.get('changeProp')){var e=t.get('name'),n=t.getInitValue();e&&n&&(r[e]=n)}})),i.length&&this.set('attributes',r),this.on(n,this.initTraits),t&&e&&e.trigger('component:toggled'),this}},{key:"initScriptProps",value:function(){if(!this.opt.temporary){var t='script-props',e=["change:".concat(t),this.initScriptProps];this.off.apply(this,e);var n=this.previous(t)||[],r=this.get(t)||[],i=n.map((function(t){return"change:".concat(t)})).join(' '),o=r.map((function(t){return"change:".concat(t)})).join(' ');i&&this.off(i,this.__scriptPropsChange),o&&this.on(o,this.__scriptPropsChange),this.on.apply(this,e)}}},{key:"__scriptPropsChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.avoidStore||this.trigger('rerender')}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,h.isArray)(t)?t:[t],r=n.map((function(t){return(0,h.isString)(t)||t.collection&&t.collection.remove(t,{temporary:1}),t})),i=this.components().add(r,e);return(0,h.isArray)(i)?i:[i]}},{key:"components",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('components');return(0,h.isUndefined)(t)?n:(n.reset(null,e),t?this.append(t,e):[])}},{key:"getChildAt",value:function(t){return this.components().at(t||0)||null}},{key:"getLastChild",value:function(){var t=this.components();return t.at(t.length-1)||null}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.components().reset(null,t),this}},{key:"parent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.collection||t.prev&&this.prevColl;return e?e.parent:null}},{key:"scriptUpdated",value:function(){this.set('scriptUpdated',1)}},{key:"initToolbar",value:function(){var t=this.em,e=this,n=t&&t.getConfig('stylePrefix')||'';if(!e.get('toolbar')&&t){var r=[];e.collection&&r.push({label:t.getIcon('arrowUp'),command:function(t){return t.runCommand('core:component-exit',{force:1})}}),e.get('draggable')&&r.push({attributes:{class:"".concat(n,"no-touch-actions"),draggable:!0},label:t.getIcon('move'),command:'tlb-move'}),e.get('copyable')&&r.push({label:t.getIcon('copy'),command:'tlb-clone'}),e.get('removable')&&r.push({label:t.getIcon('delete'),command:'tlb-delete'}),e.set('toolbar',r)}}},{key:"__loadTraits",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t||this.get('traits');if(!(n instanceof S)){n=(0,h.isFunction)(n)?n(this):n;var r=new S([],this.opt);r.setTarget(this),n.length&&(n.forEach((function(t){return t.attributes&&delete t.attributes.value})),r.add(n)),this.set({traits:r},e)}return this}},{key:"getTraits",value:function(){return this.__loadTraits(),(0,i.Z)(this.get('traits').models)}},{key:"setTraits",value:function(t){var e=(0,h.isArray)(t)?t:[t];return this.set({traits:e}),this.getTraits()}},{key:"getTrait",value:function(t){return this.getTraits().filter((function(e){return e.get('id')===t||e.get('name')===t}))[0]||null}},{key:"updateTrait",value:function(t,e){var n,r=this.getTrait(t);return r&&r.set(e),null===(n=this.em)||void 0===n||n.trigger('component:toggled'),this}},{key:"getTraitIndex",value:function(t){var e=this.getTrait(t);return e?this.get('traits').indexOf(e):-1}},{key:"removeTrait",value:function(t){var e,n=this,r=((0,h.isArray)(t)?t:[t]).map((function(t){return n.getTrait(t)})),i=this.get('traits'),o=r.length?i.remove(r):[];return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(o)?o:[o]}},{key:"addTrait",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.__loadTraits();var r=this.get('traits').add(t,n);return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(r)?r:[r]}},{key:"normalizeClasses",value:function(t){var e=[],n=this.em,r=n&&n.get('SelectorManager');if(r)return t.models?(0,i.Z)(t.models):(t.forEach((function(t){return e.push(r.add(t))})),e)}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=_({},this.attributes),r=_({},this.opt),o=this.getId(),a=e&&e.get('CssComposer');n.attributes=_({},n.attributes),delete n.attributes.id,n.components=[],n.classes=[],n.traits=[],this.__isSymbolTop()&&(t.symbol=1),this.get('components').each((function(e,r){n.components[r]=e.clone(_(_({},t),{},{_inner:1}))})),this.get('traits').each((function(t,e){n.traits[e]=t.clone()})),this.get('classes').each((function(t,e){n.classes[e]=t.get('name')})),n.status='',r.collection=null;var s=new this.constructor(n,r),l="#".concat(s.getId()),c=a?a.getRules("#".concat(o)):[];c.forEach((function(t){var e=t.clone();e.set('selectors',[l]),a.getAll().add(e)})),s.set(M,0);var u=this.__getSymbol(),f=this.__getSymbols();t.symbol||!u&&!f?u?(u.set(M,[].concat((0,i.Z)(u.__getSymbols()),[s])),s.__initSymb()):t.symbol&&(this.__isSymbol()?(this.set(M,[].concat((0,i.Z)(f),[s])),s.set(A,this),s.__initSymb()):t.symbolInv?(this.set(M,[s]),s.set(A,this),[this,s].map((function(t){return t.__initSymb()}))):(s.set(M,[this]),[this,s].map((function(t){return t.__initSymb()})),this.set(A,s))):(s.set(A,0),s.set(M,0));var h='component:clone';return e&&e.trigger(h,s),this.trigger(h,s),s}},{key:"getName",value:function(){var t=this.em,e=this.attributes,n=e.type,r=e.tagName,i=e.name,o=n||r,a=!n&&r,s='domComponents.names.',l=i&&(null==t?void 0:t.t("".concat(s).concat(i))),c=a&&(null==t?void 0:t.t("".concat(s).concat(a))),u=t&&(t.t("".concat(s).concat(n))||t.t("".concat(s).concat(r)));return this.get('custom-name')||l||i||c||(0,d.capitalize)(a)||u||(0,d.capitalize)(o)}},{key:"getIcon",value:function(){var t=this.get('icon');return t?t+' ':''}},{key:"toHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=[],r=t.tag,i=r||e.get('tagName'),o=e.get('void'),a=t.attributes,s=this.getAttrToHTML();if(delete t.tag,a&&((0,h.isFunction)(a)?s=a(e,s)||{}:(0,d.isObject)(a)&&(s=a)),t.withProps){var l=this.toJSON();(0,h.forEach)(l,(function(t,e){'_'!==e[0]&&['classes','attributes','components'].indexOf(e)<0&&(s["data-gjs-".concat(e)]=(0,h.isArray)(t)||(0,d.isObject)(t)?JSON.stringify(t):t)}))}for(var c in s){var u=s[c];if(!(0,h.isUndefined)(u)&&null!==u)if((0,h.isBoolean)(u))u&&n.push(c);else{var f='';if(t.altQuoteAttr&&(0,h.isString)(u)&&u.indexOf('"')>=0)f="'".concat(u.replace(/'/g,'''),"'");else{var p=(0,h.isString)(u)?u.replace(/"/g,'"'):u;f="\"".concat(p,"\"")}n.push("".concat(c,"=").concat(f))}}var g=n.length?" ".concat(n.join(' ')):'',v=e.getInnerHTML(t),m="<".concat(i).concat(g).concat(o?'/':'',">").concat(v);return!o&&(m+="")),m}},{key:"getInnerHTML",value:function(t){return this.__innerHTML(t)}},{key:"__innerHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.components();return e.length?e.map((function(e){return e.toHTML(t)})).join(''):this.get('content')}},{key:"getAttrToHTML",value:function(){var t=this.getAttributes();return delete t.style,t}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=g.Model.prototype.toJSON.call(this,t);if(e.attributes=this.getAttributes(),delete e.attributes.class,delete e.toolbar,delete e.traits,delete e.status,delete e.open,!t.fromUndo){var n=e.__symbol,r=e.__symbols;r&&(0,h.isArray)(r)&&(e.__symbols=r.filter((function(t){return t})).map((function(t){return t.getId?t.getId():t}))),n&&!(0,h.isString)(n)&&(e.__symbol=n.getId())}return this.em.getConfig('avoidDefaults')&&this.getChangedProps(e),e}},{key:"getChangedProps",value:function(t){var e=t||g.Model.prototype.toJSON.apply(this),n=(0,h.result)(this,'defaults');return(0,h.forEach)(n,(function(t,n){-1===['type'].indexOf(n)&&e[n]===t&&delete e[n]})),(0,h.isEmpty)(e.type)&&delete e.type,(0,h.forEach)(['attributes','style'],(function(t){(0,h.isEmpty)(n[t])&&(0,h.isEmpty)(e[t])&&delete e[t]})),(0,h.forEach)(['classes','components'],(function(t){(!e[t]||(0,h.isEmpty)(n[t])&&!e[t].length)&&delete e[t]})),e}},{key:"getId",value:function(){return(this.get('attributes')||{}).id||this.ccid||this.cid}},{key:"setId",value:function(t,e){var n=_({},this.get('attributes'));return n.id=t,this.set('attributes',n,e),this}},{key:"getEl",value:function(t){var e=this.getView(t);return e&&e.el}},{key:"getView",value:function(t){var e=this.view,n=this.views;return t&&(e=n.filter((function(e){return e._getFrame()===t.view}))[0]),e}},{key:"getCurrentView",value:function(){var t=(this.em.get('currentFrame')||{}).model;return this.getView(t)}},{key:"__getScriptProps",value:function(){var t=this.props();return(this.get('script-props')||[]).reduce((function(e,n){return e[n]=t[n],e}),{})}},{key:"getScriptString",value:function(t){var e=this,n=t||this.get('script');if(!n)return n;if(this.get('script-props'))n=n.toString().trim();else{if('function'==typeof n){var i=n.toString().trim();n=(i=i.replace(/^function[\s\w]*\(\)\s?\{/,'').replace(/\}$/,'')).trim()}var o=this.em.getConfig(),a=E(o.tagVarStart||'{[ '),s=E(o.tagVarEnd||' ]}'),l=new RegExp("".concat(a,"([\\w\\d-]*)").concat(s),'g');n=n.replace(l,(function(t,n){e.scriptUpdated();var i=e.attributes[n]||'';return(0,h.isArray)(i)||'object'==(0,r.Z)(i)?JSON.stringify(i):i}))}return n}},{key:"emitUpdate",value:function(t){for(var e=this.em,n=Z+(t?":".concat(t):''),r=t&&this.get(t),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s=0&&this.__propSelfToParent({component:this,changed:(0,a.Z)({},t,r),options:o[2]||o[1]||{}})}},{key:"onAll",value:function(t){return(0,h.isFunction)(t)&&(t(this),this.components().forEach((function(e){return e.onAll(t)}))),this}},{key:"remove",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=this.collection,i=function(){r&&r.remove(t,_(_({},e),{},{action:'remove-component'})),r||(t.components('',e),t.components().removeChildren(t,null,e))},o=_({},e);return[this,n].map((function(e){return e.trigger('component:remove:before',t,i,o)})),!o.abort&&i(),this}},{key:"move",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.remove({temporary:1}),t&&t.append(this,e),this}},{key:"isInstanceOf",value:function(t){var e,n,r=null===(e=this.em)||void 0===e||null===(n=e.get('DomComponents').getType(t))||void 0===n?void 0:n.model;return!!r&&this instanceof r}},{key:"isChildOf",value:function(t){for(var e=(0,h.isString)(t),n=this.parent();n;){if(e){if(n.isInstanceOf(t))return!0}else if(n===t)return!0;n=n.parent()}return!1}},{key:"resetId",value:function(){var t=this.em,e=this.getId();if(e){var r=n.createId(this);this.setId(r);var i=t&&t.get('CssComposer').getIdRule(e),o=i&&i.get('selectors').at(0);return o&&o.set('name',r),this}}},{key:"_getStyleRule",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.id,n=this.em,r=e||this.getId();return n&&n.get('CssComposer').getIdRule(r)}},{key:"_getStyleSelector",value:function(t){var e=this._getStyleRule(t);return e&&e.get('selectors').at(0)}},{key:"_idUpdated",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r.idUpdate){var i=this.ccid,o=this.get('attributes')||{},a=o.id,s=(this.previous('attributes')||{}).id||i,l=n.getList(this);if(l[a]||!a&&s)return this.setId(s,{idUpdate:1});delete l[s],l[a]=this,this.ccid=a;var c=this._getStyleSelector({id:s});c&&c.set({name:a,label:a})}}}]),n}(g.Model.extend(p.Z));N.isComponent=function(t){return{tagName:(0,d.toLowerCase)(t.tagName)}},N.ensureInList=function(t){var e=N.getList(t),n=t.getId(),r=e[n];if(r){if(r!==t){var i=N.getIncrementId(n,e);t.setId(i),e[i]=t}}else e[n]=t;t.components().forEach((function(t){return N.ensureInList(t)}))},N.createId=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=N.getList(t),i=n.idMap,o=void 0===i?{}:i,a=t.get('attributes'),s=a.id;return s?(e=N.getIncrementId(s,r,n),t.setId(e),s!==e&&(o[s]=e)):e=N.getNewId(r),r[e]=t,e},N.getNewId=function(t){for(var e=Object.keys(t).length.toString().length+2,n=(Math.random()+1.1).toString(36).slice(-e),r="i".concat(n);t[r];)r=N.getNewId(t);return r},N.getIncrementId=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.keepIds,i=void 0===r?[]:r,o=1,a=t;if(i.indexOf(t)<0)for(;e[a];)o++,a="".concat(t,"-").concat(o);return a},N.getList=function(t){var e=t.opt,n=void 0===e?{}:e,r=n.domc,i=n.em,o=r||i&&i.get('DomComponents');return o?o.componentsById:{}},N.checkId=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(0,h.isArray)(t)?t:[t],o=r.keepIds,a=void 0===o?[]:o;i.forEach((function(t){var i=t.attributes,o=void 0===i?{}:i,s=t.components,l=o.id;if(l&&n[l]&&a.indexOf(l)<0){var c=N.getIncrementId(l,n);o.id=c,(0,h.isArray)(e)&&e.forEach((function(t){var e=t.selectors;e.forEach((function(t,n){t==="#".concat(l)&&(e[n]="#".concat(c))}))}))}s&&N.checkId(s,e,n,r)}))},N.getDefaults=function(){return(0,h.result)(this.prototype,'defaults')},N.prototype.defaults=(C={tagName:'div',type:'',name:'',removable:!0,draggable:!0,droppable:!0,badgable:!0,stylable:!0,'stylable-require':'','style-signature':'',unstylable:'',highlightable:!0,copyable:!0,resizable:!1,editable:!1,layerable:!0,selectable:!0,hoverable:!0,void:!1,state:'',status:'',content:'',icon:'',style:'',styles:'',classes:'',script:'','script-props':'','script-export':'',attributes:'',traits:['id','title'],propagate:'',dmode:'',toolbar:null},(0,a.Z)(C,A,0),(0,a.Z)(C,M,0),(0,a.Z)(C,R,0),(0,a.Z)(C,"_undo",!0),(0,a.Z)(C,"_undoexc",['status','open']),C)},9256:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(1002),i=n(2982),o=n(4925),a=n(4942),s=n(2316),l=n.n(s),c=n(9050),u=n(4822),f=["at"];function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];var r=(0,c.isArray)(e)||(0,c.isFunction)(e.map)?e:[e];return r.map((function(e){n.push(e.getId()),t(e.components().models,n)})),n},g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,c.isArray)(e)?e:[e];return i.map((function(e){var i=e.attributes,o=void 0===i?{}:i,a=e.components,s=e.tagName,l=o.id,u=e;if(l&&n[l]&&(u=n[l],s&&u.set({tagName:s},d(d({},r),{},{silent:!0}))),a){var f=t(a,n);if((0,c.isFunction)(u.components)){var h=u.components();h.length>0&&h.reset(f,r)}else u.components=f}return u}))};const v=l().Collection.extend({initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.opt=e,this.listenTo(this,'add',this.onAdd),this.listenTo(this,'remove',this.removeChildren),this.listenTo(this,'reset',this.resetChildren);var n=e.em,r=e.config;this.config=r,this.em=n,this.domc=e.domc||n&&n.get('DomComponents')},resetChildren:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this,i=n.previousModels||[],o=i.filter((function(e){return!t.get(e.cid)})),a=p(t);n.keepIds=p(i).filter((function(t){return a.indexOf(t)>=0})),o.forEach((function(t){return e.removeChildren(t,r,n)})),t.each((function(t){return e.onAdd(t)}))},resetFromString:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=p(this);var r=this.domc,i=(null==r?void 0:r.allById())||{},o=this.parseString(e,n),a=(0,c.isArray)(o)?o:[o],s=g(a,i,n);this.reset(s,n),null===(t=this.em)||void 0===t||t.trigger('component:content',this.parent,n,e)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i=this.domc,o=this.em,a=r.temporary||r.fromUndo;if(t.prevColl=this,!a){var s=t.getId(),l=o.get('SelectorManager').getAll(),c=o.get('CssComposer').getAll(),u=(r.keepIds||[]).indexOf(s)<0,f=i?i.allById():{};delete f[s];var h=u?c.remove(c.filter((function(t){return t.getSelectors().getFullString()==="#".concat(s)})),r):[];l.remove(h.map((function(t){return t.getSelectors().at(0)}))),t.opt.temporary||(o.get('Commands').run('core:component-style-clear',{target:t}),t.removed(),t.trigger('removed'),o.trigger('component:remove',t));var d=t.components();d.forEach((function(t){return n.removeChildren(t,e,r)}))}var p=t.components();o.stopListening(p),o.stopListening(t),o.stopListening(t.get('classes')),t.__postRemove()}},model:function(t,e){var n,r=e.collection.opt,i=r.em,o=i.get('DomComponents').componentTypes;e.em=i,e.config=r.config,e.componentTypes=o,e.domc=r.domc;for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.domc,i=n.get('CssComposer'),a=n.get('Parser').parseHtml(t);if(u.ZP.checkId(a.html,a.css,r.componentsById,e),a.css&&i&&!e.temporary){e.at;var s=(0,o.Z)(e,f);i.addCollection(a.css,d(d({},s),{},{extend:1}))}return a.html},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=[].concat((0,i.Z)(n.keepIds||[]),(0,i.Z)(p(n.previousModels))),(0,c.isString)(t)?t=this.parseString(t,n):(0,c.isArray)(t)&&(t=(0,i.Z)(t)).forEach((function(r,i){if((0,c.isString)(r)){var o=e.parseString(r,n);t[i]=(0,c.isArray)(o)&&!o.length?null:o}}));var r=(0,c.isArray)(t);t=(r?t:[t]).filter((function(t){return t})).map((function(t){return e.processDef(t)})),t=r?(0,c.flatten)(t,1):t[0];var o=l().Collection.prototype.add.apply(this,[t,n]);return this.__firstAdd=o,o},processDef:function(t){if(t.cid&&t.ccid)return t;var e=this.em,n=this.config,i=(void 0===n?{}:n).processor,o=t;if(i){var a=i(o=d({},o));a&&((0,c.each)(o,(function(t,e){return delete o[e]})),(0,c.extend)(o,a))}if(o.$$typeof&&'object'==(0,r.Z)(o.props)){(o=d({},o)).props=d({},o.props);var s=e.get('DomComponents'),l=e.get('Parser').parserHtml;(0,c.each)(o,(function(t,e){(0,c.includes)(['props','type'],e)||delete o[e]}));var u=o.props,f=u.children;delete u.children,delete o.props;var h=l.splitPropsFromAttr(u);o.attributes=h.attrs,f&&(o.components=f),o.type?s.getType(o.type)||(o.tagName=o.type,delete o.type):o.type='textnode',(0,c.extend)(o,h.props)}return o},onAdd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.domc,i=this.em,o=t.getStyle(),a=i&&i.getConfig('avoidInlineStyle');if(r&&r.Component.ensureInList(t),!(0,c.isEmpty)(o)&&!a&&i&&i.get&&i.getConfig('forceClass')&&!n.temporary){var s=t.cid;i.get('CssComposer').setClassRule(s,o);t.setStyle({}),t.addClass(s)}t.__postAdd({recursive:1}),this.__onAddEnd()},__onAddEnd:(0,c.debounce)((function(){}))})},274:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(9256),l=n(2586),c=n(2030),u=n(827),f=n(3168);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{},r=n.em,i=e.opt||{},o=this.$el,a=this.el;this.opts=t,this.modelOpt=i,this.config=n,this.em=r||'',this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.attr=e.get('attributes'),this.classe=this.attr.class||[],this.listenTo(e,'change:style',this.updateStyle),this.listenTo(e,'change:attributes',this.renderAttributes),this.listenTo(e,'change:highlightable',this.updateHighlight),this.listenTo(e,'change:status',this.updateStatus),this.listenTo(e,'change:script rerender',this.reset),this.listenTo(e,'change:content',this.updateContent),this.listenTo(e,'change',this.handleChange),this.listenTo(e,'active',this.onActive),this.listenTo(e,'disable',this.onDisable),o.data('model',e),(0,f.setViewEl)(a,this),e.view=this,this._getFrame()&&e.views.push(this),this.initClasses(),this.initComponents({avoidRender:1}),this.events=d(d({},this.events),{},{dragstart:'handleDragStart'}),this.delegateEvents(),!i.temporary&&this.init(this._clbObj())},__isDraggable:function(){var t=this.model,e=this.config,n=t.attributes.draggable;return e.draggableComponents&&n},_clbObj:function(){var t=this.em,e=this.model,n=this.el;return{editor:t&&t.getEditor(),model:e,el:n}},init:function(){},removed:function(){},onActive:function(){},onDisable:function(){},remove:function(){var t;o().View.prototype.remove.apply(this,arguments);var e=this.model,n=this.$el,r=e.views,i=this._getFrame()||{};return e.components().forEach((function(t){var e=t.getView(i.model);null==e||e.remove()})),null===(t=this.childrenView)||void 0===t||t.remove(),r.splice(r.indexOf(this),1),this.removed(this._clbObj()),n.data({model:'',collection:'',view:''}),this},handleDragStart:function(t){if(!this.__isDraggable())return!1;t.stopPropagation(),t.preventDefault(),this.em.get('Commands').run('tlb-move',{target:this.model,event:t})},initClasses:function(){var t=this.model,e='change:classes',n=t.get('classes');n instanceof c.Z&&(this.stopListening(t,e,this.initClasses),this.listenTo(t,e,this.initClasses),this.listenTo(n,'add remove change',this.updateClasses),n.length&&this.importClasses())},initComponents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.$el,r=this.childrenView,i='change:components',o=e.get('components'),a=[e,i,this.initComponents];o instanceof s.Z&&(n.data('collection',o),r&&r.remove(),this.stopListening.apply(this,a),!t.avoidRender&&this.renderChildren(),this.listenTo.apply(this,a))},handleChange:function(){var t=this.model,e=(0,a.keys)(t.changed);if(1!==e.length||'status'!==e[0])for(var n in t.emitUpdate(),t.changed)t.emitUpdate(n)},importClasses:function(){var t=this.config.em.get('SelectorManager');t&&this.model.get('classes').each((function(e){t.add(e.get('name'))}))},updateStatus:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e?e.get('Canvas').getConfig():{},r=n.extHl,i=this.el,o=this.model.get('status'),a=this.ppfx,s="".concat(a,"selected"),l="".concat(s,"-parent"),c="".concat(a,"freezed"),u="".concat(a,"hovered"),f=[s,l,c,u],h=r&&!t.noExtHl?'':s;this.$el.removeClass(f.join(' '));var d=i.getAttribute('class')||'',p='';switch(o){case'selected':p="".concat(d," ").concat(h);break;case'selected-parent':p="".concat(d," ").concat(l);break;case'freezed':p="".concat(d," ").concat(c);break;case'freezed-selected':p="".concat(d," ").concat(c," ").concat(h);break;case'hovered':p=t.avoidHover?'':"".concat(d," ").concat(u)}(p=p.trim())&&i.setAttribute('class',p)},updateHighlight:function(){var t=this.model,e=t.get('textable'),n=t.get('highlightable')&&(e||!t.isChildOf('text'));this.setAttribute('data-gjs-highlightable',!!n||'')},updateStyle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.em;if(i&&i.getConfig('avoidInlineStyle')&&!n.inline){var o=r.getStyle();!(0,a.isEmpty)(o)&&r.setStyle(o)}else this.setAttribute('style',r.styleToString(n))},updateClasses:function(){var t=this.model.get('classes').pluck('name').join(' ');this.setAttribute('class',t),this.updateStatus(),this.onAttrUpdate()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){return this.model.getClasses().join(' ')},updateAttributes:function(){var t=[],e=this.model,n=this.$el,r=this.el,i=e.attributes,o=i.textable,s=i.type,l=d(d({id:e.getId(),'data-gjs-type':s||'default'},this.__isDraggable()&&{draggable:!0}),o&&{contenteditable:'false'});(0,a.each)(r.attributes,(function(e){return t.push(e.nodeName)})),t.forEach((function(t){return n.removeAttr(t)})),this.updateStyle(),this.updateHighlight();var c=d(d({},l),e.getAttributes());(0,a.keys)(c).forEach((function(t){return!1===c[t]&&delete c[t]})),n.attr(c)},updateContent:function(){var t=this.model.get('content'),e=this.model.components().length;this.getChildrenContainer().innerHTML=e?'':t},prevDef:function(t){t.preventDefault()},updateScript:function(){var t=this.model,e=this.em;t.get('script')&&e&&e.get('Canvas').getCanvasView().updateScript(this)},getChildrenContainer:function(){var t=this.el;return'function'==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},getOffsetRect:function(){var t={},e=this.el,n=0,r=0;return function i(o){var a=o.offsetParent;a?(n+=a.offsetTop,r+=a.offsetLeft,i(a)):(t.top=e.offsetTop+n,t.left=e.offsetLeft+r,t.bottom=t.top+e.offsetHeight,t.right=t.left+e.offsetWidth)}(e),t},isInViewport:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.rect,n=this.el,r=n.ownerDocument,i=r.body,o=r.defaultView.frameElement,a=e||this.getOffsetRect(),s=a.top,l=a.left,c=this._getFrame().getOffsetRect();return s>=c.scrollTop&&l>=c.scrollLeft&&s<=c.scrollBottom&&l<=o.offsetWidth+i.scrollLeft},scrollIntoView:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getOffsetRect(),n=this.isInViewport({rect:e});if(!n||t.force){var r=this.el;'smooth'!==t.behavior?r.ownerDocument.defaultView.scrollTo(0,e.top):r.scrollIntoView(d({behavior:'smooth',block:'nearest'},t))}},reset:function(){var t=this.el;this.el='',this._ensureElement(),this._setData(),(0,u.dL)(t,this.el),this.render()},_setData:function(){var t=this.model,e=t.components();this.$el.data({model:t,collection:e,view:this})},_getFrame:function(){return this.config.frameView},renderChildren:function(){this.updateContent();var t=this.getChildrenContainer(),e=this.childrenView||new l.Z({collection:this.model.get('components'),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),r=0,i=n.length;r{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=n(9050),a=n(827);const s=i().View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{},this.em=this.config.em;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.resetChildren),this.listenTo(e,'remove',this.removeChildren)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.views.forEach((function(t){if(t){var e=t.childrenView,n=t.scriptContainer;e&&e.stopListening(),(0,a.L_)(n),t.remove.apply(t)}}));var i=t.components();i.forEach((function(t){return n.removeChildren(t,e,r)}))},addTo:function(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.config.em,r=this.collection.indexOf(t);if(this.addToCollection(t,null,r),n&&!e.temporary){var i=function t(e){n.trigger('component:add',e),e.components().forEach((function(e){return t(e)}))};i(t)}},addToCollection:function(t,e,r){this.compView||(this.compView=n(274).Z);for(var i=this.config,a=this.opts,s=this.em,l=e||null,c=i.frameView,u=void 0===c?{}:c,f=u.model&&t.getView(u.model),h=a.componentTypes||s&&s.get('DomComponents').getTypes(),d=t.get('type')||'default',p=this.compView,g=0;g1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels,i=void 0===r?[]:r;this.parentEl.innerHTML='',i.forEach((function(t){return e.removeChildren(t,e.collection)})),t.each((function(t){return e.addToCollection(t)}))},render:function(t){var e=this,n=this.el,r=document.createDocumentFragment();return this.parentEl=t||this.el,this.collection.each((function(t){return e.addToCollection(t,r)})),n.innerHTML='',n.appendChild(r),this}})},9707:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(3168);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(e)&&(e=l(e));var r=this.getStyle(n),a=s({},e);this.set('style',a,n);var c=(0,o.shallowDiff)(r,a);return(0,i.keys)(c).forEach((function(e){var r=t.em;n.noEvent||(t.trigger("change:style:".concat(e)),r&&(r.trigger("styleable:change",t,e,n),r.trigger("styleable:change:".concat(e),t,e,n)))})),a},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};'string'==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle(t);for(var r in n){var o=t.important,a=(0,i.isArray)(o)?o.indexOf(r)>=0:o,s="".concat(n[r]).concat(a?' !important':''),l='__'==r.substr(0,2);s&&!l&&e.push("".concat(r,":").concat(s,";"))}return e.join('')},getSelectors:function(){return this.get('selectors')||this.get('classes')},getSelectorsString:function(t){return this.selectorsToString?this.selectorsToString(t):this.getSelectors().getFullString()},_validate:function(t,e){var n,r=t.style,o=this.em||e.em,a=null==o||null===(n=o.get('CssComposer'))||void 0===n?void 0:n.getConfig().onBeforeStyle;if(r&&a){var l=a(s({},r));l&&(0,i.keys)(r).map((function(e){(0,i.isUndefined)(l[e])&&delete t.style[e]})),l&&(0,i.keys)(l).map((function(e){t.style[e]=l[e]}))}return!0}}},6475:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(4942),i=n(9050),o=n(2316);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r,this.opts=n,this.model=function(){var t,n,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o&&o.type){var l=e.getBaseType();t=(i=e.getType(o.type))?i.model:l.model,n=i?i.view:l.view}else{var c=e.recognizeType(o);t=(i=c.type).model,n=i.view,o=c.attributes}var u=new t(o,s(s({},a),{},{em:r}));return u.typeView=n,u};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n.n(l);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=c().$,h=function(t){(0,o.Z)(n,t);var e=u(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.Z)(this,n),t=e.call(this,i);var o=i.ppfx||'';return t.opts=i,t.ppfx=o,t.em=i.target||{},!i.onChange&&t.listenTo(t.model,'change:value',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){return"")}},{key:"inputClass",value:function(){return"".concat(this.ppfx,"field")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"setValue",value:function(t){var e=this.model,n=t||e.get('defaults'),r=this.getInputEl();r&&(r.value=n)}},{key:"handleModelChange",value:function(t,e,n){this.setValue(e,n)}},{key:"handleChange",value:function(t){t.stopPropagation();var e=this.getInputEl().value;this.__onInputChange(e),this.elementUpdated()}},{key:"__onInputChange",value:function(t){this.model.set({value:t},{fromInput:1})}},{key:"getInputEl",value:function(){if(!this.inputEl){var t=this.model,e=this.opts.type||'text',n=t.get('placeholder')||t.get('defaults')||t.get('default')||'';this.inputEl=f(""))}return this.inputEl.get(0)}},{key:"render",value:function(){this.inputEl=null;var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find(".".concat(this.holderClass())).append(this.getInputEl()),this}}]),n}(c().View);h.prototype.events={change:'handleChange'}},4e3:(t,e,n)=>{"use strict";n.d(e,{Z:()=>w});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(1002),d=n(3168);var p=n(4281);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e","
","
",'
'].join(''),s=function(){var t='';if(i)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","",'
','
',"
","
","
","
","
","
","
","
",'
','
','
',"
",'
',"
","
",t,'
','
',"
",'
',"
","",'
',"
","
","","",'
','
','
'].join('')}(),l='spectrum.id';t.fn.spectrum=function(e,n){if('string'==typeof e){var i=this,o=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=r[t(this).data(l)];if(n){var a=n[e];if(!a)throw new Error("Spectrum: no such method: '"+e+"'");'get'==e?i=n.get():'container'==e?i=n.container:'option'==e?i=n.option.apply(n,o):'destroy'==e?(n.destroy(),t(this).removeData(l)):a.apply(n,o)}})),i}return this.spectrum('destroy').each((function(){var n=_(this,t.extend({},e,t(this).data()));t(this).data(l,n.id)}))},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=D,t.fn.spectrum.defaults=n,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult='color'===n.type&&''!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t('input[type=color]');e.length&&!M()&&e.spectrum({preferredFormat:'hex6'})};var c=/^[\s,#]+/,u=/\s+$/,f=0,p=Math,g=p.round,v=p.min,m=p.max,y=p.random,b=function t(e,n){if(n=n||{},(e=e||'')instanceof t)return e;if(!(this instanceof t))return new t(e,n);var r=function(t){var e={r:0,g:0,b:0},n=1,r=!1,i=!1;'string'==typeof t&&(t=function(t){t=t.replace(c,'').replace(u,'').toLowerCase();var e,n=!1;if(O[t])t=O[t],n=!0;else if('transparent'==t)return{r:0,g:0,b:0,a:0,format:'name'};if(e=S.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=S.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=S.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=S.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=S.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=S.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=S.hex8.exec(t))return{a:nt(e[1]),r:Q(e[2]),g:Q(e[3]),b:Q(e[4]),format:n?'name':'hex8'};if(e=S.hex6.exec(t))return{r:Q(e[1]),g:Q(e[2]),b:Q(e[3]),format:n?'name':'hex'};if(e=S.hex3.exec(t))return{r:Q(e[1]+''+e[1]),g:Q(e[2]+''+e[2]),b:Q(e[3]+''+e[3]),format:n?'name':'hex'};return!1}(t));'object'==(0,h.Z)(t)&&(t.hasOwnProperty('r')&&t.hasOwnProperty('g')&&t.hasOwnProperty('b')?(o=t.r,a=t.g,s=t.b,e={r:255*X(o,255),g:255*X(a,255),b:255*X(s,255)},r=!0,i='%'===String(t.r).substr(-1)?'prgb':'rgb'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('v')?(t.s=et(t.s),t.v=et(t.v),e=function(t,e,n){t=6*X(t,360),e=X(e,100),n=X(n,100);var r=p.floor(t),i=t-r,o=n*(1-e),a=n*(1-i*e),s=n*(1-(1-i)*e),l=r%6;return{r:255*[n,a,o,o,s,n][l],g:255*[s,n,n,a,o,o][l],b:255*[o,o,s,n,n,a][l]}}(t.h,t.s,t.v),r=!0,i='hsv'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('l')&&(t.s=et(t.s),t.l=et(t.l),e=function(t,e,n){var r,i,o;function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=X(t,360),e=X(e,100),n=X(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,t.s,t.l),r=!0,i='hsl'),t.hasOwnProperty('a')&&(n=t.a));var o,a,s;return n=Y(n),{ok:r,format:t.format||i,r:v(255,m(e.r,0)),g:v(255,m(e.g,0)),b:v(255,m(e.b,0)),a:n}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=g(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=g(this._r)),this._g<1&&(this._g=g(this._g)),this._b<1&&(this._b=g(this._b)),this._ok=r.ok,this._tc_id=f++};b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=Y(t),this._roundA=g(100*this._a)/100,this},toHsv:function(){var t=R(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=R(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.v);return 1==this._a?'hsv('+e+', '+n+'%, '+r+'%)':'hsva('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHsl:function(){var t=A(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=A(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.l);return 1==this._a?'hsl('+e+', '+n+'%, '+r+'%)':'hsla('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHex:function(t){return Z(this._r,this._g,this._b,t)},toHexString:function(t){return'#'+this.toHex(t)},toHex8:function(){return L(this._r,this._g,this._b,this._a)},toHex8String:function(){return'#'+this.toHex8()},toRgb:function(){return{r:g(this._r),g:g(this._g),b:g(this._b),a:this._a}},toRgbString:function(){return 1==this._a?'rgb('+g(this._r)+', '+g(this._g)+', '+g(this._b)+')':'rgba('+g(this._r)+', '+g(this._g)+', '+g(this._b)+', '+this._roundA+')'},toPercentageRgb:function(){return{r:g(100*X(this._r,255))+'%',g:g(100*X(this._g,255))+'%',b:g(100*X(this._b,255))+'%',a:this._a}},toPercentageRgbString:function(){return 1==this._a?'rgb('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%)':'rgba('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%, '+this._roundA+')'},toName:function(){return 0===this._a?'transparent':!(this._a<1)&&(C[Z(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e='#'+L(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?'GradientType = 1, ':'';t&&(n=b(t).toHex8String());return'progid:DXImageTransform.Microsoft.gradient('+r+'startColorstr='+e+',endColorstr='+n+')'},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||'hex'!==t&&'hex6'!==t&&'hex3'!==t&&'name'!==t?('rgb'===t&&(n=this.toRgbString()),'prgb'===t&&(n=this.toPercentageRgbString()),'hex'!==t&&'hex6'!==t||(n=this.toHexString()),'hex3'===t&&(n=this.toHexString(!0)),'hex8'===t&&(n=this.toHex8String()),'name'===t&&(n=this.toName()),'hsl'===t&&(n=this.toHslString()),'hsv'===t&&(n=this.toHsvString()),n||this.toHexString()):'name'===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(B,arguments)},brighten:function(){return this._applyModification(V,arguments)},darken:function(){return this._applyModification(H,arguments)},desaturate:function(){return this._applyModification(N,arguments)},saturate:function(){return this._applyModification(I,arguments)},greyscale:function(){return this._applyModification(F,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(G,arguments)},complement:function(){return this._applyCombination(U,arguments)},monochromatic:function(){return this._applyCombination(K,arguments)},splitcomplement:function(){return this._applyCombination(q,arguments)},triad:function(){return this._applyCombination(W,arguments)},tetrad:function(){return this._applyCombination($,arguments)}},b.fromRatio=function(t,e){if('object'==(0,h.Z)(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]='a'===r?t[r]:et(t[r]));t=n}return b(t,e)},b.equals=function(t,e){return!(!t||!e)&&b(t).toRgbString()==b(e).toRgbString()},b.random=function(){return b.fromRatio({r:y(),g:y(),b:y()})},b.mix=function(t,e,n){n=0===n?0:n||50;var r,i=b(t).toRgb(),o=b(e).toRgb(),a=n/100,s=2*a-1,l=o.a-i.a,c=1-(r=((r=s*l==-1?s:(s+l)/(1+s*l))+1)/2),u={r:o.r*r+i.r*c,g:o.g*r+i.g*c,b:o.b*r+i.b*c,a:o.a*a+i.a*(1-a)};return b(u)},b.readability=function(t,e){var n=b(t),r=b(e),i=n.toRgb(),o=r.toRgb(),a=n.getBrightness(),s=r.getBrightness(),l=Math.max(i.r,o.r)-Math.min(i.r,o.r)+Math.max(i.g,o.g)-Math.min(i.g,o.g)+Math.max(i.b,o.b)-Math.min(i.b,o.b);return{brightness:Math.abs(a-s),color:l}},b.isReadable=function(t,e){var n=b.readability(t,e);return n.brightness>125&&n.color>500},b.mostReadable=function(t,e){for(var n=null,r=0,i=!1,o=0;o125&&a.color>500,l=a.brightness/125*3+a.color/500;(s&&!i||s&&i&&l>r||!s&&!i&&l>r)&&(i=s,r=l,n=b(e[o]))}return n};var w,k,x,O=b.names={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'0ff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000',blanchedalmond:'ffebcd',blue:'00f',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',burntsienna:'ea7e5d',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'0ff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkgrey:'a9a9a9',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkslategrey:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dimgrey:'696969',dodgerblue:'1e90ff',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'f0f',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',grey:'808080',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgray:'d3d3d3',lightgreen:'90ee90',lightgrey:'d3d3d3',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslategray:'789',lightslategrey:'789',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'0f0',limegreen:'32cd32',linen:'faf0e6',magenta:'f0f',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370db',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'db7093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',rebeccapurple:'663399',red:'f00',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',slategrey:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',wheat:'f5deb3',white:'fff',whitesmoke:'f5f5f5',yellow:'ff0',yellowgreen:'9acd32'},C=b.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(O),S=(k='[\\s|\\(]+('+(w="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',x='[\\s|\\(]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',{rgb:new RegExp('rgb'+k),rgba:new RegExp('rgba'+x),hsl:new RegExp('hsl'+k),hsla:new RegExp('hsla'+x),hsv:new RegExp('hsv'+k),hsva:new RegExp('hsva'+x),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=b,t((function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()}))}function P(e,n,r,i){for(var a=[],s=0;s')}else{a.push(t('
').append(t("").attr('title',i.noColorSelectedText)).html())}}return"
"+a.join('')+'
'}function _(l,c){var u,f,h,d,p=function(e,r){var i=t.extend({},n,e);return i.callbacks={move:j(i.move,r),change:j(i.change,r),show:j(i.show,r),hide:j(i.hide,r),beforeShow:j(i.beforeShow,r)},i}(c,l),g=p.flat,v=p.showSelectionPalette,m=p.localStorageKey,y=p.theme,w=p.callbacks,k=(u=Wt,f=10,function(){var t=this,e=arguments,n=function(){d=null,u.apply(t,e)};h&&clearTimeout(d),!h&&d||(d=setTimeout(n,f))}),x=!1,O=!1,C=!0,S=0,_=0,T=0,A=0,R=0,Z=0,L=0,N=0,I=0,F=0,B=1,V=[],H=[],z={},U=p.selectionPalette.slice(0),W=p.maxSelectionSize,$='sp-dragging',q=null,G=l.ownerDocument,K=(G.body,t(l)),Y=!1,X=t(s,G).addClass(y),J=X.find('.sp-picker-container'),Q=X.find('.sp-color'),tt=X.find('.sp-dragger'),et=X.find('.sp-hue'),nt=X.find('.sp-slider'),rt=X.find('.sp-alpha-inner'),it=X.find('.sp-alpha'),ot=X.find('.sp-alpha-handle'),at=X.find('.sp-input'),st=X.find('.sp-palette'),lt=X.find('.sp-initial'),ct=X.find('.sp-cancel'),ut=X.find('.sp-clear'),ft=X.find('.sp-choose'),ht=X.find('.sp-palette-toggle'),dt=K.is('input'),pt=dt&&'color'===K.attr('type')&&M(),gt=dt&&!g,vt=gt?t(a).addClass(y).addClass(p.className).addClass(p.replacerClassName):t([]),mt=gt?vt:K,yt=vt.find('.sp-preview-inner'),bt=p.color||dt&&K.val(),wt=!1,kt=p.preferredFormat,xt=!p.showButtons||p.clickoutFiresChange,Ot=!bt,Ct=p.allowEmpty&&!pt;function St(){if(p.showPaletteOnly&&(p.showPalette=!0),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),p.palette){V=p.palette.slice(0),H=t.isArray(V[0])?V:[V],z={};for(var e=0;e1&&(delete window.localStorage[m],t.each(e,(function(t,e){_t(e)})))}catch(t){}try{U=window.localStorage[m].split(';')}catch(t){}}}function _t(e){if(v){var n=b(e).toRgbString();if(!z[n]&&-1===t.inArray(n,U))for(U.push(n);U.length>W;)U.shift();if(m&&window.localStorage)try{window.localStorage[m]=U.join(';')}catch(t){}}}function Tt(){var e=Bt(),n=t.map(H,(function(t,n){return P(t,e,'sp-palette-row sp-palette-row-'+n,p)}));Pt(),U&&n.push(P(function(){var t=[];if(p.showPalette)for(var e=0;ed&&d>i?Math.abs(g.left+i-d):0),g.top-=Math.min(g.top,g.top+o>p&&p>o?Math.abs(o+a-r):r),g}(X,mt))),zt(),p.showPalette&&Tt(),K.trigger('reflow.spectrum'))}function $t(){Nt(),Y=!0,K.attr('disabled',!0),mt.addClass('sp-disabled')}!function(){if(i&&X.find('*:not(input)').attr('unselectable','on'),St(),gt&&K.after(vt).hide(),Ct||ut.hide(),g)K.after(X).hide();else{var e='parent'===p.appendTo?K.parent():t(p.appendTo);1!==e.length&&(e=t('body')),e.append(X)}function n(e){return e.data&&e.data.ignore?(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt()):(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt(),p.hideAfterPaletteSelect&&(Ut(!0),Nt())),!1}Pt(),mt.bind('click.spectrum touchstart.spectrum',(function(e){Y||At(),e.stopPropagation(),t(e.target).is('input')||e.preventDefault()})),(K.is(':disabled')||!0===p.disabled)&&$t(),X.click(E),at.change(Mt),at.bind('paste',(function(){setTimeout(Mt,1)})),at.keydown((function(t){13==t.keyCode&&Mt()})),ct.text(p.cancelText),ct.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),It(),Nt()})),ut.attr('title',p.clearText),ut.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),Ot=!0,Vt(),g&&Ut(!0)})),ft.text(p.chooseText),ft.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),i&&at.is(':focus')&&at.trigger('change'),at.hasClass('sp-validation-error')||(Ut(!0),Nt())})),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),ht.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),p.showPaletteOnly=!p.showPaletteOnly,p.showPaletteOnly||g||X.css('left','-='+(J.outerWidth(!0)+5)),St()})),D(it,(function(t,e,n){B=t/R,Ot=!1,n.shiftKey&&(B=Math.round(10*B)/10),Vt()}),jt,Dt),D(et,(function(t,e){N=parseFloat(e/A),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),D(Q,(function(t,e,n){if(n.shiftKey){if(!q){var r=I*S,i=_-F*_,o=Math.abs(t-r)>Math.abs(e-i);q=o?'x':'y'}}else q=null;var a=!q||'y'===q;(!q||'x'===q)&&(I=parseFloat(t/S)),a&&(F=parseFloat((_-e)/_)),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),bt?(Ft(bt),Ht(),kt=p.preferredFormat||b(bt).getFormat(),_t(bt)):Ht(),g&&Rt();var r=i?'mousedown.spectrum':'click.spectrum touchstart.spectrum';st.delegate('.sp-thumb-el',r,n),lt.delegate('.sp-thumb-el:nth-child(1)',r,{ignore:!0},n)}();var qt={show:Rt,hide:Nt,toggle:At,reflow:Wt,option:function(n,r){return n===e?t.extend({},p):r===e?p[n]:(p[n]=r,'preferredFormat'===n&&(kt=p.preferredFormat),void St())},enable:function(){Y=!1,K.attr('disabled',!1),mt.removeClass('sp-disabled')},disable:$t,offset:function(t){p.offset=t,Wt()},set:function(t){Ft(t),Ut()},get:Bt,destroy:function(){K.show(),mt.unbind('click.spectrum touchstart.spectrum'),X.remove(),vt.remove(),r[qt.id]=null},container:X};return qt.id=r.push(qt)-1,qt}function T(){}function E(t){t.stopPropagation()}function j(t,e){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}function D(e,n,r,o){n=n||function(){},r=r||function(){},o=o||function(){};var a=document,s=!1,l={},c=0,u=0,f='ontouchstart'in window,h={};function d(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function p(t){if(s){if(i&&a.documentMode<9&&!t.button)return g();var r=t&&t.touches&&t.touches[0],o=r&&r.pageX||t.pageX,h=r&&r.pageY||t.pageY,p=Math.max(0,Math.min(o-l.left,u)),v=Math.max(0,Math.min(h-l.top,c));f&&d(t),n.apply(e,[p,v,t])}}function g(){s&&(t(a).unbind(h),t(a.body).removeClass('sp-dragging'),setTimeout((function(){o.apply(e,arguments)}),0)),s=!1}h.selectstart=d,h.dragstart=d,h['touchmove mousemove']=p,h['touchend mouseup']=g,t(e).bind('touchstart mousedown',(function(n){var i=n.which?3==n.which:2==n.button;i||s||!1!==r.apply(e,arguments)&&(s=!0,c=t(e).height(),u=t(e).width(),l=t(e).offset(),t(a).bind(h),t(a.body).addClass('sp-dragging'),p(n),d(n))}))}function M(){return t.fn.spectrum.inputTypeColorSupport()}function A(t,e,n){t=X(t,255),e=X(e,255),n=X(n,255);var r,i,o=m(t,e,n),a=v(t,e,n),s=(o+a)/2;if(o==a)r=i=0;else{var l=o-a;switch(i=s>.5?l/(2-o-a):l/(o+a),o){case t:r=(e-n)/l+(e>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(b(r));return o}function K(t,e){e=e||6;for(var n=b(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(b({h:r,s:i,v:o})),o=(o+s)%1;return a}function Y(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function X(t,e){(function(t){return'string'==typeof t&&-1!=t.indexOf('.')&&1===parseFloat(t)})(t)&&(t='100%');var n=function(t){return'string'==typeof t&&-1!=t.indexOf('%')}(t);return t=v(e,m(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),p.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function J(t){return v(1,m(0,t))}function Q(t){return parseInt(t,16)}function tt(t){return 1==t.length?'0'+t:''+t}function et(t){return t<=1&&(t=100*t+'%'),t}function nt(t){return Q(t)/255}}(y);var b=function(t){var e='name'===t.getFormat()&&t.toName(),n=1==t.getAlpha()?t.toHexString():t.toRgbString();return e||n.replace(/ /g,'')},w=function(t){(0,a.Z)(n,t);var e=m(n);function n(){return(0,i.Z)(this,n),e.apply(this,arguments)}return(0,o.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n
\n
\n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return"".concat(t,"field ").concat(t,"field-color")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"remove",value:function(){p.Z.prototype.remove.apply(this,arguments),this.colorEl.spectrum('destroy')}},{key:"handleChange",value:function(t){t.stopPropagation();var e=t.target.value;(0,f.isUndefined)(e)||this.__onInputChange(e)}},{key:"__onInputChange",value:function(t){var e=this.model,n=this.opts.onChange,r=t,i=this.getColorEl();if(i){i.spectrum('set',r);var o=i.spectrum('get'),a=r&&b(o);a&&(r=a)}n?n(r):e.set({value:r},{fromInput:1})}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=(0,f.isUndefined)(e.def)?n.get('defaults'):e.def,i=(0,f.isUndefined)(t)?(0,f.isUndefined)(r)?'':r:t,o=this.getInputEl(),a=this.getColorEl(),s='none'!=i?i:'';o.value=i,a.get(0).style.backgroundColor=s,(e.fromTarget||e.fromInput&&!e.avoidStore)&&(a.spectrum('set',s),this.noneColor='none'==i)}},{key:"getColorEl",value:function(){if(!this.colorEl){var t,e=this.em,n=this.model,r=this.opts,i=this,o=this.ppfx,a=r.onChange,s=y("
")),l=s.get(0).style,c=e&&e.config?e.config.el:'',u=e&&e.getConfig&&e.getConfig('colorPicker')||{},f=0;this.$el.find("[data-colorp-c]").append(s),s.spectrum(v(v(v({color:n.getValue()||!1,containerClassName:"".concat(o,"one-bg ").concat(o,"two-color"),appendTo:c||'body',maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:'Ok',cancelText:'⨯',palette:[]},u),n.get('colorPicker')||{}),{},{move:function(t){var e=b(t);l.backgroundColor=e,a?a(e,!0):n.setValueFromInput(e,0)},change:function(t){f=1;var e=b(t);l.backgroundColor=e,a?a(e):(n.setValueFromInput(0,0),n.setValueFromInput(e)),i.noneColor=0},show:function(e){f=0,t=a?n.getValue({noDefault:!0}):b(e)},hide:function(e){f||!t&&!a||(i.noneColor&&(t=''),l.backgroundColor=t,s.spectrum('set',t),a?a(t,!0):n.setValueFromInput(t,0))}})),e&&e.on&&this.listenTo(e,'component:selected',(function(){f=1,s.spectrum('hide')})),this.colorEl=s}return this.colorEl}},{key:"render",value:function(){return p.Z.prototype.render.call(this),this.getColorEl(),this}}]),n}(p.Z)},7813:(t,e,n)=>{"use strict";n.d(e,{Z:()=>g});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(3168),d=n(4281);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}u().$;var g=function(t){(0,a.Z)(n,t);var e=p(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,r.Z)(this,n),t=e.call(this,i),(0,f.bindAll)((0,o.Z)(t),'moveIncrement','upIncrement'),t.doc=document,t.listenTo(t.model,'change:unit',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n \n \n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return this.opts.contClass||"".concat(t,"field ").concat(t,"field-integer")}},{key:"setValue",value:function(t,e){var n=e||{},r=this.validateInputValue(t,{deepCheck:1}),i={value:r.value};(r.unit||r.force)&&(i.unit=r.unit),this.model.set(i,n),n.silent&&this.handleModelChange()}},{key:"handleChange",value:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()}},{key:"handleUnitChange",value:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set('unit',e),this.elementUpdated()}},{key:"handleKeyDown",value:function(t){'ArrowUp'===t.key&&(t.preventDefault(),this.upArrowClick()),'ArrowDown'===t.key&&(t.preventDefault(),this.downArrowClick())}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"handleModelChange",value:function(){var t=this.model;this.getInputEl().value=t.get('value');var e=this.getUnitEl();e&&(e.value=t.get('unit')||'')}},{key:"getUnitEl",value:function(){if(!this.unitEl){var t=this.model,e=t.get('units')||[];if(e.length){var n=[''];e.forEach((function(e){var r=e==t.get('unit')?'selected':'';n.push(""))}));var r=document.createElement('div');r.innerHTML=""),this.unitEl=r.firstChild}}return this.unitEl}},{key:"upArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n+e)),this.elementUpdated()}},{key:"downArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n-e)),this.elementUpdated()}},{key:"downIncrement",value:function(t){t.preventDefault(),this.moved=0;var e=this.model.get('value')||0;e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,h.on)(this.doc,'mousemove',this.moveIncrement),(0,h.on)(this.doc,'mouseup',this.upIncrement)}},{key:"moveIncrement",value:function(t){this.moved=1;var e=this.model,n=e.get('step'),r=this.current,i=this.normalizeValue(r.val+(r.y-t.pageY)*n),o=this.validateInputValue(i),a=o.value,s=o.unit;return this.prValue=a,e.set({value:a,unit:s},{avoidStore:1}),!1}},{key:"upIncrement",value:function(){var t=this.model,e=t.get('step');if((0,h.off)(this.doc,'mouseup',this.upIncrement),(0,h.off)(this.doc,'mousemove',this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set('value',n,{avoidStore:1}).set('value',n+e),this.elementUpdated()}}},{key:"normalizeValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,r=n.get('step'),i=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=r.toString().split('.')[1];i=o?o.length:0}return i?parseFloat(t.toFixed(i)):t}},{key:"validateInputValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e||{},i=this.model,o='',a=(0,f.isUndefined)(t)?o:t,s=e.units||i.get('units')||[],l=i.get('unit')||s.length&&s[0]||'',c=(0,f.isUndefined)(e.max)?i.get('max'):e.max,u=(0,f.isUndefined)(e.min)?i.get('min'):e.min,h=!!i.get('limitlessMax'),d=!!i.get('limitlessMin');if(r.deepCheck){var p=i.get('fixedValues')||[];if(''===a&&(l=''),a){var g=new RegExp('^'+p.join('|'),'g');if(p.length&&g.test(a))a=a.match(g)[0],l='',n=1;else{var v=a+'';a+='',a=parseFloat(a.replace(',','.')),a=isNaN(a)?o:a;var m=v.replace(a,'');(0,f.indexOf)(s,m)>=0&&(l=m)}}}return h||(0,f.isUndefined)(c)||''===c||(a=a>c?c:a),d||(0,f.isUndefined)(u)||''===u||(a=a{"use strict";n.d(e,{Z:()=>p});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(4942),u=n(9050),f=n(2316),h=n.n(f);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var p=function(t){(0,a.Z)(n,t);var e=d(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,r.Z)(this,n),t=e.call(this,i),(0,c.Z)((0,o.Z)(t),"itemsView",''),(0,c.Z)((0,o.Z)(t),"itemType",'type'),(0,c.Z)((0,o.Z)(t),"reuseView",!1),t.config=a||i.config||{},s&&t.listenTo(t.collection,'add',t.addTo),t.items=[],t}return(0,i.Z)(n,[{key:"addTo",value:function(t){this.add(t)}},{key:"itemViewNotFound",value:function(t){var e=this.config,n=this.ns,r=e.em,i="".concat(n?"[".concat(n,"]: "):'',"'").concat(t,"' type not found");r&&r.logWarning(i)}},{key:"add",value:function(t,e){var n,r=this.config,i=this.reuseView,o=this.items,a=this.itemsView,s=void 0===a?{}:a,l=e||null,c=this.itemView,f=t.get(this.itemType);s[f]?c=s[f]:!f||s[f]||(0,u.includes)(['button','checkbox','color','date','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week'],f)||this.itemViewNotFound(f),n=t.view&&i?t.view:new c({model:t,config:r},r),o&&o.push(n);var h=n.render().el;l?l.appendChild(h):this.$el.append(h)}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.clearItems(),this.$el.empty(),this.collection.length&&this.collection.each((function(e){this.add(e,t)}),this),this.$el.append(t),this.onRender(),this}},{key:"onRender",value:function(){}},{key:"onRemoveBefore",value:function(){}},{key:"onRemove",value:function(){}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.items;this.onRemoveBefore(e,t),this.clearItems(),h().View.prototype.remove.apply(this,arguments),this.onRemove(e,t)}},{key:"clearItems",value:function(){this.items}}]),n}(h().View);p.prototype.itemView=''},5808:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>d});var r=n(4942),i=n(1002),o=n(9050),a=n(3168),s={placeholder:'eg. Text here'};const l={locale:'en',localeFallback:'en',detectLocale:!0,debug:!1,messages:{en:{assetManager:{addButton:'Add image',inputPlh:'http://path/to/the/image.jpg',modalTitle:'Select Image',uploadTitle:'Drop files here or click to upload'},blockManager:{labels:{},categories:{}},domComponents:{names:{'':'Box',wrapper:'Body',text:'Text',comment:'Comment',image:'Image',video:'Video',label:'Label',link:'Link',map:'Map',tfoot:'Table foot',tbody:'Table body',thead:'Table head',table:'Table',row:'Table row',cell:'Table cell'}},deviceManager:{device:'Device',devices:{desktop:'Desktop',tablet:'Tablet',mobileLandscape:'Mobile Landscape',mobilePortrait:'Mobile Portrait'}},panels:{buttons:{titles:{preview:'Preview',fullscreen:'Fullscreen','sw-visibility':'View components','export-template':'View code','open-sm':'Open Style Manager','open-tm':'Settings','open-layers':'Open Layer Manager','open-blocks':'Open Blocks'}}},selectorManager:{label:'Classes',selected:'Selected',emptyState:'- State -',states:{hover:'Hover',active:'Click','nth-of-type(2n)':'Even/Odd'}},styleManager:{empty:'Select an element before using Style Manager',layer:'Layer',fileButton:'Images',sectors:{general:'General',layout:'Layout',typography:'Typography',decorations:'Decorations',extra:'Extra',flex:'Flex',dimension:'Dimension'},properties:{'text-shadow-h':'X','text-shadow-v':'Y','text-shadow-blur':'Blur','text-shadow-color':'Color','box-shadow-h':'X','box-shadow-v':'Y','box-shadow-blur':'Blur','box-shadow-spread':'Spread','box-shadow-color':'Color','box-shadow-type':'Type','margin-top-sub':'Top','margin-right-sub':'Right','margin-bottom-sub':'Bottom','margin-left-sub':'Left','padding-top-sub':'Top','padding-right-sub':'Right','padding-bottom-sub':'Bottom','padding-left-sub':'Left','border-width-sub':'Width','border-style-sub':'Style','border-color-sub':'Color','border-top-left-radius-sub':'Top Left','border-top-right-radius-sub':'Top Right','border-bottom-right-radius-sub':'Bottom Right','border-bottom-left-radius-sub':'Bottom Left','transform-rotate-x':'Rotate X','transform-rotate-y':'Rotate Y','transform-rotate-z':'Rotate Z','transform-scale-x':'Scale X','transform-scale-y':'Scale Y','transform-scale-z':'Scale Z','transition-property-sub':'Property','transition-duration-sub':'Duration','transition-timing-function-sub':'Timing','background-image-sub':'Image','background-repeat-sub':'Repeat','background-position-sub':'Position','background-attachment-sub':'Attachment','background-size-sub':'Size'}},traitManager:{empty:'Select an element before using Trait Manager',label:'Component settings',traits:{labels:{},attributes:{id:s,alt:s,title:s,href:{placeholder:'eg. https://google.com'}},options:{target:{false:'This window',_blank:'New window'}}}},storageManager:{recover:'Do you want to recover unsaved changes?'}}},messagesAdd:null};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=u(u(u({},l),t),{},{messages:u(u({},l.messages),t.messages||{})});var e=this.config.messagesAdd;return e&&this.addMessages(e),this.config.detectLocale&&(this.config.locale=this._localLang()),this.em=t.em,this},getConfig:function(){return this.config},setLocale:function(t){var e=this.em,n=this.config,r={value:t,valuePrev:n.locale};return e&&e.trigger('i18n:locale',r),n.locale=t,this},getLocale:function(){return this.config.locale},getMessages:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config.messages;return t&&!n[t]&&this._debug("'".concat(t,"' i18n lang not found"),e),t?n[t]:n},setMessages:function(t){var e=this.em;return this.config.messages=t,e&&e.trigger('i18n:update',t),this},addMessages:function(t){var e=this.em,n=this.config.messages;return e&&e.trigger('i18n:add',t),this.setMessages(h(n,t)),this},t:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config,r=e.params||{},i=e.l||this.getLocale(),a=e.lFlb||n.localeFallback,s=this._getMsg(t,i,e);return s||(s=this._getMsg(t,a,e)),!s&&this._debug("'".concat(t,"' i18n key not found in '").concat(i,"' lang"),e),s=s&&(0,o.isString)(s)?this._addParams(s,r):s},_localLang:function(){var t=(0,a.hasWin)()&&window.navigator||{},e=t.language||t.userLanguage;return e?e.split('-')[0]:'en'},_addParams:function(t,e){var n=new RegExp("{([\\w\\d-]*)}",'g');return t.replace(n,(function(t,n){return e[n]||''})).trim()},_getMsg:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getMessages(e,n);if(r){var i=r[t];return!i&&t.indexOf('.')>0&&(i=t.split('.').reduce((function(t,e){if(!(0,o.isUndefined)(t))return t[e]}),r)),i}},_debug:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.config;(e.debug||r.debug)&&n&&n.logWarning(t)},destroy:function(){this.config=l,this.em={}}}}},2058:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r,i=n(1002),o=n(4942),a=n(9050),s=n(3168),l={},c={16:!1,18:!1,17:!1,91:!1},u='all',f={'⇧':16,shift:16,'⌥':18,alt:18,option:18,'⌃':17,ctrl:17,control:17,'⌘':91,command:91},h={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,',':188,'.':190,'/':191,'`':192,'-':189,'=':187,';':186,"'":222,'[':219,']':221,'\\':220},d=function(t){return h[t]||t.toUpperCase().charCodeAt(0)},p=[];for(r=1;r<20;r++)h['f'+r]=111+r;function g(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function v(t,e){if(t.length!=e.length)return!1;for(var n=0;n=0&&p.splice(r,1),93!=n&&224!=n||(n=91),n in c)for(e in c[n]=!1,f)f[e]==n&&(k[e]=!1)}function w(){for(r in c)c[r]=!1;for(r in f)k[r]=!1}function k(t,e,n){var r,i;r=O(t),void 0===n&&(n=e,e='all');for(var o=0;o1&&(i=C(t),t=[t[t.length-1]]),t=t[0],(t=d(t))in l||(l[t]=[]),l[t].push({shortcut:r[o],scope:e,method:n,key:r[o],mods:i})}for(r in f)k[r]=!1;function x(){return u||'all'}function O(t){var e;return''==(e=(t=t.replace(/\s/g,'')).split(','))[e.length-1]&&(e[e.length-2]+=','),e}function C(t){for(var e=t.slice(0,t.length-1),n=0;n1&&(s=C(r)),t=r[r.length-1],t=d(t),void 0===e&&(e=x()),!l[t])return;for(i=0;i0,c)(!c[r]&&g(n.mods,+r)>-1||c[r]&&-1==g(n.mods,+r))&&(o=!1);(0!=n.mods.length||c[16]||c[18]||c[17]||c[91])&&!o||!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}(t)})),S(t.document,'keyup',b),S(t,'focus',w)};const P=k;function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.config=T(T({},t),e),this.em=this.config.em,this.keymaps={},this},onLoad:function(){var t=this.config.defaults;for(var e in t){var n=t[e];this.add(e,n.keys,n.handler,n.opts||{})}},add:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.em,s=o.get('Commands'),l=o.getEditor(),c=o.get('Canvas'),u={id:t,keys:e,handler:n},f=this.keymaps[t];return f&&this.remove(t),this.keymaps[t]=u,P(e,(function(e,u){var f={event:e,h:u};if(n=(0,a.isString)(n)?s.get(n):n,!o.isEditing()&&!l.Canvas.isInputFocused()||r.force){r.prevent&&c.getCanvasView().preventDefault(e),'object'==(0,i.Z)(n)?s.runCommand(n,f):n(l,0,f);var h=[t,u.shortcut,e];o.trigger.apply(o,['keymap:emit'].concat(h)),o.trigger.apply(o,["keymap:emit:".concat(t)].concat(h))}})),o.trigger('keymap:add',u),u},get:function(t){return this.keymaps[t]},getAll:function(){return this.keymaps},remove:function(t){var e=this.em,n=this.get(t);if(n)return delete this.keymaps[t],n.keys.split(', ').forEach((function(t){return P.unbind(t.trim())})),e&&e.trigger('keymap:remove',n),n},removeAll:function(){var t=this;return Object.keys(this.keymaps).forEach((function(e){return t.remove(e)})),P.handlers={},this},destroy:function(){this.removeAll(),this.keymaps={},this.em={}}}}},3656:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>k});var r=n(4942),i=n(9050),o=n(827);const a={stylePrefix:'mdl-',title:'',content:'',backdrop:!0,custom:!1,extend:{}};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{title:'',content:'',attributes:{},open:!1}}},{key:"open",value:function(){this.set('open',!0)}},{key:"close",value:function(){this.set('open',!1)}}]),n}(h.Model);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
").concat(i,"
\n
\n
\n
\n
").concat(r,"
\n
\n
\n
\n
")}},{key:"events",value:function(){return{click:'onClick','click [data-close-modal]':'hide'}}},{key:"initialize",value:function(t){var e=this.model,n=t.config||{},r=n.stylePrefix||'';this.config=n,this.pfx=r,this.ppfx=n.pStylePrefix||'',this.listenTo(e,'change:open',this.updateOpen),this.listenTo(e,'change:title',this.updateTitle),this.listenTo(e,'change:content',this.updateContent)}},{key:"onClick",value:function(t){this.config.backdrop&&t.target===this.el&&this.hide()}},{key:"getCollector",value:function(){return this.$collector||(this.$collector=this.$el.find('.'+this.pfx+'collector')),this.$collector}},{key:"getContent",value:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find(".".concat(t,"content #").concat(t,"c"))),this.$content}},{key:"getTitle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.$title||(this.$title=this.$el.find('.'+this.pfx+'title')),t.$?this.$title:this.$title.get(0)}},{key:"updateContent",value:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),r=this.model.get('content');e.length&&n.append(e),t.empty().append(r)}},{key:"updateTitle",value:function(){var t=this.getTitle({$:!0});t&&t.empty().append(this.model.get('title'))}},{key:"updateOpen",value:function(){this.el.style.display=this.model.get('open')?'':'none'}},{key:"hide",value:function(){this.model.close()}},{key:"show",value:function(){this.model.open()}},{key:"updateAttr",value:function(t){var e=this.pfx,n=this.$el,r=this.el,i=[].slice.call(r.attributes).map((function(t){return t.name}));n.removeAttr(i.join(' ')),n.attr(v(v({},t||{}),{},{class:"".concat(e,"container ").concat(t&&t.class||'').trim()}))}},{key:"render",value:function(){var t=this.$el,e=this.model.toJSON();return e.pfx=this.pfx,e.ppfx=this.ppfx,t.html(this.template(e)),this.updateAttr(),this.updateOpen(),this}}]),n}(h.View);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},s=(n=w(w({},a),o)).em;this.em=s;var l=n.pStylePrefix;return l&&(n.stylePrefix=l+n.stylePrefix),(t=new p(n)).on('change:open',(function(t,e){return r(e,s)})),t.on('change',(0,i.debounce)((function(){var t=e._evData(),n=e.getConfig().custom;(0,i.isFunction)(n)&&n(t),s.trigger('modal',t)}))),this},_evData:function(){var e=this,n=this.getTitle(),r=this.getContent(),a=t.attributes;return{open:a.open,attributes:a.attributes,title:(0,i.isString)(n)?(0,o.rw)(n):n,content:(0,i.isString)(r)?(0,o.rw)(r):r.get?r.get(0):r,close:function(){return e.close()}}},postRender:function(t){var e=t.model.getConfig().el||t.el,n=this.render();n&&n.appendTo(e)},open:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.attributes||{};return n.title&&this.setTitle(n.title),n.content&&this.setContent(n.content),t.set('attributes',r),t.open(),e&&e.updateAttr(r),this},close:function(){return t.close(),this},onceClose:function(t){return this.em.once('modal:close',t),this},onceOpen:function(t){return this.em.once('modal:open',t),this},isOpen:function(){return!!t.get('open')},setTitle:function(e){return t.set('title',e),this},getTitle:function(){return t.get('title')},setContent:function(e){return t.set('content',' '),t.set('content',e),this},getContent:function(){return t.get('content')},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){if(!this.getConfig().custom){var r=y.extend(n.extend),i=e&&e.el;return(e=new r({el:i,model:t,config:n})).render().$el}},destroy:function(){e&&e.remove(),[n,t,e].forEach((function(t){return{}})),this.em={}}}}},3487:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>O});var r=n(4942),i=n(9050);const o={stylePrefix:'',appendTo:'',sortable:1,hidable:1,hideTextnode:1,root:'',showWrapper:1,showHover:1,scrollCanvas:{behavior:'smooth',block:'nearest'},scrollLayers:{behavior:'auto',block:'nearest'},highlightHover:1,onInit:function(){},onRender:function(){},extend:{}};var a=n(5671),s=n(3144),l=n(9340),c=n(2963),u=n(1120),f=n(2316),h=n(3168),d=n(274),p=n(4822);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,u.Z)(t);if(e){var i=(0,u.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,c.Z)(this,n)}}var v,m='contentEditable',y={mediaText:''},b=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return 0===(t.display||'').trim().indexOf('none')},w=function(t){(0,l.Z)(r,t);var e=g(r);function r(){return(0,a.Z)(this,r),e.apply(this,arguments)}return(0,s.Z)(r,[{key:"events",value:function(){return{'mousedown [data-toggle-move]':'startSort','touchstart [data-toggle-move]':'startSort','click [data-toggle-visible]':'toggleVisibility','click [data-toggle-open]':'toggleOpening','click [data-toggle-select]':'handleSelect','mouseover [data-toggle-select]':'handleHover','mouseout [data-toggle-select]':'handleHoverOut','dblclick [data-name]':'handleEdit','keydown [data-name]':'handleEditKey','focusout [data-name]':'handleEditEnd'}}},{key:"template",value:function(t){var e=this.pfx,n=this.ppfx,r=this.config,i=this.clsNoEdit,o=r.hidable,a=this.countChildren(t),s=a?'':this.clsNoChild,l="".concat(this.clsTitle," ").concat(s),c="".concat(this.clsTitleC," ").concat(n,"one-bg"),u="".concat(this.clsCaret," fa fa-chevron-right"),f="".concat(this.inputNameCls," ").concat(i," ").concat(n,"no-app"),h=this.level+1,d="".concat(30+10*h,"px"),p=t.getName(),g=t.getIcon(),v="".concat(e,"layer");return"\n ".concat(o?""):'',"\n
\n
\n
\n \n ").concat(g?"").concat(g,""):'',"\n ").concat(p,"\n
\n
\n
\n
").concat(a||'',"
\n
\n \n
\n
")}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,'__render'),this.opt=e,this.level=e.level;var n=e.config||{},r=n.onInit;this.config=n,this.em=e.config.em,this.ppfx=this.em.get('Config').stylePrefix,this.sorter=e.sorter||'',this.pfx=this.config.stylePrefix,this.parentView=e.parentView;var o=this.pfx,a=this.ppfx,s=this.model,l=s.get('components'),c=s.get('type')||'default';s.set('open',!1),this.listenTo(l,'remove add reset',this.checkChildren),[['change:status',this.updateStatus],['change:open',this.updateOpening],['change:layerable',this.updateLayerable],['change:style:display',this.updateVisibility],['rerender:layer',this.render],['change:name change:custom-name',this.updateName]].forEach((function(e){return t.listenTo(s,e[0],e[1])})),this.className="".concat(o,"layer ").concat(o,"layer__t-").concat(c," no-select ").concat(a,"two-color"),this.inputNameCls="".concat(a,"layer-name"),this.clsTitleC="".concat(o,"layer-title-c"),this.clsTitle="".concat(o,"layer-title"),this.clsCaret="".concat(o,"layer-caret"),this.clsCount="".concat(o,"layer-count"),this.clsMove="".concat(o,"layer-move"),this.clsChildren="".concat(o,"layer-children"),this.clsNoChild="".concat(o,"layer-no-chld"),this.clsEdit="".concat(this.inputNameCls,"--edit"),this.clsNoEdit="".concat(this.inputNameCls,"--no-edit"),this.$el.data('model',s),this.$el.data('collection',l),s.viewLayer=this,r.bind(this)({component:s,render:this.__render,listenTo:this.listenTo})}},{key:"updateName",value:function(){this.getInputName().innerText=this.model.getName()}},{key:"getVisibilityEl",value:function(){return this.eyeEl||(this.eyeEl=this.$el.children(".".concat(this.pfx,"layer-vis"))),this.eyeEl}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n="".concat(t,"layer-hidden"),r=b(e.getStyle(y))?'addClass':'removeClass';this.$el[r](n),this.getVisibilityEl()[r]('fa-eye-slash')}},{key:"toggleVisibility",value:function(t){t&&t.stopPropagation();var e=this.model,n=this.em,r='__prev-display',i=e.get(r),o=e.getStyle(y),a=o.display;b(o)?(delete o.display,i&&(o.display=i,e.unset(r))):(a&&e.set(r,a),o.display='none'),e.setStyle(o,y),n&&n.trigger('component:toggled')}},{key:"handleEdit",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName();o[m]=!0,o.focus(),document.execCommand('selectAll',!1,null),e&&e.setEditing(1),n.find(".".concat(this.inputNameCls)).removeClass(r).addClass(i)}},{key:"handleEditKey",value:function(t){t.stopPropagation(),((0,h.isEscKey)(t)||(0,h.isEnterKey)(t))&&this.handleEditEnd(t)}},{key:"handleEditEnd",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName(),a=o.textContent;o.scrollLeft=0,o[m]=!1,this.setName(a,{component:this.model,propName:'custom-name'}),e&&e.setEditing(0),n.find(".".concat(this.inputNameCls)).addClass(r).removeClass(i)}},{key:"setName",value:function(t,e){var n=e.propName;this.model.set(n,t)}},{key:"getInputName",value:function(){return this.inputName||(this.inputName=this.el.querySelector(".".concat(this.inputNameCls))),this.inputName}},{key:"updateOpening",value:function(){var t=this.opt.opened||{},e=this.model,n='fa-chevron-down';e.get('open')?(this.$el.addClass('open'),this.getCaret().addClass(n),t[e.cid]=e):(this.$el.removeClass('open'),this.getCaret().removeClass(n),delete t[e.cid])}},{key:"toggleOpening",value:function(t){var e=this.model;t.stopImmediatePropagation(),e.get('components').length&&e.set('open',!e.get('open'))}},{key:"handleSelect",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;if(e){e.setSelected(r,{fromLayers:1,event:t});var i=n.scrollCanvas;i&&r.views.forEach((function(t){return t.scrollIntoView(i)}))}}},{key:"handleHover",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;e&&n.showHover&&e.setHovered(r,{fromLayers:1})}},{key:"handleHoverOut",value:function(t){t.stopPropagation();var e=this.em,n=this.config;e&&n.showHover&&e.setHovered(0,{fromLayers:1})}},{key:"startSort",value:function(t){t.stopPropagation();var e=this.em,n=this.sorter;t.button&&0!==t.button||n&&(n.onStart=function(t){return e.trigger("".concat(p.OA,":start"),t)},n.onMoveClb=function(t){return e.trigger(p.OA,t)},n.startSort(t.target))}},{key:"freeze",value:function(){this.$el.addClass(this.pfx+'opac50'),this.model.set('open',0)}},{key:"unfreeze",value:function(){this.$el.removeClass(this.pfx+'opac50')}},{key:"updateStatus",value:function(t){d.Z.prototype.updateStatus.apply(this,[{avoidHover:!this.config.highlightHover,noExtHl:1}])}},{key:"isVisible",value:function(){return!b(this.model.getStyle())}},{key:"checkChildren",value:function(){var t=this.model,e=this.clsNoChild,n=this.countChildren(t),r=this.$el.children(".".concat(this.clsTitleC)).children(".".concat(this.clsTitle)),i=this.cnt;i||(i=this.$el.children('[data-count]').get(0),this.cnt=i),r[n?'removeClass':'addClass'](e),i&&(i.innerHTML=n||''),!n&&t.set('open',0)}},{key:"countChildren",value:function(t){var e=0;return t.get('components').each((function(t){var n=this.opt.isCountable,r=this.config.hideTextnode;n&&!n(t,r)||e++}),this),e}},{key:"getCaret",value:function(){if(!this.caret||!this.caret.length){this.pfx;this.caret=this.$el.children(".".concat(this.clsTitleC)).find(".".concat(this.clsCaret))}return this.caret}},{key:"setRoot",value:function(t){t=(0,i.isString)(t)?this.em.getWrapper().find(t)[0]:t;var e=(0,h.getModel)(t);e&&(this.stopListening(),this.model=e,this.initialize(this.opt),this._rendered&&this.render())}},{key:"updateLayerable",value:function(){(this.parentView||this).render()}},{key:"__clearItems",value:function(){var t=this.items;t&&t.remove()}},{key:"remove",value:function(){f.View.prototype.remove.apply(this,arguments),this.__clearItems()}},{key:"render",value:function(){var t=this.model,e=this.config,r=this.pfx,o=this.ppfx,a=this.opt;this.__clearItems();var s=a.isCountable,l=s&&!s(t,e.hideTextnode),c=this.isVisible(),u=this.$el.empty(),f=this.level+1;this.inputName=0,(0,i.isUndefined)(v)&&(v=n(7834).Z),this.items=new v({ItemView:a.ItemView,collection:t.get('components'),config:this.config,sorter:this.sorter,opened:this.opt.opened,parentView:this,parent:t,level:f});var h=this.items.render().$el;return this.config.showWrapper||1!==f?(u.html(this.template(t)),u.find(".".concat(this.clsChildren)).append(h)):u.append(h),t.get('draggable')&&this.config.sortable||u.children(".".concat(this.clsMove)).remove(),!c&&(this.className+=" ".concat(r,"hide")),l&&(this.className+=" ".concat(o,"hidden")),u.attr('class',this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this.__render(),this._rendered=1,this}},{key:"__render",value:function(){var t=this.model,e=this.config,n={component:t,el:this.el};e.onRender.bind(this)(n),this.em.trigger('layer:render',n)}}]),r}(f.View);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=x(x({},o),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&((0,i.isElement)(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e&&e.setRoot(t),this},getRoot:function(){return e&&e.model},getAll:function(){return e},componentChanged:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.fromLayers){var i=t.get('opened'),o=t.getSelected(),a=n.scrollLayers,s=o&&o.collection?o.collection.parent:null;for(var l in i)i[l].set('open',0);for(;s;)s.set('open',1),i[s.cid]=s,s=s.collection?s.collection.parent:null;if(o&&a){var c=o.viewLayer&&o.viewLayer.el;c&&c.scrollIntoView(a)}}},render:function(){var r=w.extend(n.extend);return e&&e.remove(),(e=new r({ItemView:r,level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()})).render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},7834:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(4822);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.items=[],this.opt=t;var e=t.config||{};this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||'',this.pfx=e.stylePrefix||'',this.parent=t.parent,this.parentView=t.parentView;var n=this.pfx,r=this.ppfx,i=this.parent,o=this.collection;this.listenTo(o,'add',this.addTo),this.listenTo(o,'reset resetNavigator',this.render),this.listenTo(o,'remove',this.removeChildren),this.className="".concat(n,"layers");var a=e.em;if(e.sortable&&!this.opt.sorter){var s=a.get('Utils');this.opt.sorter=new s.Sorter({container:e.sortContainer||this.el,containerSel:".".concat(this.className),itemSel:".".concat(n,"layer"),ignoreViewChildren:1,onEndMove:function(t,e,n){var r=e.getSourceModel();a.setSelected(r,{forceChange:1}),a.trigger("".concat(c.OA,":end"),n)},avoidSelectOnEnd:1,nested:1,ppfx:r,pfx:n})}this.sorter=this.opt.sorter||'',this.$el.data('collection',o),i&&this.$el.data('model',i)}},{key:"removeChildren",value:function(t){var e=t.viewLayer;e&&(e.remove(),t.viewLayer=0)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=this.level,i=this.parentView,o=this.opt.ItemView,a=e||null,s=new o({ItemView:o,level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=s.render().el;if(a)a.appendChild(l);else if(void 0!==n){var c='before';this.$el.children().length==n&&(n--,c='after'),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return this.items.push(s),l}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.items.map((function(t){return t.remove()}))}},{key:"isCountable",value:function(t,e){var n=t.get('type'),r=t.get('tagName');return!(('textnode'==n||'br'==r)&&e||!t.get('layerable'))}},{key:"render",value:function(){var t=this,e=document.createDocumentFragment(),n=this.el;return n.innerHTML='',this.collection.each((function(n){return t.addToCollection(n,e)})),n.appendChild(e),n.className=this.className,this}}]),n}(l.View)},9084:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>R,evAll:()=>O,evPageAdd:()=>T,evPageAddBefore:()=>E,evPageRemove:()=>j,evPageRemoveBefore:()=>D,evPageSelect:()=>S,evPageSelectBefore:()=>P,evPageUpdate:()=>_,evPfx:()=>C});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2316),c=n(5671),u=n(3144),f=n(9340),h=n(2963),d=n(1120),p=n(8445);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var v=function(t){(0,f.Z)(n,t);var e=g(n);function n(){return(0,c.Z)(this,n),e.apply(this,arguments)}return(0,u.Z)(n,[{key:"defaults",value:function(){return{frames:[],_undo:!0}}},{key:"initialize",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.config,i=void 0===r?{}:r,o=i.em,a={};this.em=o,t.frames||(a.component=t.component,a.styles=t.styles,['component','styles'].map((function(t){return e.unset(t)})));var s=t.frames||[a],l=new p.Z(s,i);l.page=this,this.set('frames',l);var c=o&&o.get('UndoManager');c&&c.add(l)}},{key:"onRemove",value:function(){this.get('frames').reset()}},{key:"getFrames",value:function(){return this.get('frames')}},{key:"getId",value:function(){return this.id}},{key:"getName",value:function(){return this.get('name')}},{key:"setName",value:function(t){return this.get({name:t})}},{key:"getAllFrames",value:function(){return this.getFrames().models||[]}},{key:"getMainFrame",value:function(){return this.getFrames().at(0)}},{key:"getMainComponent",value:function(){var t=this.getMainFrame();return t&&t.getComponent()}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=l.Model.prototype.toJSON.call(this,t),n=(0,o.result)(this,'defaults');return(0,o.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,o.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),e}}]),n}(l.Model);function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function y(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return l.Collection.prototype.add.call(this,t,y(y({},e),{},{config:n}))}}]),n}(l.Collection);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'_onPageChange');var n=e.em,r=x({},e);this.config=r,this.em=n;var i=new w([],r);this.pages=i,this.all=i;var a=new l.Model({_undo:!0});return this.model=a,i.on('add',(function(t,e,r){return n.trigger(T,t,r)})),i.on('remove',(function(t,e,r){return n.trigger(j,t,r)})),i.on('change',(function(t,e){n.trigger(_,t,t.changedAttributes(),e)})),i.on('reset',(function(e){return e.at(0)&&t.select(e.at(0))})),i.on('all',this.__onChange,this),a.on(M,this._onPageChange),this},__onChange:function(t,e,n,r){var i=r||n;this.em.trigger(O,{event:t,page:e,options:i})},onLoad:function(){var t=this.pages,e={silent:!0};t.add(this.config.pages||[],e);var n=t.length?this.getMain():this.add({type:A},e);this.select(n,e)},_onPageChange:function(t,e,n){var r=this.em,i=r.get('LayerManager'),o=e.getMainComponent();i&&o&&i.setRoot(o),r.trigger(S,e,t.previous('selected')),this.__onChange(M,e,n)},postLoad:function(){var t=this.em,e=this.model,n=t.get('UndoManager');n&&n.add(e),n&&n.add(this.pages)},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em;t.id=t.id||this._createId();var i=function(){var r=e.pages.add(t,n);return n.select&&e.select(r),r};return!n.silent&&r.trigger(E,t,i,n),!n.abort&&i()},remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.pages.remove(i,n),i};return!n.silent&&r.trigger(D,i,a,n),!n.abort&&a()},get:function(t){return this.pages.filter((function(e){return e.get('id')===t}))[0]},getMain:function(){var t=this.pages;return t.filter((function(t){return t.get('type')===A}))[0]||t.at(0)},getAll:function(){return(0,r.Z)(this.pages.models)},getAllWrappers:function(){var t=this.getAll();return(0,o.unique)((0,o.flatten)(t.map((function(t){return t.getAllFrames().map((function(t){return t.getComponent()}))}))))},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get('id')]=e,t}),{})},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,o.isString)(t)?this.get(t):t;return n&&(this.em.trigger(P,n,e),this.model.set('selected',n,e)),this},getSelected:function(){return this.model.get('selected')},destroy:function(){var t=this;this.pages.off().reset(),this.model.stopListening(),this.model.clear({silent:!0}),['selected','config','em','pages','model'].map((function(e){return t[e]=0}))},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t,{all:this.pages,reset:!0})},_createId:function(){var t,e=this.getAll().length+16,n=this.getAllMap();do{t=(0,a.createId)(e)}while(n[t]);return t}})}},3353:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>L});var r='sw-visibility',i='export-template',o='open-sm',a='open-tm',s='open-layers',l='open-blocks',c='fullscreen',u='preview';const f={stylePrefix:'pn-',defaults:[{id:'commands',buttons:[{}]},{id:'options',buttons:[{active:!0,id:r,className:'fa fa-square-o',command:r,context:r,attributes:{title:'View components'}},{id:u,className:'fa fa-eye',command:u,context:u,attributes:{title:'Preview'}},{id:c,className:'fa fa-arrows-alt',command:c,context:c,attributes:{title:'Fullscreen'}},{id:i,className:'fa fa-code',command:i,attributes:{title:'View code'}}]},{id:'views',buttons:[{id:o,className:'fa fa-paint-brush',command:o,active:!0,togglable:0,attributes:{title:'Open Style Manager'}},{id:a,className:'fa fa-cog',command:a,togglable:0,attributes:{title:'Settings'}},{id:s,className:'fa fa-bars',command:s,togglable:0,attributes:{title:'Open Layer Manager'}},{id:l,className:'fa fa-th-large',command:l,togglable:0,attributes:{title:'Open Blocks'}}]}],em:null,delayBtnsShow:300};var h=n(5671),d=n(3144),p=n(9340),g=n(2963),v=n(1120),m=n(2316),y=n(5253);function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var w=function(t){(0,p.Z)(n,t);var e=b(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return{id:'',content:'',visible:!0,buttons:[],attributes:{}}}},{key:"initialize",value:function(t){this.btn=this.get('buttons')||[],this.buttons=new y.Z(this.btn),this.set('buttons',this.buttons)}}]),n}(m.Model);function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var x=function(t){(0,p.Z)(n,t);var e=k(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n)}(m.Collection);x.prototype.model=w;var O=n(4942),C=n(9050);function S(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function P(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.commands,o=this.$el,a=this.activeCls,s=n.fromCollection,l=n.fromListen,c=r.get('context'),u=r.get('options'),f=r.get('command'),h={};f&&(i&&(0,C.isString)(f)?h=i.get(f)||{}:(0,C.isFunction)(f)?h=i.create({run:f}):null!==f&&(0,C.isObject)(f)&&(h=i.create(f)),r.get('active')?(!s&&r.collection.deactivateAll(c,r),r.set('active',!0,{silent:!0}).trigger('checkActive'),!l&&i.runCommand(h,P(P({},u),{},{sender:r})),h.noStop&&r.set('active',!1)):(o.removeClass(a),!l&&i.stopCommand(h,P(P({},u),{},{sender:r,force:1}))))}},{key:"updateDisable",value:function(){var t=this.disableCls,e=this.model.get('disable');this.$el[e?'addClass':'removeClass'](t)}},{key:"checkActive",value:function(){var t=this.model,e=this.$el,n=this.activeCls;t.get('active')?e.addClass(n):e.removeClass(n)}},{key:"clicked",value:function(t){var e=this.model;e.get('bntsVis')||e.get('disable')||!e.get('command')||this.toggleActive()}},{key:"toggleActive",value:function(){var t=this.model,e=this.em,n=t.attributes,r=n.active,i=n.togglable;r&&!i||(t.set('active',!r),r?t.get('runDefaultCommand')&&e.runDefault():t.get('stopDefaultCommand')&&e.stopDefault())}},{key:"render",value:function(){var t=this.model,e=t.get('label'),n=this.$el;return!t.get('el')&&n.empty(),this.updateAttributes(),e&&n.append(e),this.checkActive(),this.updateDisable(),this}}]),n}(m.View);function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var j=function(t){(0,p.Z)(n,t);var e=E(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||'',this.parentM=this.opt.parentM||null,this.listenTo(this.collection,'add',this.addTo),this.listenTo(this.collection,'reset remove',this.render),this.className=this.pfx+'buttons'}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){var n=e||null,r=new T({el:t.get('el'),model:t,config:this.config,parentM:this.parentM}).render().el;return n?n.appendChild(r):this.$el.append(r),r}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each((function(e){this.addToCollection(e,t)}),this),this.$el.append(t),this.$el.attr('class',(0,C.result)(this,'className')),this}}]),n}(m.View);function D(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function M(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var A=function(t){(0,p.Z)(n,t);var e=M(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{},n=this.model;this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.buttons=n.get('buttons'),this.className=this.pfx+'panel',this.id=this.pfx+n.get('id'),this.listenTo(n,'change:appendContent',this.appendContent),this.listenTo(n,'change:content',this.updateContent),this.listenTo(n,'change:visible',this.toggleVisible),n.view=this}},{key:"appendContent",value:function(){this.$el.append(this.model.get('appendContent'))}},{key:"updateContent",value:function(){this.$el.html(this.model.get('content'))}},{key:"toggleVisible",value:function(){this.model.get('visible')?this.$el.removeClass("".concat(this.ppfx,"hidden")):this.$el.addClass("".concat(this.ppfx,"hidden"))}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initResize",value:function(){var t=this.config.em,e=t?t.get('Editor'):'',n=this.model.get('resizable');if(e&&n){var r,i,o,a=!0===n?[1,1,1,1]:n,s=a.length,l=0;2==s?(r=a[0],o=a[0],i=a[1],l=a[1]):4==s&&(r=a[0],i=a[1],o=a[2],l=a[3]);var c=e.Utils.Resizer.init(function(t){for(var e=1;e{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316);function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var u=function(t){(0,o.Z)(a,t);var e=c(a);function a(){return(0,r.Z)(this,a),e.apply(this,arguments)}return(0,i.Z)(a,[{key:"defaults",value:function(){return{id:'',label:'',tagName:'span',className:'',command:'',context:'',buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,togglable:!0,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1}}},{key:"initialize",value:function(t){if(this.get('buttons').length){var e=n(5253).Z;this.set('buttons',new e(this.get('buttons')))}}}]),a}(l.Model);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"deactivateAllExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('active',!1),e&&n.get('buttons').length&&n.get('buttons').deactivateAllExceptOne(t,e))}))}},{key:"deactivateAll",value:function(t,e){var n=t||'';this.forEach((function(t){t.get('context')==n&&t!==e&&t.set('active',!1,{fromCollection:1})}))}},{key:"disableAllButtons",value:function(t){var e=t||'';this.forEach((function(t,n){t.get('context')==e&&t.set('disable',!0)}))}},{key:"disableAllButtonsExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('disable',!0),e&&n.get('buttons').length&&n.get('buttons').disableAllButtonsExceptOne(t,e))}))}}]),n}(l.Collection);h.prototype.model=u},3030:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={textTags:['br','b','i','u','a','ul','ol'],parserCss:null,parserHtml:null,optionsHtml:{htmlType:null,allowScripts:!1,allowUnsafeAttr:!1}};var o=n(9050),a={4:'media',5:'font-face',6:'page',7:'keyframes',11:'counter-style',12:'supports',13:'document',14:'font-feature-values',15:'viewport'},s=(0,o.keys)(a),l=['5','6','11','15'],c=['font-face','page','counter-style','viewport'],u=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=[],n=[],r=t.split(','),i=0,o=r.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i=t.length,o=t[i-1],a=o?o.split(/:(.+)/):[],s=a[1],l=n.atRule,u=n.selectorsAdd,f=n.mediaText,h=c.indexOf(l)>=0;return h&&(r.singleAtRule=1),l&&(r.atRuleType=l),u&&(r.selectorsAdd=u),f&&(r.mediaText=f),s&&(t[i-1]=a[0],r.state=s,a.splice(a.length-1,1)),r.selectors=t,r.style=e,r},p=function t(e){for(var n=[],r=e.cssRules||[],i=0,o=r.length;i=0;if(b)g=1,v=a[p],m=h(c);else if(s.indexOf(p)>=0){var w=t(c);m=h(c);for(var k=0,x=w.length;k0&&void 0!==arguments[0]?arguments[0]:{};return{parse:function(e){var n=this,r=[],i=t.parserCss,o=t.em,a=o&&o.get&&o.get('Editor');return(i?i(e,a):g(e)).forEach((function(t){return r=r.concat(n.checkNode(t))})),o&&o.trigger('parse:css',{input:e,output:r}),r},checkNode:function(t){var e=t,n=e.selectors,r=e.style;if((0,o.isString)(n)){var i=[],a=u(n),s=a.result,l=a.add.join(', '),c={atRule:t.atRule,mediaText:t.params};if(s.length?s.forEach((function(t){i.push(d(t,r,c))})):i.push(d([],r,c)),l)i[i.length-1].selectorsAdd=l;t=i}return t}}};var m=n(4119);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=b(b({},i),r)).Parser=this,t=new m.Z(n),e=new v(n),this.em=n.em,this.parserCss=e,this.parserHtml=t,this},getConfig:function(){return n},parseHtml:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.em,o=this.compTypes;return t.compTypes=i?i.get('DomComponents').getTypes():o,t.parse(n,e,r)},parseCss:function(t){return e.parse(t)},destroy:function(){var r=this;[n,t,e].forEach((function(t){return{}})),['em','parserCss','parserHtml'].forEach((function(t){return r[t]={}}))}}}},4119:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(4942),i=n(1002),o=n(9050),a='text/html',s=a;const l=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new DOMParser,i=n.htmlType||s,l=i===a,c=l?t:"
".concat(t,"
"),u=r.parseFromString(c,i);if(l){var f=u.head,h=u.body,d=f.querySelectorAll('script');(0,o.each)(d,(function(t){return h.appendChild(t)}));var p=[];(0,o.each)(f.children,(function(t){return p.push(t)})),(0,o.each)(p,(function(t,e){return h.insertBefore(t,h.children[e])})),e=h}else e=u.firstChild;return e};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},r={},i={};return(0,o.each)(e,(function(e,a){if(0===a.indexOf(t.modelAttrStart)){var s=a.replace(n,''),l=e.length,c=e&&(0,o.isString)(e),u=c&&e.substr(0,1),f=c&&e.substr(l-1);e='false'!==(e='true'===e||e)&&e;try{e='{'==u&&'}'==f||'['==u&&']'==f?JSON.parse(e):e}catch(t){}r[s]=e}else i[a]=e})),{props:r,attrs:i}},parseStyle:function(t){for(var e={},n=t.split(';'),r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},a=[],s=r.childNodes,l=0,c=s.length;l'!=="".concat(f.outerHTML).slice(-2)||(m.void=!0);var A=m.components;if(!m.type&&A){for(var R=1,Z=0,L=0;L2&&void 0!==arguments[2]?arguments[2]:{},c=e.em,f=c&&c.get('Config')||{},h={html:null,css:null},d=u(u({},t),s),p=u(u({},t.optionsHtml),{},{htmlType:(null===(a=t.optionsHtml)||void 0===a?void 0:a.htmlType)||t.htmlType},s),g=(0,o.isFunction)(d.parserHtml)?d.parserHtml(n,p):l(n,p),v=g.querySelectorAll('script'),m=v.length,y=(0,o.isUndefined)(f.allowScripts)?p.allowScripts:f.allowScripts;if(!y)for(;m--;)v[m].parentNode.removeChild(v[m]);if(p.allowUnsafeAttr||this.__clearUnsafeAttr(g),i){for(var b=g.querySelectorAll('style'),w=b.length,k='';w--;)k=b[w].innerHTML+k,b[w].parentNode.removeChild(b[w]);k&&(h.css=i.parse(k))}c&&c.trigger("".concat(r,":root"),{input:n,root:g});var x=this.parseNode(g,d),O=1!==x.length||e.returnArray?x:x[0];return h.html=O,c&&c.trigger(r,{input:n,output:h}),h},__clearUnsafeAttr:function(t){var e=this,n=t.attributes||[],r=t.childNodes||[],i=[];(0,o.each)(n,(function(t){var e=t.nodeName||'';0===e.indexOf('on')&&i.push(e)})),i.map((function(e){return t.removeAttribute(e)})),(0,o.each)(r,(function(t){return e.__clearUnsafeAttr(t)}))}}}},9697:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>S});var r=n(5861),i=n(2982),o=n(4942),a=n(7757),s=n.n(a),l=n(3168),c=n(5671),u=n(3144),f=n(9050);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:'A',n=t.selection(),r=n.anchorNode,i=n.focusNode,o=null==r?void 0:r.parentNode,a=null==i?void 0:i.parentNode;return(null==o?void 0:o.nodeName)==e||(null==a?void 0:a.nodeName)==e},y='data-selectme',b={bold:{name:'bold',icon:'B',attributes:{title:'Bold'},result:function(t){return t.exec('bold')}},italic:{name:'italic',icon:'I',attributes:{title:'Italic'},result:function(t){return t.exec('italic')}},underline:{name:'underline',icon:'U',attributes:{title:'Underline'},result:function(t){return t.exec('underline')}},strikethrough:{name:'strikethrough',icon:'S',attributes:{title:'Strike-through'},result:function(t){return t.exec('strikeThrough')}},link:{icon:"\n \n ",name:'link',attributes:{style:'font-size:1.4rem;padding:0 4px 2px;',title:'Link'},state:function(t){return t&&t.selection()&&m(t)?p:g},result:function(t){m(t)?t.exec('unlink'):t.insertHTML("").concat(t.selection(),""),{select:!0})}},wrap:{icon:"\n \n ",attributes:{title:'Wrap for style'},state:function(t){return null!=t&&t.selection()&&m(t,'SPAN')?v:g},result:function(t){!m(t,'SPAN')&&t.insertHTML("").concat(t.selection(),""),{select:!0})}}},w=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.Z)(this,t);var r=n.el,i=n.em;if(this.em=i,r._rte)return r._rte;r._rte=this,this.setEl(r),this.updateActiveActions=this.updateActiveActions.bind(this),this.__onKeydown=this.__onKeydown.bind(this),this.__onPaste=this.__onPaste.bind(this);var o=(n.actions||[]).map((function(t){var e=t;return'string'==typeof t?e=d({},b[t]):b[t.name]&&(e=d(d({},b[t.name]),t)),e})),a=o.length?o:Object.keys(b).map((function(t){return b[t]}));n.classes=d(d({},{actionbar:'actionbar',button:'action',active:'active',disabled:'disabled',inactive:'inactive'}),n.classes);var s=n.classes,l=n.actionbar;if(this.actionbar=l,this.settings=n,this.classes=s,this.actions=a,!l){var u=n.actionbarContainer;(l=document.createElement('div')).className=s.actionbar,u.appendChild(l),this.actionbar=l,a.forEach((function(t){return e.addAction(t)}))}return n.styleWithCSS&&this.exec('styleWithCSS'),this}return(0,u.Z)(t,[{key:"destroy",value:function(){this.el=0,this.doc=0,this.actionbar=0,this.settings={},this.classes={},this.actions=[]}},{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach((function(e){var n=e.btn,r=e.update,i=d({},t.classes),o=i.active,a=i.inactive,s=i.disabled,l=e.state,c=e.name,u=t.doc;if(n.className=n.className.replace(o,'').trim(),n.className=n.className.replace(a,'').trim(),n.className=n.className.replace(s,'').trim(),l)switch(l(t,u)){case p:n.className+=" ".concat(o);break;case g:n.className+=" ".concat(a);break;case v:n.className+=" ".concat(s)}else u.queryCommandSupported(c)&&u.queryCommandState(c)&&(n.className+=" ".concat(o));r&&r(t,e)}))}},{key:"enable",value:function(t){return this.enabled?this:this.__toggleEffects(!0,t)}},{key:"disable",value:function(){return this.__toggleEffects(!1)}},{key:"__toggleEffects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t?l.on:l.off,r=this.el,i=this.doc;if(this.actionbarEl().style.display=t?'':'none',r.contentEditable=!!t,n(r,'mouseup keyup',this.updateActiveActions),n(i,'keydown',this.__onKeydown),n(i,'paste',this.__onPaste),this.enabled=t,t){var o=e.event;if(this.syncActions(),this.updateActiveActions(),o){var a=null;if(i.caretRangeFromPoint){var s=(0,l.getPointerEvent)(o);a=i.caretRangeFromPoint(s.clientX,s.clientY)}else o.rangeParent&&(a=i.createRange()).setStart(o.rangeParent,o.rangeOffset);var c=i.getSelection();c.removeAllRanges(),a&&c.addRange(a)}r.focus()}return this}},{key:"__onKeydown",value:function(t){'Enter'===t.key&&(this.doc.execCommand('insertLineBreak'),t.preventDefault())}},{key:"__onPaste",value:function(t){var e=t.clipboardData||window.clipboardData,n=e.getData('text'),r=e.getData('text/html');if(n&&!r){t.preventDefault();var i=n.replace(/(?:\r\n|\r|\n)/g,'
');this.doc.execCommand('insertHTML',!1,i)}}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach((function(e){if(t.actionbar&&(!e.state||e.state&&e.state(t,t.doc)>=0)){var n=e.event||'click';e.btn["on".concat(n)]=function(n){e.result(t,e),t.updateActiveActions()}}}))}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,r=document.createElement('span'),i=t.icon,o=t.attributes||{};for(var a in r.className=this.classes.button,t.btn=r,o)r.setAttribute(a,o[a]);'string'==typeof i?r.innerHTML=i:r.appendChild(i),this.actionbarEl().appendChild(r),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.select,r=this.em,i=this.doc,o=this.el,a=i.getSelection();if(a&&a.rangeCount){var s=(0,l.getModel)(o),c=i.createElement('div'),u=a.getRangeAt(0);u.deleteContents(),(0,f.isString)(t)?c.innerHTML=t:t&&c.appendChild(t),Array.prototype.slice.call(c.childNodes).forEach((function(t){u.insertNode(t)})),a.removeAllRanges(),a.addRange(u),o.focus(),n&&s&&(s.once('rte:disable',(function(){var t=s.find("[".concat(y,"]"))[0];t&&(r.setSelected(t),t.removeAttributes(y))})),s.trigger('disable'))}}}]),t}();const k={stylePrefix:'rte-',adjustToolbar:1,actions:['bold','italic','underline','strikethrough','link','wrap']};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=O(O({},k),e),r=n.pStylePrefix;return r&&(n.stylePrefix=r+n.stylePrefix),this.config=n,this.pfx=n.stylePrefix,this.em=n.em,this.actions=n.actions||[],(0,l.hasWin)()?((t=document.createElement('div')).className="".concat(r,"rte-toolbar ").concat(r,"one-bg"),this.initRte(document.createElement('div')),(0,l.on)(t,'mousedown',(function(t){return t.stopPropagation()})),this):this},destroy:function(){var e,n,r,i=this;null===(e=this.globalRte)||void 0===e||e.destroy(),null===(n=this.customRte)||void 0===n||null===(r=n.destroy)||void 0===r||r.call(n),t=0,['actionbar','actions','em','config','globalRte','lastEl'].map((function(t){delete i[t]}))},postRender:function(n){var r=n.model.get('Canvas');t.style.pointerEvents='all',e(),r.getToolsEl().appendChild(t)},initRte:function(e){var n=this.globalRte,r=this.em,o=this.pfx,a=this.actionbar,s=this.config,l=t,c=this.actions||(0,i.Z)(s.actions),u={actionbar:"".concat(o,"actionbar"),button:"".concat(o,"action"),active:"".concat(o,"active"),inactive:"".concat(o,"inactive"),disabled:"".concat(o,"disabled")};return n?(n.em=r,n.setEl(e)):(n=new w({em:r,el:e,classes:u,actions:c,actionbar:a,actionbarContainer:l}),this.globalRte=n),n.actionbar&&(this.actionbar=n.actionbar),n.actions&&(this.actions=n.actions),n},add:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.name=t,null===(e=this.globalRte)||void 0===e||e.addAction(n,{sync:1})},get:function(t){var e,n;return null===(e=this.globalRte)||void 0===e||e.getActions().forEach((function(e){e.name==t&&(n=e)})),n},getAll:function(){var t;return null===(t=this.globalRte)||void 0===t?void 0:t.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var r=n.btn,i=e.indexOf(n);r.parentNode.removeChild(r),e.splice(i,1)}return n},getToolbarEl:function(){return t},updatePosition:function(){var e=this.em.get('Canvas'),n=t.style,r=e.getTargetToElementFixed(this.lastEl,t,{event:'rteToolbarPosUpdate',left:0});n.top=(r.top||0)+"px",n.left=(r.left||0)+"px"},enable:function(e,n,i){var o=this;return(0,r.Z)(s().mark((function r(){var a,l,c,u;return s().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.lastEl=e.el,a=o.customRte,l=o.em,c=e.getChildrenContainer(),t.style.display='',r.next=6,a?a.enable(c,n):o.initRte(c).enable(i);case 6:return u=r.sent,l&&(setTimeout(o.updatePosition.bind(o),0),l.off(C,o.updatePosition,o),l.on(C,o.updatePosition,o),l.trigger('rte:enable',e,u)),r.abrupt("return",u);case 9:case"end":return r.stop()}}),r)})))()},disable:function(t,n){var r=this.em,i=this.customRte,o=t.getChildrenContainer();i?i.disable(o,n):n&&n.disable(),e(),r&&(r.off(C,this.updatePosition,this),r.trigger('rte:disable',t,n))}}}},8835:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>H,evAdd:()=>L,evAll:()=>R,evCustom:()=>B,evPfx:()=>Z,evRemove:()=>I,evRemoveBefore:()=>F,evState:()=>V,evUpdate:()=>N});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2316);const c={stylePrefix:'clm-',appendTo:'',selectors:[],states:[{name:'hover'},{name:'active'},{name:'nth-of-type(2n)'}],escapeName:0,selectedName:0,iconAdd:'',iconSync:'',iconTagOn:'',iconTagOff:'',iconTagRemove:'',render:0,componentFirst:0,custom:!1};var u=n(9985),f=n(2030),h=n(5671),d=n(3144),p=n(9340),g=n(2963),v=n(1120);function m(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var y=function(t){(0,p.Z)(n,t);var e=m(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return{name:'',label:''}}},{key:"getName",value:function(){return this.get('name')}},{key:"getLabel",value:function(){return this.get('label')||this.getName()}}]),n}(l.Model);y.prototype.idAttribute='name';var b=n(168);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var k,x,O,C,S='contentEditable',P=function(t){(0,p.Z)(n,t);var e=w(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"template",value:function(){var t=this.pfx,e=this.model,n=this.config,r=e.get('label')||'';return"\n \n ").concat(r,"\n \n ").concat(n.iconTagRemove,"\n \n ")}},{key:"events",value:function(){return{'click [data-tag-remove]':'removeTag','click [data-tag-status]':'changeStatus','dblclick [data-tag-name]':'startEditTag','focusout [data-tag-name]':'endEditTag'}}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{};this.config=e,this.module=t.module,this.coll=t.coll||null,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.listenTo(this.model,'change:active',this.updateStatus)}},{key:"getInputEl",value:function(){return this.inputEl||(this.inputEl=this.el.querySelector('[data-tag-name]')),this.inputEl}},{key:"startEditTag",value:function(){var t=this.em,e=this.getInputEl();e[S]=!0,e.focus(),t&&t.setEditing(1)}},{key:"endEditTag",value:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=this.em,i=r&&r.get('SelectorManager');if(e[S]=!1,r&&r.setEditing(0),i){var o=i.escapeName(n);i.get(o)?e.innerText=t.get('label'):t.set({name:o,label:n})}}},{key:"changeStatus",value:function(){var t=this.model;t.set('active',!t.get('active'))}},{key:"removeTag",value:function(){this.module.removeSelected(this.model)}},{key:"updateStatus",value:function(){var t=this.model,e=this.$el,n=this.config,r=n.iconTagOn,i=n.iconTagOff,o=e.find('[data-tag-status]');t.get('active')?(o.html(r),e.removeClass('opac50')):(o.html(i),e.addClass('opac50'))}},{key:"render",value:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr('class',"".concat(t,"tag ").concat(e,"three-bg")),this.updateStatus(),this}}]),n}(l.View),_=n(8595);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var E=function(t){(0,p.Z)(n,t);var e=T(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"template",value:function(t){var e=t.labelInfo,n=t.labelHead,r=t.iconSync,i=t.iconAdd,o=t.pfx,a=t.ppfx;return"\n
\n
").concat(n,"
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n ").concat(i,"\n \n \n ").concat(r,"\n \n
\n
\n
").concat(e,":
\n
\n
")}},{key:"events",value:function(){return{'change [data-states]':'stateChanged','click [data-add]':'startNewTag','focusout [data-input]':'endNewTag','keyup [data-input]':'onInputKeyUp','click [data-sync-style]':'syncStyle'}}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=e.config||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.pfx+'tags',this.stateInputId=this.pfx+'states',this.stateInputC=this.pfx+'input-c',this.states=this.config.states||[];var n=this.config.em,r=this.collection;this.target=this.config.em;var i=e.module;this.module=i,this.em=n,this.componentChanged=(0,o.debounce)(this.componentChanged.bind(this)),this.checkSync=(0,o.debounce)(this.checkSync.bind(this));var a='component:toggled component:update:classes',s='component:update:classes change:state';this.listenTo(n,a,this.componentChanged),this.listenTo(n,'styleManager:update',this.componentChanged),this.listenTo(n,s,this.__handleStateChange),this.listenTo(n,'styleable:change change:device',this.checkSync),this.listenTo(r,'add',this.addNew),this.listenTo(r,'reset',this.renderClasses),this.listenTo(r,'remove',this.tagRemoved),this.listenTo(i.getAll(),i.events.state,(0,o.debounce)((function(){return t.renderStates()}))),this.delegateEvents()}},{key:"syncStyle",value:function(){var t,e=this.em,n=this.getTarget(),r=e.get('CssComposer'),i=this.getCommonSelectors({opts:{noDisabled:1}}),o=e.get('state'),a=e.getCurrentMedia(),s=[],l=r.get(i,o,a)||r.add(i,o,a);this.getTargets().forEach((function(e){var n=r.getIdRule(e.getId(),{state:o,mediaText:a});t=n.getStyle(),n.setStyle({}),s.push(n)})),t&&l.addStyle(t),e.trigger('component:toggled'),e.trigger('component:sync-style',{component:n,selectors:i,mediaText:a,rule:l,ruleComponents:s,state:o})}},{key:"tagRemoved",value:function(t){this.updateStateVis()}},{key:"addNew",value:function(t){this.addToClasses(t)}},{key:"startNewTag",value:function(){this.$addBtn.css({display:'none'}),this.$input.show().focus()}},{key:"endNewTag",value:function(){this.$addBtn.css({display:''}),this.$input.hide().val('')}},{key:"onInputKeyUp",value:function(t){13===t.keyCode?(t.preventDefault(),this.addNewTag(this.$input.val())):27===t.keyCode&&this.endNewTag()}},{key:"checkStates",value:function(){var t=this.em.getState(),e=this.getStates();e&&e.val(t)}},{key:"componentChanged",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets;this.updateSelection(e)}},{key:"updateSelection",value:function(t){var e=t||this.getTargets(),n=[];return(e=(0,o.isArray)(e)?e:[e])&&e.length&&(n=this.getCommonSelectors({targets:e}),this.checkSync({validSelectors:n})),this.collection.reset(n),this.updateStateVis(e),this.module.__trgCustom(),n}},{key:"getCommonSelectors",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets,n=t.opts,r=void 0===n?{}:n,i=e||this.getTargets();return this.module.__getCommonSelectors(i,r)}},{key:"_commonSelectors",value:function(){var t;return(t=this.module).__common.apply(t,arguments)}},{key:"checkSync",value:function(){var t,e=this.$btnSyncEl,n=this.config,r=this.collection,i=this.getTarget();if(i&&n.componentFirst&&r.length){var a=i.getStyle();t=!(0,o.isEmpty)(a)}e&&e[t?'show':'hide']()}},{key:"getTarget",value:function(){return this.target.getSelected()}},{key:"getTargets",value:function(){return this.target.getSelectedAll()}},{key:"updateStateVis",value:function(t){var e=this.em,n=e&&e.getConfig('avoidInlineStyle'),r=this.collection.length||n?'':'none';this.getStatesC().css('display',r),this.updateSelector(t)}},{key:"__handleStateChange",value:function(){this.updateSelector(this.getTargets())}},{key:"updateSelector",value:function(t){var e=this,n=this.el.querySelector('[data-selected]'),r=[],i=t||this.getTargets();(i=(0,o.isArray)(i)?i:[i]).forEach((function(t){return r.push(e.__getName(t))})),n&&(n.innerHTML=r.join(', ')),this.checkStates()}},{key:"__getName",value:function(t){var e,n=this.pfx,r=this.config,i=this.em,a=r.selectedName,s=r.componentFirst;if((0,o.isString)(t))e=(0,_.Z)(k||(k=(0,b.Z)(["",""])),n,t);else{var l=t&&t.get&&t.getSelectors();if(!l)return;var c=l.getStyleable(),u=i.get('state'),f=t.getId?(0,_.Z)(x||(x=(0,b.Z)(["","\n #",""])),n,t.getName(),n,t.getId()):'';e=(e=this.collection.getFullString(c))?(0,_.Z)(O||(O=(0,b.Z)(["",""])),n,e):t.get('selectorsAdd')||f,e=s&&f?f:e,e+=u?(0,_.Z)(C||(C=(0,b.Z)([":",""])),n,u):'',e=a?a({result:e,state:u,target:t}):e}return e&&"").concat(e,"")}},{key:"stateChanged",value:function(t){var e=this.em,n=t.target.value;e.set('state',n)}},{key:"addNewTag",value:function(t){var e=t.trim();e&&(this.module.addSelected({label:e}),this.endNewTag())}},{key:"addToClasses",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.getClasses(),i=new P({model:t,config:this.config,coll:this.collection,module:this.module}).render().el;return n?n.appendChild(i):r.append(i),i}},{key:"renderClasses",value:function(){var t=this,e=document.createDocumentFragment(),n=this.getClasses();n.empty(),this.collection.each((function(n){return t.addToClasses(n,e)})),n.append(e)}},{key:"getClasses",value:function(){return this.$el.find('[data-selectors]')}},{key:"getStates",value:function(){if(!this.$states){var t=this.$el.find('[data-states]');this.$states=t[0]&&t}return this.$states}},{key:"getStatesC",value:function(){return this.$statesC||(this.$statesC=this.$el.find('#'+this.stateInputC)),this.$statesC}},{key:"renderStates",value:function(){var t=this.module,e=this.em,n=e.t('selectorManager.emptyState'),r=t.getStates().map((function(t){var n=e.t("selectorManager.states.".concat(t.id))||t.getLabel()||t.id;return"")})).join(''),i=this.getStates();i&&i.html("").concat(r)),this.checkStates()}},{key:"render",value:function(){var t=this.em,e=this.pfx,n=this.ppfx,r=this.config,i=this.$el,o=this.el,a=r.render,s={iconSync:r.iconSync,iconAdd:r.iconAdd,labelHead:t.t('selectorManager.label'),labelInfo:t.t('selectorManager.selected'),ppfx:n,pfx:e,el:o};i.html(this.template(s));var l=a&&a(s);return l&&l!==o&&i.empty().append(l),this.$input=i.find('[data-input]'),this.$addBtn=i.find('[data-add]'),this.$classes=i.find('#'+e+'tags-c'),this.$btnSyncEl=i.find('[data-sync-style]'),this.$input.hide(),this.renderStates(),this.renderClasses(),i.attr('class',"".concat(this.className," ").concat(n,"one-bg ").concat(n,"two-color")),this}}]),n}(l.View);function j(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(c,e);var n=this.getConfig(),r=n.em,i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),this.all=new f.Z(n.selectors),this.selected=new f.Z([],{em:r,config:n}),this.states=new l.Collection(n.states,{model:y}),this.model=new l.Model({cFirst:n.componentFirst,_undo:!0}),this.__initListen({collections:[this.states,this.selected],propagate:[{entity:this.states,event:this.events.state}]}),r.on('change:state',(function(t,e){return r.trigger(V,e)})),this.model.on('change:cFirst',(function(t,e){return r.trigger('selector:type',e)}));var o='component:toggled component:update:classes change:device styleManager:update selector:state selector:type';return this.model.listenTo(r,o,(function(){return t.__update()})),this},__update:(0,o.debounce)((function(){this.__trgCustom()})),__trgCustom:function(t){this.em.trigger(this.events.custom,this.__customData(t))},__customData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.container;return{states:this.getStates(),selected:this.getSelected(),container:e}},postRender:function(){this.__appendTo(),this.__trgCustom()},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.em.get('StyleManager').select(n,e),i=this.selectorTags,o=r.filter((function(t){return t})).map((function(t){return(0,a.isComponent)(t)||(0,a.isRule)(t)&&!t.get('selectorsAdd')?t:t.getSelectorsString()}));return i&&i.componentChanged({targets:o}),this},addSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=D({},e);(0,o.isObject)(t)?r=t:r.name=t,M(r.name)?(r.name=r.name.substr(1),r.type=u.Z.TYPE_ID):A(r.name)&&(r.name=r.name.substr(1)),r.label&&!r.name&&(r.name=this.escapeName(r.label));var i=r.name,a=this.getConfig(),s=this.getAll(),l=i?this.get(i,r.type):s.where(r)[0];return l||s.add(r,D(D({},n),{},{config:a}))},getSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u.Z.TYPE_CLASS;return M(t)?(t=t.substr(1),e=u.Z.TYPE_ID):A(t)&&(t=t.substr(1)),this.getAll().where({name:t,type:e})[0]},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isString)(t)?{}:n;return(0,o.isArray)(t)?t.map((function(t){return e.addSelector(t,n,r)})):this.addSelector(t,n,r)},addClass:function(t){var e=this,n=[];return(0,o.isString)(t)&&(t=t.trim().split(' ')),t.forEach((function(t){return n.push(e.addSelector(t))})),n},get:function(t,e){var n=this;if((0,o.isArray)(t)){var r=[];return t.map((function(t){return n.getSelector(t)})).filter((function(t){return t})).forEach((function(t){return r.indexOf(t)<0&&r.push(t)})),r}return this.getSelector(t,e)||null},remove:function(t,e){return this.__remove(t,e)},setState:function(t){return this.em.setState(t),this},getState:function(){return this.em.getState()},getStates:function(){return(0,r.Z)(this.states.models)},setStates:function(t,e){return this.states.reset(t,e)},getSelected:function(){return this.__getCommon()},addSelected:function(t){var e=this.add(t);this.em.getSelectedAll().forEach((function(t){t.getSelectors().add(e)}))},removeSelected:function(t){this.em.getSelectedAll().forEach((function(e){!t.get('protected')&&e&&e.getSelectors().remove(t)}))},getSelectedTargets:function(){return this.em.get('StyleManager').getSelectedAll()},setComponentFirst:function(t){this.getConfig().componentFirst=t,this.model.set({cFirst:t})},getComponentFirst:function(){return this.getConfig().componentFirst},escapeName:function(t){var e=this.getConfig().escapeName;return e?e(t):u.Z.escapeName(t)},render:function(t){this.em;var e=this.selectorTags,n=this.getConfig(),r=e&&e.el;return this.selected.reset(t),this.selectorTags=new E({el:r,collection:this.selected,module:this,config:n}),this.selectorTags.render().el},destroy:function(){var t=this.selectorTags;this.model.stopListening(),this.__destroy(),t&&t.remove(),this.selectorTags={}},__getCommon:function(){return this.__getCommonSelectors(this.em.getSelectedAll())},__getCommonSelectors:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.map((function(t){return t.getSelectors&&t.getSelectors().getValid(e)})).filter(Boolean);return this.__common.apply(this,(0,r.Z)(n))},__common:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r=0})):n.slice(1).reduce((function(e,n){return t.__common(e,n)}),n[0]):[]}})}},9985:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(2316);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"defaults",value:function(){return{name:'',label:'',type:1,active:!0,private:!1,protected:!1,_undo:!0}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.config,i=void 0===r?{}:r,o=this.get('name'),a=this.get('label');o?a||this.set('label',o):this.set('name',a);var s=this.get('name'),l=i.escapeName,c=l?l(s):n.escapeName(s);this.set('name',c),this.em=i.em}},{key:"isId",value:function(){return 2===this.get('type')}},{key:"isClass",value:function(){return 1===this.get('type')}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.escape,n=this.get('name'),r='';switch(this.get('type')){case 1:r='.';break;case 2:r='#'}return r+(e?e(n):n)}},{key:"toString",value:function(){return this.getFullName()}},{key:"getLabel",value:function(){return this.get('label')}},{key:"setLabel",value:function(t){return this.set('label',t)}},{key:"getActive",value:function(){return this.get('active')}},{key:"setActive",value:function(t){return this.set('active',t)}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=c.Model.prototype.toJSON.call(this,[t]),r=(0,l.result)(this,'defaults');if(e&&e.getConfig('avoidDefaults')){(0,l.forEach)(r,(function(t,e){n[e]===t&&delete n[e]})),n.label===n.name&&delete n.label;var i=(0,l.keys)(n).length;1===i&&n.name&&(n=n.name),2===i&&n.name&&n.type&&(n=this.getFullName())}return n}}]),n}(c.Model);f.prototype.idAttribute='name',f.TYPE_CLASS=1,f.TYPE_ID=2,f.escapeName=function(t){return"".concat(t).trim().replace(/([^a-z0-9\w-\:]+)/gi,'-')}},2030:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(2316),u=n(9985);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function t(e,n){return e.reduce((function(r,i,o){return r.concat(t(e.slice(o+1),"".concat(n).concat(i)))}),[n])},d=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"modelId",value:function(t){return"".concat(t.name,"_").concat(t.type||u.Z.TYPE_CLASS)}},{key:"getStyleable",value:function(){return(0,l.filter)(this.models,(function(t){return t.get('active')&&!t.get('private')}))}},{key:"getValid",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDisabled;return(0,l.filter)(this.models,(function(t){return!t.get('private')})).filter((function(t){return e?t.get('active'):1}))}},{key:"getFullString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t||this;return r.forEach((function(t){return n.push(t.getFullName(e))})),n.join('').trim()}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.combination,n=t.array,r=[],i=this.map((function(e){return e.getFullName(t)})).sort();return e?i.forEach((function(t,e){r=r.concat(h(i.slice(e+1),t))})):r=i,n?r:e?r.join(','):r.join('')}}]),n}(c.Collection);d.prototype.model=u.Z},1311:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r=n(5861),i=n(4942),o=n(7757),a=n.n(o),s=n(9075);const l={id:'gjs-',type:'local',autosave:!0,autoload:!0,recovery:!1,stepsBeforeSave:1,onStore:function(t){return t},onLoad:function(t){return t},options:{local:{key:'gjsProject',checkLocal:!0},remote:{headers:{},urlStore:'',urlLoad:'',contentTypeJson:!0,fetchOptions:'',credentials:'include',onStore:function(t){return t},onLoad:function(t){return t}}}};var c=n(5671),u=n(3144),f=n(3168),h=function(){function t(){(0,c.Z)(this,t)}var e,n;return(0,u.Z)(t,[{key:"store",value:(n=(0,r.Z)(a().mark((function t(e){var n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.length>1&&void 0!==r[1]?r[1]:{},this.hasLocal(n,!0)&&localStorage.setItem(n.key,JSON.stringify(e));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(){var e,n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},n={},this.hasLocal(e,!0)&&(n=JSON.parse(localStorage.getItem(e.key)||'{}')),t.abrupt("return",n);case 4:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"hasLocal",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if(t.checkLocal&&(!(0,f.hasWin)()||!localStorage)){if(e)throw new Error('localStorage not available');return!1}return!0}}]),t}(),d=n(9050),p=n(7644);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e1&&void 0!==r[1]?r[1]:{},t.next=3,this.request(n.urlStore,this.__props(n,e),n);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(e){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.request(e.urlLoad,this.__props(e),e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"request",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,p.Z)(t,e).then((function(t){var e=t.text();return 1==(t.status/200|0)?e:e.then(Promise.reject)})).then((function(t){var e=t&&(0,d.isString)(t);return n.contentTypeJson&&e?JSON.parse(t):t}))}},{key:"__props",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=e.contentTypeJson,i=e.headers||{},o=e.fetchOptions||{},a='X-Requested-With',s='Content-Type';if((0,d.isUndefined)(i[a])&&(i[a]='XMLHttpRequest'),(0,d.isUndefined)(i[s])&&r&&(i[s]='application/json; charset=utf-8'),n)if(r)t=JSON.stringify(n);else for(var l in t=new FormData,n)t.append(l,n[l]);var c={method:t?'POST':'GET',credentials:e.credentials,headers:i,body:t};return v(v({},c),(0,d.isFunction)(o)?o(c):o)}}]),t}();function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(l,t);var e=this.getConfig();return e._disable&&(e.type=0),this.storages={},this.add(C,new h(e)),this.add(S,new m(e)),this.setCurrent(e.type),this},isAutosave:function(){return!!this.getConfig().autosave},setAutosave:function(t){return this.getConfig().autosave=!!t,this},getStepsBeforeSave:function(){return this.getConfig().stepsBeforeSave},setStepsBeforeSave:function(t){return this.getConfig().stepsBeforeSave=t,this},add:function(t,e){return this.storages[t]=e,this},get:function(t){return this.storages[t]||null},getStorages:function(){return this.storages},getCurrent:function(){return this.getConfig().currentStorage},setCurrent:function(t){return this.getConfig().currentStorage=t,this},getCurrentStorage:function(){return this.get(this.getCurrent())},getStorageOptions:function(t){return this.getCurrentOptions(t)},store:function(t){var e=arguments,n=this;return(0,r.Z)(a().mark((function r(){var i,o,s,l,c;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i=e.length>1&&void 0!==e[1]?e[1]:{},o=n.getCurrentStorage(),s=b(b({},n.getCurrentOptions()),i),l=n.getRecoveryStorage(),c=n.getCurrentOptions(C),r.prev=5,r.next=8,n.__exec(o,s,t);case 8:if(r.t0=l,!r.t0){r.next=12;break}return r.next=12,n.__exec(l,c,{});case 12:case 19:r.next=22;break;case 14:if(r.prev=14,r.t1=r.catch(5),!l){r.next=21;break}return r.next=19,n.__exec(l,c,t);case 21:throw r.t1;case 22:return r.abrupt("return",t);case 23:case"end":return r.stop()}}),r,null,[[5,14]])})))()},load:function(){var t=arguments,e=this;return(0,r.Z)(a().mark((function n(){var r,i,o,s,l,c;return a().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.getCurrentStorage(),o=b(b({},e.getCurrentOptions()),r),!(s=e.getRecoveryStorage())){n.next=17;break}return n.next=7,e.__exec(s,e.getCurrentOptions(C));case 7:if(c=n.sent,(0,d.isEmpty)(c)){n.next=17;break}return n.prev=9,n.next=12,e.__askRecovery();case 12:l=c,n.next=17;break;case 15:n.prev=15,n.t0=n.catch(9);case 17:if(l){n.next=21;break}return n.next=20,e.__exec(i,o);case 20:l=n.sent;case 21:return n.abrupt("return",l||{});case 22:case"end":return n.stop()}}),n,null,[[9,15]])})))()},__askRecovery:function(){var t=this.em,e=this.getRecovery();return new Promise((function(n,r){(0,d.isFunction)(e)?e(n,r,null==t?void 0:t.getEditor()):confirm(null==t?void 0:t.t('storageManager.recover'))?n():r()}))},getRecovery:function(){return this.getConfig().recovery},getRecoveryStorage:function(){return this.getRecovery()&&this.getCurrent()===S&&this.get(C)},__exec:function(t,e,n){var i=this;return(0,r.Z)(a().mark((function r(){var o,s,l,c,u,f,h,d;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n?'store':'load',s=i.getConfig(),l=s.onStore,c=s.onLoad,i.onStart(o,n),t){r.next=5;break}return r.abrupt("return",n||{});case 5:if(r.prev=5,h=null===(f=i.em)||void 0===f?void 0:f.getEditor(),!n){r.next=31;break}if(r.t1=l,!r.t1){r.next=13;break}return r.next=12,l(n,h);case 12:r.t1=r.sent;case 13:if(r.t0=r.t1,r.t0){r.next=16;break}r.t0=n;case 16:if(d=r.t0,r.t3=e.onStore,!r.t3){r.next=22;break}return r.next=21,e.onStore(d,h);case 21:r.t3=r.sent;case 22:if(r.t2=r.t3,r.t2){r.next=25;break}r.t2=d;case 25:return d=r.t2,r.next=28,t.store(d,e);case 28:u=n,r.next=53;break;case 31:return r.next=33,t.load(e);case 33:if(u=r.sent,u=i.__clearKeys(u),r.t5=e.onLoad,!r.t5){r.next=40;break}return r.next=39,e.onLoad(u,h);case 39:r.t5=r.sent;case 40:if(r.t4=r.t5,r.t4){r.next=43;break}r.t4=u;case 43:if(u=r.t4,r.t7=c,!r.t7){r.next=49;break}return r.next=48,c(u,h);case 48:r.t7=r.sent;case 49:if(r.t6=r.t7,r.t6){r.next=52;break}r.t6=u;case 52:u=r.t6;case 53:i.onAfter(o,u),i.onEnd(o,u),r.next=61;break;case 57:throw r.prev=57,r.t8=r.catch(5),i.onError(o,r.t8),r.t8;case 61:return r.abrupt("return",u);case 62:case"end":return r.stop()}}),r,null,[[5,57]])})))()},__clearKeys:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getConfig(),n=new RegExp("^".concat(e.id)),r={};for(var i in t){var o=i.replace(n,'');r[o]=t[i]}return r},getCurrentOptions:function(t){var e=this.getConfig(),n=t||this.getCurrent();return e.options[n]||{}},onStart:function(t,e){var n=this.em;n&&(n.trigger(w),t&&n.trigger("".concat(w,":").concat(t),e))},onAfter:function(t,e){var n=this.em;n&&(n.trigger(k),n.trigger("".concat(k,":").concat(t),e),n.trigger("storage:".concat(t),e))},onEnd:function(t,e){var n=this.em;n&&(n.trigger(x),t&&n.trigger("".concat(x,":").concat(t),e))},onError:function(t,e){var n=this.em;n&&(n.trigger(O,e),t&&n.trigger("".concat(O,":").concat(t),e),this.onEnd(t,e))},canAutoload:function(){return this.getCurrentStorage()&&this.getConfig().autoload},destroy:function(){this.__destroy(),this.storages={}}})}},3096:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>_e,evAll:()=>de,evCustom:()=>Se,evLayerSelect:()=>Oe,evPfx:()=>pe,evProp:()=>be,evPropAdd:()=>we,evPropRemove:()=>ke,evPropUp:()=>xe,evSector:()=>ge,evSectorAdd:()=>ve,evSectorRemove:()=>me,evSectorUpdate:()=>ye,evTarget:()=>Ce});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2316),c=n.n(l);const u={sectors:[{name:'General',open:!1,properties:['display','float','position','top','right','left','bottom']},{name:'Flex',open:!1,properties:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,properties:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,properties:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow']},{name:'Decorations',open:!1,properties:['background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,properties:['opacity','transition']}],appendTo:'',stylePrefix:'sm-',custom:!1,hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!0,avoidComputed:['width','height']};var f=n(4925),h=n(5671),d=n(3144),p=n(9340),g=n(2963),v=n(1120),m=n(6475),y=["partial"];function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em;var r=this.get('id')||'',i=this.get('name')||this.get('label')||'';!this.get('property')&&this.set('property',(i||r).replace(/ /g,'-'));var o=this.get('property');!this.get('id')&&this.set('id',o),!i&&this.set('name',(0,a.capitalize)(o).replace(/-/g,' ')),this.on('change',this.__upTargets),n.callInit(this,t,e)}},{key:"__getParentProp",value:function(){var t,e;return null===(t=this.collection)||void 0===t||null===(e=t.opts)||void 0===e?void 0:e.parentProp}},{key:"__upTargets",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.em,s=a.get('StyleManager'),l=this.getName(),c=n.__clear,u=c?'':this.__getFullValue(n),f=this.__getParentProp(),h=this.changedAttributes(),d=(0,o.keys)(h).reduce((function(t,n){return t[n]=e.previous(n),t}),{}),p=[].concat((0,r.Z)((0,o.keys)(this.__getClearProps())),['__p']),g=(0,o.keys)(h),v=!n.__up&&!f&&(c||p.some((function(t){return g.indexOf(t)>=0}))),m=this.get('onChange'),y={property:this,from:d,to:h,value:u,opts:n};s.__trgEv(s.events.propertyUpdate,y),m&&m(y),v&&this.__upTargetsStyle((0,i.Z)({},l,u),n)}},{key:"__upTargetsStyle",value:function(t,e){var n,r=null===(n=this.em)||void 0===n?void 0:n.get('StyleManager');null==r||r.addStyleTargets(w(w({},t),{},{__p:!!e.avoidStore}),e)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.noTarget&&(e.__up=!0);var n=e.partial,r=(0,f.Z)(e,y);return t.__p=!(!r.avoidStore&&!n),this.set(t,w(w({},r),{},{avoidStore:t.__p}))}},{key:"up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.set(t,w(w({},e),{},{__up:!0}))}},{key:"init",value:function(){}},{key:"getId",value:function(){return this.get('id')}},{key:"getType",value:function(){return this.get('type')}},{key:"getName",value:function(){return this.get('property')}},{key:"getLabel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('name')||this.get('label');return r&&(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.properties.".concat(i)))||o}},{key:"getValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDefault,n=this.get('value');return this.hasValue()||e?n:this.getDefaultValue()}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget(),r=this.get('value');return!(0,o.isUndefined)(r)&&''!==r&&!n}},{key:"hasValueParent",value:function(){return this.hasValue()&&!this.hasValue({noParent:!0})}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=t.camelCase?(0,a.camelCase)(e):e;return(0,i.Z)({},n,this.__getFullValue(t))}},{key:"getDefaultValue",value:function(){var t=this.get('default');return"".concat((0,o.isUndefined)(t)?this.get('defaults'):t)}},{key:"upValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null===t||''===t?this.__getClearProps():this.__parseValue(t,e);return this._up(n,e)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._up(this.__getClearProps(),w(w({},t),{},{__clear:!0}))}},{key:"canClear",value:function(){var t=this.getParent();return t?t.__canClearProp(this):this.hasValue({noParent:!0})}},{key:"getParent",value:function(){return this.__getParentProp()||null}},{key:"isFull",value:function(){return!!this.get('full')}},{key:"__parseValue",value:function(t,e){return this.parseValue(t,e)}},{key:"__getClearProps",value:function(){return{value:''}}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t),i=!e;!i&&this.set({value:void 0},{avoidStore:i,silent:!0}),this.set(r,w({avoidStore:i},n))}},{key:"setValueFromInput",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,w(w({},n),{},{fromInput:1}))}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={value:t},r='!important';if((0,o.isString)(t)&&-1!==t.indexOf(r)&&(n.value=t.replace(r,'').trim(),n.important=1),!this.get('functionName')&&!e.complete)return n;var i=[],a="".concat(n.value),s=a.indexOf('(')+1,l=a.lastIndexOf(')'),c=a.substring(0,s-1);if(c&&(n.functionName=c),i.push(s),l>=0&&i.push(l),n.value=String.prototype.substring.apply(a,i),e.numeric){var u=parseFloat(n.value);n.unit=n.value.replace(u,''),n.value=u}return n}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.withDefault;return!this.hasValue()&&e?this.getDefaultValue():this.getFullValue()}},{key:"getFullValue",value:function(t){var e=this.get('functionName'),n=this.getDefaultValue(),r=(0,o.isUndefined)(t)?this.get('value'):t,i=!(0,o.isUndefined)(r)&&''!==r;if(r&&n&&r===n)return n;if(e&&i){var a='url'===e?"'".concat(r.replace(/'/g,''),"'"):r;r="".concat(e,"(").concat(a,")")}return i&&this.get('important')&&(r="".concat(r," !important")),r||''}},{key:"__setParentTarget",value:function(t){this.__parentTarget=t}},{key:"getParentTarget",value:function(){return this.__parentTarget||null}},{key:"__parseFn",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=t.indexOf('(')+1,n=t.lastIndexOf(')');return{name:t.substring(0,e-1).trim(),value:String.prototype.substring.apply(t,[e,n>=0?n:void 0]).trim()}}},{key:"__checkVisibility",value:function(t){var e=t.target,n=t.component,r=t.sectors,i=n||e;if(!i)return!1;var s=this.getId(),l=this.getName(),c=this.get('toRequire'),u=this.get('requires'),f=this.get('requiresParent'),h=i.get('unstylable'),d=i.get('stylable-require'),p=i.get('stylable');if((0,o.isArray)(p)&&(p=p.indexOf(l)>=0),(0,o.isArray)(h)&&(p=h.indexOf(l)<0),c&&(p=!e||d&&(d.indexOf(s)>=0||d.indexOf(l)>=0)),r&&u){var g=(0,o.keys)(u);r.forEach((function(t){t.getProperties().forEach((function(t){if((0,o.includes)(g,t.id)){var e=u[t.id];p=p&&(0,o.includes)(e,t.get('value'))}}))}))}if(f){var v=n&&n.parent(),m=v&&v.getEl();if(m){var y=(0,a.hasWin)()?window.getComputedStyle(m):{};(0,o.each)(f,(function(t,e){p=p&&y[e]&&(0,o.includes)(t,y[e])}))}else p=!1}return!!p}}]),n}(l.Model);function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};t.prototype.initialize.apply(e,[n,w(w({},r),{},{skipInit:1})])},x.callInit=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.skipInit&&t.init(e,n)},x.getDefaults=function(){return(0,o.result)(this.prototype,'defaults')},x.prototype.defaults={name:'',property:'',type:'',defaults:'',info:'',value:'',icon:'',functionName:'',status:'',visible:!0,fixedValues:['initial','inherit'],onChange:null,full:0,important:0,toRequire:0,requires:null,requiresParent:null};var P=function(t){return'integer'===t||'number'===t},_=function(t){(0,p.Z)(n,t);var e=S(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return C(C({},x.getDefaults()),{},{detached:!1,properties:[],separator:' ',join:null,fromStyle:null,toStyle:null,full:!0})}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};x.callParentInit(x,this,t,e);var n=this.em,r=new Ht(this.get('properties')||[],{em:n,parentProp:this});this.set('properties',r,{silent:1}),this.listenTo(r,'change',this.__upProperties),x.callInit(this,t,e)}},{key:"getProperties",value:function(){return(0,r.Z)(this.get('properties').models)}},{key:"getProperty",value:function(t){return this.get('properties').filter((function(e){return e.getId()===t||e.getName()===t}))[0]||null}},{key:"getPropertyAt",value:function(t){return this.get('properties').at(t)}},{key:"isDetached",value:function(){return!!this.get('detached')}},{key:"getValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.byName;return this.getProperties().reduce((function(t,n){return t[e?n.getName():n.getId()]="".concat(n.__getFullValue()),t}),{})}},{key:"getSeparator",value:function(){return this.getSplitSeparator()}},{key:"getJoin",value:function(){return this.__getJoin()}},{key:"getStyleFromProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.__getJoin(),r=this.get('toStyle'),o=this.getValues(),a={};if(r)a=r(o,{join:n,name:e,property:this});else if(o=this.getValues({byName:!0}),this.isDetached())a=o;else{var s=this.getProperties().map((function(t){return t.__getFullValue({withDefault:1})})).filter(Boolean).join(n);a=(0,i.Z)({},e,s)}return this.isDetached()?a[e]='':(a[e]=a[e]||'',a=C(C({},a),this.getProperties().reduce((function(t,e){return t[e.getName()]='',t}),{}))),t.camelCase?Object.keys(a).reduce((function(t,e){return t[camelCase(e)]=a[e],t}),{}):a}},{key:"getSplitSeparator",value:function(){return new RegExp("".concat(this.get('separator'),"(?![^\\(]*\\))"))}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__up&&!e.__clearIn){var n=this.__getParentProp();if(n)return n.__upProperties(this,e);this.__upTargetsStyleProps(e,t)}}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.getStyleFromProps();if(this.isDetached()&&e){var r=e.getName();n=(0,i.Z)({},r,n[r])}this.__upTargetsStyle(n,t)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__setProperties(this.__getSplitValue(t.value),e),x.prototype._up.call(this,t,e)}},{key:"getStyle",value:function(t){return this.getStyleFromProps(t)}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isDetached()||t.__clear?'':this.getStyleFromProps()[this.getName()]||''}},{key:"__getJoin",value:function(){var t=this.get('join');return(0,o.isString)(t)?t:this.get('separator')}},{key:"__styleHasProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.getProperties(),i=n.map((function(t){return t.getName()})),a=[e].concat((0,r.Z)(i));return a.some((function(e){return!(0,o.isUndefined)(t[e])&&''!==t[e]}))}},{key:"__splitValue",value:function(t,e){return t.split(e).map((function(t){return t.trim()})).filter(Boolean)}},{key:"__splitStyleName",value:function(t,e,n){return this.__splitValue(t[e]||'',n)}},{key:"__getSplitValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.byName,r=this.getProperties(),i=4===r.length&&r.every((function(t){return P(t.getType())})),a=this.__splitValue(t,this.getSplitSeparator()),s={};return r.forEach((function(t,e){var r=a[e],l=(0,o.isUndefined)(r)?'':r;if(i){var c=a.length;l=a[e]||a[e%c+(1!=c&&c%2?1:0)]||l}var u=n?t.getName():t.getId();s[u]=l||''})),s}},{key:"__getPropsFromStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.__styleHasProps(t))return null;var n=e.byName,r=this.getName(),i=this.getProperties(),a=this.getSplitSeparator(),s=this.get('fromStyle'),l=s?s(t,{property:this,name:r,separator:a}):{};return s||(l=this.__getSplitValue(t[r]||'',{byName:n}),i.forEach((function(e){var r=t[e.getName()],i=n?e.getName():e.getId();(0,o.isUndefined)(r)||''===r||(l[i]=r)}))),l}},{key:"__setProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.getProperties().forEach((function(n){var r=t[n.getId()];n.__getFullValue()!==r&&n.upValue(r,e)}));var n=(0,o.keys)(t).map((function(e){return t[e]})).join(' ');this.set('value',n,{silent:!0})}},{key:"clear",value:function(){var t=this;return this.getProperties().map((function(e){return e.clear({__clearIn:!t.isDetached()})})),x.prototype.clear.call(this)}},{key:"hasValue",value:function(t){return this.getProperties().some((function(e){return e.hasValue(t)}))}},{key:"getFullValue",value:function(){return this.__getFullValue()}},{key:"__canClearProp",value:function(t){return this.isDetached()&&t.hasValue({noParent:!0})}}]),n}(x);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('values');return t.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getLabel",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.getLayerLabel(this)}},{key:"isSelected",value:function(){var t;return(null===(t=this.prop)||void 0===t?void 0:t.getSelectedLayer())===this}},{key:"select",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.selectLayer(this)}},{key:"remove",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.removeLayer(this)}},{key:"move",value:function(t){var e;return null===(e=this.prop)||void 0===e?void 0:e.moveLayer(this,t)}},{key:"getStylePreview",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return null===(t=this.prop)||void 0===t?void 0:t.getStylePreview(this,e)}},{key:"hasPreview",value:function(){var t;return!(null===(t=this.prop)||void 0===t||!t.get('preview'))}},{key:"upValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.set('values',E(E({},this.getValues()),t))}}]),n}(l.Model);function M(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var A=function(t){(0,p.Z)(n,t);var e=M(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prop=e.prop}}]),n}(l.Collection);A.prototype.model=D;var R=["__layers"];function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function L(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.callParentInit(_,this,t,e);var n=this.get('layers'),r=new A(n,{prop:this});r.property=this,r.properties=this.get('properties'),this.set('layers',r,{silent:!0}),this.on('change:selectedLayer',this.__upSelected),this.listenTo(r,'add remove',this.__upLayers),_.callInit(this,t,e)}},{key:"getLayers",value:function(){return this.__getLayers().models}},{key:"__getLayers",value:function(){return this.get('layers')}},{key:"getLayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.__getLayers().at(t)||null}},{key:"getSelectedLayer",value:function(){var t=this.get('selectedLayer');return t&&t.getIndex()>=0?t:null}},{key:"selectLayer",value:function(t){return this.set('selectedLayer',t,{__select:!0})}},{key:"selectLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e&&this.selectLayer(e)}},{key:"moveLayer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t?t.getIndex():-1;n>=0&&(0,o.isNumber)(e)&&e>=0&&e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};this.getProperties().forEach((function(e){var r=e.getId(),i=t[r];n[r]=(0,o.isUndefined)(i)?e.getDefaultValue():i}));var r=this.get('layers').push({values:n},e);return r}},{key:"removeLayer",value:function(t){return this.get('layers').remove(t)}},{key:"removeLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e?this.removeLayer(e):null}},{key:"getLayerLabel",value:function(t){var e='';if(t){var n=this.get('layerLabel'),r=t.getValues(),i=t.getIndex();if(n)e=n(t,{index:i,values:r,property:this});else{var o=[];this.getProperties().map((function(t){o.push(r[t.getId()])})),e=o.filter(Boolean).join(' ')}}return e}},{key:"getStyleFromLayer",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.__getJoin(),s=this.__getJoinLayers(),l=this.get('toStyle'),c=this.getName(),u=t.getValues();if(l)e=l(u,{join:r,joinLayers:s,name:c,layer:t,property:this});else{var f=this.getProperties().map((function(t){var e=t.getName(),r=u[t.getId()],i=(0,o.isUndefined)(r)?t.getDefaultValue():r;if(n.number&&P(t.getType())){var a=t.parseValue(r,n.number);i="".concat(a.value).concat(a.unit)}return{name:e,value:i}}));e=this.isDetached()?f.reduce((function(t,e){return t[e.name]=e.value,t}),{}):(0,i.Z)({},this.getName(),f.map((function(t){return t.value})).join(r))}return n.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getStylePreview",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=this.get('preview');return r&&(n=this.getStyleFromLayer(t,e)),n}},{key:"getLayerSeparator",value:function(){var t=this.get('layerSeparator');return(0,o.isString)(t)?new RegExp("".concat(t,"(?![^\\(]*\\))")):t}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getSelectedLayer();n&&(n.upValues((0,i.Z)({},t.getId(),t.__getFullValue())),e.__up||this.__upTargetsStyleProps(e))}},{key:"__upLayers",value:function(t,e,n){this.__upTargetsStyleProps(n||e)}},{key:"__upTargets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__select)return x.prototype.__upTargets.call(this,t,e)}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__upTargetsStyle(this.getStyleFromLayers(),t)}},{key:"__upTargetsStyle",value:function(t,e){return x.prototype.__upTargetsStyle.call(this,t,e)}},{key:"__upSelected",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noEvent,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em.get('StyleManager'),i=this.getSelectedLayer(),o=null==i?void 0:i.getValues();o&&this.getProperties().forEach((function(t){var e=o[t.getId()];t.__getFullValue()!==e&&t.upValue(e,L(L({},n),{},{__up:!0}))})),!e&&r.__trgEv(r.events.layerSelect,{property:this})}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.__layers,r=void 0===n?[]:n,i=(0,f.Z)(t,R);return!this.isDetached()&&this.__setLayers(r),this.__upSelected({noEvent:!0},e),x.prototype._up.call(this,i,e)}},{key:"__setLayers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.__getLayers(),n=t.map((function(t){return{values:t}}));e.length===n.length?n.map((function(t,n){var r;return null===(r=e.at(n))||void 0===r?void 0:r.upValues(t.values)})):this.__getLayers().reset(n),this.__upSelected({noEvent:!0})}},{key:"__parseValue",value:function(t){var e=this,n=this.parseValue(t);return n.__layers=t.split(I).map((function(t){return t.trim()})).map((function(t){return e.__parseLayer(t)})).filter(Boolean),n}},{key:"__parseLayer",value:function(t){var e=this.get('parseLayer'),n=t.split(F),r=this.getProperties();return e?e({value:t,values:n}):r.reduce((function(t,e,r){var i=n[r];return t[e.getId()]=(0,o.isUndefined)(i)?e.getDefaultValue():i,t}),{})}},{key:"__getLayersFromStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.__styleHasProps(e))return null;var n=this.getName(),r=this.getProperties(),a=this.getLayerSeparator(),s=this.get('fromStyle'),l=s?s(e,{property:this,name:n,separatorLayers:a}):[];if(!s){var c=this.__splitStyleName(e,n,a).map((function(e){return e.split(t.getSplitSeparator())})).map((function(t){var e={};return r.forEach((function(n,r){var i=t[r];e[n.getId()]=(0,o.isUndefined)(i)?n.getDefaultValue():i})),e}));r.forEach((function(n){var r=n.getId();t.__splitStyleName(e,n.getName(),a).map((function(t){return(0,i.Z)({},r,t||n.getDefaultValue())})).forEach((function(t,e){c[e]=c[e]?L(L({},c[e]),t):t}))})),l=c}return(0,o.isArray)(l)?l:[l]}},{key:"getStyle",value:function(t){return this.getStyleFromLayers(t)}},{key:"getStyleFromLayers",value:function(t){var e=this,n={},r=this.getName(),i=this.getLayers(),a=this.getProperties();if(i.map((function(n){return e.getStyleFromLayer(n,t)})).forEach((function(t){(0,o.keys)(t).map((function(e){n[e]||(n[e]=[]),n[e].push(t[e])}))})),(0,o.keys)(n).map((function(t){n[t]=n[t].join(e.__getJoinLayers())})),this.isDetached())n[r]='',!i.length&&a.map((function(t){n[t.getName()]=''}));else{var s=a.reduce((function(t,e){return t[e.getName()]='',t}),{});n[r]=n[r]||'',n=L(L({},n),s)}return n}},{key:"__getJoinLayers",value:function(){var t=this.get('layerJoin'),e=this.get('layerSeparator');return t||((0,o.isString)(e)?e:t)}},{key:"__getFullValue",value:function(){return this.get('detached')?'':this.getStyleFromLayers()[this.getName()]}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget();return this.getLayers().length>0&&!n}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.__getLayers().reset(),this.__upTargetsStyleProps(t),x.prototype.clear.call(this)}},{key:"__canClearProp",value:function(){return!1}}]),n}(_),V=["complete","partial"];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 z(t){for(var e=1;e
\n
\n ")}},{key:"templateLabel",value:function(t){var e=this.pfx,n=this.em,r=t.parent,i=t.attributes,o=i.icon,a=void 0===o?'':o,s=i.info,l=void 0===s?'':s,c=null==n?void 0:n.getConfig('icons'),u=(null==c?void 0:c.close)||'';return"\n \n ").concat(t.getLabel(),"\n \n ").concat(r?'':"
").concat(u,"
"),"\n ")}},{key:"templateInput",value:function(t){return"\n
\n \n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__change','__updateStyle');var e=t.config||{},n=e.em;this.config=e,this.em=n,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.__destroyFn=this.destroy?this.destroy.bind(this):function(){};var r=this.model;r.view=this,this.onValueChange=(0,o.debounce)(this.onValueChange.bind(this),10),this.updateStatus=(0,o.debounce)(this.updateStatus.bind(this)),this.listenTo(r,'destroy remove',this.remove),this.listenTo(r,'change:visible',this.updateVisibility),this.listenTo(r,'change:name change:className change:full',this.render),this.listenTo(r,'change:value',this.onValueChange),this.listenTo(n,'change:device',this.onValueChange);var i=this.init&&this.init.bind(this);i&&i()}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['em','input','$input','view'].forEach((function(e){return t[e]=null})),this.__destroyFn(this._getClbOpts())}},{key:"updateStatus",value:function(){var t,e=this.model,n=this.pfx,r=this.ppfx,i=this.config,o="".concat(r,"four-color"),a="".concat(r,"color-warn"),s=this.$el.children(".".concat(n,"label")),l=this.getClearEl(),c=l?l.style:{};s.removeClass("".concat(o," ").concat(a)),c.display='none',e.hasValue({noParent:!0})&&i.highlightChanged?(s.addClass(o),i.clearProperties&&(c.display='')):e.hasValue()&&i.highlightComputed&&s.addClass(a),null===(t=this.parent)||void 0===t||t.updateStatus()}},{key:"clear",value:function(t){t&&t.stopPropagation(),this.model.clear()}},{key:"getClearEl",value:function(){return this.clearEl||(this.clearEl=this.el.querySelector("[".concat(W,"]"))),this.clearEl}},{key:"inputValueChanged",value:function(t){t&&t.stopPropagation(),this.emit||this.model.upValue(t.target.value)}},{key:"onValueChange",value:function(t,e){this.setValue(this.model.getFullValue()),this.updateStatus()}},{key:"setValue",value:function(t){var e=this.model,n=(0,o.isUndefined)(t)||''===t?e.getDefaultValue():t;if(this.update)return this.__update(n);this.__setValueInput(n)}},{key:"__setValueInput",value:function(t){var e=this.getInputEl();e&&(e.value=t)}},{key:"getInputEl",value:function(){return this.input||(this.input=this.el.querySelector('input')),this.input}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"clearCached",value:function(){this.clearEl=null,this.input=null,this.$input=null}},{key:"__unset",value:function(){var t=this.unset&&this.unset.bind(this);t&&t(this._getClbOpts())}},{key:"__update",value:function(t){var e=this.update&&this.update.bind(this);e&&e(z(z({},this._getClbOpts()),{},{value:t}))}},{key:"__change",value:function(){for(var t=this.emit&&this.emit.bind(this),e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.complete,r=e.partial,i=((0,f.Z)(e,V),this.model),o=!1!==n&&!0!==r;(0,a.isObject)(t)?i.__upTargetsStyle(t,{avoidStore:!o}):i.upValue(t,{partial:!o})}},{key:"_getClbOpts",value:function(){var t=this.model;return{el:this.el,createdEl:this.createdEl,property:t,props:t.attributes,change:this.__change,updateStyle:this.__updateStyle}}},{key:"render",value:function(){this.clearCached();var t=this.pfx,e=this.model,n=this.el,r=this.$el,i=e.getName(),o=e.getType(),a=e.get('className')||'',s="".concat(t,"property"),l='number'===o?"".concat(t).concat(o," ").concat(t,"integer"):"".concat(t).concat(o);this.createdEl&&this.__destroyFn(this._getClbOpts()),r.empty().append(this.template(e)),r.find('[data-sm-label]').append(this.templateLabel(e));var c=this.create&&this.create.bind(this);this.createdEl=c&&c(this._getClbOpts()),r.find('[data-sm-fields]').append(this.createdEl||this.templateInput(e)),n.className="".concat(s," ").concat(l," ").concat(s,"__").concat(i," ").concat(a).trim(),n.className+=e.isFull()?" ".concat(s,"--full"):'';var u=this.onRender&&this.onRender.bind(this);u&&u(),this.setValue(e.getValue())}}]),n}(l.View);$.prototype.events=(0,i.Z)({change:'inputValueChanged'},"click [".concat(W,"]"),'clear');var q=n(827);function G(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var K=function(t){(0,p.Z)(n,t);var e=G(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||'',this.properties=[],this.parent=t.parent;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.render)}},{key:"addTo",value:function(t,e,n){this.add(t,null,n)}},{key:"add",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parent,i=this.config,o=e||this.el,a=new t.typeView({model:t,config:i});r&&(a.parent=r),a.render();var s=a.el;this.properties.push(a),(0,q.$Q)(o,s,n.at)}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.clearItems()}},{key:"clearItems",value:function(){this.properties.forEach((function(t){return t.remove()})),this.properties=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx;this.clearItems();var r=document.createDocumentFragment();return this.collection.forEach((function(e){return t.add(e,r)})),e.empty(),e.append(r),e.attr('class',"".concat(n,"properties")),this}}]),n}(l.View);function Y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function X(t){for(var e=1;e\n \n \n ")}},{key:"remove",value:function(){var t;null===(t=this.props)||void 0===t||t.remove(),$.prototype.remove.apply(this,arguments)}},{key:"onValueChange",value:function(){}},{key:"onRender",value:function(){var t=this.model,e=this.pfx,n=t.get('properties');if(n.length&&!this.props){var r=t.isDetached(),i=new K({config:X(X({},this.config),{},{highlightComputed:r,highlightChanged:r}),collection:n,parent:this});i.render(),this.$el.find("#".concat(e,"input-holder")).append(i.el),this.props=i}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.props=null}}]),n}($);function tt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var et=function(t){(0,p.Z)(n,t);var e=tt(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"events",value:function(){return{click:'select','click [data-close-layer]':'removeItem','mousedown [data-move-layer]':'initSorter','touchstart [data-move-layer]':'initSorter'}}},{key:"template",value:function(){var t=this.pfx,e=this.ppfx,n=this.em,r=null==n?void 0:n.getConfig('icons'),i=(null==r?void 0:r.close)||'',o=(null==r?void 0:r.move)||'';return"\n
\n
\n ").concat(o,"\n
\n
\n
\n
\n
\n
\n ").concat(i,"\n
\n
\n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.em=n.em,this.config=n,this.sorter=t.sorter,this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.propertyView=t.propertyView;var r=this.propertyView.model;this.listenTo(e,'destroy remove',this.remove),this.listenTo(e,'change:values',this.updateLabel),this.listenTo(r,'change:selectedLayer',this.updateVisibility),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data('model',e)}},{key:"initSorter",value:function(){var t;null===(t=this.sorter)||void 0===t||t.startSort(this.el)}},{key:"removeItem",value:function(t){t&&t.stopPropagation(),this.model.remove()}},{key:"select",value:function(){this.model.select()}},{key:"getPropertiesWrapper",value:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector('[data-properties]')),this.propsWrapEl}},{key:"getPreviewEl",value:function(){return this.previewEl||(this.previewEl=this.el.querySelector('[data-preview]')),this.previewEl}},{key:"getLabelEl",value:function(){return this.labelEl||(this.labelEl=this.el.querySelector('[data-label]')),this.labelEl}},{key:"updateLabel",value:function(){var t=this.model,e=t.getLabel();if(this.getLabelEl().innerHTML=e,t.hasPreview()){var n=this.getPreviewEl(),r=t.getStylePreview({number:{min:-3,max:3}}),i=(0,o.keys)(r).map((function(t){return"".concat(t,":").concat(r[t])})).join(';');n.setAttribute('style',i)}}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n=this.propertyView,r=this.getPropertiesWrapper(),i=e.isSelected();r.style.display=i?'':'none',this.$el[i?'addClass':'removeClass']("".concat(t,"active")),i&&r.appendChild(n.props.el)}},{key:"render",value:function(){var t=this.el,e=this.pfx,n=this.model;return t.innerHTML=this.template(),t.className="".concat(e,"layer"),n.hasPreview()&&(t.querySelector("[data-preview-box]").style.display=''),this.updateLabel(),this.updateVisibility(),this}}]),n}(l.View);function nt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var rt=function(t){(0,p.Z)(n,t);var e=nt(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=this.collection,n=t.config||{},r=n.em,i=n.stylePrefix||'',o=n.pStylePrefix||'';this.config=n,this.pfx=i,this.ppfx=o,this.propertyView=t.propertyView,this.className="".concat(i,"layers ").concat(o,"field"),this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.reset),this.items=[];var a=r?r.get('Utils'):'';this.sorter=a?new a.Sorter({container:this.el,ignoreViewChildren:1,containerSel:".".concat(i,"layers"),itemSel:".".concat(i,"layer"),pfx:n.pStylePrefix}):'',e.view=this,this.$el.data('model',e),this.$el.data('collection',e)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=e||null,i=this.propertyView,o=this.config,a=this.sorter,s=this.$el,l=new et({model:t,config:o,sorter:a,propertyView:i}),c=l.render().el;if(this.items.push(l),r)r.appendChild(c);else if(void 0!==n){var u='before';s.children().length===n&&(n--,u='after'),n<0?s.append(c):s.children().eq(n)[u](c)}else s.append(c);return c}},{key:"reset",value:function(t,e){this.clearItems(e),this.render()}},{key:"remove",value:function(){this.clearItems(),l.View.prototype.remove.apply(this,arguments)}},{key:"clearItems",value:function(){this.items.forEach((function(t){return t.remove()})),this.items=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.sorter,r=document.createDocumentFragment();return e.empty(),this.collection.forEach((function(e){return t.addToCollection(e,r)})),e.append(r),e.attr('class',this.className),n&&(n.plh=null),this}}]),n}(l.View);function it(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 ot(t){for(var e=1;e\n \n
\n \n ")}},{key:"init",value:function(){var t=this.model;this.listenTo(t.__getLayers(),'change reset',this.updateStatus)}},{key:"addLayer",value:function(){this.model.addLayer({},{at:0})}},{key:"setValue",value:function(){}},{key:"remove",value:function(){var t;null===(t=this.layersView)||void 0===t||t.remove(),Q.prototype.remove.apply(this,arguments)}},{key:"clearCached",value:function(){Q.prototype.clearCached.apply(this,arguments),this.layersView=null}},{key:"onRender",value:function(){var t=this.model,e=this.el,n=this.config,r=t.get('properties');if(r.length&&!this.props){var i=new K({config:ot(ot({},n),{},{highlightComputed:!1,highlightChanged:!1}),collection:r,parent:this});i.render();var o=new rt({collection:t.__getLayers(),config:n,propertyView:this});o.render(),e.querySelector('[data-layers-wrapper]').appendChild(o.el),this.props=i,this.layersView=o}}}]),n}(Q);function lt(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 ct(t){for(var e=1;e\n
\n
\n \n
\n
\n
\n
\n
\n
").concat(i,"
\n
\n \n ")}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.el,r=e.getDefaultValue(),i=n.querySelector('[data-preview-box]'),o=n.querySelector('[data-preview]');i.style.display=t&&t!==r?'':'none',o.style.backgroundImage=t||e.getDefaultValue()}},{key:"openAssetManager",value:function(){var t,e=this,n=null===(t=this.em)||void 0===t?void 0:t.get('AssetManager');null==n||n.open({select:function(t,r){var i=(0,o.isString)(t)?t:t.get('src');e.model.upValue(i,{partial:!r}),r&&n.close()},types:['image'],accept:'image/*'})}}]),n}($);function ht(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var dt=function(t){(0,p.Z)(n,t);var e=ht(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"templateInput",value:function(){return''}},{key:"init",value:function(){var t=this.model;this.listenTo(t,'change:unit',this.onValueChange),this.listenTo(t,'change:units',this.render)}},{key:"setValue",value:function(){}},{key:"onRender",value:function(){var t=this.ppfx,e=this.model,n=this.el;if(!this.inputInst){var r=e.input;r.ppfx=t,r.render(),n.querySelector(".".concat(t,"fields")).appendChild(r.el),this.input=r.inputEl.get(0),this.inputInst=r}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.inputInst=null}}]),n}($),pt=n(4e3);function gt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var vt=function(t){(0,p.Z)(n,t);var e=gt(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"setValue",value:function(t){var e;null===(e=this.inputInst)||void 0===e||e.setValue(t,{fromTarget:1,def:this.model.getDefaultValue()})}},{key:"remove",value:function(){var t=this;dt.prototype.remove.apply(this,arguments);var e=this.inputInst;e&&e.remove&&e.remove(),['inputInst','$color'].forEach((function(e){return t[e]=null}))}},{key:"__handleChange",value:function(t,e){this.model.upValue(t,{partial:e})}},{key:"onRender",value:function(){if(!this.inputInst){this.__handleChange=this.__handleChange.bind(this);var t=this.ppfx,e=this.model,n=this.em,r=this.el,i=new pt.Z({target:n,model:e,ppfx:t,onChange:this.__handleChange}).render();r.querySelector(".".concat(t,"fields")).appendChild(i.el),this.input=i.inputEl.get(0),this.inputInst=i}}}]),n}(dt);function mt(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 yt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[];return this.set('options',t),this}},{key:"addOption",value:function(t){if(t){var e=this.getOptions();this.setOptions([].concat((0,r.Z)(e),[t]))}return this}},{key:"getOptionId",value:function(t){return(0,a.isDef)(t.id)?t.id:t.value}},{key:"getOptionLabel",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.locale,i=void 0===r||r,a=((0,o.isString)(t)?this.getOption(t):t)||{},s=this.getOptionId(a),l=a.label||a.name||s,c=this.getId();return i&&(null===(e=this.em)||void 0===e?void 0:e.t("styleManager.options.".concat(c,".").concat(s)))||l}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n\n \n
\n
\n
\n \n ")}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n").concat(i,""))}));var i=this.el.querySelector("#".concat(e,"input-holder"));i.innerHTML=""),this.input=i.firstChild}}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.getInputEl(),r=e.getOptions()[0],i=r?e.getOptionId(r):'';n&&(n.value=t||i)}}]),n}($);function Ot(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Ct(t){for(var e=1;e")}},{key:"onRender",value:function(){var t=this.pfx,e=this.ppfx,n=this.model,r="".concat(e,"radio-item-label"),i=n.getName(),o=n.getOptions(),a="".concat(t,"radio ").concat(t,"radio-").concat(i),s=n.cid;if(!this.input){var l=[];o.forEach((function(o){var c=o.className?"".concat(o.className," ").concat(t,"icon ").concat(r):'',u=n.getOptionId(o),f="".concat(i,"-").concat(u,"-").concat(s),h=c?'':n.getOptionLabel(u),d=o.title?"title=\"".concat(o.title,"\""):'',p=n.getValue()===u?'checked':'';l.push("\n
\n \n \n
\n "))}));var c=this.el.querySelector(".".concat(e,"field"));c.innerHTML="
").concat(l.join(''),"
"),this.input=c.firstChild}}},{key:"__setValueInput",value:function(t){var e,n=this.model,r=t||n.getDefaultValue(),i=null===(e=this.getInputEl())||void 0===e?void 0:e.querySelector("[value=\"".concat(r,"\"]"));i&&(i.checked=!0)}}]),n}(xt),Et=n(7813);function jt(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 Dt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};x.callParentInit(x,this,t,e);var n=this.get('unit'),r=this.get('units');this.input=(0,a.hasWin)()&&new Et.Z({model:this}),r.length&&!n&&this.set('unit',r[0],{silent:1}),x.callInit(this,t,e)}},{key:"__getClearProps",value:function(){return Dt(Dt({},x.prototype.__getClearProps()),{},{unit:''})}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=x.prototype.parseValue.apply(this,arguments),r=this.input.validateInputValue(n.value,Dt({deepCheck:1},e)),i=r.value,o=r.unit;return n.value=i,n.unit=o,n}},{key:"getFullValue",value:function(){var t=this.get('value'),e=this.get('unit');return t=(0,o.isUndefined)(t)?'':t,e=!(0,o.isUndefined)(e)&&t?e:'',t="".concat(t).concat(e),x.prototype.getFullValue.apply(this,[t])}}]),n}(x);function Rt(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 Zt(t){for(var e=1;e\n \n \n ")}},{key:"getSliderEl",value:function(){return this.slider||(this.slider=this.el.querySelector('input[type=range]')),this.slider}},{key:"inputValueChanged",value:function(){this.model.upValue(this.getSliderEl().value)}},{key:"inputValueChangedSoft",value:function(){this.model.upValue(this.getSliderEl().value,{partial:!0})}},{key:"setValue",value:function(t){var e=this.model,n=e.parseValue(t);this.getSliderEl().value=''===t?e.getDefaultValue():parseFloat(n.value),dt.prototype.setValue.apply(this,arguments)}},{key:"onRender",value:function(){dt.prototype.onRender.apply(this,arguments),this.model.get('showInput')||(this.inputInst.el.style.display='none')}},{key:"clearCached",value:function(){dt.prototype.clearCached.apply(this,arguments),this.slider=null}}]),n}(dt);const Ht=c().Collection.extend(m.Z).extend({extendViewApi:1,init:function(){var t=this.opts,e=this.em,n=t.module||(null==e?void 0:e.get('StyleManager'));n&&(n.__listenAdd(this,n.events.propertyAdd),n.__listenRemove(this,n.events.propertyRemove))},types:[{id:'stack',model:B,view:st,isType:function(t){if(t&&'stack'==t.type)return t}},{id:'composite',model:_,view:Q,isType:function(t){if(t&&'composite'==t.type)return t}},{id:'file',model:x,view:ft,isType:function(t){if(t&&'file'==t.type)return t}},{id:'color',model:x,view:vt,isType:function(t){if(t&&'color'==t.type)return t}},{id:'select',model:wt,view:xt,isType:function(t){if(t&&'select'==t.type)return t}},{id:'radio',model:Pt,view:Tt,isType:function(t){if(t&&'radio'==t.type)return t}},{id:'slider',model:Nt,view:Vt,isType:function(t){if(t&&'slider'==t.type)return t}},{id:'integer',model:At,view:dt,isType:function(t){if(t&&'integer'==t.type)return t}},{id:'number',model:At,view:dt,isType:function(t){if(t&&'number'==t.type)return t}},{id:'base',model:x,view:$,isType:function(t){return t.type='base',t}}]});var zt=["extend"];function Ut(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 Wt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r;var i=t||{},a=this.buildProperties(i.buildProps),s=this.get('name')||'',l=[];!this.get('id')&&this.set('id',s.replace(/ /g,'_').toLowerCase()),l=(l=a?this.extendProperties(a):this.get('properties').map((function(t){return(0,o.isString)(t)?e.buildProperties(t)[0]:t})).filter(Boolean)).map((function(t){return e.checkExtend(t)}));var c=new Ht(l,{em:r});c.sector=this,this.set('properties',c)}},{key:"getId",value:function(){return this.get('id')}},{key:"getName",value:function(){var t,e=this.getId();return(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.sectors.".concat(e)))||this.get('name')}},{key:"setName",value:function(t){return this.set('name',t)}},{key:"isOpen",value:function(){return!!this.get('open')}},{key:"setOpen",value:function(t){return this.set('open',t)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"getProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('properties'),n=e.models?(0,r.Z)(e.models):e;return n.filter((function(e){var n=!0;(t.withValue&&(n=e.hasValue({noParent:!0})),t.withParentValue)&&(n=!e.hasValue({noParent:!0})&&e.hasValue());return n}))}},{key:"getProperty",value:function(t){return this.getProperties().filter((function(e){return e.get('id')===t}))[0]||null}},{key:"addProperty",value:function(t,e){return this.get('properties').add(this.checkExtend(t),e)}},{key:"extendProperties",value:function(t,e,n){for(var r=t.length,i=e||this.get('properties'),a=this.get('extendBuilded'),s=[],l=0,c=i.length;l1&&void 0!==arguments[1]?arguments[1]:{},n=e.module,r=e.em;this.em=r,this.module=n,this.listenTo(this,'reset',this.onReset)}},{key:"model",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.collection.em;return new qt(t,Kt(Kt({},e),{},{em:n}))}},{key:"onReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels||[];n.forEach((function(t){return t.get('properties').reset()}))}}]),n}(l.Collection),Jt=n(885),Qt=["extend"];function te(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 ee(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.from||'',i=this.props[r||t]||{},a=ee(ee({},i),{},{property:t},e);return a.properties&&(0,o.isFunction)(a.properties)&&(a.properties=a.properties()),this.props[t]=a,a}},{key:"get",value:function(t){return this.props[t]||null}},{key:"build",value:function(t){var e=this,n=[];return((0,o.isString)(t)?[t]:t).forEach((function(t){n.push(e.get(t)||{property:t})})),n}}]),t}(),oe=n(168),ae=n(8595);function se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var le=function(t){(0,p.Z)(n,t);var e=se(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"template",value:function(t){var e,n=t.pfx,r=t.label,i=null===(e=this.em)||void 0===e?void 0:e.getConfig('icons'),o=(null==i?void 0:i.caret)||'',a="".concat(n,"sector-");return(0,ae.Z)(ne||(ne=(0,oe.Z)(["\n
\n
$","
\n
","
\n
\n "])),a,a,o,a,r)}},{key:"events",value:function(){return{'click [data-sector-title]':'toggle'}}},{key:"initialize",value:function(t){var e=t.config||{},n=this.model,r=e.em;this.config=e,this.em=r,this.pfx=e.stylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change:open',this.updateOpen),this.listenTo(n,'change:visible',this.updateVisibility)}},{key:"updateOpen",value:function(){var t=this.$el,e=this.model,n=this.pfx,r=e.isOpen();t[r?'addClass':'removeClass']("".concat(n,"open")),this.getPropertiesEl().style.display=r?'':'none'}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"getPropertiesEl",value:function(){var t=this.$el,e=this.pfx;return t.find(".".concat(e,"properties")).get(0)}},{key:"toggle",value:function(){var t=this.model;t.setOpen(!t.get('open'))}},{key:"renderProperties",value:function(){var t=this.model,e=this.config,n=t.get('properties');if(n){var r=new K({collection:n,config:e});this.$el.append(r.render().el)}}},{key:"render",value:function(){var t=this.pfx,e=this.model,n=this.$el,r=e.getId(),i=e.getName();return n.html(this.template({pfx:t,label:i})),this.renderProperties(),n.attr('class',"".concat(t,"sector ").concat(t,"sector__").concat(r," no-select")),this.updateOpen(),this}}]),n}(l.View);function ce(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var ue=function(t){(0,p.Z)(n,t);var e=ce(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.module,n=t.config,r=void 0===n?{}:n,i=this.collection;this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.config=r,this.module=e,this.listenTo(i,'add',this.addTo),this.listenTo(i,'reset',this.render)}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['config','module','em'].forEach((function(e){return t[e]={}}))}},{key:"addTo",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addToCollection(t,null,n)}},{key:"addToCollection",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.config,i=this.el,o=e||i,a=new le({model:t,config:r}).render().el;return(0,q.$Q)(o,a,n.at),a}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx,r=this.ppfx;e.empty();var i=document.createDocumentFragment();return this.collection.each((function(e){return t.addToCollection(e,i)})),e.append(i),e.addClass("".concat(n,"sectors ").concat(r,"one-bg ").concat(r,"two-color")),this}}]),n}(l.View);function fe(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 he(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__clearStateTarget'),this.__initConfig(u,r);var i=this.config,a=i.em,s=i.pStylePrefix;s&&(i.stylePrefix=s+i.stylePrefix),this.builtIn=new ie,t=new Ht([],{em:a,module:this}),e=new Xt([],he(he({},i),{},{module:this}));var c=new l.Model({targets:[]});this.model=c,this.__listenAdd(e,ve),this.__listenRemove(e,me),this.__listenUpdate(e,ye);var f='component:toggled component:update:classes change:state change:device frame:resized selector:type',h=(0,o.debounce)((function(){return n.__upSel()}));c.listenTo(a,f,h),c.listenTo(a,'component:toggled',this.__clearStateTarget);var d=(0,o.debounce)((function(){n.__upProps(),n.__trgCustom()}));c.listenTo(a,'styleable:change undo redo',d);var p=(0,o.debounce)((function(){return n.__trgCustom()}));return c.listenTo(a,"".concat(Oe," ").concat(Ce),p),c.on('change:lastTarget',(function(){return a.trigger(Ce,n.getSelected())})),this},__upSel:function(){this.select(this.em.getSelectedAll())},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},__trgEv:function(t){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{},i=this.getSector(t);return i||(n.id=t,i=e.add(n,r)),i},getSector:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.where({id:t})[0];return!r&&n.warn&&this._logNoSector(t),r||null},getSectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e&&e.models?t.array?(0,r.Z)(e.models):e:[];return t.visible?n.filter((function(t){return t.isVisible()})):n},removeSector:function(t){return this.getSectors().remove(this.getSector(t,{warn:1}))},addProperty:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getSector(t,{warn:1}),i=null;return r&&(i=r.addProperty(e,n)),i},getProperty:function(t,e){var n,r=this.getSector(t,{warn:1});return r&&(n=r.get('properties').filter((function(t){return t.get('property')===e||t.get('id')===e}))[0]),n||null},getProperties:function(t){var e=null,n=this.getSector(t,{warn:1});return n&&(e=n.get('properties')),e},removeProperty:function(t,e){var n=this.getProperties(t);return n?n.remove(this.getProperty(t,e)):null},select:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isArray)(t)?t:[t],s=n.stylable,l=r.get('CssComposer'),c=[];i.filter(Boolean).forEach((function(t){var e=t;if((0,o.isString)(t)){var n=l.getRule(t)||l.setRule(t);!(0,o.isUndefined)(s)&&n.set({stylable:s}),e=n}c.push(e)}));var u=n.component||c.filter((function(t){return(0,a.isComponent)(t)})).reverse()[0];c=c.map((function(t){return e.getModelToStyle(t)}));var f=r.getState(),h=c.slice().reverse()[0],d=this.getParentRules(h,{state:f,component:u}),p=this.__getStateTarget();return r.skip((function(){var t;if(f&&null!=h&&null!==(t=h.getState)&&void 0!==t&&t.call(h)){var e=h.getStyle();p?p.setStyle(e):p=l.getAll().add({selectors:'gjs-selected',style:e,shallow:!0,important:!0})}else p&&(l.remove(p),p=null)})),this.model.set({targets:c,lastTarget:h,lastTargetParents:d,stateTarget:p,component:u}),this.__upProps(n),c},getSelected:function(){return this.model.get('lastTarget')||null},getSelectedAll:function(){return this.model.get('targets')},getSelectedParents:function(){return this.model.get('lastTargetParents')||[]},__getStateTarget:function(){return this.model.get('stateTarget')||null},addStyleTargets:function(t,e){this.getSelectedAll().map((function(n){return n.addStyle(t,e)}));var n=this.getSelected(),r=this.__getStateTarget();n&&(null==r||r.setStyle(n.getStyle(),e))},getBuiltIn:function(t){return this.builtIn.get(t)},getBuiltInAll:function(){return this.builtIn.props},addBuiltIn:function(t,e){return this.builtIn.add(t,e)},getModelToStyle:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=n.skipAdd;if(r&&null!==(e=t)&&void 0!==e&&e.toHTML){var o,a=r.getConfig(),s=r.get('UndoManager'),l=r.get('CssComposer'),c=r.get('SelectorManager'),u=c?c.getConfig():{},f=a.devicePreviewMode?'':r.get('state'),h=t.get('classes'),d=h.getStyleable(),p=d.length,g=!u.componentFirst||n.useClasses,v={noCount:1},m={state:f,addOpts:v};if(s.stop(),p&&g){var y=r.getCurrentMedia();(o=l.get(d,f,y))||i||(o=l.add(d,f,y,{},v))}else if(a.avoidInlineStyle){var b=t.getId();!(o=l.getIdRule(b,m))&&!i&&(o=l.setIdRule(b,{},m)),t.is('wrapper')&&o.set('wrapper',1,v)}o&&(t=o),s.start()}return t},getParentRules:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state,r=e.component,i=this.em,a=[];if(i&&t){var s=r,l=i.get('CssComposer'),c=i.get('CodeManager').getGenerator('css'),u=t.toHTML?t:t.getComponent(),f={combination:!0,array:!0},h=[],d=[],p=[];u?(h=l.getRules("#".concat(u.getId())),p=(d=s?l.getRules(s.getSelectors().getFullName(f)):[]).concat(h)):(h=s?l.getRules("#".concat(s.getId())):[],d=l.getRules(t.getSelectors().getFullName(f)),p=h.concat(d));var g=p.filter((function(t){return(0,o.isUndefined)(n)?1:t.get('state')===n})).sort(c.sortRules).reverse();a=g.slice(g.indexOf(t)+1)}return a},addType:function(e,n){t.addType(e,n)},getType:function(e){return t.getType(e)},getTypes:function(){return t.getTypes()},createType:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,r=void 0===n?{}:n,i=e.view,o=void 0===i?{}:i,a=this.config,s=this.getType(t);if(s)return new s.view(he({model:new s.model(r),config:a},o))},render:function(){var t=this.config,r=this.em,i=n&&n.el;return(n=new ue({el:i,em:r,config:t,collection:e,module:this})).render().el},_logNoSector:function(t){var e=this.em;e&&e.logWarning("'".concat(t,"' sector not found"))},__upProps:function(t){var n=this,r=this.getSelected();if(r){var i=this.model.get('component'),o=this.getSelectedParents(),a=r.getStyle(),s=o.map((function(t){return{target:t,style:t.getStyle()}}));e.map((function(e){e.getProperties().map((function(e){n.__upProp(e,a,s,t)}))})),e.forEach((function(t){var n=t.getProperties();n.forEach((function(t){var n=t.__checkVisibility({target:r,component:i,sectors:e});t.set('visible',n)}));var o=n.some((function(t){return t.isVisible()}));t.set('visible',o)}))}},__upProp:function(t,e,n,r){var i=this,o=t.getName(),a=e[o],s=Pe(a),l='stack'===t.getType(),c='composite'===t.getType(),u=he(he({},r),{},{__up:!0}),f=!c&&!l,h=l?t.__getLayersFromStyle(e):[],d=c?t.__getPropsFromStyle(e):{},p=s?a:null,g=null;if(l&&null===h||c&&null===d){var v=l?'__getLayersFromStyle':'__getPropsFromStyle',m=n.filter((function(e){return null!==t[v](e.style)}))[0];if(m){p=m.style[o],g=m.target;var y=t[v](m.style);l?h=y:d=y}}else if(!s){p=null;var b=n.filter((function(t){return Pe(t.style[o])}))[0];b&&(p=b.style[o],g=b.target)}if(t.__setParentTarget(g),f&&t.__getFullValue()!==p&&t.upValue(p,u),l&&t.__setLayers(h||[]),c){var w=t.getProperties();if(t.isDetached()){var k=t.__getPropsFromStyle(e,{byName:!0})||{},x=n.map((function(e){return he(he({},e),{},{style:t.__getPropsFromStyle(e.style,{byName:!0})||{}})}));w.map((function(t){return i.__upProp(t,k,x,r)}))}else t.__setProperties(d||{},u),t.getProperties().map((function(t){return t.__setParentTarget(g)}))}},destroy:function(){[t,e].forEach((function(t){t.reset(),t.stopListening()})),n&&n.remove(),[t,e,n].forEach((function(t){return{}})),this.em={},this.config={},this.builtIn={},this.model={}}})}},4406:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>z,evAll:()=>B,evCustom:()=>H,evPfx:()=>V});var r=n(4942),i=n(9050),o=n(3821),a=n(2316),s=n.n(a);const l={stylePrefix:'trt-',appendTo:'',optionsTarget:[{value:!1},{value:'_blank'}]};var c=n(5671),u=n(3144),f=n(7326),h=n(9340),d=n(2963),p=n(1120),g=n(9384),v=n(885),m=n(3168);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,c.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,f.Z)(t),"events",{}),(0,r.Z)((0,f.Z)(t),"appendInput",!0);var o=i.config,a=void 0===o?{}:o,s=(0,f.Z)(t),l=s.model,u=s.eventCapture,h=l.target,d=l.attributes.type;t.config=a,t.em=a.em,t.pfx=a.stylePrefix||'',t.ppfx=a.pStylePrefix||'',t.target=h;var p=(0,f.Z)(t),g=p.ppfx;return t.clsField="".concat(g,"field ").concat(g,"field-").concat(d),[['change:value',t.onValueChange],['remove',t.removeView]].forEach((function(e){var n=(0,v.Z)(e,2),r=n[0],i=n[1];l.off(r,i),t.listenTo(l,r,i)})),l.view=(0,f.Z)(t),t.listenTo(l,'change:label',t.render),t.listenTo(l,'change:placeholder',t.rerender),t.events={},u.forEach((function(e){return t.events[e]='onChange'})),t.delegateEvents(),t.init(),t}return(0,u.Z)(n,[{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"templateLabel",value:function(){var t=this.ppfx,e=this.getLabel();return"
").concat(e,"
")}},{key:"templateInput",value:function(){var t=this.clsField;return"
")}},{key:"getClbOpts",value:function(){return{component:this.target,trait:this.model,elInput:this.getInputElem()}}},{key:"removeView",value:function(){this.remove(),this.removed()}},{key:"init",value:function(){}},{key:"removed",value:function(){}},{key:"onRender",value:function(){}},{key:"onUpdate",value:function(){}},{key:"onEvent",value:function(){}},{key:"onChange",value:function(t){var e=this.getInputElem();e&&!(0,i.isUndefined)(e.value)&&this.model.set('value',e.value),this.onEvent(b(b({},this.getClbOpts()),{},{event:t}))}},{key:"getValueForTarget",value:function(){return this.model.get('value')}},{key:"setInputValue",value:function(t){var e=this.getInputElem();e&&(e.value=t)}},{key:"onValueChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n.fromTarget)this.setInputValue(t.get('value')),this.postUpdate();else{var r=this.getValueForTarget();t.setTargetValue(r,n)}}},{key:"renderLabel",value:function(){var t=this.$el,e=this.target,n=this.getLabel(),r=this.templateLabel(e);this.createLabel&&(r=this.createLabel({label:n,component:e,trait:this})||''),t.find('[data-label]').append(r)}},{key:"getLabel",value:function(){var t=this.em,e=this.model.attributes,n=e.label,r=e.name;return t.t("traitManager.traits.labels.".concat(r))||(0,m.capitalize)(n||r).replace(/-/g,' ')}},{key:"getComponent",value:function(){return this.target}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.em,e=this.model,n=e,r=e.attributes.name,o=n.get('placeholder')||n.get('default')||'',a=n.get('type')||'text',s=n.get('min'),l=n.get('max'),c=this.getModelValue(),u=k("")),f=t.t("traitManager.traits.attributes.".concat(r))||{};u.attr(f),(0,i.isUndefined)(c)||(n.set({value:c},{silent:!0}),u.prop('value',c)),s&&u.prop('min',s),l&&u.prop('max',l),this.$input=u}return this.$input.get(0)}},{key:"getInputElem",value:function(){var t=this.input,e=this.$input;return t||e&&e.get&&e.get(0)||this.getElInput()}},{key:"getModelValue",value:function(){var t,e=this.model,n=this.target,r=e.get('name');if(e.get('changeProp'))t=n.get(r);else{var o=n.get('attributes');t=e.get('value')||o[r]}return(0,i.isUndefined)(t)?'':t}},{key:"getElInput",value:function(){return this.elInput}},{key:"renderField",value:function(){var t=this.$el,e=this.appendInput,n=this.model,r=t.find('[data-input]'),o=r[r.length-1],a=n.el;a||(a=this.createInput?this.createInput(this.getClbOpts()):this.getInputEl()),(0,i.isString)(a)?(o.innerHTML=a,this.elInput=o.firstChild):(e?o.appendChild(a):o.insertBefore(a,o.firstChild),this.elInput=a),n.el=this.elInput}},{key:"hasLabel",value:function(){var t=this.model.attributes.label;return!this.noLabel&&!1!==t}},{key:"rerender",value:function(){this.model.el=null,this.render()}},{key:"postUpdate",value:function(){this.onUpdate(this.getClbOpts())}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.ppfx,r=this.model.attributes,o=r.type,a=r.id,s=this.hasLabel&&this.hasLabel(),l="".concat(e,"trait");this.$input=null;var c="
\n ").concat(s?"
"):'',"\n
\n ").concat(this.templateInput?(0,i.isFunction)(this.templateInput)?this.templateInput(this.getClbOpts()):this.templateInput:'',"\n
\n
");return t.empty().append(c),s&&this.renderLabel(),this.renderField(),this.el.className="".concat(l,"__wrp ").concat(l,"__wrp-").concat(a),this.postUpdate(),this.onRender(this.getClbOpts()),this}}]),n}(s().View);function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}x.prototype.eventCapture=['change'];var C=function(t){(0,h.Z)(n,t);var e=O(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;(0,c.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,f.Z)(t),"reuseView",!0),t.itemsView=o;var a=i.config||{},s=a.stylePrefix||'',l=i.editor;return t.config=a,t.em=l,t.pfx=s,t.ppfx=a.pStylePrefix||'',t.className="".concat(s,"traits"),t.listenTo(l,'component:toggled',t.updatedCollection),t.updatedCollection(),t}return(0,u.Z)(n,[{key:"updatedCollection",value:function(){var t=this.ppfx,e=this.className,n=this.em.getSelected();this.el.className="".concat(e," ").concat(t,"one-bg ").concat(t,"two-color"),this.collection=n?n.get('traits'):[],this.render()}}]),n}(g.Z);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}x.prototype.itemView=x;var P=s().$,_=function(t){(0,h.Z)(n,t);var e=S(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,c.Z)(this,n),(t=e.call(this,r)).listenTo(t.model,'change:options',t.rerender),t}return(0,u.Z)(n,[{key:"templateInput",value:function(){var t=this.ppfx,e=this.clsField;return"
\n
\n
\n
\n
\n
")}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.model,e=this.em,n=t.get('name'),r=t.get('options')||[],o=[],a='',this.$input=P(a);var s=t.getTargetValue(),l=o.indexOf(s)>=0?s:t.get('default');!(0,i.isUndefined)(l)&&this.$input.val(l)}return this.$input.get(0)}}]),n}(x);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var E=function(t){(0,h.Z)(n,t);var e=T(n);function n(){var t;(0,c.Z)(this,n);for(var i=arguments.length,o=new Array(i),a=0;a\n \n ")}},{key:"onChange",value:function(){var t=this.getInputElem().checked;this.model.set('value',this.getCheckedValue(t))}},{key:"getCheckedValue",value:function(t){var e=t,n=this.model.attributes,r=n.valueTrue,o=n.valueFalse;return e&&!(0,i.isUndefined)(r)&&(e=r),e||(0,i.isUndefined)(o)||(e=o),e}},{key:"getInputEl",value:function(){for(var t=!this.$input,e=arguments.length,n=new Array(e),r=0;r").concat(a,"")}}]),n}(x);function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function F(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(l,n);var r=this.config,o=new a.Model;this.model=o;var s=this.em,c=r.pStylePrefix;this.types=F({},t),c&&(r.stylePrefix="".concat(c).concat(r.stylePrefix));var u=(0,i.debounce)((function(){return e.__upSel()}));o.listenTo(s,'component:toggled',u);var f=(0,i.debounce)((function(){return e.__onUp()}));return o.listenTo(s,'trait:update',f),this},__upSel:function(){this.select(this.em.getSelected())},__onUp:function(){this.select(this.getSelected())},select:function(t){var e=t?t.getTraits():[];this.model.set({component:t,traits:e}),this.__trgCustom()},getSelected:function(){return this.model.get('component')||null},getCurrent:function(){return this.model.get('traits')||[]},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},postRender:function(){this.__appendTo()},getTraitsViewer:function(){return this.view},addType:function(t,e){var n=this.getType('text');this.types[t]=n.extend(e)},getType:function(t){return this.getTypes()[t]},getTypes:function(){return this.types},render:function(){var t=this.view,e=this.getConfig(),n=t&&t.el;return t=new C({el:n,collection:[],editor:e.em,config:e},this.getTypes()),this.view=t,t.el},destroy:function(){this.__destroy()}})}},9960:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(2982),i=n(4942),o=n(3410),a=n.n(o),s=n(9050);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=c(c({},o),h),t=n.em,this.em=t,n._disable&&(n=c(c({},n),{},{maximumStackLength:0}));var d=!0;return(e=new(a())(c({track:!0,register:[]},n))).changeUndoType('change',{condition:function(t){var e=t.get('_undo');if(e){var n=t.get('_undoexc');if((0,s.isArray)(n)&&u(t).some((function(t){return n.indexOf(t)>=0})))return!1;if((0,s.isBoolean)(e))return!0;if((0,s.isArray)(e)&&u(t).some((function(t){return e.indexOf(t)>=0})))return!0}return!1},on:function(t,e,n){!i&&(i=t.previousAttributes());var r=n||e||{};if(r.noUndo&&setTimeout((function(){i=null})),!l(r)){var o=t.toJSON({fromUndo:d}),a={object:t,before:i,after:o};if(i=null,!(0,s.isEmpty)(o))return a}}}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:void 0,after:t,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:t,after:void 0,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('reset',{undo:function(t,e){t.reset(e,{fromUndo:d})},redo:function(t,e,n){t.reset(n,{fromUndo:d})},on:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l(e)&&f.isRegistered(t))return{object:t,before:e.previousModels,after:(0,r.Z)(t.models),options:c(c({},e),{},{fromUndo:d})}}}),e.on('undo redo',(function(){t.trigger('change:canvasOffset'),t.getSelectedAll().map((function(t){return t.trigger('rerender:layer')}))})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},postLoad:function(){n.trackSelection&&t&&this.add(t.get('selected'))},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.undo(n),this},undoAll:function(){return e.undoAll(),this},redo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.redo(n),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable('undo')},hasRedo:function(){return e.isAvailable('redo')},isRegistered:function(t){return!!this.getInstance().objectRegistry.isRegistered(t)},getStack:function(){return e.stack},getStackGroup:function(){var t=[],e=[];return this.getStack().forEach((function(n){var r=n.get('magicFusionIndex');e.indexOf(r)<0&&(e.push(r),t.push(n))})),t},skip:function(t){this.stop(),t(),this.start()},getGroupedStack:function(){var t={},e=this.getStack();return e.forEach((function(e,n){var r=e.get('magicFusionIndex'),i=function(t,e){var n=t.attributes,r=n.type,i=n.after,o=n.before,a=n.object,s=n.options;return{index:e,type:r,after:i,before:o,object:a,options:void 0===s?{}:s}}(e,n);t[r]?t[r].push(i):t[r]=[i]})),Object.keys(t).map((function(e){var n=t[e];return{index:n[n.length-1].index,actions:n,labels:(0,s.unique)(n.reduce((function(t,e){var n,r=null===(n=e.options)||void 0===n?void 0:n.action;return r&&t.push(r),t}),[]))}}))},goToGroup:function(t){var e=this;if(t){var n=this.getPointer(),r=t.index-n;(0,s.times)(Math.abs(r),(function(){e[r<0?'undo':'redo'](!1)}))}},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,i].forEach((function(t){return{}})),this.em={}}}}},1981:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var r=n(4942),i=n(5671),o=n(3144),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.Z)(this,t),this.opts={container:null,onStart:null,onDrag:null,onEnd:null,setPosition:null,getPosition:null,guidesStatic:null,guidesTarget:null,snapOffset:5,doc:0,scale:1},(0,a.bindAll)(this,'drag','stop','keyHandle','handleScroll'),this.setOptions(e),this.delta={x:0,y:0},this}return(0,o.Z)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=c(c({},this.opts),t)}},{key:"toggleDrag",value:function(t){var e=this.getDocumentEl(),n=this.getContainerEl(),r=this.getWindowEl(),i=t?'on':'off',o={on:s.on,off:s.off};o[i](n,'mousemove dragover',this.drag),o[i](e,'mouseup dragend touchend',this.stop),o[i](e,'keydown',this.keyHandle),o[i](r,'scroll',this.handleScroll)}},{key:"handleScroll",value:function(){var t=this.lastScroll,e=this.delta,n=this.getScrollInfo(),r={x:n.x-t.x,y:n.y-t.y};this.move(e.x+r.x,e.y+r.y),this.lastScrollDiff=r}},{key:"start",value:function(t){var e=this.opts,n=e.onStart;this.toggleDrag(1),this.startPointer=this.getPointerPos(t),this.guidesStatic=(0,a.result)(e,'guidesStatic')||[],this.guidesTarget=(0,a.result)(e,'guidesTarget')||[],(0,a.isFunction)(n)&&n(t,this),this.startPosition=this.getStartPosition(),this.lastScrollDiff={x:0,y:0},this.globScrollDiff={x:0,y:0},this.drag(t)}},{key:"drag",value:function(t){var e=this,n=this.opts,r=this.lastScrollDiff,i=this.globScrollDiff,o=n.onDrag,s=this.startPointer,l=this.getPointerPos(t),u={x:i.x+r.x,y:i.y+r.y};this.globScrollDiff=u;var f={x:l.x-s.x+u.x,y:l.y-s.y+u.y};this.lastScrollDiff={x:0,y:0};var h=this.lockedAxis;'x'===(h=t.shiftKey?!h&&this.detectAxisLock(f.x,f.y):null)?f.x=s.x:'y'===h&&(f.y=s.y);var d=function(r){['x','y'].forEach((function(t){return r[t]=r[t]*(0,a.result)(n,'scale')})),e.delta=r,e.move(r.x,r.y),(0,a.isFunction)(o)&&o(t,e)},p=c({},f);if(this.currentPointer=l,this.lockedAxis=h,this.lastScroll=this.getScrollInfo(),d(f),this.guidesTarget.length){var g=this.snapGuides(p),v=g.newDelta,m=g.trgX,y=g.trgY;(m||y)&&d(v)}0===t.which&&this.stop(t)}},{key:"snapGuides",value:function(t){var e=this,n=t,r=this.trgX,i=this.trgY;return this.guidesTarget.forEach((function(n){n.x&&e.trgX||n.y&&e.trgY||(n.active=0,e.guidesStatic.forEach((function(o){if(!(n.y&&o.x||n.x&&o.y)){var s=n.y&&o.y,l=s?'y':'x',c=n[l],u=o[l],f=t[l],h=s?i:r;if(e.isPointIn(c,u)&&(0,a.isUndefined)(h)){var d=f-(c-u);e.setGuideLock(n,d)}}})))})),r=this.trgX,i=this.trgY,['x','y'].forEach((function(r){var i=r.toUpperCase(),o=e["trg".concat(i)];o&&!e.isPointIn(t[r],o.lock)&&(e.setGuideLock(o,null),o=null),o&&!(0,a.isUndefined)(o.lock)&&(n[r]=o.lock)})),{newDelta:n,trgX:this.trgX,trgY:this.trgY}}},{key:"isPointIn",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.offset,i=r||this.opts.snapOffset;return t>=e&&t<=e+i||t<=e&&t>=e-i}},{key:"setGuideLock",value:function(t,e){var n=(0,a.isUndefined)(t.x)?'Y':'X',r="trg".concat(n);return null!==e?(t.active=1,t.lock=e,this[r]=t):(delete t.active,delete t.lock,delete this[r]),t}},{key:"stop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.delta,r=e.cancel,i=r?0:n.x,o=r?0:n.y;this.toggleDrag(),this.lockedAxis=null,this.move(i,o,1);var s=this.opts.onEnd;(0,a.isFunction)(s)&&s(t,this,{cancelled:r})}},{key:"keyHandle",value:function(t){(0,s.isEscKey)(t)&&this.stop(t,{cancel:1})}},{key:"move",value:function(t,e,n){var r=this.el,i=this.opts,o=this.startPosition;if(o){var s=i.setPosition,l=o.x+t,c=o.y+e;this.position={x:l,y:c,end:n},(0,a.isFunction)(s)&&s(this.position),r&&(r.style.left="".concat(l,"px"),r.style.top="".concat(c,"px"))}}},{key:"getContainerEl",value:function(){var t=this.opts.container;return t?[t]:this.getDocumentEl()}},{key:"getWindowEl",value:function(){return this.getContainerEl().map((function(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}))}},{key:"getDocumentEl",value:function(t){var e=this.opts.doc;if(t=t||this.el,!this.docs){var n=[document];t&&n.push(t.ownerDocument),e&&n.push(e),this.docs=n}return this.docs}},{key:"getPointerPos",value:function(t){var e=this.opts.getPointerPosition,n=(0,s.getPointerEvent)(t);return e?e(t):{x:n.clientX,y:n.clientY}}},{key:"getStartPosition",value:function(){var t=this.el,e=this.opts.getPosition,n={x:0,y:0};return(0,a.isFunction)(e)?n=e():t&&(n={x:parseFloat(t.style.left),y:parseFloat(t.style.top)}),n}},{key:"getScrollInfo",value:function(){var t=this.opts.doc,e=t&&t.body;return{y:e?e.scrollTop:0,x:e?e.scrollLeft:0}}},{key:"detectAxisLock",value:function(t,e){var n=t,r=e,i=Math.abs(n),o=Math.abs(r);return r>=i||r<=-i?'x':n>o||n<-o?'y':void 0}}]),t}()},290:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>pt});var r='undefined'!=typeof document?document:null,i='undefined'!=typeof window?window:null,o=Array.prototype,a=o.filter,s=o.indexOf,l=o.map,c=o.push,u=o.reverse,f=o.slice,h=o.splice,d=/^#[\w-]*$/,p=/^\.[\w-]*$/,g=/<.+>/,v=/^\w+$/;function m(t,e){return void 0===e&&(e=r),p.test(t)?e.getElementsByClassName(t.slice(1)):v.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function y(t,e){if(void 0===e&&(e=r),t){if(t.__cash)return t;var n=t;if(T(t)){if(e.__cash&&(e=e[0]),!(n=d.test(t)?e.getElementById(t.slice(1)):g.test(t)?ft(t):m(t,e)))return}else if(_(t))return this.ready(t);(n.nodeType||n===i)&&(n=[n]),this.length=n.length;for(var o=0,a=this.length;o=0})):n.value=i}))},w.clone=function(){return this.map((function(t,e){return e.cloneNode(!0)}))},w.detach=function(){return this.each((function(t,e){e.parentNode&&e.parentNode.removeChild(e)}))};var lt,ct=/^\s*<(\w+)[^>]*>/,ut=/^\s*<(\w+)\s*\/?>(?:<\/\1>)?\s*$/;function ft(t){if(function(){if(!lt){var t=r.createElement('table'),e=r.createElement('tr');lt={'*':r.createElement('div'),tr:r.createElement('tbody'),td:e,th:e,thead:t,tbody:t,tfoot:t}}}(),!T(t))return[];if(ut.test(t))return[r.createElement(RegExp.$1)];var e=ct.test(t)&&RegExp.$1,n=lt[e]||lt['*'];return n.innerHTML=t,b(n.childNodes).detach().get()}function ht(t,e,n){if(void 0!==e){var r=T(e);!r&&e.length?C(e,(function(e){return ht(t,e,n)})):C(t,r?function(t){t.insertAdjacentHTML(n?'afterbegin':'beforeend',e)}:function(t,r){return function(t,e,n){n?t.insertBefore(e,t.childNodes[0]):t.appendChild(e)}(t,r?e.cloneNode(!0):e,n)})}}b.parseHTML=ft,w.empty=function(){var t=this[0];if(t)for(;t.firstChild;)t.removeChild(t.firstChild);return this},w.append=function(){var t=this;return C(arguments,(function(e){ht(t,e)})),this},w.appendTo=function(t){return ht(b(t),this),this},w.html=function(t){if(void 0===t)return this[0]&&this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t,n){n.innerHTML=e}))},w.insertAfter=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n.nextSibling)}))})),this},w.after=function(){var t=this;return C(u.apply(arguments),(function(e){u.apply(b(e).slice()).insertAfter(t)})),this},w.insertBefore=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n)}))})),this},w.before=function(){var t=this;return C(arguments,(function(e){b(e).insertBefore(t)})),this},w.prepend=function(){var t=this;return C(arguments,(function(e){ht(t,e,!0)})),this},w.prependTo=function(t){return ht(b(t),u.apply(this.slice()),!0),this},w.remove=function(){return this.detach().off()},w.replaceWith=function(t){var e=this;return this.each((function(n,r){var i=r.parentNode;if(i){var o=n?b(t).clone():b(t);if(!o[0])return e.remove(),!1;i.replaceChild(o[0],r),b(o[0]).after(o.slice(1))}}))},w.replaceAll=function(t){return b(t).replaceWith(this),this},w.text=function(t){return void 0===t?this[0]?this[0].textContent:'':this.each((function(e,n){n.textContent=t}))};var dt=r&&r.documentElement;w.offset=function(){var t=this[0];if(t){var e=t.getBoundingClientRect();return{top:e.top+i.pageYOffset-dt.clientTop,left:e.left+i.pageXOffset-dt.clientLeft}}},w.offsetParent=function(){return b(this[0]&&this[0].offsetParent)},w.position=function(){var t=this[0];if(t)return{left:t.offsetLeft,top:t.offsetTop}},w.children=function(t){var e=[];return this.each((function(t,n){c.apply(e,n.children)})),e=b(R(e)),t?e.filter((function(e,n){return P(n,t)})):e},w.contents=function(){var t=[];return this.each((function(e,n){c.apply(t,'IFRAME'===n.tagName?[n.contentDocument]:n.childNodes)})),b(t.length&&R(t))},w.find=function(t){for(var e=[],n=0,r=this.length;n{"use strict";n.d(e,{$Q:()=>h,FW:()=>c,G1:()=>o,L_:()=>s,Mx:()=>a,R3:()=>d,SJ:()=>m,dL:()=>f,pn:()=>u,rw:()=>g,sE:()=>l,t3:()=>v,ut:()=>p});var r=n(9050),i='attributes',o='transitionend oTransitionEnd transitionend webkitTransitionEnd',a=function(t){return t&&9===t.nodeType},s=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l=function(t,e){return t.querySelectorAll(e)},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t&&t.setAttribute&&(0,r.each)(e,(function(e,n){return t.setAttribute(n,e)}))},u=function(t){return t&&!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},f=function(t,e){t.parentNode.replaceChild(e,t)},h=function(t,e,n){var i=t.childNodes,o=i.length,a=(0,r.isUndefined)(n)?o:n;(0,r.isString)(e)&&(t.insertAdjacentHTML('beforeEnd',e),e=t.lastChild,t.removeChild(e)),a>=o?t.appendChild(e):t.insertBefore(e,i[a])},d=function(t,e){return h(t,e)},p=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2?arguments[2]:void 0,i=document.createElement(t);return e&&(0,r.each)(e,(function(t,e){return i.setAttribute(e,t)})),n&&((0,r.isString)(n)?i.innerHTML=n:i.appendChild(n)),i},g=function(t){return document.createTextNode(t)},v=function(t,e){var n,r=t.type;try{n=new window[e](r,t)}catch(t){(n=document.createEvent(e)).initEvent(r,!0,!0)}return n._parentEvent=t,0===r.indexOf('key')&&(n.keyCodeVal=t.keyCode,['keyCode','which'].forEach((function(t){Object.defineProperty(n,t,{get:function(){return this.keyCodeVal}})}))),n},m=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Array.isArray(e)?e:[e];n.forEach((function(e){var n=e.tag||'div',o=e[i]||{},a=document.createElement(n);(0,r.each)(o,(function(t,e){a.setAttribute(e,t)})),t.appendChild(a)}))}},7644:(t,e,n)=>{"use strict";n.d(e,{Z:()=>m});var r=n(1002);const i=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){return e.reject(n)}))}))};const o=function(t){return new this((function(e,n){if(!t||void 0===t.length)return n(new TypeError((0,r.Z)(t)+' '+t+' is not iterable(cannot read property Symbol(Symbol.iterator))'));var i=Array.prototype.slice.call(t);if(0===i.length)return e([]);var o=i.length;function a(t,n){if(n&&('object'===(0,r.Z)(n)||'function'==typeof n)){var s=n.then;if('function'==typeof s)return void s.call(n,(function(e){a(t,e)}),(function(n){i[t]={status:'rejected',reason:n},0==--o&&e(i)}))}i[t]={status:'fulfilled',value:n},0==--o&&e(i)}for(var s=0;s{"use strict";n.d(e,{Z:()=>i});var r=n(3168);function i(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{"use strict";n.r(e),n.d(e,{default:()=>C});var r=n(4942),i=n(1981),o=n(2316),a=n.n(o),s=n(9050),l=n(3168);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=this.em,c=this.itemSel,u=this.containerSel,f=this.plh,h=this.getContainerEl(a.container),d=this.getDocuments(t);this.dropModel=null,this.target=null,this.prevTarget=null,this.moved=0,t&&!this.matches(t,"".concat(c,", ").concat(u))&&(t=this.closest(t,c)),this.sourceEl=t,f||(this.plh=this.createPlaceholder(),h.appendChild(this.plh)),t&&((o=this.getSourceModel(t))&&o.set&&o.set('status','freezed'),this.srcModel=o),(0,l.on)(h,'mousemove dragover',this.onMove),(0,l.on)(d,'mouseup dragend touchend',this.endMove),(0,l.on)(d,'keydown',this.rollback),this.onStart({sorter:this,target:o,parent:o&&(null===(e=(n=o).parent)||void 0===e?void 0:e.call(n)),index:o&&(null===(r=(i=o).index)||void 0===r?void 0:r.call(i))}),null==s||s.clearSelection(),this.toggleSortCursor(1),null==s||s.trigger('sorter:drag:start',t,o)},getTargetModel:function(t){var e=t||this.target;return f(e).data('model')},getSourceModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.target,i=n.avoidChildren,o=void 0===i?1:i,a=this.em,s=this.sourceEl,l=t||s,c=this.dropModel,h=this.dropContent,d=function(t){return t&&r&&t.opt&&t.opt.avoidChildren&&e.isTextableActive(t,r)};if(h&&a){if(d(c)&&(c=null),!c){var p=a.get('DomComponents').getComponents(),g={avoidChildren:o,avoidStore:1,avoidUpdateStyle:1},v=p.add(h,u(u({},g),{},{temporary:1}));if(c=(c=p.remove(v,g))instanceof Array?c[0]:c,this.dropModel=c,d(c))return this.getSourceModel(l,{target:r,avoidChildren:0})}return c}return l&&f(l).data('model')},selectTargetModel:function(t,e){if(!(t instanceof a().Collection||e&&e===t)){var n=this.targetModel;n&&n!==this.srcModel&&n.set('status',''),t&&t.set&&(t.set('status','selected-parent'),this.targetModel=t)}},onMove:function(t){var e=t,n=this.em,r=this.onMoveClb,i=this.plh,o=this.customTarget;this.moved=1;var a=i.style.display;a&&'none'!==a||(i.style.display='block');var l=this.offset(this.el);this.elT=this.wmargin?Math.abs(l.top):l.top,this.elL=this.wmargin?Math.abs(l.left):l.left;var c=t.pageY-this.elT+this.el.scrollTop,u=t.pageX-this.elL+this.el.scrollLeft;if(this.canvasRelative&&n){var h=n.get('Canvas').getMouseRelativeCanvas(t,{noScroll:1});u=h.x,c=h.y}this.rX=u,this.rY=c,this.eventMove=t;var d=this.getSourceModel(),p=o?o({sorter:this,event:t}):t.target,g=this.dimsFromTarget(p,u,c),v=this.target,m=v&&this.getTargetModel(v);if(this.selectTargetModel(m,d),m||(i.style.display='none'),v){this.lastDims=g;var y=this.findPosition(g,u,c);this.isTextableActive(d,m)?(this.activeTextModel=m,i.style.display='none',this.lastPos=y,this.updateTextViewCursorPosition(e)):(this.disableTextable(),this.activeTextModel=null,this.lastPos&&this.lastPos.index==y.index&&this.lastPos.method==y.method||(this.movePlaceholder(this.plh,g,y,this.prevTargetDim),this.$plh||(this.$plh=f(this.plh)),this.canvasRelative||(this.offTop&&this.$plh.css('top','+='+this.offTop+'px'),this.offLeft&&this.$plh.css('left','+='+this.offLeft+'px')),this.lastPos=y)),(0,s.isFunction)(r)&&r({event:t,target:d,parent:m,index:y.index+('after'==y.method?1:0)}),n&&n.trigger('sorter:drag',{target:v,targetModel:m,sourceModel:d,dims:g,pos:y,x:u,y:c})}},isTextableActive:function(t,e){return t&&t.get&&t.get('textable')&&e&&e.is('text')},disableTextable:function(){var t=this.activeTextModel;t&&t.getView().disableEditing(),this.setContentEditable(t,!1)},isInFlow:function(t,e){if(!t)return!1;e=e||document.body;var n=t;return n.offsetHeight,!!this.styleInFlow(n,e)},styleInFlow:function(t,e){if(!(0,l.isTextNode)(t)){var n=t.style||{},r=f(t),i=e&&f(e);if(!n.overflow||'visible'===n.overflow){var o=r.css('float');if(!(o&&'none'!==o||i&&'flex'==i.css('display')&&'column'!==i.css('flex-direction'))){switch(n.position){case'static':case'relative':case'':break;default:return}switch(t.tagName){case'TR':case'TBODY':case'THEAD':case'TFOOT':return!0}switch(r.css('display')){case'block':case'list-item':case'table':case'flex':return!0}}}}},validTarget:function(t,e){var n=this.getTargetModel(t),r=this.getSourceModel(e,{target:n}),i={valid:!0,src:e=r&&r.view&&r.view.el,srcModel:r,trg:t=n&&n.view&&n.view.el,trgModel:n};if(!e||!t)return i.valid=!1,i;var o=r.get('draggable');if((0,s.isFunction)(o)){var l=o(r,n);i.dragInfo=l,i.draggable=l,o=l}else o=o instanceof Array?o.join(', '):o,i.dragInfo=o,o=(0,s.isString)(o)?this.matches(t,o):o,i.draggable=o;var c=n.get('droppable');if((0,s.isFunction)(c)){var u=c(r,n);i.droppable=u,i.dropInfo=u,c=u}else c=(c=c instanceof a().Collection?1:c)instanceof Array?c.join(', '):c,i.dropInfo=c,c=(0,s.isString)(c)?this.matches(e,c):c,c=o&&this.isTextableActive(r,n)?1:c,i.droppable=c;return c&&o||(i.valid=!1),i},dimsFromTarget:function(t,e,n){var r=this.em,i=[];if(!t)return i;if(this.matches(t,"".concat(this.itemSel,", ").concat(this.containerSel))||(t=this.closest(t,this.itemSel)),this.draggable instanceof Array&&(t=this.closest(t,this.draggable.join(','))),!t)return i;if(this.prevTarget&&this.prevTarget!=t&&(this.prevTarget=null),!this.prevTarget){this.targetP=this.closest(t,this.containerSel);var o=this.validTarget(t);if(r&&r.trigger('sorter:drag:validation',o),!o.valid&&this.targetP)return this.dimsFromTarget(this.targetP,e,n);this.prevTarget=t,this.prevTargetDim=this.getDim(t),this.cacheDimsP=this.getChildrenDim(this.targetP),this.cacheDims=this.getChildrenDim(t)}if(this.prevTarget==t&&(i=this.cacheDims),this.target=this.prevTarget,this.nearBorders(this.prevTargetDim,e,n)||!this.nested&&!this.cacheDims.length){var a=this.targetP;a&&this.validTarget(a).valid&&(i=this.cacheDimsP,this.target=a)}return this.lastPos=null,i},getTargetFromEl:function(t){var e,n=t,r=this.targetPrev,i=this.em,o=this.containerSel,a=this.itemSel;if(this.matches(n,"".concat(a,", ").concat(o))||(n=this.closest(n,a)),this.draggable instanceof Array&&(n=this.closest(n,this.draggable.join(','))),r&&r!=n&&(this.targetPrev=''),!this.targetPrev){e=this.closest(n,o);var s=this.validTarget(n);if(i&&i.trigger('sorter:drag:validation',s),!s.valid&&e)return this.getTargetFromEl(e);this.targetPrev=n}return this.nearElBorders(n)&&(e=this.closest(n,o))&&this.validTarget(e).valid&&(n=e),n},nearElBorders:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body,r=this.getCurrentPos(),i=r.x,o=r.y,a=e.top+n.scrollTop,s=e.left+n.scrollLeft,l=e.width,c=e.height;if(oa+c-10||is+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,r,i,o=this.em,a=this.canvasRelative,s=o&&o.get('Canvas'),l=s?s.getElementOffsets(t):{};if(a&&o){var c=s.getElementPos(t,{noScroll:1});e=c.top,n=c.left,r=c.height,i=c.width}else{var u=this.offset(t);e=this.relative?t.offsetTop:u.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:u.left-(this.wmargin?-1:1)*this.elL,r=t.offsetHeight,i=t.offsetWidth}return{top:e,left:n,height:r,width:i,offsets:l}},getChildrenDim:function(t){var e=this,n=[];if(!t)return n;var r=this.getTargetModel(t);if(r&&r.view&&!this.ignoreViewChildren){var i=r.getCurrentView?r.getCurrentView():r.view;t=i.getChildrenContainer()}return(0,s.each)(t.children,(function(r,i){var o=(0,l.getModel)(r,f),a=o&&o.index?o.index():i;if((0,l.isTextNode)(r)||e.matches(r,e.itemSel)){var s=e.getDim(r),c=e.direction;c='v'==c||'h'!=c&&e.isInFlow(r,t),s.dir=c,s.el=r,s.indexEl=a,n.push(s)}})),n},nearBorders:function(t,e,n){var r=0,i=this.borderOffset,o=e||0,a=n||0,s=t.top,l=t.left,c=t.height,u=t.width;return(s+i>a||a>s+c-i||l+i>o||o>l+u-i)&&(r=1),!!r},findPosition:function(t,e,n){for(var r={index:0,indexEl:0,method:'before'},i=0,o=0,a=0,s=0,l=0,c=0,u=0,f=0,h=t.length;fo||a&&l>=a||i&&g+mx&&(w.at=d-1))}r&&(k?(delete w.at,i=v.getView().insertComponent(r,w)):i=g.add(r,w)),this.dropContent=null,this.prevTarget=null}else if(o){var C=p.dropInfo||(null==v?void 0:v.get('droppable')),S=p.dragInfo||(null==m?void 0:m.get('draggable'));!g&&h.push('Target collection not found'),!b&&C&&h.push("Target is not droppable, accepts [".concat(C,"]")),!y&&S&&h.push("Component not draggable, acceptable by [".concat(S,"]")),o.logWarning('Invalid target position',{errors:h,model:m,context:'sorter',target:v})}return null==o||o.trigger('sorter:drag:end',{targetCollection:g,modelToDrop:r,warns:h,validResult:p,dst:t,srcEl:u}),i},rollback:function(t){(0,l.off)(this.getDocuments(),'keydown',this.rollback),27==(t.which||t.keyCode)&&(this.moved=0,this.endMove())}});var p=n(5671),g=n(3144);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Z)(this,t),this.setOptions(e),(0,s.bindAll)(this,'handleKeyDown','handleMouseDown','move','stop'),this}return(0,g.Z)(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,s.defaults)(t,y),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||'',n=t.appendTo||document.body,r=this.container;for(r||((r=document.createElement('div')).className="".concat(e,"resizer-c"),n.appendChild(r),this.container=r);r.firstChild;)r.removeChild(r.firstChild);var i={};for(var o in['tl','tc','tr','cl','cr','bl','bc','br'].forEach((function(e){return i[e]=t[e]?function(t,e){var n=e.prefix||'',r=document.createElement('i');return r.className=n+'resizer-h '+n+'resizer-h-'+t,r.setAttribute('data-'+n+'handler',t),r}(e,t):''})),i){var a=i[o];a&&r.appendChild(a)}this.handlers=i,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd,this.onUpdateContainer=t.onUpdateContainer}},{key:"toggleFrames",value:function(t){if(this.opts.silentFrames){var e=document.querySelectorAll('iframe');(0,s.each)(e,(function(e){return e.style.pointerEvents=t?'none':''}))}}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getParentEl",value:function(){return this.el.parentElement}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.posFetcher||'';return n?n(t,e):b(t)}},{key:"focus",value:function(t){t&&t===this.el||(this.el=t,this.updateContainer({forceShow:1}),(0,l.on)(this.getDocumentEl(),'mousedown',this.handleMouseDown))}},{key:"blur",value:function(){this.container.style.display='none',this.el&&((0,l.off)(this.getDocumentEl(),'mousedown',this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this.getParentEl(),r=this.opts||{},i='data-'+r.prefix+'handler',o=this.getElementPos(e,{target:'el'}),a=this.getElementPos(n);this.handlerAttr=t.target.getAttribute(i),this.clickedHandler=t.target,this.startDim={t:o.top,l:o.left,w:o.width,h:o.height},this.rectDim={t:o.top,l:o.left,w:o.width,h:o.height},this.startPos={x:t.clientX,y:t.clientY},this.parentDim={t:a.top,l:a.left,w:a.width,h:a.height};var c=this.getDocumentEl();(0,l.on)(c,'mousemove',this.move),(0,l.on)(c,'keydown',this.handleKeyDown),(0,l.on)(c,'mouseup',this.stop),(0,s.isFunction)(this.onStart)&&this.onStart(t,{docs:c,config:r,el:e,resizer:this}),this.toggleFrames(1),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,r=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=r,this.delta={x:r.x-this.startPos.x,y:r.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,l.off)(n,'mousemove',this.move),(0,l.off)(n,'keydown',this.handleKeyDown),(0,l.off)(n,'mouseup',this.stop),this.updateRect(1),this.toggleFrames(),(0,s.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this.opts,r=this.rectDim,i=this.updateTarget,o=this.getSelectedHandler(),a=n.unitHeight,l=n.unitWidth,c=n.keyWidth,u=n.keyHeight;if((0,s.isFunction)(i))i(e,r,{store:t,selectedHandler:o,resizer:this,config:n});else{var f=e.style;f[c]=r.w+l,f[u]=r.h+a}this.updateContainer()}},{key:"updateContainer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.opts,n=this.container,r=this.el,i=n.style;!e.avoidContainerUpdate&&r&&t.forceShow&&(i.display='block'),this.onUpdateContainer({el:n,resizer:this,opts:m(m({},e),t)})}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler='',this.blur())}},{key:"calc",value:function(t){var e,n=this.opts||{},r=n.step,i=this.startDim,o=n.minDim,a=n.maxDim,s=t.delta.x,c=t.delta.y,u=this.parentDim.w,f=this.parentDim.h,h=this.opts.unitWidth,d=this.opts.unitHeight,p='%'===h?i.w/100*u:i.w,g='%'===d?i.h/100*f:i.h,v={t:0,l:0,w:p,h:g};if(t){var m=t.handlerAttr;~m.indexOf('r')&&(e='%'===h?(0,l.normalizeFloat)((p+s*r)/u*100,.01):(0,l.normalizeFloat)(p+s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('b')&&(e='%'===d?(0,l.normalizeFloat)((g+c*r)/f*100,.01):(0,l.normalizeFloat)(g+c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e),~m.indexOf('l')&&(e='%'===h?(0,l.normalizeFloat)((p-s*r)/u*100,.01):(0,l.normalizeFloat)(p-s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('t')&&(e='%'===d?(0,l.normalizeFloat)((g-c*r)/f*100,.01):(0,l.normalizeFloat)(g-c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e);var y=n.ratioDefault?!t.keys.shift:t.keys.shift;if(m.indexOf('c')<0&&y){var b=i.w/i.h;v.w/v.h>b?v.h=Math.round(v.w/b):v.w=Math.round(v.h*b)}return~m.indexOf('l')&&(v.l=i.w-v.w),~m.indexOf('t')&&(v.t=i.h-v.h),v}}}]),t}();const k={init:function(t){return new w(t)}};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{appendStyles:()=>v,camelCase:()=>x,capitalize:()=>V,createId:()=>$,deepMerge:()=>D,escape:()=>j,find:()=>E,getElRect:()=>A,getElement:()=>S,getGlobal:()=>f,getKeyChar:()=>L,getKeyCode:()=>Z,getModel:()=>M,getPointerEvent:()=>R,getUiClass:()=>g,getUnitFromValue:()=>w,getViewEl:()=>U,hasDnd:()=>C,hasWin:()=>u,isCommentNode:()=>_,isComponent:()=>H,isDef:()=>c,isEmptyObj:()=>B,isEnterKey:()=>I,isEscKey:()=>N,isObject:()=>F,isRule:()=>z,isTaggableNode:()=>T,isTextNode:()=>P,matches:()=>p,normalizeFloat:()=>O,off:()=>b,on:()=>y,setViewEl:()=>W,shallowDiff:()=>m,toLowerCase:()=>h,upFirst:()=>k});var r=n(1002),i=n(4942),o=n(2982),a=n(9050);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=(0,a.isArray)(e)?(0,o.Z)(e):[e];if(r.length){var i=r.shift();if(i&&(!n.unique||!document.querySelector("link[href=\"".concat(i,"\"]")))){var s=document,l=s.head,c=document.createElement('link');c.href=i,c.rel='stylesheet',n.prepand?l.insertBefore(c,l.firstChild):l.appendChild(c)}t(r)}},m=function(t,e){var n={},r=(0,a.keys)(e);for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],s=e[i];r.indexOf(i)>=0?o!==s&&(n[i]=s):n[i]=null}for(var l in e)e.hasOwnProperty(l)&&(0,a.isUndefined)(t[l])&&(n[l]=e[l]);return n},y=function(t,e,n,r){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=function(i){t.forEach((function(t){return t&&t.addEventListener(e[i],n,r)}))},o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var i=e.toString().split('.')[1];r=i?i.length:0}return r?parseFloat(t.toFixed(r)):t},C=function(t){return'draggable'in document.createElement('i')&&(t?t.get('Config').nativeDnD:1)},S=function(t){return(0,a.isElement)(t)||P(t)?t:t&&t.getEl?t.getEl():void 0},P=function(t){return t&&3===t.nodeType},_=function(t){return t&&8===t.nodeType},T=function(t){return t&&!P(t)&&!_(t)},E=function(t,e){var n=null;return t.some((function(r,i){return e(r,i,t)?(n=r,1):0})),n},j=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return"".concat(t).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/`/g,'`')},D=function t(){for(var e=l({},arguments.length<=0?void 0:arguments[0]),n=1;n0&&void 0!==arguments[0]?arguments[0]:16,e='',n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',r=n.length,i=0;i{var r,i,o;i=[n(9050),n(2316)],r=function(t,e){var n=Array.prototype.slice;function r(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return n.call(t,e)}function o(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,(function(t){return t in e})))}var a=function(){var e=!1,n=-1;function r(){n++,e=!0,t.defer((function(){e=!1}))}return function(){return e||r(),n}}();function s(){this.registeredObjects=[],this.cidIndexes=[]}function l(e,n,r,i){for(var o,a=0,s=n.length;at.maximumStackLength&&(t.shift(),t.pointer--)}}}s.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,(function(t){return this.registeredObjects[t]}),this).concat(this.registeredObjects)}};var d={add:{undo:function(t,e,n,r){t.remove(n,r)},redo:function(t,e,n,r){r.index&&(r.at=r.index),t.add(n,r)},on:function(e,n,r){return{object:n,before:void 0,after:e,options:t.clone(r)}}},remove:{undo:function(t,e,n,r){"index"in r&&(r.at=r.index),t.add(e,r)},redo:function(t,e,n,r){t.remove(e,r)},on:function(e,n,r){return{object:n,before:e,after:void 0,options:t.clone(r)}}},change:{undo:function(e,n,r,i){t.isEmpty(n)?t.each(t.keys(r),e.unset,e):(e.set(n),i&&i.unsetData&&i.unsetData.before&&i.unsetData.before.length&&t.each(i.unsetData.before,e.unset,e))},redo:function(e,n,r,i){t.isEmpty(r)?t.each(t.keys(n),e.unset,e):(e.set(r),i&&i.unsetData&&i.unsetData.after&&i.unsetData.after.length&&t.each(i.unsetData.after,e.unset,e))},on:function(e,n){var r=e.changedAttributes(),i=t.keys(r),o=t.pick(e.previousAttributes(),i),a=t.keys(o),s=(n||(n={})).unsetData={after:[],before:[]};return i.length!=a.length&&(i.length>a.length?t.each(i,(function(t){t in o||s.before.push(t)}),this):t.each(a,(function(t){t in r||s.after.push(t)}))),{object:e,before:o,after:r,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};function p(){}function g(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?g(e,t,r,i):g(e,n,t,r)}));switch(e){case 0:o(r,"undo","redo","on")&&t.all(t.pick(r,"undo","redo","on"),t.isFunction)&&(i[n]=r);break;case 1:i[n]&&t.isObject(r)&&(i[n]=t.extend({},i[n],r));break;case 2:delete i[n]}return this}p.prototype=d;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){c("undo",this.attributes)},redo:function(t){c("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new s,this.undoTypes=new p,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",(function(t,e){this.stack.setMaxLength(e)}),this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?r(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){h(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){l("on",arguments,this._addToStack,this)},unregister:function(){l("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){u("undo",this,this.stack,t)},undoAll:function(){u("undo",this,this.stack,!1,!0)},redo:function(t){u("redo",this,this.stack,t)},redoAll:function(){u("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer{var r,i,o;o='object'==typeof self&&self.self===self&&self||'object'==typeof n.g&&n.g.global===n.g&&n.g,r=[n(9050),n(290),e],i=function(t,e,n){o.Backbone=function(t,e,n,r){var i=t.Backbone,o=Array.prototype.slice;e.VERSION='1.3.3',e.$=r,e.noConflict=function(){return t.Backbone=i,this},e.emulateHTTP=!1,e.emulateJSON=!1;var a=function(t,e,r){switch(t){case 1:return function(){return n[e](this[r])};case 2:return function(t){return n[e](this[r],t)};case 3:return function(t,i){return n[e](this[r],l(t,this),i)};case 4:return function(t,i,o){return n[e](this[r],l(t,this),i,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[r]),n[e].apply(n,t)}}},s=function(t,e,r){n.each(e,(function(e,i){n[i]&&(t.prototype[i]=a(e,i,r))}))},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},f=/\s+/,h=function(t,e,r,i,o){var a,s=0;if(r&&'object'==typeof r){void 0!==i&&'context'in o&&void 0===o.context&&(o.context=i);for(a=n.keys(r);sthis.length&&(i=this.length),i<0&&(i+=this.length+1);var o,a,s=[],l=[],c=[],u=[],f={},h=e.add,d=e.merge,p=e.remove,g=!1,v=this.comparator&&null==i&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(a=0;a7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=('/'+this.root+'/').replace(Z,'/'),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||'/';return this.location.replace(e+'#'+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement('iframe'),this.iframe.src='javascript:0',this.iframe.style.display='none',this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash='#'+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent('on'+t,e)};if(this._usePushState?o('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe?o('hashchange',this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent('on'+t,e)};this._usePushState?t('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe&&t('hashchange',this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,(function(e){if(e.route.test(t))return e.callback(t),!0})))},navigate:function(t,e){if(!A.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||'');var n=this.root;''!==t&&'?'!==t.charAt(0)||(n=n.slice(0,-1)||'/');var r=n+t;if(t=this.decodeFragment(t.replace(L,'')),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?'replaceState':'pushState']({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;e.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var r=t.href.replace(/(javascript:|#).*$/,'');t.replace(r+'#'+e)}else t.hash='#'+e}}),e.history=new A;var N=function(t,e){var r,i=this;return r=t&&n.has(t,'constructor')?t.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,e),r.prototype=n.create(i.prototype,t),r.prototype.constructor=r,r.__super__=i.prototype,r};b.extend=w.extend=T.extend=C.extend=A.extend=N;var I=function(){throw new Error('A "url" property or function must be specified')},F=function(t,e){var n=e.error;e.error=function(r){n&&n.call(e.context,t,r,e),t.trigger('error',t,r,e)}};return e}(o,n,t,e)}.apply(e,r),void 0===i||(t.exports=i)},9210:(t,e,n)=>{!function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,r){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!r.lexical||")"!=r.lexical.type)&&/^[;{}]$/.test(e)&&!/^;/.test(n)}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,r,i){var o=!1;return"html"==this.configuration&&(o=!!i.context&&e.test(i.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&i.context||/^-1&&s>-1&&s>a&&(t=t.substr(0,a)+t.substring(a+o.commentStart.length,s)+t.substr(s+o.commentEnd.length)),i.replaceRange(t,n,r)}}))})),t.defineExtension("autoIndentRange",(function(t,e){var n=this;this.operation((function(){for(var r=t.line;r<=e.line;r++)n.indentLine(r,"smart")}))})),t.defineExtension("autoFormatRange",(function(e,n){var r=this,i=r.getMode(),o=r.getRange(e,n).split("\n"),a=t.copyState(i,r.getTokenAt(e).state),s=r.getOption("tabSize"),l="",c=0,u=0===e.ch;function f(){l+="\n",u=!0,++c}for(var h=0;h2),v=/Android/.test(t),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(t),y=g||/Mac/.test(e),b=/\bCrOS\b/.test(t),w=/win/i.test(e),k=f&&t.match(/Version\/(\d*\.\d*)/);k&&(k=Number(k[1])),k&&k>=15&&(f=!1,l=!0);var x=y&&(c||f&&(null==k||k<12.11)),O=n||a&&s>=9;function C(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var S,P=function(t,e){var n=t.className,r=C(e).exec(n);if(r){var i=n.slice(r.index+r[0].length);t.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function _(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function T(t,e){return _(t).appendChild(e)}function E(t,e,n,r){var i=document.createElement(t);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof e)i.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return a+(e-o);a+=s-o,a+=n-a%n,o=s+1}}g?Z=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:a&&(Z=function(t){try{t.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=L(this.onTimeout,this)};function B(t,e){for(var n=0;n=e)return r+Math.min(a,e-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=e)return r}}var q=[""];function G(t){for(;q.length<=t;)q.push(K(q)+" ");return q[t]}function K(t){return t[t.length-1]}function Y(t,e){for(var n=[],r=0;r"€"&&(t.toUpperCase()!=t.toLowerCase()||tt.test(t))}function nt(t,e){return e?!!(e.source.indexOf("\\w")>-1&&et(t))||e.test(t):et(t)}function rt(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}var it=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ot(t){return t.charCodeAt(0)>=768&&it.test(t)}function at(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var i=(e+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+r}}function lt(t,e,n,r){if(!t)return r(e,n,"ltr",0);for(var i=!1,o=0;oe||e==n&&a.to==e)&&(r(Math.max(a.from,e),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(e,n,"ltr")}var ct=null;function ut(t,e,n){var r;ct=null;for(var i=0;ie)return i;o.to==e&&(o.from!=o.to&&"before"==n?r=i:ct=i),o.from==e&&(o.from!=o.to&&"before"!=n?r=i:ct=i)}return null!=r?r:ct}var ft=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",e="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?t.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?e.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function l(t,e,n){this.level=t,this.from=e,this.to=n}return function(t,e){var c="ltr"==e?"L":"R";if(0==t.length||"ltr"==e&&!r.test(t))return!1;for(var u=t.length,f=[],h=0;h-1&&(r[e]=i.slice(0,o).concat(i.slice(o+1)))}}}function mt(t,e){var n=gt(t,e);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function kt(t){t.prototype.on=function(t,e){pt(this,t,e)},t.prototype.off=function(t,e){vt(this,t,e)}}function xt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Ot(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Ct(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function St(t){xt(t),Ot(t)}function Pt(t){return t.target||t.srcElement}function _t(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),y&&t.ctrlKey&&1==e&&(e=3),e}var Tt,Et,jt=function(){if(a&&s<9)return!1;var t=E('div');return"draggable"in t||"dragDrop"in t}();function Dt(t){if(null==Tt){var e=E("span","​");T(t,E("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Tt=e.offsetWidth<=1&&e.offsetHeight>2&&!(a&&s<8))}var n=Tt?E("span","​"):E("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Mt(t){if(null!=Et)return Et;var e=T(t,document.createTextNode("AخA")),n=S(e,0,1).getBoundingClientRect(),r=S(e,1,2).getBoundingClientRect();return _(t),!(!n||n.left==n.right)&&(Et=r.right-n.right<3)}var At,Rt=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,n=[],r=t.length;e<=r;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),e+=a+1):(n.push(o),e=i+1)}return n}:function(t){return t.split(/\r\n?|\n/)},Zt=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(t){return!1}}:function(t){var e;try{e=t.ownerDocument.selection.createRange()}catch(t){}return!(!e||e.parentElement()!=t)&&0!=e.compareEndPoints("StartToEnd",e)},Lt="oncopy"in(At=E("div"))||(At.setAttribute("oncopy","return;"),"function"==typeof At.oncopy),Nt=null;function It(t){if(null!=Nt)return Nt;var e=T(t,E("span","x")),n=e.getBoundingClientRect(),r=S(e,0,1).getBoundingClientRect();return Nt=Math.abs(n.left-r.left)>1}var Ft={},Bt={};function Vt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),Ft[t]=e}function Ht(t,e){Bt[t]=e}function zt(t){if("string"==typeof t&&Bt.hasOwnProperty(t))t=Bt[t];else if(t&&"string"==typeof t.name&&Bt.hasOwnProperty(t.name)){var e=Bt[t.name];"string"==typeof e&&(e={name:e}),(t=Q(e,t)).name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return zt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return zt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Ut(t,e){e=zt(e);var n=Ft[e.name];if(!n)return Ut(t,"text/plain");var r=n(t,e);if(Wt.hasOwnProperty(e.name)){var i=Wt[e.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=e.name,e.helperType&&(r.helperType=e.helperType),e.modeProps)for(var a in e.modeProps)r[a]=e.modeProps[a];return r}var Wt={};function $t(t,e){N(e,Wt.hasOwnProperty(t)?Wt[t]:Wt[t]={})}function qt(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var r in e){var i=e[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Gt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}var Yt=function(t,e,n){this.pos=this.start=0,this.string=t,this.tabSize=e||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Xt(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(e=t.first&&en?oe(n,Xt(t,n).text.length):de(e,Xt(t,e.line).text.length)}function de(t,e){var n=t.ch;return null==n||n>e?oe(t.line,e):n<0?oe(t.line,0):t}function pe(t,e){for(var n=[],r=0;r=this.string.length},Yt.prototype.sol=function(){return this.pos==this.lineStart},Yt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Yt.prototype.next=function(){if(this.pose},Yt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Yt.prototype.skipToEnd=function(){this.pos=this.string.length},Yt.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},Yt.prototype.backUp=function(t){this.pos-=t},Yt.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==e&&(this.pos+=r[0].length),r)}var i=function(t){return n?t.toLowerCase():t};if(i(this.string.substr(this.pos,t.length))==i(t))return!1!==e&&(this.pos+=t.length),!0},Yt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Yt.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},Yt.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},Yt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ge=function(t,e){this.state=t,this.lookAhead=e},ve=function(t,e,n,r){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function me(t,e,n,r){var i=[t.state.modeGen],o={};Pe(t,e.text,t.doc.mode,n,(function(t,e){return i.push(t,e)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=t.state.overlays[r],l=1,c=0;n.state=!0,Pe(t,e.text,s.mode,n,(function(t,e){for(var n=l;ct&&i.splice(l,1,t,i[l+1],r),l+=2,c=Math.min(t,r)}if(e)if(s.opaque)i.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&qt(t.doc.mode,r.state),o=me(t,e,r);i&&(r.state=i),e.stateAfter=r.save(!i),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function be(t,e,n){var r=t.doc,i=t.display;if(!r.mode.startState)return new ve(r,!0,e);var o=_e(t,e,n),a=o>r.first&&Xt(r,o-1).stateAfter,s=a?ve.fromSaved(r,a,o):new ve(r,Kt(r.mode),o);return r.iter(o,e,(function(n){we(t,n.text,s);var r=s.line;n.stateAfter=r==e-1||r%5==0||r>=i.viewFrom&&re.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}ve.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ve.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var e=this.baseTokens[this.baseTokenPos+1];return{type:e&&e.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ve.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ve.fromSaved=function(t,e,n){return e instanceof ge?new ve(t,qt(t.mode,e.state),n,e.lookAhead):new ve(t,qt(t.mode,e),n)},ve.prototype.save=function(t){var e=!1!==t?qt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ge(e,this.maxLookAhead):e};var Oe=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n};function Ce(t,e,n,r){var i,o,a=t.doc,s=a.mode,l=Xt(a,(e=he(a,e)).line),c=be(t,e.line,n),u=new Yt(l.text,t.options.tabSize,c);for(r&&(o=[]);(r||u.post.options.maxHighlightLength?(s=!1,a&&we(t,e,r,f.pos),f.pos=e.length,l=null):l=Se(xe(n,f,r.state,h),o),h){var d=h[0].name;d&&(l="m-"+(l?d+" "+l:d))}if(!s||u!=l){for(;ca;--s){if(s<=o.first)return o.first;var l=Xt(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof ge?c.lookAhead:0)<=o.modeFrontier))return s;var u=I(l.text,null,t.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function Te(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;r--){var i=Xt(t,r).stateAfter;if(i&&(!(i instanceof ge)||r+i.lookAhead=e:o.to>e);(r||(r=[])).push(new Ae(a,o.from,s?null:o.to))}}return r}function Ie(t,e,n){var r;if(t)for(var i=0;i=e:o.to>e)||o.from==e&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=e:o.from0&&s)for(var b=0;b0)){var u=[l,1],f=ae(c.from,s.from),h=ae(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function He(t){var e=t.markedSpans;if(e){for(var n=0;ne)&&(!n||$e(n,o.marker)<0)&&(n=o.marker)}return n}function Xe(t,e,n,r,i){var o=Xt(t,e),a=je&&o.markedSpans;if(a)for(var s=0;s=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.to,n)>=0:ae(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.from,r)<=0:ae(c.from,r)<0)))return!0}}}function Je(t){for(var e;e=Ge(t);)t=e.find(-1,!0).line;return t}function Qe(t){for(var e;e=Ke(t);)t=e.find(1,!0).line;return t}function tn(t){for(var e,n;e=Ke(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function en(t,e){var n=Xt(t,e),r=Je(n);return n==r?e:ee(r)}function nn(t,e){if(e>t.lastLine())return e;var n,r=Xt(t,e);if(!rn(t,r))return e;for(;n=Ke(r);)r=n.find(1,!0).line;return ee(r)+1}function rn(t,e){var n=je&&e.markedSpans;if(n)for(var r=void 0,i=0;ie.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)}))}var cn=function(t,e,n){this.text=t,ze(this,e),this.height=n?n(this):1};function un(t,e,n,r){t.text=e,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),null!=t.order&&(t.order=null),He(t),ze(t,n);var i=r?r(t):1;i!=t.height&&te(t,i)}function fn(t){t.parent=null,He(t)}cn.prototype.lineNo=function(){return ee(this)},kt(cn);var hn={},dn={};function pn(t,e){if(!t||/^\s*$/.test(t))return null;var n=e.addModeClass?dn:hn;return n[t]||(n[t]=t.replace(/\S+/g,"cm-$&"))}function gn(t,e){var n=j("span",null,null,l?"padding-right: .1px":null),r={pre:j("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};e.measure={};for(var i=0;i<=(e.rest?e.rest.length:0);i++){var o=i?e.rest[i-1]:e.line,a=void 0;r.pos=0,r.addToken=mn,Mt(t.display.measure)&&(a=ht(o,t.doc.direction))&&(r.addToken=bn(r.addToken,a)),r.map=[],kn(o,r,ye(t,o,e!=t.display.externalMeasured&&ee(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=R(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=R(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Dt(t.display.measure))),0==i?(e.measure.map=r.map,e.measure.cache={}):((e.measure.maps||(e.measure.maps=[])).push(r.map),(e.measure.caches||(e.measure.caches=[])).push({}))}if(l){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return mt(t,"renderLine",t,e.line,r.pre),r.pre.className&&(r.textClass=R(r.pre.className,r.textClass||"")),r}function vn(t){var e=E("span","•","cm-invalidchar");return e.title="\\u"+t.charCodeAt(0).toString(16),e.setAttribute("aria-label",e.title),e}function mn(t,e,n,r,i,o,l){if(e){var c,u=t.splitSpaces?yn(e,t.trailingSpace):e,f=t.cm.state.specialChars,h=!1;if(f.test(e)){c=document.createDocumentFragment();for(var d=0;;){f.lastIndex=d;var p=f.exec(e),g=p?p.index-d:e.length-d;if(g){var v=document.createTextNode(u.slice(d,d+g));a&&s<9?c.appendChild(E("span",[v])):c.appendChild(v),t.map.push(t.pos,t.pos+g,v),t.col+=g,t.pos+=g}if(!p)break;d+=g+1;var m=void 0;if("\t"==p[0]){var y=t.cm.options.tabSize,b=y-t.col%y;(m=c.appendChild(E("span",G(b),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),t.col+=b}else"\r"==p[0]||"\n"==p[0]?((m=c.appendChild(E("span","\r"==p[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",p[0]),t.col+=1):((m=t.cm.options.specialCharPlaceholder(p[0])).setAttribute("cm-text",p[0]),a&&s<9?c.appendChild(E("span",[m])):c.appendChild(m),t.col+=1);t.map.push(t.pos,t.pos+1,m),t.pos++}}else t.col+=e.length,c=document.createTextNode(u),t.map.push(t.pos,t.pos+e.length,c),a&&s<9&&(h=!0),t.pos+=e.length;if(t.trailingSpace=32==u.charCodeAt(e.length-1),n||r||i||h||o||l){var w=n||"";r&&(w+=r),i&&(w+=i);var k=E("span",[c],w,o);if(l)for(var x in l)l.hasOwnProperty(x)&&"style"!=x&&"class"!=x&&k.setAttribute(x,l[x]);return t.content.appendChild(k)}t.content.appendChild(c)}}function yn(t,e){if(t.length>1&&!/ /.test(t))return t;for(var n=e,r="",i=0;ic&&f.from<=c);h++);if(f.to>=u)return t(n,r,i,o,a,s,l);t(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function wn(t,e,n,r){var i=!r&&n.widgetNode;i&&t.map.push(t.pos,t.pos+e,i),!r&&t.cm.display.input.needsContentAttribute&&(i||(i=t.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(t.cm.display.input.setUneditable(i),t.content.appendChild(i)),t.pos+=e,t.trailingSpace=!1}function kn(t,e,n){var r=t.markedSpans,i=t.text,o=0;if(r)for(var a,s,l,c,u,f,h,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=s="",h=null,f=null,m=1/0;for(var y=[],b=void 0,w=0;wp||x.collapsed&&k.to==p&&k.from==p)){if(null!=k.to&&k.to!=p&&m>k.to&&(m=k.to,c=""),x.className&&(l+=" "+x.className),x.css&&(s=(s?s+";":"")+x.css),x.startStyle&&k.from==p&&(u+=" "+x.startStyle),x.endStyle&&k.to==m&&(b||(b=[])).push(x.endStyle,k.to),x.title&&((h||(h={})).title=x.title),x.attributes)for(var O in x.attributes)(h||(h={}))[O]=x.attributes[O];x.collapsed&&(!f||$e(f.marker,x)<0)&&(f=k)}else k.from>p&&m>k.from&&(m=k.from)}if(b)for(var C=0;C=d)break;for(var P=Math.min(d,m);;){if(v){var _=p+v.length;if(!f){var T=_>P?v.slice(0,P-p):v;e.addToken(e,T,a?a+l:l,u,p+T.length==m?c:"",s,h)}if(_>=P){v=v.slice(P-p),p=P;break}p=_,u=""}v=i.slice(o,o=n[g++]),a=pn(n[g++],e.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Jn(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var r=0;rn)return{map:t.measure.maps[i],cache:t.measure.caches[i],before:!0}}function Qn(t,e){var n=ee(e=Je(e)),r=t.display.externalMeasured=new xn(t.doc,e,n);r.lineN=n;var i=r.built=gn(t,r);return r.text=i.pre,T(t.display.lineMeasure,i.pre),r}function tr(t,e,n,r){return rr(t,nr(t,e),n,r)}function er(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(i=(o=l-s)-1,e>=l&&(a="right")),null!=i){if(r=t[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)r=t[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c=0&&(n=t[i]).left==n.right;i--);return n}function lr(t,e,n,r){var i,o=ar(e.map,n,r),l=o.node,c=o.start,u=o.end,f=o.collapse;if(3==l.nodeType){for(var h=0;h<4;h++){for(;c&&ot(e.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u0&&(f=r="right"),i=t.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==r?d.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+jr(t.display),top:p.top,bottom:p.bottom}:or}for(var g=i.top-e.rect.top,v=i.bottom-e.rect.top,m=(g+v)/2,y=e.view.measure.heights,b=0;b=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(t,e,n){return a(n?t-1:t,1==s[e].level!=n)}var f=ut(s,l,c),h=ct,d=u(l,f,"before"==c);return null!=h&&(d.other=u(l,h,"before"!=c)),d}function wr(t,e){var n=0;e=he(t.doc,e),t.options.lineWrapping||(n=jr(t.display)*e.ch);var r=Xt(t.doc,e.line),i=an(r)+Wn(t.display);return{left:n,right:n,top:i,bottom:i+r.height}}function kr(t,e,n,r,i){var o=oe(t,e,n);return o.xRel=i,r&&(o.outside=r),o}function xr(t,e,n){var r=t.doc;if((n+=t.display.viewOffset)<0)return kr(r.first,0,null,-1,-1);var i=ne(r,n),o=r.first+r.size-1;if(i>o)return kr(r.first+r.size-1,Xt(r,o).text.length,null,1,1);e<0&&(e=0);for(var a=Xt(r,i);;){var s=Pr(t,a,i,e,n),l=Ye(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=Xt(r,i=c.line)}}function Or(t,e,n,r){r-=gr(e);var i=e.text.length,o=st((function(e){return rr(t,n,e-1).bottom<=r}),i,0);return{begin:o,end:i=st((function(e){return rr(t,n,e).top>r}),o,i)}}function Cr(t,e,n,r){return n||(n=nr(t,e)),Or(t,e,n,vr(t,e,rr(t,n,r),"line").top)}function Sr(t,e,n,r){return!(t.bottom<=n)&&(t.top>n||(r?t.left:t.right)>e)}function Pr(t,e,n,r,i){i-=an(e);var o=nr(t,e),a=gr(e),s=0,l=e.text.length,c=!0,u=ht(e,t.doc.direction);if(u){var f=(t.options.lineWrapping?Tr:_r)(t,e,n,o,u,r,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var h,d,p=null,g=null,v=st((function(e){var n=rr(t,o,e);return n.top+=a,n.bottom+=a,!!Sr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=e,g=n),!0)}),s,l),m=!1;if(g){var y=r-g.left=w.bottom?1:0}return kr(n,v=at(e.text,v,1),d,m,r-h)}function _r(t,e,n,r,i,o,a){var s=st((function(s){var l=i[s],c=1!=l.level;return Sr(br(t,oe(n,c?l.to:l.from,c?"before":"after"),"line",e,r),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=br(t,oe(n,c?l.from:l.to,c?"after":"before"),"line",e,r);Sr(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function Tr(t,e,n,r,i,o,a){var s=Or(t,e,r,a),l=s.begin,c=s.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,f=null,h=0;h=c||d.to<=l)){var p=rr(t,r,1!=d.level?Math.min(c,d.to)-1:Math.max(l,d.from)).right,g=pg)&&(u=d,f=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Er(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==ir){ir=E("pre",null,"CodeMirror-line-like");for(var e=0;e<49;++e)ir.appendChild(document.createTextNode("x")),ir.appendChild(E("br"));ir.appendChild(document.createTextNode("x"))}T(t.measure,ir);var n=ir.offsetHeight/50;return n>3&&(t.cachedTextHeight=n),_(t.measure),n||1}function jr(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=E("span","xxxxxxxxxx"),n=E("pre",[e],"CodeMirror-line-like");T(t.measure,n);var r=e.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(t.cachedCharWidth=i),i||10}function Dr(t){for(var e=t.display,n={},r={},i=e.gutters.clientLeft,o=e.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=t.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:Mr(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:e.wrapper.clientWidth}}function Mr(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function Ar(t){var e=Er(t.display),n=t.options.lineWrapping,r=n&&Math.max(5,t.display.scroller.clientWidth/jr(t.display)-3);return function(i){if(rn(t.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=Xt(t.doc,c.line).text).length==c.ch){var u=I(l,l.length,t.options.tabSize)-l.length;c=oe(c.line,Math.max(0,Math.round((o-qn(t.display).left)/jr(t.display))-u))}return c}function Lr(t,e){if(e>=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,r=0;re)&&(i.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=i.viewTo)je&&en(t.doc,e)i.viewFrom?Fr(t):(i.viewFrom+=r,i.viewTo+=r);else if(e<=i.viewFrom&&n>=i.viewTo)Fr(t);else if(e<=i.viewFrom){var o=Br(t,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Fr(t)}else if(n>=i.viewTo){var a=Br(t,e,e,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Fr(t)}else{var s=Br(t,e,e,-1),l=Br(t,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(On(t,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Fr(t)}var c=i.externalMeasured;c&&(n=i.lineN&&e=r.viewTo)){var o=r.view[Lr(t,e)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==B(a,n)&&a.push(n)}}}function Fr(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Br(t,e,n,r){var i,o=Lr(t,e),a=t.display.view;if(!je||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var s=t.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-e,o++}else i=s-e;e+=i,n+=i}for(;en(t.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Vr(t,e,n){var r=t.display;0==r.view.length||e>=r.viewTo||n<=r.viewFrom?(r.view=On(t,e,n),r.viewFrom=e):(r.viewFrom>e?r.view=On(t,e,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Lr(t,n)))),r.viewTo=n}function Hr(t){for(var e=t.display.view,n=0,r=0;r=t.display.viewTo||s.to().line0&&(i.style.width=o.right-o.left+"px")}if(r.other){var a=n.appendChild(E("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=r.other.left+"px",a.style.top=r.other.top+"px",a.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function $r(t,e){return t.top-e.top||t.left-e.left}function qr(t,e,n){var r=t.display,i=t.doc,o=document.createDocumentFragment(),a=qn(t.display),s=a.left,l=Math.max(r.sizerWidth,Kn(t)-r.sizer.offsetLeft)-a.right,c="ltr"==i.direction;function u(t,e,n,r){e<0&&(e=0),e=Math.round(e),r=Math.round(r),o.appendChild(E("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px;\n top: "+e+"px; width: "+(null==n?l-t:n)+"px;\n height: "+(r-e)+"px"))}function f(e,n,r){var o,a,f=Xt(i,e),h=f.text.length;function d(n,r){return yr(t,oe(e,n),"div",f,r)}function p(e,n,r){var i=Cr(t,f,null,e),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(f.text.charAt(i.end-1))?2:1),o)[o]}var g=ht(f,i.direction);return lt(g,n||0,null==r?h:r,(function(t,e,i,f){var v="ltr"==i,m=d(t,v?"left":"right"),y=d(e-1,v?"right":"left"),b=null==n&&0==t,w=null==r&&e==h,k=0==f,x=!g||f==g.length-1;if(y.top-m.top<=3){var O=(c?w:b)&&x,C=(c?b:w)&&k?s:(v?m:y).left,S=O?l:(v?y:m).right;u(C,m.top,S-C,m.bottom)}else{var P,_,T,E;v?(P=c&&b&&k?s:m.left,_=c?l:p(t,i,"before"),T=c?s:p(e,i,"after"),E=c&&w&&x?l:y.right):(P=c?p(t,i,"before"):s,_=!c&&b&&k?l:m.right,T=!c&&w&&x?s:y.left,E=c?p(e,i,"after"):l),u(P,m.top,_-P,m.bottom),m.bottom0?e.blinker=setInterval((function(){t.hasFocus()||Jr(t),e.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Kr(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||Xr(t))}function Yr(t){t.state.delayingBlurEvent=!0,setTimeout((function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&Jr(t))}),100)}function Xr(t,e){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(mt(t,"focus",t,e),t.state.focused=!0,A(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),l&&setTimeout((function(){return t.display.input.reset(!0)}),20)),t.display.input.receivedFocus()),Gr(t))}function Jr(t,e){t.state.delayingBlurEvent||(t.state.focused&&(mt(t,"blur",t,e),t.state.focused=!1,P(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout((function(){t.state.focused||(t.display.shift=!1)}),150))}function Qr(t){for(var e=t.display,n=e.lineDiv.offsetTop,r=Math.max(0,e.scroller.getBoundingClientRect().top),i=e.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(it.display.sizerWidth){var m=Math.ceil(h/jr(t.display));m>t.display.maxLineLength&&(t.display.maxLineLength=m,t.display.maxLine=c.line,t.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(e.scroller.scrollTop+=o)}function ti(t){if(t.widgets)for(var e=0;e=a&&(o=ne(e,an(Xt(e,l))-t.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function ni(t,e){if(!yt(t,"scrollCursorIntoView")){var n=t.display,r=n.sizer.getBoundingClientRect(),i=null;if(e.top+r.top<0?i=!0:e.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=E("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Wn(t.display))+"px;\n height: "+(e.bottom-e.top+Gn(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(o),o.scrollIntoView(i),t.display.lineSpace.removeChild(o)}}}function ri(t,e,n,r){var i;null==r&&(r=0),t.options.lineWrapping||e!=n||(n="before"==e.sticky?oe(e.line,e.ch+1,"before"):e,e=e.ch?oe(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e);for(var o=0;o<5;o++){var a=!1,s=br(t,e),l=n&&n!=e?br(t,n):s,c=oi(t,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),u=t.doc.scrollTop,f=t.doc.scrollLeft;if(null!=c.scrollTop&&(hi(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(pi(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function ii(t,e){var n=oi(t,e);null!=n.scrollTop&&hi(t,n.scrollTop),null!=n.scrollLeft&&pi(t,n.scrollLeft)}function oi(t,e){var n=t.display,r=Er(t.display);e.top<0&&(e.top=0);var i=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Yn(t),a={};e.bottom-e.top>o&&(e.bottom=e.top+o);var s=t.doc.height+$n(n),l=e.tops-r;if(e.topi+o){var u=Math.min(e.top,(c?s:e.bottom)-o);u!=i&&(a.scrollTop=u)}var f=t.options.fixedGutter?0:n.gutters.offsetWidth,h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft-f,d=Kn(t)-n.gutters.offsetWidth,p=e.right-e.left>d;return p&&(e.right=e.left+d),e.left<10?a.scrollLeft=0:e.leftd+h-3&&(a.scrollLeft=e.right+(p?0:10)-d),a}function ai(t,e){null!=e&&(ui(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function si(t){ui(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function li(t,e,n){null==e&&null==n||ui(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function ci(t,e){ui(t),t.curOp.scrollToPos=e}function ui(t){var e=t.curOp.scrollToPos;e&&(t.curOp.scrollToPos=null,fi(t,wr(t,e.from),wr(t,e.to),e.margin))}function fi(t,e,n,r){var i=oi(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-r,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+r});li(t,i.scrollLeft,i.scrollTop)}function hi(t,e){Math.abs(t.doc.scrollTop-e)<2||(n||zi(t,{top:e}),di(t,e,!0),n&&zi(t),Zi(t,100))}function di(t,e,n){e=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e)),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function pi(t,e,n,r){e=Math.max(0,Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!r||(t.doc.scrollLeft=e,qi(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function gi(t){var e=t.display,n=e.gutters.offsetWidth,r=Math.round(t.doc.height+$n(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Gn(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}var vi=function(t,e,n){this.cm=n;var r=this.vert=E("div",[E("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=E("div",[E("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,t(r),t(i),pt(r,"scroll",(function(){r.clientHeight&&e(r.scrollTop,"vertical")})),pt(i,"scroll",(function(){i.clientWidth&&e(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vi.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,r=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?r+"px":"0";var i=t.viewHeight-(e?r:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:e?r:0}},vi.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vi.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vi.prototype.zeroWidthHack=function(){var t=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},vi.prototype.enableZeroWidthBar=function(t,e,n){function r(){var i=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,r)}t.style.pointerEvents="auto",e.set(1e3,r)},vi.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var mi=function(){};function yi(t,e){e||(e=gi(t));var n=t.display.barWidth,r=t.display.barHeight;bi(t,e);for(var i=0;i<4&&n!=t.display.barWidth||r!=t.display.barHeight;i++)n!=t.display.barWidth&&t.options.lineWrapping&&Qr(t),bi(t,gi(t)),n=t.display.barWidth,r=t.display.barHeight}function bi(t,e){var n=t.display,r=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}mi.prototype.update=function(){return{bottom:0,right:0}},mi.prototype.setScrollLeft=function(){},mi.prototype.setScrollTop=function(){},mi.prototype.clear=function(){};var wi={native:vi,null:mi};function ki(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&P(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new wi[t.options.scrollbarStyle]((function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pt(e,"mousedown",(function(){t.state.focused&&setTimeout((function(){return t.display.input.focus()}),0)})),e.setAttribute("cm-not-content","true")}),(function(e,n){"horizontal"==n?pi(t,e):hi(t,e)}),t),t.display.scrollbars.addClass&&A(t.display.wrapper,t.display.scrollbars.addClass)}var xi=0;function Oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++xi,markArrays:null},Sn(t.curOp)}function Ci(t){var e=t.curOp;e&&_n(e,(function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Ni(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function _i(t){t.updatedDisplay=t.mustUpdate&&Vi(t.cm,t.update)}function Ti(t){var e=t.cm,n=e.display;t.updatedDisplay&&Qr(e),t.barMeasure=gi(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=tr(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Gn(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Kn(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function Ei(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var n=+new Date+t.options.workTime,r=be(t,e.highlightFrontier),i=[];e.iter(r.line,Math.min(e.first+e.size,t.display.viewTo+500),(function(o){if(r.line>=t.display.viewFrom){var a=o.styles,s=o.text.length>t.options.maxHighlightLength?qt(e.mode,r.state):null,l=me(t,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!f&&hn)return Zi(t,t.options.workDelay),!0})),e.highlightFrontier=r.line,e.modeFrontier=Math.max(e.modeFrontier,r.line),i.length&&Di(t,(function(){for(var e=0;e=n.viewFrom&&e.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Hr(t))return!1;Gi(t)&&(Fr(t),e.dims=Dr(t));var i=r.first+r.size,o=Math.max(e.visible.from-t.options.viewportMargin,r.first),a=Math.min(i,e.visible.to+t.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),je&&(o=en(t.doc,o),a=nn(t.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=e.wrapperHeight||n.lastWrapWidth!=e.wrapperWidth;Vr(t,o,a),n.viewOffset=an(Xt(t.doc,n.viewFrom)),t.display.mover.style.top=n.viewOffset+"px";var l=Hr(t);if(!s&&0==l&&!e.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Fi(t);return l>4&&(n.lineDiv.style.display="none"),Ui(t,n.updateLineNumbers,e.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Bi(c),_(n.cursorDiv),_(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=e.wrapperHeight,n.lastWrapWidth=e.wrapperWidth,Zi(t,400)),n.updateLineNumbers=null,!0}function Hi(t,e){for(var n=e.viewport,r=!0;;r=!1){if(r&&t.options.lineWrapping&&e.oldDisplayWidth!=Kn(t))r&&(e.visible=ei(t.display,t.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$n(t.display)-Yn(t),n.top)}),e.visible=ei(t.display,t.doc,n),e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)break;if(!Vi(t,e))break;Qr(t);var i=gi(t);zr(t),yi(t,i),$i(t,i),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function zi(t,e){var n=new Ni(t,e);if(Vi(t,n)){Qr(t),Hi(t,n);var r=gi(t);zr(t),yi(t,r),$i(t,r),n.finish()}}function Ui(t,e,n){var r=t.display,i=t.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(e){var n=e.nextSibling;return l&&y&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var c=r.view,u=r.viewFrom,f=0;f-1&&(d=!1),Dn(t,h,u,n)),d&&(_(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(ie(t.options,u)))),a=h.node.nextSibling}else{var p=Fn(t,h,u,n);o.insertBefore(p,a)}u+=h.size}for(;a;)a=s(a)}function Wi(t){var e=t.gutters.offsetWidth;t.sizer.style.marginLeft=e+"px",En(t,"gutterChanged",t)}function $i(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Gn(t)+"px"}function qi(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=Mr(e)-e.scroller.scrollLeft+t.doc.scrollLeft,i=e.gutters.offsetWidth,o=r+"px",a=0;as.clientWidth,u=s.scrollHeight>s.clientHeight;if(i&&c||o&&u){if(o&&y&&l)t:for(var h=e.target,d=a.view;h!=s;h=h.parentNode)for(var p=0;p=0&&ae(t,r.to())<=0)return n}return-1};var oo=function(t,e){this.anchor=t,this.head=e};function ao(t,e,n){var r=t&&t.options.selectionsMayTouch,i=e[n];e.sort((function(t,e){return ae(t.from(),e.from())})),n=B(e,i);for(var o=1;o0:l>=0){var c=ue(s.from(),a.from()),u=ce(s.to(),a.to()),f=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,e.splice(--o,2,new oo(f?u:c,f?c:u))}}return new io(e,n)}function so(t,e){return new io([new oo(t,e||t)],0)}function lo(t){return t.text?oe(t.from.line+t.text.length-1,K(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function co(t,e){if(ae(t,e.from)<0)return t;if(ae(t,e.to)<=0)return lo(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,r=t.ch;return t.line==e.to.line&&(r+=lo(e).ch-e.to.ch),oe(n,r)}function uo(t,e){for(var n=[],r=0;r1&&t.remove(s.line+1,p-1),t.insert(s.line+1,m)}En(t,"change",t,e)}function yo(t,e,n){function r(t,i,o){if(t.linked)for(var a=0;a1&&!t.done[t.done.length-2].ranges?(t.done.pop(),K(t.done)):void 0}function Po(t,e,n,r){var i=t.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&i.lastModTime>s-(t.cm?t.cm.options.historyEventDelay:500)||"*"==e.origin.charAt(0)))&&(o=So(i,i.lastOp==r)))a=K(o.changes),0==ae(e.from,e.to)&&0==ae(e.from,a.to)?a.to=lo(e):o.changes.push(Oo(t,e));else{var l=K(i.done);for(l&&l.ranges||Eo(t.sel,i.done),o={changes:[Oo(t,e)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=e.origin,a||mt(t,"historyAdded")}function _o(t,e,n,r){var i=e.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function To(t,e,n,r){var i=t.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||_o(t,o,K(i.done),e))?i.done[i.done.length-1]=e:Eo(e,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Co(i.undone)}function Eo(t,e){var n=K(e);n&&n.ranges&&n.equals(t)||e.push(t)}function jo(t,e,n,r){var i=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,r),(function(n){n.markedSpans&&((i||(i=e["spans_"+t.id]={}))[o]=n.markedSpans),++o}))}function Do(t){if(!t)return null;for(var e,n=0;n-1&&(K(s)[f]=c[f],delete c[f])}}}return r}function Zo(t,e,n,r){if(r){var i=t.anchor;if(n){var o=ae(e,i)<0;o!=ae(n,i)<0?(i=e,e=n):o!=ae(e,n)<0&&(e=n)}return new oo(i,e)}return new oo(n||e,e)}function Lo(t,e,n,r,i){null==i&&(i=t.cm&&(t.cm.display.shift||t.extend)),Ho(t,new io([Zo(t.sel.primary(),e,n,i)],0),r)}function No(t,e,n){for(var r=[],i=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:s.to>e.ch))){if(i&&(mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var f=l.find(r<0?1:-1),h=void 0;if((r<0?u:c)&&(f=Ko(t,f,-r,f&&f.line==e.line?o:null)),f&&f.line==e.line&&(h=ae(f,n))&&(r<0?h<0:h>0))return qo(t,f,e,r,i)}var d=l.find(r<0?-1:1);return(r<0?c:u)&&(d=Ko(t,d,r,d.line==e.line?o:null)),d?qo(t,d,e,r,i):null}}return e}function Go(t,e,n,r,i){var o=r||1,a=qo(t,e,n,o,i)||!i&&qo(t,e,n,o,!0)||qo(t,e,n,-o,i)||!i&&qo(t,e,n,-o,!0);return a||(t.cantEdit=!0,oe(t.first,0))}function Ko(t,e,n,r){return n<0&&0==e.ch?e.line>t.first?he(t,oe(e.line-1)):null:n>0&&e.ch==(r||Xt(t,e.line)).text.length?e.line=0;--i)Qo(t,{from:r[i].from,to:r[i].to,text:i?[""]:e.text,origin:e.origin});else Qo(t,e)}}function Qo(t,e){if(1!=e.text.length||""!=e.text[0]||0!=ae(e.from,e.to)){var n=uo(t,e);Po(t,e,n,t.cm?t.cm.curOp.id:NaN),na(t,e,n,Fe(t,e));var r=[];yo(t,(function(t,n){n||-1!=B(r,t.history)||(sa(t.history,e),r.push(t.history)),na(t,e,null,Fe(t,e))}))}}function ta(t,e,n){var r=t.cm&&t.cm.state.suppressEdits;if(!r||n){for(var i,o=t.history,a=t.sel,s="undo"==e?o.done:o.undone,l="undo"==e?o.undone:o.done,c=0;c=0;--d){var p=h(d);if(p)return p.v}}}}function ea(t,e){if(0!=e&&(t.first+=e,t.sel=new io(Y(t.sel.ranges,(function(t){return new oo(oe(t.anchor.line+e,t.anchor.ch),oe(t.head.line+e,t.head.ch))})),t.sel.primIndex),t.cm)){Nr(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,r=n.viewFrom;rt.lastLine())){if(e.from.lineo&&(e={from:e.from,to:oe(o,Xt(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=Jt(t,e.from,e.to),n||(n=uo(t,e)),t.cm?ra(t.cm,e,r):mo(t,e,r),zo(t,n,z),t.cantEdit&&Go(t,oe(t.firstLine(),0))&&(t.cantEdit=!1)}}function ra(t,e,n){var r=t.doc,i=t.display,o=e.from,a=e.to,s=!1,l=o.line;t.options.lineWrapping||(l=ee(Je(Xt(r,o.line))),r.iter(l,a.line+1,(function(t){if(t==i.maxLine)return s=!0,!0}))),r.sel.contains(e.from,e.to)>-1&&bt(t),mo(r,e,n,Ar(t)),t.options.lineWrapping||(r.iter(l,o.line+e.text.length,(function(t){var e=sn(t);e>i.maxLineLength&&(i.maxLine=t,i.maxLineLength=e,i.maxLineChanged=!0,s=!1)})),s&&(t.curOp.updateMaxLine=!0)),Te(r,o.line),Zi(t,400);var c=e.text.length-(a.line-o.line)-1;e.full?Nr(t):o.line!=a.line||1!=e.text.length||vo(t.doc,e)?Nr(t,o.line,a.line+1,c):Ir(t,o.line,"text");var u=wt(t,"changes"),f=wt(t,"change");if(f||u){var h={from:o,to:a,text:e.text,removed:e.removed,origin:e.origin};f&&En(t,"change",t,h),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(h)}t.display.selForContextMenu=null}function ia(t,e,n,r,i){var o;r||(r=n),ae(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof e&&(e=t.splitLines(e)),Jo(t,{from:n,to:r,text:e,origin:i})}function oa(t,e,n,r){n1||!(this.children[0]instanceof ca))){var s=[];this.collapse(s),this.children=[new ca(s)],this.children[0].parent=this}},collapse:function(t){for(var e=0;e50){for(var a=i.lines.length%25+25,s=a;s10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=j("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Xe(t,e.line,e,n,o)||e.line!=n.line&&Xe(t,n.line,e,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Me()}o.addToHistory&&Po(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var s,l=e.line,c=t.cm;if(t.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Je(r)==c.display.maxLine&&(s=!0),o.collapsed&&l!=e.line&&te(r,0),Le(r,new Ae(o,l==e.line?e.ch:null,l==n.line?n.ch:null),t.cm&&t.cm.curOp),++l})),o.collapsed&&t.iter(e.line,n.line+1,(function(e){rn(t,e)&&te(e,0)})),o.clearOnEnter&&pt(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(De(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++pa,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Nr(c,e.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=e.line;u<=n.line;u++)Ir(c,u,"text");o.atomic&&Wo(c.doc),En(c,"markerAdded",c,o)}return o}ga.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&Oi(t),wt(this,"clear")){var n=this.find();n&&En(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Nr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Wo(t.doc)),t&&En(t,"markerCleared",t,this,r,i),e&&Ci(t),this.parent&&this.parent.clear()}},ga.prototype.find=function(t,e){var n,r;null==t&&"bookmark"==this.type&&(t=1);for(var i=0;i=0;l--)Jo(this,r[l]);s?Vo(this,s):this.cm&&si(this.cm)})),undo:Ri((function(){ta(this,"undo")})),redo:Ri((function(){ta(this,"redo")})),undoSelection:Ri((function(){ta(this,"undo",!0)})),redoSelection:Ri((function(){ta(this,"redo",!0)})),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,r=0;r=t.ch)&&e.push(i.marker.parent||i.marker)}return e},findMarks:function(t,e,n){t=he(this,t),e=he(this,e);var r=[],i=t.line;return this.iter(t.line,e.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=t.line||null!=l.from&&i==e.line&&l.from>=e.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var t=[];return this.iter((function(e){var n=e.markedSpans;if(n)for(var r=0;rt)return e=t,!0;t-=o,++n})),he(this,oe(n,e))},indexFromPos:function(t){var e=(t=he(this,t)).ch;if(t.linee&&(e=t.from),null!=t.to&&t.to-1)return e.state.draggingText(t),void setTimeout((function(){return e.display.input.focus()}),20);try{var f=t.dataTransfer.getData("Text");if(f){var h;if(e.state.draggingText&&!e.state.draggingText.copy&&(h=e.listSelections()),zo(e.doc,so(n,n)),h)for(var d=0;d=0;e--)ia(t.doc,"",r[e].from,r[e].to,"+delete");si(t)}))}function qa(t,e,n){var r=at(t.text,e+n,n);return r<0||r>t.text.length?null:r}function Ga(t,e,n){var r=qa(t,e.ch,n);return null==r?null:new oe(e.line,r,n<0?"after":"before")}function Ka(t,e,n,r,i){if(t){"rtl"==e.doc.direction&&(i=-i);var o=ht(n,e.doc.direction);if(o){var a,s=i<0?K(o):o[0],l=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==e.doc.direction){var c=nr(e,n);a=i<0?n.text.length-1:0;var u=rr(e,c,a).top;a=st((function(t){return rr(e,c,t).top==u}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=qa(n,a,1))}else a=i<0?s.to:s.from;return new oe(r,a,l)}}return new oe(r,i<0?n.text.length:0,i<0?"before":"after")}function Ya(t,e,n,r){var i=ht(e,t.doc.direction);if(!i)return Ga(e,n,r);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ut(i,n.ch,n.sticky),a=i[o];if("ltr"==t.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&h>=u.begin)){var d=f?"before":"after";return new oe(n.line,h,d)}}var p=function(t,e,r){for(var o=function(t,e){return e?new oe(n.line,l(t,1),"before"):new oe(n.line,t,"after")};t>=0&&t0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==v||r>0&&v==e.text.length||!(g=p(r>0?0:i.length-1,r,c(v)))?null:g}Ia.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Ia.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Ia.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Ia.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Ia.default=y?Ia.macDefault:Ia.pcDefault;var Xa={selectAll:Yo,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),z)},killLine:function(t){return $a(t,(function(e){if(e.empty()){var n=Xt(t.doc,e.head.line).text.length;return e.head.ch==n&&e.head.line0)i=new oe(i.line,i.ch+1),t.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),oe(i.line,i.ch-2),i,"+transpose");else if(i.line>t.doc.first){var a=Xt(t.doc,i.line-1).text;a&&(i=new oe(i.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+a.charAt(a.length-1),oe(i.line-1,a.length-1),i,"+transpose"))}n.push(new oo(i,i))}t.setSelections(n)}))},newlineAndIndent:function(t){return Di(t,(function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var r=0;r-1&&(ae((i=s.ranges[i]).from(),e)<0||e.xRel>0)&&(ae(i.to(),e)>0||e.xRel<0)?xs(t,r,e,o):Cs(t,r,e,o)}function xs(t,e,n,r){var i=t.display,o=!1,c=Mi(t,(function(e){l&&(i.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:Yr(t)),vt(i.wrapper.ownerDocument,"mouseup",c),vt(i.wrapper.ownerDocument,"mousemove",u),vt(i.scroller,"dragstart",f),vt(i.scroller,"drop",c),o||(xt(e),r.addNew||Lo(t.doc,n,null,null,r.extend),l&&!h||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},f=function(){return o=!0};l&&(i.scroller.draggable=!0),t.state.draggingText=c,c.copy=!r.moveOnDrag,pt(i.wrapper.ownerDocument,"mouseup",c),pt(i.wrapper.ownerDocument,"mousemove",u),pt(i.scroller,"dragstart",f),pt(i.scroller,"drop",c),t.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Os(t,e,n){if("char"==n)return new oo(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new oo(oe(e.line,0),he(t.doc,oe(e.line+1,0)));var r=n(t,e);return new oo(r.from,r.to)}function Cs(t,e,n,r){a&&Yr(t);var i=t.display,o=t.doc;xt(e);var s,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?u[l]:new oo(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new oo(n,n)),n=Zr(t,e,!0,!0),l=-1;else{var f=Os(t,n,r.unit);s=r.extend?Zo(s,f.anchor,f.head,r.extend):f}r.addNew?-1==l?(l=u.length,Ho(o,ao(t,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Ho(o,ao(t,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Io(o,l,s,U):(l=0,Ho(o,new io([s],0),U),c=o.sel);var h=n;function d(e){if(0!=ae(h,e))if(h=e,"rectangle"==r.unit){for(var i=[],a=t.options.tabSize,u=I(Xt(o,n.line).text,n.ch,a),f=I(Xt(o,e.line).text,e.ch,a),d=Math.min(u,f),p=Math.max(u,f),g=Math.min(n.line,e.line),v=Math.min(t.lastLine(),Math.max(n.line,e.line));g<=v;g++){var m=Xt(o,g).text,y=$(m,d,a);d==p?i.push(new oo(oe(g,y),oe(g,y))):m.length>y&&i.push(new oo(oe(g,y),oe(g,$(m,p,a))))}i.length||i.push(new oo(n,n)),Ho(o,ao(t,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var b,w=s,k=Os(t,e,r.unit),x=w.anchor;ae(k.anchor,x)>0?(b=k.head,x=ue(w.from(),k.anchor)):(b=k.anchor,x=ce(w.to(),k.head));var O=c.ranges.slice(0);O[l]=Ss(t,new oo(he(o,x),b)),Ho(o,ao(t,O,l),U)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(e){var n=++g,a=Zr(t,e,!0,"rectangle"==r.unit);if(a)if(0!=ae(a,h)){t.curOp.focus=M(),d(a);var s=ei(i,o);(a.line>=s.to||a.linep.bottom?20:0;l&&setTimeout(Mi(t,(function(){g==n&&(i.scroller.scrollTop+=l,v(e))})),50)}}function m(e){t.state.selectingText=!1,g=1/0,e&&(xt(e),i.input.focus()),vt(i.wrapper.ownerDocument,"mousemove",y),vt(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=Mi(t,(function(t){0!==t.buttons&&_t(t)?v(t):m(t)})),b=Mi(t,m);t.state.selectingText=b,pt(i.wrapper.ownerDocument,"mousemove",y),pt(i.wrapper.ownerDocument,"mouseup",b)}function Ss(t,e){var n=e.anchor,r=e.head,i=Xt(t.doc,n.line);if(0==ae(n,r)&&n.sticky==r.sticky)return e;var o=ht(i);if(!o)return e;var a=ut(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return e;var l,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return e;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=ut(o,r.ch,r.sticky),f=u-a||(r.ch-n.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:f>0}var h=o[c+(l?-1:0)],d=l==(1==h.level),p=d?h.from:h.to,g=d?"after":"before";return n.ch==p&&n.sticky==g?e:new oo(new oe(n.line,p,g),r)}function Ps(t,e,n,r){var i,o;if(e.touches)i=e.touches[0].clientX,o=e.touches[0].clientY;else try{i=e.clientX,o=e.clientY}catch(t){return!1}if(i>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;r&&xt(e);var a=t.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!wt(t,n))return Ct(e);o-=s.top-a.viewOffset;for(var l=0;l=i)return mt(t,n,t,ne(t.doc,o),t.display.gutterSpecs[l].className,e),Ct(e)}}function _s(t,e){return Ps(t,e,"gutterClick",!0)}function Ts(t,e){Un(t.display,e)||Es(t,e)||yt(t,e,"contextmenu")||O||t.display.input.onContextMenu(e)}function Es(t,e){return!!wt(t,"gutterContextMenu")&&Ps(t,e,"gutterContextMenu",!1)}function js(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),hr(t)}vs.prototype.compare=function(t,e,n){return this.time+gs>t&&0==ae(e,this.pos)&&n==this.button};var Ds={toString:function(){return"CodeMirror.Init"}},Ms={},As={};function Rs(t){var e=t.optionHandlers;function n(n,r,i,o){t.defaults[n]=r,i&&(e[n]=o?function(t,e,n){n!=Ds&&i(t,e,n)}:i)}t.defineOption=n,t.Init=Ds,n("value","",(function(t,e){return t.setValue(e)}),!0),n("mode",null,(function(t,e){t.doc.modeOption=e,po(t)}),!0),n("indentUnit",2,po,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(t){go(t),hr(t),Nr(t)}),!0),n("lineSeparator",null,(function(t,e){if(t.doc.lineSep=e,e){var n=[],r=t.doc.first;t.doc.iter((function(t){for(var i=0;;){var o=t.text.indexOf(e,i);if(-1==o)break;i=o+e.length,n.push(oe(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ia(t.doc,e,n[i],oe(n[i].line,n[i].ch+e.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ds&&t.refresh()})),n("specialCharPlaceholder",vn,(function(t){return t.refresh()}),!0),n("electricChars",!0),n("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(t,e){return t.getInputField().spellcheck=e}),!0),n("autocorrect",!1,(function(t,e){return t.getInputField().autocorrect=e}),!0),n("autocapitalize",!1,(function(t,e){return t.getInputField().autocapitalize=e}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(t){js(t),Xi(t)}),!0),n("keyMap","default",(function(t,e,n){var r=Wa(e),i=n!=Ds&&Wa(n);i&&i.detach&&i.detach(t,r),r.attach&&r.attach(t,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Ls,!0),n("gutters",[],(function(t,e){t.display.gutterSpecs=Ki(e,t.options.lineNumbers),Xi(t)}),!0),n("fixedGutter",!0,(function(t,e){t.display.gutters.style.left=e?Mr(t.display)+"px":"0",t.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(t){return yi(t)}),!0),n("scrollbarStyle","native",(function(t){ki(t),yi(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(t,e){t.display.gutterSpecs=Ki(t.options.gutters,e),Xi(t)}),!0),n("firstLineNumber",1,Xi,!0),n("lineNumberFormatter",(function(t){return t}),Xi,!0),n("showCursorWhenSelecting",!1,zr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(t,e){"nocursor"==e&&(Jr(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)})),n("screenReaderLabel",null,(function(t,e){e=''===e?null:e,t.display.input.screenReaderLabelChanged(e)})),n("disableInput",!1,(function(t,e){e||t.display.input.reset()}),!0),n("dragDrop",!0,Zs),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zr,!0),n("singleCursorHeightPerLine",!0,zr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,go,!0),n("addModeClass",!1,go,!0),n("pollInterval",100),n("undoDepth",200,(function(t,e){return t.doc.history.undoDepth=e})),n("historyEventDelay",1250),n("viewportMargin",10,(function(t){return t.refresh()}),!0),n("maxHighlightLength",1e4,go,!0),n("moveInputWithCursor",!0,(function(t,e){e||t.display.input.resetPosition()})),n("tabindex",null,(function(t,e){return t.display.input.getField().tabIndex=e||""})),n("autofocus",null),n("direction","ltr",(function(t,e){return t.doc.setDirection(e)}),!0),n("phrases",null)}function Zs(t,e,n){if(!e!=!(n&&n!=Ds)){var r=t.display.dragFunctions,i=e?pt:vt;i(t.display.scroller,"dragstart",r.start),i(t.display.scroller,"dragenter",r.enter),i(t.display.scroller,"dragover",r.over),i(t.display.scroller,"dragleave",r.leave),i(t.display.scroller,"drop",r.drop)}}function Ls(t){t.options.lineWrapping?(A(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(P(t.display.wrapper,"CodeMirror-wrap"),ln(t)),Rr(t),Nr(t),hr(t),setTimeout((function(){return yi(t)}),100)}function Ns(t,e){var n=this;if(!(this instanceof Ns))return new Ns(t,e);this.options=e=e?N(e):{},N(Ms,e,!1);var r=e.value;"string"==typeof r?r=new Oa(r,e.mode,null,e.lineSeparator,e.direction):e.mode&&(r.modeOption=e.mode),this.doc=r;var i=new Ns.inputStyles[e.inputStyle](this),o=this.display=new Ji(t,r,i,e);for(var c in o.wrapper.CodeMirror=this,js(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ki(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},e.autofocus&&!m&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Is(this),Da(),Oi(this),this.curOp.forceUpdate=!0,bo(this,r),e.autofocus&&!m||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Xr(n)}),20):Jr(this),As)As.hasOwnProperty(c)&&As[c](this,e[c],Ds);Gi(this),e.finishInit&&e.finishInit(this);for(var u=0;u400}pt(e.scroller,"touchstart",(function(i){if(!yt(t,i)&&!o(i)&&!_s(t,i)){e.input.ensurePolled(),clearTimeout(n);var a=+new Date;e.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(e.activeTouch.left=i.touches[0].pageX,e.activeTouch.top=i.touches[0].pageY)}})),pt(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),pt(e.scroller,"touchend",(function(n){var r=e.activeTouch;if(r&&!Un(e,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=t.coordsChar(e.activeTouch,"page");o=!r.prev||l(r,r.prev)?new oo(a,a):!r.prev.prev||l(r,r.prev.prev)?t.findWordAt(a):new oo(oe(a.line,0),he(t.doc,oe(a.line+1,0))),t.setSelection(o.anchor,o.head),t.focus(),xt(n)}i()})),pt(e.scroller,"touchcancel",i),pt(e.scroller,"scroll",(function(){e.scroller.clientHeight&&(hi(t,e.scroller.scrollTop),pi(t,e.scroller.scrollLeft,!0),mt(t,"scroll",t))})),pt(e.scroller,"mousewheel",(function(e){return ro(t,e)})),pt(e.scroller,"DOMMouseScroll",(function(e){return ro(t,e)})),pt(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(e){yt(t,e)||St(e)},over:function(e){yt(t,e)||(_a(t,e),St(e))},start:function(e){return Pa(t,e)},drop:Mi(t,Sa),leave:function(e){yt(t,e)||Ta(t)}};var c=e.input.getField();pt(c,"keyup",(function(e){return fs.call(t,e)})),pt(c,"keydown",Mi(t,cs)),pt(c,"keypress",Mi(t,hs)),pt(c,"focus",(function(e){return Xr(t,e)})),pt(c,"blur",(function(e){return Jr(t,e)}))}Ns.defaults=Ms,Ns.optionHandlers=As;var Fs=[];function Bs(t,e,n,r){var i,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=be(t,e).state:n="prev");var a=t.options.tabSize,s=Xt(o,e),l=I(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==H||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?I(Xt(o,e-1).text,null,a):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var f="",h=0;if(t.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)h+=a,f+="\t";if(ha,l=Rt(e),c=null;if(s&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==e){if(r.ranges.length%Vs.text.length==0){c=[];for(var u=0;u=0;h--){var d=r.ranges[h],p=d.from(),g=d.to();d.empty()&&(n&&n>0?p=oe(p.line,p.ch-n):t.state.overwrite&&!s?g=oe(g.line,Math.min(Xt(o,g.line).text.length,g.ch+K(l).length)):s&&Vs&&Vs.lineWise&&Vs.text.join("\n")==l.join("\n")&&(p=g=oe(p.line,0)));var v={from:p,to:g,text:c?c[h%c.length]:l,origin:i||(s?"paste":t.state.cutIncoming>a?"cut":"+input")};Jo(t.doc,v),En(t,"inputRead",t,v)}e&&!s&&Ws(t,e),si(t),t.curOp.updateInput<2&&(t.curOp.updateInput=f),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Us(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||Di(e,(function(){return zs(e,n,0,null,"paste")})),!0}function Ws(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=t.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Bs(t,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xt(t.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Bs(t,i.head.line,"smart"));a&&En(t,"electricInput",t,i.head.line)}}}function $s(t){for(var e=[],n=[],r=0;rn&&(Bs(this,i.head.line,t,!0),n=i.head.line,r==this.doc.sel.primIndex&&si(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&Io(this.doc,r,new oo(o,c[r].to()),z)}}})),getTokenAt:function(t,e){return Ce(this,t,e)},getLineTokens:function(t,e){return Ce(this,oe(t),e,!0)},getTokenTypeAt:function(t){t=he(this.doc,t);var e,n=ye(this,Xt(this.doc,t.line)),r=0,i=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(t=o,i=!0),r=Xt(this.doc,t)}else r=t;return vr(this,r,{top:0,left:0},e||"page",n||i).top+(i?this.doc.height-an(r):0)},defaultTextHeight:function(){return Er(this.display)},defaultCharWidth:function(){return jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,r,i){var o=this.display,a=(t=br(this,he(this.doc,t))).bottom,s=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==r)a=t.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);('above'==r||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?a=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(a=t.bottom),s+e.offsetWidth>c&&(s=c-e.offsetWidth)}e.style.top=a+"px",e.style.left=e.style.right="","right"==i?(s=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=s+"px"),n&&ii(this,{left:s,top:a,right:s+e.offsetWidth,bottom:a+e.offsetHeight})},triggerOnKeyDown:Ai(cs),triggerOnKeyPress:Ai(hs),triggerOnKeyUp:fs,triggerOnMouseDown:Ai(ys),execCommand:function(t){if(Xa.hasOwnProperty(t))return Xa[t].call(null,this)},triggerElectric:Ai((function(t){Ws(this,t)})),findPosH:function(t,e,n,r){var i=1;e<0&&(i=-1,e=-e);for(var o=he(this.doc,t),a=0;a0&&a(e.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Rr(this),mt(this,"refresh",this)})),swapDoc:Ai((function(t){var e=this.doc;return e.cm=null,this.state.selectingText&&this.state.selectingText(),bo(this,t),hr(this),this.display.input.reset(),li(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,En(this,"swapDoc",this,e),e})),phrase:function(t){var e=this.options.phrases;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},kt(t),t.registerHelper=function(e,r,i){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][r]=i},t.registerGlobalHelper=function(e,r,i,o){t.registerHelper(e,r,o),n[e]._global.push({pred:i,val:o})}}function Ys(t,e,n,r,i){var o=e,a=n,s=Xt(t,e.line),l=i&&"rtl"==t.direction?-n:n;function c(){var n=e.line+l;return!(n=t.first+t.size)&&(e=new oe(n,e.ch,e.sticky),s=Xt(t,n))}function u(o){var a;if("codepoint"==r){var u=s.text.charCodeAt(e.ch+(n>0?0:-1));if(isNaN(u))a=null;else{var f=n>0?u>=55296&&u<56320:u>=56320&&u<57343;a=new oe(e.line,Math.max(0,Math.min(s.text.length,e.ch+n*(f?2:1))),-n)}}else a=i?Ya(t.cm,s,e,n):Ga(s,e,n);if(null==a){if(o||!c())return!1;e=Ka(i,t.cm,s,e.line,l)}else e=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,d=t.cm&&t.cm.getHelper(e,"wordChars"),p=!0;!(n<0)||u(!p);p=!1){var g=s.text.charAt(e.ch)||"\n",v=nt(g,d)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||v||(v="s"),f&&f!=v){n<0&&(n=1,u(),e.sticky="after");break}if(v&&(f=v),n>0&&!u(!p))break}var m=Go(t,e,o,a,!0);return se(o,m)&&(m.hitSide=!0),m}function Xs(t,e,n,r){var i,o,a=t.doc,s=e.left;if("page"==r){var l=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Er(t.display),3);i=(n>0?e.bottom:e.top)+n*c}else"line"==r&&(i=n>0?e.bottom+3:e.top-3);for(;(o=xr(t,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Js=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qs(t,e){var n=er(t,e.line);if(!n||n.hidden)return null;var r=Xt(t.doc,e.line),i=Jn(n,r,e.line),o=ht(r,t.doc.direction),a="left";o&&(a=ut(o,e.ch)%2?"right":"left");var s=ar(i.map,e.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function tl(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function el(t,e){return e&&(t.bad=!0),t}function nl(t,e,n,r,i){var o="",a=!1,s=t.doc.lineSeparator(),l=!1;function c(t){return function(e){return e.id==t}}function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function f(t){t&&(u(),o+=t)}function h(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(n)return void f(n);var o,d=e.getAttribute("cm-marker");if(d){var p=t.findMarks(oe(r,0),oe(i+1,0),c(+d));return void(p.length&&(o=p[0].find(0))&&f(Jt(t.doc,o.from,o.to).join(s)))}if("false"==e.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;g&&u();for(var v=0;v=e.display.viewTo||o.line=e.display.viewFrom&&Qs(e,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(a=oe(a.line-1,Xt(r.doc,a.line-1).length)),s.ch==Xt(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(t=Lr(r,a.line))?(e=ee(i.view[0].line),n=i.view[0].node):(e=ee(i.view[t].line),n=i.view[t-1].node.nextSibling);var l,c,u=Lr(r,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ee(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var f=r.doc.splitLines(nl(r,n,c,e,l)),h=Jt(r.doc,oe(e,0),oe(l,Xt(r.doc,l).text.length));f.length>1&&h.length>1;)if(K(f)==K(h))f.pop(),h.pop(),l--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),e++}for(var d=0,p=0,g=f[0],v=h[0],m=Math.min(g.length,v.length);da.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(d).replace(/\u200b+$/,"");var k=oe(e,d),x=oe(l,h.length?K(h).length-p:0);return f.length>1||f[0]||ae(k,x)?(ia(r.doc,f,k,x,"+input"),!0):void 0},Js.prototype.ensurePolled=function(){this.forceCompositionEnd()},Js.prototype.reset=function(){this.forceCompositionEnd()},Js.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Js.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()}),80))},Js.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||Di(this.cm,(function(){return Nr(t.cm)}))},Js.prototype.setUneditable=function(t){t.contentEditable="false"},Js.prototype.onKeyPress=function(t){0==t.charCode||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Mi(this.cm,zs)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Js.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Js.prototype.onContextMenu=function(){},Js.prototype.resetPosition=function(){},Js.prototype.needsContentAttribute=!0;var ol=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};function al(t,e){if((e=e?N(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var n=M();e.autofocus=n==t||null!=t.getAttribute("autofocus")&&n==document.body}function r(){t.value=s.getValue()}var i;if(t.form&&(pt(t.form,"submit",r),!e.leaveSubmitMethodAlone)){var o=t.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(t){}}e.finishInit=function(n){n.save=r,n.getTextArea=function(){return t},n.toTextArea=function(){n.toTextArea=isNaN,r(),t.parentNode.removeChild(n.getWrapperElement()),t.style.display="",t.form&&(vt(t.form,"submit",r),e.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var s=Ns((function(e){return t.parentNode.insertBefore(e,t.nextSibling)}),e);return s}function sl(t){t.off=vt,t.on=pt,t.wheelEventPixels=no,t.Doc=Oa,t.splitLines=Rt,t.countColumn=I,t.findColumn=$,t.isWordChar=et,t.Pass=H,t.signal=mt,t.Line=cn,t.changeEnd=lo,t.scrollbarModel=wi,t.Pos=oe,t.cmpPos=ae,t.modes=Ft,t.mimeModes=Bt,t.resolveMode=zt,t.getMode=Ut,t.modeExtensions=Wt,t.extendMode=$t,t.copyState=qt,t.startState=Kt,t.innerMode=Gt,t.commands=Xa,t.keyMap=Ia,t.keyName=Ua,t.isModifierKey=Ha,t.lookupKey=Va,t.normalizeKeyMap=Ba,t.StringStream=Yt,t.SharedTextMarker=ma,t.TextMarker=ga,t.LineWidget=fa,t.e_preventDefault=xt,t.e_stopPropagation=Ot,t.e_stop=St,t.addClass=A,t.contains=D,t.rmClass=P,t.keyNames=Ra}ol.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(t){if(!yt(r,t)){if(r.somethingSelected())Hs({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=$s(r);Hs({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,z):(n.prevInput="",i.value=e.text.join("\n"),Z(i))}"cut"==t.type&&(r.state.cutIncoming=+new Date)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),g&&(i.style.width="0px"),pt(i,"input",(function(){a&&s>=9&&e.hasSelection&&(e.hasSelection=null),n.poll()})),pt(i,"paste",(function(t){yt(r,t)||Us(t,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pt(i,"cut",o),pt(i,"copy",o),pt(t.scroller,"paste",(function(e){if(!Un(t,e)&&!yt(r,e)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=e.clipboardData,i.dispatchEvent(o)}})),pt(t.lineSpace,"selectstart",(function(e){Un(t,e)||xt(e)})),pt(i,"compositionstart",(function(){var t=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pt(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},ol.prototype.createField=function(t){this.wrapper=Gs(),this.textarea=this.wrapper.firstChild},ol.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute('aria-label',t):this.textarea.removeAttribute('aria-label')},ol.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,r=Ur(t);if(t.options.moveInputWithCursor){var i=br(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),a=e.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},ol.prototype.showSelection=function(t){var e=this.cm.display;T(e.cursorDiv,t.cursors),T(e.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},ol.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&Z(this.textarea),a&&s>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},ol.prototype.getField=function(){return this.textarea},ol.prototype.supportsTouch=function(){return!1},ol.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||M()!=this.textarea))try{this.textarea.focus()}catch(t){}},ol.prototype.blur=function(){this.textarea.blur()},ol.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ol.prototype.receivedFocus=function(){this.slowPoll()},ol.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){t.poll(),t.cm.state.focused&&t.slowPoll()}))},ol.prototype.fastPoll=function(){var t=!1,e=this;function n(){e.poll()||t?(e.pollingFast=!1,e.slowPoll()):(t=!0,e.polling.set(60,n))}e.pollingFast=!0,e.polling.set(20,n)},ol.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||Zt(n)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var i=n.value;if(i==r&&!e.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=i,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ol.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ol.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},ol.prototype.onContextMenu=function(t){var e=this,n=e.cm,r=n.display,i=e.textarea;e.contextMenuPending&&e.contextMenuPending();var o=Zr(n,t),c=r.scroller.scrollTop;if(o&&!f){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Mi(n,Ho)(n.doc,so(o),z);var u,h=i.style.cssText,d=e.wrapper.style.cssText,p=e.wrapper.offsetParent.getBoundingClientRect();if(e.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-p.top-5)+"px; left: "+(t.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=e.prevInput=" "),e.contextMenuPending=m,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&v(),O){St(t);var g=function(){vt(window,"mouseup",g),setTimeout(m,20)};pt(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var t=n.somethingSelected(),o="​"+(t?i.value:"");i.value="⇚",i.value=o,e.prevInput=t?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function m(){if(e.contextMenuPending==m&&(e.contextMenuPending=!1,e.wrapper.style.cssText=d,i.style.cssText=h,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&v();var t=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==e.prevInput?Mi(n,Yo)(n):t++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},ol.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t,this.textarea.readOnly=!!t},ol.prototype.setUneditable=function(){},ol.prototype.needsContentAttribute=!1,Rs(Ns),Ks(Ns);var ll="iter insert remove copy getEditor constructor".split(" ");for(var cl in Oa.prototype)Oa.prototype.hasOwnProperty(cl)&&B(ll,cl)<0&&(Ns.prototype[cl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Oa.prototype[cl]));return kt(Oa),Ns.inputStyles={textarea:ol,contenteditable:Js},Ns.defineMode=function(t){Ns.defaults.mode||"null"==t||(Ns.defaults.mode=t),Vt.apply(this,arguments)},Ns.defineMIME=Ht,Ns.defineMode("null",(function(){return{token:function(t){return t.skipToEnd()}}})),Ns.defineMIME("text/plain","null"),Ns.defineExtension=function(t,e){Ns.prototype[t]=e},Ns.defineDocExtension=function(t,e){Oa.prototype[t]=e},Ns.fromTextArea=al,sl(Ns),Ns.version="5.63.0",Ns}()},6629:(t,e,n)=>{!function(t){"use strict";function e(t){for(var e={},n=0;n*\/]/.test(n)?x(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?x("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?x(null,n):t.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(t.current())&&(e.tokenize=S),x("variable callee","variable")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),x("property","word")):x(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),x("number","unit")):t.match(/^-[\w\\\-]*/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?x("variable-2","variable-definition"):x("variable-2","variable")):t.match(/^\w+-/)?x("meta","meta"):void 0}function C(t){return function(e,n){for(var r,i=!1;null!=(r=e.next());){if(r==t&&!i){")"==t&&e.backUp(1);break}i=!i&&"\\"==r}return(r==t||!i&&")"!=t)&&(n.tokenize=null),x("string","string")}}function S(t,e){return t.next(),t.match(/^\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=C(")"),x(null,"(")}function P(t,e,n){this.type=t,this.indent=e,this.prev=n}function _(t,e,n,r){return t.context=new P(n,e.indentation()+(!1===r?0:a),t.context),n}function T(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function E(t,e,n){return M[n.context.type](t,e,n)}function j(t,e,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(t,e,n)}function D(t){var e=t.current().toLowerCase();o=m.hasOwnProperty(e)?"atom":v.hasOwnProperty(e)?"keyword":"variable"}var M={top:function(t,e,n){if("{"==t)return _(n,e,"block");if("}"==t&&n.context.prev)return T(n);if(w&&/@component/i.test(t))return _(n,e,"atComponentBlock");if(/^@(-moz-)?document$/i.test(t))return _(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(t))return _(n,e,"atBlock");if(/^@(font-face|counter-style)/i.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return _(n,e,"at");if("hash"==t)o="builtin";else if("word"==t)o="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return _(n,e,"interpolation");if(":"==t)return"pseudo";if(y&&"("==t)return _(n,e,"parens")}return n.context.type},block:function(t,e,n){if("word"==t){var r=e.current().toLowerCase();return h.hasOwnProperty(r)?(o="property","maybeprop"):d.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):y?(o=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==t?"block":y||"hash"!=t&&"qualifier"!=t?M.top(t,e,n):(o="error","block")},maybeprop:function(t,e,n){return":"==t?_(n,e,"prop"):E(t,e,n)},prop:function(t,e,n){if(";"==t)return T(n);if("{"==t&&y)return _(n,e,"propBlock");if("}"==t||"{"==t)return j(t,e,n);if("("==t)return _(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)D(e);else if("interpolation"==t)return _(n,e,"interpolation")}else o+=" error";return"prop"},propBlock:function(t,e,n){return"}"==t?T(n):"word"==t?(o="property","maybeprop"):n.context.type},parens:function(t,e,n){return"{"==t||"}"==t?j(t,e,n):")"==t?T(n):"("==t?_(n,e,"parens"):"interpolation"==t?_(n,e,"interpolation"):("word"==t&&D(e),"parens")},pseudo:function(t,e,n){return"meta"==t?"pseudo":"word"==t?(o="variable-3",n.context.type):E(t,e,n)},documentTypes:function(t,e,n){return"word"==t&&l.hasOwnProperty(e.current())?(o="tag",n.context.type):M.atBlock(t,e,n)},atBlock:function(t,e,n){if("("==t)return _(n,e,"atBlock_parens");if("}"==t||";"==t)return j(t,e,n);if("{"==t)return T(n)&&_(n,e,y?"block":"top");if("interpolation"==t)return _(n,e,"interpolation");if("word"==t){var r=e.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?"keyword":h.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?k?"string-2":"property":m.hasOwnProperty(r)?"atom":v.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(t,e,n){return"}"==t?j(t,e,n):"{"==t?T(n)&&_(n,e,y?"block":"top",!1):("word"==t&&(o="error"),n.context.type)},atBlock_parens:function(t,e,n){return")"==t?T(n):"{"==t||"}"==t?j(t,e,n,2):M.atBlock(t,e,n)},restricted_atBlock_before:function(t,e,n){return"{"==t?_(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(t,e,n)},restricted_atBlock:function(t,e,n){return"}"==t?(n.stateArg=null,T(n)):"word"==t?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(t,e,n){return"word"==t?(o="variable","keyframes"):"{"==t?_(n,e,"top"):E(t,e,n)},at:function(t,e,n){return";"==t?T(n):"{"==t||"}"==t?j(t,e,n):("word"==t?o="tag":"hash"==t&&(o="builtin"),"at")},interpolation:function(t,e,n){return"}"==t?T(n):"{"==t||";"==t?j(t,e,n):("word"==t?o="variable":"variable"!=t&&"("!=t&&")"!=t&&(o="error"),"interpolation")}};return{startState:function(t){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new P(r?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||O)(t,e);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(e.state=M[e.state](i,t,e)),o},indent:function(t,e){var n=t.context,r=e&&e.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=e(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=e(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=e(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=e(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=e(u),h=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(h),p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=e(y),w=n.concat(i).concat(a).concat(l).concat(u).concat(h).concat(v).concat(y);function k(t,e){for(var n,r=!1;null!=(n=t.next());){if(r&&"/"==n){e.tokenize=null;break}r="*"==n}return["comment","comment"]}t.registerHelper("hintWords","css",w),t.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},":":function(t){return!!t.match(/^\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css",helperType:"gss"})}(n(4631))},6531:(t,e,n)=>{!function(t){"use strict";var e={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(t,e,n){var r=t.current(),i=r.search(e);return i>-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}var r={};function i(t){var e=r[t];return e||(r[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(t,e){var n=t.match(i(e));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function a(t,e){return new RegExp((e?"^":"")+"","i")}function s(t,e){for(var n in t)for(var r=e[n]||(e[n]=[]),i=t[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(t,e){for(var n=0;n=0;h--)c.script.unshift(["type",f[h].matches,f[h].mode]);function d(e,i){var s,u=o.token(e,i.htmlState),f=/\btag\b/.test(u);if(f&&!/[<>\s\/]/.test(e.current())&&(s=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(s))i.inTag=s+" ";else if(i.inTag&&f&&/>$/.test(e.current())){var h=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var p=">"==e.current()&&l(c[h[1]],h[2]),g=t.getMode(r,p),v=a(h[1],!0),m=a(h[1],!1);i.token=function(t,e){return t.match(v,!1)?(e.token=d,e.localState=e.localMode=null,null):n(t,m,e.localMode.token(t,e.localState))},i.localMode=g,i.localState=t.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=e.current(),e.eol()&&(i.inTag+=" "));return u}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(o)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(o,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?o.indent(e.htmlState,n,r):e.localMode.indent?e.localMode.indent(e.localState,n,r):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||o}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(4631),n(9589),n(6876),n(6629))},6876:(t,e,n)=>{!function(t){"use strict";t.defineMode("javascript",(function(e,n){var r,i,o=e.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,f=n.wordCharacters||/[\w$\xa1-\uffff]/,h=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),r=t("keyword c"),i=t("keyword d"),o=t("operator"),a={type:"atom",style:"atom"};return{if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:t("new"),delete:r,void:r,throw:r,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:t("this"),class:t("class"),super:t("atom"),yield:r,export:t("export"),import:t("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(t){for(var e,n=!1,r=!1;null!=(e=t.next());){if(!n){if("/"==e&&!r)return;"["==e?r=!0:r&&"]"==e&&(r=!1)}n=!n&&"\\"==e}}function v(t,e,n){return r=t,i=n,e}function m(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=y(n),e.tokenize(t,e);if("."==n&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return v("number","number");if("."==n&&t.match(".."))return v("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return v(n);if("="==n&&t.eat(">"))return v("=>","operator");if("0"==n&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return v("number","number");if(/\d/.test(n))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),v("number","number");if("/"==n)return t.eat("*")?(e.tokenize=b,b(t,e)):t.eat("/")?(t.skipToEnd(),v("comment","comment")):ie(t,e,1)?(g(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),v("regexp","string-2")):(t.eat("="),v("operator","operator",t.current()));if("`"==n)return e.tokenize=w,w(t,e);if("#"==n&&"!"==t.peek())return t.skipToEnd(),v("meta","meta");if("#"==n&&t.eatWhile(f))return v("variable","property");if("<"==n&&t.match("!--")||"-"==n&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),v("comment","comment");if(d.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-|&?]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),"?"==n&&t.eat(".")?v("."):v("operator","operator",t.current());if(f.test(n)){t.eatWhile(f);var r=t.current();if("."!=e.lastType){if(h.propertyIsEnumerable(r)){var i=h[r];return v(i.type,i.style,r)}if("async"==r&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return v("async","keyword",r)}return v("variable","variable",r)}}function y(t){return function(e,n){var r,i=!1;if(s&&"@"==e.peek()&&e.match(p))return n.tokenize=m,v("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=m),v("string","string")}}function b(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=m;break}r="*"==n}return v("comment","comment")}function w(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=m;break}r=!r&&"\\"==n}return v("quasi","string-2",t.current())}var k="([{}])";function x(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=t.string.charAt(a),l=k.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(f.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(t.string.charAt(a-1)==s&&"\\"!=t.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(e.fatArrowAt=a)}}var O={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function C(t,e,n,r,i,o){this.indented=t,this.column=e,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(t,e){if(!c)return!1;for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var r=t.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==e)return!0}function P(t,e,n,r,i){var o=t.cc;for(_.state=t,_.stream=i,_.marked=null,_.cc=o,_.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;)if((o.length?o.pop():l?W:z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&S(t,r)?"variable-2":e}}var _={state:null,column:null,marked:null,cc:null};function T(){for(var t=arguments.length-1;t>=0;t--)_.cc.push(arguments[t])}function E(){return T.apply(null,arguments),!0}function j(t,e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}function D(t){var e=_.state;if(_.marked="def",c){if(e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=M(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new Z(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new Z(t,e.globalVars))}}function M(t,e){if(e){if(e.block){var n=M(t,e.prev);return n?n==e.prev?e:new R(n,e.vars,!0):null}return j(t,e.vars)?e:new R(e.prev,new Z(t,e.vars),!1)}return null}function A(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function R(t,e,n){this.prev=t,this.vars=e,this.block=n}function Z(t,e){this.name=t,this.next=e}var L=new Z("this",new Z("arguments",null));function N(){_.state.context=new R(_.state.context,_.state.localVars,!1),_.state.localVars=L}function I(){_.state.context=new R(_.state.context,_.state.localVars,!0),_.state.localVars=null}function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function B(t,e){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new C(r,_.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function V(){var t=_.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function H(t){function e(n){return n==t?E():";"==t||"}"==n||")"==n||"]"==n?T():E(e)}return e}function z(t,e){return"var"==t?E(B("vardef",e),Tt,H(";"),V):"keyword a"==t?E(B("form"),q,z,V):"keyword b"==t?E(B("form"),z,V):"keyword d"==t?_.stream.match(/^\s*$/,!1)?E():E(B("stat"),K,H(";"),V):"debugger"==t?E(H(";")):"{"==t?E(B("}"),I,ht,V,F):";"==t?E():"if"==t?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==V&&_.state.cc.pop()(),E(B("form"),q,z,V,Rt)):"function"==t?E(It):"for"==t?E(B("form"),I,Zt,z,F,V):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form","class"==t?t:e),zt,V)):"variable"==t?u&&"declare"==e?(_.marked="keyword",E(z)):u&&("module"==e||"enum"==e||"type"==e)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==e?E(ee):"type"==e?E(Bt,H("operator"),mt,H(";")):E(B("form"),Et,H("{"),B("}"),ht,V,V)):u&&"namespace"==e?(_.marked="keyword",E(B("form"),W,z,V)):u&&"abstract"==e?(_.marked="keyword",E(z)):E(B("stat"),ot):"switch"==t?E(B("form"),q,H("{"),B("}","switch"),I,ht,V,V,F):"case"==t?E(W,H(":")):"default"==t?E(H(":")):"catch"==t?E(B("form"),N,U,z,V,F):"export"==t?E(B("stat"),qt,V):"import"==t?E(B("stat"),Kt,V):"async"==t?E(z):"@"==e?E(W,z):T(B("stat"),W,H(";"),V)}function U(t){if("("==t)return E(Vt,H(")"))}function W(t,e){return G(t,e,!1)}function $(t,e){return G(t,e,!0)}function q(t){return"("!=t?T():E(B(")"),K,H(")"),V)}function G(t,e,n){if(_.state.fatArrowAt==_.stream.start){var r=n?et:tt;if("("==t)return E(N,B(")"),ut(Vt,")"),V,H("=>"),r,F);if("variable"==t)return T(N,Et,H("=>"),r,F)}var i=n?X:Y;return O.hasOwnProperty(t)?E(i):"function"==t?E(It,i):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form"),Ht,V)):"keyword c"==t||"async"==t?E(n?$:W):"("==t?E(B(")"),K,H(")"),V,i):"operator"==t||"spread"==t?E(n?$:W):"["==t?E(B("]"),te,V,i):"{"==t?ft(st,"}",null,i):"quasi"==t?T(J,i):"new"==t?E(nt(n)):E()}function K(t){return t.match(/[;\}\)\],]/)?T():T(W)}function Y(t,e){return","==t?E(K):X(t,e,!1)}function X(t,e,n){var r=0==n?Y:X,i=0==n?W:$;return"=>"==t?E(N,n?et:tt,F):"operator"==t?/\+\+|--/.test(e)||u&&"!"==e?E(r):u&&"<"==e&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(B(">"),ut(mt,">"),V,r):"?"==e?E(W,H(":"),i):E(i):"quasi"==t?T(J,r):";"!=t?"("==t?ft($,")","call",r):"."==t?E(at,r):"["==t?E(B("]"),K,H("]"),V,r):u&&"as"==e?(_.marked="keyword",E(mt,r)):"regexp"==t?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),E(i)):void 0:void 0}function J(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(J):E(K,Q)}function Q(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(J)}function tt(t){return x(_.stream,_.state),T("{"==t?z:W)}function et(t){return x(_.stream,_.state),T("{"==t?z:$)}function nt(t){return function(e){return"."==e?E(t?it:rt):"variable"==e&&u?E(St,t?X:Y):T(t?$:W)}}function rt(t,e){if("target"==e)return _.marked="keyword",E(Y)}function it(t,e){if("target"==e)return _.marked="keyword",E(X)}function ot(t){return":"==t?E(V,z):T(Y,H(";"),V)}function at(t){if("variable"==t)return _.marked="property",E()}function st(t,e){return"async"==t?(_.marked="property",E(st)):"variable"==t||"keyword"==_.style?(_.marked="property","get"==e||"set"==e?E(lt):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),E(ct))):"number"==t||"string"==t?(_.marked=s?"property":_.style+" property",E(ct)):"jsonld-keyword"==t?E(ct):u&&A(e)?(_.marked="keyword",E(st)):"["==t?E(W,dt,H("]"),ct):"spread"==t?E($,ct):"*"==e?(_.marked="keyword",E(st)):":"==t?T(ct):void 0;var n}function lt(t){return"variable"!=t?T(ct):(_.marked="property",E(It))}function ct(t){return":"==t?E($):"("==t?T(It):void 0}function ut(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=_.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),E((function(n,r){return n==e||r==e?T():T(t)}),r)}return i==e||o==e?E():n&&n.indexOf(";")>-1?T(t):E(H(e))}return function(n,i){return n==e||i==e?E():T(t,r)}}function ft(t,e,n){for(var r=3;r"),mt):"quasi"==t?T(kt,Ct):void 0}function yt(t){if("=>"==t)return E(mt)}function bt(t){return t.match(/[\}\)\]]/)?E():","==t||";"==t?E(bt):T(wt,bt)}function wt(t,e){return"variable"==t||"keyword"==_.style?(_.marked="property",E(wt)):"?"==e||"number"==t||"string"==t?E(wt):":"==t?E(mt):"["==t?E(H("variable"),pt,H("]"),wt):"("==t?T(Ft,wt):t.match(/[;\}\)\],]/)?void 0:E()}function kt(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(kt):E(mt,xt)}function xt(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(kt)}function Ot(t,e){return"variable"==t&&_.stream.match(/^\s*[?:]/,!1)||"?"==e?E(Ot):":"==t?E(mt):"spread"==t?E(Ot):T(mt)}function Ct(t,e){return"<"==e?E(B(">"),ut(mt,">"),V,Ct):"|"==e||"."==t||"&"==e?E(mt):"["==t?E(mt,H("]"),Ct):"extends"==e||"implements"==e?(_.marked="keyword",E(mt)):"?"==e?E(mt,H(":"),mt):void 0}function St(t,e){if("<"==e)return E(B(">"),ut(mt,">"),V,Ct)}function Pt(){return T(mt,_t)}function _t(t,e){if("="==e)return E(mt)}function Tt(t,e){return"enum"==e?(_.marked="keyword",E(ee)):T(Et,dt,Mt,At)}function Et(t,e){return u&&A(e)?(_.marked="keyword",E(Et)):"variable"==t?(D(e),E()):"spread"==t?E(Et):"["==t?ft(Dt,"]"):"{"==t?ft(jt,"}"):void 0}function jt(t,e){return"variable"!=t||_.stream.match(/^\s*:/,!1)?("variable"==t&&(_.marked="property"),"spread"==t?E(Et):"}"==t?T():"["==t?E(W,H(']'),H(':'),jt):E(H(":"),Et,Mt)):(D(e),E(Mt))}function Dt(){return T(Et,Mt)}function Mt(t,e){if("="==e)return E($)}function At(t){if(","==t)return E(Tt)}function Rt(t,e){if("keyword b"==t&&"else"==e)return E(B("form","else"),z,V)}function Zt(t,e){return"await"==e?E(Zt):"("==t?E(B(")"),Lt,V):void 0}function Lt(t){return"var"==t?E(Tt,Nt):"variable"==t?E(Nt):T(Nt)}function Nt(t,e){return")"==t?E():";"==t?E(Nt):"in"==e||"of"==e?(_.marked="keyword",E(W,Nt)):T(W,Nt)}function It(t,e){return"*"==e?(_.marked="keyword",E(It)):"variable"==t?(D(e),E(It)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,z,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,It):void 0}function Ft(t,e){return"*"==e?(_.marked="keyword",E(Ft)):"variable"==t?(D(e),E(Ft)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,Ft):void 0}function Bt(t,e){return"keyword"==t||"variable"==t?(_.marked="type",E(Bt)):"<"==e?E(B(">"),ut(Pt,">"),V):void 0}function Vt(t,e){return"@"==e&&E(W,Vt),"spread"==t?E(Vt):u&&A(e)?(_.marked="keyword",E(Vt)):u&&"this"==t?E(dt,Mt):T(Et,dt,Mt)}function Ht(t,e){return"variable"==t?zt(t,e):Ut(t,e)}function zt(t,e){if("variable"==t)return D(e),E(Ut)}function Ut(t,e){return"<"==e?E(B(">"),ut(Pt,">"),V,Ut):"extends"==e||"implements"==e||u&&","==t?("implements"==e&&(_.marked="keyword"),E(u?mt:W,Ut)):"{"==t?E(B("}"),Wt,V):void 0}function Wt(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||u&&A(e))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",E(Wt)):"variable"==t||"keyword"==_.style?(_.marked="property",E($t,Wt)):"number"==t||"string"==t?E($t,Wt):"["==t?E(W,dt,H("]"),$t,Wt):"*"==e?(_.marked="keyword",E(Wt)):u&&"("==t?T(Ft,Wt):";"==t||","==t?E(Wt):"}"==t?E():"@"==e?E(W,Wt):void 0}function $t(t,e){if("!"==e)return E($t);if("?"==e)return E($t);if(":"==t)return E(mt,Mt);if("="==e)return E($);var n=_.state.lexical.prev;return T(n&&"interface"==n.info?Ft:It)}function qt(t,e){return"*"==e?(_.marked="keyword",E(Qt,H(";"))):"default"==e?(_.marked="keyword",E(W,H(";"))):"{"==t?E(ut(Gt,"}"),Qt,H(";")):T(z)}function Gt(t,e){return"as"==e?(_.marked="keyword",E(H("variable"))):"variable"==t?T($,Gt):void 0}function Kt(t){return"string"==t?E():"("==t?T(W):"."==t?T(Y):T(Yt,Xt,Qt)}function Yt(t,e){return"{"==t?ft(Yt,"}"):("variable"==t&&D(e),"*"==e&&(_.marked="keyword"),E(Jt))}function Xt(t){if(","==t)return E(Yt,Xt)}function Jt(t,e){if("as"==e)return _.marked="keyword",E(Yt)}function Qt(t,e){if("from"==e)return _.marked="keyword",E(W)}function te(t){return"]"==t?E():T(ut($,"]"))}function ee(){return T(B("form"),Et,H("{"),B("}"),ut(ne,"}"),V,V)}function ne(){return T(Et,Mt)}function re(t,e){return"operator"==t.lastType||","==t.lastType||d.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ie(t,e,n){return e.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}return F.lex=!0,V.lex=!0,{startState:function(t){var e={tokenize:m,lastType:"sof",cc:[],lexical:new C((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new R(null,null,!1),indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),x(t,e)),e.tokenize!=b&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",P(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==b||e.tokenize==w)return t.Pass;if(e.tokenize!=m)return 0;var i,s=r&&r.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(r))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==V)l=l.prev;else if(u!=Rt&&u!=F)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=e.cc[e.cc.length-1])&&(i==Y||i==X)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,h=s==f;return"vardef"==f?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==f&&"{"==s?l.indented:"form"==f?l.indented+o:"stat"==f?l.indented+(re(e,r)?a||o:0):"switch"!=l.info||h||0==n.doubleIndentSwitch?l.align?l.column+(h?0:1):l.indented+(h?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:ie,skipExpression:function(e){P(e,"atom","atom","true",new t.StringStream("",2,null))}}})),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/manifest+json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(4631))},9589:(t,e,n)=>{!function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?e:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function f(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return"<"==r?t.eat("!")?t.eat("[")?t.match("CDATA[")?n(p("atom","]]>")):null:t.match("--")?n(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(g(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=p("meta","?>"),"meta"):(o=t.eat("/")?"closeTag":"openTag",e.tokenize=h,"tag bracket"):"&"==r?(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error":(t.eatWhile(/[^&<]/),null)}function h(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=f,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){e.tokenize=f,e.state=w,e.tagName=e.tagStart=null;var r=e.tokenize(t,e);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=d(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function d(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=h;break}return"string"};return e.isInAttribute=!0,e}function p(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=f;break}n.next()}return t}}function g(t){return function(e,n){for(var r;null!=(r=e.next());){if("<"==r)return n.tokenize=g(t+1),n.tokenize(e,n);if(">"==r){if(1==t){n.tokenize=f;break}return n.tokenize=g(t-1),n.tokenize(e,n)}}return"meta"}}function v(t){return t&&t.toLowerCase()}function m(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function y(t){t.context&&(t.context=t.context.prev)}function b(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(v(n))||!l.contextGrabbers[v(n)].hasOwnProperty(v(e)))return;y(t)}}function w(t,e,n){return"openTag"==t?(n.tagStart=e.column(),k):"closeTag"==t?x:w}function k(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",S):l.allowMissingTagName&&"endTag"==t?(a="tag bracket",S(t,e,n)):(a="error",k)}function x(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(v(n.context.tagName))&&y(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",O):(a="tag error",C)}return l.allowMissingTagName&&"endTag"==t?(a="tag bracket",O(t,e,n)):(a="error",C)}function O(t,e,n){return"endTag"!=t?(a="error",O):(y(n),w)}function C(t,e,n){return a="error",O(t,e,n)}function S(t,e,n){if("word"==t)return a="attribute",P;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(v(r))?b(n,r):(b(n,r),n.context=new m(n,r,i==n.indented)),w}return a="error",S}function P(t,e,n){return"equals"==t?_:(l.allowMissing||(a="error"),S(t,e,n))}function _(t,e,n){return"string"==t?T:"word"==t&&l.allowUnquoted?(a="string",S):(a="error",S(t,e,n))}function T(t,e,n){return"string"==t?T:S(t,e,n)}return f.isInText=!0,{startState:function(t){var e={tokenize:f,state:w,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;o=null;var n=e.tokenize(t,e);return(n||o)&&"comment"!=n&&(a=null,e.state=e.state(o||n,t,e),a&&(n="error"==a?n+" error":a)),n},indent:function(e,n,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+s;if(i&&i.noIndent)return t.Pass;if(e.tokenize!=h&&e.tokenize!=f)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==l.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(t){t.state==_&&(t.state=S)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:"closeTag"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(4631))},5666:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new T(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=u(t,e,n);if("normal"===l.type){if(r=n.done?p:h,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(t,n,a),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f="suspendedStart",h="suspendedYield",d="executing",p="completed",g={};function v(){}function m(){}function y(){}var b={};b[o]=function(){return this};var w=Object.getPrototypeOf,k=w&&w(w(E([])));k&&k!==n&&r.call(k,o)&&(b=k);var x=y.prototype=v.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function C(t,e){function n(i,o,a,s){var l=u(t[i],t,o);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(f).then((function(t){c.value=t,a(c)}),(function(t){return n("throw",t,a,s)}))}s(l.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=u(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function E(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},2828:(t,e,n)=>{var r={"./CanvasClear":9819,"./CanvasClear.js":9819,"./CanvasMove":2784,"./CanvasMove.js":2784,"./CommandAbstract":5884,"./CommandAbstract.js":5884,"./ComponentDelete":7585,"./ComponentDelete.js":7585,"./ComponentDrag":1035,"./ComponentDrag.js":1035,"./ComponentEnter":6785,"./ComponentEnter.js":6785,"./ComponentExit":9666,"./ComponentExit.js":9666,"./ComponentNext":7350,"./ComponentNext.js":7350,"./ComponentPrev":6572,"./ComponentPrev.js":6572,"./ComponentStyleClear":9097,"./ComponentStyleClear.js":9097,"./CopyComponent":515,"./CopyComponent.js":515,"./DeleteComponent":2095,"./DeleteComponent.js":2095,"./ExportTemplate":6949,"./ExportTemplate.js":6949,"./Fullscreen":6945,"./Fullscreen.js":6945,"./MoveComponent":5317,"./MoveComponent.js":5317,"./OpenAssets":9743,"./OpenAssets.js":9743,"./OpenBlocks":490,"./OpenBlocks.js":490,"./OpenLayers":3403,"./OpenLayers.js":3403,"./OpenStyleManager":9346,"./OpenStyleManager.js":9346,"./OpenTraitManager":2643,"./OpenTraitManager.js":2643,"./PasteComponent":5966,"./PasteComponent.js":5966,"./Preview":2074,"./Preview.js":2074,"./Resize":3953,"./Resize.js":3953,"./SelectComponent":7208,"./SelectComponent.js":7208,"./SelectPosition":1988,"./SelectPosition.js":1988,"./ShowOffset":6069,"./ShowOffset.js":6069,"./SwitchVisibility":2927,"./SwitchVisibility.js":2927};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code='MODULE_NOT_FOUND',e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=o,t.exports=i,i.id=2828},907:(t,e,n)=>{"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nr})},7326:(t,e,n)=>{"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,{Z:()=>r})},5861:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,a){try{var s=t[o](a),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,l,"next",t)}function l(t){r(a,i,o,s,l,"throw",t)}s(void 0)}))}}n.d(e,{Z:()=>i})},5671:(t,e,n)=>{"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:()=>r})},3144:(t,e,n)=>{"use strict";function r(t,e){for(var n=0;ni})},4942:(t,e,n)=>{"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>r})},1120:(t,e,n)=>{"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:()=>r})},9340:(t,e,n)=>{"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&r(t,e)}n.d(e,{Z:()=>i})},4925:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},2963:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(1002),i=n(7326);function o(t,e){if(e&&("object"===(0,r.Z)(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(t)}},885:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(181);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}}(t,e)||(0,r.Z)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},168:(t,e,n)=>{"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,{Z:()=>r})},2982:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(907);var i=n(181);function o(t){return function(t){if(Array.isArray(t))return(0,r.Z)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.Z)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},1002:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},181:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(907);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}},9050:(t,e,n)=>{"use strict";n.r(e),n.d(e,{VERSION:()=>i,after:()=>Re,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Rt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>zn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Rt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>R,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Rn,unescape:()=>se,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Rn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var r={};n.r(r),n.d(r,{VERSION:()=>i,after:()=>Re,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Rt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>Vn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Rt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>R,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Rn,unescape:()=>se,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Rn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var i='1.13.1',o='object'==typeof self&&self.self===self&&self||'object'==typeof global&&global.global===global&&global||Function('return this')()||{},a=Array.prototype,s=Object.prototype,l='undefined'!=typeof Symbol?Symbol.prototype:null,c=a.push,u=a.slice,f=s.toString,h=s.hasOwnProperty,d='undefined'!=typeof ArrayBuffer,p='undefined'!=typeof DataView,g=Array.isArray,v=Object.keys,m=Object.create,y=d&&ArrayBuffer.isView,b=isNaN,w=isFinite,k=!{toString:null}.propertyIsEnumerable('toString'),x=['valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'],O=Math.pow(2,53)-1;function C(t,e){return e=null==e?t.length-1:+e,function(){for(var n=Math.max(arguments.length-e,0),r=Array(n),i=0;i=0&&n<=O}}function tt(t){return function(e){return null==e?void 0:e[t]}}const et=tt('byteLength'),nt=Q(et);var rt=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const it=d?function(t){return y?y(t)&&!W(t):nt(t)&&rt.test(f.call(t))}:J(!1),ot=tt('length');function at(t,e){e=function(t){for(var e={},n=t.length,r=0;r':'>','"':'"',"'":''','`':'`'},ae=ie(oe),se=ie(jt(oe)),le=ut.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ce=/(.)^/,ue={"'":"'",'\\':'\\','\r':'r','\n':'n','\u2028':'u2028','\u2029':'u2029'},fe=/\\|'|\r|\n|\u2028|\u2029/g;function he(t){return'\\'+ue[t]}var de=/^\s*(\w|\$)+\s*$/;function pe(t,e,n){!e&&n&&(e=n),e=Zt({},e,ut.templateSettings);var r=RegExp([(e.escape||ce).source,(e.interpolate||ce).source,(e.evaluate||ce).source].join('|')+'|$','g'),i=0,o="__p+='";t.replace(r,(function(e,n,r,a,s){return o+=t.slice(i,s).replace(fe,he),i=s+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e})),o+="';\n";var a,s=e.variable;if(s){if(!de.test(s))throw new Error('variable is not a bare identifier: '+s)}else o='with(obj||{}){\n'+o+'}\n',s='obj';o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+'return __p;\n';try{a=new Function(s,'_',o)}catch(t){throw t.source=o,t}var l=function(t){return a.call(this,t,ut)};return l.source='function('+s+'){\n'+o+'}',l}function ge(t,e,n){var r=(e=Vt(e)).length;if(!r)return B(n)?n.call(t):n;for(var i=0;i1)Ce(s,e-1,n,r),i=r.length;else for(var l=0,c=s.length;le?(r&&(clearTimeout(r),r=null),s=c,a=t.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),s=0,r=i=o=null},c}function je(t,e,n){var r,i,o,a,s,l=function(){var c=re()-i;e>c?r=setTimeout(l,e-c):(r=null,n||(a=t.apply(s,o)),r||(o=s=null))},c=C((function(c){return s=this,o=c,i=re(),r||(r=setTimeout(l,e),n&&(a=t.apply(s,o))),a}));return c.cancel=function(){clearTimeout(r),r=o=s=null},c}function De(t,e){return ke(e,t)}function Me(t){return function(){return!t.apply(this,arguments)}}function Ae(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function Re(t,e){return function(){if(--t<1)return e.apply(this,arguments)}}function Ze(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}}const Le=ke(Ze,2);function Ne(t,e,n){e=Xt(e,n);for(var r,i=st(t),o=0,a=i.length;o0?0:i-1;o>=0&&o0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(n&&o&&s)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=e(u.call(r,a,s),X))>=0?o+a:-1;for(o=t>0?a:s-1;o>=0&&o0?0:a-1;for(i||(r=e[o?o[s]:s],s+=t);s>=0&&s=3;return e(t,Gt(n,i,4),r,o)}}const Ye=Ke(1),Xe=Ke(-1);function Je(t,e,n){var r=[];return e=Xt(e,n),qe(t,(function(t,n,i){e(t,n,i)&&r.push(t)})),r}function Qe(t,e,n){return Je(t,Me(Xt(e)),n)}function tn(t,e,n){e=Xt(e,n);for(var r=!Oe(t)&&st(t),i=(r||t).length,o=0;o=0}const rn=C((function(t,e,n){var r,i;return B(e)?i=e:(e=Vt(e),r=e.slice(0,-1),e=e[e.length-1]),Ge(t,(function(t){var o=i;if(!o){if(r&&r.length&&(t=Ht(t,r)),null==t)return;o=t[e]}return null==o?o:o.apply(t,n)}))}));function on(t,e){return Ge(t,qt(e))}function an(t,e){return Je(t,$t(e))}function sn(t,e,n){var r,i,o=-1/0,a=-1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;so&&(o=r);else e=Xt(e,n),qe(t,(function(t,n,r){((i=e(t,n,r))>a||i===-1/0&&o===-1/0)&&(o=t,a=i)}));return o}function ln(t,e,n){var r,i,o=1/0,a=1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;sr||void 0===n)return 1;if(n1&&(r=Gt(r,e[1])),e=vt(t)):(r=wn,e=Ce(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(n=e[1])):(e=Ge(Ce(e,!1,!1),String),r=function(t,n){return!nn(e,n)}),kn(t,r,n)}));function On(t,e,n){return u.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))}function Cn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[0]:On(t,t.length-e)}function Sn(t,e,n){return u.call(t,null==e||n?1:e)}function Pn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[t.length-1]:Sn(t,Math.max(0,t.length-e))}function _n(t){return Je(t,Boolean)}function Tn(t,e){return Ce(t,e,!1)}const En=C((function(t,e){return e=Ce(e,!0,!0),Je(t,(function(t){return!nn(e,t)}))})),jn=C((function(t,e){return En(t,e)}));function Dn(t,e,n,r){T(e)||(r=n,n=e,e=!1),null!=n&&(n=Xt(n,r));for(var i=[],o=[],a=0,s=ot(t);a{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if('object'==typeof globalThis)return globalThis;try{return this||new Function('return this')()}catch(t){if('object'==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(t,'__esModule',{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>z});var t=n(4942),e=n(9050),i=n(290),o=n(5861),a=n(7757),s=n.n(a),l=n(8595);const c={stylePrefix:'gjs-',components:'',style:'',fromElement:0,projectData:null,noticeOnUnload:!0,showOffsets:!1,showOffsetsSelected:!1,forceClass:!0,height:'900px',width:'100%',log:['warning','error'],baseCss:"\n * {\n box-sizing: border-box;\n }\n html, body, [data-gjs-type=wrapper] {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n [data-gjs-type=wrapper] {\n overflow: auto;\n overflow-x: hidden;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n ",protectedCss:'* { box-sizing: border-box; } body {margin: 0;}',canvasCss:'',defaultCommand:'select-comp',showToolbar:1,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,optsHtml:{},optsCss:{},avoidInlineStyle:1,avoidDefaults:1,clearStyles:0,dragMode:0,listenToEl:[],cssIcons:'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css',icons:{close:'',move:'',plus:'',caret:'',delete:'',copy:'',arrowUp:''},el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{},styleManager:{},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0,customUI:!1};var u=n(4925),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n.n(v);var y=n(3168);function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var w=function(t){(0,d.Z)(n,t);var e=b(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n)}(v.Model),k=function(t){(0,d.Z)(r,t);var n=b(r);function r(){return(0,f.Z)(this,r),n.apply(this,arguments)}return(0,h.Z)(r,[{key:"getByComponent",value:function(t){var e=this;return this.filter((function(n){return e.getComponent(n)===t}))[0]}},{key:"addComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).filter((function(t){return!r.hasComponent(t)})).map((function(t){return{component:t}}));return this.push(i,n)}},{key:"getComponent",value:function(t){return t.get('component')}},{key:"hasComponent",value:function(t){var e=this.getByComponent(t);return e&&this.contains(e)}},{key:"lastComponent",value:function(){var t=this.last();return t&&this.getComponent(t)}},{key:"allComponents",value:function(){var t=this;return this.map((function(e){return t.getComponent(e)})).filter((function(t){return t}))}},{key:"removeComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).map((function(t){return r.getByComponent(t)}));return this.remove(i,n)}}]),r}(v.Collection);k.prototype.model=w;var x=["unset"];function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};this.config=n;var r=this.config;this.set('Config',r),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new k),this.set('dmode',r.dragMode);var i=r.el,o=r.log,a=!0===o?(0,e.keys)(E):(0,e.isArray)(o)?o:[];(0,e.bindAll)(this,'initBaseColorPicker'),i&&r.fromElement&&(r.components=i.innerHTML),this.attrsOrig=i?(0,e.toArray)(i.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',r.components&&!r.pageManager&&(r.pageManager={pages:[{component:r.components}]}),T.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),this.on('change:readyLoad change:readyCanvas',this._checkReady,this),a.forEach((function(e){return t.listenLog(e)})),[{from:'change:selectedComponent',to:'component:toggled'}].forEach((function(e){var n=e.from,r=e.to;t.listenTo(t,n,(function(){for(var e=arguments.length,i=new Array(e),o=0;o=e.getStepsBeforeSave()&&this.store().catch((function(e){return t.logError(e)}))}},{key:"loadModule",value:function(t){var n=this.config,r=new(t.default||t),i=r.name.charAt(0).toLowerCase()+r.name.slice(1),o=(0,e.isUndefined)(n[i])?n[r.name]:n[i],a=!0===o?{}:o||{};if(a.pStylePrefix=n.pStylePrefix||'',(0,e.isUndefined)(o)||o||(a._disable=1),r.storageKey&&r.store&&r.load){var s=['domComponents','pageManager'].indexOf(i)>=0?'unshift':'push';this.get('storables')[s](r)}return a.em=this,r.init(C({},a)),!r.private&&this.set(r.name,r),r.onLoad&&this.get('toLoad').push(r),this.get('modules').push(r),this}},{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroyed&&(this.initialize(e),this.destroyed=0),this.set('Editor',t)}},{key:"getEditor",value:function(){return this.get('Editor')}},{key:"handleUpdates",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.__skip||r.temporary||r.noCount||r.avoidStore||!this.get('ready')||(P&&clearTimeout(P),P=setTimeout((function(){var t=n.getDirtyCount()||0,e=(r.unset,(0,u.Z)(r,x));n.set('changesCount',t+1,e)}),0))}},{key:"changesUp",value:function(t){this.handleUpdates(0,0,t)}},{key:"componentHovered",value:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)}},{key:"getSelected",value:function(){return this.get('selected').lastComponent()}},{key:"getSelectedAll",value:function(){return this.get('selected').allComponents()}},{key:"setSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.event,a=o&&(o.ctrlKey||o.metaKey),s=o||{},l=s.shiftKey,c=(0,e.isArray)(t),u=(c?t:[t]).map((function(t){return(0,y.getModel)(t,i.default)})),f=this.getSelectedAll(),h=this.getConfig('multipleSelection');c&&this.removeSelected(f.filter((function(t){return!(0,e.contains)(u,t)}))),u.forEach((function(t){var i=(0,y.getModel)(t);if(i&&(n.trigger('component:select:before',i,r),!i.get('selectable')||r.abort)){if(!r.useValid)return;for(var o=i.parent();o&&!o.get('selectable');)o=o.parent();i=o}if(a&&h)return n.toggleSelected(i);if(l&&h){n.clearSelection(n.get('Canvas').getWindow());var s,u,d=i.collection,p=i.index();if(n.getSelectedAll().forEach((function(t){var n=t.collection,r=t.index();n===d&&(rp&&(u=(0,e.isUndefined)(u)?r:Math.min(u,r)))})),!(0,e.isUndefined)(s))for(;s!==p;)n.addSelected(d.at(s)),s++;if(!(0,e.isUndefined)(u))for(;u!==p;)n.addSelected(d.at(u)),u--;return n.addSelected(i)}!c&&n.removeSelected(f.filter((function(t){return t!==i}))),n.addSelected(i,r),i}))}},{key:"addSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){if(!t||t.get('selectable')){var e=n.get('selected');r.forceChange&&n.removeSelected(t,r),e.addComponent(t,r),t&&n.trigger('component:select',t,r)}}))}},{key:"removeSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').removeComponent((0,y.getModel)(t,i.default),e)}},{key:"toggleSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){n.get('selected').hasComponent(t)?n.removeSelected(t,r):n.addSelected(t,r)}))}},{key:"setHovered",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return this.set('componentHovered','');var n='component:hover',r=(0,y.getModel)(t);if(r){if(e.forceChange&&this.set('componentHovered',''),this.trigger("".concat(n,":before"),r,e),!r.get('hoverable')){if(!e.useValid||e.abort)return;for(var i=r&&r.parent();i&&!i.get('hoverable');)i=i.parent();r=i}e.abort||(this.set('componentHovered',r,e),this.trigger(n,r,e))}}},{key:"getHovered",value:function(){return this.get('componentHovered')}},{key:"setComponents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)}},{key:"getComponents",value:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}}},{key:"setStyle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('CssComposer');return n.clear(e),n.getAll().add(t,e),this}},{key:"addStyle",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getStyle().add(t,n);return(0,e.isArray)(r)?r:[r]}},{key:"getStyle",value:function(){return this.get('CssComposer').getAll()}},{key:"setState",value:function(t){return this.set('state',t),this}},{key:"getState",value:function(){return this.get('state')||''}},{key:"getHtml",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.jsInHtml?this.getJs(t):'',i=t.component||this.get('DomComponents').getComponent(),o=i?this.get('CodeManager').getCode(i,'html',C(C({},n),t)):'';return o+=r?"` : '';\n return html;\n }\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @returns {string} CSS string\n * @private\n */\n getCss(opts = {}) {\n const config = this.config;\n const { optsCss } = config;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = opts.component || this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n const css =\n wrp &&\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n keepUnusedStyles,\n ...optsCss,\n ...opts,\n });\n return wrp ? (opts.json ? css : protCss + css) : '';\n }\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs(opts = {}) {\n var wrp = opts.component || this.get('DomComponents').getWrapper();\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\n }\n\n /**\n * Store data to the current storage.\n * @private\n */\n async store(options) {\n const data = this.storeData();\n await this.get('StorageManager').store(data, options);\n this.clearDirtyCount();\n return data;\n }\n\n /**\n * Load data from the current storage.\n * @private\n */\n async load(options) {\n const result = await this.get('StorageManager').load(options);\n this.loadData(result);\n return result;\n }\n\n storeData() {\n let result = {};\n // Sync content if there is an active RTE\n const editingCmp = this.getEditing();\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\n\n this.get('storables').forEach(m => {\n result = { ...result, ...m.store(1) };\n });\n return JSON.parse(JSON.stringify(result));\n }\n\n loadData(data = {}) {\n this.get('storables').forEach(module => module.load(data));\n return data;\n }\n\n /**\n * Returns device model by name\n * @return {Device|null}\n * @private\n */\n getDeviceModel() {\n var name = this.get('device');\n return this.get('DeviceManager').get(name);\n }\n\n /**\n * Run default command if setted\n * @param {Object} [opts={}] Options\n * @private\n */\n runDefault(opts = {}) {\n var command = this.get('Commands').get(this.config.defaultCommand);\n if (!command || this.defaultRunning) return;\n command.stop(this, this, opts);\n command.run(this, this, opts);\n this.defaultRunning = 1;\n }\n\n /**\n * Stop default command\n * @param {Object} [opts={}] Options\n * @private\n */\n stopDefault(opts = {}) {\n const commands = this.get('Commands');\n const command = commands.get(this.config.defaultCommand);\n if (!command || !this.defaultRunning) return;\n command.stop(this, this, opts);\n this.defaultRunning = 0;\n }\n\n /**\n * Update canvas dimensions and refresh data useful for tools positioning\n * @private\n */\n refreshCanvas(opts = {}) {\n this.set('canvasOffset', null);\n this.set('canvasOffset', this.get('Canvas').getOffset());\n opts.tools && this.trigger('canvas:updateTools');\n }\n\n /**\n * Clear all selected stuf inside the window, sometimes is useful to call before\n * doing some dragging opearation\n * @param {Window} win If not passed the current one will be used\n * @private\n */\n clearSelection(win) {\n var w = win || window;\n w.getSelection().removeAllRanges();\n }\n\n /**\n * Get the current media text\n * @return {string}\n */\n getCurrentMedia() {\n const config = this.config;\n const device = this.getDeviceModel();\n const condition = config.mediaCondition;\n const preview = config.devicePreviewMode;\n const width = device && device.get('widthMedia');\n return device && width && !preview ? `(${condition}: ${width})` : '';\n }\n\n /**\n * Return the component wrapper\n * @return {Component}\n */\n getWrapper() {\n return this.get('DomComponents').getWrapper();\n }\n\n setCurrentFrame(frameView) {\n return this.set('currentFrame', frameView);\n }\n\n getCurrentFrame() {\n return this.get('currentFrame');\n }\n\n getCurrentFrameModel() {\n return (this.getCurrentFrame() || {}).model;\n }\n\n getIcon(icon) {\n const icons = this.getConfig('icons') || {};\n return icons[icon] || '';\n }\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return this.get('changesCount');\n }\n\n clearDirtyCount() {\n return this.set('changesCount', 0);\n }\n\n getZoomDecimal() {\n return this.get('Canvas').getZoomDecimal();\n }\n\n getZoomMultiplier() {\n return this.get('Canvas').getZoomMultiplier();\n }\n\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n t(...args) {\n const i18n = this.get('I18n');\n return i18n?.t(...args);\n }\n\n /**\n * Returns true if the editor is in absolute mode\n * @returns {Boolean}\n */\n inAbsoluteMode() {\n return this.get('dmode') === 'absolute';\n }\n\n /**\n * Destroy editor\n */\n destroyAll() {\n const { config, view } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n const shallow = this.get('shallow');\n shallow?.destroyAll();\n this.stopListening();\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n view && view.remove();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\n editors.splice(editors.indexOf(editor), 1);\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\n }\n\n getEditing() {\n const res = this.get('editing');\n return (res && res.model) || null;\n }\n\n setEditing(value) {\n this.set('editing', value);\n return this;\n }\n\n isEditing() {\n return !!this.get('editing');\n }\n\n log(msg, opts = {}) {\n const { ns, level = 'debug' } = opts;\n this.trigger('log', msg, opts);\n level && this.trigger(`log:${level}`, msg, opts);\n\n if (ns) {\n const logNs = `log-${ns}`;\n this.trigger(logNs, msg, opts);\n level && this.trigger(`${logNs}:${level}`, msg, opts);\n }\n }\n\n logInfo(msg, opts) {\n this.log(msg, { ...opts, level: 'info' });\n }\n\n logWarning(msg, opts) {\n this.log(msg, { ...opts, level: 'warning' });\n }\n\n logError(msg, opts) {\n this.log(msg, { ...opts, level: 'error' });\n }\n\n initBaseColorPicker(el, opts = {}) {\n const config = this.getConfig();\n const { colorPicker = {} } = config;\n const elToAppend = config.el;\n const ppfx = config.stylePrefix;\n\n return $(el).spectrum({\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n palette: [],\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n ...opts,\n ...colorPicker,\n });\n }\n\n /**\n * Execute actions without triggering the storage and undo manager.\n * @param {Function} clb\n * @private\n */\n skip(clb) {\n this.__skip = true;\n const um = this.get('UndoManager');\n um ? um.skip(clb) : clb();\n this.__skip = false;\n }\n\n /**\n * Set/get data from the HTMLElement\n * @param {HTMLElement} el\n * @param {string} name Data name\n * @param {any} value Date value\n * @return {any}\n * @private\n */\n data(el, name, value) {\n const varName = '_gjs-data';\n\n if (!el[varName]) {\n el[varName] = {};\n }\n\n if (isUndefined(value)) {\n return el[varName][name];\n } else {\n el[varName][name] = value;\n }\n }\n}\n","import { isObject } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\n const fn = $.fn;\n\n // Additional helpers\n\n fn.hide = function () {\n return this.css('display', 'none');\n };\n\n fn.show = function () {\n return this.css('display', 'block');\n };\n\n fn.focus = function () {\n const el = this.get(0);\n el && el.focus();\n return this;\n };\n\n // For SVGs in IE\n // (fn.removeClass = function(c) {\n // if (!arguments.length) {\n // return this.attr('class', '');\n // }\n // const classes = isString(c) && c.match(/\\S+/g);\n // return classes\n // ? this.each(function(el) {\n // each(classes, function(c) {\n // if (el.classList) {\n // el.classList.remove(c);\n // } else {\n // const val = el.className;\n // const bval = el.className.baseVal;\n\n // if (!isUndefined(bval)) {\n // val.baseVal = bval.replace(c, '');\n // } else {\n // el.className = val.replace(c, '');\n // }\n // }\n // });\n // })\n // : this;\n // }),\n // (fn.remove = function() {\n // return this.each(node => {\n // return node.parentNode && node.parentNode.removeChild(node);\n // });\n // }),\n\n // For spectrum compatibility\n\n fn.bind = function (ev, h) {\n return this.on(ev, h);\n };\n\n fn.unbind = function (ev, h) {\n if (isObject(ev)) {\n for (let name in ev) {\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\n }\n\n return this;\n } else {\n return this.off(ev, h);\n }\n };\n\n fn.click = function (h) {\n return h ? this.on('click', h) : this.trigger('click');\n };\n\n fn.change = function (h) {\n return h ? this.on('change', h) : this.trigger('change');\n };\n\n fn.keydown = function (h) {\n return h ? this.on('keydown', h) : this.trigger('keydown');\n };\n\n fn.delegate = function (selector, events, data, handler) {\n if (!handler) {\n handler = data;\n }\n\n return this.on(events, selector, function (e) {\n e.data = data;\n handler(e);\n });\n };\n\n fn.scrollLeft = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageXOffset : el.scrollLeft || 0;\n };\n\n fn.scrollTop = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageYOffset : el.scrollTop || 0;\n };\n\n const offset = $.prototype.offset;\n fn.offset = function (coords) {\n let top, left;\n\n if (coords) {\n top = coords.top;\n left = coords.left;\n }\n\n if (typeof top != 'undefined') {\n this.css('top', `${top}px`);\n }\n if (typeof left != 'undefined') {\n this.css('left', `${left}px`);\n }\n\n return offset.call(this);\n };\n\n $.map = function (items, clb) {\n const ar = [];\n\n for (var i = 0; i < items.length; i++) {\n ar.push(clb(items[i], i));\n }\n\n return ar;\n };\n\n const indexOf = Array.prototype.indexOf;\n\n $.inArray = function (val, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, val, i);\n };\n\n $.Event = function (src, props) {\n if (!(this instanceof $.Event)) {\n return new $.Event(src, props);\n }\n\n this.type = src;\n this.isDefaultPrevented = () => false;\n };\n }\n};\n","import Backbone from 'backbone';\nimport { View } from '../../common';\nimport { appendStyles } from '../../utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default class EditorView extends View {\n initialize() {\n const { model } = this;\n const { Panels, UndoManager } = model.attributes;\n model.view = this;\n model.once('change:ready', () => {\n Panels.active();\n Panels.disableButtons();\n UndoManager.clear();\n setTimeout(() => {\n model.trigger('load', model.get('Editor'));\n model.clearDirtyCount();\n });\n });\n }\n\n render() {\n const { $el, model } = this;\n const { Panels, Canvas, modules } = model.attributes;\n const conf = model.getConfig();\n const pfx = conf.stylePrefix;\n const contEl = $(conf.el || `body ${conf.container}`);\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\n $el.empty();\n\n if (conf.width) contEl.css('width', conf.width);\n if (conf.height) contEl.css('height', conf.height);\n\n $el.append(Canvas.render());\n $el.append(Panels.render());\n\n // Load shallow editor\n const shallow = model.get('shallow');\n const shallowCanvasEl = shallow.get('Canvas').render();\n shallowCanvasEl.style.display = 'none';\n $el.append(shallowCanvasEl);\n\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\n modules.forEach(md => md.postRender && md.postRender(this));\n\n return this;\n }\n}\n","/**\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\n *\n * ```js\n * const editor = grapesjs.init({\n * // options\n * });\n * ```\n *\n * ## Available Events\n *\n * You can make use of available events in this way\n * ```js\n * editor.on('EVENT-NAME', (some, argument) => {\n * // do something\n * })\n * ```\n *\n * * `update` - The structure of the template is updated (its HTML/CSS)\n * * `undo` - Undo executed\n * * `redo` - Redo executed\n * * `load` - Editor is loaded\n *\n * ### Components\n * Check the [Components](/api/components.html) module.\n * ### Keymaps\n * Check the [Keymaps](/api/keymaps.html) module.\n * ### Style Manager\n * Check the [Style Manager](/api/style_manager.html) module.\n * ### Storage\n * Check the [Storage](/api/storage_manager.html) module.\n * ### Canvas\n * Check the [Canvas](/api/canvas.html) module.\n * ### RTE\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\n * ### Commands\n * Check the [Commands](/api/commands.html) module.\n * ### Selectors\n * Check the [Selectors](/api/selector_manager.html) module.\n * ### Blocks\n * Check the [Blocks](/api/block_manager.html) module.\n * ### Assets\n * Check the [Assets](/api/assets.html) module.\n * ### Modal\n * Check the [Modal](/api/modal_dialog.html) module.\n * ### Devices\n * Check the [Devices](/api/device_manager.html) module.\n * ### Parser\n * Check the [Parser](/api/parser.html) module.\n * ### Pages\n * Check the [Pages](/api/pages.html) module.\n *\n * ## Methods\n * @module Editor\n */\nimport html from '../utils/html';\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\n\nexport default (config = {}, opts = {}) => {\n const { $ } = opts;\n let c = {\n ...defaults,\n ...config,\n };\n\n c.pStylePrefix = c.stylePrefix;\n let em = new EditorModel(c);\n let editorView;\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n modules: [],\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n this.modules = [\n 'I18n',\n 'Utils',\n 'Config',\n 'Commands',\n 'Keymaps',\n 'Modal',\n 'Panels',\n 'Canvas',\n 'Parser',\n 'CodeManager',\n 'UndoManager',\n 'RichTextEditor',\n ['Pages', 'PageManager'],\n 'DomComponents',\n ['Components', 'DomComponents'],\n 'LayerManager',\n ['Layers', 'LayerManager'],\n 'CssComposer',\n ['Css', 'CssComposer'],\n 'StorageManager',\n ['Storage', 'StorageManager'],\n 'AssetManager',\n ['Assets', 'AssetManager'],\n 'BlockManager',\n ['Blocks', 'BlockManager'],\n 'TraitManager',\n ['Traits', 'TraitManager'],\n 'SelectorManager',\n ['Selectors', 'SelectorManager'],\n 'StyleManager',\n ['Styles', 'StyleManager'],\n 'DeviceManager',\n ['Devices', 'DeviceManager'],\n ];\n\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = em.get(prop[1]);\n } else {\n this[prop] = em.get(prop);\n }\n });\n\n return this;\n },\n\n /**\n * Returns configuration object\n * @param {string} [prop] Property name\n * @returns {any} Returns the configuration object or\n * the value of the specified property\n */\n getConfig(prop) {\n return em.getConfig(prop);\n },\n\n /**\n * Returns HTML built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the HTML of a specific Component\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\n * @returns {string} HTML string\n */\n getHtml(opts) {\n return em.getHtml(opts);\n },\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the CSS of a specific Component\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\n * @returns {String|Array} CSS string or array of CssRules\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Get the JS of a specific component\n * @returns {String} JS string\n */\n getJs(opts) {\n return em.getJs(opts);\n },\n\n /**\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\n * @return {Components}\n */\n getComponents() {\n return em.get('DomComponents').getComponents();\n },\n\n /**\n * Return the wrapper and its all components\n * @return {Component}\n */\n getWrapper() {\n return em.get('DomComponents').getWrapper();\n },\n\n /**\n * Set components inside editor's canvas. This method overrides actual components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\n * @return {this}\n * @example\n * editor.setComponents('
New component
');\n * // or\n * editor.setComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n setComponents(components, opt = {}) {\n em.setComponents(components, opt);\n return this;\n },\n\n /**\n * Add components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opts Options\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\n * by default, they will be created and, if already exist, updated. When this option\n * is true, styles already created will not be updated.\n * @return {Array}\n * @example\n * editor.addComponents('
New component
');\n * // or\n * editor.addComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n addComponents(components, opts) {\n return this.getWrapper().append(components, opts);\n },\n\n /**\n * Returns style in JSON format object\n * @return {Object}\n */\n getStyle() {\n return em.get('CssComposer').getAll();\n },\n\n /**\n * Set style inside editor's canvas. This method overrides actual style\n * @param {Array|Object|string} style CSS string or style model\n * @return {this}\n * @example\n * editor.setStyle('.cls{color: red}');\n * //or\n * editor.setStyle({\n * selectors: ['cls'],\n * style: { color: 'red' }\n * });\n */\n setStyle(style, opt = {}) {\n em.setStyle(style, opt);\n return this;\n },\n\n /**\n * Add styles to the editor\n * @param {Array|Object|string} style CSS string or style model\n * @returns {Array} Array of created CssRule instances\n * @example\n * editor.addStyle('.cls{color: red}');\n */\n addStyle(style, opts = {}) {\n return em.addStyle(style, opts);\n },\n\n /**\n * Returns the last selected component, if there is one\n * @return {Model}\n */\n getSelected() {\n return em.getSelected();\n },\n\n /**\n * Returns an array of all selected components\n * @return {Array}\n */\n getSelectedAll() {\n return em.getSelectedAll();\n },\n\n /**\n * Get a stylable entity from the selected component.\n * If you select a component without classes the entity is the Component\n * itself and all changes will go inside its 'style' attribute. Otherwise,\n * if the selected component has one or more classes, the function will\n * return the corresponding CSS Rule\n * @return {Model}\n */\n getSelectedToStyle() {\n let selected = em.getSelected();\n\n if (selected) {\n return this.StyleManager.getModelToStyle(selected);\n }\n },\n\n /**\n * Select a component\n * @param {Component|HTMLElement} el Component to select\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\n * @return {this}\n * @example\n * // Select dropped block\n * editor.on('block:drag:stop', function(model) {\n * editor.select(model);\n * });\n */\n select(el, opts) {\n em.setSelected(el, opts);\n return this;\n },\n\n /**\n * Add component to selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectAdd(model);\n */\n selectAdd(el) {\n em.addSelected(el);\n return this;\n },\n\n /**\n * Remove component from selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectRemove(model);\n */\n selectRemove(el) {\n em.removeSelected(el);\n return this;\n },\n\n /**\n * Toggle component selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectToggle(model);\n */\n selectToggle(el) {\n em.toggleSelected(el);\n return this;\n },\n\n /**\n * Returns, if active, the Component enabled in rich text editing mode.\n * @returns {Component|null}\n * @example\n * const textComp = editor.getEditing();\n * if (textComp) {\n * console.log('HTML: ', textComp.toHTML());\n * }\n */\n getEditing() {\n return em.getEditing();\n },\n\n /**\n * Set device to the editor. If the device exists it will\n * change the canvas to the proper width\n * @param {string} name Name of the device\n * @return {this}\n * @example\n * editor.setDevice('Tablet');\n */\n setDevice(name) {\n em.set('device', name);\n return this;\n },\n\n /**\n * Return the actual active device\n * @return {string} Device name\n * @example\n * var device = editor.getDevice();\n * console.log(device);\n * // 'Tablet'\n */\n getDevice() {\n return em.get('device');\n },\n\n /**\n * Execute command\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.runCommand('myCommand', {someValue: 1});\n */\n runCommand(id, options = {}) {\n return em.get('Commands').run(id, options);\n },\n\n /**\n * Stop the command if stop method was provided\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.stopCommand('myCommand', {someValue: 1});\n */\n stopCommand(id, options = {}) {\n return em.get('Commands').stop(id, options);\n },\n\n /**\n * Store data to the current storage.\n * This will reset the counter of changes (`editor.getDirtyCount()`).\n * @param {Object} [options] Storage options.\n * @returns {Object} Stored data.\n * @example\n * const storedData = await editor.store();\n */\n async store(options) {\n return await em.store(options);\n },\n\n /**\n * Load data from the current storage.\n * @param {Object} [options] Storage options.\n * @returns {Object} Loaded data.\n * @example\n * const data = await editor.load();\n */\n async load(options) {\n return await em.load(options);\n },\n\n /**\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\n * @returns {Object}\n * @example\n * console.log(editor.getProjectData());\n * // { pages: [...], styles: [...], ... }\n */\n getProjectData() {\n return em.storeData();\n },\n\n /**\n * Load data from the JSON project\n * @param {Object} data Project to load\n * @example\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\n */\n loadProjectData(data) {\n return em.loadData(data);\n },\n\n storeData() {\n return em.storeData();\n },\n\n loadData(data) {\n return em.loadData(data);\n },\n\n /**\n * Returns container element. The one which was indicated as 'container'\n * on init method\n * @return {HTMLElement}\n */\n getContainer() {\n return c.el;\n },\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return em.getDirtyCount();\n },\n\n /**\n * Reset the counter of changes.\n */\n clearDirtyCount() {\n return em.clearDirtyCount();\n },\n\n /**\n * Update editor dimension offsets\n *\n * This method could be useful when you update, for example, some position\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\n * refresh you'll get misleading position of tools\n * @param {Object} [options] Options\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\n */\n refresh(opts) {\n em.refreshCanvas(opts);\n },\n\n /**\n * Replace the built-in Rich Text Editor with a custom one.\n * @param {Object} obj Custom RTE Interface\n * @example\n * editor.setCustomRte({\n * // Function for enabling custom RTE\n * // el is the HTMLElement of the double clicked Text Component\n * // rte is the same instance you have returned the first time you call\n * // enable(). This is useful if need to check if the RTE is already enabled so\n * // ion this case you'll need to return the RTE and the end of the function\n * enable: function(el, rte) {\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\n * ...\n * return rte; // return the RTE instance\n * },\n *\n * // Disable the editor, called for example when you unfocus the Text Component\n * disable: function(el, rte) {\n * rte.blur(); // this depends on the Custom RTE API\n * }\n *\n * // Called when the Text Component is focused again. If you returned the RTE instance\n * // from the enable function, the enable won't be called again instead will call focus,\n * // in this case to avoid double binding of the editor\n * focus: function (el, rte) {\n * rte.focus(); // this depends on the Custom RTE API\n * }\n * });\n */\n setCustomRte(obj) {\n this.RichTextEditor.customRte = obj;\n },\n\n /**\n * Replace the default CSS parser with a custom one.\n * The parser function receives a CSS string as a parameter and expects\n * an array of CSSRule objects as a result. If you need to remove the\n * custom parser, pass `null` as the argument\n * @param {Function|null} parser Parser function\n * @return {this}\n * @example\n * editor.setCustomParserCss(css => {\n * const result = [];\n * // ... parse the CSS string\n * result.push({\n * selectors: '.someclass, div .otherclass',\n * style: { color: 'red' }\n * })\n * // ...\n * return result;\n * });\n */\n setCustomParserCss(parser) {\n this.Parser.getConfig().parserCss = parser;\n return this;\n },\n\n /**\n * Change the global drag mode of components.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n em.setDragMode(value);\n return this;\n },\n\n /**\n * Trigger event log message\n * @param {*} msg Message to log\n * @param {Object} [opts={}] Custom options\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\n * @return {this}\n * @example\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\n * // This will trigger following events\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\n * // Callbacks of those events will always receive the message and\n * // options, as arguments, eg:\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\n */\n log(msg, opts = {}) {\n em.log(msg, opts);\n return this;\n },\n\n /**\n * Translate label\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\n * @returns {String}\n * @example\n * editor.t('msg');\n * // use params\n * editor.t('msg2', { params: { test: 'hello' } });\n * // custom local\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\n */\n t(...args) {\n return em.t(...args);\n },\n\n /**\n * Attach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n on(event, callback) {\n em.on(event, callback);\n return this;\n },\n\n /**\n * Attach event and detach it after the first run\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n once(event, callback) {\n em.once(event, callback);\n return this;\n },\n\n /**\n * Detach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n off(event, callback) {\n em.off(event, callback);\n return this;\n },\n\n /**\n * Trigger event\n * @param {string} event Event to trigger\n * @return {this}\n */\n trigger(event) {\n em.trigger.apply(em, arguments);\n return this;\n },\n\n /**\n * Destroy the editor\n */\n destroy() {\n if (!em) return;\n em.destroyAll();\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = 0;\n } else {\n this[prop] = 0;\n }\n });\n this.modules = 0;\n editorView = 0;\n em = 0;\n c = 0;\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return editorView && editorView.el;\n },\n\n /**\n * Returns editor model\n * @return {Model}\n * @private\n */\n getModel() {\n return em;\n },\n\n /**\n * Render editor\n * @return {HTMLElement}\n */\n render() {\n editorView && editorView.remove();\n editorView = new EditorView({\n model: em,\n config: c,\n });\n return editorView.render().el;\n },\n\n /**\n * Trigger a callback once the editor is loaded and rendered.\n * The callback will be executed immediately if the method is called on the already rendered editor.\n * @param {Function} clb Callback to trigger\n * @example\n * editor.onReady(() => {\n * // perform actions\n * });\n */\n onReady(clb) {\n em.get('ready') ? clb(this) : em.on('load', clb);\n },\n\n /**\n * Print safe HTML by using ES6 tagged template strings.\n * @param {Array} literals\n * @param {Array} substs\n * @returns {String}\n * @example\n * const unsafeStr = '';\n * const safeStr = 'Hello';\n * // Use `$${var}` to avoid escaping\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\n */\n html,\n };\n};\n","export default {\n plugins: []\n};\n","/**\n * File made for IE/Edge support\n * https://github.com/artf/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument =\n DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement, isFunction } from 'underscore';\nimport $ from './utils/cash-dom';\nimport Editor from './editor';\nimport polyfills from './utils/polyfills';\nimport { getGlobal } from './utils/mixins';\nimport PluginManager from './plugin_manager';\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors = [];\nconst defaultConfig = {\n // If true renders editor on init\n autorender: 1,\n\n // Array of plugins to init\n plugins: [],\n\n // Custom options for plugins\n pluginsOpts: {},\n};\n\nexport default {\n $,\n\n editors,\n\n plugins,\n\n // Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: '
Hello world
',\n * style: '.hello{color: red}',\n * })\n */\n init(config = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\n const editor = new Editor(config, { $ }).init();\n const em = editor.getModel();\n\n // Load plugins\n config.plugins.forEach(pluginId => {\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = getGlobal()[pluginId];\n plugin = wplg?.default || wplg;\n }\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else if (isFunction(pluginId)) {\n pluginId(editor, plgOptions);\n } else {\n em.logWarning(`Plugin ${pluginId} not found`, {\n context: 'plugins',\n plugin: pluginId,\n });\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n config.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n","import defaults from './config/config';\n\nexport default config => {\n var c = config || {};\n\n // Set default options\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var plugins = {};\n\n return {\n /**\n * Add new plugin. Plugins could not be overwritten\n * @param {string} id Plugin ID\n * @param {Function} plugin Function which contains all plugin logic\n * @return {Function} The plugin function\n * @example\n * PluginManager.add('some-plugin', function(editor){\n * editor.Commands.add('new-command', {\n * run: function(editor, senderBtn){\n * console.log('Executed new-command');\n * }\n * })\n * });\n */\n add(id, plugin) {\n if (plugins[id]) {\n return plugins[id];\n }\n\n plugins[id] = plugin;\n return plugin;\n },\n\n /**\n * Returns plugin by ID\n * @param {string} id Plugin ID\n * @return {Function|undefined} Plugin\n * @example\n * var plugin = PluginManager.get('some-plugin');\n * plugin(editor);\n */\n get(id) {\n return plugins[id];\n },\n\n /**\n * Returns object with all plugins\n * @return {Object}\n */\n getAll() {\n return plugins;\n }\n };\n};\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","getConfig","name","__getConfig","getProjectData","data","obj","key","storageKey","getAll","loadProjectData","all","onResult","reset","opts","action","coll","result","JSON","parse","err","__logWarn","input","isDef","length","clear","res","config","array","models","getAllMap","reduce","acc","i","get","idAttribute","__initConfig","def","conf","deepMerge","em","cls","__initListen","events","on","m","c","o","trigger","add","remove","p","update","changedAttributes","__catchAllEvent","concat","collections","propagate","forEach","entity","event","ev","model","opt","map","md","__remove","isString","rm","silent","removeBefore","abort","options","__onAllEvent","__appendTo","elTo","appendTo","el","isElement","document","querySelector","appendChild","render","str","logWarning","_createId","id","len","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","stopListening","view","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","split","pop","shift","getFilename","Model","prototype","getDefaults","AssetImage","unitDim","height","width","AssetView","collection","pfx","ppfx","pStylePrefix","className","listenTo","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","innerHTML","template","View","AssetImageView","html","unit","dim","select","__getBhv","onClick","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","click","dblclick","Assets","Collection","TypeableCollection","types","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","at","inputUrl","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","undefined","disableUpload","constructor","delegateEvents","__propEv","val","console","error","onUploadEnd","text","clb","json","files","dataTransfer","body","FormData","param","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","match","exec","image","Image","readAsDataURL","push","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","getAllVisible","debounce","__trgCustom","container","__customData","bhv","isOpen","asset","complete","cmd","run","stop","isActive","where","store","load","getContainer","assts","toRender","__viewParams","FileUploader","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","f","func","__behaviour","_bhv","destroy","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isObject","catModel","catId","catView","getCategoriesEl","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","prop","isEmpty","onReset","onRemove","previousModels","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","callStop","create","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"grapes.min.js","mappings":"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","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/@babel/runtime/regenerator/index.js","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./src/asset_manager/config/config.js","webpack://grapesjs/./src/asset_manager/model/Asset.js","webpack://grapesjs/./src/asset_manager/model/AssetImage.js","webpack://grapesjs/./src/asset_manager/view/AssetView.js","webpack://grapesjs/./src/asset_manager/view/AssetImageView.js","webpack://grapesjs/./src/asset_manager/model/Assets.js","webpack://grapesjs/./src/asset_manager/view/AssetsView.js","webpack://grapesjs/./src/asset_manager/view/FileUploader.js","webpack://grapesjs/./src/asset_manager/index.js","webpack://grapesjs/./src/block_manager/config/config.js","webpack://grapesjs/./src/block_manager/model/Block.js","webpack://grapesjs/./src/block_manager/model/Blocks.js","webpack://grapesjs/./src/block_manager/model/Category.js","webpack://grapesjs/./src/block_manager/model/Categories.js","webpack://grapesjs/./src/block_manager/view/BlockView.js","webpack://grapesjs/./src/block_manager/view/CategoryView.js","webpack://grapesjs/./src/block_manager/view/BlocksView.js","webpack://grapesjs/./src/block_manager/index.js","webpack://grapesjs/./src/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/index.js","webpack://grapesjs/./src/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/code_manager/config/config.js","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.js","webpack://grapesjs/./src/code_manager/model/JsonGenerator.js","webpack://grapesjs/./src/code_manager/model/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/code_manager/model/CssGenerator.js","webpack://grapesjs/./src/commands/config/config.js","webpack://grapesjs/./src/commands/index.js","webpack://grapesjs/./src/commands/view/CanvasClear.js","webpack://grapesjs/./src/commands/view/CanvasMove.js","webpack://grapesjs/./src/commands/view/CommandAbstract.js","webpack://grapesjs/./src/commands/view/ComponentDelete.js","webpack://grapesjs/./src/commands/view/ComponentDrag.js","webpack://grapesjs/./src/commands/view/ComponentEnter.js","webpack://grapesjs/./src/commands/view/ComponentExit.js","webpack://grapesjs/./src/commands/view/ComponentNext.js","webpack://grapesjs/./src/commands/view/ComponentPrev.js","webpack://grapesjs/./src/commands/view/ComponentStyleClear.js","webpack://grapesjs/./src/commands/view/CopyComponent.js","webpack://grapesjs/./src/commands/view/DeleteComponent.js","webpack://grapesjs/./src/commands/view/ExportTemplate.js","webpack://grapesjs/./src/commands/view/Fullscreen.js","webpack://grapesjs/./src/commands/view/MoveComponent.js","webpack://grapesjs/./src/commands/view/OpenAssets.js","webpack://grapesjs/./src/commands/view/OpenBlocks.js","webpack://grapesjs/./src/commands/view/OpenLayers.js","webpack://grapesjs/./src/commands/view/OpenStyleManager.js","webpack://grapesjs/./src/commands/view/OpenTraitManager.js","webpack://grapesjs/./src/commands/view/PasteComponent.js","webpack://grapesjs/./src/commands/view/Preview.js","webpack://grapesjs/./src/commands/view/Resize.js","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.js","webpack://grapesjs/./src/dom_components/view/ToolbarView.js","webpack://grapesjs/./src/dom_components/model/ToolbarButton.js","webpack://grapesjs/./src/dom_components/model/Toolbar.js","webpack://grapesjs/./src/commands/view/SelectComponent.js","webpack://grapesjs/./src/commands/view/SelectPosition.js","webpack://grapesjs/./src/commands/view/ShowOffset.js","webpack://grapesjs/./src/commands/view/SwitchVisibility.js","webpack://grapesjs/./src/common/module.js","webpack://grapesjs/./src/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/css_composer/view/CssRuleView.js","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.js","webpack://grapesjs/./src/css_composer/view/CssRulesView.js","webpack://grapesjs/./src/device_manager/config/config.js","webpack://grapesjs/./src/device_manager/model/Device.js","webpack://grapesjs/./src/device_manager/model/Devices.js","webpack://grapesjs/./src/device_manager/view/DevicesView.js","webpack://grapesjs/./src/device_manager/index.js","webpack://grapesjs/./src/dom_components/config/config.js","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.js","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.js","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.js","webpack://grapesjs/./src/dom_components/model/ComponentTable.js","webpack://grapesjs/./src/dom_components/view/ComponentTableView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.js","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.js","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.js","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.js","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.js","webpack://grapesjs/./src/dom_components/model/ComponentImage.js","webpack://grapesjs/./src/dom_components/model/ComponentMap.js","webpack://grapesjs/./src/dom_components/view/ComponentImageView.js","webpack://grapesjs/./src/dom_components/view/ComponentMapView.js","webpack://grapesjs/./src/dom_components/model/ComponentText.js","webpack://grapesjs/./src/dom_components/model/ComponentLink.js","webpack://grapesjs/./src/dom_components/view/ComponentTextView.js","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.js","webpack://grapesjs/./src/dom_components/model/ComponentLabel.js","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.js","webpack://grapesjs/./src/dom_components/model/ComponentVideo.js","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.js","webpack://grapesjs/./src/dom_components/model/ComponentScript.js","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.js","webpack://grapesjs/./src/dom_components/model/ComponentSvg.js","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.js","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.js","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.js","webpack://grapesjs/./src/dom_components/model/ComponentComment.js","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.js","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.js","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.js","webpack://grapesjs/./src/dom_components/model/ComponentFrame.js","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.js","webpack://grapesjs/./src/dom_components/index.js","webpack://grapesjs/./src/trait_manager/model/Trait.js","webpack://grapesjs/./src/trait_manager/model/Traits.js","webpack://grapesjs/./src/trait_manager/model/TraitFactory.js","webpack://grapesjs/./src/dom_components/model/Component.js","webpack://grapesjs/./src/dom_components/model/Components.js","webpack://grapesjs/./src/dom_components/view/ComponentView.js","webpack://grapesjs/./src/dom_components/view/ComponentsView.js","webpack://grapesjs/./src/domain_abstract/model/Styleable.js","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.js","webpack://grapesjs/./src/domain_abstract/ui/Input.js","webpack://grapesjs/./src/domain_abstract/ui/InputColor.js","webpack://grapesjs/./src/utils/ColorPicker.js","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.js","webpack://grapesjs/./src/domain_abstract/view/DomainViews.js","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.js","webpack://grapesjs/./src/i18n/index.js","webpack://grapesjs/./src/utils/keymaster.js","webpack://grapesjs/./src/keymaps/index.js","webpack://grapesjs/./src/modal_dialog/config/config.js","webpack://grapesjs/./src/modal_dialog/model/Modal.js","webpack://grapesjs/./src/modal_dialog/view/ModalView.js","webpack://grapesjs/./src/modal_dialog/index.js","webpack://grapesjs/./src/navigator/config/config.js","webpack://grapesjs/./src/navigator/view/ItemView.js","webpack://grapesjs/./src/navigator/index.js","webpack://grapesjs/./src/navigator/view/ItemsView.js","webpack://grapesjs/./src/pages/model/Page.js","webpack://grapesjs/./src/pages/model/Pages.js","webpack://grapesjs/./src/pages/index.js","webpack://grapesjs/./src/panels/config/config.js","webpack://grapesjs/./src/panels/model/Panel.js","webpack://grapesjs/./src/panels/model/Panels.js","webpack://grapesjs/./src/panels/view/ButtonView.js","webpack://grapesjs/./src/panels/view/ButtonsView.js","webpack://grapesjs/./src/panels/view/PanelView.js","webpack://grapesjs/./src/panels/view/PanelsView.js","webpack://grapesjs/./src/panels/index.js","webpack://grapesjs/./src/panels/model/Button.js","webpack://grapesjs/./src/panels/model/Buttons.js","webpack://grapesjs/./src/parser/config/config.js","webpack://grapesjs/./src/parser/model/BrowserParserCss.js","webpack://grapesjs/./src/parser/model/ParserCss.js","webpack://grapesjs/./src/parser/index.js","webpack://grapesjs/./src/parser/model/BrowserParserHtml.js","webpack://grapesjs/./src/parser/model/ParserHtml.js","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.js","webpack://grapesjs/./src/rich_text_editor/config/config.js","webpack://grapesjs/./src/rich_text_editor/index.js","webpack://grapesjs/./src/selector_manager/config/config.js","webpack://grapesjs/./src/selector_manager/model/State.js","webpack://grapesjs/./src/selector_manager/view/ClassTagView.js","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.js","webpack://grapesjs/./src/selector_manager/index.js","webpack://grapesjs/./src/selector_manager/model/Selector.js","webpack://grapesjs/./src/selector_manager/model/Selectors.js","webpack://grapesjs/./src/storage_manager/config/config.js","webpack://grapesjs/./src/storage_manager/model/LocalStorage.js","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.js","webpack://grapesjs/./src/storage_manager/index.js","webpack://grapesjs/./src/style_manager/config/config.js","webpack://grapesjs/./src/style_manager/model/Property.js","webpack://grapesjs/./src/style_manager/model/PropertyComposite.js","webpack://grapesjs/./src/style_manager/model/Layer.js","webpack://grapesjs/./src/style_manager/model/Layers.js","webpack://grapesjs/./src/style_manager/model/PropertyStack.js","webpack://grapesjs/./src/style_manager/view/PropertyView.js","webpack://grapesjs/./src/style_manager/view/PropertiesView.js","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.js","webpack://grapesjs/./src/style_manager/view/LayerView.js","webpack://grapesjs/./src/style_manager/view/LayersView.js","webpack://grapesjs/./src/style_manager/view/PropertyStackView.js","webpack://grapesjs/./src/style_manager/view/PropertyFileView.js","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.js","webpack://grapesjs/./src/style_manager/view/PropertyColorView.js","webpack://grapesjs/./src/style_manager/model/PropertySelect.js","webpack://grapesjs/./src/style_manager/view/PropertySelectView.js","webpack://grapesjs/./src/style_manager/model/PropertyRadio.js","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.js","webpack://grapesjs/./src/style_manager/model/PropertyNumber.js","webpack://grapesjs/./src/style_manager/model/PropertySlider.js","webpack://grapesjs/./src/style_manager/view/PropertySliderView.js","webpack://grapesjs/./src/style_manager/model/Properties.js","webpack://grapesjs/./src/style_manager/model/Sector.js","webpack://grapesjs/./src/style_manager/model/Sectors.js","webpack://grapesjs/./src/style_manager/model/PropertyFactory.js","webpack://grapesjs/./src/style_manager/view/SectorView.js","webpack://grapesjs/./src/style_manager/view/SectorsView.js","webpack://grapesjs/./src/style_manager/index.js","webpack://grapesjs/./src/trait_manager/config/config.js","webpack://grapesjs/./src/trait_manager/view/TraitView.js","webpack://grapesjs/./src/trait_manager/view/TraitsView.js","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.js","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.js","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.js","webpack://grapesjs/./src/trait_manager/view/TraitColorView.js","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.js","webpack://grapesjs/./src/trait_manager/index.js","webpack://grapesjs/./src/undo_manager/index.js","webpack://grapesjs/./src/utils/Dragger.js","webpack://grapesjs/./src/utils/cash-dom.js","webpack://grapesjs/./src/utils/dom.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.js","webpack://grapesjs/./src/utils/html.js","webpack://grapesjs/./src/utils/Sorter.js","webpack://grapesjs/./src/utils/Resizer.js","webpack://grapesjs/./src/utils/index.js","webpack://grapesjs/./src/utils/mixins.js","webpack://grapesjs/./node_modules/regenerator-runtime/runtime.js","webpack://grapesjs//Users/artur/Sites/grapes/src/commands/view|sync|/^\\.\\/.*$/","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/editor/config/config.js","webpack://grapesjs/./src/editor/model/Selected.js","webpack://grapesjs/./src/editor/model/Editor.js","webpack://grapesjs/./src/utils/extender.js","webpack://grapesjs/./src/editor/view/EditorView.js","webpack://grapesjs/./src/editor/index.js","webpack://grapesjs/./src/plugin_manager/config/config.js","webpack://grapesjs/./src/utils/polyfills.js","webpack://grapesjs/./src/index.js","webpack://grapesjs/./src/plugin_manager/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), function() {\nreturn ","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Backbone.Undo.js v0.2\n * \n * Copyright (c)2013 Oliver Sartun\n * Released under the MIT License\n *\n * Documentation and full license available at\n * https://github.com/osartun/Backbone.Undo.js\n */\n\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\t// AMD support\n\t\tdefine([\"underscore\", \"backbone\"], factory);\n\t} else if (typeof exports !== 'undefined') {\n\t\t// CommonJS support\n\t\tmodule.exports = factory(\n\t\t\trequire(\"underscore\"),\n\t\t\trequire(\"backbone\")\n\t\t);\n\t} else {\n\t\t// Non-modular execution\n\t\tfactory(_, Backbone);\n }\n})(function (_, Backbone) {\n\n\tvar core_slice = Array.prototype.slice;\n\n\t/**\n\t * As call is faster than apply, this is a faster version of apply as it uses call.\n\t * \n\t * @param {Function} fn \tThe function to execute \n\t * @param {Object} ctx \tThe context the function should be called in\n\t * @param {Array} args \tThe array of arguments that should be applied to the function\n\t * @return Forwards whatever the called function returns\n\t */\n\tfunction apply (fn, ctx, args) {\n\t\treturn args.length <= 4 ?\n\t\t\tfn.call(ctx, args[0], args[1], args[2], args[3]) :\n\t\t\tfn.apply(ctx, args);\n\t}\n\n\t/**\n\t * Uses slice on an array or an array-like object.\n\t * \n\t * @param {Array|Object} \tarr \tThe array or array-like object.\n\t * @param {Number} \t\t[index]\tThe index from where the array should be sliced. Default is 0.\n\t * @return {Array} The sliced array\n\t */\n\tfunction slice (arr, index) {\n\t\treturn core_slice.call(arr, index);\n\t}\n\n\t/**\n\t * Checks if an object has one or more specific keys. The keys \n\t * don't have to be an owned property.\n\t * You can call this function either this way:\n\t * hasKeys(obj, [\"a\", \"b\", \"c\"])\n\t * or this way:\n\t * hasKeys(obj, \"a\", \"b\", \"c\")\n\t * \n\t * @param {Object} \tobj \tThe object to check on\n\t * @param {Array} \tkeys \tThe keys to check for\n\t * @return {Boolean} True, if the object has all those keys\n\t */\n\tfunction hasKeys (obj, keys) {\n\t\tif (obj == null) return false;\n\t\tif (!_.isArray(keys)) {\n\t\t\tkeys = slice(arguments, 1);\n\t\t}\n\t\treturn _.all(keys, function (key) {\n\t\t\treturn key in obj;\n\t\t});\n\t}\n\n\t/**\n\t * Returns a number that is unique per call stack. The number gets \n\t * changed after the call stack has been completely processed.\n\t * \n\t * @return {number} MagicFusionIndex\n\t */\n\tvar getMagicFusionIndex = (function () {\n\t\t// If you add several models to a collection or set several\n\t\t// attributes on a model all in sequence and yet all for\n\t\t// example in one function, then several Undo-Actions are\n\t\t// generated.\n\t\t// If you want to undo your last action only the last model\n\t\t// would be removed from the collection or the last set\n\t\t// attribute would be changed back to its previous value.\n\t\t// To prevent that we have to figure out a way to combine\n\t\t// all those actions that happened \"at the same time\". \n\t\t// Timestamps aren't exact enough. A complex routine could \n\t\t// run several milliseconds and in that time produce a lot \n\t\t// of actions with different timestamps.\n\t\t// Instead we take advantage of the single-threadedness of\n\t\t// JavaScript:\n\n\t\tvar callstackWasIndexed = false, magicFusionIndex = -1;\n\t\tfunction indexCycle() {\n\t\t\tmagicFusionIndex++;\n\t\t\tcallstackWasIndexed = true;\n\t\t\t_.defer(function () {\n\t\t\t\t// Here comes the magic. With a Timeout of 0 \n\t\t\t\t// milliseconds this function gets called whenever\n\t\t\t\t// the current callstack is completed\n\t\t\t\tcallstackWasIndexed = false;\n\t\t\t})\n\t\t}\n\t\treturn function () {\n\t\t\tif (!callstackWasIndexed) {\n\t\t\t\tindexCycle();\n\t\t\t}\n\t\t\treturn magicFusionIndex;\n\t\t}\n\t})();\n\n\t/**\n\t * To prevent binding a listener several times to one \n\t * object, we register the objects in an ObjectRegistry\n\t *\n\t * @constructor\n\t */\n\tfunction ObjectRegistry () {\n\t\t// This uses two different ways of storing\n\t\t// objects: In case the object has a cid\n\t\t// (which Backbone objects typically have)\n\t\t// it uses this cid as an index. That way\n\t\t// the Array's length attribute doesn't \n\t\t// change and the object isn't an item \n\t\t// in the array, but an object-property.\n\t\t// Otherwise it's added to the Array as an\n\t\t// item.\n\t\t// That way we can use the fast property-\n\t\t// lookup and only have to fall back to \n\t\t// iterating over the array in case \n\t\t// non-Backbone-objects are registered.\n\t\tthis.registeredObjects = [];\n\t\t// To return a list of all registered \n\t\t// objects in the 'get' method we have to\n\t\t// store the objects that have a cid in\n\t\t// an additional array. \n\t\tthis.cidIndexes = [];\n\t}\n\tObjectRegistry.prototype = {\n\t\t/**\n\t\t * Returns whether the object is already registered in this ObjectRegistry or not.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to check\n\t\t * @return \t{Boolean} True if the object is already registered\n\t\t */\n\t\tisRegistered: function (obj) {\n\t\t\t// This is where we get a performance boost \n\t\t\t// by using the two different ways of storing \n\t\t\t// objects.\n\t\t\treturn obj && obj.cid ? this.registeredObjects[obj.cid] : _.contains(this.registeredObjects, obj);\n\t\t},\n\t\t/**\n\t\t * Registers an object in this ObjectRegistry.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to register\n\t\t * @return \t{undefined}\n\t\t */\n\t\tregister: function (obj) {\n\t\t\tif (!this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tthis.registeredObjects[obj.cid] = obj;\n\t\t\t\t\tthis.cidIndexes.push(obj.cid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.registeredObjects.push(obj);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Unregisters an object from this ObjectRegistry.\n\t\t * \n\t\t * @this {ObjectRegistry}\n\t\t * @param {Object} obj The object to unregister\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function (obj) {\n\t\t\tif (this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tdelete this.registeredObjects[obj.cid];\n\t\t\t\t\tthis.cidIndexes.splice(_.indexOf(this.cidIndexes, obj.cid), 1);\n\t\t\t\t} else {\n\t\t\t\t\tvar i = _.indexOf(this.registeredObjects, obj);\n\t\t\t\t\tthis.registeredObjects.splice(i, 1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Returns an array of all objects that are currently in this ObjectRegistry.\n\t\t * \n\t\t * @return {Array} An array of all the objects which are currently in the ObjectRegistry\n\t\t */\n\t\tget: function () {\n\t\t\treturn (_.map(this.cidIndexes, function (cid) {return this.registeredObjects[cid];}, this)).concat(this.registeredObjects);\n\t\t}\n\t}\n\n\t/**\n\t * Binds or unbinds the \"all\"-listener for one or more objects.\n\t * \n\t * @param {String} which \tEither \"on\" or \"off\"\n\t * @param {Object[]} objects \tArray of the objects on which the \"all\"-listener should be bound / unbound to\n\t * @param {Function} [fn] \t\tThe function that should be bound / unbound. Optional in case of \"off\"\n\t * @param {Object} [ctx] \tThe context the function should be called in\n\t * @return {undefined}\n\t */\n\tfunction onoff(which, objects, fn, ctx) {\n\t\tfor (var i = 0, l = objects.length, obj; i < l; i++) {\n\t\t\tobj = objects[i];\n\t\t\tif (!obj) continue;\n\t\t\tif (which === \"on\") {\n\t\t\t\tif (!ctx.objectRegistry.register(obj)) {\n\t\t\t\t\t// register returned false, so obj was already registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ctx.objectRegistry.unregister(obj)) {\n\t\t\t\t\t// unregister returned false, so obj wasn't registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_.isFunction(obj[which])) {\n\t\t\t\tobj[which](\"all\", fn, ctx);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the undo/redo-function for a specific action.\n\t * \n\t * @param {String} which \tEither \"undo\" or \"redo\"\n\t * @param {Object} action \tThe Action's attributes\n\t * @return {undefined}\n\t */\n\tfunction actionUndoRedo (which, action) {\n\t\tvar type = action.type, undoTypes = action.undoTypes, fn = !undoTypes[type] || undoTypes[type][which];\n\t\tif (_.isFunction(fn)) {\n\t\t\tfn(action.object, action.before, action.after, action.options);\n\t\t}\n\t}\n\n\t/**\n\t * The main undo/redo function.\n\t *\n\t * @param {String} \t\twhich \t Either \"undo\" or \"redo\"\n\t * @param {UndoManager} \tmanager\t The UndoManager-instance on which an \"undo\"/\"redo\"-Event is triggered afterwards\n\t * @param {UndoStack} \t\tstack \t The UndoStack on which we perform\n\t * @param {Boolean} \t\tmagic \t If true, undoes / redoes all actions with the same magicFusionIndex\n\t * @param {Boolean} \t\teverything If true, undoes / redoes every action that had been tracked\n\t * @return {undefined}\n\t */\n\tfunction managerUndoRedo (which, manager, stack, magic, everything) {\n\t\tif (stack.isCurrentlyUndoRedoing || \n\t\t\t(which === \"undo\" && stack.pointer === -1) ||\n\t\t\t(which === \"redo\" && stack.pointer === stack.length - 1)) {\n\t\t\t// We're either currently in an undo- / redo-process or \n\t\t\t// we reached the end of the stack\n\t\t\treturn;\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = true;\n\t\tvar action, actions, isUndo = which === \"undo\";\n\t\tif (everything) {\n\t\t\t// Undo / Redo all steps until you reach the stack's beginning / end\n\t\t\tactions = isUndo && stack.pointer === stack.length - 1 || // If at the stack's end calling undo\n\t\t\t\t\t !isUndo && stack.pointer === -1 ? // or at the stack's beginning calling redo\n\t\t\t\t\t _.clone(stack.models) : // => Take all the models. Otherwise:\n\t\t\t\t\t core_slice.apply(stack.models, isUndo ? [0, stack.pointer] : [stack.pointer, stack.length - 1]);\n\t\t} else {\n\t\t\t// Undo / Redo only one step\n\t\t\taction = stack.at(isUndo ? stack.pointer : stack.pointer + 1);\n\t\t\tactions = magic ? stack.where({\"magicFusionIndex\": action.get(\"magicFusionIndex\")}) : [action];\n\t\t}\n\t\t\n\t\tstack.pointer += (isUndo ? -1 : 1) * actions.length;\n\t\twhile (action = isUndo ? actions.pop() : actions.shift()) {\n\t\t\t// Here we're calling the Action's undo / redo method\n\t\t\taction[which]();\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = false;\n\n\t\tmanager.trigger(which, manager);\n\t}\n\n\t/**\n\t * Checks whether an UndoAction should be created or not. Therefore it checks\n\t * whether a \"condition\" property is set in the undoTypes-object of the specific\n\t * event type. If not, it returns true. If it's set and a boolean, it returns it.\n\t * If it's a function, it returns its result, converting it into a boolean. \n\t * Otherwise it returns true.\n\t * \n\t * @param {Object} \tundoTypesType \tThe object within the UndoTypes that holds the function for this event type (i.e. \"change\")\n\t * @param {Arguments} \targs \t\tThe arguments the \"condition\" function is called with\n\t * @return {Boolean} \tTrue, if an UndoAction should be created\n\t */\n\tfunction validateUndoActionCreation (undoTypesType, args) {\n\t\tvar condition = undoTypesType.condition, type = typeof condition;\n\t\treturn type === \"function\" ? !!apply(condition, undoTypesType, args) :\n\t\t\ttype === \"boolean\" ? condition : true;\n\t}\n\n\t/**\n\t * Adds an Undo-Action to the stack.\n\t * \n\t * @param {UndoStack} \t\tstack \t\tThe undostack the action should be added to.\n\t * @param {String} \t\t\ttype \t\tThe event type (i.e. \"change\")\n\t * @param {Arguments} \t\targs \t\tThe arguments passed to the undoTypes' \"on\"-handler\n\t * @param {OwnedUndoTypes} \tundoTypes \tThe undoTypes-object which has the \"on\"-handler\n\t * @return {undefined}\n\t */\n\tfunction addToStack(stack, type, args, undoTypes) {\n\t\tif (stack.track && !stack.isCurrentlyUndoRedoing && type in undoTypes &&\n\t\t\tvalidateUndoActionCreation(undoTypes[type], args)) {\n\t\t\t// An UndoAction should be created\n\t\t\tvar res = apply(undoTypes[type][\"on\"], undoTypes[type], args), diff;\n\t\t\tif (hasKeys(res, \"object\", \"before\", \"after\")) {\n\t\t\t\tres.type = type;\n\t\t\t\tres.magicFusionIndex = getMagicFusionIndex();\n\t\t\t\tres.undoTypes = undoTypes;\n\t\t\t\tif (stack.pointer < stack.length - 1) {\n\t\t\t\t\t// New Actions must always be added to the end of the stack.\n\t\t\t\t\t// If the pointer is not pointed to the last action in the\n\t\t\t\t\t// stack, presumably because actions were undone before, then\n\t\t\t\t\t// all following actions must be discarded\n\t\t\t\t\tvar diff = stack.length - stack.pointer - 1;\n\t\t\t\t\twhile (diff--) {\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstack.pointer = stack.length;\n\t\t\t\tstack.add(res);\n\t\t\t\tif (stack.length > stack.maximumStackLength) {\n\t\t\t\t\tstack.shift();\n\t\t\t\t\tstack.pointer--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Predefined UndoTypes object with default handlers for the most common events.\n\t * @type {Object}\n\t */\n\tvar UndoTypes = {\n\t\t\"add\": {\n\t\t\t\"undo\": function (collection, ignore, model, options) {\n\t\t\t\t// Undo add = remove\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, ignore, model, options) {\n\t\t\t\t// Redo add = add\n\t\t\t\tif (options.index) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: undefined,\n\t\t\t\t\tafter: model,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"remove\": {\n\t\t\t\"undo\": function (collection, model, ignore, options) {\n\t\t\t\tif (\"index\" in options) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, model, ignore, options) {\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: model,\n\t\t\t\t\tafter: undefined,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"change\": {\n\t\t\t\"undo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(before)) {\n\t\t\t\t\t_.each(_.keys(after), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(before);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.before && options.unsetData.before.length) {\n\t\t\t\t\t\t_.each(options.unsetData.before, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"redo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(after)) {\n\t\t\t\t\t_.each(_.keys(before), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(after);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.after && options.unsetData.after.length) {\n\t\t\t\t\t\t_.each(options.unsetData.after, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"on\": function (model, options) {\n\t\t\t\tvar\n\t\t\t\tafterAttributes = model.changedAttributes(),\n\t\t\t\tkeysAfter = _.keys(afterAttributes),\n\t\t\t\tpreviousAttributes = _.pick(model.previousAttributes(), keysAfter),\n\t\t\t\tkeysPrevious = _.keys(previousAttributes),\n\t\t\t\tunsetData = (options || (options = {})).unsetData = {\n\t\t\t\t\tafter: [],\n\t\t\t\t\tbefore: []\n\t\t\t\t};\n\n\t\t\t\tif (keysAfter.length != keysPrevious.length) {\n\t\t\t\t\t// There are new attributes or old attributes have been unset\n\t\t\t\t\tif (keysAfter.length > keysPrevious.length) {\n\t\t\t\t\t\t// New attributes have been added\n\t\t\t\t\t\t_.each(keysAfter, function (val) {\n\t\t\t\t\t\t\tif (!(val in previousAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.before.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Old attributes have been unset\n\t\t\t\t\t\t_.each(keysPrevious, function (val) {\n\t\t\t\t\t\t\tif (!(val in afterAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.after.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tobject: model,\n\t\t\t\t\tbefore: previousAttributes,\n\t\t\t\t\tafter: afterAttributes,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"reset\": {\n\t\t\t\"undo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(before);\n\t\t\t},\n\t\t\t\"redo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(after);\n\t\t\t},\n\t\t\t\"on\": function (collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: options.previousModels,\n\t\t\t\t\tafter: _.clone(collection.models)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Every UndoManager instance has an own undoTypes object\n\t * which is an instance of OwnedUndoTypes. OwnedUndoTypes' \n\t * prototype is the global UndoTypes object. Changes to the \n\t * global UndoTypes object take effect on every instance of\n\t * UndoManager as the object is its prototype. And yet every \n\t * local UndoTypes object can be changed individually.\n\t *\n\t * @constructor\n\t */\n\tfunction OwnedUndoTypes () {}\n\tOwnedUndoTypes.prototype = UndoTypes;\n\n\t/**\n\t * Adds, changes or removes an undo-type from an UndoTypes-object.\n\t * You can call it this way:\n\t * manipulateUndoType (1, \"reset\", {\"on\": function () {}}, undoTypes)\n\t * or this way to perform bulk actions:\n\t * manipulateUndoType (1, {\"reset\": {\"on\": function () {}}}, undoTypes)\n\t * In case of removing undo-types you can pass an Array for performing\n\t * bulk actions:\n\t * manipulateUndoType(2, [\"reset\", \"change\"], undoTypes)\n\t * \n\t * @param {Number} \t\t\t\t manipType \t\tIndicates the kind of action to execute: 0 for add, 1 for change, 2 for remove\n\t * @param {String|Object|Array} \t undoType \t\t\tThe type of undoType that should be added/changed/removed. Can be an object / array to perform bulk actions\n\t * @param {Object} \t\t\t\t [fns] \t\t\tObject with the functions to add / change. Is optional in case you passed an object as undoType that contains these functions\n\t * @param {OwnedUndoTypes|UndoTypes} undoTypesInstance The undoTypes object to act on\n\t * @return {undefined}\n\t */\n\tfunction manipulateUndoType (manipType, undoType, fns, undoTypesInstance) {\n\t\t// manipType, passed by the calling function\n\t\t// 0: add\n\t\t// 1: change\n\t\t// 2: remove\n\t\tif (typeof undoType === \"object\") {\n\t\t\t// bulk action. Iterate over this data.\n\t\t\treturn _.each(undoType, function (val, key) {\n\t\t\t\t\tif (manipType === 2) { // remove\n\t\t\t\t\t\t// undoType is an array\n\t\t\t\t\t\tmanipulateUndoType (manipType, val, fns, undoTypesInstance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// undoType is an object\n\t\t\t\t\t\tmanipulateUndoType (manipType, key, val, fns);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\tswitch (manipType) {\n\t\t\tcase 0: // add\n\t\t\t\tif (hasKeys(fns, \"undo\", \"redo\", \"on\") && _.all(_.pick(fns, \"undo\", \"redo\", \"on\"), _.isFunction)) {\n\t\t\t\t\tundoTypesInstance[undoType] = fns;\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 1: // change\n\t\t\t\tif (undoTypesInstance[undoType] && _.isObject(fns)) {\n\t\t\t\t\t// undoTypeInstance[undoType] may be a prototype's property\n\t\t\t\t\t// So, if we did this _.extend(undoTypeInstance[undoType], fns)\n\t\t\t\t\t// we would extend the object on the prototype which means\n\t\t\t\t\t// that this change would have a global effect\n\t\t\t\t\t// Instead we just want to manipulate this instance. That's why\n\t\t\t\t\t// we're doing this:\n\t\t\t\t\tundoTypesInstance[undoType] = _.extend({}, undoTypesInstance[undoType], fns);\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 2: // remove\n\t\t\t\tdelete undoTypesInstance[undoType]; \n\t\t\tbreak;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Instantiating \"Action\" creates the UndoActions that \n\t * are collected in an UndoStack. It holds all relevant \n\t * data to undo / redo an action and has an undo / redo \n\t * method.\n\t */\n\tvar Action = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\ttype: null, // \"add\", \"change\", \"reset\", etc.\n\t\t\tobject: null, // The object on which the action occurred\n\t\t\tbefore: null, // The previous values which were changed with this action\n\t\t\tafter: null, // The values after this action\n\t\t\tmagicFusionIndex: null // The magicFusionIndex helps to combine \n\t\t\t// all actions that occurred \"at the same time\" to undo/redo them altogether\n\t\t},\n\t\t/**\n\t\t * Undoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"undo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"undo\", this.attributes);\n\t\t},\n\t\t/**\n\t\t * Redoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"redo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"redo\", this.attributes);\n\t\t}\n\t}),\n\t/**\n\t * An UndoStack is a collection of UndoActions in \n\t * chronological order.\n\t */\n\tUndoStack = Backbone.Collection.extend({\n\t\tmodel: Action,\n\t\tpointer: -1, // The pointer indicates the index where we are located within the stack. We start at -1\n\t\ttrack: false,\n\t\tisCurrentlyUndoRedoing: false,\n\t\tmaximumStackLength: Infinity,\n\t\tsetMaxLength: function (val) {\n\t\t\tthis.maximumStackLength = val;\n\t\t}\n\t}),\n\t/**\n\t * An instance of UndoManager can keep track of \n\t * changes to objects and helps to undo them.\n\t */\n\tUndoManager = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tmaximumStackLength: Infinity,\n\t\t\ttrack: false\n\t\t},\n\t\t/**\n\t\t * The constructor function.\n\t\t * @param {attr} \t\t[attr] Object with parameters. The available parameters are:\n\t\t * \t - maximumStackLength {number} \tSet the undo-stack's maximum size\n\t\t * - track \t\t\t\t{boolean}\tStart tracking changes right away\n\t\t * @return {undefined}\n\t\t */\n\t\tinitialize: function (attr) {\n\t\t\tthis.stack = new UndoStack;\n\t\t\tthis.objectRegistry = new ObjectRegistry();\n\t\t\tthis.undoTypes = new OwnedUndoTypes();\n\n\t\t\t// sync the maximumStackLength attribute with our stack\n\t\t\tthis.stack.setMaxLength(this.get(\"maximumStackLength\"));\n\t\t\tthis.on(\"change:maximumStackLength\", function (model, value) {\n\t\t\t\tthis.stack.setMaxLength(value);\n\t\t\t}, this);\n\n\t\t\t// Start tracking, if attr.track == true\n\t\t\tif (attr && attr.track) {\n\t\t\t\tthis.startTracking();\n\t\t\t}\n\n\t\t\t// Register objects passed in the \"register\" attribute\n\t\t\tif (attr && attr.register) {\n\t\t\t\tif (_.isArray(attr.register) || _.isArguments(attr.register)) {\n\t\t\t\t\tapply(this.register, this, attr.register);\n\t\t\t\t} else {\n\t\t\t\t\tthis.register(attr.register);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Starts tracking. Changes of registered objects won't be processed until you've called this function\n\t\t * @return {undefined}\n\t\t */\n\t\tstartTracking: function () {\n\t\t\tthis.set(\"track\", true);\n\t\t\tthis.stack.track = true;\n\t\t},\n\t\t/**\n\t\t * Stops tracking. Afterwards changes of registered objects won't be processed.\n\t\t * @return {undefined}\n\t\t */\n\t\tstopTracking: function () {\n\t\t\tthis.set(\"track\", false);\n\t\t\tthis.stack.track = false;\n\t\t},\n\t\t/**\n\t\t * Return the state of the tracking\n\t\t * @return {boolean}\n\t\t */\n\t\tisTracking: function () {\n\t\t\treturn this.get(\"track\");\n\t\t},\n\t\t/**\n\t\t * This is the \"all\"-handler which is bound to registered \n\t\t * objects. It creates an UndoAction from the event and adds \n\t\t * it to the stack.\n\t\t * \n\t\t * @param {String} \ttype \tThe event type\n\t\t * @return {undefined}\n\t\t */\n\t\t_addToStack: function (type) {\n\t\t\taddToStack(this.stack, type, slice(arguments, 1), this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Registers one or more objects to track their changes.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes should be tracked\n\t\t * @return {undefined}\n\t\t */\n\t\tregister: function () {\n\t\t\tonoff(\"on\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters one or more objects.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes shouldn't be tracked any longer\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function () {\n\t\t\tonoff(\"off\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters all previously registered objects.\n\t\t * @return {undefined}\n\t\t */\n\t\tunregisterAll: function () {\n\t\t\tapply(this.unregister, this, this.objectRegistry.get());\n\t\t},\n\t\t/**\n\t\t * Undoes the last action or the last set of actions in case 'magic' is true.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are undone together\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (magic) {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Undoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tundoAll: function () {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, false, true);\n\t\t},\n\n\t\t/**\n\t\t * Redoes a previously undone action or a set of actions.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are redone together\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (magic) {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Redoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tredoAll: function () {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, false, true);\n\t\t},\n\t\t/**\n\t\t * Checks if there's an action in the stack that can be undone / redone\n\t\t * @param {String} \ttype \tEither \"undo\" or \"redo\"\n\t\t * @return {Boolean} True if there is a set of actions which can be undone / redone\n\t\t */\n\t\tisAvailable: function (type) {\n\t\t\tvar s = this.stack, l = s.length;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"undo\": return l > 0 && s.pointer > -1;\n\t\t\t\tcase \"redo\": return l > 0 && s.pointer < l - 1;\n\t\t\t\tdefault: return false;\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Sets the stack-reference to the stack of another undoManager.\n\t\t * @param {UndoManager} \tundoManager \tThe undoManager whose stack-reference is set to this stack\n\t\t * @return {undefined}\n\t\t */\n\t\tmerge: function (undoManager) {\n\t\t\t// This sets the stack-reference to the stack of another \n\t\t\t// undoManager so that the stack of this other undoManager \n\t\t\t// is used by two different managers.\n\t\t\t// This enables to set up a main-undoManager and besides it\n\t\t\t// several others for special, exceptional cases (by using\n\t\t\t// instance-based custom UndoTypes). Models / collections \n\t\t\t// which need this special treatment are only registered at \n\t\t\t// those special undoManagers. Those special ones are then \n\t\t\t// merged into the main-undoManager to write on its stack. \n\t\t\t// That way it's easier to manage exceptional cases.\n\t\t\tvar args = _.isArray(undoManager) ? undoManager : slice(arguments), manager;\n\t\t\twhile (manager = args.pop()) {\n\t\t\t\tif (manager instanceof UndoManager &&\n\t\t\t\t\tmanager.stack instanceof UndoStack) {\n\t\t\t\t\t// set the stack reference to our stack\n\t\t\t\t\tmanager.stack = this.stack;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to this specific UndoManager-instance.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\taddUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType for this specific UndoManager-instance.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\tchangeUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\tremoveUndoType: function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, this.undoTypes);\n\t\t},\n\n\t\t/**\n\t\t * Removes all actions from the stack.\n\t\t * @return {undefined}\n\t\t */\n\t\tclear: function() {\n\t\t\tthis.stack.reset();\n\t\t\tthis.stack.pointer = -1;\n\t\t}\n\t});\n\n\t_.extend(UndoManager, {\n\t\t/**\n\t\t * Change the UndoManager's default attributes\n\t\t * @param {Object} defaultAttributes An object with the new default values.\n\t\t * @return {undefined}\n\t\t */\n\t\tdefaults: function (defaultAttributes) {\n\t\t\t_.extend(UndoManager.prototype.defaults, defaultAttributes);\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to the global UndoTypes-object.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\t\"addUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, UndoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType in the global UndoTypes-object.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"changeUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, UndoTypes)\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"removeUndoType\": function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, UndoTypes);\n\t\t}\n\t})\n\n\treturn Backbone.UndoManager = UndoManager;\n\n});\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(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"codemirror/lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"codemirror/lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\n CodeMirror.extendMode(\"css\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n newlineAfterToken: function(_type, content) {\n return /^[;{}]$/.test(content);\n }\n });\n\n CodeMirror.extendMode(\"javascript\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n // FIXME semicolons inside of for\n newlineAfterToken: function(_type, content, textAfter, state) {\n if (this.jsonMode) {\n return /^[\\[,{]$/.test(content) || /^}/.test(textAfter);\n } else {\n if (content == \";\" && state.lexical && state.lexical.type == \")\") return false;\n return /^[;{}]$/.test(content) && !/^;/.test(textAfter);\n }\n }\n });\n\n var inlineElements = /^(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)$/;\n\n CodeMirror.extendMode(\"xml\", {\n commentStart: \"\",\n newlineAfterToken: function(type, content, textAfter, state) {\n var inline = false;\n if (this.configuration == \"html\")\n inline = state.context ? inlineElements.test(state.context.tagName) : false;\n return !inline && ((type == \"tag\" && />$/.test(content) && state.context) ||\n /^ -1 && endIndex > -1 && endIndex > startIndex) {\n // Take string till comment start\n selText = selText.substr(0, startIndex) +\n // From comment start till comment end\n selText.substring(startIndex + curMode.commentStart.length, endIndex) +\n // From comment end till string end\n selText.substr(endIndex + curMode.commentEnd.length);\n }\n cm.replaceRange(selText, from, to);\n }\n });\n });\n\n // Applies automatic mode-aware indentation to the specified range\n CodeMirror.defineExtension(\"autoIndentRange\", function (from, to) {\n var cmInstance = this;\n this.operation(function () {\n for (var i = from.line; i <= to.line; i++) {\n cmInstance.indentLine(i, \"smart\");\n }\n });\n });\n\n // Applies automatic formatting to the specified range\n CodeMirror.defineExtension(\"autoFormatRange\", function (from, to) {\n var cm = this;\n var outer = cm.getMode(), text = cm.getRange(from, to).split(\"\\n\");\n var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);\n var tabSize = cm.getOption(\"tabSize\");\n\n var out = \"\", lines = 0, atSol = from.ch === 0;\n function newline() {\n out += \"\\n\";\n atSol = true;\n ++lines;\n }\n\n for (var i = 0; i < text.length; ++i) {\n var stream = new CodeMirror.StringStream(text[i], tabSize);\n while (!stream.eol()) {\n var inner = CodeMirror.innerMode(outer, state);\n var style = outer.token(stream, state), cur = stream.current();\n stream.start = stream.pos;\n if (!atSol || /\\S/.test(cur)) {\n out += cur;\n atSol = false;\n }\n if (!atSol && inner.mode.newlineAfterToken &&\n inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || \"\", inner.state))\n newline();\n }\n if (!stream.pos && outer.blankLine) outer.blankLine(state);\n if (!atSol && i < text.length - 1) newline();\n }\n\n cm.operation(function () {\n cm.replaceRange(out, from, to);\n for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)\n cm.indentLine(cur, \"smart\");\n cm.setSelection(from, cm.getCursor(false));\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\//.test(userAgent);\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var height = 0;\n if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n { height += widgetHeight(lineObj.widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n if (charPos.right - charPos.left > 0) {\n cursor.style.width = (charPos.right - charPos.left) + \"px\";\n }\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.pointerEvents = \"auto\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.pointerEvents = \"none\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && wheelPixelsPerUnit != null) {\n var pixels = dy * wheelPixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput)\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt();\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt() == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt() != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.63.0\";\n\n return CodeMirror;\n\n})));\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-controls-background\", \"media-current-time-display\",\n \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n \"media-return-to-realtime-button\", \"media-rewind-button\",\n \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\",\n \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\s*\" + tagName + \"\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","export default {\n // Default assets\n // eg. [\n // 'https://...image1.png',\n // 'https://...image2.png',\n // {type: 'image', src: 'https://...image3.png', someOtherCustomProp: 1},\n // ..\n // ]\n assets: [],\n\n // Content to add where there is no assets to show\n // eg. 'No assets here, drag to upload'\n noAssets: '',\n\n // Style prefix\n stylePrefix: 'am-',\n\n // Upload endpoint, set `false` to disable upload\n // upload: 'https://endpoint/upload/assets',\n // upload: false,\n upload: 0,\n\n // The name used in POST to pass uploaded files\n uploadName: 'files',\n\n // Custom headers to pass with the upload request\n headers: {},\n\n // Custom parameters to pass with the upload request, eg. csrf token\n params: {},\n\n // The credentials setting for the upload request, eg. 'include', 'omit'\n credentials: 'include',\n\n // Allow uploading multiple files per request.\n // If disabled filename will not have '[]' appended\n multiUpload: true,\n\n // If true, tries to add automatically uploaded assets.\n // To make it work the server should respond with a JSON containing assets\n // in a data key, eg:\n // {\n // data: [\n // 'https://.../image.png',\n // ...\n // {src: 'https://.../image2.png'},\n // ...\n // ]\n // }\n autoAdd: true,\n\n // To upload your assets, the module uses Fetch API, with this option you\n // overwrite it with something else.\n // It should return a Promise\n // @example\n // customFetch: (url, options) => axios(url, { data: options.body }),\n customFetch: null,\n\n // Custom uploadFile function.\n // Differently from the `customFetch` option, this gives a total control\n // over the uploading process, but you also have to emit all `asset:upload:*` events\n // by yourself (if you need to use them somewhere)\n // @example\n // uploadFile: (e) => {\n // var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n // // ...send somewhere\n // }\n uploadFile: null,\n\n // In the absence of 'uploadFile' or 'upload' assets will be embedded as Base64\n embedAsBase64: true,\n\n // Handle the image url submit from the built-in 'Add image' form\n // @example\n // handleAdd: (textFromInput) => {\n // // some check...\n // editor.AssetManager.add(textFromInput);\n // }\n handleAdd: null,\n\n // Method called before upload, on return false upload is canceled.\n // @example\n // beforeUpload: (files) => {\n // // logic...\n // var stopUpload = true;\n // if(stopUpload) return false;\n // }\n beforeUpload: null,\n\n // Toggles visiblity of assets url input\n showUrlInput: true,\n\n // Avoid rendering the default asset manager.\n custom: false,\n\n // WARNING: all the options below are considered DEPRECATED.\n // ---------------------------------------------------------------\n\n // Enable an upload dropzone on the entire editor (not document) when dragging\n // files over it\n // If active the dropzone disable/hide the upload dropzone in asset modal,\n // otherwise you will get double drops (#507)\n dropzone: false,\n\n // Open the asset manager once files are been dropped via the dropzone\n openAssetsOnDrop: 1,\n\n // Any dropzone content to append inside dropzone element\n dropzoneContent: ''\n};\n","import { result } from 'underscore';\nimport { Model } from 'common';\n\n/**\n * @property {String} type Asset type, eg. 'image'.\n * @property {String} src Asset URL, eg. 'https://.../image.png'.\n */\nexport default class Asset extends Model {\n defaults() {\n return {\n type: '',\n src: ''\n };\n }\n\n /**\n * Get asset type.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png', type: 'image' }\n * asset.getType(); // -> 'image'\n * */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get asset URL.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getSrc(); // -> 'https://.../image.png'\n * */\n getSrc() {\n return this.get('src');\n }\n\n /**\n * Get filename of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getFilename(); // -> 'image.png'\n * // Asset: { src: 'https://.../image' }\n * asset.getFilename(); // -> 'image'\n * */\n getFilename() {\n return this.get('src')\n .split('/')\n .pop()\n .split('?')\n .shift();\n }\n\n /**\n * Get extension of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getExtension(); // -> 'png'\n * // Asset: { src: 'https://.../image' }\n * asset.getExtension(); // -> ''\n * */\n getExtension() {\n return this.getFilename()\n .split('.')\n .pop();\n }\n}\n\nAsset.prototype.idAttribute = 'src';\n\nAsset.getDefaults = function() {\n return result(this.prototype, 'defaults');\n};\n","import Asset from './Asset';\n\nexport default class AssetImage extends Asset {\n defaults() {\n return {\n ...Asset.getDefaults(),\n type: 'image',\n unitDim: 'px',\n height: 0,\n width: 0\n };\n }\n}\n","import 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 __getBhv() {\n const { em } = this;\n const am = em && em.get('AssetManager');\n return (am && am.__getBehaviour()) || {};\n },\n\n template() {\n const pfx = this.pfx;\n return `\n
\n ${this.getPreview()}\n
\n
\n ${this.getInfo()}\n
\n
\n ⨯\n
\n `;\n },\n\n /**\n * Update target if exists\n * @param {Model} target\n * @private\n * */\n updateTarget(target) {\n if (target && target.set) {\n target.set('attributes', clone(target.get('attributes')));\n target.set('src', this.model.get('src'));\n }\n },\n\n getPreview() {\n return '';\n },\n\n getInfo() {\n return '';\n },\n\n render() {\n const el = this.el;\n el.innerHTML = this.template(this, this.model);\n el.className = this.className;\n return this;\n }\n});\n","import { isFunction } from 'underscore';\nimport AssetView from './AssetView';\nimport html from 'utils/html';\n\nexport default AssetView.extend({\n events: {\n 'click [data-toggle=asset-remove]': 'onRemove',\n click: 'onClick',\n dblclick: 'onDblClick'\n },\n\n getPreview() {\n const { pfx, ppfx, model } = this;\n const src = model.get('src');\n return html`\n
\n
\n `;\n },\n\n getInfo() {\n const { pfx, model } = this;\n let name = model.get('name');\n let width = model.get('width');\n let height = model.get('height');\n let unit = model.get('unitDim');\n let dim = width && height ? `${width}x${height}${unit}` : '';\n name = name || model.getFilename();\n return html`\n
${name}
\n
${dim}
\n `;\n },\n\n init(o) {\n const pfx = this.pfx;\n this.className += ` ${pfx}asset-image`;\n },\n\n /**\n * Triggered when the asset is clicked\n * @private\n * */\n onClick() {\n const { model, pfx } = this;\n const { select } = this.__getBhv();\n const { onClick } = this.config;\n const coll = this.collection;\n coll.trigger('deselectAll');\n this.$el.addClass(pfx + 'highlight');\n\n if (isFunction(select)) {\n select(model, false);\n } else if (isFunction(onClick)) {\n onClick(model);\n } else {\n this.updateTarget(coll.target);\n }\n },\n\n /**\n * Triggered when the asset is double clicked\n * @private\n * */\n onDblClick() {\n const { em, model } = this;\n const { select } = this.__getBhv();\n const { onDblClick } = this.config;\n const { target, onSelect } = this.collection;\n\n if (isFunction(select)) {\n select(model, true);\n } else if (isFunction(onDblClick)) {\n onDblClick(model);\n } else {\n this.updateTarget(target);\n em && em.get('Modal').close();\n }\n isFunction(onSelect) && onSelect(model);\n },\n\n /**\n * Remove asset from collection\n * @private\n * */\n onRemove(e) {\n e.stopImmediatePropagation();\n this.model.collection.remove(this.model);\n }\n});\n","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 \n
\n
\n `;\n }\n\n return `\n
\n
\n ${form}\n
\n
\n
\n
\n `;\n },\n\n initialize(o) {\n this.options = o;\n this.config = o.config;\n this.pfx = this.config.stylePrefix || '';\n this.ppfx = this.config.pStylePrefix || '';\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'reset', this.renderAssets);\n this.listenTo(coll, 'add', this.addToAsset);\n this.listenTo(coll, 'remove', this.removedAsset);\n this.listenTo(coll, 'deselectAll', this.deselectAll);\n },\n\n /**\n * Add new asset to the collection via string\n * @param {Event} e Event object\n * @return {this}\n * @private\n */\n handleSubmit(e) {\n e.preventDefault();\n const input = this.getAddInput();\n const url = input && input.value.trim();\n const handleAdd = this.config.handleAdd;\n\n if (!url) {\n return;\n }\n\n input.value = '';\n this.getAssetsEl().scrollTop = 0;\n\n if (handleAdd) {\n handleAdd.bind(this)(url);\n } else {\n this.options.globalCollection.add(url, { at: 0 });\n }\n },\n\n /**\n * Returns assets element\n * @return {HTMLElement}\n * @private\n */\n getAssetsEl() {\n //if(!this.assets) // Not able to cache as after the rerender it losses the ref\n return this.el.querySelector(`.${this.pfx}assets`);\n },\n\n /**\n * Returns input url element\n * @return {HTMLElement}\n * @private\n */\n getAddInput() {\n if (!this.inputUrl || !this.inputUrl.value)\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 return this;\n }\n});\n","import Backbone from 'backbone';\nimport fetch from 'utils/fetch';\nimport html from 'utils/html';\n\nexport default Backbone.View.extend(\n {\n template({ pfx, title, uploadId, disabled, multiUpload }) {\n return html`\n
\n
${title}
\n \n
\n \n `;\n },\n\n events: {},\n\n initialize(opts = {}) {\n this.options = opts;\n const c = opts.config || {};\n this.module = opts.module;\n this.config = c;\n this.em = this.config.em;\n this.pfx = c.stylePrefix || '';\n this.ppfx = c.pStylePrefix || '';\n this.target = this.options.globalCollection || {};\n this.uploadId = this.pfx + 'uploadFile';\n this.disabled =\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 { module } = this;\n module && module.__propEv('asset:upload:start');\n },\n\n /**\n * Triggered after the upload is ended\n * @param {Object|string} res End result\n * @private\n */\n onUploadEnd(res) {\n const { $el, module } = this;\n module && module.__propEv('asset:upload:end', res);\n const input = $el.find('input');\n input && input.val('');\n },\n\n /**\n * Triggered on upload error\n * @param {Object} err Error\n * @private\n */\n onUploadError(err) {\n const { module } = this;\n console.error(err);\n this.onUploadEnd(err);\n module && module.__propEv('asset:upload:error', err);\n },\n\n /**\n * Triggered on upload response\n * @param {string} text Response text\n * @private\n */\n onUploadResponse(text, clb) {\n const { module, config, target } = this;\n let json;\n try {\n json = typeof text === 'string' ? JSON.parse(text) : text;\n } catch (e) {\n json = text;\n }\n\n module && module.__propEv('asset:upload:response', json);\n\n if (config.autoAdd && target) {\n target.add(json.data, { at: 0 });\n }\n\n this.onUploadEnd(text);\n clb && clb(json);\n },\n\n /**\n * Upload files\n * @param {Object} e Event\n * @return {Promise}\n * @private\n * */\n uploadFile(e, clb) {\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const { config } = this;\n const { beforeUpload } = config;\n\n const beforeUploadResponse = beforeUpload && beforeUpload(files);\n if (beforeUploadResponse === false) return;\n\n const body = new FormData();\n const { params, customFetch } = config;\n\n for (let param in params) {\n body.append(param, params[param]);\n }\n\n if (this.multiUpload) {\n for (let i = 0; i < files.length; i++) {\n body.append(`${config.uploadName}[]`, files[i]);\n }\n } else if (files.length) {\n body.append(config.uploadName, files[0]);\n }\n\n var target = this.target;\n const url = config.upload;\n const headers = config.headers;\n const reqHead = 'X-Requested-With';\n\n if (typeof headers[reqHead] == 'undefined') {\n headers[reqHead] = 'XMLHttpRequest';\n }\n\n if (url) {\n this.onUploadStart();\n const fetchOpts = {\n method: 'post',\n credentials: config.credentials || 'include',\n headers,\n body\n };\n const fetchResult = customFetch\n ? customFetch(url, fetchOpts)\n : fetch(url, fetchOpts).then(res =>\n ((res.status / 200) | 0) == 1\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 * ## Available Events\n * * `asset:open` - Asset Manager opened.\n * * `asset:close` - Asset Manager closed.\n * * `asset:add` - Asset added. The [Asset] is passed as an argument to the callback.\n * * `asset:remove` - Asset removed. The [Asset] is passed as an argument to the callback.\n * * `asset:update` - Asset updated. The updated [Asset] and the object containing changes are passed as arguments to the callback.\n * * `asset:upload:start` - Before the upload is started.\n * * `asset:upload:end` - After the upload is ended.\n * * `asset:upload:error` - On any error in upload, passes the error as an argument.\n * * `asset:upload:response` - On upload response, passes the result as an argument.\n * * `asset` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n * * `asset:custom` - Event for handling custom Asset Manager UI.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [store](#store)\n * * [load](#load)\n * * [getContainer](#getcontainer)\n *\n * [Asset]: asset.html\n *\n * @module AssetManager\n */\n\nimport { debounce, isFunction } from 'underscore';\nimport Module from 'common/module';\nimport defaults from './config/config';\nimport Asset from './model/Assets';\nimport Assets from './model/Assets';\nimport AssetsView from './view/AssetsView';\nimport FileUpload from './view/FileUploader';\n\nexport const evAll = 'asset';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evCustom = `${evPfx}custom`;\nexport const evOpen = `${evPfx}open`;\nexport const evClose = `${evPfx}close`;\nexport const evUpload = `${evPfx}upload`;\nexport const evUploadStart = `${evUpload}:start`;\nexport const evUploadEnd = `${evUpload}:end`;\nexport const evUploadError = `${evUpload}:error`;\nexport const evUploadRes = `${evUpload}:response`;\n\nexport default () => {\n let c = {};\n let assets, assetsVis, am, fu;\n const assetCmd = 'open-assets';\n\n return {\n ...Module,\n\n name: 'AssetManager',\n\n storageKey: 'assets',\n\n Asset,\n\n Assets,\n\n events: {\n all: evAll,\n select: evSelect,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n custom: evCustom,\n open: evOpen,\n close: evClose,\n uploadStart: evUploadStart,\n uploadEnd: evUploadEnd,\n uploadError: evUploadError,\n uploadResponse: evUploadRes,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const ppfx = c.pStylePrefix;\n const { em } = c;\n this.config = c;\n this.em = em;\n\n if (ppfx) {\n c.stylePrefix = ppfx + c.stylePrefix;\n }\n\n // Global assets collection\n assets = new Assets([]);\n assetsVis = new Assets([]);\n this.all = assets;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n assets.on('add', model => this.getAllVisible().add(model));\n assets.on('remove', model => this.getAllVisible().remove(model));\n\n return this;\n },\n\n __propEv(ev, ...data) {\n this.em.trigger(ev, ...data);\n this.getAll().trigger(ev, ...data);\n },\n\n __onAllEvent: debounce(function () {\n this.__trgCustom();\n }),\n\n __trgCustom() {\n const bhv = this.__getBehaviour();\n if (!bhv.container && !this.getConfig('custom').open) {\n return;\n }\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n am: this,\n open: this.isOpen(),\n assets: this.getAll().models,\n types: bhv.types || [],\n container: bhv.container,\n close: () => this.close(),\n remove: (...args) => this.remove(...args),\n select: (asset, complete) => {\n const res = this.add(asset);\n isFunction(bhv.select) && bhv.select(res, complete);\n },\n // extra\n options: bhv.options || {},\n };\n },\n\n /**\n * Open the asset manager.\n * @param {Object} [options] Options for the asset manager.\n * @param {Array} [options.types=['image']] Types of assets to show.\n * @param {Function} [options.select] Type of operation to perform on asset selection. If not specified, nothing will happen.\n * @example\n * assetManager.open({\n * select(asset, complete) {\n * const selected = editor.getSelected();\n * if (selected && selected.is('image')) {\n * selected.addAttributes({ src: asset.getSrc() });\n * // The default AssetManager UI will trigger `select(asset, false)` on asset click\n * // and `select(asset, true)` on double-click\n * complete && assetManager.close();\n * }\n * }\n * });\n * // with your custom types (you should have assets with those types declared)\n * assetManager.open({ types: ['doc'], ... });\n */\n open(options = {}) {\n const cmd = this.em.get('Commands');\n cmd.run(assetCmd, {\n types: ['image'],\n select: () => {},\n ...options,\n });\n },\n\n /**\n * Close the asset manager.\n * @example\n * assetManager.close();\n */\n close() {\n const cmd = this.em.get('Commands');\n cmd.stop(assetCmd);\n },\n\n /**\n * Checks if the asset manager is open\n * @returns {Boolean}\n * @example\n * assetManager.isOpen(); // true | false\n */\n isOpen() {\n const cmd = this.em.get('Commands');\n return !!(cmd && cmd.isActive(assetCmd));\n },\n\n /**\n * Add new asset/s to the collection. URLs are supposed to be unique\n * @param {String|Object|Array|Array} asset URL strings or an objects representing the resource.\n * @param {Object} [opts] Options\n * @returns {[Asset]}\n * @example\n * // As strings\n * assetManager.add('http://img.jpg');\n * assetManager.add(['http://img.jpg', './path/to/img.png']);\n *\n * // Using objects you can indicate the type and other meta informations\n * assetManager.add({\n * // type: 'image',\t// image is default\n * \tsrc: 'http://img.jpg',\n * \theight: 300,\n *\twidth: 200,\n * });\n * assetManager.add([{ src: 'img2.jpg' }, { src: 'img2.png' }]);\n */\n add(asset, opts = {}) {\n // Put the model at the beginning\n if (typeof opts.at == 'undefined') {\n opts.at = 0;\n }\n\n return assets.add(asset, opts);\n },\n\n /**\n * Return asset by URL\n * @param {String} src URL of the asset\n * @returns {[Asset]|null}\n * @example\n * const asset = assetManager.get('http://img.jpg');\n */\n get(src) {\n return assets.where({ src })[0] || null;\n },\n\n /**\n * Return the global collection, containing all the assets\n * @returns {Collection<[Asset]>}\n */\n getAll() {\n return assets;\n },\n\n /**\n * Return the visible collection, which contains assets actually rendered\n * @returns {Collection<[Asset]>}\n */\n getAllVisible() {\n return assetsVis;\n },\n\n /**\n * Remove asset\n * @param {String|[Asset]} asset Asset or asset URL\n * @returns {[Asset]} Removed asset\n * @example\n * const removed = assetManager.remove('http://img.jpg');\n * // or by passing the Asset\n * const asset = assetManager.get('http://img.jpg');\n * assetManager.remove(asset);\n */\n remove(asset, opts) {\n return this.__remove(asset, opts);\n },\n\n /**\n * Store assets data to the selected storage\n * @param {Boolean} noStore If true, won't store\n * @returns {Object} Data to store\n * @example\n * var assets = assetManager.store();\n */\n store(noStore) {\n const obj = {};\n const 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 * @returns {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 * @returns {HTMLElement}\n */\n getContainer() {\n const bhv = this.__getBehaviour();\n return bhv.container || (am && am.el);\n },\n\n /**\n * Get assets element container\n * @returns {HTMLElement}\n * @private\n */\n getAssetsEl() {\n return am.el.querySelector('[data-el=assets]');\n },\n\n /**\n * Render assets\n * @param {array} assets Assets to render, without the argument will render all global assets\n * @returns {HTMLElement}\n * @example\n * // Render all assets\n * assetManager.render();\n *\n * // Render some of the assets\n * const assets = assetManager.getAll();\n * assetManager.render(assets.filter(\n * asset => asset.get('category') == 'cats'\n * ));\n */\n render(assts) {\n if (this.getConfig('custom')) return;\n const toRender = assts || this.getAll().models;\n\n if (!am) {\n const obj = this.__viewParams();\n obj.fu = this.FileUploader();\n const el = am && am.el;\n am = new AssetsView({\n el,\n ...obj,\n });\n am.render();\n }\n\n assetsVis.reset(toRender);\n return this.getContainer();\n },\n\n __viewParams() {\n return {\n collection: assetsVis, // Collection visible in asset manager\n globalCollection: assets,\n config: c,\n module: this,\n };\n },\n\n /**\n * Add new type. If you want to get more about type definition we suggest to read the [module's page](/modules/Assets.html)\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * @private\n * @example\n * assetManager.addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n this.getAll().addType(id, definition);\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @returns {Object} Type definition\n * @private\n */\n getType(id) {\n return this.getAll().getType(id);\n },\n\n /**\n * Get types\n * @returns {Array}\n * @private\n */\n getTypes() {\n return this.getAll().getTypes();\n },\n\n //-------\n\n AssetsView() {\n return am;\n },\n\n FileUploader() {\n if (!fu) {\n fu = new FileUpload(this.__viewParams());\n }\n return fu;\n },\n\n onLoad() {\n this.getAll().reset(c.assets);\n const { em, events } = this;\n em.on(`run:${assetCmd}`, () => this.__propEv(events.open));\n em.on(`stop:${assetCmd}`, () => this.__propEv(events.close));\n },\n\n postRender(editorView) {\n c.dropzone && fu && fu.initDropzone(editorView);\n },\n\n /**\n * Set new target\n * @param\t{Object}\tm Model\n * @private\n * */\n setTarget(m) {\n assetsVis.target = m;\n },\n\n /**\n * Set callback after asset was selected\n * @param\t{Object}\tf Callback function\n * @private\n * */\n onSelect(f) {\n assetsVis.onSelect = f;\n },\n\n /**\n * Set callback to fire when the asset is clicked\n * @param {function} func\n * @private\n */\n onClick(func) {\n c.onClick = func;\n },\n\n /**\n * Set callback to fire when the asset is double clicked\n * @param {function} func\n * @private\n */\n onDblClick(func) {\n c.onDblClick = func;\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour(opts = {}) {\n return this._bhv || {};\n },\n\n destroy() {\n assets.stopListening();\n assetsVis.stopListening();\n assets.reset();\n assetsVis.reset();\n fu && fu.remove();\n am && am.remove();\n [assets, assetsVis, am, fu].forEach(i => (i = null));\n this._bhv = {};\n this.all = {};\n c = {};\n },\n };\n};\n","export default {\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Append blocks to canvas on click.\n // With the `true` value, it will try to append the block to the selected component.\n // If there is no selected component, the block will be appened to the wrapper.\n // You can also pass a function to this option, use it as a catch-all for all block\n // clicks and implement a custom logic for each block.\n // appendOnClick: (block, editor) => {\n // if (block.get('id') === 'some-id')\n // editor.getSelected().append(block.get('content'))\n // else\n // editor.getWrapper().append(block.get('content'))\n // }\n appendOnClick: false,\n\n // Default blocks\n blocks: [],\n\n // Avoid rendering the default block manager.\n custom: false\n};\n","import { Model } from 'common';\nimport { isFunction } from 'underscore';\n\n/**\n * @property {String} label Block label, eg. `My block`\n * @property {String|Object} content The content of the block. Might be an HTML string or a [Component Defintion](/modules/Components.html#component-definition)\n * @property {String} [media=''] HTML string for the media/icon of the block, eg. ` editor.getWrapper().append(block.get('content'))`\n * @property {Object} [attributes={}] Block attributes to apply in the view element\n */\nexport default class Block extends Model {\n defaults() {\n return {\n label: '',\n content: '',\n media: '',\n category: '',\n activate: false,\n select: null,\n resetId: false,\n disable: false,\n onClick: null,\n attributes: {}\n };\n }\n\n /**\n * Get block id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get block label\n * @returns {String}\n */\n getLabel() {\n return this.get('label');\n }\n\n /**\n * Get block media\n * @returns {String}\n */\n getMedia() {\n return this.get('media');\n }\n\n /**\n * Get block content\n * @returns {Object|String|Array} Component definition | HTML string\n */\n getContent() {\n return this.get('content');\n }\n\n /**\n * Get block category label\n * @returns {String}\n */\n getCategoryLabel() {\n const ctg = this.get('category');\n return isFunction(ctg.get) ? ctg.get('label') : ctg.label ? ctg.label : ctg;\n }\n}\n","import { Collection } from 'common';\nimport Block from './Block';\n\nexport default class Blocks extends Collection {}\n\nBlocks.prototype.model = Block;\n","import { Model } from 'common';\n\nexport default class Category extends Model {\n defaults() {\n return {\n id: '',\n label: '',\n open: true,\n attributes: {}\n };\n }\n}\n","import { Collection } from 'common';\nimport Category from './Category';\n\nexport default class Categories extends Collection {}\n\nCategories.prototype.model = Category;\n","import Backbone from 'backbone';\nimport { isFunction } 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 __getModule() {\n return this.em.get('BlockManager');\n },\n\n handleClick(ev) {\n const { config, model, em } = this;\n const onClick = model.get('onClick') || config.appendOnClick;\n em.trigger('block:click', model, ev);\n if (!onClick) {\n return;\n } else if (isFunction(onClick)) {\n return onClick(model, em.getEditor(), { event: ev });\n }\n const sorter = config.getSorter();\n const content = model.get('content');\n const selected = em.getSelected();\n sorter.setDropContent(content);\n let target, valid;\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 this.__getModule().__startDrag(this.model, ev);\n },\n\n handleDrag(ev) {\n this.__getModule().__drag(ev);\n },\n\n handleDragEnd() {\n this.__getModule().__endDrag();\n },\n\n /**\n * Drop block\n * @private\n */\n endDrag(e) {\n off(document, 'mouseup', this.endDrag);\n const sorter = this.config.getSorter();\n\n // After dropping the block in the canvas the mouseup event is not yet\n // triggerd on 'this.doc' and so clicking outside, the sorter, tries to move\n // things (throws false positives). As this method just need to drop away\n // the block helper I use the trick of 'moved = 0' to void those errors.\n sorter.moved = 0;\n sorter.endMove();\n },\n\n render() {\n const { em, el, $el, ppfx, model } = this;\n const disable = model.get('disable');\n const attr = model.get('attributes') || {};\n const cls = attr.class || '';\n const className = `${ppfx}block`;\n const label =\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 = attr.title || el.textContent.trim();\n el.setAttribute('draggable', hasDnd(em) && !disable ? true : false);\n const result = render && render({ el, model, className, prefix: ppfx });\n if (result) el.innerHTML = result;\n return this;\n }\n});\n","import { View } from 'backbone';\nimport html from 'utils/html';\n\nexport default class CategoryView extends View {\n template({ pfx, label }) {\n return html`\n
\n \n ${label}\n
\n
\n `;\n }\n\n attributes() {\n return this.model.get('attributes');\n }\n\n initialize(o = {}, config = {}) {\n this.config = config;\n const pfx = config.pStylePrefix || '';\n this.em = config.em;\n this.pfx = pfx;\n this.caretR = 'fa fa-caret-right';\n this.caretD = 'fa fa-caret-down';\n this.iconClass = `${pfx}caret-icon`;\n this.activeClass = `${pfx}open`;\n this.className = `${pfx}block-category`;\n this.events = {};\n this.events[`click .${pfx}title`] = 'toggle';\n this.listenTo(this.model, 'change:open', this.updateVisibility);\n this.delegateEvents();\n this.model.view = this;\n }\n\n updateVisibility() {\n if (this.model.get('open')) this.open();\n else this.close();\n }\n\n open() {\n this.$el.addClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\n this.getBlocksEl().style.display = '';\n }\n\n close() {\n this.$el.removeClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretR}`;\n this.getBlocksEl().style.display = 'none';\n }\n\n toggle() {\n var model = this.model;\n model.set('open', !model.get('open'));\n }\n\n getIconEl() {\n if (!this.iconEl) {\n this.iconEl = this.el.querySelector('.' + this.iconClass);\n }\n\n return this.iconEl;\n }\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c');\n }\n\n return this.blocksEl;\n }\n\n append(el) {\n this.getBlocksEl().appendChild(el);\n }\n\n render() {\n const { em, el, $el, model, pfx } = this;\n const label =\n em.t(`blockManager.categories.${model.id}`) || model.get('label');\n el.innerHTML = this.template({ pfx, label });\n $el.addClass(this.className);\n $el.css({ order: model.get('order') });\n this.updateVisibility();\n\n return this;\n }\n}\n","import 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', 'onMove');\n this.config = config || {};\n this.categories = opts.categories || '';\n this.renderedCategories = [];\n var ppfx = this.config.pStylePrefix || '';\n this.ppfx = ppfx;\n this.noCatClass = `${ppfx}blocks-no-cat`;\n this.blockContClass = `${ppfx}blocks-c`;\n this.catsClass = `${ppfx}block-categories`;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n this.em = this.config.em;\n this.tac = 'test-tac';\n this.grabbingCls = this.ppfx + 'grabbing';\n\n if (this.em) {\n this.config.getSorter = this.getSorter;\n this.canvas = this.em.get('Canvas');\n }\n },\n\n updateConfig(opts = {}) {\n this.config = {\n ...this.config,\n ...opts\n };\n },\n\n /**\n * Get sorter\n * @private\n */\n getSorter() {\n if (!this.em) return;\n if (!this.sorter) {\n var utils = this.em.get('Utils');\n var canvas = this.canvas;\n this.sorter = new utils.Sorter({\n container: canvas.getBody(),\n placer: canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n onStart: this.onDrag,\n onEndMove: this.onDrop,\n onMove: this.onMove,\n document: canvas.getFrameEl().contentDocument,\n direction: 'a',\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1\n });\n }\n return this.sorter;\n },\n\n /**\n * Callback when block is on drag\n * @private\n */\n onDrag(e) {\n this.em.stopDefault();\n this.em.trigger('block:drag:start', e);\n },\n\n onMove(e) {\n this.em.trigger('block:drag:move', e);\n },\n\n /**\n * Callback when block is dropped\n * @private\n */\n onDrop(model) {\n const { em } = this;\n em.runDefault();\n\n if (model && model.get) {\n const oldActive = 'activeOnRender';\n\n if (model.get(oldActive)) {\n model.trigger('active');\n model.unset(oldActive);\n }\n\n em.trigger('block:drag:stop', model);\n }\n },\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n },\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config } = this;\n var frag = fragment || null;\n var view = new BlockView(\n {\n model,\n attributes: model.get('attributes')\n },\n config\n );\n var rendered = view.render().el;\n var category = model.get('category');\n\n // Check for categories\n if (category && this.categories && !config.ignoreCategories) {\n if (isString(category)) {\n category = {\n id: category,\n label: category\n };\n } else if (isObject(category) && !category.id) {\n category.id = category.label;\n }\n\n var catModel = this.categories.add(category);\n var catId = catModel.get('id');\n var catView = this.renderedCategories[catId];\n var categories = this.getCategoriesEl();\n model.set('category', catModel, { silent: true });\n\n if (!catView && categories) {\n catView = new CategoryView(\n {\n model: catModel\n },\n this.config\n ).render();\n this.renderedCategories[catId] = catView;\n categories.appendChild(catView.el);\n }\n\n catView && catView.append(rendered);\n return;\n }\n\n if (frag) frag.appendChild(rendered);\n else this.append(rendered);\n },\n\n getCategoriesEl() {\n if (!this.catsEl) {\n this.catsEl = this.el.querySelector(`.${this.catsClass}`);\n }\n\n return this.catsEl;\n },\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector(\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 `;\n\n this.collection.each(model => this.add(model, frag));\n this.append(frag);\n const cls = `${this.blockContClass}s ${ppfx}one-bg ${ppfx}two-color`;\n this.$el.addClass(cls);\n this.rendered = true;\n return this;\n }\n});\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/block_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * blockManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('block:add', (block) => { ... });\n *\n * // Use the API\n * const blockManager = editor.BlockManager;\n * blockManager.add(...);\n * ```\n *\n * ## Available Events\n * * `block:add` - Block added. The [Block] is passed as an argument to the callback.\n * * `block:remove` - Block removed. The [Block] is passed as an argument to the callback.\n * * `block:update` - Block updated. The [Block] and the object containing changes are passed as arguments to the callback.\n * * `block:drag:start` - Started dragging block, the [Block] is passed as an argument.\n * * `block:drag` - Dragging block, the [Block] is passed as an argument.\n * * `block:drag:stop` - Dragging of the block is stopped. The dropped [Component] (if dropped successfully) and the [Block] are passed as arguments.\n * * `block` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [getConfig](#getconfig)\n * * [getCategories](#getcategories)\n * * [getContainer](#getcontainer)\n * * [render](#render)\n *\n * [Block]: block.html\n * [Component]: component.html\n *\n * @module BlockManager\n */\nimport { isElement, isArray } from 'underscore';\nimport Module from 'common/module';\nimport defaults from './config/config';\nimport Block from './model/Block';\nimport Blocks from './model/Blocks';\nimport Category from './model/Category';\nimport Categories from './model/Categories';\nimport BlocksView from './view/BlocksView';\n\nexport const evAll = 'block';\nexport const evPfx = `${evAll}:`;\nexport const evAdd = `${evPfx}add`;\nexport const evUpdate = `${evPfx}update`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evDrag = `${evPfx}drag`;\nexport const evDragStart = `${evDrag}:start`;\nexport const evDragStop = `${evDrag}:stop`;\nexport const evCustom = `${evPfx}custom`;\n\nexport default () => {\n var c = {};\n var blocks, blocksVisible, blocksView;\n var categories = [];\n\n return {\n ...Module,\n\n name: 'BlockManager',\n\n Block,\n\n Blocks,\n\n Category,\n\n Categories,\n\n events: {\n all: evAll,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n drag: evDrag,\n dragStart: evDragStart,\n dragEnd: evDragStop,\n custom: evCustom,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n this.em = em;\n\n // Global blocks collection\n blocks = new Blocks(c.blocks);\n blocksVisible = new Blocks(blocks.models);\n categories = new Categories();\n this.all = blocks;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n blocks.on('add', model => blocksVisible.add(model));\n blocks.on('remove', model => blocksVisible.remove(model));\n blocks.on('reset', coll => blocksVisible.reset(coll.models));\n\n return this;\n },\n\n __trgCustom() {\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n bm: this,\n blocks: this.getAll().models,\n container: bhv.container,\n dragStart: (block, ev) => this.startDrag(block, ev),\n drag: ev => this.__drag(ev),\n dragStop: cancel => this.endDrag(cancel),\n };\n },\n\n __startDrag(block, ev) {\n const { em, events } = this;\n const content = block.getContent ? block.getContent() : block;\n this._dragBlock = block;\n em.set({ dragResult: null, dragContent: content });\n [em, blocks].map(i => i.trigger(events.dragStart, block, ev));\n },\n\n __drag(ev) {\n const { em, events } = this;\n const block = this._dragBlock;\n [em, blocks].map(i => i.trigger(events.drag, block, ev));\n },\n\n __endDrag() {\n const { em, events } = this;\n const block = this._dragBlock;\n const cmp = em.get('dragResult');\n this._dragBlock = null;\n\n if (cmp) {\n const oldKey = 'activeOnRender';\n const oldActive = cmp.get && cmp.get(oldKey);\n const toActive = block.get('activate') || oldActive;\n const toSelect = block.get('select');\n const first = isArray(cmp) ? cmp[0] : cmp;\n\n if (toSelect || (toActive && toSelect !== false)) {\n em.setSelected(first);\n }\n\n if (toActive) {\n first.trigger('active');\n oldActive && first.unset(oldKey);\n }\n\n if (block.get('resetId')) {\n first.onAll(block => block.resetId());\n }\n }\n\n em.set({ dragResult: null, dragContent: null });\n [em, blocks].map(i => i.trigger(events.dragEnd, cmp, block));\n },\n\n __getFrameViews() {\n return this.em\n .get('Canvas')\n .getFrames()\n .map(frame => frame.view);\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour() {\n return this._bhv || {};\n },\n\n startDrag(block, ev) {\n this.__startDrag(block, ev);\n this.__getFrameViews().forEach(fv => fv.droppable.startCustom());\n },\n\n endDrag(cancel) {\n this.__getFrameViews().forEach(fv => fv.droppable.endCustom(cancel));\n this.__endDrag();\n },\n\n /**\n * Get configuration object\n * @return {Object}\n */\n getConfig() {\n return c;\n },\n\n postRender() {\n const collection = blocksVisible;\n blocksView = new BlocksView({ collection, categories }, c);\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render(blocksVisible.models));\n }\n\n this.__trgCustom();\n },\n\n /**\n * Add new block.\n * @param {String} id Block ID\n * @param {[Block]} props Block properties\n * @returns {[Block]} Added block\n * @example\n * blockManager.add('h1-block', {\n * label: 'Heading',\n * content: '

Put your title here

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

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

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

Title frame

',\n * '

Paragraph frame

',\n * ],\n * styles: `\n * .testh { color: red; }\n * .testp { color: blue; }\n * `,\n * });\n */\n addFrame(props = {}, opts = {}) {\n return canvas.get('frames').add(\n {\n ...props,\n },\n {\n ...opts,\n em: this.em,\n }\n );\n },\n\n destroy() {\n canvas.stopListening();\n CanvasView && CanvasView.remove();\n [c, canvas, CanvasView].forEach(i => (i = {}));\n ['em', 'model', 'droppable'].forEach(i => (this[i] = {}));\n },\n };\n};\n","import { Model } from 'common';\nimport { result, forEach, isEmpty, isString } from 'underscore';\nimport { isComponent, isObject } from 'utils/mixins';\n\nconst keyAutoW = '__aw';\nconst keyAutoH = '__ah';\n\n/**\n * @property {Object|String} component Wrapper component definition. You can also pass an HTML string as components of the default wrapper component.\n * @property {String} [width=''] Width of the frame. By default, the canvas width will be taken.\n * @property {String} [height=''] Height of the frame. By default, the canvas height will be taken.\n * @property {Number} [x=0] Horizontal position of the frame in the canvas.\n * @property {Number} [y=0] Vertical position of the frame in the canvas.\n *\n */\nexport default class Frame extends Model {\n defaults() {\n return {\n x: 0,\n y: 0,\n changesCount: 0,\n attributes: {},\n width: null,\n height: null,\n head: [],\n component: '',\n styles: '',\n _undo: true,\n _undoexc: ['changesCount']\n };\n }\n\n initialize(props, opts = {}) {\n const { config } = opts;\n const { em } = config;\n const { styles, component } = this.attributes;\n const domc = em.get('DomComponents');\n const conf = domc.getConfig();\n const allRules = em.get('CssComposer').getAll();\n const idMap = {};\n this.em = em;\n const modOpts = { em, config: conf, frame: this, idMap };\n\n if (!isComponent(component)) {\n const wrp = isObject(component) ? component : { components: component };\n !wrp.type && (wrp.type = 'wrapper');\n const Wrapper = domc.getType('wrapper').model;\n this.set('component', new Wrapper(wrp, modOpts));\n }\n\n if (!styles) {\n this.set('styles', allRules);\n } else if (!isObject(styles)) {\n // Avoid losing styles on remapped components\n const idMapKeys = Object.keys(idMap);\n if (idMapKeys.length && Array.isArray(styles)) {\n styles.forEach(style => {\n const sel = style.selectors;\n if (sel && sel.length == 1) {\n const sSel = sel[0];\n const idSel = sSel.name && sSel.type === 2 && sSel;\n if (idSel && idMap[idSel.name]) {\n idSel.name = idMap[idSel.name];\n } else if (isString(sSel) && sSel[0] === '#') {\n const prevId = sSel.substring(1);\n if (prevId && idMap[prevId]) {\n sel[0] = `#${idMap[prevId]}`;\n }\n }\n }\n });\n }\n\n allRules.add(styles);\n this.set('styles', allRules);\n }\n\n !props.width && this.set(keyAutoW, 1);\n !props.height && this.set(keyAutoH, 1);\n }\n\n onRemove() {\n this.getComponent().remove({ root: 1 });\n }\n\n changesUp(opt = {}) {\n if (opt.temporary || opt.noCount || opt.avoidStore) {\n return;\n }\n this.set('changesCount', this.get('changesCount') + 1);\n }\n\n getComponent() {\n return this.get('component');\n }\n\n getStyles() {\n return this.get('styles');\n }\n\n disable() {\n this.trigger('disable');\n }\n\n remove() {\n this.view = 0;\n const coll = this.collection;\n return coll && coll.remove(this);\n }\n\n getHead() {\n const head = this.get('head') || [];\n return [...head];\n }\n\n setHead(value) {\n return this.set('head', [...value]);\n }\n\n addHeadItem(item) {\n const head = this.getHead();\n head.push(item);\n this.setHead(head);\n }\n\n getHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n return head.filter(\n item =>\n item.attributes &&\n item.attributes[attr] == value &&\n (!tag || tag === item.tag)\n )[0];\n }\n\n removeHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n const item = this.getHeadByAttr(attr, value, tag);\n const index = head.indexOf(item);\n\n if (index >= 0) {\n head.splice(index, 1);\n this.setHead(head);\n }\n }\n\n addLink(href) {\n const tag = 'link';\n !this.getHeadByAttr('href', href, tag) &&\n this.addHeadItem({\n tag,\n attributes: {\n href,\n rel: 'stylesheet'\n }\n });\n }\n\n removeLink(href) {\n this.removeHeadByAttr('href', href, 'link');\n }\n\n addScript(src) {\n const tag = 'script';\n !this.getHeadByAttr('src', src, tag) &&\n this.addHeadItem({\n tag,\n attributes: { src }\n });\n }\n\n removeScript(src) {\n this.removeHeadByAttr('src', src, 'script');\n }\n\n getPage() {\n const coll = this.collection;\n return coll && coll.page;\n }\n\n _emitUpdated(data = {}) {\n this.em.trigger('frame:updated', { frame: this, ...data });\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const { em } = this;\n const sm = em && em.get('StorageManager');\n const smc = sm && sm.getConfig();\n const defaults = result(this, 'defaults');\n\n if (smc && !opts.fromUndo) {\n const opts = { component: this.getComponent() };\n if (smc.storeHtml) obj.html = em.getHtml(opts);\n if (smc.storeCss) obj.css = em.getCss(opts);\n }\n\n if (opts.fromUndo) delete obj.component;\n delete obj.styles;\n delete obj.changesCount;\n obj[keyAutoW] && delete obj.width;\n obj[keyAutoH] && delete obj.height;\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n forEach(['attributes', 'head'], prop => {\n if (isEmpty(obj[prop])) delete obj[prop];\n });\n\n return obj;\n }\n}\n","import { bindAll } from 'underscore';\nimport { Collection } from 'common';\nimport model from './Frame';\n\nexport default class Frames extends Collection {\n initialize(models, config = {}) {\n bindAll(this, 'itemLoaded');\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n itemLoaded() {\n this.loadedItems++;\n\n if (this.loadedItems >= this.itemsToLoad) {\n this.trigger('loaded:all');\n this.listenToLoadItems(0);\n }\n }\n\n listenToLoad() {\n this.loadedItems = 0;\n this.itemsToLoad = this.length;\n this.listenToLoadItems(1);\n }\n\n listenToLoadItems(on) {\n this.forEach(item => item[on ? 'on' : 'off']('loaded', this.itemLoaded));\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nFrames.prototype.model = model;\n","export default {\n // Style prefix\n stylePrefix: 'cm-',\n\n inlineCss: false\n};\n","import { Model } from 'backbone';\n\nexport default class HTMLGenerator extends Model {\n build(model, opts = {}) {\n const htmlOpts = {};\n const { em } = opts;\n\n // Remove unnecessary IDs\n if (opts.cleanId && em) {\n const rules = em.get('CssComposer').getAll();\n const idRules = rules\n .toJSON()\n .map(rule => {\n const sels = rule.selectors;\n const sel = sels && sels.length === 1 && sels.models[0];\n return sel && sel.isId() && sel.get('name');\n })\n .filter(i => i);\n\n htmlOpts.attributes = (mod, attrs) => {\n const { id } = attrs;\n if (\n id &&\n id[0] === 'i' && // all autogenerated IDs start with 'i'\n !mod.get('script') && // if the component has script, we have to leave the ID\n !mod.get('attributes').id && // id is not intentionally in attributes\n idRules.indexOf(id) < 0 // we shouldn't have any rule with this ID\n ) {\n delete attrs.id;\n }\n return attrs;\n };\n }\n\n return model.toHTML(htmlOpts);\n }\n}\n","import { each } from 'underscore';\nimport 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\nfunction isFunctionEmpty(fn) {\n const content = fn.toString().match(/\\{([\\s\\S]*)\\}/m)[1]; // content between first and last { }\n return content.replace(/^\\s*\\/\\/.*$/gm, '').trim().length === 0; // remove comments\n}\n\nexport default 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.code) {\n continue;\n }\n\n if (mapType.props) {\n if (isFunctionEmpty(mapType.code)) {\n continue;\n }\n\n code += `\n var props = ${JSON.stringify(mapType.props)};\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (${mapType.code}.bind(el))(props[el.id]);\n }`;\n } else {\n // Deprecated\n const ids = '#' + mapType.ids.join(', #');\n code += `\n var items = document.querySelectorAll('${ids}');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\\n${mapType.code}\\n}.bind(items[i]))();\n }`;\n }\n }\n\n return code;\n },\n});\n","import { bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport { hasWin } from 'utils/mixins';\n\nlet CodeMirror;\n\nif (hasWin()) {\n CodeMirror = require('codemirror/lib/codemirror');\n require('codemirror/mode/htmlmixed/htmlmixed');\n require('codemirror/mode/css/css');\n require('codemirror-formatting');\n}\n\nexport default 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 html from 'utils/html';\nimport { View } from 'backbone';\n\nexport default class EditorView extends View {\n template({ pfx, codeName, label }) {\n return html`\n
\n
${label}
\n
\n
\n `;\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.pfx = this.config.stylePrefix;\n }\n\n render() {\n const { model, pfx, $el } = this;\n const obj = model.toJSON();\n obj.pfx = pfx;\n $el.html(this.template(obj));\n $el.attr('class', `${pfx}editor-c`);\n $el.find(`#${pfx}code`).append(model.get('input'));\n return this;\n }\n}\n","/**\n * - [addGenerator](#addgenerator)\n * - [getGenerator](#getgenerator)\n * - [getGenerators](#getgenerators)\n * - [addViewer](#addviewer)\n * - [getViewer](#getviewer)\n * - [getViewers](#getviewers)\n * - [updateViewer](#updateviewer)\n * - [getCode](#getcode)\n *\n *\n * Before using methods you should get first the module from the editor instance, in this way:\n *\n * ```js\n * var codeManager = editor.CodeManager;\n * ```\n *\n * @module CodeManager\n */\nimport { isUndefined } from 'underscore';\nimport defaults from './config/config';\nimport gHtml from './model/HtmlGenerator';\nimport gCss from './model/CssGenerator';\nimport gJson from './model/JsonGenerator';\nimport gJs from './model/JsGenerator';\nimport eCM from './model/CodeMirrorEditor';\nimport editorView from './view/EditorView';\n\nexport default () => {\n var c = {};\n var generators = {},\n defGenerators = {},\n viewers = {},\n defViewers = {};\n\n const defaultViewer = 'CodeMirror';\n\n return {\n getConfig() {\n return c;\n },\n\n config: c,\n\n EditorView: editorView,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CodeManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n defGenerators.html = new gHtml();\n defGenerators.css = new gCss();\n defGenerators.json = new gJson();\n defGenerators.js = new gJs();\n defViewers.CodeMirror = new eCM();\n this.loadDefaultGenerators().loadDefaultViewers();\n\n return this;\n },\n\n /**\n * Add new code generator to the collection\n * @param {string} id Code generator ID\n * @param {Object} generator Code generator wrapper\n * @param {Function} generator.build Function that builds the code\n * @return {this}\n * @example\n * codeManager.addGenerator('html7',{\n * build: function(model){\n * return 'myCode';\n * }\n * });\n * */\n addGenerator(id, generator) {\n generators[id] = generator;\n return this;\n },\n\n /**\n * Get code generator by id\n * @param {string} id Code generator ID\n * @return {Object|null}\n * @example\n * var generator = codeManager.getGenerator('html7');\n * generator.build = function(model){\n * //extend\n * };\n * */\n getGenerator(id) {\n return generators[id] || null;\n },\n\n /**\n * Returns all code generators\n * @return {Array}\n * */\n getGenerators() {\n return generators;\n },\n\n /**\n * Add new code viewer\n * @param {string} id Code viewer ID\n * @param {Object} viewer Code viewer wrapper\n * @param {Function} viewer.init Set element on which viewer will be displayed\n * @param {Function} viewer.setContent Set content to the viewer\n * @return {this}\n * @example\n * codeManager.addViewer('ace',{\n * init: function(el){\n * var ace = require('ace-editor');\n * this.editor = ace.edit(el.id);\n * },\n * setContent: function(code){\n * this.editor.setValue(code);\n * }\n * });\n * */\n addViewer(id, viewer) {\n viewers[id] = viewer;\n return this;\n },\n\n /**\n * Get code viewer by id\n * @param {string} id Code viewer ID\n * @return {Object|null}\n * @example\n * var viewer = codeManager.getViewer('ace');\n * */\n getViewer(id) {\n return viewers[id] || null;\n },\n\n /**\n * Returns all code viewers\n * @return {Array}\n * */\n getViewers() {\n return viewers;\n },\n\n createViewer(opts = {}) {\n const type = !isUndefined(opts.type) ? opts.type : defaultViewer;\n const viewer = this.getViewer(type) && this.getViewer(type).clone();\n const cont = document.createElement('div');\n const txtarea = document.createElement('textarea');\n cont.appendChild(txtarea);\n viewer.set(opts);\n viewer.init(txtarea);\n viewer.setElement(cont);\n\n return viewer;\n },\n\n /**\n * Update code viewer content\n * @param {Object} viewer Viewer instance\n * @param {string} code Code string\n * @example\n * var AceViewer = codeManager.getViewer('ace');\n * // ...\n * var viewer = AceViewer.init(el);\n * // ...\n * codeManager.updateViewer(AceViewer, 'code');\n * */\n updateViewer(viewer, code) {\n viewer.setContent(code);\n },\n\n /**\n * Get code from model\n * @param {Object} model Any kind of model that will be passed to the build method of generator\n * @param {string} genId Code generator id\n * @param {Object} [opt] Options\n * @return {string}\n * @example\n * var codeStr = codeManager.getCode(model, 'html');\n * */\n getCode(model, genId, opt = {}) {\n opt.em = c.em;\n var generator = this.getGenerator(genId);\n return generator ? generator.build(model, opt) : '';\n },\n\n /**\n * Load default code generators\n * @return {this}\n * @private\n * */\n loadDefaultGenerators() {\n for (var id in defGenerators) this.addGenerator(id, defGenerators[id]);\n\n return this;\n },\n\n /**\n * Load default code viewers\n * @return {this}\n * @private\n * */\n loadDefaultViewers() {\n for (var id in defViewers) this.addViewer(id, defViewers[id]);\n\n return this;\n },\n\n destroy() {\n [c, generators, defGenerators, viewers, defViewers].forEach(\n i => (i = {})\n );\n }\n };\n};\n","import Backbone from 'backbone';\nimport { bindAll, isUndefined, each } from 'underscore';\nimport { hasWin } from 'utils/mixins';\n\nconst maxValue = Number.MAX_VALUE;\n\nexport const getMediaLength = mediaQuery => {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n return !length ? '' : length[0];\n};\n\nexport default Backbone.Model.extend({\n initialize() {\n bindAll(this, 'sortRules');\n this.compCls = [];\n this.ids = [];\n },\n\n /**\n * Get CSS from a component\n * @param {Model} model\n * @return {String}\n */\n buildFromModel(model, opts = {}) {\n let code = '';\n const em = this.em;\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n const style = model.styleToString();\n const classes = model.get('classes');\n this.ids.push(`#${model.getId()}`);\n\n // Let's know what classes I've found\n classes.each(model => this.compCls.push(model.getFullName()));\n\n if (!avoidInline && style) {\n code = `#${model.getId()}{${style}}`;\n }\n\n const components = model.components();\n components.each(model => (code += this.buildFromModel(model, opts)));\n return code;\n },\n\n build(model, opts = {}) {\n const { json } = opts;\n const em = opts.em || '';\n const cssc = opts.cssc || (em && em.get('CssComposer'));\n this.em = em;\n this.compCls = [];\n this.ids = [];\n this.model = model;\n const codeJson = [];\n let code = model ? this.buildFromModel(model, opts) : '';\n const clearStyles = isUndefined(opts.clearStyles) && em ? em.getConfig('clearStyles') : opts.clearStyles;\n\n if (cssc) {\n let rules = opts.rules || cssc.getAll();\n const atRules = {};\n const dump = [];\n\n if (opts.onlyMatched && model && hasWin()) {\n rules = this.matchedRules(model, rules);\n }\n\n rules.forEach(rule => {\n const atRule = rule.getAtRule();\n\n if (atRule) {\n const mRules = atRules[atRule];\n if (mRules) {\n mRules.push(rule);\n } else {\n atRules[atRule] = [rule];\n }\n return;\n }\n\n const res = this.buildFromRule(rule, dump, opts);\n\n if (json) {\n codeJson.push(res);\n } else {\n code += res;\n }\n });\n\n this.sortMediaObject(atRules).forEach(item => {\n let rulesStr = '';\n const atRule = item.key;\n const mRules = item.value;\n\n mRules.forEach(rule => {\n const ruleStr = this.buildFromRule(rule, dump, opts);\n\n if (rule.get('singleAtRule')) {\n code += `${atRule}{${ruleStr}}`;\n } else {\n rulesStr += ruleStr;\n }\n\n json && codeJson.push(ruleStr);\n });\n\n if (rulesStr) {\n code += `${atRule}{${rulesStr}}`;\n }\n });\n\n em && clearStyles && rules.remove && rules.remove(dump);\n }\n\n return json ? codeJson.filter(r => r) : code;\n },\n\n /**\n * Get CSS from the rule model\n * @param {Model} rule\n * @return {string} CSS string\n */\n buildFromRule(rule, dump, opts = {}) {\n let result = '';\n const { model } = this;\n const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 });\n const selectorsAdd = rule.get('selectorsAdd');\n const singleAtRule = rule.get('singleAtRule');\n let found;\n\n // This will not render a rule if there is no its component\n rule.get('selectors').each(selector => {\n const name = selector.getFullName();\n if (this.compCls.indexOf(name) >= 0 || this.ids.indexOf(name) >= 0 || opts.keepUnusedStyles) {\n found = 1;\n }\n });\n\n if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule || !model) {\n const block = rule.getDeclaration({ body: 1 });\n block && (opts.json ? (result = rule) : (result += block));\n } else {\n dump.push(rule);\n }\n\n return result;\n },\n\n /**\n * Get matched rules of a component\n * @param {Component} component\n * @param {Array} rules\n * @returns {Array}\n */\n matchedRules(component, rules) {\n const el = component.getEl();\n let result = [];\n\n rules.forEach(rule => {\n try {\n if (\n rule\n .selectorsToString()\n .split(',')\n .some(selector => el.matches(this.__cleanSelector(selector)))\n ) {\n result.push(rule);\n }\n } catch (err) {}\n });\n\n component.components().forEach(component => {\n result = result.concat(this.matchedRules(component, rules));\n });\n\n // Remove duplicates\n result = result.filter((rule, i) => result.indexOf(rule) === i);\n\n return result;\n },\n\n /**\n * Get the numeric length of the media query string\n * @param {String} mediaQuery Media query string\n * @return {Number}\n */\n getQueryLength(mediaQuery) {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n if (!length) return maxValue;\n\n return parseFloat(length[1]);\n },\n\n /**\n * Return a sorted array from media query object\n * @param {Object} items\n * @return {Array}\n */\n sortMediaObject(items = {}) {\n const itemsArr = [];\n each(items, (value, key) => itemsArr.push({ key, value }));\n return itemsArr.sort((a, b) => {\n const isMobFirst = [a.key, b.key].every(mquery => mquery.indexOf('min-width') !== -1);\n const left = isMobFirst ? a.key : b.key;\n const right = isMobFirst ? b.key : a.key;\n return this.getQueryLength(left) - this.getQueryLength(right);\n });\n },\n\n sortRules(a, b) {\n const getKey = rule => rule.get('mediaText');\n const isMobFirst = [getKey(a), getKey(b)].every(q => q.indexOf('min-width') !== -1);\n const left = isMobFirst ? getKey(a) : getKey(b);\n const right = isMobFirst ? getKey(b) : getKey(a);\n return this.getQueryLength(left) - this.getQueryLength(right);\n },\n\n /**\n * Return passed selector without states\n * @param {String} selector\n * @returns {String}\n * @private\n */\n __cleanSelector(selector) {\n return selector\n .split(' ')\n .map(item => item.split(':')[0])\n .join(' ');\n },\n});\n","export default {\n stylePrefix: 'com-',\n\n // Default array of commands\n defaults: [],\n\n // If true, stateful commands (with `run` and `stop` methods) can't be runned multiple times.\n // So, if the command is already active, running it again will not execute the `run` method\n strict: 1\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/commands/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * commands: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('run', () => { ... });\n *\n * // Use the API\n * const commands = editor.Commands;\n * commands.add(...);\n * ```\n *\n ** ## Available Events\n * * `run:{commandName}` - Triggered when some command is called to run (eg. editor.runCommand('preview'))\n * * `stop:{commandName}` - Triggered when some command is called to stop (eg. editor.stopCommand('preview'))\n * * `run:{commandName}:before` - Triggered before the command is called\n * * `stop:{commandName}:before` - Triggered before the command is called to stop\n * * `abort:{commandName}` - Triggered when the command execution is aborted (`editor.on(`run:preview:before`, opts => opts.abort = 1);`)\n * * `run` - Triggered on run of any command. The id and the result are passed as arguments to the callback\n * * `stop` - Triggered on stop of any command. The id and the result are passed as arguments to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [extend](#extend)\n * * [has](#has)\n * * [run](#run)\n * * [stop](#stop)\n * * [isActive](#isactive)\n * * [getActive](#getactive)\n *\n * @module Commands\n */\n\nimport { isFunction, includes } from 'underscore';\nimport CommandAbstract from './view/CommandAbstract';\nimport defaults from './config/config';\nimport { eventDrag } from 'dom_components/model/Component';\n\nconst commandsDef = [\n ['preview', 'Preview', 'preview'],\n ['resize', 'Resize', 'resize'],\n ['fullscreen', 'Fullscreen', 'fullscreen'],\n ['copy', 'CopyComponent'],\n ['paste', 'PasteComponent'],\n ['canvas-move', 'CanvasMove'],\n ['canvas-clear', 'CanvasClear'],\n ['open-code', 'ExportTemplate', 'export-template'],\n ['open-layers', 'OpenLayers', 'open-layers'],\n ['open-styles', 'OpenStyleManager', 'open-sm'],\n ['open-traits', 'OpenTraitManager', 'open-tm'],\n ['open-blocks', 'OpenBlocks', 'open-blocks'],\n ['open-assets', 'OpenAssets', 'open-assets'],\n ['component-select', 'SelectComponent', 'select-comp'],\n ['component-outline', 'SwitchVisibility', 'sw-visibility'],\n ['component-offset', 'ShowOffset', 'show-offset'],\n ['component-move', 'MoveComponent', 'move-comp'],\n ['component-next', 'ComponentNext'],\n ['component-prev', 'ComponentPrev'],\n ['component-enter', 'ComponentEnter'],\n ['component-exit', 'ComponentExit', 'select-parent'],\n ['component-delete', 'ComponentDelete'],\n ['component-style-clear', 'ComponentStyleClear'],\n ['component-drag', 'ComponentDrag'],\n];\n\nexport default () => {\n let em;\n let c = {};\n const commands = {};\n const defaultCommands = {};\n const active = {};\n\n // Need it here as it would be used below\n const add = function (id, obj) {\n if (isFunction(obj)) obj = { run: obj };\n if (!obj.stop) obj.noStop = 1;\n delete obj.initialize;\n obj.id = id;\n commands[id] = CommandAbstract.extend(obj);\n return this;\n };\n\n return {\n CommandAbstract,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Commands',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config,\n };\n em = c.em;\n const ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load commands passed via configuration\n Object.keys(c.defaults).forEach(k => {\n const obj = c.defaults[k];\n if (obj.id) this.add(obj.id, obj);\n });\n\n defaultCommands['tlb-delete'] = {\n run(ed) {\n return ed.runCommand('core:component-delete');\n },\n };\n\n defaultCommands['tlb-clone'] = {\n run(ed) {\n ed.runCommand('core:copy');\n ed.runCommand('core:paste', { action: 'clone-component' });\n },\n };\n\n defaultCommands['tlb-move'] = {\n run(ed, sender, opts = {}) {\n let dragger;\n const em = ed.getModel();\n const event = opts && opts.event;\n const { target } = opts;\n const sel = target || ed.getSelected();\n const selAll = target ? [target] : [...ed.getSelectedAll()];\n const nativeDrag = event && event.type == 'dragstart';\n const defComOptions = { preserveSelected: 1 };\n const modes = ['absolute', 'translate'];\n\n if (!sel || !sel.get('draggable')) {\n return em.logWarning('The element is not draggable');\n }\n\n const mode = sel.get('dmode') || em.get('dmode');\n const hideTlb = () => em.stopDefault(defComOptions);\n const altMode = includes(modes, mode);\n selAll.forEach(sel => sel.trigger('disable'));\n\n // Without setTimeout the ghost image disappears\n nativeDrag ? setTimeout(hideTlb, 0) : hideTlb();\n\n const onStart = data => {\n em.trigger(`${eventDrag}:start`, data);\n };\n const onDrag = data => {\n em.trigger(eventDrag, data);\n };\n const onEnd = (e, opts, data) => {\n selAll.forEach(sel => sel.set('status', 'selected'));\n ed.select(selAll);\n sel.emitUpdate();\n em.trigger(`${eventDrag}:end`, data);\n\n // Defer selectComponent in order to prevent canvas \"freeze\" #2692\n setTimeout(() => em.runDefault(defComOptions));\n\n // Dirty patch to prevent parent selection on drop\n (altMode || data.cancelled) && em.set('_cmpDrag', 1);\n };\n\n if (altMode) {\n // TODO move grabbing func in editor/canvas from the Sorter\n dragger = ed.runCommand('core:component-drag', {\n guidesInfo: 1,\n mode,\n target: sel,\n onStart,\n onDrag,\n onEnd,\n event,\n });\n } else {\n if (nativeDrag) {\n event.dataTransfer.setDragImage(sel.view.el, 0, 0);\n //sel.set('status', 'freezed');\n }\n\n const cmdMove = ed.Commands.get('move-comp');\n cmdMove.onStart = onStart;\n cmdMove.onDrag = onDrag;\n cmdMove.onEndMoveFromModel = onEnd;\n cmdMove.initSorterFromModels(selAll);\n }\n\n selAll.forEach(sel => sel.set('status', 'freezed-selected'));\n },\n };\n\n // Core commands\n defaultCommands['core:undo'] = e => e.UndoManager.undo();\n defaultCommands['core:redo'] = e => e.UndoManager.redo();\n commandsDef.forEach(item => {\n const oldCmd = item[2];\n const cmd = require(`./view/${item[1]}`).default;\n const cmdName = `core:${item[0]}`;\n defaultCommands[cmdName] = cmd;\n if (oldCmd) {\n defaultCommands[oldCmd] = cmd;\n // Propogate old commands (can be removed once we stop to call old commands)\n ['run', 'stop'].forEach(name => {\n em.on(`${name}:${oldCmd}`, (...args) => em.trigger(`${name}:${cmdName}`, ...args));\n });\n }\n });\n\n if (c.em) c.model = c.em.get('Canvas');\n\n this.loadDefaultCommands();\n\n return this;\n },\n\n /**\n * Add new command to the collection\n * @param\t{string} id Command's ID\n * @param\t{Object|Function} command Object representing your command,\n * By passing just a function it's intended as a stateless command\n * (just like passing an object with only `run` method).\n * @return {this}\n * @example\n * commands.add('myCommand', {\n * \trun(editor, sender) {\n * \t\talert('Hello world!');\n * \t},\n * \tstop(editor, sender) {\n * \t},\n * });\n * // As a function\n * commands.add('myCommand2', editor => { ... });\n * */\n add,\n\n /**\n * Get command by ID\n * @param\t{string}\tid Command's ID\n * @return {Object} Object representing the command\n * @example\n * var myCommand = commands.get('myCommand');\n * myCommand.run();\n * */\n get(id) {\n let el = commands[id];\n\n if (isFunction(el)) {\n el = new el(c);\n commands[id] = el;\n } else if (!el) {\n em.logWarning(`'${id}' command not found`);\n }\n\n return el;\n },\n\n /**\n * Extend the command. The command to extend should be defined as an object\n * @param\t{string}\tid Command's ID\n * @param {Object} Object with the new command functions\n * @returns {this}\n * @example\n * commands.extend('old-command', {\n * someInnerFunction() {\n * // ...\n * }\n * });\n * */\n extend(id, cmd = {}) {\n const command = this.get(id);\n if (command) {\n const cmdObj = {\n ...command.constructor.prototype,\n ...cmd,\n };\n this.add(id, cmdObj);\n // Extend also old name commands if exist\n const oldCmd = commandsDef.filter(cmd => `core:${cmd[0]}` === id && cmd[2])[0];\n oldCmd && this.add(oldCmd[2], cmdObj);\n }\n return this;\n },\n\n /**\n * Check if command exists\n * @param\t{string}\tid Command's ID\n * @return {Boolean}\n * */\n has(id) {\n return !!commands[id];\n },\n\n /**\n * Get an object containing all the commands\n * @return {Object}\n */\n getAll() {\n return commands;\n },\n\n /**\n * Execute the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.run('myCommand', { someOption: 1 });\n */\n run(id, options = {}) {\n return this.runCommand(this.get(id), options);\n },\n\n /**\n * Stop the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.stop('myCommand', { someOption: 1 });\n */\n stop(id, options = {}) {\n return this.stopCommand(this.get(id), options);\n },\n\n /**\n * Check if the command is active. You activate commands with `run`\n * and disable them with `stop`. If the command was created without `stop`\n * method it can't be registered as active\n * @param {String} id Command id\n * @return {Boolean}\n * @example\n * const cId = 'some-command';\n * commands.run(cId);\n * commands.isActive(cId);\n * // -> true\n * commands.stop(cId);\n * commands.isActive(cId);\n * // -> false\n */\n isActive(id) {\n return this.getActive().hasOwnProperty(id);\n },\n\n /**\n * Get all active commands\n * @return {Object}\n * @example\n * console.log(commands.getActive());\n * // -> { someCommand: itsLastReturn, anotherOne: ... };\n */\n getActive() {\n return active;\n },\n\n /**\n * Load default commands\n * @return {this}\n * @private\n * */\n loadDefaultCommands() {\n for (var id in defaultCommands) {\n this.add(id, defaultCommands[id]);\n }\n\n return this;\n },\n\n /**\n * Run command via its object\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n runCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (!this.isActive(id) || options.force || !c.strict) {\n result = editor && command.callRun(editor, options);\n if (id && command.stop && !command.noStop && !options.abort) {\n active[id] = result;\n }\n }\n }\n\n return result;\n },\n\n /**\n * Stop the command\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n stopCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (this.isActive(id) || options.force || !c.strict) {\n if (id) delete active[id];\n result = command.callStop(editor, options);\n }\n }\n\n return result;\n },\n\n /**\n * Create anonymous Command instance\n * @param {Object} command Command object\n * @return {Command}\n * @private\n * */\n create(command) {\n if (!command.stop) command.noStop = 1;\n const cmd = CommandAbstract.extend(command);\n return new cmd(c);\n },\n\n destroy() {\n [em, c, commands, defaultCommands, active].forEach(i => (i = {}));\n },\n };\n};\n","export default {\n run(ed) {\n ed.DomComponents.clear();\n ed.CssComposer.clear();\n }\n};\n","import { bindAll } from 'underscore';\nimport { on, off, getKeyChar } from 'utils/mixins';\nimport Dragger from 'utils/Dragger';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable, ev) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y')\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n }\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n }\n};\n","import { Model } from 'backbone';\n\nexport default Model.extend({\n /**\n * Initialize method that can't be removed\n * @param {Object} o Options\n * @private\n * */\n initialize(o) {\n this.config = o || {};\n this.editorModel = this.em = this.config.em || {};\n this.pfx = this.config.stylePrefix;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = this.pfx + 'hover';\n this.badgeClass = this.pfx + 'badge';\n this.plhClass = this.pfx + 'placeholder';\n this.freezClass = this.ppfx + 'freezed';\n\n this.canvas = this.em.get && this.em.get('Canvas');\n this.init(this.config);\n },\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e) {},\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n },\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n },\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n },\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft\n };\n },\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o) {},\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor, options = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n },\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor, options = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n },\n\n /**\n * Stop current command\n */\n stopCommand() {\n this.em.get('Commands').stop(this.id);\n },\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em, sender) {},\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em, sender) {}\n});\n","import { isArray } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const toSelect = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n component.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from 'utils/Dragger';\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach(item => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig('stylePrefix');\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = `
\n
\n
`;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(\n `.${pfx}guide-info__content`\n );\n this.elGuideInfoContentY = elInfoY.querySelector(\n `.${pfx}guide-info__content`\n );\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides.forEach(item => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(\n parentNode.children,\n item =>\n (result = result.concat(el !== item ? this.getElementGuides(item) : []))\n );\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides) {\n let lastEl, lastPos;\n (guides || this.guides).forEach(item => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item, rect) {\n const result = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${\n item.active ? 'green' : 'red'\n };`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style =\n 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n const guides = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 } // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item)\n }));\n guides.forEach(item => this.guides.push(item));\n\n return guides;\n },\n\n getTranslate(transform, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0)\n result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform, axis, value) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const en = !end ? 1 : ''; // this will trigger the final change\n const left = `${x}${unit}`;\n const top = `${y}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, en };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds = { position, width, height };\n const style = { left, top, en };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n // Update StyleManager properties\n em.getSelected() &&\n keys(styleUp).forEach(i => em.trigger(`update:component:style:${i}`));\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index()\n };\n },\n\n onStart(event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position\n });\n }\n },\n\n onDrag(...args) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach(item => this.renderGuide(item));\n opts.guidesInfo &&\n this.renderGuideInfo(guidesTarget.filter(item => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev, dragger, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY\n ? origEdge1 + rectOrigin.width\n : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY\n ? origEdge1Raw + rectOrigin.rect.width\n : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n .filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap:\n statEdge2 < origEdge1\n ? origEdge1 - statEdge2\n : statEdge1 - origEdge2,\n guide: stat\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY\n ? rect.left + rect.width\n : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1\n ? origEdge1Raw - statEdge2Raw\n : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt\n });\n }\n });\n },\n\n toggleDrag(enable) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter(c => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","import { isArray, flatten } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n }\n};\n","export default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()];\n models.length && em.set('clipboard', models);\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport SelectComponent from './SelectComponent';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectComponent, {\n init(o) {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el\n .find('*')\n .mouseover(this.startDelete)\n .mouseout(this.stopDelete)\n .click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model) {\n this.badge.html('Remove ' + model.getName());\n }\n});\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender, opts = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.$editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.el;\n this.cssEditor = oCsslEd.el;\n const $editors = $(`
`);\n $editors.append(oHtmlEd.$el).append(oCsslEd.$el);\n this.$editors = $editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.$editors\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(this.id));\n this.htmlEditor.setContent(editor.getHtml());\n this.cssEditor.setContent(editor.getCss());\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName, theme, label) {\n const input = document.createElement('textarea');\n !this.codeMirror && (this.codeMirror = this.cm.getViewer('CodeMirror'));\n\n const el = this.codeMirror.clone().set({\n label,\n codeName,\n theme,\n input\n });\n\n const $el = new this.cm.EditorView({\n model: el,\n config: this.cm.getConfig()\n }).render().$el;\n\n el.init(input);\n\n return { el, $el };\n }\n};\n","import { isElement } from 'underscore';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n var d = document;\n if (\n d.fullscreenElement ||\n d.webkitFullscreenElement ||\n d.mozFullScreenElement\n )\n return 1;\n else return 0;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el) {\n var pfx = '';\n if (el.requestFullscreen) el.requestFullscreen();\n else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) el.msRequestFullscreen();\n else console.warn('Fullscreen not supported');\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d = document;\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx, e) {\n var d = document;\n var ev = (pfx || '') + 'fullscreenchange';\n if (!this.isEnabled()) {\n this.stop(null, this.sender);\n document.removeEventListener(ev, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target)\n ? target\n : document.querySelector(target);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport { on, off } from 'utils/mixins';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frame = (this.em.get('currentFrame') || {}).model;\n const el = lastModel.getEl(frame);\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e, el) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e, force) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '')\n .unbind()\n .removeClass(this.noSelClass);\n }\n});\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open(content) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets = am.getAll().filter(i => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(\n `input#${config.stylePrefix}uploadFile`\n );\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n }\n};\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n }\n};\n","export default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n\n if (lm.getConfig().appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n layers.appendChild(lm.render());\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n }\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cn) {\n const config = editor.getConfig();\n const panels = editor.Panels;\n const trgEvCnt = 'change:appendContent';\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n\n // Device Manager\n const dvm = editor.DeviceManager;\n if (dvm && config.showDevices) {\n const devicePanel = panels.addPanel({ id: 'devices-c' });\n const dvEl = dvm.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slm = editor.SelectorManager;\n this.slm = slm;\n const slmConfig = slm.getConfig();\n if (slmConfig.custom) {\n slm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!slmConfig.appendTo) {\n this.$cn2.append(slm.render([]));\n }\n\n // Style Manager\n const sm = editor.StyleManager;\n this.sm = sm;\n const smConfig = sm.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(`
${editor.t('styleManager.empty')}
`);\n this.$cn.append(this.$header);\n\n if (smConfig.custom) {\n sm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!smConfig.appendTo) {\n this.$cn2.append(sm.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n this.panel = panels.getPanel(pnCnt);\n if (!this.panel) this.panel = panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n this.panel.set('appendContent', this.$cn).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n this.em = editor.getModel();\n this.listenTo(this.em, sm.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n this.$cn2?.show();\n this.$header?.hide();\n } else {\n this.$cn2?.hide();\n this.$header?.show();\n }\n },\n\n stop() {\n this.$cn2?.hide();\n this.$header?.hide();\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n this.$header = $('
').append(\n `
${em.t(\n 'traitManager.empty'\n )}
`\n );\n this.$cn.append(this.$header);\n this.$cn2.append(\n `
${em.t('traitManager.label')}
`\n );\n this.$cn2.append(tm.render());\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container'))\n panelC = panels.addPanel({ id: 'views-container' });\n else panelC = panels.getPanel('views-container');\n\n panelC\n .set('appendContent', this.$cn.get(0))\n .trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n }\n};\n","import { isArray, contains } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp = em.get('clipboard');\n const selected = ed.getSelected();\n\n if (clp && selected) {\n ed.getSelectedAll().forEach(comp => {\n if (!comp) return;\n\n const coll = comp.collection;\n if (!coll) return;\n\n const at = coll.indexOf(comp) + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n const copyable = clp.filter(cop => cop.get('copyable'));\n let added;\n\n if (contains(clp, comp) && comp.get('copyable')) {\n added = coll.add(comp.clone(), addOpts);\n } else {\n added = coll.add(\n copyable.map(cop => cop.clone()),\n addOpts\n );\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n selected.emitUpdate();\n }\n },\n};\n","import { each } from 'underscore';\n\nconst cmdVis = 'sw-visibility';\n\nexport default {\n getPanels(editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts) {\n opts.abort = 1;\n },\n\n tglEffects(on) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.get('Canvas');\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => (item.style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdVis);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdVis);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl();\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach(panel => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdVis);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach(panel => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n }\n};\n","export default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos,\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = editor.Utils.Resizer.init(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick'\n }\n );\n },\n\n attributes() {\n return this.model.get('attributes');\n },\n\n initialize(opts = {}) {\n const { config = {} } = opts;\n this.em = config.em;\n this.editor = config.editor;\n },\n\n handleClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/artf/grapesjs/issues/2372\n * https://github.com/artf/grapesjs/issues/2207\n */\n\n const { editor, em } = this;\n const { left, top } = editor.Canvas.getFrameEl().getBoundingClientRect();\n\n const calibrated = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top\n };\n\n em.trigger('toolbar:run:before');\n this.execCommand(calibrated);\n },\n\n execCommand(event) {\n const opts = { event };\n const command = this.model.get('command');\n const editor = this.editor;\n\n if (typeof command === 'function') {\n command(editor, null, opts);\n }\n\n if (typeof command === 'string') {\n editor.runCommand(command, opts);\n }\n },\n\n render() {\n const { editor, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = editor.getConfig('stylePrefix');\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n});\n","import DomainViews from 'domain_abstract/view/DomainViews';\nimport ToolbarButtonView from './ToolbarButtonView';\n\nexport default DomainViews.extend({\n itemView: ToolbarButtonView,\n\n initialize(opts = {}) {\n this.config = { editor: opts.editor || '', em: opts.em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n});\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n command: '',\n attributes: {}\n }\n});\n","import Backbone from 'backbone';\nimport ToolbarButton from './ToolbarButton';\n\nexport default Backbone.Collection.extend({ model: ToolbarButton });\n","import Backbone from 'backbone';\nimport { bindAll, isElement, isUndefined, debounce } from 'underscore';\nimport { on, off, getUnitFromValue, isTaggableNode, getViewEl, hasWin } from 'utils/mixins';\nimport { isVisible, isDoc } from 'utils/dom';\nimport ToolbarView from 'dom_components/view/ToolbarView';\nimport Toolbar from 'dom_components/model/Toolbar';\n\nconst $ = Backbone.$;\nlet showOffsets;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init(o) {\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = 1;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable) {\n const { em } = this;\n const listenToEl = em.getConfig('listenToEl');\n const { parentNode } = em.getContainer();\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode);\n const trigger = (win, body) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click touchend', this.onClick);\n methods[method](win, 'scroll', this.onFrameScroll, true);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.get('Canvas')\n .getFrames()\n .forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view.getBody());\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(e) {\n e.stopPropagation();\n const { em } = this;\n const trg = e.target;\n const view = getViewEl(trg);\n const frameView = view && view._getFrame();\n const $el = $(trg);\n let model = $el.data('model');\n\n // Get first valid model\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n this.currentDoc = trg.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.set('currentFrame', frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em, component) {\n let result = {};\n\n if (component) {\n component.views.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n this.updateToolsLocal(result);\n\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect: debounce(function () {\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.get('currentFrame') || {};\n const view = component && component.getView(currentFrame.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n this.elSelected = result;\n this.updateToolsGlobal();\n // This will hide some elements from the select component\n this.updateLocalPos(result);\n this.initResize(component);\n }),\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered(0);\n },\n\n toggleToolsEl(on, view, opts = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el, pos, opts = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el, pos) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset(el, pos) {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n const $el = $(ev.target);\n let model = $el.data('model');\n\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el, pos, opts = {}) {\n const { canvas } = this;\n const model = $(el).data('model');\n if (!model || !model.get('badgable')) return;\n const badge = this.getBadge(opts);\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `
${icon}
` : ''}\n
${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n const bStyle = badge.style;\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem) {\n const { em, canvas } = this;\n const editor = em ? em.get('Editor') : '';\n const config = em ? em.get('Config') : '';\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model && model.get('resizable');\n let options = {};\n let modelToStyle;\n\n var toggleBodyClass = (method, e, opts) => {\n const docs = opts.docs;\n docs &&\n docs.forEach(doc => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n if (editor && resizable) {\n const el = isElement(elem) ? elem : model.getEl();\n options = {\n // Here the resizer is updated with the current element height and width\n onStart(e, opts = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.get('StyleManager').getModelToStyle(model);\n canvas.toggleFramesEvents();\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = 0;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e, opts) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(1);\n showOffsets = 1;\n },\n\n updateTarget(el, rect, options = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style = {};\n const en = !store ? 1 : ''; // this will trigger the final change\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });\n const updateEvent = `update:component:style`;\n const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`;\n em && em.trigger(eventToListen, null, null, { noEmit: 1 });\n },\n };\n\n if (typeof resizable == 'object') {\n options = { ...options, ...resizable, parent: options };\n }\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod) {\n const { em } = this.config;\n const model = mod == em ? em.getSelected() : mod;\n const toolbarEl = this.canvas.getToolbarEl();\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.get('Config').showToolbar;\n\n if (model && showToolbar && toolbar && toolbar.length) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n const toolbarView = new ToolbarView({\n collection: this.toolbar,\n editor: this.editor,\n em,\n });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = 0;\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl();\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data) {\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n this.updateToolsGlobal({ force: 1 });\n }),\n\n _trgToolUp(type, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl(), { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n this.updateGlobalPos();\n }),\n\n onContainerChange: debounce(function () {\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el) {\n return this.canvas.getCanvasView().getElementPos(el);\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected(null);\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg, doc, opts = {}) {\n this.isPointed = false;\n var utils = this.editorModel.get('Utils');\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.editorModel,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal()\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex =\n this.posMethod == 'after' && this.cDim.length !== 0\n ? this.posIndex + 1\n : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl =\n this.cDim.length !== 0 &&\n this.posMethod == 'after' &&\n this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index, method, dims) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (\n len !== 0 &&\n ((!isLast && !dims[i][4]) ||\n (dims[i - 1] && !dims[i - 1][4]) ||\n (isLast && !dims[i - 1][4]))\n )\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n }\n};\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport { isTextNode } from 'utils/mixins';\nconst $ = Backbone.$;\n\nexport default {\n getOffsetMethod(state) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n var opt = opts || {};\n var state = opt.state || '';\n var config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el || '';\n\n if (\n !config.showOffsets ||\n isTextNode(el) ||\n (!config.showOffsetsSelected && state == 'Fixed')\n ) {\n editor.stopCommand(this.id, opts);\n return;\n }\n\n var canvas = editor.Canvas;\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(`
`).get(0);\n var paddingV = $(`
`).get(0);\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt =\n parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n var canvas = editor.Canvas;\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = 0;\n }\n};\n","import { bindAll } from 'underscore';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed);\n },\n\n stop(ed) {\n this.toggleVis(ed, 0);\n },\n\n toggleVis(ed, active = 1) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n cv.getFrames().forEach(frame => this._upFrame(frame, active));\n cv.getModel()[mth]('change:frames', this._onFramesChange);\n }\n },\n\n _onFramesChange(m, frames) {\n frames.forEach(frame => this._upFrame(frame, 1));\n },\n\n _upFrame(frame, active) {\n const method = active ? 'add' : 'remove';\n frame.view.getBody().classList[method](`${this.ppfx}dashed`);\n }\n};\n","import { isString, isElement } from 'underscore';\nimport { createId } from 'utils/mixins';\n\nexport default {\n getConfig(name) {\n return this.__getConfig(name);\n },\n\n __getConfig(name) {\n const res = this.config || {};\n return name ? res[name] : res;\n },\n\n getAll(opts = {}) {\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get(i.idAttribute)] = i;\n return acc;\n }, {});\n },\n\n __initConfig(def = {}, conf = {}) {\n this.config = {\n ...def,\n ...conf,\n };\n this.em = this.config.em;\n this.cls = [];\n },\n\n __initListen(opts = {}) {\n const { all, em, events } = this;\n all &&\n em &&\n all\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\n .on('all', this.__catchAllEvent, this);\n // Register collections\n this.cls = [all].concat(opts.collections || []);\n // Propagate events\n (opts.propagate || []).forEach(({ entity, event }) => {\n entity.on('all', (ev, model, coll, opts) => {\n const options = opts || coll;\n const opt = { event: ev, ...options };\n [em, all].map(md => md.trigger(event, model, opt));\n });\n });\n },\n\n __remove(model, opts = {}) {\n const { em } = this;\n const md = isString(model) ? this.get(model) : model;\n const rm = () => {\n md && this.all.remove(md, opts);\n return md;\n };\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\n return !opts.abort && rm();\n },\n\n __catchAllEvent(event, model, coll, opts) {\n const { em, events } = this;\n const options = opts || coll;\n em && events.all && em.trigger(events.all, { event, model, options });\n this.__onAllEvent();\n },\n\n __appendTo() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render());\n }\n },\n\n __onAllEvent() {},\n\n __logWarn(str) {\n this.em.logWarning(`[${this.name}]: ${str}`);\n },\n\n _createId(len = 16) {\n const all = this.getAll();\n const ln = all.length + len;\n const allMap = this.getAllMap();\n let id;\n\n do {\n id = createId(ln);\n } while (allMap[id]);\n\n return id;\n },\n\n __listenAdd(model, event) {\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenRemove(model, event) {\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenUpdate(model, event) {\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\n },\n\n __destroy() {\n this.cls.forEach(coll => {\n coll.stopListening();\n coll.reset();\n });\n this.em = 0;\n this.config = 0;\n this.view?.remove();\n this.view = 0;\n },\n};\n","export default {\n // Style prefix\n stylePrefix: 'css-',\n\n // Default CSS style\n rules: [],\n\n /**\n * Adjust style object before creation/update.\n * @example\n * onBeforeStyle(style) {\n * const padValue = style.padding;\n * if (padValue === '10px') {\n * delete style.padding;\n * style['padding-top'] = padValue;\n * // ...\n * }\n * return style;\n * }\n */\n onBeforeStyle: null\n};\n","import { Model } from 'backbone';\nimport Styleable from 'domain_abstract/model/Styleable';\nimport { isEmpty, forEach, isString, isArray } from 'underscore';\nimport Selectors from 'selector_manager/model/Selectors';\nimport { getMediaLength } from 'code_manager/model/CssGenerator';\nimport { isEmptyObj, hasWin } from 'utils/mixins';\n\nconst { CSS } = hasWin() ? window : {};\n\n/**\n * @typedef CssRule\n * @property {Array} selectors Array of selectors\n * @property {Object} style Object containing style definitions\n * @property {String} [selectorsAdd=''] Additional string css selectors\n * @property {String} [atRuleType=''] Type of at-rule, eg. `media`, 'font-face'\n * @property {String} [mediaText=''] At-rule value, eg. `(max-width: 1000px)`\n * @property {Boolean} [singleAtRule=false] This property is used only on at-rules, like 'page' or 'font-face', where the block containes only style declarations\n * @property {String} [state=''] State of the rule, eg: `hover`, `focused`\n * @property {Boolean|Array} [important=false] If true, sets `!important` on all properties. You can also pass an array to specify properties on which use important\n * @property {Boolean} [stylable=true] Indicates if the rule is stylable from the editor\n *\n * [Device]: device.html\n * [State]: state.html\n * [Component]: component.html\n */\nexport default class CssRule extends Model.extend(Styleable) {\n defaults() {\n return {\n selectors: [],\n selectorsAdd: '',\n style: {},\n mediaText: '',\n state: '',\n stylable: true,\n atRuleType: '',\n singleAtRule: false,\n important: false,\n group: '',\n // If true, won't be stored in JSON or showed in CSS\n shallow: false,\n _undo: true,\n };\n }\n\n initialize(c, opt = {}) {\n this.config = c || {};\n this.opt = opt;\n this.em = opt.em;\n this.ensureSelectors();\n this.on('change', this.__onChange);\n }\n\n __onChange(m, opts) {\n const { em } = this;\n const changed = this.changedAttributes();\n !isEmptyObj(changed) && em && em.changesUp(opts);\n }\n\n clone() {\n const opts = { ...this.opt };\n const attr = { ...this.attributes };\n attr.selectors = this.get('selectors').map(s => s.clone());\n return new this.constructor(attr, opts);\n }\n\n ensureSelectors(m, c, opts) {\n const { em } = this;\n const sm = em && em.get('SelectorManager');\n const toListen = [this, 'change:selectors', this.ensureSelectors];\n let sels = this.getSelectors();\n this.stopListening(...toListen);\n\n if (sels.models) {\n sels = [...sels.models];\n }\n\n sels = isString(sels) ? [sels] : sels;\n\n if (Array.isArray(sels)) {\n const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i));\n sels = new Selectors(res);\n }\n\n this.set('selectors', sels, opts);\n this.listenTo(...toListen);\n }\n\n /**\n * Returns the at-rule statement when exists, eg. `@media (...)`, `@keyframes`\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getAtRule(); // \"@media (min-width: 500px)\"\n */\n getAtRule() {\n const type = this.get('atRuleType');\n const condition = this.get('mediaText');\n // Avoid breaks with the last condition\n const typeStr = type ? `@${type}` : condition ? '@media' : '';\n\n return typeStr + (condition && typeStr ? ` ${condition}` : '');\n }\n\n /**\n * Return selectors of the rule as a string\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.skipState] Skip state from the result\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1:hover', { color: 'red' });\n * cssRule.selectorsToString(); // \".class1:hover\"\n * cssRule.selectorsToString({ skipState: true }); // \".class1\"\n */\n selectorsToString(opts = {}) {\n const result = [];\n const state = this.get('state');\n const addSelector = this.get('selectorsAdd');\n const selOpts = {\n escape: str => (CSS && CSS.escape ? CSS.escape(str) : str),\n };\n const selectors = this.get('selectors').getFullString(0, selOpts);\n const stateStr = state && !opts.skipState ? `:${state}` : '';\n selectors && result.push(`${selectors}${stateStr}`);\n addSelector && !opts.skipAdd && result.push(addSelector);\n return result.join(', ');\n }\n\n /**\n * Get declaration block (without the at-rule statement)\n * @param {Object} [opts={}] Options (same as in `selectorsToString`)\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getDeclaration() // \".class1{color:red;}\"\n */\n getDeclaration(opts = {}) {\n let result = '';\n const selectors = this.selectorsToString(opts);\n const style = this.styleToString(opts);\n const singleAtRule = this.get('singleAtRule');\n\n if ((selectors || singleAtRule) && (style || opts.allowEmpty)) {\n result = singleAtRule ? style : `${selectors}{${style}}`;\n }\n\n return result;\n }\n\n /**\n * Get the Device the rule is related to.\n * @returns {[Device]|null}\n * @example\n * const device = rule.getDevice();\n * console.log(device?.getName());\n */\n getDevice() {\n const { em } = this;\n const { atRuleType, mediaText } = this.attributes;\n const devices = em?.get('DeviceManager').getDevices() || [];\n const deviceDefault = devices.filter(d => d.getWidthMedia() === '')[0];\n if (atRuleType !== 'media' || !mediaText) {\n return deviceDefault || null;\n }\n return devices.filter(d => d.getWidthMedia() === getMediaLength(mediaText))[0] || null;\n }\n\n /**\n * Get the State the rule is related to.\n * @returns {[State]|null}\n * @example\n * const state = rule.getState();\n * console.log(state?.getLabel());\n */\n getState() {\n const { em } = this;\n const stateValue = this.get('state');\n const states = em.get('SelectorManager').getStates() || [];\n return states.filter(s => s.getName() === stateValue)[0] || null;\n }\n\n /**\n * Returns the related Component (valid only for component-specific rules).\n * @returns {[Component]|null}\n * @example\n * const cmp = rule.getComponent();\n * console.log(cmp?.toHTML());\n */\n getComponent() {\n const sel = this.getSelectors();\n const sngl = sel.length == 1 && sel.at(0);\n const cmpId = sngl && sngl.isId() && sngl.get('name');\n return (cmpId && this.em?.get('DomComponents').getById(cmpId)) || null;\n }\n\n /**\n * Return the CSS string of the rule\n * @param {Object} [opts={}] Options (same as in `getDeclaration`)\n * @return {String} CSS string\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.toCSS() // \"@media (min-width: 500px){.class1{color:red;}}\"\n */\n toCSS(opts = {}) {\n let result = '';\n const atRule = this.getAtRule();\n const block = this.getDeclaration(opts);\n if (block || opts.allowEmpty) {\n result = block;\n }\n\n if (atRule && result) {\n result = `${atRule}{${result}}`;\n }\n\n return result;\n }\n\n toJSON(...args) {\n const obj = Model.prototype.toJSON.apply(this, args);\n\n if (this.em.getConfig('avoidDefaults')) {\n const defaults = this.defaults();\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) {\n delete obj[key];\n }\n });\n\n if (isEmpty(obj.selectors)) delete obj.selectors;\n if (isEmpty(obj.style)) delete obj.style;\n }\n\n return obj;\n }\n\n /**\n * Compare the actual model with parameters\n * @param {Object} selectors Collection of selectors\n * @param {String} state Css rule state\n * @param {String} width For which device this style is oriented\n * @param {Object} ruleProps Other rule props\n * @returns {Boolean}\n * @private\n */\n compare(selectors, state, width, ruleProps = {}) {\n const st = state || '';\n const wd = width || '';\n const selAdd = ruleProps.selectorsAdd || '';\n let atRule = ruleProps.atRuleType || '';\n const sel = !isArray(selectors) && !selectors.models ? [selectors] : selectors.models || selectors;\n\n // Fix atRuleType in case is not specified with width\n if (wd && !atRule) atRule = 'media';\n\n const a1 = sel.map(model => model.getFullName());\n const a2 = this.get('selectors').map(model => model.getFullName());\n\n // Check selectors\n const a1S = a1.slice().sort();\n const a2S = a2.slice().sort();\n if (a1.length !== a2.length || !a1S.every((v, i) => v === a2S[i])) {\n return false;\n }\n\n // Check other properties\n if (\n this.get('state') !== st ||\n this.get('mediaText') !== wd ||\n this.get('selectorsAdd') !== selAdd ||\n this.get('atRuleType') !== atRule\n ) {\n return false;\n }\n\n return true;\n }\n}\n","import Backbone from 'backbone';\nimport CssRule from './CssRule';\n\nconst { Collection } = Backbone;\n\nexport default Collection.extend({\n model: CssRule,\n\n initialize(models, opt) {\n // Inject editor\n if (opt && opt.em) this.editor = opt.em;\n\n // This will put the listener post CssComposer.postLoad\n setTimeout(() => {\n this.on('remove', this.onRemove);\n this.on('add', this.onAdd);\n });\n },\n\n toJSON(opts) {\n const result = Collection.prototype.toJSON.call(this, opts);\n return result.filter(rule => rule.style && !rule.shallow);\n },\n\n onAdd(model, c, o) {\n model.ensureSelectors(model, c, o); // required for undo\n },\n\n onRemove(removed) {\n const em = this.editor;\n em.stopListening(removed);\n em.get('UndoManager').remove(removed);\n },\n\n add(models, opt = {}) {\n if (typeof models === 'string') {\n models = this.editor.get('Parser').parseCss(models);\n }\n opt.em = this.editor;\n return Collection.prototype.add.apply(this, [models, opt]);\n },\n});\n","/**\n * This module manages CSS rules in the canvas.\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/css_composer/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * cssComposer: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const css = editor.Css;\n * ```\n *\n * * [addRules](#addrules)\n * * [setRule](#setrule)\n * * [getRule](#getrule)\n * * [getRules](#getrules)\n * * [remove](#remove)\n * * [clear](#clear)\n *\n * [CssRule]: css_rule.html\n *\n * @module CssComposer\n */\n\nimport { isArray, isString, isUndefined, each } from 'underscore';\nimport { isObject } from 'utils/mixins';\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 return this;\n },\n\n /**\n * On load callback\n * @private\n */\n onLoad() {\n rules.add(c.rules, { silent: 1 });\n },\n\n /**\n * Do stuff after load\n * @param {Editor} em\n * @private\n */\n postLoad() {\n const um = em && em.get('UndoManager');\n um && um.add(this.getAll());\n },\n\n /**\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 * @private\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 * @private\n */\n store(noStore) {\n if (!c.stm) return;\n const obj = {};\n const keys = this.storageKey();\n const hasPages = em && em.get('hasPages');\n if (keys.indexOf('css') >= 0 && !hasPages) 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 * @private\n * @example\n * var sm = editor.SelectorManager;\n * var sel1 = sm.add('myClass1');\n * var sel2 = sm.add('myClass2');\n * var rule = cssComposer.add([sel1, sel2], 'hover');\n * rule.set('style', {\n * width: '100px',\n * color: '#fff',\n * });\n * */\n add(selectors, state, width, opts = {}, addOpts = {}) {\n var s = state || '';\n var w = width || '';\n var opt = { ...opts };\n var rule = this.get(selectors, s, w, opt);\n\n // do not create rules that were found before\n // unless this is a single at-rule, for which multiple declarations\n // make sense (e.g. multiple `@font-type`s)\n if (rule && rule.config && !rule.config.singleAtRule) {\n return rule;\n } else {\n opt.state = s;\n opt.mediaText = w;\n opt.selectors = [];\n w && (opt.atRuleType = 'media');\n rule = new CssRule(opt, c);\n rule.get('selectors').add(selectors, addOpts);\n rules.add(rule, addOpts);\n return rule;\n }\n },\n\n /**\n * Get the rule\n * @param {String|Array} selectors Array of selectors or selector string, eg `.myClass1.myClass2`\n * @param {String} state Css rule state, eg. 'hover'\n * @param {String} width Media rule value, eg. '(max-width: 992px)'\n * @param {Object} ruleProps Other rule props\n * @return {Model|null}\n * @private\n * @example\n * const sm = editor.SelectorManager;\n * const sel1 = sm.add('myClass1');\n * const sel2 = sm.add('myClass2');\n * const rule = cssComposer.get([sel1, sel2], 'hover', '(max-width: 992px)');\n * // Update the style\n * rule.set('style', {\n * width: '300px',\n * color: '#000',\n * });\n * */\n get(selectors, state, width, ruleProps) {\n let slc = selectors;\n if (isString(selectors)) {\n const sm = em.get('SelectorManager');\n const singleSel = selectors.split(',')[0].trim();\n const node = em.get('Parser').parserCss.checkNode({ selectors: singleSel })[0];\n slc = sm.get(node.selectors);\n }\n return rules.find(rule => rule.compare(slc, state, width, ruleProps)) || null;\n },\n\n getAll() {\n return rules;\n },\n\n /**\n * Add a raw collection of rule objects\n * This method overrides styles, in case, of already defined rule\n * @param {String|Array} data CSS string or an array of rule objects, eg. [{selectors: ['class1'], style: {....}}, ..]\n * @param {Object} opts Options\n * @param {Object} props Additional properties to add on rules\n * @return {Array}\n * @private\n */\n addCollection(data, opts = {}, props = {}) {\n const result = [];\n\n if (isString(data)) {\n data = em.get('Parser').parseCss(data);\n }\n\n const d = data instanceof Array ? data : [data];\n\n for (var i = 0, l = d.length; i < l; i++) {\n var rule = d[i] || {};\n if (!rule.selectors) continue;\n var sm = c.em && c.em.get('SelectorManager');\n if (!sm) console.warn('Selector Manager not found');\n var sl = rule.selectors;\n var sels = sl instanceof Array ? sl : [sl];\n var newSels = [];\n\n for (var j = 0, le = sels.length; j < le; j++) {\n var selec = sm.add(sels[j]);\n newSels.push(selec);\n }\n\n var modelExists = this.get(newSels, rule.state, rule.mediaText, rule);\n var model = this.add(newSels, rule.state, rule.mediaText, rule, opts);\n var updateStyle = !modelExists || !opts.avoidUpdateStyle;\n const style = rule.style || {};\n\n isObject(props) && model.set(props, opts);\n\n if (updateStyle) {\n let styleUpdate = opts.extend ? { ...model.get('style'), ...style } : style;\n model.set('style', styleUpdate, opts);\n }\n\n result.push(model);\n }\n\n return result;\n },\n\n /**\n * Add CssRules via CSS string.\n * @param {String} css CSS string of rules to add.\n * @returns {Array<[CssRule]>} Array of rules\n * @example\n * const addedRules = css.addRules('.my-cls{ color: red } @media (max-width: 992px) { .my-cls{ color: darkred } }');\n * // Check rules\n * console.log(addedRules.map(rule => rule.toCSS()));\n */\n addRules(css) {\n return this.addCollection(css);\n },\n\n /**\n * Add/update the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass`\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. `(min-width: 500px)`\n * @returns {[CssRule]} The new/updated CssRule\n * @example\n * // Simple class-based rule\n * const rule = css.setRule('.class1.class2', { color: 'red' });\n * console.log(rule.toCSS()) // output: .class1.class2 { color: red }\n * // With state and other mixed selector\n * const rule = css.setRule('.class1.class2:hover, div#myid', { color: 'red' });\n * // output: .class1.class2:hover, div#myid { color: red }\n * // With media\n * const rule = css.setRule('.class1:hover', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n * // output: @media (min-width: 500px) { .class1:hover { color: red } }\n */\n setRule(selectors, style, opts = {}) {\n const { atRuleType, atRuleParams } = opts;\n const node = em.get('Parser').parserCss.checkNode({\n selectors,\n style,\n })[0];\n const { state, selectorsAdd } = node;\n const sm = em.get('SelectorManager');\n const selector = sm.add(node.selectors);\n const rule = this.add(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n });\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass:hover`\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'\n * @returns {[CssRule]}\n * @example\n * const rule = css.getRule('.myclass1:hover');\n * const rule2 = css.getRule('.myclass1:hover, div#myid');\n * const rule3 = css.getRule('.myclass1', {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n */\n getRule(selectors, opts = {}) {\n const sm = em.get('SelectorManager');\n const node = em.get('Parser').parserCss.checkNode({ selectors })[0];\n const selector = sm.get(node.selectors);\n const { state, selectorsAdd } = node;\n const { atRuleType, atRuleParams } = opts;\n return (\n selector &&\n this.get(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n })\n );\n },\n\n /**\n * Get all rules or filtered by a matching selector.\n * @param {String} [selector=''] Selector, eg. `.myclass`\n * @returns {Array<[CssRule]>}\n * @example\n * // Take all the component specific rules\n * const id = someComponent.getId();\n * const rules = css.getRules(`#${id}`);\n * console.log(rules.map(rule => rule.toCSS()))\n * // All rules in the project\n * console.log(css.getRules())\n */\n getRules(selector) {\n const rules = this.getAll();\n if (!selector) return [...rules.models];\n const sels = isString(selector) ? selector.split(',').map(s => s.trim()) : selector;\n const result = rules.filter(r => sels.indexOf(r.getSelectors().getFullString()) >= 0);\n return result;\n },\n\n /**\n * Add/update the CSS rule with id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setIdRule('myid', { color: 'red' });\n * const ruleHover = css.setIdRule('myid', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // #myid { color: red }\n * // #myid:hover { color: blue }\n */\n setIdRule(name, style = {}, opts = {}) {\n const { addOpts = {}, mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_ID }, addOpts);\n const rule = this.add(selector, state, media, {}, addOpts);\n rule.setStyle(style, { ...opts, ...addOpts });\n return rule;\n },\n\n /**\n * Get the CSS rule by id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getIdRule('myid');\n * const ruleHover = css.setIdRule('myid', { state: 'hover' });\n */\n getIdRule(name, opts = {}) {\n const { mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_ID);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Add/update the CSS rule with class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setClassRule('myclass', { color: 'red' });\n * const ruleHover = css.setClassRule('myclass', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // .myclass { color: red }\n * // .myclass:hover { color: blue }\n */\n setClassRule(name, style = {}, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_CLASS });\n const rule = this.add(selector, state, media);\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CSS rule by class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getClassRule('myclass');\n * const ruleHover = css.getClassRule('myclass', { state: 'hover' });\n */\n getClassRule(name, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_CLASS);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Remove rule, by CssRule or matching selector (eg. the selector will match also at-rules like `@media`)\n * @param {String|[CssRule]|Array<[CssRule]>} rule CssRule or matching selector.\n * @return {Array<[CssRule]>} Removed rules\n * @example\n * // Remove by CssRule\n * const toRemove = css.getRules('.my-cls');\n * css.remove(toRemove);\n * // Remove by selector\n * css.remove('.my-cls-2');\n */\n remove(rule, opts) {\n const toRemove = isString(rule) ? this.getRules(rule) : rule;\n const result = this.getAll().remove(toRemove, opts);\n return isArray(result) ? result : [result];\n },\n\n /**\n * Remove all rules\n * @return {this}\n */\n clear(opts = {}) {\n this.getAll().reset(null, opts);\n return this;\n },\n\n getComponentRules(cmp, opts = {}) {\n let { state, mediaText, current } = opts;\n if (current) {\n state = em.get('state') || '';\n mediaText = em.getCurrentMedia();\n }\n const id = cmp.getId();\n const rules = this.getAll().filter(r => {\n if (!isUndefined(state) && r.get('state') !== state) return;\n if (!isUndefined(mediaText) && r.get('mediaText') !== mediaText) return;\n return r.getSelectorsString() === `#${id}`;\n });\n return rules;\n },\n\n /**\n * Render the block of CSS rules\n * @return {HTMLElement}\n * @private\n */\n render() {\n rulesView && rulesView.remove();\n rulesView = new CssRulesView({\n collection: rules,\n config: c,\n });\n return rulesView.render().el;\n },\n\n destroy() {\n rules.reset();\n rules.stopListening();\n rulesView && rulesView.remove();\n [em, rules, rulesView].forEach(i => (i = null));\n c = {};\n },\n };\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n tagName: 'style',\n\n initialize(o = {}) {\n this.config = o.config || {};\n const { model } = this;\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'destroy remove', this.remove);\n this.listenTo(model.get('selectors'), 'change', this.render);\n },\n\n render() {\n const { model, el } = this;\n const important = model.get('important');\n el.innerHTML = model.toCSS({ important });\n return this;\n }\n});\n","import CssRuleView from './CssRuleView';\n\nexport default CssRuleView.extend({\n _createElement: function(tagName) {\n return document.createTextNode('');\n },\n\n render() {\n const model = this.model;\n const important = model.get('important');\n this.el.textContent = model.getDeclaration({ important });\n return this;\n }\n});\n","import Backbone from 'backbone';\nimport CssRuleView from './CssRuleView';\nimport CssGroupRuleView from './CssGroupRuleView';\n\nconst $ = Backbone.$;\n\nconst getBlockId = (pfx, order) =>\n `${pfx}${order ? `-${parseFloat(order)}` : ''}`;\n\nexport default Backbone.View.extend({\n initialize(o) {\n const config = o.config || {};\n this.atRules = {};\n this.config = config;\n this.em = config.em;\n this.pfx = config.stylePrefix || '';\n this.className = this.pfx + 'rules';\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n },\n\n /**\n * Add to collection\n * @param {Object} model\n * @private\n * */\n addTo(model) {\n this.addToCollection(model);\n },\n\n /**\n * Add new object to collection\n * @param {Object} model\n * @param {Object} fragmentEl\n * @return {Object}\n * @private\n * */\n addToCollection(model, fragmentEl) {\n // If the render is not yet started\n if (!this.renderStarted) {\n return;\n }\n\n const fragment = fragmentEl || null;\n const { config } = this;\n const opts = { model, config };\n let rendered, view;\n\n // I have to render keyframes of the same name together\n // Unfortunately at the moment I didn't find the way of appending them\n // if not staticly, via appendData\n if (model.get('atRuleType') === 'keyframes') {\n const atRule = model.getAtRule();\n let atRuleEl = this.atRules[atRule];\n\n if (!atRuleEl) {\n const styleEl = document.createElement('style');\n atRuleEl = document.createTextNode('');\n styleEl.appendChild(document.createTextNode(`${atRule}{`));\n styleEl.appendChild(atRuleEl);\n styleEl.appendChild(document.createTextNode(`}`));\n this.atRules[atRule] = atRuleEl;\n rendered = styleEl;\n }\n\n view = new CssGroupRuleView(opts);\n atRuleEl.appendData(view.render().el.textContent);\n } else {\n view = new CssRuleView(opts);\n rendered = view.render().el;\n }\n\n const clsName = this.className;\n const mediaText = model.get('mediaText');\n const defaultBlockId = getBlockId(clsName);\n let blockId = defaultBlockId;\n\n // If the rule contains a media query it might have a different container\n // for it (eg. rules created with Device Manager)\n if (mediaText) {\n blockId = getBlockId(clsName, this.getMediaWidth(mediaText));\n }\n\n if (rendered) {\n const container = fragment || this.el;\n let contRules;\n\n // Try to find a specific container for the rule (if it\n // containes a media query), otherwise get the default one\n try {\n contRules = container.querySelector(`#${blockId}`);\n } catch (e) {}\n\n if (!contRules) {\n contRules = container.querySelector(`#${defaultBlockId}`);\n }\n\n contRules.appendChild(rendered);\n }\n\n return rendered;\n },\n\n getMediaWidth(mediaText) {\n return (\n mediaText &&\n mediaText\n .replace(`(${this.em.getConfig('mediaCondition')}: `, '')\n .replace(')', '')\n );\n },\n\n render() {\n this.renderStarted = 1;\n this.atRules = {};\n const { em, $el, className, collection } = this;\n const frag = document.createDocumentFragment();\n $el.empty();\n\n // Create devices related DOM structure, ensure also to have a default container\n const prs = em\n .get('DeviceManager')\n .getAll()\n .pluck('priority');\n prs.every(pr => pr) && prs.unshift(0);\n prs.forEach(pr =>\n $(`
`).appendTo(frag)\n );\n\n collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.attr('class', className);\n return this;\n }\n});\n","export default {\n // The device `id` to select on start, if not indicated, the first available from `devices` will be used.\n default: null,\n\n // Default devices\n devices: [\n {\n id: 'desktop',\n name: 'Desktop',\n width: '',\n },\n {\n id: 'tablet',\n name: 'Tablet',\n width: '770px',\n widthMedia: '992px',\n },\n {\n id: 'mobileLandscape',\n name: 'Mobile landscape',\n width: '568px',\n widthMedia: '768px',\n },\n {\n id: 'mobilePortrait',\n name: 'Mobile portrait',\n width: '320px',\n widthMedia: '480px',\n },\n ],\n};\n","import { Model } from 'backbone';\n\n/**\n * @typedef Device\n * @property {String} [name=''] Device type, eg. `Mobile`\n * @property {String} [width] Width to set for the editor iframe, eg. '900px'\n * @property {String} [height=''] Height to set for the editor iframe, eg. '600px'\n * @property {String} [widthMedia=''] The width which will be used in media queries, If empty the width will be used\n * @property {Number} [priority=null] Setup the order of media queries\n */\nexport default class Device extends Model {\n defaults() {\n return {\n name: '',\n width: null,\n height: '',\n widthMedia: null,\n priority: null\n };\n }\n\n initialize() {\n this.get('widthMedia') === null &&\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 getName() {\n return this.get('name') || this.get('id');\n }\n\n getWidthMedia() {\n return this.get('widthMedia') || '';\n }\n}\n","import { Collection } from 'backbone';\nimport Device from './Device';\n\nexport default class Devices extends Collection {\n comparator(left, right) {\n const max = Number.MAX_VALUE;\n return (right.get('priority') || max) - (left.get('priority') || max);\n }\n\n getSorted() {\n return this.sort();\n }\n}\n\nDevices.prototype.model = Device;\n","import { View } from 'backbone';\nimport html from 'utils/html';\n\nexport default class DevicesView extends View {\n template({ ppfx, label }) {\n return html`\n
${label}
\n
\n \n \n \n
\n
\n
\n
\n \n `;\n }\n\n events() {\n return {\n change: 'updateDevice'\n };\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.em = this.config.em;\n this.ppfx = this.config.pStylePrefix || '';\n this.events['click .' + this.ppfx + 'add-trasp'] = this.startAdd;\n this.listenTo(this.em, 'change:device', this.updateSelect);\n this.delegateEvents();\n }\n\n /**\n * Start adding new device\n * @return {[type]} [description]\n * @private\n */\n startAdd() {}\n\n /**\n * Update device of the editor\n * @private\n */\n updateDevice() {\n var em = this.em;\n if (em) {\n var devEl = this.devicesEl;\n var val = devEl ? devEl.val() : '';\n em.set('device', val);\n }\n }\n\n /**\n * Update select value on device update\n * @private\n */\n updateSelect() {\n var em = this.em;\n var devEl = this.devicesEl;\n if (em && em.getDeviceModel && devEl) {\n var device = em.getDeviceModel();\n var name = device ? device.get('id') : '';\n devEl.val(name);\n }\n }\n\n /**\n * Return devices options\n * @return {string} String of options\n * @private\n */\n getOptions() {\n const { collection, em } = this;\n let result = '';\n\n collection.each(device => {\n const { name, id } = device.attributes;\n const label = (em && em.t && em.t(`deviceManager.devices.${id}`)) || name;\n result += ``;\n });\n\n return result;\n }\n\n render() {\n const { em, ppfx, $el, el } = this;\n const label = em && em.t && em.t('deviceManager.device');\n $el.html(this.template({ ppfx, label }));\n this.devicesEl = $el.find(`.${ppfx}devices`);\n this.devicesEl.append(this.getOptions());\n this.devicesEl.val(em.get('device'));\n el.className = `${ppfx}devices-c`;\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/device_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * deviceManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const deviceManager = editor.Devices;\n * ```\n * ## Available Events\n * * `device:add` - Added new device. The [Device] is passed as an argument to the callback\n * * `device:remove` - Device removed. The [Device] is passed as an argument to the callback\n * * `device:select` - New device selected. The newly selected [Device] and the previous one, are passed as arguments to the callback\n * * `device:update` - Device updated. The updated [Device] and the object containing changes are passed as arguments to the callback\n * * `device` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getDevices](#getdevices)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Device]: device.html\n *\n * @module Devices\n */\nimport { isString } from 'underscore';\nimport Module from 'common/module';\nimport defaults from './config/config';\nimport Device from './model/Device';\nimport Devices from './model/Devices';\nimport DevicesView from './view/DevicesView';\n\nexport const evAll = 'device';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evSelectBefore = `${evSelect}:before`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evAddBefore = `${evAdd}:before`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nconst chnSel = 'change:device';\n\nexport default () => {\n let c = {};\n let devices;\n let view;\n\n return {\n ...Module,\n\n name: 'DeviceManager',\n\n Device,\n\n Devices,\n\n events: {\n all: evAll,\n select: evSelect,\n // selectBefore: evSelectBefore,\n update: evUpdate,\n add: evAdd,\n // addBefore: evAddBefore,\n remove: evRemove,\n removeBefore: evRemoveBefore\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n\n devices = new Devices();\n c.devices.forEach(dv => this.add(dv));\n this.em = em;\n this.all = devices;\n this.select(c.default || devices.at(0));\n this.__initListen();\n em.on(chnSel, this._onSelect, this);\n\n return this;\n },\n\n _onSelect(m, deviceId, opts) {\n const { em, events } = this;\n const prevId = m.previous('device');\n const newDevice = this.get(deviceId);\n const ev = events.select;\n em.trigger(ev, newDevice, this.get(prevId));\n this.__catchAllEvent(ev, newDevice, opts);\n },\n\n /**\n * Add new device\n * @param {Object} props Device properties\n * @returns {[Device]} Added device\n * @example\n * const device1 = deviceManager.add({\n * // Without an explicit ID, the `name` will be taken. In case of missing `name`, a random ID will be created.\n * id: 'tablet',\n * name: 'Tablet',\n * width: '900px', // This width will be applied on the canvas frame and for the CSS media\n * });\n * const device2 = deviceManager.add({\n * id: 'tablet2',\n * name: 'Tablet 2',\n * width: '800px', // This width will be applied on the canvas frame\n * widthMedia: '810px', // This width that will be used for the CSS media\n * height: '600px', // Height will be applied on the canvas frame\n * });\n */\n add(props, options = {}) {\n let result;\n let opts = options;\n\n // Support old API\n if (isString(props)) {\n const width = options;\n opts = arguments[2] || {};\n result = {\n ...opts,\n id: props,\n name: opts.name || props,\n width\n };\n } else {\n result = props;\n }\n\n if (!result.id) {\n result.id = result.name || this._createId();\n }\n\n return devices.add(result, opts);\n },\n\n /**\n * Return device by ID\n * @param {String} id ID of the device\n * @returns {[Device]|null}\n * @example\n * const device = deviceManager.get('Tablet');\n * console.log(JSON.stringify(device));\n * // {name: 'Tablet', width: '900px'}\n */\n get(id) {\n // Support old API\n const byName = this.getAll().filter(d => d.get('name') === id)[0];\n return byName || devices.get(id) || null;\n },\n\n /**\n * Remove device\n * @param {String|[Device]} device Device or device id\n * @returns {[Device]} Removed device\n * @example\n * const removed = deviceManager.remove('device-id');\n * // or by passing the Device\n * const device = deviceManager.get('device-id');\n * deviceManager.remove(device);\n */\n remove(device, opts = {}) {\n return this.__remove(device, opts);\n },\n\n /**\n * Return all devices\n * @returns {Array<[Device]>}\n * @example\n * const devices = deviceManager.getDevices();\n * console.log(JSON.stringify(devices));\n * // [{name: 'Desktop', width: ''}, ...]\n */\n getDevices() {\n return devices.models;\n },\n\n /**\n * Change the selected device. This will update the frame in the canvas\n * @param {String|[Device]} device Device or device id\n * @example\n * deviceManager.select('some-id');\n * // or by passing the page\n * const device = deviceManager.get('some-id');\n * deviceManager.select(device);\n */\n select(device, opts = {}) {\n const md = isString(device) ? this.get(device) : device;\n md && this.em.set('device', md.get('id'), opts);\n return this;\n },\n\n /**\n * Get the selected device\n * @returns {[Device]}\n * @example\n * const selected = deviceManager.getSelected();\n */\n getSelected() {\n return this.get(this.em.get('device'));\n },\n\n getAll() {\n return devices;\n },\n\n render() {\n view && view.remove();\n view = new DevicesView({\n collection: devices,\n config: c\n });\n return view.render().el;\n },\n\n destroy() {\n devices.stopListening();\n devices.reset();\n view && view.remove();\n [devices, view].forEach(i => (i = null));\n c = {};\n }\n };\n};\n","export default {\n stylePrefix: 'comp-',\n\n // Could be used for default components\n components: [],\n\n // If the component is draggable you can drag the component itself (not only from the toolbar)\n draggableComponents: 1,\n\n // Generally, if you don't edit the wrapper in the editor, like\n // custom attributes, you don't need the wrapper stored in your JSON\n // structure, but in case you need it you can use this option.\n // If you have `config.avoidInlineStyle` disabled the wrapper will be stored\n // as we need to store inlined style.\n storeWrapper: 0,\n\n /**\n * You can setup a custom component definition processor before adding it into the editor.\n * It might be useful to transform custom objects (es. some framework specific JSX) to GrapesJS component one.\n * This custom function will be executed on ANY new added component to the editor so make smart checks/conditions\n * to avoid doing useless executions\n * By default, GrapesJS supports already elements generated from React JSX preset\n * @example\n * processor: (obj) => {\n * if (obj.$$typeof) { // eg. this is a React Element\n * const gjsComponent = {\n * type: obj.type,\n * components: obj.props.children,\n * ...\n * };\n * ...\n * return gjsComponent;\n * }\n * }\n */\n processor: 0,\n\n // List of HTML void elements\n // https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#void-elements\n voidElements: [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n ]\n};\n","import ComponentView from './ComponentView';\n\nexport default class ComponentWrapperView extends ComponentView {\n tagName() {\n return 'div';\n }\n}\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'cell',\n tagName: 'td',\n draggable: ['tr']\n }\n },\n {\n isComponent: el => ['td', 'th'].indexOf(toLowerCase(el.tagName)) >= 0\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst tagName = 'tr';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName,\n draggable: ['thead', 'tbody', 'tfoot'],\n droppable: ['th', 'td']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === tagName\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'table';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: ['tbody', 'thead', 'tfoot']\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n !components.length && components.add({ type: 'tbody' });\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n events: {}\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tbody';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n draggable: ['table'],\n droppable: ['tr'],\n columns: 1,\n rows: 1\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n let columns = this.get('columns');\n let rows = this.get('rows');\n\n // Init components if empty\n if (!components.length) {\n const rowsToAdd = [];\n\n while (rows--) {\n const columnsToAdd = [];\n let clm = columns;\n\n while (clm--) {\n columnsToAdd.push({\n type: 'cell',\n classes: ['cell']\n });\n }\n\n rowsToAdd.push({\n type: 'row',\n classes: ['row'],\n components: columnsToAdd\n });\n }\n\n components.add(rowsToAdd);\n }\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'thead';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tfoot';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import { result } from 'underscore';\nimport Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst svgAttrs =\n 'xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" viewBox=\"0 0 24 24\" style=\"fill: rgba(0,0,0,0.15); transform: scale(0.75)\"';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'image',\n tagName: 'img',\n void: true,\n droppable: 0,\n editable: 1,\n highlightable: 0,\n resizable: { ratioDefault: 1 },\n traits: ['alt'],\n\n src: `\n \n `,\n\n // Fallback image in case the src can't be loaded\n // If you use SVG, xmlns=\"http://www.w3.org/2000/svg\" is required\n fallback: `\n \n `,\n\n // File to load asynchronously once the model is rendered\n file: ''\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const { src } = this.get('attributes');\n if (src) this.set('src', src, { silent: 1 });\n },\n\n initToolbar(...args) {\n Component.prototype.initToolbar.apply(this, args);\n const em = this.em;\n\n if (em) {\n var cmd = em.get('Commands');\n var cmdName = 'image-editor';\n\n // Add Image Editor button only if the default command exists\n if (cmd.has(cmdName)) {\n let hasButtonBool = false;\n var tb = this.get('toolbar');\n\n for (let i = 0; i < tb.length; i++) {\n if (tb[i].command === 'image-editor') {\n hasButtonBool = true;\n break;\n }\n }\n\n if (!hasButtonBool) {\n tb.push({\n attributes: { class: 'fa fa-pencil' },\n command: cmdName\n });\n this.set('toolbar', tb);\n }\n }\n }\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n const attr = Component.prototype.getAttrToHTML.apply(this, args);\n const src = this.getSrcResult();\n if (src) attr.src = src;\n return attr;\n },\n\n getSrcResult(opt = {}) {\n const src = this.get(opt.fallback ? 'fallback' : 'src') || '';\n let result = src;\n\n if (src && src.substr(0, 4) === ' toLowerCase(el.tagName) === 'img'\n }\n);\n","import Component from './ComponentImage';\nimport OComponent from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'map',\n src: '',\n void: 0,\n mapUrl: 'https://maps.google.com/maps',\n tagName: 'iframe',\n mapType: 'q',\n address: '',\n zoom: '1',\n attributes: { frameborder: 0 },\n toolbar: OComponent.prototype.defaults.toolbar,\n traits: [\n {\n label: 'Address',\n name: 'address',\n placeholder: 'eg. London, UK',\n changeProp: 1\n },\n {\n type: 'select',\n label: 'Map type',\n name: 'mapType',\n changeProp: 1,\n options: [\n { value: 'q', name: 'Roadmap' },\n { value: 'w', name: 'Satellite' }\n ]\n },\n {\n label: 'Zoom',\n name: 'zoom',\n type: 'range',\n min: '1',\n max: '20',\n changeProp: 1\n }\n ]\n },\n\n initialize(o, opt) {\n if (this.get('src')) this.parseFromSrc();\n else this.updateSrc();\n Component.prototype.initialize.apply(this, arguments);\n this.listenTo(\n this,\n 'change:address change:zoom change:mapType',\n this.updateSrc\n );\n },\n\n updateSrc() {\n this.set('src', this.getMapUrl());\n },\n\n /**\n * Returns url of the map\n * @return {string}\n * @private\n */\n getMapUrl() {\n var md = this;\n var addr = md.get('address');\n var zoom = md.get('zoom');\n var type = md.get('mapType');\n var size = '';\n addr = addr ? '&q=' + addr : '';\n zoom = zoom ? '&z=' + zoom : '';\n type = type ? '&t=' + type : '';\n var result = md.get('mapUrl') + '?' + addr + zoom + type;\n result += '&output=embed';\n return result;\n },\n\n /**\n * Set attributes by src string\n * @private\n */\n parseFromSrc() {\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n if (qr.q) this.set('address', qr.q);\n if (qr.z) this.set('zoom', qr.z);\n if (qr.t) this.set('mapType', qr.t);\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n var result = '';\n if (\n toLowerCase(el.tagName) == 'iframe' &&\n /maps\\.google\\.com/.test(el.src)\n ) {\n result = { type: 'map', src: el.src };\n }\n return result;\n }\n }\n);\n","import { isString } from 'underscore';\nimport ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'img',\n\n events: {\n dblclick: 'onActive',\n click: 'initResize',\n error: 'onError',\n load: 'onLoad',\n dragstart: 'noDrag',\n },\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.listenTo(this.model, 'change:src', this.updateSrc);\n this.classEmpty = `${this.ppfx}plh-image`;\n this.fetchFile();\n },\n\n /**\n * Fetch file if exists\n */\n fetchFile() {\n if (this.modelOpt.temporary) return;\n const { model, em } = this;\n const file = model.get('file');\n\n if (file && em) {\n const fu = em.get('AssetManager').FileUploader();\n fu?.uploadFile({ dataTransfer: { files: [file] } }, res => {\n const obj = res && res.data && res.data[0];\n const src = obj && (isString(obj) ? obj : obj.src);\n src && model.set({ src });\n });\n model.set('file', '');\n }\n },\n\n /**\n * Update src attribute\n * @private\n * */\n updateSrc() {\n const { model, classEmpty, $el } = this;\n const src = model.getSrcResult();\n const srcExists = src && !model.isDefaultSrc();\n model.addAttributes({ src });\n $el[srcExists ? 'removeClass' : 'addClass'](classEmpty);\n },\n\n /**\n * Open dialog for image changing\n * @param {Object} e Event\n * @private\n * */\n onActive(ev) {\n ev && ev.stopPropagation();\n const { em, model } = this;\n const am = em && em.get('AssetManager');\n\n if (am && model.get('editable')) {\n am.open({\n select(asset, complete) {\n model.set({ src: asset.getSrc() });\n complete && am.close();\n },\n target: model,\n types: ['image'],\n accept: 'image/*',\n });\n }\n },\n\n onError() {\n const fallback = this.model.getSrcResult({ fallback: 1 });\n if (fallback) this.el.src = fallback;\n },\n\n onLoad() {\n // Used to update component tools box (eg. toolbar, resizer) once the image is loaded\n this.em.trigger('change:canvasOffset');\n },\n\n noDrag(ev) {\n ev.preventDefault();\n return false;\n },\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.updateSrc();\n const { $el, model } = this;\n const cls = $el.attr('class') || '';\n !model.get('src') && $el.attr('class', `${cls} ${this.classEmpty}`.trim());\n this.postRender();\n\n return this;\n },\n});\n","import Backbone from 'backbone';\nimport ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.classEmpty = this.ppfx + 'plh-map';\n },\n\n /**\n * Update the map on the canvas\n * @private\n */\n updateSrc() {\n this.getIframe().src = this.model.get('src');\n },\n\n getIframe() {\n if (!this.iframe) {\n var ifrm = document.createElement('iframe');\n ifrm.src = this.model.get('src');\n ifrm.frameBorder = 0;\n ifrm.style.height = '100%';\n ifrm.style.width = '100%';\n ifrm.className = this.ppfx + 'no-pointer';\n this.iframe = ifrm;\n }\n return this.iframe;\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n this.el.appendChild(this.getIframe());\n return this;\n }\n});\n","import Component from './Component';\n\nexport default class ComponentText extends Component {}\n\nComponentText.prototype.defaults = {\n ...Component.getDefaults(),\n type: 'text',\n droppable: false,\n editable: true,\n};\n","import { forEach } from 'underscore';\nimport { toLowerCase } from 'utils/mixins';\nimport ComponentText from './ComponentText';\n\nconst type = 'link';\n\nexport default class ComponentLink extends ComponentText {}\n\nComponentLink.prototype.defaults = {\n ...ComponentText.getDefaults(),\n type,\n tagName: 'a',\n traits: ['title', 'href', 'target'],\n};\n\nComponentLink.isComponent = (el, opts = {}) => {\n let result;\n\n if (toLowerCase(el.tagName) === 'a') {\n const textTags = opts.textTags || [];\n result = { type, editable: false };\n\n // The link is editable only if, at least, one of its\n // children is a text node (not empty one)\n const children = el.childNodes;\n const len = children.length;\n if (!len) delete result.editable;\n\n forEach(children, child => {\n const { tagName } = child;\n if (\n (child.nodeType == 3 && child.textContent.trim() !== '') ||\n (tagName && textTags.indexOf(toLowerCase(tagName)) >= 0)\n ) {\n delete result.editable;\n }\n });\n }\n\n return result;\n};\n","import { on, off, getModel } from 'utils/mixins';\nimport ComponentView from './ComponentView';\nimport { bindAll } from 'underscore';\n\nconst compProt = ComponentView.prototype;\n\nexport default ComponentView.extend({\n events: {\n dblclick: 'onActive',\n input: 'onInput',\n },\n\n initialize(o) {\n compProt.initialize.apply(this, arguments);\n bindAll(this, 'disableEditing', 'onDisable');\n const model = this.model;\n const em = this.em;\n this.listenTo(model, 'focus', this.onActive);\n this.listenTo(model, 'change:content', this.updateContentText);\n this.listenTo(model, 'sync:content', this.syncContent);\n this.rte = em && em.get('RichTextEditor');\n },\n\n updateContentText(m, v, opts = {}) {\n !opts.fromDisable && this.disableEditing();\n },\n\n canActivate() {\n const { model, rteEnabled, em } = this;\n const modelInEdit = em?.getEditing();\n const sameInEdit = modelInEdit === model;\n let result = true;\n let isInnerText = false;\n let delegate;\n\n if (rteEnabled || !model.get('editable') || sameInEdit || (isInnerText = model.isChildOf('text'))) {\n result = false;\n // If the current is inner text, select the closest text\n if (isInnerText && !model.get('textable')) {\n let parent = model.parent();\n\n while (parent && !parent.isInstanceOf('text')) {\n parent = parent.parent();\n }\n\n if (parent && parent.get('editable')) {\n delegate = parent;\n } else {\n result = true;\n }\n }\n }\n\n return { result, delegate };\n },\n\n /**\n * Enable element content editing\n * @private\n * */\n async onActive(ev) {\n const { rte, em } = this;\n const { result, delegate } = this.canActivate();\n\n // We place this before stopPropagation in case of nested\n // text components will not block the editing (#1394)\n if (!result) {\n if (delegate) {\n ev?.stopPropagation?.();\n em.setSelected(delegate);\n delegate.trigger('active', ev);\n }\n return;\n }\n\n ev?.stopPropagation?.();\n this.lastContent = this.getContent();\n\n if (rte) {\n try {\n this.activeRte = await rte.enable(this, this.activeRte, { event: ev });\n } catch (err) {\n em.logError(err);\n }\n }\n\n this.toggleEvents(1);\n },\n\n onDisable() {\n this.disableEditing();\n },\n\n /**\n * Disable element content editing\n * @private\n * */\n async disableEditing(opts = {}) {\n const { model, rte, activeRte, em } = this;\n // There are rare cases when disableEditing is called when the view is already removed\n // so, we have to check for the model, this will avoid breaking stuff.\n const editable = model && model.get('editable');\n\n if (rte) {\n try {\n await rte.disable(this, activeRte);\n } catch (err) {\n em.logError(err);\n }\n\n if (editable && this.getContent() !== this.lastContent) {\n this.syncContent(opts);\n this.lastContent = '';\n }\n }\n\n this.toggleEvents();\n },\n\n /**\n * get content from RTE\n * @return string\n */\n getContent() {\n const { activeRte } = this;\n const canGetRteContent = activeRte && typeof activeRte.getContent === 'function';\n\n return canGetRteContent ? activeRte.getContent() : this.getChildrenContainer().innerHTML;\n },\n\n /**\n * Merge content from the DOM to the model\n */\n syncContent(opts = {}) {\n const { model, rte, rteEnabled } = this;\n if (!rteEnabled && !opts.force) return;\n const content = this.getContent();\n const comps = model.components();\n const contentOpt = { fromDisable: 1, ...opts };\n model.set('content', '', contentOpt);\n\n // If there is a custom RTE the content is just baked staticly\n // inside 'content'\n if (rte.customRte) {\n comps.length && comps.reset(null, opts);\n model.set('content', content, contentOpt);\n } else {\n comps.resetFromString(content, opts);\n }\n },\n\n insertComponent(content, opts = {}) {\n const { model, el } = this;\n const doc = el.ownerDocument;\n const selection = doc.getSelection();\n\n if (selection?.rangeCount) {\n const range = selection.getRangeAt(0);\n const textNode = range.startContainer;\n const offset = range.startOffset;\n const textModel = getModel(textNode);\n const newCmps = [];\n\n if (textModel && textModel.is?.('textnode')) {\n const cmps = textModel.collection;\n cmps.forEach(cmp => {\n if (cmp === textModel) {\n const type = 'textnode';\n const cnt = cmp.get('content');\n newCmps.push({ type, content: cnt.slice(0, offset) });\n newCmps.push(content);\n newCmps.push({ type, content: cnt.slice(offset) });\n } else {\n newCmps.push(cmp);\n }\n });\n\n const result = newCmps.filter(Boolean);\n const index = result.indexOf(content);\n cmps.reset(result, opts);\n\n return cmps.at(index);\n }\n }\n\n return model.append(content, opts);\n },\n\n /**\n * Callback on input event\n * @param {Event} e\n */\n onInput() {\n const { em } = this;\n const evPfx = 'component';\n const ev = [`${evPfx}:update`, `${evPfx}:input`].join(' ');\n\n // Update toolbars\n em && em.trigger(ev, this.model);\n },\n\n /**\n * Isolate disable propagation method\n * @param {Event}\n * @private\n * */\n disablePropagation(e) {\n e.stopPropagation();\n },\n\n /**\n * Enable/Disable events\n * @param {Boolean} enable\n */\n toggleEvents(enable) {\n const { em, model, $el } = this;\n const mixins = { on, off };\n const method = enable ? 'on' : 'off';\n em.setEditing(enable ? this : 0);\n this.rteEnabled = !!enable;\n\n // The ownerDocument is from the frame\n var elDocs = [this.el.ownerDocument, document];\n mixins.off(elDocs, 'mousedown', this.onDisable);\n mixins[method](elDocs, 'mousedown', this.onDisable);\n em[method]('toolbar:run:before', this.onDisable);\n if (model) {\n model[method]('removed', this.onDisable);\n model.trigger(`rte:${enable ? 'enable' : 'disable'}`);\n }\n\n // Avoid closing edit mode on component click\n $el && $el.off('mousedown', this.disablePropagation);\n $el && $el[method]('mousedown', this.disablePropagation);\n\n // Fixes #2210 but use this also as a replacement\n // of this fix: bd7b804f3b46eb45b4398304b2345ce870f232d2\n if (this.config.draggableComponents) {\n let { el } = this;\n\n while (el) {\n el.draggable = enable ? !1 : !0;\n // Note: el.parentNode is sometimes null here\n el = el.parentNode;\n el && el.tagName == 'BODY' && (el = 0);\n }\n }\n },\n});\n","import ComponentView from './ComponentTextView';\n\nexport default ComponentView.extend({\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n\n // I need capturing instead of bubbling as bubbled clicks from other\n // children will execute the link event\n this.el.addEventListener('click', this.prevDef, true);\n\n return this;\n }\n});\n","import Component from './ComponentText';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'label';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n traits: ['id', 'title', 'for']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentLinkView from './ComponentLinkView';\n\nexport default ComponentLinkView.extend({\n tagName: 'span' // Avoid Firefox bug with label editing #2332\n});\n","import Component from './ComponentImage';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'video';\nconst yt = 'yt';\nconst vi = 'vi';\nconst ytnc = 'ytnc';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n videoId: '',\n void: 0,\n provider: 'so', // on change of provider, traits are switched\n ytUrl: 'https://www.youtube.com/embed/',\n ytncUrl: 'https://www.youtube-nocookie.com/embed/',\n viUrl: 'https://player.vimeo.com/video/',\n loop: 0,\n poster: '',\n muted: 0,\n autoplay: 0,\n controls: 1,\n color: '',\n list: '',\n rel: 1, // YT related videos\n modestbranding: 0, // YT modest branding\n sources: [],\n attributes: { allowfullscreen: 'allowfullscreen' }\n },\n\n initialize(o, opt) {\n this.em = opt.em;\n if (this.get('src')) this.parseFromSrc();\n this.updateTraits();\n this.listenTo(this, 'change:provider', this.updateTraits);\n this.listenTo(this, 'change:videoId change:provider', this.updateSrc);\n Component.prototype.initialize.apply(this, arguments);\n },\n\n /**\n * Update traits by provider\n * @private\n */\n updateTraits() {\n const prov = this.get('provider');\n let tagName = 'iframe';\n let traits;\n\n switch (prov) {\n case yt:\n case ytnc:\n traits = this.getYoutubeTraits();\n break;\n case vi:\n traits = this.getVimeoTraits();\n break;\n default:\n tagName = 'video';\n traits = this.getSourceTraits();\n }\n\n this.set({ tagName }, { silent: 1 }); // avoid break in view\n this.set({ traits });\n this.em.trigger('component:toggled');\n },\n\n /**\n * Set attributes by src string\n */\n parseFromSrc() {\n var prov = this.get('provider');\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n var videoId = uri.pathname.split('/').pop();\n this.set('videoId', videoId);\n qr.list && this.set('list', qr.list);\n if (qr.autoplay) this.set('autoplay', 1);\n if (qr.loop) this.set('loop', 1);\n if (parseInt(qr.controls) === 0) this.set('controls', 0);\n if (qr.color) this.set('color', qr.color);\n if (qr.rel === '0') this.set('rel', 0);\n if (qr.modestbranding === '1') this.set('modestbranding', 1);\n break;\n default:\n }\n },\n\n /**\n * Update src on change of video ID\n * @private\n */\n updateSrc() {\n const prov = this.get('provider');\n let src = '';\n\n switch (prov) {\n case yt:\n src = this.getYoutubeSrc();\n break;\n case ytnc:\n src = this.getYoutubeNoCookieSrc();\n break;\n case vi:\n src = this.getVimeoSrc();\n break;\n }\n\n this.set({ src });\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n var attr = Component.prototype.getAttrToHTML.apply(this, args);\n var prov = this.get('provider');\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n break;\n default:\n if (this.get('loop')) attr.loop = 'loop';\n if (this.get('autoplay')) attr.autoplay = 'autoplay';\n if (this.get('controls')) attr.controls = 'controls';\n }\n return attr;\n },\n\n // Listen provider change and switch traits, in TraitView listen traits change\n\n /**\n * Return the provider trait\n * @return {Object}\n * @private\n */\n getProviderTrait() {\n return {\n type: 'select',\n label: 'Provider',\n name: 'provider',\n changeProp: 1,\n options: [\n { value: 'so', name: 'HTML5 Source' },\n { value: yt, name: 'Youtube' },\n { value: ytnc, name: 'Youtube (no cookie)' },\n { value: vi, name: 'Vimeo' }\n ]\n };\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getSourceTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Source',\n name: 'src',\n placeholder: 'eg. ./media/video.mp4',\n changeProp: 1\n },\n {\n label: 'Poster',\n name: 'poster',\n placeholder: 'eg. ./media/image.jpg'\n // changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait()\n ];\n },\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getYoutubeTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. jNQXAC9IVRw',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait(),\n {\n type: 'checkbox',\n label: 'Related',\n name: 'rel',\n changeProp: 1\n },\n {\n type: 'checkbox',\n label: 'Modest',\n name: 'modestbranding',\n changeProp: 1\n }\n ];\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getVimeoTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. 123456789',\n changeProp: 1\n },\n {\n label: 'Color',\n name: 'color',\n placeholder: 'eg. FF0000',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait()\n ];\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getAutoplayTrait() {\n return {\n type: 'checkbox',\n label: 'Autoplay',\n name: 'autoplay',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getLoopTrait() {\n return {\n type: 'checkbox',\n label: 'Loop',\n name: 'loop',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getControlsTrait() {\n return {\n type: 'checkbox',\n label: 'Controls',\n name: 'controls',\n changeProp: 1\n };\n },\n\n /**\n * Returns url to youtube video\n * @return {string}\n * @private\n */\n getYoutubeSrc() {\n const id = this.get('videoId');\n let url = this.get('ytUrl');\n const list = this.get('list');\n url += id + (id.indexOf('?') < 0 ? '?' : '');\n url += list ? `&list=${list}` : '';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += !this.get('controls') ? '&controls=0&showinfo=0' : '';\n // Loop works only with playlist enabled\n // https://stackoverflow.com/questions/25779966/youtube-iframe-loop-doesnt-work\n url += this.get('loop') ? `&loop=1&playlist=${id}` : '';\n url += this.get('rel') ? '' : '&rel=0';\n url += this.get('modestbranding') ? '&modestbranding=1' : '';\n return url;\n },\n\n /**\n * Returns url to youtube no cookie video\n * @return {string}\n * @private\n */\n getYoutubeNoCookieSrc() {\n let url = this.getYoutubeSrc();\n url = url.replace(this.get('ytUrl'), this.get('ytncUrl'));\n return url;\n },\n\n /**\n * Returns url to vimeo video\n * @return {string}\n * @private\n */\n getVimeoSrc() {\n var url = this.get('viUrl');\n url += this.get('videoId') + '?';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += this.get('loop') ? '&loop=1' : '';\n url += !this.get('controls') ? '&title=0&portrait=0&badge=0' : '';\n url += this.get('color') ? '&color=' + this.get('color') : '';\n return url;\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n let result = '';\n const { tagName, src } = el;\n const isYtProv = /youtube\\.com\\/embed/.test(src);\n const isYtncProv = /youtube-nocookie\\.com\\/embed/.test(src);\n const isViProv = /player\\.vimeo\\.com\\/video/.test(src);\n const isExtProv = isYtProv || isYtncProv || isViProv;\n if (\n toLowerCase(tagName) == type ||\n (toLowerCase(tagName) == 'iframe' && isExtProv)\n ) {\n result = { type: 'video' };\n if (src) result.src = src;\n if (isExtProv) {\n if (isYtProv) result.provider = yt;\n else if (isYtncProv) result.provider = ytnc;\n else if (isViProv) result.provider = vi;\n }\n }\n return result;\n }\n }\n);\n","import ComponentView from './ComponentImageView';\nimport OComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n OComponentView.prototype.initialize.apply(this, arguments);\n const { model } = this;\n const props = [\n 'loop',\n 'autoplay',\n 'controls',\n 'color',\n 'rel',\n 'modestbranding',\n 'poster'\n ];\n const events = props.map(p => `change:${p}`).join(' ');\n this.listenTo(model, 'change:provider', this.updateProvider);\n this.listenTo(model, 'change:src', this.updateSrc);\n this.listenTo(model, events, this.updateVideo);\n },\n\n /**\n * Rerender on update of the provider\n * @private\n */\n updateProvider() {\n var prov = this.model.get('provider');\n this.el.innerHTML = '';\n this.el.appendChild(this.renderByProvider(prov));\n },\n\n /**\n * Update the source of the video\n * @private\n */\n updateSrc() {\n const { model, videoEl } = this;\n if (!videoEl) return;\n const prov = model.get('provider');\n let src = model.get('src');\n\n switch (prov) {\n case 'yt':\n src = model.getYoutubeSrc();\n break;\n case 'ytnc':\n src = model.getYoutubeNoCookieSrc();\n break;\n case 'vi':\n src = model.getVimeoSrc();\n break;\n }\n\n videoEl.src = src;\n },\n\n /**\n * Update video parameters\n * @private\n */\n updateVideo() {\n var prov = this.model.get('provider');\n var videoEl = this.videoEl;\n var md = this.model;\n switch (prov) {\n case 'yt':\n case 'ytnc':\n case 'vi':\n this.model.trigger('change:videoId');\n break;\n default:\n videoEl.loop = md.get('loop');\n videoEl.autoplay = md.get('autoplay');\n videoEl.controls = md.get('controls');\n videoEl.poster = md.get('poster');\n }\n },\n\n renderByProvider(prov) {\n var videoEl;\n switch (prov) {\n case 'yt':\n videoEl = this.renderYoutube();\n break;\n case 'ytnc':\n videoEl = this.renderYoutubeNoCookie();\n break;\n case 'vi':\n videoEl = this.renderVimeo();\n break;\n default:\n videoEl = this.renderSource();\n }\n this.videoEl = videoEl;\n return videoEl;\n },\n\n renderSource() {\n var el = document.createElement('video');\n el.src = this.model.get('src');\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutube() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutubeNoCookie() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeNoCookieSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderVimeo() {\n var el = document.createElement('iframe');\n el.src = this.model.getVimeoSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n initVideoEl(el) {\n el.className = this.ppfx + 'no-pointer';\n el.style.height = '100%';\n el.style.width = '100%';\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n var prov = this.model.get('provider');\n this.el.appendChild(this.renderByProvider(prov));\n this.updateVideo();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'script';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n draggable: false,\n layerable: false\n }\n },\n {\n isComponent(el) {\n if (toLowerCase(el.tagName) == type) {\n const result = { type };\n\n if (el.src) {\n result.src = el.src;\n result.onload = el.onload;\n }\n\n return result;\n }\n }\n }\n);\n","import ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'script',\n\n events: {},\n\n render() {\n const { model, em } = this;\n const src = model.get('src');\n const scrCnt = em && em.get('scriptCount');\n const scriptCount = scrCnt ? scrCnt : 0;\n let content = '';\n\n // If it's an external script\n if (src) {\n const onload = model.get('onload');\n const svar = `script${scriptCount}`;\n const svarNext = `script${scriptCount + 1}`;\n const svarFn = `${svar}Start`;\n const svarNextFn = `${svarNext}Start`;\n // Load multiple external scripts in the correct order\n content = `\n var ${svar} = document.createElement('script');\n ${svar}.onload = function() {\n ${onload ? `${onload}();\\n` : ''}\n typeof ${svarNextFn} == 'function' && ${svarNextFn}();\n };\n ${svar}.src = '${src}';\n function ${svarFn}() { document.body.appendChild(${svar}); };\n ${!scriptCount ? `${svarFn}();` : ''}\n `;\n em && em.set('scriptCount', scriptCount + 1);\n } else {\n content = model.__innerHTML();\n }\n\n this.el.innerHTML = content;\n this.postRender();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'svg';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n highlightable: 0,\n resizable: { ratioDefault: 1 }\n },\n\n getName() {\n let name = this.get('tagName');\n let customName = this.get('custom-name');\n name = name.charAt(0).toUpperCase() + name.slice(1);\n return customName || name;\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import Component from './ComponentSvg';\n\n/**\n * Component for inner SVG elements\n */\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n selectable: false,\n hoverable: false,\n layerable: false\n }\n },\n {\n isComponent: (el, opts = {}) => !!opts.inSvg\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n _createElement: function(tagName) {\n return document.createElementNS('http://www.w3.org/2000/svg', tagName);\n }\n});\n","import Component from './Component';\nimport { escape } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName: '',\n droppable: false,\n layerable: false,\n selectable: false,\n editable: true\n },\n\n toHTML() {\n const parent = this.parent();\n const cnt = this.get('content');\n return parent && parent.is('script') ? cnt : escape(cnt);\n }\n },\n {\n isComponent(el) {\n var result = '';\n if (el.nodeType === 3) {\n result = {\n type: 'textnode',\n content: el.textContent\n };\n }\n return result;\n }\n }\n);\n","import Component from './ComponentTextNode';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults\n },\n\n toHTML() {\n return ``;\n }\n },\n {\n isComponent(el) {\n if (el.nodeType == 8) {\n return {\n tagName: 'NULL',\n type: 'comment',\n content: el.textContent\n };\n }\n }\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n initialize() {\n ComponentView.prototype.initialize.apply(this, arguments);\n },\n\n // Clear methods used on Nodes with attributes\n _setAttributes() {},\n renderAttributes() {},\n updateStatus() {},\n updateClasses() {},\n setAttribute() {},\n updateAttributes() {},\n initClasses() {},\n initComponents() {},\n delegateEvents() {},\n\n _createElement() {\n return document.createTextNode('');\n },\n\n render() {\n const { model, el } = this;\n if (model.opt.temporary) return this;\n el.textContent = model.get('content');\n return this;\n }\n});\n","import ComponentView from './ComponentTextNodeView';\n\nexport default ComponentView.extend({\n _createElement() {\n return document.createComment(this.model.get('content'));\n }\n});\n","import Component from './Component';\n\nexport default class ComponentWrapper extends Component {\n defaults() {\n return {\n ...Component.getDefaults(),\n tagName: 'body',\n removable: false,\n copyable: false,\n draggable: false,\n components: [],\n traits: [],\n stylable: [\n 'background',\n 'background-color',\n 'background-image',\n 'background-repeat',\n 'background-attachment',\n 'background-position',\n 'background-size',\n ],\n };\n }\n\n __postAdd() {\n const um = this.em && this.em.get('UndoManager');\n um && !this.__hasUm && um.add(this);\n return Component.prototype.__postAdd.call(this, arguments);\n }\n\n __postRemove() {\n const um = this.em && this.em.get('UndoManager');\n um && um.remove(this);\n return Component.prototype.__postRemove.call(this, arguments);\n }\n}\n\nComponentWrapper.isComponent = () => false;\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'iframe';\n\nexport default Component.extend(\n {\n defaults() {\n return {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n resizable: true,\n traits: ['id', 'title', 'src'],\n attributes: { frameborder: '0' }\n };\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\nimport { createEl, find, attrUp } from 'utils/dom';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n initialize(...args) {\n ComponentView.prototype.initialize.apply(this, args);\n this.listenTo(this.model, 'change:attributes:src', this.updateSrc);\n },\n\n updateSrc() {\n const frame = find(this.el, 'iframe')[0];\n frame && attrUp(frame, { src: this.__getSrc() });\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n const frame = createEl('iframe', {\n class: `${this.ppfx}no-pointer`,\n style: 'width: 100%; height: 100%; border: none',\n src: this.__getSrc()\n });\n this.el.appendChild(frame);\n return this;\n },\n\n __getSrc() {\n return this.model.getAttributes().src || '';\n }\n});\n","/**\n * With this module is possible to manage components inside the canvas. You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/dom_components/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * domComponents: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('component:create', () => { ... });\n *\n * // Use the API\n * const cmp = editor.Components;\n * cmp.addType(...);\n * ```\n *\n * ## Available Events\n * * `component:create` - Component is created (only the model, is not yet mounted in the canvas), called after the init() method\n * * `component:mount` - Component is mounted to an element and rendered in canvas\n * * `component:add` - Triggered when a new component is added to the editor, the model is passed as an argument to the callback\n * * `component:remove` - Triggered when a component is removed, the model is passed as an argument to the callback\n * * `component:remove:before` - Triggered before the remove of the component, the model, remove function (if aborted via options, with this function you can complete the remove) and options (use options.abort = true to prevent remove), are passed as arguments to the callback\n * * `component:clone` - Triggered when a component is cloned, the new model is passed as an argument to the callback\n * * `component:update` - Triggered when a component is updated (moved, styled, etc.), the model is passed as an argument to the callback\n * * `component:update:{propertyName}` - Listen any property change, the model is passed as an argument to the callback\n * * `component:styleUpdate` - Triggered when the style of the component is updated, the model is passed as an argument to the callback\n * * `component:styleUpdate:{propertyName}` - Listen for a specific style property change, the model is passed as an argument to the callback\n * * `component:selected` - New component selected, the selected model is passed as an argument to the callback\n * * `component:deselected` - Component deselected, the deselected model is passed as an argument to the callback\n * * `component:toggled` - Component selection changed, toggled model is passed as an argument to the callback\n * * `component:type:add` - New component type added, the new type is passed as an argument to the callback\n * * `component:type:update` - Component type updated, the updated type is passed as an argument to the callback\n * * `component:drag:start` - Component drag started. Passed an object, to the callback, containing the `target` (component to drag), `parent` (parent of the component) and `index` (component index in the parent)\n * * `component:drag` - During component drag. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the current pointer\n * * `component:drag:end` - Component drag ended. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the final pointer\n *\n * ## Methods\n * * [getWrapper](#getwrapper)\n * * [getComponents](#getcomponents)\n * * [addComponent](#addcomponent)\n * * [clear](#clear)\n * * [load](#load)\n * * [store](#store)\n * * [addType](#addtype)\n * * [getType](#gettype)\n * * [getTypes](#gettypes)\n * * [render](#render)\n *\n * @module Components\n */\nimport { isEmpty, isObject, isArray, isFunction, isString, result, debounce } from 'underscore';\nimport defaults from './config/config';\nimport Component, { keyUpdate, keyUpdateInside } from './model/Component';\nimport Components from './model/Components';\nimport ComponentView from './view/ComponentView';\nimport ComponentWrapperView from './view/ComponentWrapperView';\nimport ComponentsView from './view/ComponentsView';\nimport ComponentTableCell from './model/ComponentTableCell';\nimport ComponentTableCellView from './view/ComponentTableCellView';\nimport ComponentTableRow from './model/ComponentTableRow';\nimport ComponentTableRowView from './view/ComponentTableRowView';\nimport ComponentTable from './model/ComponentTable';\nimport ComponentTableView from './view/ComponentTableView';\nimport ComponentTableHead from './model/ComponentTableHead';\nimport ComponentTableHeadView from './view/ComponentTableHeadView';\nimport ComponentTableBody from './model/ComponentTableBody';\nimport ComponentTableBodyView from './view/ComponentTableBodyView';\nimport ComponentTableFoot from './model/ComponentTableFoot';\nimport ComponentTableFootView from './view/ComponentTableFootView';\nimport ComponentMap from './model/ComponentMap';\nimport ComponentMapView from './view/ComponentMapView';\nimport ComponentLink from './model/ComponentLink';\nimport ComponentLinkView from './view/ComponentLinkView';\nimport ComponentLabel from './model/ComponentLabel';\nimport ComponentLabelView from './view/ComponentLabelView';\nimport ComponentVideo from './model/ComponentVideo';\nimport ComponentVideoView from './view/ComponentVideoView';\nimport ComponentImage from './model/ComponentImage';\nimport ComponentImageView from './view/ComponentImageView';\nimport ComponentScript from './model/ComponentScript';\nimport ComponentScriptView from './view/ComponentScriptView';\nimport ComponentSvg from './model/ComponentSvg';\nimport ComponentSvgIn from './model/ComponentSvgIn';\nimport ComponentSvgView from './view/ComponentSvgView';\nimport ComponentComment from './model/ComponentComment';\nimport ComponentCommentView from './view/ComponentCommentView';\nimport ComponentTextNode from './model/ComponentTextNode';\nimport ComponentTextNodeView from './view/ComponentTextNodeView';\nimport ComponentText from './model/ComponentText';\nimport ComponentTextView from './view/ComponentTextView';\nimport ComponentWrapper from './model/ComponentWrapper';\nimport ComponentFrame from './model/ComponentFrame';\nimport ComponentFrameView from './view/ComponentFrameView';\n\nexport default () => {\n var c = {};\n let em;\n const componentsById = {};\n\n var component, componentView;\n var componentTypes = [\n {\n id: 'cell',\n model: ComponentTableCell,\n view: ComponentTableCellView,\n },\n {\n id: 'row',\n model: ComponentTableRow,\n view: ComponentTableRowView,\n },\n {\n id: 'table',\n model: ComponentTable,\n view: ComponentTableView,\n },\n {\n id: 'thead',\n model: ComponentTableHead,\n view: ComponentTableHeadView,\n },\n {\n id: 'tbody',\n model: ComponentTableBody,\n view: ComponentTableBodyView,\n },\n {\n id: 'tfoot',\n model: ComponentTableFoot,\n view: ComponentTableFootView,\n },\n {\n id: 'map',\n model: ComponentMap,\n view: ComponentMapView,\n },\n {\n id: 'link',\n model: ComponentLink,\n view: ComponentLinkView,\n },\n {\n id: 'label',\n model: ComponentLabel,\n view: ComponentLabelView,\n },\n {\n id: 'video',\n model: ComponentVideo,\n view: ComponentVideoView,\n },\n {\n id: 'image',\n model: ComponentImage,\n view: ComponentImageView,\n },\n {\n id: 'script',\n model: ComponentScript,\n view: ComponentScriptView,\n },\n {\n id: 'svg-in',\n model: ComponentSvgIn,\n view: ComponentSvgView,\n },\n {\n id: 'svg',\n model: ComponentSvg,\n view: ComponentSvgView,\n },\n {\n id: 'iframe',\n model: ComponentFrame,\n view: ComponentFrameView,\n },\n {\n id: 'comment',\n model: ComponentComment,\n view: ComponentCommentView,\n },\n {\n id: 'textnode',\n model: ComponentTextNode,\n view: ComponentTextNodeView,\n },\n {\n id: 'text',\n model: ComponentText,\n view: ComponentTextView,\n },\n {\n id: 'wrapper',\n model: ComponentWrapper,\n view: ComponentWrapperView,\n },\n {\n id: 'default',\n model: Component,\n view: ComponentView,\n },\n ];\n\n return {\n Component,\n\n Components,\n\n ComponentsView,\n\n componentTypes,\n\n componentsById,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'DomComponents',\n\n /**\n * Returns config\n * @return {Object} Config object\n * @private\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.storeHtml) keys.push('html');\n if (smc.storeComponents) keys.push('components');\n return keys;\n },\n\n /**\n * Initialize module. Called on a new instance of the editor with configurations passed\n * inside 'domComponents' field\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n em = c.em;\n this.em = em;\n\n if (em) {\n c.components = em.config.components || c.components;\n }\n\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load dependencies\n if (em) {\n c.modal = em.get('Modal') || '';\n c.am = em.get('AssetManager') || '';\n em.get('Parser').compTypes = componentTypes;\n em.on('change:componentHovered', this.componentHovered, this);\n\n const selected = em.get('selected');\n em.listenTo(selected, 'add', (sel, c, opts) => this.selectAdd(selected.getComponent(sel), opts));\n em.listenTo(selected, 'remove', (sel, c, opts) => this.selectRemove(selected.getComponent(sel), opts));\n }\n\n if (em.get('hasPages')) {\n c.components = '';\n }\n\n return this;\n },\n\n /**\n * On load callback\n * @private\n */\n onLoad() {\n c.components && this.setComponents(c.components, { silent: 1 });\n },\n\n /**\n * Load components from the passed object, if the object is empty will try to fetch them\n * autonomously from the selected storage\n * The fetched data will be added to the collection\n * @param {Object} data Object of data to load\n * @return {Object} Loaded data\n */\n load(data = '') {\n const { em } = this;\n let result = '';\n\n if (!data && c.stm) {\n data = c.em.getCacheLoad();\n }\n\n const { components, html } = data;\n\n if (components) {\n if (isObject(components) || isArray(components)) {\n result = components;\n } else {\n try {\n result = JSON.parse(components);\n } catch (err) {\n em && em.logError(err);\n }\n }\n } else if (html) {\n result = html;\n }\n\n const isObj = result && result.constructor === Object;\n\n if ((result && result.length) || isObj) {\n this.clear();\n\n // If the result is an object I consider it the wrapper\n if (isObj) {\n this.getWrapper().set(result);\n } else {\n this.getComponents().add(result);\n }\n }\n\n return result;\n },\n\n /**\n * Store components on 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 || this.em.get('hasPages')) {\n return {};\n }\n\n var obj = {};\n var keys = this.storageKey();\n\n if (keys.indexOf('html') >= 0) {\n obj.html = c.em.getHtml();\n }\n\n if (keys.indexOf('components') >= 0) {\n // const storeWrap = (em && !em.getConfig('avoidInlineStyle')) || c.storeWrapper;\n const storeWrap = c.storeWrapper;\n const toStore = storeWrap ? this.getWrapper() : this.getComponents();\n obj.components = JSON.stringify(toStore);\n }\n\n if (!noStore) {\n c.stm.store(obj);\n }\n\n return obj;\n },\n\n /**\n * Returns privately the main wrapper\n * @return {Object}\n * @private\n */\n getComponent() {\n const sel = this.em.get('PageManager').getSelected();\n const frame = sel && sel.getMainFrame();\n return frame && frame.getComponent();\n },\n\n /**\n * Returns root component inside the canvas. Something like `` inside HTML page\n * The wrapper doesn't differ from the original Component Model\n * @return {Component} Root Component\n * @example\n * // Change background of the wrapper and set some attribute\n * var wrapper = cmp.getWrapper();\n * wrapper.set('style', {'background-color': 'red'});\n * wrapper.set('attributes', {'title': 'Hello!'});\n */\n getWrapper() {\n return this.getComponent();\n },\n\n /**\n * Returns wrapper's children collection. Once you have the collection you can\n * add other Components(Models) inside. Each component can have several nested\n * components inside and you can nest them as more as you wish.\n * @return {Components} Collection of components\n * @example\n * // Let's add some component\n * var wrapperChildren = cmp.getComponents();\n * var comp1 = wrapperChildren.add({\n * style: { 'background-color': 'red'}\n * });\n * var comp2 = wrapperChildren.add({\n * tagName: 'span',\n * attributes: { title: 'Hello!'}\n * });\n * // Now let's add an other one inside first component\n * // First we have to get the collection inside. Each\n * // component has 'components' property\n * var comp1Children = comp1.get('components');\n * // Procede as before. You could also add multiple objects\n * comp1Children.add([\n * { style: { 'background-color': 'blue'}},\n * { style: { height: '100px', width: '100px'}}\n * ]);\n * // Remove comp2\n * wrapperChildren.remove(comp2);\n */\n getComponents() {\n const wrp = this.getWrapper();\n return wrp && wrp.get('components');\n },\n\n /**\n * Add new components to the wrapper's children. It's the same\n * as 'cmp.getComponents().add(...)'\n * @param {Object|Component|Array} component Component/s to add\n * @param {string} [component.tagName='div'] Tag name\n * @param {string} [component.type=''] Type of the component. Available: ''(default), 'text', 'image'\n * @param {boolean} [component.removable=true] If component is removable\n * @param {boolean} [component.draggable=true] If is possible to move the component around the structure\n * @param {boolean} [component.droppable=true] If is possible to drop inside other components\n * @param {boolean} [component.badgable=true] If the badge is visible when the component is selected\n * @param {boolean} [component.stylable=true] If is possible to style component\n * @param {boolean} [component.copyable=true] If is possible to copy&paste the component\n * @param {string} [component.content=''] String inside component\n * @param {Object} [component.style={}] Style object\n * @param {Object} [component.attributes={}] Attribute object\n * @param {Object} opt the options object to be used by the [Components.add]{@link getComponents} method\n * @return {Component|Array} Component/s added\n * @example\n * // Example of a new component with some extra property\n * var comp1 = cmp.addComponent({\n * tagName: 'div',\n * removable: true, // Can't remove it\n * draggable: true, // Can't move it\n * copyable: true, // Disable copy/past\n * content: 'Content text', // Text inside component\n * style: { color: 'red'},\n * attributes: { title: 'here' }\n * });\n */\n addComponent(component, opt = {}) {\n return this.getComponents().add(component, opt);\n },\n\n /**\n * Render and returns wrapper element with all components inside.\n * Once the wrapper is rendered, and it's what happens when you init the editor,\n * the all new components will be added automatically and property changes are all\n * updated immediately\n * @return {HTMLElement}\n */\n render() {\n return componentView.render().el;\n },\n\n /**\n * Remove all components\n * @return {this}\n */\n clear(opts = {}) {\n this.getComponents()\n .map(i => i)\n .forEach(i => i.remove(opts));\n return this;\n },\n\n /**\n * Set components\n * @param {Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the {@link addComponent} method\n * @return {this}\n * @private\n */\n setComponents(components, opt = {}) {\n this.clear(opt).addComponent(components, opt);\n },\n\n /**\n * Add new component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @param {Object} methods Component methods\n * @return {this}\n */\n addType(type, methods) {\n const { em } = this;\n const { model = {}, view = {}, isComponent, extend, extendView, extendFn = [], extendFnView = [] } = methods;\n const compType = this.getType(type);\n const extendType = this.getType(extend);\n const extendViewType = this.getType(extendView);\n const typeToExtend = extendType ? extendType : compType ? compType : this.getType('default');\n const modelToExt = typeToExtend.model;\n const viewToExt = extendViewType ? extendViewType.view : typeToExtend.view;\n\n // Function for extending source object methods\n const getExtendedObj = (fns, target, srcToExt) =>\n fns.reduce((res, next) => {\n const fn = target[next];\n const parentFn = srcToExt.prototype[next];\n if (fn && parentFn) {\n res[next] = function (...args) {\n parentFn.bind(this)(...args);\n fn.bind(this)(...args);\n };\n }\n return res;\n }, {});\n\n // If the model/view is a simple object I need to extend it\n if (typeof model === 'object') {\n methods.model = modelToExt.extend(\n {\n ...model,\n ...getExtendedObj(extendFn, model, modelToExt),\n defaults: {\n ...(result(modelToExt.prototype, 'defaults') || {}),\n ...(result(model, 'defaults') || {}),\n },\n },\n {\n isComponent: compType && !extendType && !isComponent ? modelToExt.isComponent : isComponent || (() => 0),\n }\n );\n }\n\n if (typeof view === 'object') {\n methods.view = viewToExt.extend({\n ...view,\n ...getExtendedObj(extendFnView, view, viewToExt),\n });\n }\n\n if (compType) {\n compType.model = methods.model;\n compType.view = methods.view;\n } else {\n methods.id = type;\n componentTypes.unshift(methods);\n }\n\n const event = `component:type:${compType ? 'update' : 'add'}`;\n em && em.trigger(event, compType || methods);\n\n return this;\n },\n\n /**\n * Get component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @return {Object} Component type definition, eg. `{ model: ..., view: ... }`\n */\n getType(type) {\n var df = componentTypes;\n\n for (var it = 0; it < df.length; it++) {\n var dfId = df[it].id;\n if (dfId == type) {\n return df[it];\n }\n }\n return;\n },\n\n /**\n * Remove component type\n * @param {string} type Component ID\n * @returns {Object|undefined} Removed component type, undefined otherwise\n */\n removeType(id) {\n const df = componentTypes;\n const type = this.getType(id);\n if (!type) return;\n const index = df.indexOf(type);\n df.splice(index, 1);\n return type;\n },\n\n /**\n * Return the array of all types\n * @return {Array}\n */\n getTypes() {\n return componentTypes;\n },\n\n selectAdd(component, opts = {}) {\n if (component) {\n component.set({\n status: 'selected',\n });\n ['component:selected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n selectRemove(component, opts = {}) {\n if (component) {\n const { em } = this;\n component.set({\n status: '',\n state: '',\n });\n ['component:deselected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n /**\n * Triggered when the component is hovered\n * @private\n */\n componentHovered() {\n const em = c.em;\n const model = em.get('componentHovered');\n const previous = em.previous('componentHovered');\n const state = 'hovered';\n\n // Deselect the previous component\n previous &&\n previous.get('status') == state &&\n previous.set({\n status: '',\n state: '',\n });\n\n model && isEmpty(model.get('status')) && model.set('status', state);\n },\n\n getShallowWrapper() {\n let { shallow, em } = this;\n\n if (!shallow && em) {\n const shallowEm = em.get('shallow');\n if (!shallowEm) return;\n const domc = shallowEm.get('DomComponents');\n domc.componentTypes = this.componentTypes;\n shallow = domc.getWrapper();\n if (shallow) {\n const events = [keyUpdate, keyUpdateInside].join(' ');\n shallow.on(\n events,\n debounce(() => shallow.components(''), 100)\n );\n }\n this.shallow = shallow;\n }\n\n return shallow;\n },\n\n /**\n * Check if the component can be moved inside another.\n * @param {[Component]} target The target Component is the one that is supposed to receive the source one.\n * @param {[Component]|String} source The source can be another Component or an HTML string.\n * @param {Number} [index] Index position. If not specified, the check will perform against appending the source to target.\n * @returns {Object} Object containing the `result` (Boolean), `source`, `target` (as Components), and a `reason` (Number) with these meanings:\n * * `0` - Invalid source. This is a default value and should be ignored in case the `result` is true.\n * * `1` - Source doesn't accept target as destination.\n * * `2` - Target doesn't accept source.\n * @private\n */\n canMove(target, source, index) {\n const at = index || index === 0 ? index : null;\n const result = {\n result: false,\n reason: 0,\n target,\n source: null,\n };\n\n if (!source) return result;\n\n let srcModel = source?.toHTML ? source : null;\n\n if (!srcModel) {\n const wrapper = this.getShallowWrapper();\n srcModel = wrapper?.append(source)[0];\n }\n\n result.source = srcModel;\n\n if (!srcModel) return result;\n\n // Check if the source is draggable in the target\n let draggable = srcModel.get('draggable');\n\n if (isFunction(draggable)) {\n draggable = !!draggable(srcModel, target, at);\n } else {\n const el = target.getEl();\n draggable = isArray(draggable) ? draggable.join(',') : draggable;\n draggable = isString(draggable) ? el?.matches(draggable) : draggable;\n }\n\n if (!draggable) return { ...result, reason: 1 };\n\n // Check if the target accepts the source\n let droppable = target.get('droppable');\n\n if (isFunction(droppable)) {\n droppable = !!droppable(srcModel, target, at);\n } else {\n if (droppable === false && target.isInstanceOf('text') && srcModel.get('textable')) {\n droppable = true;\n } else {\n const el = srcModel.getEl();\n droppable = isArray(droppable) ? droppable.join(',') : droppable;\n droppable = isString(droppable) ? el?.matches(droppable) : droppable;\n }\n }\n\n if (!droppable) return { ...result, reason: 2 };\n\n return { ...result, result: true };\n },\n\n allById() {\n return componentsById;\n },\n\n getById(id) {\n return componentsById[id] || null;\n },\n\n destroy() {\n const all = this.allById();\n Object.keys(all).forEach(id => all[id] && all[id].remove());\n componentView && componentView.remove();\n [c, em, componentsById, component, componentView].forEach(i => (i = {}));\n this.em = {};\n },\n };\n};\n","import { Model } from 'common';\nimport { isUndefined } from 'underscore';\n\n/**\n * @typedef Trait\n * @property {String} id Trait id, eg. `my-trait-id`.\n * @property {String} type Trait type, defines how the trait should rendered. Possible values: `text` (default), `number`, `select`, `checkbox`, `color`, `button`\n * @property {String} label The trait label to show for the rendered trait.\n * @property {String} name The name of the trait used as a key for the attribute/property. By default, the name is used as attribute name or property in case `changeProp` in enabled.\n * @property {Boolean} changeProp If `true` the trait value is applied on component\n *\n */\nexport default class Trait extends Model {\n initialize() {\n const { target, name, changeProp } = this.attributes;\n !this.get('id') && this.set('id', name);\n\n if (target) {\n this.target = target;\n this.unset('target');\n const targetEvent = changeProp ? `change:${name}` : `change:attributes:${name}`;\n this.listenTo(target, targetEvent, this.targetUpdated);\n }\n }\n\n /**\n * Get the trait id.\n * @returns {String}\n */\n getId() {\n return this.get('id');\n }\n\n /**\n * Get the trait type.\n * @returns {String}\n */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get the trait name.\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Get the trait label.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.locale=true] Use the locale string from i18n module.\n * @returns {String}\n */\n getLabel(opts = {}) {\n const { locale = true } = opts;\n const id = this.getId();\n const name = this.get('label') || this.getName();\n return (locale && this.em?.t(`traitManager.traits.labels.${id}`)) || name;\n }\n\n /**\n * Get the trait value.\n * The value is taken from component attributes by default or from properties if the trait has the `changeProp` enabled.\n * @returns {any}\n */\n getValue() {\n return this.getTargetValue();\n }\n\n /**\n * Update the trait value.\n * The value is applied on component attributes by default or on properties if the trait has the `changeProp` enabled.\n * @param {any} value Value of the trait.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.partial] If `true` the update won't be considered complete (not stored in UndoManager).\n */\n setValue(value, opts = {}) {\n const valueOpts = {};\n\n if (opts.partial) {\n valueOpts.avoidStore = true;\n }\n\n this.setTargetValue(value, valueOpts);\n\n if (opts.partial === false) {\n this.setTargetValue('');\n this.setTargetValue(value);\n }\n }\n\n props() {\n return this.attributes;\n }\n\n targetUpdated() {\n const value = this.getTargetValue();\n this.set({ value }, { fromTarget: 1 });\n this.em?.trigger('trait:update', {\n trait: this,\n component: this.target,\n });\n }\n\n getTargetValue() {\n const name = this.get('name');\n const target = this.target;\n let value;\n\n if (this.get('changeProp')) {\n value = target.get(name);\n } else {\n value = target.getAttributes()[name];\n }\n\n return !isUndefined(value) ? value : '';\n }\n\n setTargetValue(value, opts = {}) {\n const target = this.target;\n const name = this.get('name');\n if (isUndefined(value)) return;\n let valueToSet = value;\n\n if (value === 'false') {\n valueToSet = false;\n } else if (value === 'true') {\n valueToSet = true;\n }\n\n if (this.get('changeProp')) {\n target.set(name, valueToSet, opts);\n } else {\n const attrs = { ...target.get('attributes') };\n attrs[name] = valueToSet;\n target.set('attributes', attrs, opts);\n }\n }\n\n setValueFromInput(value, final = 1, opts = {}) {\n const toSet = { value };\n this.set(toSet, { ...opts, avoidStore: 1 });\n\n // Have to trigger the change\n if (final) {\n this.set('value', '', opts);\n this.set(toSet, opts);\n }\n }\n\n getInitValue() {\n const target = this.target;\n const name = this.get('name');\n let value;\n\n if (target) {\n const attrs = target.get('attributes');\n value = this.get('changeProp') ? target.get(name) : attrs[name];\n }\n\n return value || this.get('value') || this.get('default');\n }\n}\n\nTrait.prototype.defaults = {\n type: 'text',\n label: '',\n name: '',\n min: '',\n max: '',\n unit: '',\n step: 1,\n value: '',\n target: '',\n default: '',\n placeholder: '',\n changeProp: 0,\n options: [],\n};\n","import { Collection } from 'common';\nimport { isString, isArray } from 'underscore';\nimport Trait from './Trait';\nimport TraitFactory from './TraitFactory';\n\nexport default class Traits extends Collection {\n initialize(coll, options = {}) {\n this.em = options.em;\n this.listenTo(this, 'add', this.handleAdd);\n this.listenTo(this, 'reset', this.handleReset);\n }\n\n handleReset(coll, { previousModels = [] } = {}) {\n previousModels.forEach(model => model.trigger('remove'));\n }\n\n handleAdd(model) {\n model.em = this.em;\n const target = this.target;\n\n if (target) {\n model.target = target;\n }\n }\n\n setTarget(target) {\n this.target = target;\n }\n\n add(models, opt) {\n const em = this.em;\n\n // Use TraitFactory if necessary\n if (isString(models) || isArray(models)) {\n const tm = em && em.get && em.get('TraitManager');\n const tmOpts = tm && tm.getConfig();\n const tf = TraitFactory(tmOpts);\n\n if (isString(models)) {\n models = [models];\n }\n\n for (var i = 0, len = models.length; i < len; i++) {\n const str = models[i];\n const model = isString(str) ? tf.build(str)[0] : str;\n model.target = this.target;\n models[i] = model;\n }\n }\n\n return Collection.prototype.add.apply(this, [models, opt]);\n }\n}\n\nTraits.prototype.model = Trait;\n","export default (config = {}) => ({\n /**\n * Build props object by their name\n * @param {Array|string} props Array of properties name\n * @return {Array}\n */\n build(props) {\n const objs = [];\n\n if (typeof props === 'string') props = [props];\n\n for (let i = 0; i < props.length; i++) {\n const obj = {};\n const prop = props[i];\n obj.name = prop;\n\n switch (prop) {\n case 'target':\n obj.type = 'select';\n obj.default = false;\n obj.options = config.optionsTarget;\n break;\n }\n\n objs.push(obj);\n }\n\n return objs;\n }\n});\n","import {\n isUndefined,\n isFunction,\n isArray,\n isEmpty,\n isBoolean,\n has,\n isString,\n forEach,\n result,\n bindAll,\n keys,\n} from 'underscore';\nimport { shallowDiff, capitalize, isEmptyObj, isObject, toLowerCase } from 'utils/mixins';\nimport Styleable from 'domain_abstract/model/Styleable';\nimport { Model } from 'backbone';\nimport Components from './Components';\nimport Selector from 'selector_manager/model/Selector';\nimport Selectors from 'selector_manager/model/Selectors';\nimport Traits from 'trait_manager/model/Traits';\n\nconst escapeRegExp = str => {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\nconst avoidInline = em => em && em.getConfig('avoidInlineStyle');\n\nexport const eventDrag = 'component:drag';\nexport const keySymbols = '__symbols';\nexport const keySymbol = '__symbol';\nexport const keySymbolOvrd = '__symbol_ovrd';\nexport const keyUpdate = 'component:update';\nexport const keyUpdateInside = `${keyUpdate}-inside`;\n\n/**\n * The Component object represents a single node of our template structure, so when you update its properties the changes are\n * immediately reflected on the canvas and in the code to export (indeed, when you ask to export the code we just go through all\n * the tree of nodes).\n * An example on how to update properties:\n * ```js\n * component.set({\n * tagName: 'span',\n * attributes: { ... },\n * removable: false,\n * });\n * component.get('tagName');\n * // -> 'span'\n * ```\n *\n * [Component]: component.html\n *\n * @typedef Component\n * @property {String} [type=''] Component type, eg. `text`, `image`, `video`, etc.\n * @property {String} [tagName='div'] HTML tag of the component, eg. `span`. Default: `div`\n * @property {Object} [attributes={}] Key-value object of the component's attributes, eg. `{ title: 'Hello' }` Default: `{}`\n * @property {String} [name=''] Name of the component. Will be used, for example, in Layers and badges\n * @property {Boolean} [removable=true] When `true` the component is removable from the canvas, default: `true`\n * @property {Boolean|String|Function} [draggable=true] Indicates if it's possible to drag the component inside others.\n * You can also specify a query string to indentify elements,\n * eg. `'.some-class[title=Hello], [data-gjs-type=column]'` means you can drag the component only inside elements\n * containing `some-class` class and `Hello` title, and `column` components. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drag is possible. Default: `true`\n * @property {Boolean|String|Function} [droppable=true] Indicates if it's possible to drop other components inside. You can use\n * a query string as with `draggable`. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drop is possible. Default: `true`\n * @property {Boolean} [badgable=true] Set to false if you don't want to see the badge (with the name) over the component. Default: `true`\n * @property {Boolean|Array} [stylable=true] True if it's possible to style the component.\n * You can also indicate an array of CSS properties which is possible to style, eg. `['color', 'width']`, all other properties\n * will be hidden from the style manager. Default: `true`\n * @property {Array} [stylable-require=[]] Indicate an array of style properties to show up which has been marked as `toRequire`. Default: `[]`\n * @property {Array} [unstylable=[]] Indicate an array of style properties which should be hidden from the style manager. Default: `[]`\n * @property {Boolean} [highlightable=true] It can be highlighted with 'dotted' borders if true. Default: `true`\n * @property {Boolean} [copyable=true] True if it's possible to clone the component. Default: `true`\n * @property {Boolean} [resizable=false] Indicates if it's possible to resize the component. It's also possible to pass an object as [options for the Resizer](https://github.com/artf/grapesjs/blob/master/src/utils/Resizer.js). Default: `false`\n * @property {Boolean} [editable=false] Allow to edit the content of the component (used on Text components). Default: `false`\n * @property {Boolean} [layerable=true] Set to `false` if you need to hide the component inside Layers. Default: `true`\n * @property {Boolean} [selectable=true] Allow component to be selected when clicked. Default: `true`\n * @property {Boolean} [hoverable=true] Shows a highlight outline when hovering on the element if `true`. Default: `true`\n * @property {Boolean} [void=false] This property is used by the HTML exporter as void elements don't have closing tags, eg. `
`, `
`, etc. Default: `false`\n * @property {Object} [style={}] Component default style, eg. `{ width: '100px', height: '100px', 'background-color': 'red' }`\n * @property {String} [styles=''] Component related styles, eg. `.my-component-class { color: red }`\n * @property {String} [content=''] Content of the component (not escaped) which will be appended before children rendering. Default: `''`\n * @property {String} [icon=''] Component's icon, this string will be inserted before the name (in Layers and badge), eg. it can be an HTML string ''. Default: `''`\n * @property {String|Function} [script=''] Component's javascript. More about it [here](/modules/Components-js.html). Default: `''`\n * @property {String|Function} [script-export=''] You can specify javascript available only in export functions (eg. when you get the HTML).\n * If this property is defined it will overwrite the `script` one (in export functions). Default: `''`\n * @property {Array} [traits=''] Component's traits. More about it [here](/modules/Traits.html). Default: `['id', 'title']`\n * @property {Array} [propagate=[]] Indicates an array of properties which will be inhereted by all NEW appended children.\n * For example if you create a component likes this: `{ removable: false, draggable: false, propagate: ['removable', 'draggable'] }`\n * and append some new component inside, the new added component will get the exact same properties indicated in the `propagate` array (and the `propagate` property itself). Default: `[]`\n * @property {Array} [toolbar=null] Set an array of items to show up inside the toolbar when the component is selected (move, clone, delete).\n * Eg. `toolbar: [ { attributes: {class: 'fa fa-arrows'}, command: 'tlb-move' }, ... ]`.\n * By default, when `toolbar` property is falsy the editor will add automatically commands `core:component-exit` (select parent component, added if there is one), `tlb-move` (added if `draggable`) , `tlb-clone` (added if `copyable`), `tlb-delete` (added if `removable`).\n * @property {Collection} [components=null] Children components. Default: `null`\n */\nexport default class Component extends Model.extend(Styleable) {\n /**\n * Hook method, called once the model is created\n */\n init() {}\n\n /**\n * Hook method, called when the model has been updated (eg. updated some model's property)\n * @param {String} property Property name, if triggered after some property update\n * @param {*} value Property value, if triggered after some property update\n * @param {*} previous Property previous value, if triggered after some property update\n */\n updated(property, value, previous) {}\n\n /**\n * Hook method, called once the model has been removed\n */\n removed() {}\n\n initialize(props = {}, opt = {}) {\n bindAll(this, '__upSymbProps', '__upSymbCls', '__upSymbComps');\n const em = opt.em;\n\n // Propagate properties from parent if indicated\n const parent = this.parent();\n const parentAttr = parent && parent.attributes;\n const propagate = this.get('propagate');\n propagate && this.set('propagate', isArray(propagate) ? propagate : [propagate]);\n\n if (parentAttr && parentAttr.propagate && !propagate) {\n const newAttr = {};\n const toPropagate = parentAttr.propagate;\n toPropagate.forEach(prop => (newAttr[prop] = parent.get(prop)));\n newAttr.propagate = toPropagate;\n this.set({ ...newAttr, ...props });\n }\n\n // Check void elements\n if (opt && opt.config && opt.config.voidElements.indexOf(this.get('tagName')) >= 0) {\n this.set('void', true);\n }\n\n opt.em = em;\n this.opt = opt;\n this.em = em;\n this.frame = opt.frame;\n this.config = opt.config || {};\n this.set('attributes', {\n ...(result(this, 'defaults').attributes || {}),\n ...(this.get('attributes') || {}),\n });\n this.ccid = Component.createId(this, opt);\n this.initClasses();\n this.initTraits();\n this.initComponents();\n this.initToolbar();\n this.initScriptProps();\n this.listenTo(this, 'change:script', this.scriptUpdated);\n this.listenTo(this, 'change:tagName', this.tagUpdated);\n this.listenTo(this, 'change:attributes', this.attrUpdated);\n this.listenTo(this, 'change:attributes:id', this._idUpdated);\n this.on('change:toolbar', this.__emitUpdateTlb);\n this.on('change', this.__onChange);\n this.on(keyUpdateInside, this.__propToParent);\n this.set('status', '');\n this.views = [];\n\n // Register global updates for collection properties\n ['classes', 'traits', 'components'].forEach(name => {\n const events = `add remove ${name !== 'components' ? 'change' : ''}`;\n this.listenTo(this.get(name), events.trim(), (...args) => this.emitUpdate(name, ...args));\n });\n\n if (!opt.temporary) {\n // Add component styles\n const cssc = em && em.get('CssComposer');\n const { styles, type } = this.attributes;\n if (styles && cssc) {\n cssc.addCollection(styles, {}, { group: `cmp:${type}` });\n }\n\n this.__postAdd();\n this.init();\n this.__isSymbolOrInst() && this.__initSymb();\n em && em.trigger('component:create', this);\n }\n }\n\n __postAdd(opts = {}) {\n const { em } = this;\n const um = em && em.get('UndoManager');\n const comps = this.components();\n if (um && !this.__hasUm) {\n um.add(comps);\n um.add(this.getSelectors());\n this.__hasUm = 1;\n }\n opts.recursive && comps.map(c => c.__postAdd(opts));\n }\n\n __postRemove() {\n const { em } = this;\n const um = em && em.get('UndoManager');\n if (um) {\n um.remove(this.components());\n um.remove(this.getSelectors());\n delete this.__hasUm;\n }\n }\n\n __onChange(m, opts) {\n const changed = this.changedAttributes();\n ['status', 'open', 'toolbar', 'traits'].forEach(name => delete changed[name]);\n // Propagate component prop changes\n if (!isEmptyObj(changed)) {\n this.__changesUp(opts);\n this.__propSelfToParent({ component: this, changed, options: opts });\n }\n }\n\n __changesUp(opts) {\n const { em, frame } = this;\n [frame, em].forEach(md => md && md.changesUp(opts));\n }\n\n __propSelfToParent(props) {\n this.trigger(keyUpdate, props);\n this.__propToParent(props);\n }\n\n __propToParent(props) {\n const parent = this.parent();\n parent && parent.trigger(keyUpdateInside, props);\n }\n\n __emitUpdateTlb() {\n this.emitUpdate('toolbar');\n }\n\n /**\n * Check component's type\n * @param {string} type Component type\n * @return {Boolean}\n * @example\n * component.is('image')\n * // -> false\n */\n is(type) {\n return !!(this.get('type') == type);\n }\n\n /**\n * Return all the propeties\n * @returns {Object}\n */\n props() {\n return this.attributes;\n }\n\n /**\n * Get the index of the component in the parent collection.\n * @return {Number}\n */\n index() {\n const { collection } = this;\n return collection ? collection.indexOf(this) : 0;\n }\n\n /**\n * Change the drag mode of the component.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n /**\n * Find inner components by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {String} query Query string\n * @return {Array} Array of components\n * @example\n * component.find('div > .class');\n * // -> [Component, Component, ...]\n */\n find(query) {\n const result = [];\n const $els = this.view.$el.find(query);\n $els.each(i => {\n const $el = $els.eq(i);\n const model = $el.data('model');\n model && result.push(model);\n });\n\n return result;\n }\n\n /**\n * Find all inner components by component type.\n * The advantage of this method over `find` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Array}\n * @example\n * const allImages = component.findType('image');\n * console.log(allImages[0]) // prints the first found component\n */\n findType(type) {\n const result = [];\n const find = components =>\n components.forEach(item => {\n item.is(type) && result.push(item);\n find(item.components());\n });\n find(this.components());\n return result;\n }\n\n /**\n * Find the closest parent component by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {string} query Query string\n * @return {Component}\n * @example\n * component.closest('div.some-class');\n * // -> Component\n */\n closest(query) {\n const result = this.view.$el.closest(query);\n return result.length && result.data('model');\n }\n\n /**\n * Find the closest parent component by its type.\n * The advantage of this method over `closest` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Component} Found component, otherwise `undefined`\n * @example\n * const Section = component.closestType('section');\n * console.log(Section);\n */\n closestType(type) {\n let parent = this.parent();\n\n while (parent && !parent.is(type)) {\n parent = parent.parent();\n }\n\n return parent;\n }\n\n /**\n * The method returns a Boolean value indicating whether the passed\n * component is a descendant of a given component\n * @param {Component} component Component to check\n * @returns {Boolean}\n */\n contains(component) {\n let result = !1;\n if (!component) return result;\n const contains = components => {\n !result &&\n components.forEach(item => {\n if (item === component) result = !0;\n !result && contains(item.components());\n });\n };\n contains(this.components());\n return result;\n }\n\n /**\n * Once the tag is updated I have to rerender the element\n * @private\n */\n tagUpdated() {\n this.trigger('rerender');\n }\n\n /**\n * Replace a component with another one\n * @param {String|Component} el Component or HTML string\n * @return {Component|Array} New added component/s\n * @example\n * component.replaceWith('
Some new content
');\n * // -> Component\n */\n replaceWith(el) {\n const coll = this.collection;\n const at = coll.indexOf(this);\n coll.remove(this);\n return coll.add(el, { at });\n }\n\n /**\n * Emit changes for each updated attribute\n * @private\n */\n attrUpdated(m, v, opts = {}) {\n const attrs = this.get('attributes');\n // Handle classes\n const classes = attrs.class;\n classes && this.setClass(classes);\n delete attrs.class;\n\n // Handle style\n const style = attrs.style;\n style && this.setStyle(style);\n delete attrs.style;\n\n const attrPrev = { ...this.previous('attributes') };\n const diff = shallowDiff(attrPrev, this.get('attributes'));\n keys(diff).forEach(pr => this.trigger(`change:attributes:${pr}`, this, diff[pr], opts));\n }\n\n /**\n * Update attributes of the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.setAttributes({ id: 'test', 'data-key': 'value' });\n */\n setAttributes(attrs, opts = {}) {\n this.set('attributes', { ...attrs }, opts);\n return this;\n }\n\n /**\n * Add attributes to the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.addAttributes({ 'data-key': 'value' });\n */\n addAttributes(attrs, opts = {}) {\n return this.setAttributes(\n {\n ...this.getAttributes({ noClass: 1 }),\n ...attrs,\n },\n opts\n );\n }\n\n /**\n * Remove attributes from the component\n * @param {String|Array} attrs Array of attributes to remove\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.removeAttributes('some-attr');\n * component.removeAttributes(['some-attr1', 'some-attr2']);\n */\n removeAttributes(attrs = [], opts = {}) {\n const attrArr = Array.isArray(attrs) ? attrs : [attrs];\n const compAttr = this.getAttributes();\n attrArr.map(i => delete compAttr[i]);\n return this.setAttributes(compAttr, opts);\n }\n\n /**\n * Get the style of the component\n * @return {Object}\n */\n getStyle(options = {}, optsAdd = {}) {\n const em = this.em;\n const prop = isString(options) ? options : '';\n const opts = prop ? optsAdd : options;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const rule = cc.getIdRule(this.getId(), { state, ...opts });\n this.rule = rule;\n\n if (rule) {\n return rule.getStyle(prop);\n }\n }\n\n return Styleable.getStyle.call(this, prop);\n }\n\n /**\n * Set the style on the component\n * @param {Object} prop Key value style object\n * @return {Object}\n * @example\n * component.setStyle({ color: 'red' });\n */\n setStyle(prop = {}, opts = {}) {\n const em = this.em;\n const { opt } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opt.temporary && !opts.inline) {\n const style = this.get('style') || {};\n prop = isString(prop) ? this.parseStyle(prop) : prop;\n prop = { ...prop, ...style };\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const propOrig = this.getStyle(opts);\n this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state });\n const diff = shallowDiff(propOrig, prop);\n this.set('style', '', { silent: 1 });\n keys(diff).forEach(pr => this.trigger(`change:style:${pr}`));\n } else {\n prop = Styleable.setStyle.apply(this, arguments);\n }\n\n return prop;\n }\n\n /**\n * Return all component's attributes\n * @return {Object}\n */\n getAttributes(opts = {}) {\n const { em } = this;\n const classes = [];\n const attributes = { ...this.get('attributes') };\n const sm = em && em.get('SelectorManager');\n const id = this.getId();\n\n // Add classes\n if (!opts.noClass) {\n this.get('classes').forEach(cls => classes.push(isString(cls) ? cls : cls.get('name')));\n classes.length && (attributes.class = classes.join(' '));\n }\n\n // Add style\n if (!opts.noStyle) {\n const style = this.get('style');\n if (isObject(style) && !isEmptyObj(style)) {\n attributes.style = this.styleToString({ inline: 1 });\n }\n }\n\n // Check if we need an ID on the component\n if (!has(attributes, 'id')) {\n let addId;\n\n // If we don't rely on inline styling we have to check\n // for the ID selector\n if (avoidInline(em)) {\n addId = sm && sm.get(id, sm.Selector.TYPE_ID);\n } else if (!isEmpty(this.getStyle())) {\n addId = 1;\n }\n\n // Symbols should always have an id\n if (this.__getSymbol() || this.__getSymbols()) {\n addId = 1;\n }\n\n if (addId) {\n attributes.id = id;\n }\n }\n\n return attributes;\n }\n\n /**\n * Add classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.addClass('class1');\n * model.addClass('class1 class2');\n * model.addClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n addClass(classes) {\n const added = this.em.get('SelectorManager').addClass(classes);\n return this.get('classes').add(added);\n }\n\n /**\n * Set classes (resets current collection)\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.setClass('class1');\n * model.setClass('class1 class2');\n * model.setClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n setClass(classes) {\n this.get('classes').reset();\n return this.addClass(classes);\n }\n\n /**\n * Remove classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of removed selectors\n * @example\n * model.removeClass('class1');\n * model.removeClass('class1 class2');\n * model.removeClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n removeClass(classes) {\n const removed = [];\n classes = isArray(classes) ? classes : [classes];\n const selectors = this.get('classes');\n const type = Selector.TYPE_CLASS;\n\n classes.forEach(classe => {\n const classes = classe.split(' ');\n classes.forEach(name => {\n const selector = selectors.where({ name, type })[0];\n selector && removed.push(selectors.remove(selector));\n });\n });\n\n return removed;\n }\n\n /**\n * Returns component's classes as an array of strings\n * @return {Array}\n */\n getClasses() {\n const attr = this.getAttributes();\n const classStr = attr.class;\n return classStr ? classStr.split(' ') : [];\n }\n\n __logSymbol(type, toUp, opts = {}) {\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n if (!symbol && !symbols) return;\n this.em.log(type, { model: this, toUp, context: 'symbols', opts });\n }\n\n __initSymb() {\n if (this.__symbReady) return;\n this.on('change', this.__upSymbProps);\n this.__symbReady = 1;\n }\n\n __isSymbol() {\n return isArray(this.get(keySymbols));\n }\n\n __isSymbolOrInst() {\n return !!(this.__isSymbol() || this.get(keySymbol));\n }\n\n __isSymbolTop() {\n const parent = this.parent();\n const symb = this.__isSymbolOrInst();\n return symb && (!parent || (parent && !parent.__isSymbol() && !parent.__getSymbol()));\n }\n\n __isSymbolNested() {\n if (!this.__isSymbolOrInst() || this.__isSymbolTop()) return false;\n const symbTopSelf = (this.__isSymbol() ? this : this.__getSymbol()).__getSymbTop();\n const symbTop = this.__getSymbTop();\n const symbTopMain = symbTop.__isSymbol() ? symbTop : symbTop.__getSymbol();\n return symbTopMain !== symbTopSelf;\n }\n\n __getAllById() {\n const { em } = this;\n return em ? em.get('DomComponents').allById() : {};\n }\n\n __getSymbol() {\n let symb = this.get(keySymbol);\n if (symb && isString(symb)) {\n const ref = this.__getAllById()[symb];\n if (ref) {\n symb = ref;\n this.set(keySymbol, ref);\n } else {\n symb = 0;\n }\n }\n return symb;\n }\n\n __getSymbols() {\n let symbs = this.get(keySymbols);\n if (symbs && isArray(symbs)) {\n symbs.forEach((symb, idx) => {\n if (symb && isString(symb)) {\n symbs[idx] = this.__getAllById()[symb];\n }\n });\n symbs = symbs.filter(symb => symb && !isString(symb));\n }\n return symbs;\n }\n\n __isSymbOvrd(prop = '') {\n const ovrd = this.get(keySymbolOvrd);\n const [prp] = prop.split(':');\n const props = prop !== prp ? [prop, prp] : [prop];\n return ovrd === true || (isArray(ovrd) && props.some(p => ovrd.indexOf(p) >= 0));\n }\n\n __getSymbToUp(opts = {}) {\n let result = [];\n const { em } = this;\n const { changed } = opts;\n const symbEnabled = em && em.get('symbols');\n\n if (\n opts.fromInstance ||\n opts.noPropagate ||\n opts.fromUndo ||\n !symbEnabled ||\n // Avoid updating others if the current component has override\n (changed && this.__isSymbOvrd(changed))\n ) {\n return result;\n }\n\n const symbols = this.__getSymbols() || [];\n const symbol = this.__getSymbol();\n const all = symbol ? [symbol, ...(symbol.__getSymbols() || [])] : symbols;\n result = all\n .filter(s => s !== this)\n // Avoid updating those with override\n .filter(s => !(changed && s.__isSymbOvrd(changed)));\n\n return result;\n }\n\n __getSymbTop(opts) {\n let result = this;\n let parent = this.parent(opts);\n\n while (parent && (parent.__isSymbol() || parent.__getSymbol())) {\n result = parent;\n parent = parent.parent(opts);\n }\n\n return result;\n }\n\n __upSymbProps(m, opts = {}) {\n const changed = this.changedAttributes();\n const attrs = changed.attributes || {};\n delete changed.status;\n delete changed.open;\n delete changed[keySymbols];\n delete changed[keySymbol];\n delete changed[keySymbolOvrd];\n delete changed.attributes;\n delete attrs.id;\n if (!isEmptyObj(attrs)) changed.attributes = attrs;\n if (!isEmptyObj(changed)) {\n const toUp = this.__getSymbToUp(opts);\n // Avoid propagating overrides to other symbols\n keys(changed).map(prop => {\n if (this.__isSymbOvrd(prop)) delete changed[prop];\n });\n\n this.__logSymbol('props', toUp, { opts, changed });\n toUp.forEach(child => {\n const propsChanged = { ...changed };\n // Avoid updating those with override\n keys(propsChanged).map(prop => {\n if (child.__isSymbOvrd(prop)) delete propsChanged[prop];\n });\n child.set(propsChanged, { fromInstance: this, ...opts });\n });\n }\n }\n\n __upSymbCls(m, c, opts = {}) {\n const toUp = this.__getSymbToUp(opts);\n this.__logSymbol('classes', toUp, { opts });\n toUp.forEach(child => {\n // This will propagate the change up to __upSymbProps\n child.set('classes', this.get('classes'), { fromInstance: this });\n });\n this.__changesUp(opts);\n }\n\n __upSymbComps(m, c, o) {\n const optUp = o || c || {};\n const { fromInstance, fromUndo } = optUp;\n const toUpOpts = { fromInstance, fromUndo };\n const isTemp = m.opt.temporary;\n\n // Reset\n if (!o) {\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:reset',\n });\n this.__logSymbol('reset', toUp, { components: m.models });\n toUp.forEach(symb => {\n const newMods = m.models.map(mod => mod.clone({ symbol: 1 }));\n symb.components().reset(newMods, { fromInstance: this, ...c });\n });\n // Add\n } else if (o.add) {\n let addedInstances = [];\n const isMainSymb = !!this.__getSymbols();\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:add',\n });\n if (toUp.length) {\n const addSymb = m.__getSymbol();\n addedInstances = (addSymb ? addSymb.__getSymbols() : m.__getSymbols()) || [];\n addedInstances = [...addedInstances];\n addedInstances.push(addSymb ? addSymb : m);\n }\n !isTemp &&\n this.__logSymbol('add', toUp, {\n opts: o,\n addedInstances: addedInstances.map(c => c.cid),\n added: m.cid,\n });\n // Here, before appending a new symbol, I have to ensure there are no previously\n // created symbols (eg. used mainly when drag components around)\n toUp.forEach(symb => {\n const symbTop = symb.__getSymbTop();\n const symbPrev = addedInstances.filter(addedInst => {\n const addedTop = addedInst.__getSymbTop({ prev: 1 });\n return symbTop && addedTop && addedTop === symbTop;\n })[0];\n const toAppend = symbPrev || m.clone({ symbol: 1, symbolInv: isMainSymb });\n symb.append(toAppend, { fromInstance: this, ...o });\n });\n // Remove\n } else {\n // Remove instance reference from the symbol\n const symb = m.__getSymbol();\n symb &&\n !o.temporary &&\n symb.set(\n keySymbols,\n symb.__getSymbols().filter(i => i !== m)\n );\n\n // Propagate remove only if the component is an inner symbol\n if (!m.__isSymbolTop()) {\n const changed = 'components:remove';\n const { index } = o;\n const parent = m.parent();\n const opts = { fromInstance: m, ...o };\n const isSymbNested = m.__isSymbolNested();\n let toUpFn = symb => {\n const symbPrnt = symb.parent();\n symbPrnt && !symbPrnt.__isSymbOvrd(changed) && symb.remove(opts);\n };\n // Check if the parent allows the removing\n let toUp = !parent.__isSymbOvrd(changed) ? m.__getSymbToUp(toUpOpts) : [];\n\n if (isSymbNested) {\n toUp = parent.__getSymbToUp({ ...toUpOpts, changed });\n toUpFn = symb => {\n const toRemove = symb.components().at(index);\n toRemove && toRemove.remove({ fromInstance: parent, ...opts });\n };\n }\n\n !isTemp &&\n this.__logSymbol('remove', toUp, {\n opts: o,\n removed: m.cid,\n isSymbNested,\n });\n toUp.forEach(toUpFn);\n }\n }\n\n this.__changesUp(optUp);\n }\n\n initClasses(m, c, opts = {}) {\n const event = 'change:classes';\n const attrCls = this.get('attributes').class || [];\n const toListen = [this, event, this.initClasses];\n const cls = this.get('classes') || attrCls;\n const clsArr = isString(cls) ? cls.split(' ') : cls;\n this.stopListening(...toListen);\n const classes = this.normalizeClasses(clsArr);\n const selectors = new Selectors([]);\n this.set('classes', selectors, opts);\n selectors.add(classes);\n selectors.on('add remove reset', this.__upSymbCls);\n this.listenTo(...toListen);\n return this;\n }\n\n initComponents() {\n const event = 'change:components';\n const toListen = [this, event, this.initComponents];\n this.stopListening(...toListen);\n // Have to add components after the init, otherwise the parent\n // is not visible\n const comps = new Components(null, this.opt);\n comps.parent = this;\n const components = this.get('components');\n const addChild = !this.opt.avoidChildren;\n this.set('components', comps);\n addChild && components && comps.add(isFunction(components) ? components(this) : components, this.opt);\n comps.on('add remove reset', this.__upSymbComps);\n this.listenTo(...toListen);\n return this;\n }\n\n initTraits(changed) {\n const { em } = this;\n const event = 'change:traits';\n this.off(event, this.initTraits);\n this.__loadTraits();\n const attrs = { ...this.get('attributes') };\n const traits = this.get('traits');\n traits.each(trait => {\n if (!trait.get('changeProp')) {\n const name = trait.get('name');\n const value = trait.getInitValue();\n if (name && value) attrs[name] = value;\n }\n });\n traits.length && this.set('attributes', attrs);\n this.on(event, this.initTraits);\n changed && em && em.trigger('component:toggled');\n return this;\n }\n\n initScriptProps() {\n if (this.opt.temporary) return;\n const prop = 'script-props';\n const toListen = [`change:${prop}`, this.initScriptProps];\n this.off(...toListen);\n const prevProps = this.previous(prop) || [];\n const newProps = this.get(prop) || [];\n const prevPropsEv = prevProps.map(e => `change:${e}`).join(' ');\n const newPropsEv = newProps.map(e => `change:${e}`).join(' ');\n prevPropsEv && this.off(prevPropsEv, this.__scriptPropsChange);\n newPropsEv && this.on(newPropsEv, this.__scriptPropsChange);\n this.on(...toListen);\n }\n\n __scriptPropsChange(m, v, opts = {}) {\n if (opts.avoidStore) return;\n this.trigger('rerender');\n }\n\n /**\n * Add new component children\n * @param {Component|String} components Component to add\n * @param {Object} [opts={}] Options for the append action\n * @return {Array} Array of appended components\n * @example\n * someComponent.get('components').length // -> 0\n * const videoComponent = someComponent.append('
')[0];\n * // This will add 2 components (`video` and `div`) to your `someComponent`\n * someComponent.get('components').length // -> 2\n * // You can pass components directly\n * otherComponent.append(otherComponent2);\n * otherComponent.append([otherComponent3, otherComponent4]);\n * // append at specific index (eg. at the beginning)\n * someComponent.append(otherComponent, { at: 0 });\n */\n append(components, opts = {}) {\n const compArr = isArray(components) ? components : [components];\n const toAppend = compArr.map(comp => {\n if (isString(comp)) {\n return comp;\n } else {\n // I have to remove components from the old container before adding them to a new one\n comp.collection && comp.collection.remove(comp, { temporary: 1 });\n return comp;\n }\n });\n const result = this.components().add(toAppend, opts);\n return isArray(result) ? result : [result];\n }\n\n /**\n * Set new collection if `components` are provided, otherwise the\n * current collection is returned\n * @param {Component|String} [components] Component Definitions or HTML string\n * @param {Object} [opts={}] Options, same as in `Component.append()`\n * @returns {Collection|Array<[Component]>}\n * @example\n * // Set new collection\n * component.components('
');\n * // Get current collection\n * const collection = component.components();\n * console.log(collection.length);\n * // -> 2\n */\n components(components, opts = {}) {\n const coll = this.get('components');\n\n if (isUndefined(components)) {\n return coll;\n } else {\n coll.reset(null, opts);\n return components ? this.append(components, opts) : [];\n }\n }\n\n /**\n * If exists, returns the child component at specific index.\n * @param {Number} index Index of the component to return\n * @returns {[Component]|null}\n * @example\n * // Return first child\n * component.getChildAt(0);\n * // Return second child\n * component.getChildAt(1);\n */\n getChildAt(index) {\n return this.components().at(index || 0) || null;\n }\n\n /**\n * If exists, returns the last child component.\n * @returns {[Component]|null}\n * @example\n * const lastChild = component.getLastChild();\n */\n getLastChild() {\n const children = this.components();\n return children.at(children.length - 1) || null;\n }\n\n /**\n * Remove all inner components\n * * @return {this}\n */\n empty(opts = {}) {\n this.components().reset(null, opts);\n return this;\n }\n\n /**\n * Get the parent component, if exists\n * @return {Component|null}\n * @example\n * component.parent();\n * // -> Component\n */\n parent(opts = {}) {\n const coll = this.collection || (opts.prev && this.prevColl);\n return coll ? coll.parent : null;\n }\n\n /**\n * Script updated\n * @private\n */\n scriptUpdated() {\n this.set('scriptUpdated', 1);\n }\n\n /**\n * Init toolbar\n * @private\n */\n initToolbar() {\n const { em } = this;\n const model = this;\n const ppfx = (em && em.getConfig('stylePrefix')) || '';\n\n if (!model.get('toolbar') && em) {\n const tb = [];\n model.collection &&\n tb.push({\n label: em.getIcon('arrowUp'),\n command: ed => ed.runCommand('core:component-exit', { force: 1 }),\n });\n model.get('draggable') &&\n tb.push({\n attributes: { class: `${ppfx}no-touch-actions`, draggable: true },\n label: em.getIcon('move'),\n command: 'tlb-move',\n });\n model.get('copyable') &&\n tb.push({\n label: em.getIcon('copy'),\n command: 'tlb-clone',\n });\n model.get('removable') &&\n tb.push({\n label: em.getIcon('delete'),\n command: 'tlb-delete',\n });\n model.set('toolbar', tb);\n }\n }\n\n __loadTraits(tr, opts = {}) {\n let traitsI = tr || this.get('traits');\n\n if (!(traitsI instanceof Traits)) {\n traitsI = isFunction(traitsI) ? traitsI(this) : traitsI;\n const traits = new Traits([], this.opt);\n traits.setTarget(this);\n\n if (traitsI.length) {\n traitsI.forEach(tr => tr.attributes && delete tr.attributes.value);\n traits.add(traitsI);\n }\n\n this.set({ traits }, opts);\n }\n\n return this;\n }\n\n /**\n * Get traits.\n * @returns {Array}\n * @example\n * const traits = component.getTraits();\n * console.log(traits);\n * // [Trait, Trait, Trait, ...]\n */\n getTraits() {\n this.__loadTraits();\n return [...this.get('traits').models];\n }\n\n /**\n * Replace current collection of traits with a new one.\n * @param {Array} traits Array of trait definitions\n * @returns {Array}\n * @example\n * const traits = component.setTraits([{ type: 'checkbox', name: 'disabled'}, ...]);\n * console.log(traits);\n * // [Trait, ...]\n */\n setTraits(traits) {\n const tr = isArray(traits) ? traits : [traits];\n this.set({ traits: tr });\n return this.getTraits();\n }\n\n /**\n * Get the trait by id/name.\n * @param {String} id The `id` or `name` of the trait\n * @return {Trait|null} Trait getModelToStyle\n * @example\n * const traitTitle = component.getTrait('title');\n * traitTitle && traitTitle.set('label', 'New label');\n */\n getTrait(id) {\n return (\n this.getTraits().filter(trait => {\n return trait.get('id') === id || trait.get('name') === id;\n })[0] || null\n );\n }\n\n /**\n * Update a trait.\n * @param {String} id The `id` or `name` of the trait\n * @param {Object} props Object with the props to update\n * @return {this}\n * @example\n * component.updateTrait('title', {\n * type: 'select',\n * options: [ 'Option 1', 'Option 2' ],\n * });\n */\n updateTrait(id, props) {\n const trait = this.getTrait(id);\n trait && trait.set(props);\n this.em?.trigger('component:toggled');\n return this;\n }\n\n /**\n * Get the trait position index by id/name. Useful in case you want to\n * replace some trait, at runtime, with something else.\n * @param {String} id The `id` or `name` of the trait\n * @return {Number} Index position of the current trait\n * @example\n * const traitTitle = component.getTraitIndex('title');\n * console.log(traitTitle); // 1\n */\n getTraitIndex(id) {\n const trait = this.getTrait(id);\n return trait ? this.get('traits').indexOf(trait) : -1;\n }\n\n /**\n * Remove trait/s by id/s.\n * @param {String|Array} id The `id`/`name` of the trait (or an array)\n * @return {Array} Array of removed traits\n * @example\n * component.removeTrait('title');\n * component.removeTrait(['title', 'id']);\n */\n removeTrait(id) {\n const ids = isArray(id) ? id : [id];\n const toRemove = ids.map(id => this.getTrait(id));\n const traits = this.get('traits');\n const removed = toRemove.length ? traits.remove(toRemove) : [];\n this.em?.trigger('component:toggled');\n return isArray(removed) ? removed : [removed];\n }\n\n /**\n * Add new trait/s.\n * @param {String|Object|Array} trait Trait to add (or an array of traits)\n * @param {Options} opts Options for the add\n * @return {Array} Array of added traits\n * @example\n * component.addTrait('title', { at: 1 }); // Add title trait (`at` option is the position index)\n * component.addTrait({\n * type: 'checkbox',\n * name: 'disabled',\n * });\n * component.addTrait(['title', {...}, ...]);\n */\n addTrait(trait, opts = {}) {\n this.__loadTraits();\n const added = this.get('traits').add(trait, opts);\n this.em?.trigger('component:toggled');\n return isArray(added) ? added : [added];\n }\n\n /**\n * Normalize input classes from array to array of objects\n * @param {Array} arr\n * @return {Array}\n * @private\n */\n normalizeClasses(arr) {\n const res = [];\n const { em } = this;\n const clm = em && em.get('SelectorManager');\n if (!clm) return;\n if (arr.models) return [...arr.models];\n arr.forEach(val => res.push(clm.add(val)));\n return res;\n }\n\n /**\n * Override original clone method\n * @private\n */\n clone(opt = {}) {\n const em = this.em;\n const attr = { ...this.attributes };\n const opts = { ...this.opt };\n const id = this.getId();\n const cssc = em && em.get('CssComposer');\n attr.attributes = { ...attr.attributes };\n delete attr.attributes.id;\n attr.components = [];\n attr.classes = [];\n attr.traits = [];\n\n if (this.__isSymbolTop()) {\n opt.symbol = 1;\n }\n\n this.get('components').each((md, i) => {\n attr.components[i] = md.clone({ ...opt, _inner: 1 });\n });\n this.get('traits').each((md, i) => {\n attr.traits[i] = md.clone();\n });\n this.get('classes').each((md, i) => {\n attr.classes[i] = md.get('name');\n });\n\n attr.status = '';\n opts.collection = null;\n\n const cloned = new this.constructor(attr, opts);\n\n // Clone component specific rules\n const newId = `#${cloned.getId()}`;\n const rulesToClone = cssc ? cssc.getRules(`#${id}`) : [];\n rulesToClone.forEach(rule => {\n const newRule = rule.clone();\n newRule.set('selectors', [newId]);\n cssc.getAll().add(newRule);\n });\n\n // Symbols\n // If I clone an inner symbol, I have to reset it\n cloned.set(keySymbols, 0);\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n\n if (!opt.symbol && (symbol || symbols)) {\n cloned.set(keySymbol, 0);\n cloned.set(keySymbols, 0);\n } else if (symbol) {\n // Contains already a reference to a symbol\n symbol.set(keySymbols, [...symbol.__getSymbols(), cloned]);\n cloned.__initSymb();\n } else if (opt.symbol) {\n // Request to create a symbol\n if (this.__isSymbol()) {\n // Already a symbol, cloned should be an instance\n this.set(keySymbols, [...symbols, cloned]);\n cloned.set(keySymbol, this);\n cloned.__initSymb();\n } else if (opt.symbolInv) {\n // Inverted, cloned is the instance, the origin is the main symbol\n this.set(keySymbols, [cloned]);\n cloned.set(keySymbol, this);\n [this, cloned].map(i => i.__initSymb());\n } else {\n // Cloned becomes the main symbol\n cloned.set(keySymbols, [this]);\n [this, cloned].map(i => i.__initSymb());\n this.set(keySymbol, cloned);\n }\n }\n\n const event = 'component:clone';\n em && em.trigger(event, cloned);\n this.trigger(event, cloned);\n\n return cloned;\n }\n\n /**\n * Get the name of the component\n * @return {String}\n * */\n getName() {\n const { em } = this;\n const { type, tagName, name } = this.attributes;\n const defName = type || tagName;\n const nameTag = !type && tagName;\n const i18nPfx = 'domComponents.names.';\n const i18nName = name && em?.t(`${i18nPfx}${name}`);\n const i18nNameTag = nameTag && em?.t(`${i18nPfx}${nameTag}`);\n const i18nDefName = em && (em.t(`${i18nPfx}${type}`) || em.t(`${i18nPfx}${tagName}`));\n return (\n this.get('custom-name') || // Used in Layers (when the user changes the name)\n i18nName || // Use local component `name` key (eg. `domComponents.names.myComponentName`)\n name || // Use component `name` key\n i18nNameTag || // Use local component `tagName` key (eg. `domComponents.names.div`)\n capitalize(nameTag) || // Use component `tagName` key\n i18nDefName || // Use local component `type` key (eg. `domComponents.names.image`)\n capitalize(defName) // Use component `type` key\n );\n }\n\n /**\n * Get the icon string\n * @return {String}\n */\n getIcon() {\n let icon = this.get('icon');\n return icon ? icon + ' ' : '';\n }\n\n /**\n * Return HTML string of the component\n * @param {Object} [opts={}] Options\n * @param {String} [opts.tag] Custom tagName\n * @param {Object|Function} [opts.attributes=null] You can pass an object of custom attributes to replace with the current ones or you can even pass a function to generate attributes dynamically.\n * @param {Boolean} [opts.withProps] Include component properties as `data-gjs-*` attributes. This allows you to have re-importable HTML.\n * @param {Boolean} [opts.altQuoteAttr] In case the attribute value contains a `\"` char, instead of escaping it (`attr=\"value "\"`), the attribute will be quoted using single quotes (`attr='value \"'`).\n * @return {String} HTML string\n * @example\n * // Simple HTML return\n * component.set({ tagName: 'span' });\n * component.setAttributes({ title: 'Hello' });\n * component.toHTML();\n * // -> \n *\n * // Custom attributes\n * component.toHTML({ attributes: { 'data-test': 'Hello' } });\n * // -> \n *\n * // Custom dynamic attributes\n * component.toHTML({\n * attributes(component, attributes) {\n * if (component.get('tagName') == 'span') {\n * attributes.title = 'Custom attribute';\n * }\n * return attributes;\n * },\n * });\n * // -> \n */\n toHTML(opts = {}) {\n const model = this;\n const attrs = [];\n const customTag = opts.tag;\n const tag = customTag || model.get('tagName');\n const sTag = model.get('void');\n const customAttr = opts.attributes;\n let attributes = this.getAttrToHTML();\n delete opts.tag;\n\n // Get custom attributes if requested\n if (customAttr) {\n if (isFunction(customAttr)) {\n attributes = customAttr(model, attributes) || {};\n } else if (isObject(customAttr)) {\n attributes = customAttr;\n }\n }\n\n if (opts.withProps) {\n const props = this.toJSON();\n\n forEach(props, (value, key) => {\n const skipProps = ['classes', 'attributes', 'components'];\n if (key[0] !== '_' && skipProps.indexOf(key) < 0) {\n attributes[`data-gjs-${key}`] = isArray(value) || isObject(value) ? JSON.stringify(value) : value;\n }\n });\n }\n\n for (let attr in attributes) {\n const val = attributes[attr];\n\n if (!isUndefined(val) && val !== null) {\n if (isBoolean(val)) {\n val && attrs.push(attr);\n } else {\n let valueRes = '';\n if (opts.altQuoteAttr && isString(val) && val.indexOf('\"') >= 0) {\n valueRes = `'${val.replace(/'/g, ''')}'`;\n } else {\n const value = isString(val) ? val.replace(/\"/g, '"') : val;\n valueRes = `\"${value}\"`;\n }\n\n attrs.push(`${attr}=${valueRes}`);\n }\n }\n }\n\n const attrString = attrs.length ? ` ${attrs.join(' ')}` : '';\n const inner = model.getInnerHTML(opts);\n let code = `<${tag}${attrString}${sTag ? '/' : ''}>${inner}`;\n !sTag && (code += ``);\n\n return code;\n }\n\n /**\n * Get inner HTML of the component\n * @param {Object} [opts={}] Same options of `toHTML`\n * @returns {String} HTML string\n */\n getInnerHTML(opts) {\n return this.__innerHTML(opts);\n }\n\n __innerHTML(opts = {}) {\n const cmps = this.components();\n return !cmps.length ? this.get('content') : cmps.map(c => c.toHTML(opts)).join('');\n }\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML() {\n var attr = this.getAttributes();\n delete attr.style;\n return attr;\n }\n\n /**\n * Return a shallow copy of the model's attributes for JSON\n * stringification.\n * @return {Object}\n * @private\n */\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n obj.attributes = this.getAttributes();\n delete obj.attributes.class;\n delete obj.toolbar;\n delete obj.traits;\n delete obj.status;\n delete obj.open; // used in Layers\n\n if (!opts.fromUndo) {\n const symbol = obj[keySymbol];\n const symbols = obj[keySymbols];\n if (symbols && isArray(symbols)) {\n obj[keySymbols] = symbols.filter(i => i).map(i => (i.getId ? i.getId() : i));\n }\n if (symbol && !isString(symbol)) {\n obj[keySymbol] = symbol.getId();\n }\n }\n\n if (this.em.getConfig('avoidDefaults')) {\n this.getChangedProps(obj);\n }\n\n return obj;\n }\n\n /**\n * Return an object containing only changed props\n */\n getChangedProps(res) {\n const obj = res || Model.prototype.toJSON.apply(this);\n const defaults = result(this, 'defaults');\n\n forEach(defaults, (value, key) => {\n if (['type'].indexOf(key) === -1 && obj[key] === value) {\n delete obj[key];\n }\n });\n\n if (isEmpty(obj.type)) {\n delete obj.type;\n }\n\n forEach(['attributes', 'style'], prop => {\n if (isEmpty(defaults[prop]) && isEmpty(obj[prop])) {\n delete obj[prop];\n }\n });\n\n forEach(['classes', 'components'], prop => {\n if (!obj[prop] || (isEmpty(defaults[prop]) && !obj[prop].length)) {\n delete obj[prop];\n }\n });\n\n return obj;\n }\n\n /**\n * Return the component id\n * @return {String}\n */\n getId() {\n let attrs = this.get('attributes') || {};\n return attrs.id || this.ccid || this.cid;\n }\n\n /**\n * Set new id on the component\n * @param {String} id\n * @return {this}\n */\n setId(id, opts) {\n const attrs = { ...this.get('attributes') };\n attrs.id = id;\n this.set('attributes', attrs, opts);\n return this;\n }\n\n /**\n * Get the DOM element of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Specific frame from which taking the element\n * @return {HTMLElement}\n */\n getEl(frame) {\n const view = this.getView(frame);\n return view && view.el;\n }\n\n /**\n * Get the View of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Get View of a specific frame\n * @return {ComponentView}\n */\n getView(frame) {\n let { view, views } = this;\n\n if (frame) {\n view = views.filter(view => view._getFrame() === frame.view)[0];\n }\n\n return view;\n }\n\n getCurrentView() {\n const frame = (this.em.get('currentFrame') || {}).model;\n return this.getView(frame);\n }\n\n __getScriptProps() {\n const modelProps = this.props();\n const scrProps = this.get('script-props') || [];\n return scrProps.reduce((acc, prop) => {\n acc[prop] = modelProps[prop];\n return acc;\n }, {});\n }\n\n /**\n * Return script in string format, cleans 'function() {..' from scripts\n * if it's a function\n * @param {string|Function} script\n * @return {string}\n * @private\n */\n getScriptString(script) {\n let scr = script || this.get('script');\n\n if (!scr) {\n return scr;\n }\n\n if (this.get('script-props')) {\n scr = scr.toString().trim();\n } else {\n // Deprecated\n // Need to convert script functions to strings\n if (typeof scr == 'function') {\n var scrStr = scr.toString().trim();\n scrStr = scrStr.replace(/^function[\\s\\w]*\\(\\)\\s?\\{/, '').replace(/\\}$/, '');\n scr = scrStr.trim();\n }\n\n var config = this.em.getConfig();\n var tagVarStart = escapeRegExp(config.tagVarStart || '{[ ');\n var tagVarEnd = escapeRegExp(config.tagVarEnd || ' ]}');\n var reg = new RegExp(`${tagVarStart}([\\\\w\\\\d-]*)${tagVarEnd}`, 'g');\n scr = scr.replace(reg, (match, v) => {\n // If at least one match is found I have to track this change for a\n // better optimization inside JS generator\n this.scriptUpdated();\n const result = this.attributes[v] || '';\n return isArray(result) || typeof result == 'object' ? JSON.stringify(result) : result;\n });\n }\n return scr;\n }\n\n emitUpdate(property, ...args) {\n const { em } = this;\n const event = keyUpdate + (property ? `:${property}` : '');\n const item = property && this.get(property);\n property && this.updated(property, item, property && this.previous(property), ...args);\n this.trigger(event, ...args);\n em && em.trigger(event, this, ...args);\n ['components', 'classes'].indexOf(property) >= 0 &&\n this.__propSelfToParent({\n component: this,\n changed: { [property]: item },\n options: args[2] || args[1] || {},\n });\n }\n\n /**\n * Execute callback function on itself and all inner components\n * @param {Function} clb Callback function, the model is passed as an argument\n * @return {this}\n * @example\n * component.onAll(component => {\n * // do something with component\n * })\n */\n onAll(clb) {\n if (isFunction(clb)) {\n clb(this);\n this.components().forEach(model => model.onAll(clb));\n }\n return this;\n }\n\n /**\n * Remove the component\n * @return {this}\n */\n remove(opts = {}) {\n const { em } = this;\n const coll = this.collection;\n const remove = () => {\n coll && coll.remove(this, { ...opts, action: 'remove-component' });\n opts.root && this.components('');\n };\n const rmOpts = { ...opts };\n [this, em].map(i => i.trigger('component:remove:before', this, remove, rmOpts));\n !rmOpts.abort && remove();\n return this;\n }\n\n /**\n * Move the component to another destination component\n * @param {Component} component Destination component (so the current one will be appended as a child)\n * @param {Object} opts Options for the append action\n * @returns {this}\n * @example\n * // Move the selected component on top of the wrapper\n * const dest = editor.getWrapper();\n * editor.getSelected().move(dest, { at: 0 });\n */\n move(component, opts = {}) {\n this.remove({ temporary: 1 });\n component && component.append(this, opts);\n return this;\n }\n\n /**\n * Check if the component is an instance of some component type.\n * @param {String} type Component type\n * @returns {Boolean}\n * @example\n * // Add a new component type by extending an existing one\n * editor.Components.addType('text-ext', { extend: 'text' });\n * // Append a new component somewhere\n * const newTextExt = editor.getSelected().append({ type: 'text-ext' })[0];\n * newTextExt.isInstanceOf('text-ext'); // true\n * newTextExt.isInstanceOf('text'); // true\n */\n isInstanceOf(type) {\n const cmp = this.em?.get('DomComponents').getType(type)?.model;\n\n if (!cmp) return false;\n\n return this instanceof cmp;\n }\n\n /**\n * Check if the component is a child of some other component (or component type)\n * @param {[Component]|String} component Component parent to check. In case a string is passed,\n * the check will be performed on the component type.\n * @returns {Boolean}\n * @example\n * const newTextComponent = editor.getSelected().append({\n * type: 'text',\n * components: 'My text here',\n * })[0];\n * const innerComponent = newTextComponent.find('b')[0];\n * innerComponent.isChildOf(newTextComponent); // true\n * innerComponent.isChildOf('text'); // true\n */\n isChildOf(component) {\n const byType = isString(component);\n let parent = this.parent();\n\n while (parent) {\n if (byType) {\n if (parent.isInstanceOf(component)) {\n return true;\n }\n } else {\n if (parent === component) {\n return true;\n }\n }\n\n parent = parent.parent();\n }\n\n return false;\n }\n\n /**\n * Reset id of the component and any of its style rule\n * @param {Object} [opts={}] Options\n * @return {this}\n * @private\n */\n resetId(opts = {}) {\n const { em } = this;\n const oldId = this.getId();\n if (!oldId) return;\n const newId = Component.createId(this);\n this.setId(newId);\n const rule = em && em.get('CssComposer').getIdRule(oldId);\n const selector = rule && rule.get('selectors').at(0);\n selector && selector.set('name', newId);\n return this;\n }\n\n _getStyleRule({ id } = {}) {\n const { em } = this;\n const idS = id || this.getId();\n return em && em.get('CssComposer').getIdRule(idS);\n }\n\n _getStyleSelector(opts) {\n const rule = this._getStyleRule(opts);\n return rule && rule.get('selectors').at(0);\n }\n\n _idUpdated(m, v, opts = {}) {\n if (opts.idUpdate) return;\n\n const { ccid } = this;\n const { id } = this.get('attributes') || {};\n const idPrev = (this.previous('attributes') || {}).id || ccid;\n const list = Component.getList(this);\n\n // If the ID already exists I need to rollback to the old one\n if (list[id] || (!id && idPrev)) {\n return this.setId(idPrev, { idUpdate: 1 });\n }\n\n // Remove the old ID reference and add the new one\n delete list[idPrev];\n list[id] = this;\n this.ccid = id;\n\n // Update the style selector name\n const selector = this._getStyleSelector({ id: idPrev });\n selector && selector.set({ name: id, label: id });\n }\n}\n\n/**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\nComponent.isComponent = el => {\n return { tagName: toLowerCase(el.tagName) };\n};\n\nComponent.ensureInList = model => {\n const list = Component.getList(model);\n const id = model.getId();\n const current = list[id];\n\n if (!current) {\n // Insert in list\n list[id] = model;\n } else if (current !== model) {\n // Create new ID\n const nextId = Component.getIncrementId(id, list);\n model.setId(nextId);\n list[nextId] = model;\n }\n\n model.components().forEach(i => Component.ensureInList(i));\n};\n\n/**\n * Relying simply on the number of components becomes a problem when you\n * store and load them back, you might hit collisions with new components\n * @param {Model} model\n * @return {string}\n * @private\n */\nComponent.createId = (model, opts = {}) => {\n const list = Component.getList(model);\n const { idMap = {} } = opts;\n let { id } = model.get('attributes');\n let nextId;\n\n if (id) {\n nextId = Component.getIncrementId(id, list, opts);\n model.setId(nextId);\n if (id !== nextId) idMap[id] = nextId;\n } else {\n nextId = Component.getNewId(list);\n }\n\n list[nextId] = model;\n return nextId;\n};\n\nComponent.getNewId = list => {\n const count = Object.keys(list).length;\n // Testing 1000000 components with `+ 2` returns 0 collisions\n const ilen = count.toString().length + 2;\n const uid = (Math.random() + 1.1).toString(36).slice(-ilen);\n let newId = `i${uid}`;\n\n while (list[newId]) {\n newId = Component.getNewId(list);\n }\n\n return newId;\n};\n\nComponent.getIncrementId = (id, list, opts = {}) => {\n const { keepIds = [] } = opts;\n let counter = 1;\n let newId = id;\n\n if (keepIds.indexOf(id) < 0) {\n while (list[newId]) {\n counter++;\n newId = `${id}-${counter}`;\n }\n }\n\n return newId;\n};\n\n/**\n * The list of components is taken from the Components module.\n * Initially, the list, was set statically on the Component object but it was\n * not ok, as it was shared between multiple editor instances\n * @private\n */\nComponent.getList = model => {\n const { opt = {} } = model;\n const { domc, em } = opt;\n const dm = domc || (em && em.get('DomComponents'));\n return dm ? dm.componentsById : {};\n};\n\n/**\n * This method checks, for each parsed component and style object\n * (are not Components/CSSRules yet), for duplicated id and fixes them\n * This method is used in Components.js just after the parsing\n * @private\n */\nComponent.checkId = (components, styles = [], list = {}, opts = {}) => {\n const comps = isArray(components) ? components : [components];\n const { keepIds = [] } = opts;\n comps.forEach(comp => {\n const { attributes = {}, components } = comp;\n const { id } = attributes;\n\n // Check if we have collisions with current components\n if (id && list[id] && keepIds.indexOf(id) < 0) {\n const newId = Component.getIncrementId(id, list);\n attributes.id = newId;\n // Update passed styles\n isArray(styles) &&\n styles.forEach(style => {\n const { selectors } = style;\n selectors.forEach((sel, idx) => {\n if (sel === `#${id}`) selectors[idx] = `#${newId}`;\n });\n });\n }\n\n components && Component.checkId(components, styles, list, opts);\n });\n};\n\nComponent.getDefaults = function () {\n return result(this.prototype, 'defaults');\n};\n\nComponent.prototype.defaults = {\n tagName: 'div',\n type: '',\n name: '',\n removable: true,\n draggable: true,\n droppable: true,\n badgable: true,\n stylable: true,\n 'stylable-require': '',\n 'style-signature': '',\n unstylable: '',\n highlightable: true,\n copyable: true,\n resizable: false,\n editable: false,\n layerable: true,\n selectable: true,\n hoverable: true,\n void: false,\n state: '', // Indicates if the component is in some CSS state like ':hover', ':active', etc.\n status: '', // State, eg. 'selected'\n content: '',\n icon: '',\n style: '',\n styles: '', // Component related styles\n classes: '', // Array of classes\n script: '',\n 'script-props': '',\n 'script-export': '',\n attributes: '',\n traits: ['id', 'title'],\n propagate: '',\n dmode: '',\n toolbar: null,\n [keySymbol]: 0,\n [keySymbols]: 0,\n [keySymbolOvrd]: 0,\n _undo: true,\n _undoexc: ['status', 'open'],\n};\n","import Backbone from 'backbone';\nimport { isEmpty, isArray, isString, isFunction, each, includes, extend, flatten, debounce } from 'underscore';\nimport Component, { keySymbol, keySymbols } from './Component';\n\nexport const getComponentIds = (cmp, res = []) => {\n if (!cmp) return [];\n const cmps = isArray(cmp) || isFunction(cmp.map) ? cmp : [cmp];\n cmps.map(cmp => {\n res.push(cmp.getId());\n getComponentIds(cmp.components().models, res);\n });\n return res;\n};\n\nconst getComponentsFromDefs = (items, all = {}, opts = {}) => {\n const itms = isArray(items) ? items : [items];\n\n return itms.map(item => {\n const { attributes = {}, components, tagName } = item;\n const { id } = attributes;\n let result = item;\n\n if (id && all[id]) {\n result = all[id];\n tagName && result.set({ tagName }, { ...opts, silent: true });\n }\n\n if (components) {\n const newComponents = getComponentsFromDefs(components, all);\n\n if (isFunction(result.components)) {\n const cmps = result.components();\n cmps.length > 0 && cmps.reset(newComponents, opts);\n } else {\n result.components = newComponents;\n }\n }\n\n return result;\n });\n};\n\nexport default Backbone.Collection.extend({\n initialize(models, opt = {}) {\n this.opt = opt;\n this.listenTo(this, 'add', this.onAdd);\n this.listenTo(this, 'remove', this.removeChildren);\n this.listenTo(this, 'reset', this.resetChildren);\n const { em, config } = opt;\n this.config = config;\n this.em = em;\n this.domc = opt.domc || (em && em.get('DomComponents'));\n },\n\n resetChildren(models, opts = {}) {\n const coll = this;\n const prev = opts.previousModels || [];\n const toRemove = prev.filter(prev => !models.get(prev.cid));\n const newIds = getComponentIds(models);\n opts.keepIds = getComponentIds(prev).filter(pr => newIds.indexOf(pr) >= 0);\n toRemove.forEach(md => this.removeChildren(md, coll, opts));\n models.each(model => this.onAdd(model));\n },\n\n resetFromString(input = '', opts = {}) {\n opts.keepIds = getComponentIds(this);\n const { domc } = this;\n const allByID = domc?.allById() || {};\n const parsed = this.parseString(input, opts);\n const cmps = isArray(parsed) ? parsed : [parsed];\n const newCmps = getComponentsFromDefs(cmps, allByID, opts);\n this.reset(newCmps, opts);\n this.em?.trigger('component:content', this.parent, opts, input);\n },\n\n removeChildren(removed, coll, opts = {}) {\n // Removing a parent component can cause this function\n // to be called with an already removed child element\n if (!removed) {\n return;\n }\n\n const { domc, em } = this;\n const isTemp = opts.temporary || opts.fromUndo;\n removed.prevColl = this; // This one is required for symbols\n\n if (!isTemp) {\n // Remove the component from the global list\n const id = removed.getId();\n const sels = em.get('SelectorManager').getAll();\n const rules = em.get('CssComposer').getAll();\n const canRemoveStyle = (opts.keepIds || []).indexOf(id) < 0;\n const allByID = domc ? domc.allById() : {};\n delete allByID[id];\n\n // Remove all component related styles\n const rulesRemoved = canRemoveStyle\n ? rules.remove(\n rules.filter(r => r.getSelectors().getFullString() === `#${id}`),\n opts\n )\n : [];\n\n // Clean selectors\n sels.remove(rulesRemoved.map(rule => rule.getSelectors().at(0)));\n\n if (!removed.opt.temporary) {\n em.get('Commands').run('core:component-style-clear', {\n target: removed,\n });\n removed.removed();\n removed.trigger('removed');\n em.trigger('component:remove', removed);\n }\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n }\n\n // Remove stuff registered in DomComponents.handleChanges\n const inner = removed.components();\n em.stopListening(inner);\n em.stopListening(removed);\n em.stopListening(removed.get('classes'));\n removed.__postRemove();\n },\n\n model(attrs, options) {\n const { opt } = options.collection;\n const { em } = opt;\n let model;\n const df = em.get('DomComponents').componentTypes;\n options.em = em;\n options.config = opt.config;\n options.componentTypes = df;\n options.domc = opt.domc;\n\n for (let it = 0; it < df.length; it++) {\n const dfId = df[it].id;\n if (dfId == attrs.type) {\n model = df[it].model;\n break;\n }\n }\n\n // If no model found, get the default one\n if (!model) {\n model = df[df.length - 1].model;\n em &&\n attrs.type &&\n em.logWarning(`Component type '${attrs.type}' not found`, {\n attrs,\n options,\n });\n }\n\n return new model(attrs, options);\n },\n\n parseString(value, opt = {}) {\n const { em, domc } = this;\n const cssc = em.get('CssComposer');\n const parsed = em.get('Parser').parseHtml(value);\n // We need this to avoid duplicate IDs\n Component.checkId(parsed.html, parsed.css, domc.componentsById, opt);\n\n if (parsed.css && cssc && !opt.temporary) {\n const { at, ...optsToPass } = opt;\n cssc.addCollection(parsed.css, {\n ...optsToPass,\n extend: 1,\n });\n }\n\n return parsed.html;\n },\n\n add(models, opt = {}) {\n opt.keepIds = [...(opt.keepIds || []), ...getComponentIds(opt.previousModels)];\n\n if (isString(models)) {\n models = this.parseString(models, opt);\n } else if (isArray(models)) {\n models = [...models];\n models.forEach((item, index) => {\n if (isString(item)) {\n const nodes = this.parseString(item, opt);\n models[index] = isArray(nodes) && !nodes.length ? null : nodes;\n }\n });\n }\n\n const isMult = isArray(models);\n models = (isMult ? models : [models]).filter(i => i).map(model => this.processDef(model));\n models = isMult ? flatten(models, 1) : models[0];\n\n const result = Backbone.Collection.prototype.add.apply(this, [models, opt]);\n this.__firstAdd = result;\n return result;\n },\n\n /**\n * Process component definition.\n */\n processDef(mdl) {\n // Avoid processing Models\n if (mdl.cid && mdl.ccid) return mdl;\n const { em, config = {} } = this;\n const { processor } = config;\n let model = mdl;\n\n if (processor) {\n model = { ...model }; // Avoid 'Cannot delete property ...'\n const modelPr = processor(model);\n if (modelPr) {\n each(model, (val, key) => delete model[key]);\n extend(model, modelPr);\n }\n }\n\n // React JSX preset\n if (model.$$typeof && typeof model.props == 'object') {\n model = { ...model };\n model.props = { ...model.props };\n const domc = em.get('DomComponents');\n const parser = em.get('Parser');\n const { parserHtml } = parser;\n\n each(model, (value, key) => {\n if (!includes(['props', 'type'], key)) delete model[key];\n });\n const { props } = model;\n const comps = props.children;\n delete props.children;\n delete model.props;\n const res = parserHtml.splitPropsFromAttr(props);\n model.attributes = res.attrs;\n\n if (comps) {\n model.components = comps;\n }\n if (!model.type) {\n model.type = 'textnode';\n } else if (!domc.getType(model.type)) {\n model.tagName = model.type;\n delete model.type;\n }\n\n extend(model, res.props);\n }\n\n return model;\n },\n\n onAdd(model, c, opts = {}) {\n const { domc, em } = this;\n const style = model.getStyle();\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n domc && domc.Component.ensureInList(model);\n\n if (!isEmpty(style) && !avoidInline && em && em.get && em.getConfig('forceClass') && !opts.temporary) {\n const name = model.cid;\n const rule = em.get('CssComposer').setClassRule(name, style);\n model.setStyle({});\n model.addClass(name);\n }\n\n model.__postAdd({ recursive: 1 });\n this.__onAddEnd();\n },\n\n __onAddEnd: debounce(function () {\n // TODO to check symbols on load, probably this might be removed as symbols\n // are always recovered from the model\n // const { domc } = this;\n // const allComp = (domc && domc.allById()) || {};\n // const firstAdd = this.__firstAdd;\n // const toCheck = isArray(firstAdd) ? firstAdd : [firstAdd];\n // const silent = { silent: true };\n // const onAll = comps => {\n // comps.forEach(comp => {\n // const symbol = comp.get(keySymbols);\n // const symbolOf = comp.get(keySymbol);\n // if (symbol && isArray(symbol) && isString(symbol[0])) {\n // comp.set(\n // keySymbols,\n // symbol.map(smb => allComp[smb]).filter(i => i),\n // silent\n // );\n // }\n // if (isString(symbolOf)) {\n // comp.set(keySymbol, allComp[symbolOf], silent);\n // }\n // onAll(comp.components());\n // });\n // };\n // onAll(toCheck);\n }),\n});\n","import Backbone from 'backbone';\nimport { isEmpty, each, keys } from 'underscore';\nimport Components from '../model/Components';\nimport ComponentsView from './ComponentsView';\nimport Selectors from 'selector_manager/model/Selectors';\nimport { replaceWith } from 'utils/dom';\nimport { setViewEl } from 'utils/mixins';\n\nexport default Backbone.View.extend({\n className() {\n return this.getClasses();\n },\n\n tagName() {\n return this.model.get('tagName');\n },\n\n initialize(opt = {}) {\n const model = this.model;\n const config = opt.config || {};\n const em = config.em;\n const modelOpt = model.opt || {};\n const { $el, el } = this;\n this.opts = opt;\n this.modelOpt = modelOpt;\n this.config = config;\n this.em = em || '';\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.attr = model.get('attributes');\n this.classe = this.attr.class || [];\n this.listenTo(model, 'change:style', this.updateStyle);\n this.listenTo(model, 'change:attributes', this.renderAttributes);\n this.listenTo(model, 'change:highlightable', this.updateHighlight);\n this.listenTo(model, 'change:status', this.updateStatus);\n this.listenTo(model, 'change:script rerender', this.reset);\n this.listenTo(model, 'change:content', this.updateContent);\n this.listenTo(model, 'change', this.handleChange);\n this.listenTo(model, 'active', this.onActive);\n this.listenTo(model, 'disable', this.onDisable);\n $el.data('model', model);\n setViewEl(el, this);\n model.view = this;\n this._getFrame() && model.views.push(this);\n this.initClasses();\n this.initComponents({ avoidRender: 1 });\n this.events = {\n ...this.events,\n dragstart: 'handleDragStart',\n };\n this.delegateEvents();\n !modelOpt.temporary && this.init(this._clbObj());\n },\n\n __isDraggable() {\n const { model, config } = this;\n const { draggable } = model.attributes;\n return config.draggableComponents && draggable;\n },\n\n _clbObj() {\n const { em, model, el } = this;\n return {\n editor: em && em.getEditor(),\n model,\n el,\n };\n },\n\n /**\n * Initialize callback\n */\n init() {},\n\n /**\n * Remove callback\n */\n removed() {},\n\n /**\n * Callback executed when the `active` event is triggered on component\n */\n onActive() {},\n\n /**\n * Callback executed when the `disable` event is triggered on component\n */\n onDisable() {},\n\n remove() {\n Backbone.View.prototype.remove.apply(this, arguments);\n const { model, $el } = this;\n const { views } = model;\n const frame = this._getFrame() || {};\n model.components().forEach(comp => {\n const view = comp.getView(frame.model);\n view?.remove();\n });\n this.childrenView?.remove();\n views.splice(views.indexOf(this), 1);\n this.removed(this._clbObj());\n $el.data({ model: '', collection: '', view: '' });\n // delete model.view; // Sorter relies on this property\n return this;\n },\n\n handleDragStart(event) {\n if (!this.__isDraggable()) return false;\n event.stopPropagation();\n event.preventDefault();\n this.em.get('Commands').run('tlb-move', {\n target: this.model,\n event,\n });\n },\n\n initClasses() {\n const { model } = this;\n const event = 'change:classes';\n const classes = model.get('classes');\n\n if (classes instanceof Selectors) {\n this.stopListening(model, event, this.initClasses);\n this.listenTo(model, event, this.initClasses);\n this.listenTo(classes, 'add remove change', this.updateClasses);\n classes.length && this.importClasses();\n }\n },\n\n initComponents(opts = {}) {\n const { model, $el, childrenView } = this;\n const event = 'change:components';\n const comps = model.get('components');\n const toListen = [model, event, this.initComponents];\n\n if (comps instanceof Components) {\n $el.data('collection', comps);\n childrenView && childrenView.remove();\n this.stopListening(...toListen);\n !opts.avoidRender && this.renderChildren();\n this.listenTo(...toListen);\n }\n },\n\n /**\n * Handle any property change\n * @private\n */\n handleChange() {\n const { model } = this;\n const chgArr = keys(model.changed);\n if (chgArr.length === 1 && chgArr[0] === 'status') return;\n model.emitUpdate();\n\n for (let prop in model.changed) {\n model.emitUpdate(prop);\n }\n },\n\n /**\n * Import, if possible, classes inside main container\n * @private\n * */\n importClasses() {\n var clm = this.config.em.get('SelectorManager');\n\n if (clm) {\n this.model.get('classes').each(m => {\n clm.add(m.get('name'));\n });\n }\n },\n\n /**\n * Update item on status change\n * @param {Event} e\n * @private\n * */\n updateStatus(opts = {}) {\n const { em } = this;\n const { extHl } = em ? em.get('Canvas').getConfig() : {};\n const el = this.el;\n const status = this.model.get('status');\n const ppfx = this.ppfx;\n const selectedCls = `${ppfx}selected`;\n const selectedParentCls = `${selectedCls}-parent`;\n const freezedCls = `${ppfx}freezed`;\n const hoveredCls = `${ppfx}hovered`;\n const toRemove = [selectedCls, selectedParentCls, freezedCls, hoveredCls];\n const selCls = extHl && !opts.noExtHl ? '' : selectedCls;\n this.$el.removeClass(toRemove.join(' '));\n var actualCls = el.getAttribute('class') || '';\n var cls = '';\n\n switch (status) {\n case 'selected':\n cls = `${actualCls} ${selCls}`;\n break;\n case 'selected-parent':\n cls = `${actualCls} ${selectedParentCls}`;\n break;\n case 'freezed':\n cls = `${actualCls} ${freezedCls}`;\n break;\n case 'freezed-selected':\n cls = `${actualCls} ${freezedCls} ${selCls}`;\n break;\n case 'hovered':\n cls = !opts.avoidHover ? `${actualCls} ${hoveredCls}` : '';\n break;\n }\n\n cls = cls.trim();\n cls && el.setAttribute('class', cls);\n },\n\n /**\n * Update highlight attribute\n * @private\n * */\n updateHighlight() {\n const { model } = this;\n const isTextable = model.get('textable');\n const hl = model.get('highlightable') && (isTextable || !model.isChildOf('text'));\n this.setAttribute('data-gjs-highlightable', hl ? true : '');\n },\n\n /**\n * Update style attribute\n * @private\n * */\n updateStyle(m, v, opts = {}) {\n const { model, em } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const style = model.getStyle();\n !isEmpty(style) && model.setStyle(style);\n } else {\n this.setAttribute('style', model.styleToString(opts));\n }\n },\n\n /**\n * Update classe attribute\n * @private\n * */\n updateClasses() {\n const str = this.model.get('classes').pluck('name').join(' ');\n this.setAttribute('class', str);\n\n // Regenerate status class\n this.updateStatus();\n this.onAttrUpdate();\n },\n\n /**\n * Update single attribute\n * @param {[type]} name [description]\n * @param {[type]} value [description]\n */\n setAttribute(name, value) {\n const el = this.$el;\n value ? el.attr(name, value) : el.removeAttr(name);\n },\n\n /**\n * Get classes from attributes.\n * This method is called before initialize\n *\n * @return {Array}|null\n * @private\n * */\n getClasses() {\n return this.model.getClasses().join(' ');\n },\n\n /**\n * Update attributes\n * @private\n * */\n updateAttributes() {\n const attrs = [];\n const { model, $el, el } = this;\n const { textable, type } = model.attributes;\n\n const defaultAttr = {\n id: model.getId(),\n 'data-gjs-type': type || 'default',\n ...(this.__isDraggable() && { draggable: true }),\n ...(textable && { contenteditable: 'false' }),\n };\n\n // Remove all current attributes\n each(el.attributes, attr => attrs.push(attr.nodeName));\n attrs.forEach(attr => $el.removeAttr(attr));\n this.updateStyle();\n this.updateHighlight();\n const attr = {\n ...defaultAttr,\n ...model.getAttributes(),\n };\n\n // Remove all `false` attributes\n keys(attr).forEach(key => attr[key] === false && delete attr[key]);\n\n $el.attr(attr);\n },\n\n /**\n * Update component content\n * @private\n * */\n updateContent() {\n const content = this.model.get('content');\n const hasComps = this.model.components().length;\n this.getChildrenContainer().innerHTML = hasComps ? '' : content;\n },\n\n /**\n * Prevent default helper\n * @param {Event} e\n * @private\n */\n prevDef(e) {\n e.preventDefault();\n },\n\n /**\n * Render component's script\n * @private\n */\n updateScript() {\n const { model, em } = this;\n if (!model.get('script')) return;\n em && em.get('Canvas').getCanvasView().updateScript(this);\n },\n\n /**\n * Return children container\n * Differently from a simple component where children container is the\n * component itself\n * \n * \n * \n * You could have the children container more deeper\n * \n *
\n *
\n *
\n *
\n * \n *
\n *
\n *
\n * @return HTMLElement\n * @private\n */\n getChildrenContainer() {\n var container = this.el;\n\n if (typeof this.getChildrenSelector == 'function') {\n container = this.el.querySelector(this.getChildrenSelector());\n } else if (typeof this.getTemplate == 'function') {\n // Need to find deepest first child\n }\n\n return container;\n },\n\n /**\n * This returns rect informations not affected by the canvas zoom.\n * The method `getBoundingClientRect` doesn't work here and we\n * have to take in account offsetParent\n */\n getOffsetRect() {\n const rect = {};\n const target = this.el;\n let gtop = 0;\n let gleft = 0;\n\n const assignRect = el => {\n const { offsetParent } = el;\n\n if (offsetParent) {\n gtop += offsetParent.offsetTop;\n gleft += offsetParent.offsetLeft;\n assignRect(offsetParent);\n } else {\n rect.top = target.offsetTop + gtop;\n rect.left = target.offsetLeft + gleft;\n rect.bottom = rect.top + target.offsetHeight;\n rect.right = rect.left + target.offsetWidth;\n }\n };\n assignRect(target);\n\n return rect;\n },\n\n isInViewport({ rect } = {}) {\n const { el } = this;\n const elDoc = el.ownerDocument;\n const { body } = elDoc;\n const { frameElement } = elDoc.defaultView;\n const { top, left } = rect || this.getOffsetRect();\n const frame = this._getFrame().getOffsetRect();\n\n return (\n top >= frame.scrollTop &&\n left >= frame.scrollLeft &&\n top <= frame.scrollBottom &&\n left <= frameElement.offsetWidth + body.scrollLeft\n );\n },\n\n scrollIntoView(opts = {}) {\n const rect = this.getOffsetRect();\n const isInViewport = this.isInViewport({ rect });\n\n if (!isInViewport || opts.force) {\n const { el } = this;\n\n // PATCH: scrollIntoView won't work with multiple requests from iframes\n if (opts.behavior !== 'smooth') {\n el.ownerDocument.defaultView.scrollTo(0, rect.top);\n } else {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n ...opts,\n });\n }\n }\n },\n\n /**\n * Recreate the element of the view\n */\n reset() {\n const { el } = this;\n this.el = '';\n this._ensureElement();\n this._setData();\n replaceWith(el, this.el);\n this.render();\n },\n\n _setData() {\n const { model } = this;\n const collection = model.components();\n const view = this;\n this.$el.data({ model, collection, view });\n },\n\n _getFrame() {\n return this.config.frameView;\n },\n\n /**\n * Render children components\n * @private\n */\n renderChildren() {\n this.updateContent();\n const container = this.getChildrenContainer();\n const view =\n this.childrenView ||\n new ComponentsView({\n collection: this.model.get('components'),\n config: this.config,\n componentTypes: this.opts.componentTypes,\n });\n\n view.render(container);\n this.childrenView = view;\n const childNodes = Array.prototype.slice.call(view.el.childNodes);\n\n for (var i = 0, len = childNodes.length; i < len; i++) {\n container.appendChild(childNodes.shift());\n }\n },\n\n renderAttributes() {\n this.updateAttributes();\n this.updateClasses();\n },\n\n onAttrUpdate() {},\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.renderChildren();\n this.updateScript();\n setViewEl(this.el, this);\n this.postRender();\n\n return this;\n },\n\n postRender() {\n if (!this.modelOpt.temporary) {\n this.onRender(this._clbObj());\n }\n },\n\n onRender() {},\n});\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\n\nexport default Backbone.View.extend({\n initialize(o) {\n this.opts = o || {};\n this.config = o.config || {};\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.resetChildren);\n this.listenTo(coll, 'remove', this.removeChildren);\n },\n\n removeChildren(removed, coll, opts = {}) {\n removed.views.forEach(view => {\n if (!view) return;\n const { childrenView, scriptContainer } = view;\n childrenView && childrenView.stopListening();\n scriptContainer && scriptContainer.remove();\n view.remove.apply(view);\n });\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n },\n\n /**\n * Add to collection\n * @param {Model} model\n * @param {Collection} coll\n * @param {Object} opts\n * @private\n * */\n addTo(model, coll = {}, opts = {}) {\n const em = this.config.em;\n const i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n\n if (em && !opts.temporary) {\n const triggerAdd = model => {\n em.trigger('component:add', model);\n model.components().forEach(comp => triggerAdd(comp));\n };\n triggerAdd(model);\n }\n },\n\n /**\n * Add new object to collection\n * @param {Object} Model\n * @param {Object} Fragment collection\n * @param {Integer} Index of append\n *\n * @return {Object} Object rendered\n * @private\n * */\n addToCollection(model, fragmentEl, index) {\n if (!this.compView) this.compView = require('./ComponentView').default;\n const { config, opts, em } = this;\n const fragment = fragmentEl || null;\n const { frameView = {} } = config;\n const sameFrameView = frameView.model && model.getView(frameView.model);\n const dt = opts.componentTypes || (em && em.get('DomComponents').getTypes());\n const type = model.get('type') || 'default';\n let viewObject = this.compView;\n\n for (let it = 0; it < dt.length; it++) {\n if (dt[it].id == type) {\n viewObject = dt[it].view;\n break;\n }\n }\n const view =\n sameFrameView ||\n new viewObject({\n model,\n config,\n componentTypes: dt,\n });\n let rendered;\n\n try {\n // Avoid breaking on DOM rendering (eg. invalid attribute name)\n rendered = view.render().el;\n } catch (error) {\n rendered = document.createTextNode('');\n em.logError(error);\n }\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n const parent = this.parentEl;\n const children = parent.childNodes;\n\n if (!isUndefined(index)) {\n const lastIndex = children.length == index;\n\n // If the added model is the last of collection\n // need to change the logic of append\n if (lastIndex) {\n index--;\n }\n\n // In case the added is new in the collection index will be -1\n if (lastIndex || !children.length) {\n parent.appendChild(rendered);\n } else {\n parent.insertBefore(rendered, children[index]);\n }\n } else {\n parent.appendChild(rendered);\n }\n }\n\n if (!model.opt.temporary) {\n em?.trigger('component:mount', model);\n }\n\n return rendered;\n },\n\n resetChildren(models, { previousModels = [] } = {}) {\n this.parentEl.innerHTML = '';\n previousModels.forEach(md => this.removeChildren(md, this.collection));\n models.each(model => this.addToCollection(model));\n },\n\n render(parent) {\n const el = this.el;\n const frag = document.createDocumentFragment();\n this.parentEl = parent || this.el;\n this.collection.each(model => this.addToCollection(model, frag));\n el.innerHTML = '';\n el.appendChild(frag);\n return this;\n },\n});\n","import { isString, isArray, keys, isUndefined } from 'underscore';\nimport { shallowDiff } from 'utils/mixins';\nimport ParserHtml from 'parser/model/ParserHtml';\n\nconst parseStyle = ParserHtml().parseStyle;\n\nexport default {\n parseStyle,\n\n /**\n * To trigger the style change event on models I have to\n * pass a new object instance\n * @param {Object} prop\n * @return {Object}\n */\n extendStyle(prop) {\n return { ...this.getStyle(), ...prop };\n },\n\n /**\n * Get style object\n * @return {Object}\n */\n getStyle(prop) {\n const style = this.get('style') || {};\n const result = { ...style };\n return prop && isString(prop) ? result[prop] : result;\n },\n\n /**\n * Set new style object\n * @param {Object|string} prop\n * @param {Object} opts\n * @return {Object} Applied properties\n */\n setStyle(prop = {}, opts = {}) {\n if (isString(prop)) {\n prop = parseStyle(prop);\n }\n\n const propOrig = this.getStyle(opts);\n const propNew = { ...prop };\n this.set('style', propNew, opts);\n const diff = shallowDiff(propOrig, propNew);\n keys(diff).forEach(pr => {\n const em = this.em;\n if (opts.noEvent) return;\n this.trigger(`change:style:${pr}`);\n if (em) {\n em.trigger(`styleable:change`, this, pr, opts);\n em.trigger(`styleable:change:${pr}`, this, pr, opts);\n }\n });\n\n return propNew;\n },\n\n /**\n * Add style property\n * @param {Object|string} prop\n * @param {string} value\n * @example\n * this.addStyle({color: 'red'});\n * this.addStyle('color', 'blue');\n */\n addStyle(prop, value = '', opts = {}) {\n if (typeof prop == 'string') {\n prop = {\n prop: value,\n };\n } else {\n opts = value || {};\n }\n\n prop = this.extendStyle(prop);\n this.setStyle(prop, opts);\n },\n\n /**\n * Remove style property\n * @param {string} prop\n */\n removeStyle(prop) {\n let style = this.getStyle();\n delete style[prop];\n this.setStyle(style);\n },\n\n /**\n * Returns string of style properties\n * @param {Object} [opts={}] Options\n * @return {String}\n */\n styleToString(opts = {}) {\n const result = [];\n const style = this.getStyle(opts);\n\n for (let prop in style) {\n const imp = opts.important;\n const important = isArray(imp) ? imp.indexOf(prop) >= 0 : imp;\n const value = `${style[prop]}${important ? ' !important' : ''}`;\n const propPrv = prop.substr(0, 2) == '__';\n value && !propPrv && result.push(`${prop}:${value};`);\n }\n\n return result.join('');\n },\n\n getSelectors() {\n return this.get('selectors') || this.get('classes');\n },\n\n getSelectorsString(opts) {\n return this.selectorsToString ? this.selectorsToString(opts) : this.getSelectors().getFullString();\n },\n\n _validate(attr, opts) {\n const { style } = attr;\n const em = this.em || opts.em;\n const onBeforeStyle = em?.get('CssComposer')?.getConfig().onBeforeStyle;\n\n if (style && onBeforeStyle) {\n const newStyle = onBeforeStyle({ ...style });\n newStyle &&\n keys(style).map(prop => {\n if (isUndefined(newStyle[prop])) delete attr.style[prop];\n });\n newStyle &&\n keys(newStyle).map(prop => {\n attr.style[prop] = newStyle[prop];\n });\n }\n\n return true;\n },\n};\n","import { isFunction } from 'underscore';\nimport Backbone from 'backbone';\n\nconst Model = Backbone.Model;\nconst View = Backbone.View;\n\nexport default {\n types: [],\n\n initialize(models, opts = {}) {\n const { em } = opts;\n this.em = em;\n this.opts = opts;\n this.model = (attrs = {}, options = {}) => {\n let Model, View, type;\n\n if (attrs && attrs.type) {\n const baseType = this.getBaseType();\n type = this.getType(attrs.type);\n Model = type ? type.model : baseType.model;\n View = type ? type.view : baseType.view;\n } else {\n const typeFound = this.recognizeType(attrs);\n type = typeFound.type;\n Model = type.model;\n View = type.view;\n attrs = typeFound.attributes;\n }\n\n const model = new Model(attrs, { ...options, em });\n model.typeView = View;\n return model;\n };\n const init = this.init && this.init.bind(this);\n init && init();\n },\n\n /**\n * Recognize type by any value\n * @param {mixed} value\n * @return {Object} Found type\n */\n recognizeType(value) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n let typeFound = type.isType(value);\n typeFound = typeof typeFound == 'boolean' && typeFound ? { type: type.id } : typeFound;\n\n if (typeFound) {\n return {\n type,\n attributes: typeFound,\n };\n }\n }\n\n // If, for any reason, the type is not found it'll return the base one\n return {\n type: this.getBaseType(),\n attributes: value,\n };\n },\n\n /**\n * Returns the base type (last object in the stack)\n * @return {Object}\n */\n getBaseType() {\n const types = this.getTypes();\n return types[types.length - 1];\n },\n\n /**\n * Get types\n * @return {Array}\n */\n getTypes() {\n return this.types;\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @return {Object} Type definition\n */\n getType(id) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (type.id === id) {\n return type;\n }\n }\n },\n\n /**\n * Add new type\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n const type = this.getType(id);\n const baseType = this.getBaseType();\n const ModelInst = type ? type.model : baseType.model;\n const ViewInst = type ? type.view : baseType.view;\n let { model, view, isType } = definition;\n model = model instanceof Model || isFunction(model) ? model : ModelInst.extend(model || {});\n view = view instanceof View || isFunction(view) ? view : ViewInst.extend(view || {});\n\n // New API\n if (this.extendViewApi && !definition.model && !definition.view) {\n view = view.extend(definition);\n }\n\n if (type) {\n type.model = model;\n type.view = view;\n type.isType = isType || type.isType;\n } else {\n definition.id = id;\n definition.model = model;\n definition.view = view;\n definition.isType =\n isType ||\n function (value) {\n if (value && value.type == id) {\n return true;\n }\n };\n this.getTypes().unshift(definition);\n }\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default Backbone.View.extend({\n events: {\n change: 'handleChange',\n },\n\n template() {\n return ``;\n },\n\n inputClass() {\n return `${this.ppfx}field`;\n },\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n },\n\n initialize(opts = {}) {\n const ppfx = opts.ppfx || '';\n this.opts = opts;\n this.ppfx = ppfx;\n this.em = opts.target || {};\n !opts.onChange && this.listenTo(this.model, 'change:value', this.handleModelChange);\n },\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n },\n\n /**\n * Set value to the input element\n * @param {string} value\n */\n setValue(value) {\n const model = this.model;\n let val = value || model.get('defaults');\n const input = this.getInputEl();\n input && (input.value = val);\n },\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange(model, value, opts) {\n this.setValue(value, opts);\n },\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n const value = this.getInputEl().value;\n this.__onInputChange(value);\n this.elementUpdated();\n },\n\n __onInputChange(value) {\n this.model.set({ value }, { fromInput: 1 });\n },\n\n /**\n * Get the input element\n * @return {HTMLElement}\n */\n getInputEl() {\n if (!this.inputEl) {\n const { model, opts } = this;\n const type = opts.type || 'text';\n const plh = model.get('placeholder') || model.get('defaults') || model.get('default') || '';\n this.inputEl = $(``);\n }\n\n return this.inputEl.get(0);\n },\n\n render() {\n this.inputEl = null;\n const el = this.$el;\n el.addClass(this.inputClass());\n el.html(this.template());\n el.find(`.${this.holderClass()}`).append(this.getInputEl());\n return this;\n },\n});\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport ColorPicker from 'utils/ColorPicker';\nimport Input from './Input';\n\nconst { $ } = Backbone;\n$ && ColorPicker($);\n\nconst getColor = color => {\n const name = color.getFormat() === 'name' && color.toName();\n const cl = color.getAlpha() == 1 ? color.toHexString() : color.toRgbString();\n return name || cl.replace(/ /g, '');\n};\n\nexport default Input.extend({\n template() {\n const ppfx = this.ppfx;\n return `\n
\n
\n
\n
\n
\n
\n `;\n },\n\n inputClass() {\n const ppfx = this.ppfx;\n return `${ppfx}field ${ppfx}field-color`;\n },\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n },\n\n remove() {\n Input.prototype.remove.apply(this, arguments);\n this.colorEl.spectrum('destroy');\n },\n\n handleChange(e) {\n e.stopPropagation();\n const { value } = e.target;\n if (isUndefined(value)) return;\n this.__onInputChange(value);\n },\n\n __onInputChange(val) {\n const { model, opts } = this;\n const { onChange } = opts;\n let value = val;\n const colorEl = this.getColorEl();\n\n // Check the color by using the ColorPicker's parser\n if (colorEl) {\n colorEl.spectrum('set', value);\n const tc = colorEl.spectrum('get');\n const color = value && getColor(tc);\n color && (value = color);\n }\n\n onChange ? onChange(value) : model.set({ value }, { fromInput: 1 });\n },\n\n /**\n * Set value to the model\n * @param {string} val\n * @param {Object} opts\n */\n setValue(val, opts = {}) {\n const { model } = this;\n const def = !isUndefined(opts.def) ? opts.def : model.get('defaults');\n const value = !isUndefined(val) ? val : !isUndefined(def) ? def : '';\n const inputEl = this.getInputEl();\n const colorEl = this.getColorEl();\n const valueClr = value != 'none' ? value : '';\n inputEl.value = value;\n colorEl.get(0).style.backgroundColor = valueClr;\n\n // This prevents from adding multiple thumbs in spectrum\n if (opts.fromTarget || (opts.fromInput && !opts.avoidStore)) {\n colorEl.spectrum('set', valueClr);\n this.noneColor = value == 'none';\n }\n },\n\n /**\n * Get the color input element\n * @return {HTMLElement}\n */\n getColorEl() {\n if (!this.colorEl) {\n const { em, model, opts } = this;\n const self = this;\n const ppfx = this.ppfx;\n const { onChange } = opts;\n\n var colorEl = $(`
`);\n var cpStyle = colorEl.get(0).style;\n var elToAppend = em && em.config ? em.config.el : '';\n var colorPickerConfig = (em && em.getConfig && em.getConfig('colorPicker')) || {};\n\n let changed = 0;\n let previousColor;\n this.$el.find(`[data-colorp-c]`).append(colorEl);\n colorEl.spectrum({\n color: model.getValue() || false,\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n palette: [],\n\n // config expanded here so that the functions below are not overridden\n ...colorPickerConfig,\n ...(model.get('colorPicker') || {}),\n\n move(color) {\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n onChange ? onChange(cl, true) : model.setValueFromInput(cl, 0);\n },\n change(color) {\n changed = 1;\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n if (onChange) {\n onChange(cl);\n } else {\n model.setValueFromInput(0, 0); // for UndoManager\n model.setValueFromInput(cl);\n }\n self.noneColor = 0;\n },\n show(color) {\n changed = 0;\n previousColor = onChange ? model.getValue({ noDefault: true }) : getColor(color);\n },\n hide(color) {\n if (!changed && (previousColor || onChange)) {\n if (self.noneColor) {\n previousColor = '';\n }\n cpStyle.backgroundColor = previousColor;\n colorEl.spectrum('set', previousColor);\n onChange ? onChange(previousColor, true) : model.setValueFromInput(previousColor, 0);\n }\n },\n });\n\n if (em && em.on) {\n this.listenTo(em, 'component:selected', () => {\n changed = 1;\n colorEl.spectrum('hide');\n });\n }\n\n this.colorEl = colorEl;\n }\n return this.colorEl;\n },\n\n render() {\n Input.prototype.render.call(this);\n // This will make the color input available on render\n this.getColorEl();\n return this;\n },\n});\n","// Without jquery I have to update few stuff\n//\n// Spectrum Colorpicker v1.8.0\n// https://github.com/bgrins/spectrum\n// Author: Brian Grinstead\n// License: MIT\nimport { hasWin } from 'utils/mixins';\n\nexport default function ($, undefined) {\n 'use strict';\n if (!hasWin()) return;\n\n var defaultOpts = {\n // Callbacks\n beforeShow: noop,\n move: noop,\n change: noop,\n show: noop,\n hide: noop,\n\n // Options\n color: false,\n flat: false,\n showInput: false,\n allowEmpty: false,\n showButtons: true,\n clickoutFiresChange: true,\n showInitial: false,\n showPalette: false,\n showPaletteOnly: false,\n hideAfterPaletteSelect: false,\n togglePaletteOnly: false,\n showSelectionPalette: true,\n localStorageKey: false,\n appendTo: 'body',\n maxSelectionSize: 7,\n cancelText: 'cancel',\n chooseText: 'choose',\n togglePaletteMoreText: 'more',\n togglePaletteLessText: 'less',\n clearText: 'Clear Color Selection',\n noColorSelectedText: 'No Color Selected',\n preferredFormat: false,\n className: '', // Deprecated - use containerClassName and replacerClassName instead.\n containerClassName: '',\n replacerClassName: '',\n showAlpha: false,\n theme: 'sp-light',\n palette: [['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00', '#008000', '#0000ff', '#4b0082', '#9400d3']],\n selectionPalette: [],\n disabled: false,\n offset: null,\n },\n spectrums = [],\n IE = !!/msie/i.exec(window.navigator.userAgent),\n rgbaSupport = (function () {\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n var elem = document.createElement('div');\n var style = elem.style;\n style.cssText = 'background-color:rgba(0,0,0,.5)';\n return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');\n })(),\n replaceInput = [\n \"
\",\n \"
\",\n \"
\",\n '
',\n ].join(''),\n markup = (function () {\n // IE does not support gradients with multiple stops, so we need to simulate\n // that for the rainbow slider with 8 divs that each have a single gradient\n var gradientFix = '';\n if (IE) {\n for (var i = 1; i <= 6; i++) {\n gradientFix += \"
\";\n }\n }\n\n return [\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"\",\n '
',\n '
',\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n '
',\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"
\",\n gradientFix,\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"\",\n '
',\n \"
\",\n \"
\",\n \"\",\n \"\",\n '
',\n '
',\n '
',\n ].join('');\n })();\n\n function paletteTemplate(p, color, className, opts) {\n var html = [];\n for (var i = 0; i < p.length; i++) {\n var current = p[i];\n if (current) {\n var tiny = tinycolor(current);\n var c = tiny.toHsl().l < 0.5 ? 'sp-thumb-el sp-thumb-dark' : 'sp-thumb-el sp-thumb-light';\n c += tinycolor.equals(color, current) ? ' sp-thumb-active' : '';\n var formattedString = tiny.toString(opts.preferredFormat || 'rgb');\n var swatchStyle = rgbaSupport ? 'background-color:' + tiny.toRgbString() : 'filter:' + tiny.toFilter();\n html.push(\n ''\n );\n } else {\n var cls = 'sp-clear-display';\n html.push(\n $('
')\n .append(\n $('').attr(\n 'title',\n opts.noColorSelectedText\n )\n )\n .html()\n );\n }\n }\n return \"
\" + html.join('') + '
';\n }\n\n function hideAll() {\n for (var i = 0; i < spectrums.length; i++) {\n if (spectrums[i]) {\n spectrums[i].hide();\n }\n }\n }\n\n function instanceOptions(o, callbackContext) {\n var opts = $.extend({}, defaultOpts, o);\n opts.callbacks = {\n move: bind(opts.move, callbackContext),\n change: bind(opts.change, callbackContext),\n show: bind(opts.show, callbackContext),\n hide: bind(opts.hide, callbackContext),\n beforeShow: bind(opts.beforeShow, callbackContext),\n };\n return opts;\n }\n\n function spectrum(element, o) {\n var opts = instanceOptions(o, element),\n flat = opts.flat,\n showSelectionPalette = opts.showSelectionPalette,\n localStorageKey = opts.localStorageKey,\n theme = opts.theme,\n callbacks = opts.callbacks,\n resize = throttle(reflow, 10),\n visible = false,\n isDragging = false,\n isDefault = true,\n dragWidth = 0,\n dragHeight = 0,\n dragHelperHeight = 0,\n slideHeight = 0,\n slideWidth = 0,\n alphaWidth = 0,\n alphaSlideHelperWidth = 0,\n slideHelperHeight = 0,\n currentHue = 0,\n currentSaturation = 0,\n currentValue = 0,\n currentAlpha = 1,\n palette = [],\n paletteArray = [],\n paletteLookup = {},\n selectionPalette = opts.selectionPalette.slice(0),\n maxSelectionSize = opts.maxSelectionSize,\n draggingClass = 'sp-dragging',\n shiftMovementDirection = null;\n\n var doc = element.ownerDocument,\n body = doc.body,\n boundElement = $(element),\n disabled = false,\n container = $(markup, doc).addClass(theme),\n pickerContainer = container.find('.sp-picker-container'),\n dragger = container.find('.sp-color'),\n dragHelper = container.find('.sp-dragger'),\n slider = container.find('.sp-hue'),\n slideHelper = container.find('.sp-slider'),\n alphaSliderInner = container.find('.sp-alpha-inner'),\n alphaSlider = container.find('.sp-alpha'),\n alphaSlideHelper = container.find('.sp-alpha-handle'),\n textInput = container.find('.sp-input'),\n paletteContainer = container.find('.sp-palette'),\n initialColorContainer = container.find('.sp-initial'),\n cancelButton = container.find('.sp-cancel'),\n clearButton = container.find('.sp-clear'),\n chooseButton = container.find('.sp-choose'),\n toggleButton = container.find('.sp-palette-toggle'),\n isInput = boundElement.is('input'),\n isInputTypeColor = isInput && boundElement.attr('type') === 'color' && inputTypeColorSupport(),\n shouldReplace = isInput && !flat,\n replacer = shouldReplace\n ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName)\n : $([]),\n offsetElement = shouldReplace ? replacer : boundElement,\n previewElement = replacer.find('.sp-preview-inner'),\n initialColor = opts.color || (isInput && boundElement.val()),\n colorOnShow = false,\n currentPreferredFormat = opts.preferredFormat,\n clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,\n isEmpty = !initialColor,\n allowEmpty = opts.allowEmpty && !isInputTypeColor;\n\n function applyOptions() {\n if (opts.showPaletteOnly) {\n opts.showPalette = true;\n }\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n\n if (opts.palette) {\n palette = opts.palette.slice(0);\n paletteArray = $.isArray(palette[0]) ? palette : [palette];\n paletteLookup = {};\n for (var i = 0; i < paletteArray.length; i++) {\n for (var j = 0; j < paletteArray[i].length; j++) {\n var rgb = tinycolor(paletteArray[i][j]).toRgbString();\n paletteLookup[rgb] = true;\n }\n }\n }\n\n container.toggleClass('sp-flat', flat);\n container.toggleClass('sp-input-disabled', !opts.showInput);\n container.toggleClass('sp-alpha-enabled', opts.showAlpha);\n container.toggleClass('sp-clear-enabled', allowEmpty);\n container.toggleClass('sp-buttons-disabled', !opts.showButtons);\n container.toggleClass('sp-palette-buttons-disabled', !opts.togglePaletteOnly);\n container.toggleClass('sp-palette-disabled', !opts.showPalette);\n container.toggleClass('sp-palette-only', opts.showPaletteOnly);\n container.toggleClass('sp-initial-disabled', !opts.showInitial);\n container.addClass(opts.className).addClass(opts.containerClassName);\n\n reflow();\n }\n\n function initialize() {\n if (IE) {\n container.find('*:not(input)').attr('unselectable', 'on');\n }\n\n applyOptions();\n\n if (shouldReplace) {\n boundElement.after(replacer).hide();\n }\n\n if (!allowEmpty) {\n clearButton.hide();\n }\n\n if (flat) {\n boundElement.after(container).hide();\n } else {\n var appendTo = opts.appendTo === 'parent' ? boundElement.parent() : $(opts.appendTo);\n if (appendTo.length !== 1) {\n appendTo = $('body');\n }\n\n appendTo.append(container);\n }\n\n updateSelectionPaletteFromStorage();\n\n offsetElement.bind('click.spectrum touchstart.spectrum', function (e) {\n if (!disabled) {\n toggle();\n }\n\n e.stopPropagation();\n\n if (!$(e.target).is('input')) {\n e.preventDefault();\n }\n });\n\n if (boundElement.is(':disabled') || opts.disabled === true) {\n disable();\n }\n\n // Prevent clicks from bubbling up to document. This would cause it to be hidden.\n container.click(stopPropagation);\n\n // Handle user typed input\n textInput.change(setFromTextInput);\n textInput.bind('paste', function () {\n setTimeout(setFromTextInput, 1);\n });\n textInput.keydown(function (e) {\n if (e.keyCode == 13) {\n setFromTextInput();\n }\n });\n\n cancelButton.text(opts.cancelText);\n cancelButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n revert();\n hide();\n });\n\n clearButton.attr('title', opts.clearText);\n clearButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n isEmpty = true;\n move();\n\n if (flat) {\n //for the flat style, this is a change event\n updateOriginalInput(true);\n }\n });\n\n chooseButton.text(opts.chooseText);\n chooseButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n if (IE && textInput.is(':focus')) {\n textInput.trigger('change');\n }\n\n if (isValid()) {\n updateOriginalInput(true);\n hide();\n }\n });\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n toggleButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n opts.showPaletteOnly = !opts.showPaletteOnly;\n\n // To make sure the Picker area is drawn on the right, next to the\n // Palette area (and not below the palette), first move the Palette\n // to the left to make space for the picker, plus 5px extra.\n // The 'applyOptions' function puts the whole container back into place\n // and takes care of the button-text and the sp-palette-only CSS class.\n if (!opts.showPaletteOnly && !flat) {\n container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));\n }\n applyOptions();\n });\n\n draggable(\n alphaSlider,\n function (dragX, dragY, e) {\n currentAlpha = dragX / alphaWidth;\n isEmpty = false;\n if (e.shiftKey) {\n currentAlpha = Math.round(currentAlpha * 10) / 10;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n slider,\n function (dragX, dragY) {\n currentHue = parseFloat(dragY / slideHeight);\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n dragger,\n function (dragX, dragY, e) {\n // shift+drag should snap the movement to either the x or y axis.\n if (!e.shiftKey) {\n shiftMovementDirection = null;\n } else if (!shiftMovementDirection) {\n var oldDragX = currentSaturation * dragWidth;\n var oldDragY = dragHeight - currentValue * dragHeight;\n var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);\n\n shiftMovementDirection = furtherFromX ? 'x' : 'y';\n }\n\n var setSaturation = !shiftMovementDirection || shiftMovementDirection === 'x';\n var setValue = !shiftMovementDirection || shiftMovementDirection === 'y';\n\n if (setSaturation) {\n currentSaturation = parseFloat(dragX / dragWidth);\n }\n if (setValue) {\n currentValue = parseFloat((dragHeight - dragY) / dragHeight);\n }\n\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n if (!!initialColor) {\n set(initialColor);\n\n // In case color was black - update the preview UI and set the format\n // since the set function will not run (default color is black).\n updateUI();\n currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).getFormat();\n\n addColorToSelectionPalette(initialColor);\n } else {\n updateUI();\n }\n\n if (flat) {\n show();\n }\n\n function paletteElementClick(e) {\n if (e.data && e.data.ignore) {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n } else {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n if (opts.hideAfterPaletteSelect) {\n updateOriginalInput(true);\n hide();\n }\n }\n\n return false;\n }\n\n var paletteEvent = IE ? 'mousedown.spectrum' : 'click.spectrum touchstart.spectrum';\n paletteContainer.delegate('.sp-thumb-el', paletteEvent, paletteElementClick);\n initialColorContainer.delegate('.sp-thumb-el:nth-child(1)', paletteEvent, { ignore: true }, paletteElementClick);\n }\n\n function updateSelectionPaletteFromStorage() {\n if (localStorageKey && window.localStorage) {\n // Migrate old palettes over to new format. May want to remove this eventually.\n try {\n var oldPalette = window.localStorage[localStorageKey].split(',#');\n if (oldPalette.length > 1) {\n delete window.localStorage[localStorageKey];\n $.each(oldPalette, function (i, c) {\n addColorToSelectionPalette(c);\n });\n }\n } catch (e) {}\n\n try {\n selectionPalette = window.localStorage[localStorageKey].split(';');\n } catch (e) {}\n }\n }\n\n function addColorToSelectionPalette(color) {\n if (showSelectionPalette) {\n var rgb = tinycolor(color).toRgbString();\n if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {\n selectionPalette.push(rgb);\n while (selectionPalette.length > maxSelectionSize) {\n selectionPalette.shift();\n }\n }\n\n if (localStorageKey && window.localStorage) {\n try {\n window.localStorage[localStorageKey] = selectionPalette.join(';');\n } catch (e) {}\n }\n }\n }\n\n function getUniqueSelectionPalette() {\n var unique = [];\n if (opts.showPalette) {\n for (var i = 0; i < selectionPalette.length; i++) {\n var rgb = tinycolor(selectionPalette[i]).toRgbString();\n\n if (!paletteLookup[rgb]) {\n unique.push(selectionPalette[i]);\n }\n }\n }\n\n return unique.reverse().slice(0, opts.maxSelectionSize);\n }\n\n function drawPalette() {\n var currentColor = get();\n\n var html = $.map(paletteArray, function (palette, i) {\n return paletteTemplate(palette, currentColor, 'sp-palette-row sp-palette-row-' + i, opts);\n });\n\n updateSelectionPaletteFromStorage();\n\n if (selectionPalette) {\n html.push(\n paletteTemplate(getUniqueSelectionPalette(), currentColor, 'sp-palette-row sp-palette-row-selection', opts)\n );\n }\n\n paletteContainer.html(html.join(''));\n }\n\n function drawInitial() {\n if (opts.showInitial) {\n var initial = colorOnShow;\n var current = get();\n initialColorContainer.html(paletteTemplate([initial, current], current, 'sp-palette-row-initial', opts));\n }\n }\n\n function dragStart() {\n if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {\n reflow();\n }\n isDragging = true;\n container.addClass(draggingClass);\n shiftMovementDirection = null;\n boundElement.trigger('dragstart.spectrum', [get()]);\n }\n\n function dragStop() {\n isDragging = false;\n container.removeClass(draggingClass);\n boundElement.trigger('dragstop.spectrum', [get()]);\n }\n\n function setFromTextInput() {\n var value = textInput.val();\n\n if ((value === null || value === '') && allowEmpty) {\n set(null);\n updateOriginalInput(true);\n } else {\n var tiny = tinycolor(value);\n if (tiny.isValid()) {\n set(tiny);\n updateOriginalInput(true);\n } else {\n textInput.addClass('sp-validation-error');\n }\n }\n }\n\n function toggle() {\n if (visible) {\n hide();\n } else {\n show();\n }\n }\n\n function show() {\n var event = $.Event('beforeShow.spectrum');\n\n if (visible) {\n reflow();\n return;\n }\n\n boundElement.trigger('beforeShow.spectrum', [get()]);\n\n if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {\n return;\n }\n\n hideAll();\n visible = true;\n\n var $doc = $(doc);\n $doc.bind('keydown.spectrum', onkeydown);\n $doc.bind('click.spectrum', clickout);\n $(window).bind('resize.spectrum', resize);\n replacer.addClass('sp-active');\n container.removeClass('sp-hidden');\n\n reflow();\n updateUI();\n\n colorOnShow = get();\n\n drawInitial();\n callbacks.show(colorOnShow);\n boundElement.trigger('show.spectrum', [colorOnShow]);\n }\n\n function onkeydown(e) {\n // Close on ESC\n if (e.keyCode === 27) {\n hide();\n }\n }\n\n function clickout(e) {\n // Return on right click.\n if (e.button == 2) {\n return;\n }\n\n // If a drag event was happening during the mouseup, don't hide\n // on click.\n if (isDragging) {\n return;\n }\n\n if (clickoutFiresChange) {\n updateOriginalInput(true);\n } else {\n revert();\n }\n hide();\n }\n\n function hide() {\n // Return if hiding is unnecessary\n if (!visible || flat) {\n return;\n }\n visible = false;\n\n $(doc).unbind('keydown.spectrum', onkeydown);\n $(doc).unbind('click.spectrum', clickout);\n $(window).unbind('resize.spectrum', resize);\n\n replacer.removeClass('sp-active');\n container.addClass('sp-hidden');\n\n callbacks.hide(get());\n boundElement.trigger('hide.spectrum', [get()]);\n }\n\n function revert() {\n set(colorOnShow, true);\n }\n\n function set(color, ignoreFormatChange) {\n if (tinycolor.equals(color, get())) {\n // Update UI just in case a validation error needs\n // to be cleared.\n updateUI();\n return;\n }\n\n var newColor, newHsv;\n if (!color && allowEmpty) {\n isEmpty = true;\n } else {\n isEmpty = false;\n isDefault = !color; // if no color is available an empty string will be passed. tinycolor will then set it to #000\n newColor = tinycolor(color);\n newHsv = newColor.toHsv();\n\n currentHue = (newHsv.h % 360) / 360;\n currentSaturation = newHsv.s;\n currentValue = newHsv.v;\n currentAlpha = newHsv.a;\n }\n updateUI();\n\n if (newColor && newColor.isValid() && !ignoreFormatChange) {\n currentPreferredFormat = opts.preferredFormat || newColor.getFormat();\n }\n }\n\n function get(opts) {\n opts = opts || {};\n\n if (allowEmpty && isEmpty) {\n return null;\n }\n\n return tinycolor.fromRatio(\n {\n h: currentHue,\n s: currentSaturation,\n v: currentValue,\n a: Math.round(currentAlpha * 100) / 100,\n },\n { format: opts.format || currentPreferredFormat }\n );\n }\n\n function isValid() {\n return !textInput.hasClass('sp-validation-error');\n }\n\n function move() {\n updateUI();\n\n callbacks.move(get());\n boundElement.trigger('move.spectrum', [get()]);\n }\n\n function updateUI() {\n textInput.removeClass('sp-validation-error');\n\n updateHelperLocations();\n\n // Update dragger background color (gradients take care of saturation and value).\n var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });\n dragger.css('background-color', flatColor.toHexString());\n\n // Get a format that alpha will be included in (hex and names ignore alpha)\n var format = currentPreferredFormat;\n if (currentAlpha < 1 && !(currentAlpha === 0 && format === 'name')) {\n if (format === 'hex' || format === 'hex3' || format === 'hex6' || format === 'name') {\n format = 'rgb';\n }\n }\n\n var realColor = get({ format: format }),\n displayColor = '';\n\n //reset background info for preview element\n previewElement.removeClass('sp-clear-display');\n previewElement.css('background-color', 'transparent');\n\n if (!realColor && allowEmpty) {\n // Update the replaced elements background with icon indicating no color selection\n previewElement.addClass('sp-clear-display');\n } else {\n var realHex = realColor.toHexString(),\n realRgb = realColor.toRgbString();\n\n // Update the replaced elements background color (with actual selected color)\n if (rgbaSupport || realColor.alpha === 1) {\n previewElement.css('background-color', realRgb);\n } else {\n previewElement.css('background-color', 'transparent');\n previewElement.css('filter', realColor.toFilter());\n }\n\n if (opts.showAlpha) {\n var rgb = realColor.toRgb();\n rgb.a = 0;\n var realAlpha = tinycolor(rgb).toRgbString();\n var gradient = 'linear-gradient(left, ' + realAlpha + ', ' + realHex + ')';\n\n if (IE) {\n alphaSliderInner.css('filter', tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));\n } else {\n alphaSliderInner.css('background', '-webkit-' + gradient);\n alphaSliderInner.css('background', '-moz-' + gradient);\n alphaSliderInner.css('background', '-ms-' + gradient);\n // Use current syntax gradient on unprefixed property.\n alphaSliderInner.css('background', 'linear-gradient(to right, ' + realAlpha + ', ' + realHex + ')');\n }\n }\n\n displayColor = realColor.toString(format);\n }\n\n // Update the text entry input as it changes happen\n if (opts.showInput) {\n textInput.val(displayColor);\n }\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n drawInitial();\n }\n\n function updateHelperLocations() {\n var s = currentSaturation;\n var v = currentValue;\n\n if (allowEmpty && isEmpty) {\n //if selected color is empty, hide the helpers\n alphaSlideHelper.hide();\n slideHelper.hide();\n dragHelper.hide();\n } else {\n //make sure helpers are visible\n alphaSlideHelper.show();\n slideHelper.show();\n dragHelper.show();\n\n // Where to show the little circle in that displays your current selected color\n var dragX = s * dragWidth;\n var dragY = dragHeight - v * dragHeight;\n dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight));\n dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight));\n dragHelper.css({\n top: dragY + 'px',\n left: dragX + 'px',\n });\n\n var alphaX = currentAlpha * alphaWidth;\n alphaSlideHelper.css({\n left: alphaX - alphaSlideHelperWidth / 2 + 'px',\n });\n\n // Where to show the bar that displays your current selected hue\n var slideY = currentHue * slideHeight;\n slideHelper.css({\n top: slideY - slideHelperHeight + 'px',\n });\n }\n }\n\n function updateOriginalInput(fireCallback) {\n var color = get(),\n displayColor = '',\n hasChanged = isDefault ? true : !tinycolor.equals(color, colorOnShow);\n\n if (color) {\n displayColor = color.toString(currentPreferredFormat);\n // Update the selection palette with the current color\n !visible && addColorToSelectionPalette(color);\n }\n\n if (isInput) {\n boundElement.val(displayColor);\n }\n\n if (fireCallback && hasChanged) {\n callbacks.change(color);\n boundElement.trigger('change', [color]);\n }\n }\n\n function reflow() {\n if (!visible) {\n return; // Calculations would be useless and wouldn't be reliable anyways\n }\n dragWidth = dragger.width();\n dragHeight = dragger.height();\n dragHelperHeight = dragHelper.height();\n slideWidth = slider.width();\n slideHeight = slider.height();\n slideHelperHeight = slideHelper.height();\n alphaWidth = alphaSlider.width();\n alphaSlideHelperWidth = alphaSlideHelper.width();\n\n if (!flat) {\n container.css('position', 'absolute');\n if (opts.offset) {\n container.offset(opts.offset);\n } else {\n container.offset(getOffset(container, offsetElement));\n }\n }\n\n updateHelperLocations();\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n boundElement.trigger('reflow.spectrum');\n }\n\n function destroy() {\n boundElement.show();\n offsetElement.unbind('click.spectrum touchstart.spectrum');\n container.remove();\n replacer.remove();\n spectrums[spect.id] = null;\n }\n\n function option(optionName, optionValue) {\n if (optionName === undefined) {\n return $.extend({}, opts);\n }\n if (optionValue === undefined) {\n return opts[optionName];\n }\n\n opts[optionName] = optionValue;\n\n if (optionName === 'preferredFormat') {\n currentPreferredFormat = opts.preferredFormat;\n }\n applyOptions();\n }\n\n function enable() {\n disabled = false;\n boundElement.attr('disabled', false);\n offsetElement.removeClass('sp-disabled');\n }\n\n function disable() {\n hide();\n disabled = true;\n boundElement.attr('disabled', true);\n offsetElement.addClass('sp-disabled');\n }\n\n function setOffset(coord) {\n opts.offset = coord;\n reflow();\n }\n\n initialize();\n\n var spect = {\n show: show,\n hide: hide,\n toggle: toggle,\n reflow: reflow,\n option: option,\n enable: enable,\n disable: disable,\n offset: setOffset,\n set: function (c) {\n set(c);\n updateOriginalInput();\n },\n get: get,\n destroy: destroy,\n container: container,\n };\n\n spect.id = spectrums.push(spect) - 1;\n\n return spect;\n }\n\n /**\n * checkOffset - get the offset below/above and left/right element depending on screen position\n * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js\n */\n function getOffset(picker, input) {\n var extraY = 0;\n var dpWidth = picker.outerWidth();\n var dpHeight = picker.outerHeight();\n var inputHeight = input.outerHeight();\n var doc = picker[0].ownerDocument;\n var docElem = doc.documentElement;\n var cW = docElem.clientWidth;\n var cH = docElem.clientHeight;\n var scL = $(doc).scrollLeft();\n var scT = $(doc).scrollTop();\n var viewWidth = cW + scL;\n var viewHeight = cH + scT;\n var offset = input.offset();\n\n offset.top += inputHeight;\n\n offset.left -= Math.min(\n offset.left,\n offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0\n );\n\n offset.top -= Math.min(\n offset.top,\n offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY\n );\n\n return offset;\n }\n\n /**\n * noop - do nothing\n */\n function noop() {}\n\n /**\n * stopPropagation - makes the code only doing this a little easier to read in line\n */\n function stopPropagation(e) {\n e.stopPropagation();\n }\n\n /**\n * Create a function bound to a given object\n * Thanks to underscore.js\n */\n function bind(func, obj) {\n var slice = Array.prototype.slice;\n var args = slice.call(arguments, 2);\n return function () {\n return func.apply(obj, args.concat(slice.call(arguments)));\n };\n }\n\n /**\n * Lightweight drag helper. Handles containment within the element, so that\n * when dragging, the x is within [0,element.width] and y is within [0,element.height]\n */\n function draggable(element, onmove, onstart, onstop) {\n onmove = onmove || function () {};\n onstart = onstart || function () {};\n onstop = onstop || function () {};\n var doc = document;\n var dragging = false;\n var offset = {};\n var maxHeight = 0;\n var maxWidth = 0;\n var hasTouch = 'ontouchstart' in window;\n\n var duringDragEvents = {};\n duringDragEvents['selectstart'] = prevent;\n duringDragEvents['dragstart'] = prevent;\n duringDragEvents['touchmove mousemove'] = move;\n duringDragEvents['touchend mouseup'] = stop;\n\n function prevent(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.returnValue = false;\n }\n\n function move(e) {\n if (dragging) {\n // Mouseup happened outside of window\n if (IE && doc.documentMode < 9 && !e.button) {\n return stop();\n }\n\n var t0 = e && e.touches && e.touches[0];\n var pageX = (t0 && t0.pageX) || e.pageX;\n var pageY = (t0 && t0.pageY) || e.pageY;\n\n var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));\n var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));\n\n if (hasTouch) {\n // Stop scrolling in iOS\n prevent(e);\n }\n\n onmove.apply(element, [dragX, dragY, e]);\n }\n }\n\n function start(e) {\n var rightclick = e.which ? e.which == 3 : e.button == 2;\n\n if (!rightclick && !dragging) {\n if (onstart.apply(element, arguments) !== false) {\n dragging = true;\n maxHeight = $(element).height();\n maxWidth = $(element).width();\n offset = $(element).offset();\n\n $(doc).bind(duringDragEvents);\n $(doc.body).addClass('sp-dragging');\n\n move(e);\n\n prevent(e);\n }\n }\n }\n\n function stop() {\n if (dragging) {\n $(doc).unbind(duringDragEvents);\n $(doc.body).removeClass('sp-dragging');\n\n // Wait a tick before notifying observers to allow the click event\n // to fire in Chrome.\n setTimeout(function () {\n onstop.apply(element, arguments);\n }, 0);\n }\n dragging = false;\n }\n\n $(element).bind('touchstart mousedown', start);\n }\n\n function throttle(func, wait, debounce) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var throttler = function () {\n timeout = null;\n func.apply(context, args);\n };\n if (debounce) clearTimeout(timeout);\n if (debounce || !timeout) timeout = setTimeout(throttler, wait);\n };\n }\n\n function inputTypeColorSupport() {\n return $.fn.spectrum.inputTypeColorSupport();\n }\n\n /**\n * Define a jQuery plugin\n */\n var dataID = 'spectrum.id';\n $.fn.spectrum = function (opts, extra) {\n if (typeof opts == 'string') {\n var returnValue = this;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var spect = spectrums[$(this).data(dataID)];\n if (spect) {\n var method = spect[opts];\n if (!method) {\n throw new Error(\"Spectrum: no such method: '\" + opts + \"'\");\n }\n\n if (opts == 'get') {\n returnValue = spect.get();\n } else if (opts == 'container') {\n returnValue = spect.container;\n } else if (opts == 'option') {\n returnValue = spect.option.apply(spect, args);\n } else if (opts == 'destroy') {\n spect.destroy();\n $(this).removeData(dataID);\n } else {\n method.apply(spect, args);\n }\n }\n });\n\n return returnValue;\n }\n\n // Initializing a new instance of spectrum\n return this.spectrum('destroy').each(function () {\n var options = $.extend({}, opts, $(this).data());\n var spect = spectrum(this, options);\n $(this).data(dataID, spect.id);\n });\n };\n\n $.fn.spectrum.load = true;\n $.fn.spectrum.loadOpts = {};\n $.fn.spectrum.draggable = draggable;\n $.fn.spectrum.defaults = defaultOpts;\n $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {\n if (typeof inputTypeColorSupport._cachedResult === 'undefined') {\n var colorInput = $(\"\")[0]; // if color element is supported, value will default to not null\n inputTypeColorSupport._cachedResult = colorInput.type === 'color' && colorInput.value !== '';\n }\n return inputTypeColorSupport._cachedResult;\n };\n\n $.spectrum = {};\n $.spectrum.localization = {};\n $.spectrum.palettes = {};\n\n $.fn.spectrum.processNativeColorInputs = function () {\n var colorInputs = $('input[type=color]');\n if (colorInputs.length && !inputTypeColorSupport()) {\n colorInputs.spectrum({\n preferredFormat: 'hex6',\n });\n }\n };\n\n // TinyColor v1.1.2\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n //(function() {\n\n var trimLeft = /^[\\s,#]+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n math = Math,\n mathRound = math.round,\n mathMin = math.min,\n mathMax = math.max,\n mathRandom = math.random;\n\n var tinycolor = function (color, opts) {\n color = color ? color : '';\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n (this._originalInput = color),\n (this._r = rgb.r),\n (this._g = rgb.g),\n (this._b = rgb.b),\n (this._a = rgb.a),\n (this._roundA = mathRound(100 * this._a) / 100),\n (this._format = opts.format || rgb.format);\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n };\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100 * this._a) / 100;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360),\n s = mathRound(hsv.s * 100),\n v = mathRound(hsv.v * 100);\n return this._a == 1\n ? 'hsv(' + h + ', ' + s + '%, ' + v + '%)'\n : 'hsva(' + h + ', ' + s + '%, ' + v + '%, ' + this._roundA + ')';\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360),\n s = mathRound(hsl.s * 100),\n l = mathRound(hsl.l * 100);\n return this._a == 1\n ? 'hsl(' + h + ', ' + s + '%, ' + l + '%)'\n : 'hsla(' + h + ', ' + s + '%, ' + l + '%, ' + this._roundA + ')';\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function () {\n return rgbaToHex(this._r, this._g, this._b, this._a);\n },\n toHex8String: function () {\n return '#' + this.toHex8();\n },\n toRgb: function () {\n return {\n r: mathRound(this._r),\n g: mathRound(this._g),\n b: mathRound(this._b),\n a: this._a,\n };\n },\n toRgbString: function () {\n return this._a == 1\n ? 'rgb(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ')'\n : 'rgba(' +\n mathRound(this._r) +\n ', ' +\n mathRound(this._g) +\n ', ' +\n mathRound(this._b) +\n ', ' +\n this._roundA +\n ')';\n },\n toPercentageRgb: function () {\n return {\n r: mathRound(bound01(this._r, 255) * 100) + '%',\n g: mathRound(bound01(this._g, 255) * 100) + '%',\n b: mathRound(bound01(this._b, 255) * 100) + '%',\n a: this._a,\n };\n },\n toPercentageRgbString: function () {\n return this._a == 1\n ? 'rgb(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%)'\n : 'rgba(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%, ' +\n this._roundA +\n ')';\n },\n toName: function () {\n if (this._a === 0) {\n return 'transparent';\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? 'GradientType = 1, ' : '';\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = s.toHex8String();\n }\n\n return (\n 'progid:DXImageTransform.Microsoft.gradient(' +\n gradientType +\n 'startColorstr=' +\n hex8String +\n ',endColorstr=' +\n secondHex8String +\n ')'\n );\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat =\n !formatSet && hasAlpha && (format === 'hex' || format === 'hex6' || format === 'hex3' || format === 'name');\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function () {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function () {\n return this._applyCombination(tetrad, arguments);\n },\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == 'object') {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === 'a') {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var ok = false;\n var format = false;\n\n if (typeof color == 'string') {\n color = stringInputToObject(color);\n }\n\n if (typeof color == 'object') {\n if (color.hasOwnProperty('r') && color.hasOwnProperty('g') && color.hasOwnProperty('b')) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('v')) {\n color.s = convertToPercentage(color.s);\n color.v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, color.s, color.v);\n ok = true;\n format = 'hsv';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('l')) {\n color.s = convertToPercentage(color.s);\n color.l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, color.s, color.l);\n ok = true;\n format = 'hsl';\n }\n\n if (color.hasOwnProperty('a')) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a,\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n }\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b and a are contained in the set [0, 255]\n // Returns an 8 character hex\n function rgbaToHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n ];\n\n return hex.join('');\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom(),\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (mathRound(hsl.h) + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n var w = p * 2 - 1;\n var a = rgb2.a - rgb1.a;\n\n var w1;\n\n if (w * a == -1) {\n w1 = w;\n } else {\n w1 = (w + a) / (1 + w * a);\n }\n\n w1 = (w1 + 1) / 2;\n\n var w2 = 1 - w1;\n\n var rgba = {\n r: rgb2.r * w1 + rgb1.r * w2,\n g: rgb2.g * w1 + rgb1.g * w2,\n b: rgb2.b * w1 + rgb1.b * w2,\n a: rgb2.a * p + rgb1.a * (1 - p),\n };\n\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // \n\n // `readability`\n // Analyze the 2 colors and returns an object with the following properties:\n // `brightness`: difference in brightness between the two colors\n // `color`: difference in color/hue between the two colors\n tinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n var rgb1 = c1.toRgb();\n var rgb2 = c2.toRgb();\n var brightnessA = c1.getBrightness();\n var brightnessB = c2.getBrightness();\n var colorDiff =\n Math.max(rgb1.r, rgb2.r) -\n Math.min(rgb1.r, rgb2.r) +\n Math.max(rgb1.g, rgb2.g) -\n Math.min(rgb1.g, rgb2.g) +\n Math.max(rgb1.b, rgb2.b) -\n Math.min(rgb1.b, rgb2.b);\n\n return {\n brightness: Math.abs(brightnessA - brightnessB),\n color: colorDiff,\n };\n };\n\n // `readable`\n // http://www.w3.org/TR/AERT#color-contrast\n // Ensure that foreground and background color combinations provide sufficient contrast.\n // *Example*\n // tinycolor.isReadable(\"#000\", \"#111\") => false\n tinycolor.isReadable = function (color1, color2) {\n var readability = tinycolor.readability(color1, color2);\n return readability.brightness > 125 && readability.color > 500;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // *Example*\n // tinycolor.mostReadable(\"#123\", [\"#fff\", \"#000\"]) => \"#000\"\n tinycolor.mostReadable = function (baseColor, colorList) {\n var bestColor = null;\n var bestScore = 0;\n var bestIsReadable = false;\n for (var i = 0; i < colorList.length; i++) {\n // We normalize both around the \"acceptable\" breaking point,\n // but rank brightness constrast higher than hue.\n\n var readability = tinycolor.readability(baseColor, colorList[i]);\n var readable = readability.brightness > 125 && readability.color > 500;\n var score = 3 * (readability.brightness / 125) + readability.color / 500;\n\n if (\n (readable && !bestIsReadable) ||\n (readable && bestIsReadable && score > bestScore) ||\n (!readable && !bestIsReadable && score > bestScore)\n ) {\n bestIsReadable = readable;\n bestScore = score;\n bestColor = tinycolor(colorList[i]);\n }\n }\n return bestColor;\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = (tinycolor.names = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '0ff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '00f',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n burntsienna: 'ea7e5d',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '0ff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'f0f',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32',\n });\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = (tinycolor.hexNames = flip(names));\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == 'string' && n.indexOf('.') != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + '%';\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n\n var matchers = (function () {\n // \n var CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n\n // \n var CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\n var PERMISSIVE_MATCH4 =\n '[\\\\s|\\\\(]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')\\\\s*\\\\)?';\n\n return {\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n };\n })();\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n a: convertHexToDecimal(match[1]),\n r: parseIntFromHex(match[2]),\n g: parseIntFromHex(match[3]),\n b: parseIntFromHex(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n\n return false;\n }\n\n window.tinycolor = tinycolor;\n //})();\n\n $(function () {\n if ($.fn.spectrum.load) {\n $.fn.spectrum.processNativeColorInputs();\n }\n });\n}\n","import Backbone from 'backbone';\nimport { bindAll, isUndefined, indexOf } from 'underscore';\nimport { on, off } from 'utils/mixins';\nimport Input from './Input';\n\nconst $ = Backbone.$;\n\nexport default Input.extend({\n events: {\n 'change input': 'handleChange',\n 'change select': 'handleUnitChange',\n 'click [data-arrow-up]': 'upArrowClick',\n 'click [data-arrow-down]': 'downArrowClick',\n 'mousedown [data-arrows]': 'downIncrement',\n keydown: 'handleKeyDown',\n },\n\n template() {\n const ppfx = this.ppfx;\n return `\n \n \n
\n
\n
\n
\n `;\n },\n\n inputClass() {\n const ppfx = this.ppfx;\n return this.opts.contClass || `${ppfx}field ${ppfx}field-integer`;\n },\n\n initialize(opts = {}) {\n Input.prototype.initialize.apply(this, arguments);\n bindAll(this, 'moveIncrement', 'upIncrement');\n this.doc = document;\n this.listenTo(this.model, 'change:unit', this.handleModelChange);\n },\n\n /**\n * Set value to the model\n * @param {string} value\n * @param {Object} opts\n */\n setValue(value, opts) {\n var opt = opts || {};\n var valid = this.validateInputValue(value, { deepCheck: 1 });\n var validObj = { value: valid.value };\n\n // If found some unit value\n if (valid.unit || valid.force) {\n validObj.unit = valid.unit;\n }\n\n this.model.set(validObj, opt);\n\n // Generally I get silent when I need to reflect data to view without\n // reupdating the target\n if (opt.silent) {\n this.handleModelChange();\n }\n },\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n this.setValue(this.getInputEl().value);\n this.elementUpdated();\n },\n\n /**\n * Handled when the view is changed\n */\n handleUnitChange(e) {\n e.stopPropagation();\n var value = this.getUnitEl().value;\n this.model.set('unit', value);\n this.elementUpdated();\n },\n\n /**\n * Handled when user uses keyboard\n */\n handleKeyDown(e) {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.upArrowClick();\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.downArrowClick();\n }\n },\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n },\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange() {\n const model = this.model;\n this.getInputEl().value = model.get('value');\n const unitEl = this.getUnitEl();\n unitEl && (unitEl.value = model.get('unit') || '');\n },\n\n /**\n * Get the unit element\n * @return {HTMLElement}\n */\n getUnitEl() {\n if (!this.unitEl) {\n const model = this.model;\n const units = model.get('units') || [];\n\n if (units.length) {\n const options = [''];\n\n units.forEach(unit => {\n const selected = unit == model.get('unit') ? 'selected' : '';\n options.push(``);\n });\n\n const temp = document.createElement('div');\n temp.innerHTML = ``;\n this.unitEl = temp.firstChild;\n }\n }\n\n return this.unitEl;\n },\n\n /**\n * Invoked when the up arrow is clicked\n * */\n upArrowClick() {\n const { model } = this;\n const step = model.get('step');\n let value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value + step));\n this.elementUpdated();\n },\n\n /**\n * Invoked when the down arrow is clicked\n * */\n downArrowClick() {\n const { model } = this;\n const step = model.get('step');\n const value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value - step));\n this.elementUpdated();\n },\n\n /**\n * Change easily integer input value with click&drag method\n * @param Event\n *\n * @return void\n * */\n downIncrement(e) {\n e.preventDefault();\n this.moved = 0;\n var value = this.model.get('value') || 0;\n value = this.normalizeValue(value);\n this.current = { y: e.pageY, val: value };\n on(this.doc, 'mousemove', this.moveIncrement);\n on(this.doc, 'mouseup', this.upIncrement);\n },\n\n /** While the increment is clicked, moving the mouse will update input value\n * @param Object\n *\n * @return bool\n * */\n moveIncrement(ev) {\n this.moved = 1;\n const model = this.model;\n const step = model.get('step');\n const data = this.current;\n var pos = this.normalizeValue(data.val + (data.y - ev.pageY) * step);\n const { value, unit } = this.validateInputValue(pos);\n this.prValue = value;\n model.set({ value, unit }, { avoidStore: 1 });\n return false;\n },\n\n /**\n * Stop moveIncrement method\n * */\n upIncrement() {\n const model = this.model;\n const step = model.get('step');\n off(this.doc, 'mouseup', this.upIncrement);\n off(this.doc, 'mousemove', this.moveIncrement);\n\n if (this.prValue && this.moved) {\n var value = this.prValue - step;\n model.set('value', value, { avoidStore: 1 }).set('value', value + step);\n this.elementUpdated();\n }\n },\n\n normalizeValue(value, defValue = 0) {\n const model = this.model;\n const step = model.get('step');\n let stepDecimals = 0;\n\n if (isNaN(value)) {\n return defValue;\n }\n\n value = parseFloat(value);\n\n if (Math.floor(value) !== value) {\n const side = step.toString().split('.')[1];\n stepDecimals = side ? side.length : 0;\n }\n\n return stepDecimals ? parseFloat(value.toFixed(stepDecimals)) : value;\n },\n\n /**\n * Validate input value\n * @param {String} value Raw value\n * @param {Object} opts Options\n * @return {Object} Validated string\n */\n validateInputValue(value, opts = {}) {\n var force = 0;\n var opt = opts || {};\n var model = this.model;\n const defValue = ''; //model.get('defaults');\n var val = !isUndefined(value) ? value : defValue;\n var units = opts.units || model.get('units') || [];\n var unit = model.get('unit') || (units.length && units[0]) || '';\n var max = !isUndefined(opts.max) ? opts.max : model.get('max');\n var min = !isUndefined(opts.min) ? opts.min : model.get('min');\n var limitlessMax = !!model.get('limitlessMax');\n var limitlessMin = !!model.get('limitlessMin');\n\n if (opt.deepCheck) {\n var fixed = model.get('fixedValues') || [];\n\n if (val === '') unit = '';\n\n if (val) {\n // If the value is one of the fixed values I leave it as it is\n var regFixed = new RegExp('^' + fixed.join('|'), 'g');\n if (fixed.length && regFixed.test(val)) {\n val = val.match(regFixed)[0];\n unit = '';\n force = 1;\n } else {\n var valCopy = val + '';\n val += ''; // Make it suitable for replace\n val = parseFloat(val.replace(',', '.'));\n val = !isNaN(val) ? val : defValue;\n var uN = valCopy.replace(val, '');\n // Check if exists as unit\n if (indexOf(units, uN) >= 0) unit = uN;\n }\n }\n }\n\n if (!limitlessMax && !isUndefined(max) && max !== '') val = val > max ? max : val;\n if (!limitlessMin && !isUndefined(min) && min !== '') val = val < min ? min : val;\n\n return {\n force,\n value: val,\n unit,\n };\n },\n\n render() {\n Input.prototype.render.call(this);\n this.unitEl = null;\n const unit = this.getUnitEl();\n unit && this.$el.find(`.${this.ppfx}field-units`).get(0).appendChild(unit);\n return this;\n },\n});\n","import { includes } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n // Default view\n itemView: '',\n\n // Defines the View per type\n itemsView: '',\n\n itemType: 'type',\n\n autoAdd: 0,\n\n initialize(opts = {}, config) {\n this.config = config || opts.config || {};\n this.autoAdd && this.listenTo(this.collection, 'add', this.addTo);\n this.items = [];\n this.init();\n },\n\n init() {},\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n },\n\n itemViewNotFound(type) {\n const { config, ns } = this;\n const { em } = config;\n const warn = `${ns ? `[${ns}]: ` : ''}'${type}' type not found`;\n em && em.logWarning(warn);\n },\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config, reuseView, items, itemsView = {} } = this;\n const inputTypes = [\n 'button',\n 'checkbox',\n 'color',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week'\n ];\n var frag = fragment || null;\n var itemView = this.itemView;\n var typeField = model.get(this.itemType);\n let view;\n\n if (itemsView[typeField]) {\n itemView = itemsView[typeField];\n } else if (\n typeField &&\n !itemsView[typeField] &&\n !includes(inputTypes, typeField)\n ) {\n this.itemViewNotFound(typeField);\n }\n\n if (model.view && reuseView) {\n view = model.view;\n } else {\n view = new itemView({ model, config }, config);\n }\n\n items && items.push(view);\n const rendered = view.render().el;\n\n if (frag) frag.appendChild(rendered);\n else this.$el.append(rendered);\n },\n\n render() {\n var frag = document.createDocumentFragment();\n this.clearItems();\n this.$el.empty();\n\n if (this.collection.length)\n this.collection.each(function(model) {\n this.add(model, frag);\n }, this);\n\n this.$el.append(frag);\n this.onRender();\n return this;\n },\n\n onRender() {},\n\n onRemoveBefore() {},\n onRemove() {},\n\n remove(opts = {}) {\n const { items } = this;\n this.onRemoveBefore(items, opts);\n this.clearItems();\n Backbone.View.prototype.remove.apply(this, arguments);\n this.onRemove(items, opts);\n },\n\n clearItems() {\n const items = this.items || [];\n // TODO Traits do not update the target anymore\n // items.forEach(item => item.remove());\n // this.items = [];\n }\n});\n","const traitInputAttr = { placeholder: 'eg. Text here' };\n\nexport default {\n assetManager: {\n addButton: 'Add image',\n inputPlh: 'http://path/to/the/image.jpg',\n modalTitle: 'Select Image',\n uploadTitle: 'Drop files here or click to upload',\n },\n // Here just as a reference, GrapesJS core doesn't contain any block,\n // so this should be omitted from other local files\n blockManager: {\n labels: {\n // 'block-id': 'Block Label',\n },\n categories: {\n // 'category-id': 'Category Label',\n },\n },\n domComponents: {\n names: {\n '': 'Box',\n wrapper: 'Body',\n text: 'Text',\n comment: 'Comment',\n image: 'Image',\n video: 'Video',\n label: 'Label',\n link: 'Link',\n map: 'Map',\n tfoot: 'Table foot',\n tbody: 'Table body',\n thead: 'Table head',\n table: 'Table',\n row: 'Table row',\n cell: 'Table cell',\n },\n },\n deviceManager: {\n device: 'Device',\n devices: {\n desktop: 'Desktop',\n tablet: 'Tablet',\n mobileLandscape: 'Mobile Landscape',\n mobilePortrait: 'Mobile Portrait',\n },\n },\n panels: {\n buttons: {\n titles: {\n preview: 'Preview',\n fullscreen: 'Fullscreen',\n 'sw-visibility': 'View components',\n 'export-template': 'View code',\n 'open-sm': 'Open Style Manager',\n 'open-tm': 'Settings',\n 'open-layers': 'Open Layer Manager',\n 'open-blocks': 'Open Blocks',\n },\n },\n },\n selectorManager: {\n label: 'Classes',\n selected: 'Selected',\n emptyState: '- State -',\n states: {\n hover: 'Hover',\n active: 'Click',\n 'nth-of-type(2n)': 'Even/Odd',\n },\n },\n styleManager: {\n empty: 'Select an element before using Style Manager',\n layer: 'Layer',\n fileButton: 'Images',\n sectors: {\n general: 'General',\n layout: 'Layout',\n typography: 'Typography',\n decorations: 'Decorations',\n extra: 'Extra',\n flex: 'Flex',\n dimension: 'Dimension',\n },\n // Default names for sub properties in Composite and Stack types.\n // Other labels are generated directly from their property names (eg. 'font-size' will be 'Font size').\n properties: {\n 'text-shadow-h': 'X',\n 'text-shadow-v': 'Y',\n 'text-shadow-blur': 'Blur',\n 'text-shadow-color': 'Color',\n 'box-shadow-h': 'X',\n 'box-shadow-v': 'Y',\n 'box-shadow-blur': 'Blur',\n 'box-shadow-spread': 'Spread',\n 'box-shadow-color': 'Color',\n 'box-shadow-type': 'Type',\n 'margin-top-sub': 'Top',\n 'margin-right-sub': 'Right',\n 'margin-bottom-sub': 'Bottom',\n 'margin-left-sub': 'Left',\n 'padding-top-sub': 'Top',\n 'padding-right-sub': 'Right',\n 'padding-bottom-sub': 'Bottom',\n 'padding-left-sub': 'Left',\n 'border-width-sub': 'Width',\n 'border-style-sub': 'Style',\n 'border-color-sub': 'Color',\n 'border-top-left-radius-sub': 'Top Left',\n 'border-top-right-radius-sub': 'Top Right',\n 'border-bottom-right-radius-sub': 'Bottom Right',\n 'border-bottom-left-radius-sub': 'Bottom Left',\n 'transform-rotate-x': 'Rotate X',\n 'transform-rotate-y': 'Rotate Y',\n 'transform-rotate-z': 'Rotate Z',\n 'transform-scale-x': 'Scale X',\n 'transform-scale-y': 'Scale Y',\n 'transform-scale-z': 'Scale Z',\n 'transition-property-sub': 'Property',\n 'transition-duration-sub': 'Duration',\n 'transition-timing-function-sub': 'Timing',\n 'background-image-sub': 'Image',\n 'background-repeat-sub': 'Repeat',\n 'background-position-sub': 'Position',\n 'background-attachment-sub': 'Attachment',\n 'background-size-sub': 'Size',\n },\n // Translate options in style properties\n // options: {\n // float: { // Id of the property\n // ...\n // left: 'Left', // {option id}: {Option label}\n // }\n // }\n },\n traitManager: {\n empty: 'Select an element before using Trait Manager',\n label: 'Component settings',\n traits: {\n // The core library generates the name by their `name` property\n labels: {\n // id: 'Id',\n // alt: 'Alt',\n // title: 'Title',\n // href: 'Href',\n },\n // In a simple trait, like text input, these are used on input attributes\n attributes: {\n id: traitInputAttr,\n alt: traitInputAttr,\n title: traitInputAttr,\n href: { placeholder: 'eg. https://google.com' },\n },\n // In a trait like select, these are used to translate option names\n options: {\n target: {\n false: 'This window',\n _blank: 'New window',\n },\n },\n },\n },\n};\n","import en from './locale/en';\n\nexport default {\n // Locale value\n locale: 'en',\n\n // Fallback locale\n localeFallback: 'en',\n\n // Detect locale by checking browser language\n detectLocale: true,\n\n // Show warnings when some of the i18n resources are missing\n debug: false,\n\n // Messages to translate\n messages: {\n en,\n },\n\n // Additional messages. This allows extending the default `messages` set directly from the configuration.\n messagesAdd: null,\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/i18n/config.js)\n * ```js\n * const editor = grapesjs.init({\n * i18n: {\n * locale: 'en',\n * localeFallback: 'en',\n * messages: {\n * it: { hello: 'Ciao', ... },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const i18n = editor.I18n;\n * ```\n *\n * ### Events\n * * `i18n:add` - New set of messages is added\n * * `i18n:update` - The set of messages is updated\n * * `i18n:locale` - Locale changed\n *\n * @module I18n\n */\nimport { isUndefined, isString } from 'underscore';\nimport { hasWin } from 'utils/mixins';\nimport config from './config';\n\nconst isObj = el => !Array.isArray(el) && el !== null && typeof el === 'object';\n\nconst deepAssign = (...args) => {\n const target = { ...args[0] };\n\n for (let i = 1; i < args.length; i++) {\n const source = { ...args[i] };\n\n for (let key in source) {\n const targValue = target[key];\n const srcValue = source[key];\n\n if (isObj(targValue) && isObj(srcValue)) {\n target[key] = deepAssign(targValue, srcValue);\n } else {\n target[key] = srcValue;\n }\n }\n }\n\n return target;\n};\n\nexport default () => {\n return {\n name: 'I18n',\n\n config,\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = {\n ...config,\n ...opts,\n messages: {\n ...config.messages,\n ...(opts.messages || {}),\n },\n };\n const add = this.config.messagesAdd;\n add && this.addMessages(add);\n\n if (this.config.detectLocale) {\n this.config.locale = this._localLang();\n }\n\n this.em = opts.em;\n return this;\n },\n\n /**\n * Get module configurations\n * @returns {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Update current locale\n * @param {String} locale Locale value\n * @returns {this}\n * @example\n * i18n.setLocale('it');\n */\n setLocale(locale) {\n const { em, config } = this;\n const evObj = { value: locale, valuePrev: config.locale };\n em && em.trigger('i18n:locale', evObj);\n config.locale = locale;\n return this;\n },\n\n /**\n * Get current locale\n * @returns {String} Current locale value\n */\n getLocale() {\n return this.config.locale;\n },\n\n /**\n * Get all messages\n * @param {String} [lang] Specify the language of messages to return\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.debug] Show warnings in case of missing language\n * @returns {Object}\n * @example\n * i18n.getMessages();\n * // -> { en: { hello: '...' }, ... }\n * i18n.getMessages('en');\n * // -> { hello: '...' }\n */\n getMessages(lang, opts = {}) {\n const { messages } = this.config;\n lang && !messages[lang] && this._debug(`'${lang}' i18n lang not found`, opts);\n return lang ? messages[lang] : messages;\n },\n\n /**\n * Set new set of messages\n * @param {Object} msg Set of messages\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.setMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set replaced\n * i18n.getMessages();\n * // -> { en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n setMessages(msg) {\n const { em, config } = this;\n config.messages = msg;\n em && em.trigger('i18n:update', msg);\n return this;\n },\n\n /**\n * Update messages\n * @param {Object} msg Set of messages to add\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.addMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set updated\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n addMessages(msg) {\n const { em } = this;\n const { messages } = this.config;\n em && em.trigger('i18n:add', msg);\n this.setMessages(deepAssign(messages, msg));\n\n return this;\n },\n\n /**\n * Translate the locale message\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.debug] Show warnings in case of missing resources\n * @returns {String}\n * @example\n * obj.setMessages({\n * en: { msg: 'Msg', msg2: 'Msg {test}'},\n * it: { msg2: 'Msg {test} it'},\n * });\n * obj.t('msg');\n * // -> outputs `Msg`\n * obj.t('msg2', { params: { test: 'hello' } }); // use params\n * // -> outputs `Msg hello`\n * obj.t('msg2', { l: 'it', params: { test: 'hello' } }); // custom local\n * // -> outputs `Msg hello it`\n */\n t(key, opts = {}) {\n const { config } = this;\n const param = opts.params || {};\n const locale = opts.l || this.getLocale();\n const localeFlb = opts.lFlb || config.localeFallback;\n let result = this._getMsg(key, locale, opts);\n\n // Try with fallback\n if (!result) result = this._getMsg(key, localeFlb, opts);\n\n !result && this._debug(`'${key}' i18n key not found in '${locale}' lang`, opts);\n result = result && isString(result) ? this._addParams(result, param) : result;\n\n return result;\n },\n\n _localLang() {\n const nav = (hasWin() && window.navigator) || {};\n const lang = nav.language || nav.userLanguage;\n return lang ? lang.split('-')[0] : 'en';\n },\n\n _addParams(str, params) {\n const reg = new RegExp(`\\{([\\\\w\\\\d-]*)\\}`, 'g');\n return str.replace(reg, (m, val) => params[val] || '').trim();\n },\n\n _getMsg(key, locale, opts = {}) {\n const msgSet = this.getMessages(locale, opts);\n\n // Lang set is missing\n if (!msgSet) return;\n\n let result = msgSet[key];\n\n // Check for nested getter\n if (!result && key.indexOf('.') > 0) {\n result = key.split('.').reduce((lang, key) => {\n if (isUndefined(lang)) return;\n return lang[key];\n }, msgSet);\n }\n\n return result;\n },\n\n _debug(str, opts = {}) {\n const { em, config } = this;\n (opts.debug || config.debug) && em && em.logWarning(str);\n },\n\n destroy() {\n this.config = config;\n this.em = {};\n },\n };\n};\n","// The initial version of this library was borrowed from https://github.com/madrobby/keymaster\n// and adapted to the GrapesJS's need\n\nvar k,\n _handlers = {},\n _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false,\n },\n _scope = 'all',\n // modifier keys\n _MODIFIERS = {\n '⇧': 16,\n shift: 16,\n '⌥': 18,\n alt: 18,\n option: 18,\n '⌃': 17,\n ctrl: 17,\n control: 17,\n '⌘': 91,\n command: 91,\n },\n // special keys\n _MAP = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': 189,\n '=': 187,\n ';': 186,\n \"'\": 222,\n '[': 219,\n ']': 221,\n '\\\\': 220,\n },\n code = function (x) {\n return _MAP[x] || x.toUpperCase().charCodeAt(0);\n },\n _downKeys = [];\n\nfor (k = 1; k < 20; k++) _MAP['f' + k] = 111 + k;\n\n// IE doesn't support Array#indexOf, so have a simple replacement\nfunction index(array, item) {\n var i = array.length;\n while (i--) if (array[i] === item) return i;\n return -1;\n}\n\n// for comparing mods before unassignment\nfunction compareArray(a1, a2) {\n if (a1.length != a2.length) return false;\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) return false;\n }\n return true;\n}\n\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n};\n\nfunction updateModifierKey(event) {\n for (k in _mods) _mods[k] = event[modifierMap[k]];\n}\n\n// handle keydown event\nfunction dispatch(event) {\n var key, handler, k, i, modifiersMatch, scope;\n key = event.keyCode;\n\n if (index(_downKeys, key) == -1) {\n _downKeys.push(key);\n }\n\n // if a modifier key, set the key. property to true and return\n if (key == 93 || key == 224) key = 91; // right command on webkit, command on Gecko\n if (key in _mods) {\n _mods[key] = true;\n // 'assignKey' from inside this closure is exported to window.key\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = true;\n return;\n }\n updateModifierKey(event);\n\n // see if we need to ignore the keypress (filter() can can be overridden)\n // by default ignore key presses if a select, textarea, or input is focused\n if (!assignKey.filter.call(this, event)) return;\n\n // abort if no potentially matching shortcuts found\n if (!(key in _handlers)) return;\n\n scope = getScope();\n\n // for each potential shortcut\n for (i = 0; i < _handlers[key].length; i++) {\n handler = _handlers[key][i];\n\n // see if it's in the current scope\n if (handler.scope == scope || handler.scope == 'all') {\n // check if modifiers match if any\n modifiersMatch = handler.mods.length > 0;\n for (k in _mods)\n if ((!_mods[k] && index(handler.mods, +k) > -1) || (_mods[k] && index(handler.mods, +k) == -1))\n modifiersMatch = false;\n // call the handler and stop the event if neccessary\n if ((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch) {\n if (handler.method(event, handler) === false) {\n if (event.preventDefault) event.preventDefault();\n else event.returnValue = false;\n if (event.stopPropagation) event.stopPropagation();\n if (event.cancelBubble) event.cancelBubble = true;\n }\n }\n }\n }\n}\n\n// unset modifier keys on keyup\nfunction clearModifier(event) {\n var key = event.keyCode,\n k,\n i = index(_downKeys, key);\n\n // remove key from _downKeys\n if (i >= 0) {\n _downKeys.splice(i, 1);\n }\n\n if (key == 93 || key == 224) key = 91;\n if (key in _mods) {\n _mods[key] = false;\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = false;\n }\n}\n\nfunction resetModifiers() {\n for (k in _mods) _mods[k] = false;\n for (k in _MODIFIERS) assignKey[k] = false;\n}\n\n// parse and assign shortcut\nfunction assignKey(key, scope, method) {\n var keys, mods;\n keys = getKeys(key);\n if (method === undefined) {\n method = scope;\n scope = 'all';\n }\n\n // for each shortcut\n for (var i = 0; i < keys.length; i++) {\n // set modifier keys if any\n mods = [];\n key = keys[i].split('+');\n if (key.length > 1) {\n mods = getMods(key);\n key = [key[key.length - 1]];\n }\n // convert to keycode and...\n key = key[0];\n key = code(key);\n // ...store handler\n if (!(key in _handlers)) _handlers[key] = [];\n _handlers[key].push({\n shortcut: keys[i],\n scope: scope,\n method: method,\n key: keys[i],\n mods: mods,\n });\n }\n}\n\n// unbind all handlers for given key in current scope\nfunction unbindKey(key, scope) {\n var multipleKeys,\n keys,\n mods = [],\n i,\n j,\n obj;\n\n multipleKeys = getKeys(key);\n\n for (j = 0; j < multipleKeys.length; j++) {\n keys = multipleKeys[j].split('+');\n\n if (keys.length > 1) {\n mods = getMods(keys);\n }\n\n key = keys[keys.length - 1];\n key = code(key);\n\n if (scope === undefined) {\n scope = getScope();\n }\n if (!_handlers[key]) {\n return;\n }\n for (i = 0; i < _handlers[key].length; i++) {\n obj = _handlers[key][i];\n // only clear handlers if correct scope and mods match\n if (obj.scope === scope && compareArray(obj.mods, mods)) {\n _handlers[key][i] = {};\n }\n }\n }\n}\n\n// Returns true if the key with code 'keyCode' is currently down\n// Converts strings into key codes.\nfunction isPressed(keyCode) {\n if (typeof keyCode == 'string') {\n keyCode = code(keyCode);\n }\n return index(_downKeys, keyCode) != -1;\n}\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n}\n\nfunction filter(event) {\n var tagName = (event.target || event.srcElement).tagName;\n // ignore keypressed in any elements that support keyboard data input\n return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\n}\n\n// initialize key. to false\nfor (k in _MODIFIERS) assignKey[k] = false;\n\n// set current scope (default 'all')\nfunction setScope(scope) {\n _scope = scope || 'all';\n}\n\nfunction getScope() {\n return _scope || 'all';\n}\n\n// delete all handlers for a given scope\nfunction deleteScope(scope) {\n var key, handlers, i;\n\n for (key in _handlers) {\n handlers = _handlers[key];\n for (i = 0; i < handlers.length; ) {\n if (handlers[i].scope === scope) handlers.splice(i, 1);\n else i++;\n }\n }\n}\n\n// abstract key logic for assign and unassign\nfunction getKeys(key) {\n var keys;\n key = key.replace(/\\s/g, '');\n keys = key.split(',');\n if (keys[keys.length - 1] == '') {\n keys[keys.length - 2] += ',';\n }\n return keys;\n}\n\n// abstract mods logic for assign and unassign\nfunction getMods(key) {\n var mods = key.slice(0, key.length - 1);\n for (var mi = 0; mi < mods.length; mi++) mods[mi] = _MODIFIERS[mods[mi]];\n return mods;\n}\n\n// cross-browser events\nfunction addEvent(object, event, method) {\n if (object.addEventListener) object.addEventListener(event, method, false);\n else if (object.attachEvent)\n object.attachEvent('on' + event, function () {\n method(window.event);\n });\n}\n\n// set window.key and window.key.set/get/deleteScope, and the default filter\nassignKey.setScope = setScope;\nassignKey.getScope = getScope;\nassignKey.deleteScope = deleteScope;\nassignKey.filter = filter;\nassignKey.isPressed = isPressed;\nassignKey.getPressedKeyCodes = getPressedKeyCodes;\nassignKey.unbind = unbindKey;\nassignKey.handlers = _handlers;\nassignKey.init = win => {\n // set the handlers globally on document\n // Passing _scope to a callback to ensure it remains the same by execution. Fixes #48\n addEvent(win.document, 'keydown', function (event) {\n dispatch(event);\n });\n addEvent(win.document, 'keyup', clearModifier);\n addEvent(win, 'focus', resetModifiers);\n};\n\nexport default assignKey;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * keymaps: {\n * // Object of keymaps\n * defaults: {\n * 'your-namespace:keymap-name' {\n * keys: '⌘+z, ctrl+z',\n * handler: 'some-command-id'\n * },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('keymap:add', () => { ... });\n *\n * // Use the API\n * const keymaps = editor.Keymaps;\n * keymaps.add(...);\n * ```\n *\n * ## Available Events\n * * `keymap:add` - New keymap added. The new keyamp object is passed as an argument\n * * `keymap:remove` - Keymap removed. The removed keyamp object is passed as an argument\n * * `keymap:emit` - Some keymap emitted, in arguments you get keymapId, shortcutUsed, Event\n * * `keymap:emit:{keymapId}` - `keymapId` emitted, in arguments you get keymapId, shortcutUsed, Event\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getAll)\n * * [remove](#remove)\n * * [removeAll](#removeall)\n *\n * @module Keymaps\n */\n\nimport { isString } from 'underscore';\nimport { hasWin } from 'utils/mixins';\nimport keymaster from 'utils/keymaster';\n\nhasWin() && keymaster.init(window);\n\nexport default () => {\n const configDef = {\n defaults: {\n 'core:undo': {\n keys: '⌘+z, ctrl+z',\n handler: 'core:undo',\n },\n 'core:redo': {\n keys: '⌘+shift+z, ctrl+shift+z',\n handler: 'core:redo',\n },\n 'core:copy': {\n keys: '⌘+c, ctrl+c',\n handler: 'core:copy',\n },\n 'core:paste': {\n keys: '⌘+v, ctrl+v',\n handler: 'core:paste',\n },\n 'core:component-next': {\n keys: 's',\n handler: 'core:component-next',\n },\n 'core:component-prev': {\n keys: 'w',\n handler: 'core:component-prev',\n },\n 'core:component-enter': {\n keys: 'd',\n handler: 'core:component-enter',\n },\n 'core:component-exit': {\n keys: 'a',\n handler: 'core:component-exit',\n },\n 'core:component-delete': {\n keys: 'backspace, delete',\n handler: 'core:component-delete',\n opts: { prevent: 1 },\n },\n },\n };\n\n return {\n keymaster,\n\n name: 'Keymaps',\n\n /**\n * Get module configurations\n * @return {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = { ...configDef, ...opts };\n this.em = this.config.em;\n this.keymaps = {};\n return this;\n },\n\n onLoad() {\n const defKeys = this.config.defaults;\n\n for (let id in defKeys) {\n const value = defKeys[id];\n this.add(id, value.keys, value.handler, value.opts || {});\n }\n },\n\n /**\n * Add new keymap\n * @param {string} id Keymap id\n * @param {string} keys Keymap keys, eg. `ctrl+a`, `⌘+z, ctrl+z`\n * @param {Function|string} handler Keymap handler, might be a function\n * @param {Object} [opts={}] Options\n * @return {Object} Added keymap\n * or just a command id as a string\n * @example\n * // 'ns' is just a custom namespace\n * keymaps.add('ns:my-keymap', '⌘+j, ⌘+u, ctrl+j, alt+u', editor => {\n * console.log('do stuff');\n * });\n * // or\n * keymaps.add('ns:my-keymap', '⌘+s, ctrl+s', 'some-gjs-command');\n *\n * // listen to events\n * editor.on('keymap:emit', (id, shortcut, e) => {\n * // ...\n * })\n */\n add(id, keys, handler, opts = {}) {\n const { em } = this;\n const cmd = em.get('Commands');\n const editor = em.getEditor();\n const canvas = em.get('Canvas');\n const keymap = { id, keys, handler };\n const pk = this.keymaps[id];\n pk && this.remove(id);\n this.keymaps[id] = keymap;\n keymaster(keys, (e, h) => {\n // It's safer putting handlers resolution inside the callback\n const opt = { event: e, h };\n handler = isString(handler) ? cmd.get(handler) : handler;\n const ableTorun = !em.isEditing() && !editor.Canvas.isInputFocused();\n if (ableTorun || opts.force) {\n opts.prevent && canvas.getCanvasView().preventDefault(e);\n typeof handler == 'object' ? cmd.runCommand(handler, opt) : handler(editor, 0, opt);\n const args = [id, h.shortcut, e];\n em.trigger('keymap:emit', ...args);\n em.trigger(`keymap:emit:${id}`, ...args);\n }\n });\n em.trigger('keymap:add', keymap);\n return keymap;\n },\n\n /**\n * Get the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Keymap object\n * @example\n * keymaps.get('ns:my-keymap');\n * // -> {keys, handler};\n */\n get(id) {\n return this.keymaps[id];\n },\n\n /**\n * Get all keymaps\n * @return {Object}\n * @example\n * keymaps.getAll();\n * // -> {id1: {}, id2: {}};\n */\n getAll() {\n return this.keymaps;\n },\n\n /**\n * Remove the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Removed keymap\n * @example\n * keymaps.remove('ns:my-keymap');\n * // -> {keys, handler};\n */\n remove(id) {\n const em = this.em;\n const keymap = this.get(id);\n\n if (keymap) {\n delete this.keymaps[id];\n keymap.keys.split(', ').forEach(k => keymaster.unbind(k.trim()));\n em && em.trigger('keymap:remove', keymap);\n return keymap;\n }\n },\n\n /**\n * Remove all binded keymaps\n * @return {this}\n */\n removeAll() {\n Object.keys(this.keymaps).forEach(keymap => this.remove(keymap));\n keymaster.handlers = {};\n return this;\n },\n\n destroy() {\n this.removeAll();\n this.keymaps = {};\n this.em = {};\n },\n };\n};\n","export default {\n stylePrefix: 'mdl-',\n\n title: '',\n\n content: '',\n\n backdrop: true,\n\n // Avoid rendering the default modal.\n custom: false,\n\n /**\n * Extend ModalView object (view/ModalView.js)\n * @example\n * extend: {\n * template() {\n * return '
...New modal template...
';\n * },\n * },\n */\n extend: {}\n};\n","import { Model } from 'backbone';\n\nexport default class Modal extends Model {\n defaults() {\n return {\n title: '',\n content: '',\n attributes: {},\n open: false\n };\n }\n\n open() {\n this.set('open', true);\n }\n\n close() {\n this.set('open', false);\n }\n}\n","import { View } from 'backbone';\n\nexport default class ModalView extends View {\n template({ pfx, ppfx, content, title }) {\n return `
\n
\n
${title}
\n
\n
\n
\n
${content}
\n
\n
\n
\n
`;\n }\n\n events() {\n return {\n click: 'onClick',\n 'click [data-close-modal]': 'hide'\n };\n }\n\n initialize(o) {\n const model = this.model;\n const config = o.config || {};\n const pfx = config.stylePrefix || '';\n this.config = config;\n this.pfx = pfx;\n this.ppfx = config.pStylePrefix || '';\n this.listenTo(model, 'change:open', this.updateOpen);\n this.listenTo(model, 'change:title', this.updateTitle);\n this.listenTo(model, 'change:content', this.updateContent);\n }\n\n onClick(e) {\n const bkd = this.config.backdrop;\n bkd && e.target === this.el && this.hide();\n }\n\n /**\n * Returns collector element\n * @return {HTMLElement}\n * @private\n */\n getCollector() {\n if (!this.$collector)\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(opts = {}) {\n if (!this.$title) this.$title = this.$el.find('.' + this.pfx + 'title');\n return opts.$ ? this.$title : this.$title.get(0);\n }\n\n /**\n * Update content\n * @private\n * */\n updateContent() {\n var content = this.getContent();\n const children = content.children();\n const coll = this.getCollector();\n const body = this.model.get('content');\n children.length && coll.append(children);\n content.empty().append(body);\n }\n\n /**\n * Update title\n * @private\n * */\n updateTitle() {\n const title = this.getTitle({ $: true });\n title && title.empty().append(this.model.get('title'));\n }\n\n /**\n * Update open\n * @private\n * */\n updateOpen() {\n this.el.style.display = this.model.get('open') ? '' : 'none';\n }\n\n /**\n * Hide modal\n * @private\n * */\n hide() {\n this.model.close();\n }\n\n /**\n * Show modal\n * @private\n * */\n show() {\n this.model.open();\n }\n\n updateAttr(attr) {\n const { pfx, $el, el } = this;\n const currAttr = [].slice.call(el.attributes).map(i => i.name);\n $el.removeAttr(currAttr.join(' '));\n $el.attr({\n ...(attr || {}),\n class: `${pfx}container ${(attr && attr.class) || ''}`.trim()\n });\n }\n\n render() {\n const el = this.$el;\n const obj = this.model.toJSON();\n obj.pfx = this.pfx;\n obj.ppfx = this.ppfx;\n el.html(this.template(obj));\n this.updateAttr();\n this.updateOpen();\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/modal_dialog/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * modal: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const modal = editor.Modal;\n * ```\n *\n * ## Available Events\n * * `modal:open` - Modal is opened\n * * `modal:close` - Modal is closed\n * * `modal` - Event triggered on any change related to the modal. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [setTitle](#settitle)\n * * [getTitle](#gettitle)\n * * [setContent](#setcontent)\n * * [getContent](#getcontent)\n * * [onceClose](#onceclose)\n * * [onceOpen](#onceopen)\n *\n * @module Modal\n */\n\nimport { debounce, isFunction, isString } from 'underscore';\nimport { createText } from '../utils/dom';\nimport defaults from './config/config';\nimport ModalM from './model/Modal';\nimport ModalView from './view/ModalView';\n\nexport default () => {\n var c = {};\n var model, modal;\n\n const triggerEvent = (enable, em) => {\n em && em.trigger(`modal:${enable ? 'open' : 'close'}`);\n };\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Modal',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config\n };\n\n const em = c.em;\n this.em = em;\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n model = new ModalM(c);\n model.on('change:open', (m, enb) => triggerEvent(enb, em));\n model.on(\n 'change',\n debounce(() => {\n const data = this._evData();\n const { custom } = this.getConfig();\n isFunction(custom) && custom(data);\n em.trigger('modal', data);\n })\n );\n\n return this;\n },\n\n _evData() {\n const titl = this.getTitle();\n const cnt = this.getContent();\n const { open, attributes } = model.attributes;\n return {\n open,\n attributes,\n title: isString(titl) ? createText(titl) : titl,\n content: isString(cnt) ? createText(cnt) : cnt.get ? cnt.get(0) : cnt,\n close: () => this.close()\n };\n },\n\n postRender(view) {\n const el = view.model.getConfig().el || view.el;\n const res = this.render();\n res && res.appendTo(el);\n },\n\n /**\n * Open the modal window\n * @param {Object} [opts={}] Options\n * @param {String|HTMLElement} [opts.title] Title to set for the modal\n * @param {String|HTMLElement} [opts.content] Content to set for the modal\n * @param {Object} [opts.attributes] Updates the modal wrapper with custom attributes\n * @returns {this}\n * @example\n * modal.open({\n * title: 'My title',\n * content: 'My content',\n * attributes: { class: 'my-class' },\n * });\n */\n open(opts = {}) {\n const attr = opts.attributes || {};\n opts.title && this.setTitle(opts.title);\n opts.content && this.setContent(opts.content);\n model.set('attributes', attr);\n model.open();\n modal && modal.updateAttr(attr);\n return this;\n },\n\n /**\n * Close the modal window\n * @returns {this}\n * @example\n * modal.close();\n */\n close() {\n model.close();\n return this;\n },\n\n /**\n * Execute callback when the modal will be closed.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceClose(() => {\n * console.log('The modal is closed');\n * });\n */\n onceClose(clb) {\n this.em.once('modal:close', clb);\n return this;\n },\n\n /**\n * Execute callback when the modal will be opened.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceOpen(() => {\n * console.log('The modal is opened');\n * });\n */\n onceOpen(clb) {\n this.em.once('modal:open', clb);\n return this;\n },\n\n /**\n * Checks if the modal window is open\n * @returns {Boolean}\n * @example\n * modal.isOpen(); // true | false\n */\n isOpen() {\n return !!model.get('open');\n },\n\n /**\n * Set the title to the modal window\n * @param {string | HTMLElement} title Title\n * @returns {this}\n * @example\n * // pass a string\n * modal.setTitle('Some title');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New title';\n * modal.setTitle(el);\n */\n setTitle(title) {\n model.set('title', title);\n return this;\n },\n\n /**\n * Returns the title of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getTitle();\n */\n getTitle() {\n return model.get('title');\n },\n\n /**\n * Set the content of the modal window\n * @param {string | HTMLElement} content Content\n * @returns {this}\n * @example\n * // pass a string\n * modal.setContent('Some content');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New content';\n * modal.setContent(el);\n */\n setContent(content) {\n model.set('content', ' ');\n model.set('content', content);\n return this;\n },\n\n /**\n * Get the content of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getContent();\n */\n getContent() {\n return model.get('content');\n },\n\n /**\n * Returns content element\n * @return {HTMLElement}\n * @private\n */\n getContentEl() {\n return modal.getContent().get(0);\n },\n\n /**\n * Returns modal model\n * @return {Model}\n * @private\n */\n getModel() {\n return model;\n },\n\n /**\n * Render the modal window\n * @return {HTMLElement}\n * @private\n */\n render() {\n if (this.getConfig().custom) return;\n const View = ModalView.extend(c.extend);\n const el = modal && modal.el;\n modal = new View({\n el,\n model,\n config: c\n });\n return modal.render().$el;\n },\n\n destroy() {\n modal && modal.remove();\n [c, model, modal].forEach(i => (i = {}));\n this.em = {};\n }\n };\n};\n","export default {\n stylePrefix: '',\n\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Enable/Disable globally the possibility to sort layers\n sortable: 1,\n\n // Enable/Disable globally the possibility to hide layers\n hidable: 1,\n\n // Hide textnodes\n hideTextnode: 1,\n\n // Indicate a query string of the element to be selected as the root of layers.\n // By default the root is the wrapper\n root: '',\n\n // Indicates if the wrapper is visible in layers\n showWrapper: 1,\n\n // Show hovered components in canvas\n showHover: 1,\n\n // Scroll to selected component in Canvas when it's selected in Layers\n // true, false or `scrollIntoView`-like options,\n // `block: 'nearest'` avoids the issue of window scrolling\n scrollCanvas: { behavior: 'smooth', block: 'nearest' },\n\n // Scroll to selected component in Layers when it's selected in Canvas\n // true, false or `scrollIntoView`-like options\n scrollLayers: { behavior: 'auto', block: 'nearest' },\n\n // Highlight when a layer component is hovered\n highlightHover: 1,\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is initialized.\n * Useful to trigger updates on some component prop change.\n * @example\n * onInit({ component, render, listenTo }) {\n * listenTo(component, 'change:some-prop', render);\n * };\n */\n onInit: () => {},\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is rendered.\n * A callback useful to update the layer DOM on some component change\n * @example\n * onRender({ component, el }) { // el is the DOM of the layer\n * if (component.get('some-prop')) {\n * // do changes using the `el` DOM\n * }\n * }\n */\n onRender: () => {},\n\n /**\n * Extend Layer view object (view/ItemView.js)\n * @example\n * extend: {\n * setName(name) {\n * // this.model is the component of the layer\n * this.model.set('another-prop-for-name', name);\n * },\n * },\n */\n extend: {}\n};\n","import { isUndefined, isString, bindAll } from 'underscore';\nimport { getModel, isEscKey, isEnterKey } from 'utils/mixins';\nimport Backbone from 'backbone';\nimport ComponentView from 'dom_components/view/ComponentView';\nimport { eventDrag } from 'dom_components/model/Component';\n\nconst inputProp = 'contentEditable';\nconst styleOpts = { mediaText: '' };\nconst $ = Backbone.$;\nconst isStyleHidden = (style = {}) => {\n return (style.display || '').trim().indexOf('none') === 0;\n};\nlet ItemsView;\n\nexport default Backbone.View.extend({\n events: {\n 'mousedown [data-toggle-move]': 'startSort',\n 'touchstart [data-toggle-move]': 'startSort',\n 'click [data-toggle-visible]': 'toggleVisibility',\n 'click [data-toggle-open]': 'toggleOpening',\n 'click [data-toggle-select]': 'handleSelect',\n 'mouseover [data-toggle-select]': 'handleHover',\n 'mouseout [data-toggle-select]': 'handleHoverOut',\n 'dblclick [data-name]': 'handleEdit',\n 'keydown [data-name]': 'handleEditKey',\n 'focusout [data-name]': 'handleEditEnd',\n },\n\n template(model) {\n const { pfx, ppfx, config, clsNoEdit } = this;\n const { hidable } = config;\n const count = this.countChildren(model);\n const addClass = !count ? this.clsNoChild : '';\n const clsTitle = `${this.clsTitle} ${addClass}`;\n const clsTitleC = `${this.clsTitleC} ${ppfx}one-bg`;\n const clsCaret = `${this.clsCaret} fa fa-chevron-right`;\n const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`;\n const level = this.level + 1;\n const gut = `${30 + level * 10}px`;\n const name = model.getName();\n const icon = model.getIcon();\n const clsBase = `${pfx}layer`;\n\n return `\n ${\n hidable\n ? ``\n : ''\n }\n
\n
\n
\n \n ${icon ? `${icon}` : ''}\n ${name}\n
\n
\n
\n
${count || ''}
\n
\n \n
\n
`;\n },\n\n initialize(o = {}) {\n bindAll(this, '__render');\n this.opt = o;\n this.level = o.level;\n const config = o.config || {};\n const { onInit } = config;\n this.config = config;\n this.em = o.config.em;\n this.ppfx = this.em.get('Config').stylePrefix;\n this.sorter = o.sorter || '';\n this.pfx = this.config.stylePrefix;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const model = this.model;\n const components = model.get('components');\n const type = model.get('type') || 'default';\n model.set('open', false);\n this.listenTo(components, 'remove add reset', this.checkChildren);\n [\n ['change:status', this.updateStatus],\n ['change:open', this.updateOpening],\n ['change:layerable', this.updateLayerable],\n ['change:style:display', this.updateVisibility],\n ['rerender:layer', this.render],\n ['change:name change:custom-name', this.updateName],\n ].forEach(item => this.listenTo(model, item[0], item[1]));\n this.className = `${pfx}layer ${pfx}layer__t-${type} no-select ${ppfx}two-color`;\n this.inputNameCls = `${ppfx}layer-name`;\n this.clsTitleC = `${pfx}layer-title-c`;\n this.clsTitle = `${pfx}layer-title`;\n this.clsCaret = `${pfx}layer-caret`;\n this.clsCount = `${pfx}layer-count`;\n this.clsMove = `${pfx}layer-move`;\n this.clsChildren = `${pfx}layer-children`;\n this.clsNoChild = `${pfx}layer-no-chld`;\n this.clsEdit = `${this.inputNameCls}--edit`;\n this.clsNoEdit = `${this.inputNameCls}--no-edit`;\n this.$el.data('model', model);\n this.$el.data('collection', components);\n model.viewLayer = this;\n onInit.bind(this)({\n component: model,\n render: this.__render,\n listenTo: this.listenTo,\n });\n },\n\n updateName() {\n this.getInputName().innerText = this.model.getName();\n },\n\n getVisibilityEl() {\n if (!this.eyeEl) {\n this.eyeEl = this.$el.children(`.${this.pfx}layer-vis`);\n }\n\n return this.eyeEl;\n },\n\n updateVisibility() {\n const pfx = this.pfx;\n const model = this.model;\n const hClass = `${pfx}layer-hidden`;\n const hideIcon = 'fa-eye-slash';\n const hidden = isStyleHidden(model.getStyle(styleOpts));\n const method = hidden ? 'addClass' : 'removeClass';\n this.$el[method](hClass);\n this.getVisibilityEl()[method](hideIcon);\n },\n\n /**\n * Toggle visibility\n * @param\tEvent\n *\n * @return \tvoid\n * */\n toggleVisibility(e) {\n e && e.stopPropagation();\n const { model, em } = this;\n const prevDspKey = '__prev-display';\n const prevDisplay = model.get(prevDspKey);\n const style = model.getStyle(styleOpts);\n const { display } = style;\n const hidden = isStyleHidden(style);\n\n if (hidden) {\n delete style.display;\n\n if (prevDisplay) {\n style.display = prevDisplay;\n model.unset(prevDspKey);\n }\n } else {\n display && model.set(prevDspKey, display);\n style.display = 'none';\n }\n\n model.setStyle(style, styleOpts);\n em && em.trigger('component:toggled'); // Updates Style Manager #2938\n },\n\n /**\n * Handle the edit of the component name\n */\n handleEdit(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n inputEl[inputProp] = true;\n inputEl.focus();\n document.execCommand('selectAll', false, null);\n em && em.setEditing(1);\n $el.find(`.${this.inputNameCls}`).removeClass(clsNoEdit).addClass(clsEdit);\n },\n\n handleEditKey(ev) {\n ev.stopPropagation();\n (isEscKey(ev) || isEnterKey(ev)) && this.handleEditEnd(ev);\n },\n\n /**\n * Handle with the end of editing of the component name\n */\n handleEditEnd(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n const name = inputEl.textContent;\n inputEl.scrollLeft = 0;\n inputEl[inputProp] = false;\n this.setName(name, { component: this.model, propName: 'custom-name' });\n em && em.setEditing(0);\n $el.find(`.${this.inputNameCls}`).addClass(clsNoEdit).removeClass(clsEdit);\n },\n\n setName(name, { propName }) {\n this.model.set(propName, name);\n },\n\n /**\n * Get the input containing the name of the component\n * @return {HTMLElement}\n */\n getInputName() {\n if (!this.inputName) {\n this.inputName = this.el.querySelector(`.${this.inputNameCls}`);\n }\n return this.inputName;\n },\n\n /**\n * Update item opening\n *\n * @return void\n * */\n updateOpening() {\n var opened = this.opt.opened || {};\n var model = this.model;\n const chvDown = 'fa-chevron-down';\n\n if (model.get('open')) {\n this.$el.addClass('open');\n this.getCaret().addClass(chvDown);\n opened[model.cid] = model;\n } else {\n this.$el.removeClass('open');\n this.getCaret().removeClass(chvDown);\n delete opened[model.cid];\n }\n },\n\n /**\n * Toggle item opening\n * @param {Object}\te\n *\n * @return void\n * */\n toggleOpening(e) {\n const { model } = this;\n e.stopImmediatePropagation();\n\n if (!model.get('components').length) return;\n\n model.set('open', !model.get('open'));\n },\n\n /**\n * Handle component selection\n */\n handleSelect(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n\n if (em) {\n em.setSelected(model, { fromLayers: 1, event: e });\n const scroll = config.scrollCanvas;\n scroll && model.views.forEach(view => view.scrollIntoView(scroll));\n }\n },\n\n /**\n * Handle component selection\n */\n handleHover(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n em && config.showHover && em.setHovered(model, { fromLayers: 1 });\n },\n\n handleHoverOut(ev) {\n ev.stopPropagation();\n const { em, config } = this;\n em && config.showHover && em.setHovered(0, { fromLayers: 1 });\n },\n\n /**\n * Delegate to sorter\n * @param\tEvent\n * */\n startSort(e) {\n e.stopPropagation();\n const { em, sorter } = this;\n // Right or middel click\n if (e.button && e.button !== 0) return;\n\n if (sorter) {\n sorter.onStart = data => em.trigger(`${eventDrag}:start`, data);\n sorter.onMoveClb = data => em.trigger(eventDrag, data);\n sorter.startSort(e.target);\n }\n },\n\n /**\n * Freeze item\n * @return\tvoid\n * */\n freeze() {\n this.$el.addClass(this.pfx + 'opac50');\n this.model.set('open', 0);\n },\n\n /**\n * Unfreeze item\n * @return\tvoid\n * */\n unfreeze() {\n this.$el.removeClass(this.pfx + 'opac50');\n },\n\n /**\n * Update item on status change\n * @param\tEvent\n * */\n updateStatus(e) {\n ComponentView.prototype.updateStatus.apply(this, [\n {\n avoidHover: !this.config.highlightHover,\n noExtHl: 1,\n },\n ]);\n },\n\n /**\n * Check if component is visible\n *\n * @return boolean\n * */\n isVisible() {\n return !isStyleHidden(this.model.getStyle());\n },\n\n /**\n * Update item aspect after children changes\n *\n * @return void\n * */\n checkChildren() {\n const { model, clsNoChild } = this;\n const count = this.countChildren(model);\n const title = this.$el.children(`.${this.clsTitleC}`).children(`.${this.clsTitle}`);\n let { cnt } = this;\n\n if (!cnt) {\n cnt = this.$el.children('[data-count]').get(0);\n this.cnt = cnt;\n }\n\n title[count ? 'removeClass' : 'addClass'](clsNoChild);\n if (cnt) cnt.innerHTML = count || '';\n !count && model.set('open', 0);\n },\n\n /**\n * Count children inside model\n * @param {Object} model\n * @return {number}\n * @private\n */\n countChildren(model) {\n var count = 0;\n model.get('components').each(function (m) {\n var isCountable = this.opt.isCountable;\n var hide = this.config.hideTextnode;\n if (isCountable && !isCountable(m, hide)) return;\n count++;\n }, this);\n return count;\n },\n\n getCaret() {\n if (!this.caret || !this.caret.length) {\n const pfx = this.pfx;\n this.caret = this.$el.children(`.${this.clsTitleC}`).find(`.${this.clsCaret}`);\n }\n\n return this.caret;\n },\n\n setRoot(el) {\n el = isString(el) ? this.em.getWrapper().find(el)[0] : el;\n const model = getModel(el, $);\n if (!model) return;\n this.stopListening();\n this.model = model;\n this.initialize(this.opt);\n this._rendered && this.render();\n },\n\n updateLayerable() {\n const { parentView } = this;\n const toRerender = parentView || this;\n toRerender.render();\n },\n\n __clearItems() {\n const { items } = this;\n items && items.remove();\n },\n\n remove() {\n Backbone.View.prototype.remove.apply(this, arguments);\n this.__clearItems();\n },\n\n render() {\n const { model, config, pfx, ppfx, opt } = this;\n this.__clearItems();\n const { isCountable } = opt;\n const hidden = isCountable && !isCountable(model, config.hideTextnode);\n const vis = this.isVisible();\n const el = this.$el.empty();\n const level = this.level + 1;\n this.inputName = 0;\n\n if (isUndefined(ItemsView)) {\n ItemsView = require('./ItemsView').default;\n }\n\n this.items = new ItemsView({\n ItemView: opt.ItemView,\n collection: model.get('components'),\n config: this.config,\n sorter: this.sorter,\n opened: this.opt.opened,\n parentView: this,\n parent: model,\n level,\n });\n const children = this.items.render().$el;\n\n if (!this.config.showWrapper && level === 1) {\n el.append(children);\n } else {\n el.html(this.template(model));\n el.find(`.${this.clsChildren}`).append(children);\n }\n\n if (!model.get('draggable') || !this.config.sortable) {\n el.children(`.${this.clsMove}`).remove();\n }\n\n !vis && (this.className += ` ${pfx}hide`);\n hidden && (this.className += ` ${ppfx}hidden`);\n el.attr('class', this.className);\n this.updateOpening();\n this.updateStatus();\n this.updateVisibility();\n this.__render();\n this._rendered = 1;\n return this;\n },\n\n __render() {\n const { model, config, el } = this;\n const { onRender } = config;\n const opt = { component: model, el };\n onRender.bind(this)(opt);\n this.em.trigger('layer:render', opt);\n },\n});\n","import defaults from './config/config';\nimport View from './view/ItemView';\nimport { isElement } from 'underscore';\n\nexport default () => {\n let em;\n let layers;\n let config = {};\n\n return {\n name: 'LayerManager',\n\n init(opts = {}) {\n config = { ...defaults, ...opts };\n config.stylePrefix = opts.pStylePrefix;\n em = config.em;\n return this;\n },\n\n getConfig() {\n return config;\n },\n\n onLoad() {\n em && em.on('component:selected', this.componentChanged);\n this.componentChanged();\n },\n\n postRender() {\n const elTo = config.appendTo;\n const root = config.root;\n root && this.setRoot(root);\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render());\n }\n },\n\n /**\n * Set new root for layers\n * @param {HTMLElement|Component|String} el Component to be set as the root\n * @return {self}\n */\n setRoot(el) {\n layers && layers.setRoot(el);\n return this;\n },\n\n /**\n * Get the root of layers\n * @return {Component}\n */\n getRoot() {\n return layers && layers.model;\n },\n\n /**\n * Return the view of layers\n * @return {View}\n */\n getAll() {\n return layers;\n },\n\n /**\n * Triggered when the selected component is changed\n * @private\n */\n componentChanged(selected, opts = {}) {\n if (opts.fromLayers) return;\n const opened = em.get('opened');\n const model = em.getSelected();\n const scroll = config.scrollLayers;\n let parent = model && model.collection ? model.collection.parent : null;\n for (let cid in opened) opened[cid].set('open', 0);\n\n while (parent) {\n parent.set('open', 1);\n opened[parent.cid] = parent;\n parent = parent.collection ? parent.collection.parent : null;\n }\n\n if (model && scroll) {\n const el = model.viewLayer && model.viewLayer.el;\n el && el.scrollIntoView(scroll);\n }\n },\n\n render() {\n const ItemView = View.extend(config.extend);\n layers && layers.remove();\n layers = new ItemView({\n ItemView,\n level: 0,\n config,\n opened: config.opened || {},\n model: em.get('DomComponents').getWrapper()\n });\n return layers.render().el;\n },\n\n destroy() {\n layers && layers.remove();\n [em, layers, config].forEach(i => (i = {}));\n }\n };\n};\n","import { View } from 'backbone';\nimport { eventDrag } from 'dom_components/model/Component';\n\nexport default View.extend({\n initialize(o = {}) {\n this.items = [];\n this.opt = o;\n const config = o.config || {};\n this.level = o.level;\n this.config = config;\n this.preview = o.preview;\n this.ppfx = config.pStylePrefix || '';\n this.pfx = config.stylePrefix || '';\n this.parent = o.parent;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const parent = this.parent;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset resetNavigator', this.render);\n this.listenTo(coll, 'remove', this.removeChildren);\n this.className = `${pfx}layers`;\n const em = config.em;\n\n if (config.sortable && !this.opt.sorter) {\n const utils = em.get('Utils');\n this.opt.sorter = new utils.Sorter({\n container: config.sortContainer || this.el,\n containerSel: `.${this.className}`,\n itemSel: `.${pfx}layer`,\n ignoreViewChildren: 1,\n onEndMove(created, sorter, data) {\n const srcModel = sorter.getSourceModel();\n em.setSelected(srcModel, { forceChange: 1 });\n em.trigger(`${eventDrag}:end`, data);\n },\n avoidSelectOnEnd: 1,\n nested: 1,\n ppfx,\n pfx\n });\n }\n\n this.sorter = this.opt.sorter || '';\n\n // For the sorter\n this.$el.data('collection', coll);\n parent && this.$el.data('model', parent);\n },\n\n removeChildren(removed) {\n const view = removed.viewLayer;\n if (!view) return;\n view.remove();\n removed.viewLayer = 0;\n },\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * */\n addTo(model) {\n var i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n },\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n * @param integer Index of append\n *\n * @return Object Object created\n * */\n addToCollection(model, fragmentEl, index) {\n const { level, parentView, opt } = this;\n const { ItemView } = opt;\n const fragment = fragmentEl || null;\n const item = new ItemView({\n ItemView,\n level,\n model,\n parentView,\n config: this.config,\n sorter: this.sorter,\n isCountable: this.isCountable,\n opened: this.opt.opened\n });\n const rendered = item.render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n if (typeof index != 'undefined') {\n var method = 'before';\n // If the added model is the last of collection\n // need to change the logic of append\n if (this.$el.children().length == index) {\n index--;\n method = 'after';\n }\n // In case the added is new in the collection index will be -1\n if (index < 0) {\n this.$el.append(rendered);\n } else\n this.$el\n .children()\n .eq(index)\n [method](rendered);\n } else this.$el.append(rendered);\n }\n this.items.push(item);\n return rendered;\n },\n\n remove() {\n View.prototype.remove.apply(this, arguments);\n this.items.map(i => i.remove());\n },\n\n /**\n * Check if the model could be count by the navigator\n * @param {Object} model\n * @return {Boolean}\n * @private\n */\n isCountable(model, hide) {\n var type = model.get('type');\n var tag = model.get('tagName');\n if (\n ((type == 'textnode' || tag == 'br') && hide) ||\n !model.get('layerable')\n ) {\n return false;\n }\n return true;\n },\n\n render() {\n const frag = document.createDocumentFragment();\n const el = this.el;\n el.innerHTML = '';\n this.collection.each(model => this.addToCollection(model, frag));\n el.appendChild(frag);\n el.className = this.className;\n return this;\n }\n});\n","import { Model } from 'common';\nimport { result, forEach } from 'underscore';\nimport Frames from 'canvas/model/Frames';\n\nexport default class Page extends Model {\n defaults() {\n return {\n frames: [],\n _undo: true\n };\n }\n\n initialize(props, opts = {}) {\n const { config = {} } = opts;\n const { em } = config;\n const defFrame = {};\n this.em = em;\n if (!props.frames) {\n defFrame.component = props.component;\n defFrame.styles = props.styles;\n ['component', 'styles'].map(i => this.unset(i));\n }\n const frms = props.frames || [defFrame];\n const frames = new Frames(frms, config);\n frames.page = this;\n this.set('frames', frames);\n const um = em && em.get('UndoManager');\n um && um.add(frames);\n }\n\n onRemove() {\n this.get('frames').reset();\n }\n\n getFrames() {\n return this.get('frames');\n }\n\n /**\n * Get page id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get page name\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Update page name\n * @param {String} name New page name\n * @example\n * page.setName('New name');\n */\n setName(name) {\n return this.get({ name });\n }\n\n /**\n * Get all frames\n * @returns {Array}\n * @example\n * const arrayOfFrames = page.getAllFrames();\n */\n getAllFrames() {\n return this.getFrames().models || [];\n }\n\n /**\n * Get the first frame of the page (identified always as the main one)\n * @returns {Frame}\n * @example\n * const mainFrame = page.getMainFrame();\n */\n getMainFrame() {\n return this.getFrames().at(0);\n }\n\n /**\n * Get the root component (usually is the `wrapper` component) from the main frame\n * @returns {Component}\n * @example\n * const rootComponent = page.getMainComponent();\n * console.log(rootComponent.toHTML());\n */\n getMainComponent() {\n const frame = this.getMainFrame();\n return frame && frame.getComponent();\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const defaults = result(this, 'defaults');\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n return obj;\n }\n}\n","import { Collection } from 'backbone';\nimport Page from './Page';\n\nexport default class Pages extends Collection {\n initialize(models, config = {}) {\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nPages.prototype.model = Page;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * ....\n * pageManager: {\n * pages: [\n * {\n * id: 'page-id',\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * }\n * ]\n * },\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const pageManager = editor.Pages;\n * ```\n *\n * ## Available Events\n * * `page:add` - Added new page. The page is passed as an argument to the callback\n * * `page:remove` - Page removed. The page is passed as an argument to the callback\n * * `page:select` - New page selected. The newly selected page and the previous one, are passed as arguments to the callback\n * * `page:update` - Page updated. The updated page and the object containing changes are passed as arguments to the callback\n * * `page` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllWrappers](#getallwrappers)\n * * [getMain](#getmain)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Page]: page.html\n * [Component]: component.html\n *\n * @module Pages\n */\n\nimport { isString, bindAll, unique, flatten } from 'underscore';\nimport { createId } from 'utils/mixins';\nimport { Model } from 'backbone';\nimport Pages from './model/Pages';\nimport Page from './model/Page';\n\nexport const evAll = 'page';\nexport const evPfx = `${evAll}:`;\nexport const evPageSelect = `${evPfx}select`;\nexport const evPageSelectBefore = `${evPageSelect}:before`;\nexport const evPageUpdate = `${evPfx}update`;\nexport const evPageAdd = `${evPfx}add`;\nexport const evPageAddBefore = `${evPageAdd}:before`;\nexport const evPageRemove = `${evPfx}remove`;\nexport const evPageRemoveBefore = `${evPageRemove}:before`;\nconst chnSel = 'change:selected';\nconst typeMain = 'main';\n\nexport default () => {\n return {\n name: 'PageManager',\n\n storageKey: 'pages',\n\n Page,\n\n Pages,\n\n events: {\n all: evAll,\n select: evPageSelect,\n selectBefore: evPageSelectBefore,\n update: evPageUpdate,\n add: evPageAdd,\n addBefore: evPageAddBefore,\n remove: evPageRemove,\n removeBefore: evPageRemoveBefore\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n bindAll(this, '_onPageChange');\n const { em } = opts;\n const cnf = { ...opts };\n this.config = cnf;\n this.em = em;\n const pages = new Pages([], cnf);\n this.pages = pages;\n const model = new Model({ _undo: true });\n this.model = model;\n pages.on('add', (p, c, o) => em.trigger(evPageAdd, p, o));\n pages.on('remove', (p, c, o) => em.trigger(evPageRemove, p, o));\n pages.on('change', (p, c) => {\n em.trigger(evPageUpdate, p, p.changedAttributes(), c);\n });\n pages.on('reset', coll => coll.at(0) && this.select(coll.at(0)));\n pages.on('all', this.__onChange, this);\n model.on(chnSel, this._onPageChange);\n\n return this;\n },\n\n __onChange(event, page, coll, opts) {\n const options = opts || coll;\n this.em.trigger(evAll, { event, page, options });\n },\n\n onLoad() {\n const { pages } = this;\n const opt = { silent: true };\n pages.add(this.config.pages || [], opt);\n const mainPage = !pages.length\n ? this.add({ type: typeMain }, opt)\n : this.getMain();\n this.select(mainPage, opt);\n },\n\n _onPageChange(m, page, opts) {\n const { em } = this;\n const lm = em.get('LayerManager');\n const mainComp = page.getMainComponent();\n lm && mainComp && lm.setRoot(mainComp);\n em.trigger(evPageSelect, page, m.previous('selected'));\n this.__onChange(chnSel, page, opts);\n },\n\n postLoad() {\n const { em, model } = this;\n const um = em.get('UndoManager');\n um && um.add(model);\n um && um.add(this.pages);\n },\n\n /**\n * Add new page\n * @param {Object} props Page properties\n * @param {Object} [opts] Options\n * @returns {[Page]}\n * @example\n * const newPage = pageManager.add({\n * id: 'new-page-id', // without an explicit ID, a random one will be created\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * });\n */\n add(props, opts = {}) {\n const { em } = this;\n props.id = props.id || this._createId();\n const add = () => {\n const page = this.pages.add(props, opts);\n opts.select && this.select(page);\n return page;\n };\n !opts.silent && em.trigger(evPageAddBefore, props, add, opts);\n return !opts.abort && add();\n },\n\n /**\n * Remove page\n * @param {String|[Page]} page Page or page id\n * @returns {[Page]} Removed Page\n * @example\n * const removedPage = pageManager.remove('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.remove(somePage);\n */\n remove(page, opts = {}) {\n const { em } = this;\n const pg = isString(page) ? this.get(page) : page;\n const rm = () => {\n pg && this.pages.remove(pg, opts);\n return pg;\n };\n !opts.silent && em.trigger(evPageRemoveBefore, pg, rm, opts);\n return !opts.abort && rm();\n },\n\n /**\n * Get page by id\n * @param {String} id Page id\n * @returns {[Page]}\n * @example\n * const somePage = pageManager.get('page-id');\n */\n get(id) {\n return this.pages.filter(p => p.get('id') === id)[0];\n },\n\n /**\n * Get main page (the first one available)\n * @returns {[Page]}\n * @example\n * const mainPage = pageManager.getMain();\n */\n getMain() {\n const { pages } = this;\n return pages.filter(p => p.get('type') === typeMain)[0] || pages.at(0);\n },\n\n /**\n * Get all pages\n * @returns {Array<[Page]>}\n * @example\n * const arrayOfPages = pageManager.getAll();\n */\n getAll() {\n return [...this.pages.models];\n },\n\n /**\n * Get wrapper components (aka body) from all pages and frames.\n * @returns {Array<[Component]>}\n * @example\n * const wrappers = pageManager.getAllWrappers();\n * // Get all `image` components from the project\n * const allImages = wrappers.map(wrp => wrp.findType('image')).flat();\n */\n getAllWrappers() {\n const pages = this.getAll();\n return unique(\n flatten(\n pages.map(page =>\n page.getAllFrames().map(frame => frame.getComponent())\n )\n )\n );\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get('id')] = i;\n return acc;\n }, {});\n },\n\n /**\n * Change the selected page. This will switch the page rendered in canvas\n * @param {String|[Page]} page Page or page id\n * @returns {this}\n * @example\n * pageManager.select('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.select(somePage);\n */\n select(page, opts = {}) {\n const pg = isString(page) ? this.get(page) : page;\n if (pg) {\n this.em.trigger(evPageSelectBefore, pg, opts);\n this.model.set('selected', pg, opts);\n }\n return this;\n },\n\n /**\n * Get the selected page\n * @returns {[Page]}\n * @example\n * const selectedPage = pageManager.getSelected();\n */\n getSelected() {\n return this.model.get('selected');\n },\n\n destroy() {\n this.pages.off().reset();\n this.model.stopListening();\n this.model.clear({ silent: true });\n ['selected', 'config', 'em', 'pages', 'model'].map(i => (this[i] = 0));\n },\n\n store(noStore) {\n if (!this.em.get('hasPages')) return {};\n const obj = {};\n const cnf = this.config;\n obj[this.storageKey] = JSON.stringify(this.getAll());\n if (!noStore && cnf.stm) cnf.stm.store(obj);\n return obj;\n },\n\n load(data = {}) {\n const key = this.storageKey;\n let res = data[key] || [];\n\n if (typeof res == 'string') {\n try {\n res = JSON.parse(data[key]);\n } catch (err) {}\n }\n\n res && res.length && this.pages.reset(res);\n\n return res;\n },\n\n _createId() {\n const pages = this.getAll();\n const len = pages.length + 16;\n const pagesMap = this.getAllMap();\n let id;\n\n do {\n id = createId(len);\n } while (pagesMap[id]);\n\n return id;\n }\n };\n};\n","const swv = 'sw-visibility';\nconst expt = 'export-template';\nconst osm = 'open-sm';\nconst otm = 'open-tm';\nconst ola = 'open-layers';\nconst obl = 'open-blocks';\nconst ful = 'fullscreen';\nconst prv = 'preview';\n\nexport default {\n stylePrefix: 'pn-',\n\n // Default panels fa-sliders for features\n defaults: [\n {\n id: 'commands',\n buttons: [{}]\n },\n {\n id: 'options',\n buttons: [\n {\n active: true,\n id: swv,\n className: 'fa fa-square-o',\n command: swv,\n context: swv,\n attributes: { title: 'View components' }\n },\n {\n id: prv,\n className: 'fa fa-eye',\n command: prv,\n context: prv,\n attributes: { title: 'Preview' }\n },\n {\n id: ful,\n className: 'fa fa-arrows-alt',\n command: ful,\n context: ful,\n attributes: { title: 'Fullscreen' }\n },\n {\n id: expt,\n className: 'fa fa-code',\n command: expt,\n attributes: { title: 'View code' }\n }\n ]\n },\n {\n id: 'views',\n buttons: [\n {\n id: osm,\n className: 'fa fa-paint-brush',\n command: osm,\n active: true,\n togglable: 0,\n attributes: { title: 'Open Style Manager' }\n },\n {\n id: otm,\n className: 'fa fa-cog',\n command: otm,\n togglable: 0,\n attributes: { title: 'Settings' }\n },\n {\n id: ola,\n className: 'fa fa-bars',\n command: ola,\n togglable: 0,\n attributes: { title: 'Open Layer Manager' }\n },\n {\n id: obl,\n className: 'fa fa-th-large',\n command: obl,\n togglable: 0,\n attributes: { title: 'Open Blocks' }\n }\n ]\n }\n ],\n\n // Editor model\n em: null,\n\n // Delay before show children buttons (in milliseconds)\n delayBtnsShow: 300\n};\n","import 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 const { model } = this;\n const cls = model.get('className');\n const { command, listen } = model.attributes;\n const config = o.config || {};\n const { em } = config;\n this.config = config;\n this.em = em;\n const pfx = this.config.stylePrefix || '';\n const ppfx = this.config.pStylePrefix || '';\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix || '';\n this.id = pfx + model.get('id');\n this.activeCls = `${pfx}active ${ppfx}four-color`;\n this.disableCls = `${ppfx}disabled`;\n this.btnsVisCls = `${pfx}visible`;\n this.className = pfx + 'btn' + (cls ? ' ' + cls : '');\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'change:active updateActive', this.updateActive);\n this.listenTo(model, 'checkActive', this.checkActive);\n this.listenTo(model, 'change:bntsVis', this.updateBtnsVis);\n this.listenTo(model, 'change:attributes', this.updateAttributes);\n this.listenTo(model, 'change:className', this.updateClassName);\n this.listenTo(model, 'change:disable', this.updateDisable);\n\n if (em && isString(command) && listen) {\n const chnOpt = { fromListen: 1 };\n this.listenTo(em, `run:${command}`, () =>\n model.set('active', true, chnOpt)\n );\n this.listenTo(em, `stop:${command}`, () =>\n model.set('active', false, chnOpt)\n );\n }\n\n if (em && em.get) this.commands = em.get('Commands');\n },\n\n /**\n * Updates class name of the button\n *\n * @return void\n * */\n updateClassName() {\n const { model, pfx } = this;\n const cls = model.get('className');\n const attrCls = model.get('attributes').class;\n const classStr = `${attrCls ? attrCls : ''} ${pfx}btn ${cls ? cls : ''}`;\n this.$el.attr('class', classStr.trim());\n },\n\n /**\n * Updates attributes of the button\n *\n * @return void\n * */\n updateAttributes() {\n const { em, model, $el } = this;\n const attr = model.get('attributes') || {};\n const title = em && em.t && em.t(`panels.buttons.titles.${model.id}`);\n $el.attr(attr);\n title && $el.attr({ title });\n\n this.updateClassName();\n },\n\n /**\n * Updates visibility of children buttons\n *\n * @return void\n * */\n updateBtnsVis() {\n if (!this.$buttons) return;\n\n if (this.model.get('bntsVis')) this.$buttons.addClass(this.btnsVisCls);\n else this.$buttons.removeClass(this.btnsVisCls);\n },\n\n /**\n * Update active status of the button\n *\n * @return void\n * */\n updateActive(m, v, opts = {}) {\n const { model, commands, $el, activeCls } = this;\n const { fromCollection, fromListen } = opts;\n const context = model.get('context');\n const options = model.get('options');\n const commandName = model.get('command');\n let command = {};\n\n if (!commandName) return;\n\n if (commands && isString(commandName)) {\n command = commands.get(commandName) || {};\n } else if (isFunction(commandName)) {\n command = commands.create({ run: commandName });\n } else if (commandName !== null && isObject(commandName)) {\n command = commands.create(commandName);\n }\n\n if (model.get('active')) {\n !fromCollection && model.collection.deactivateAll(context, model);\n model.set('active', true, { silent: true }).trigger('checkActive');\n !fromListen &&\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 !fromListen &&\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 this.toggleVisible();\n\n if (this.buttons.length) {\n var buttons = new ButtonsView({\n collection: this.buttons,\n config: this.config\n });\n $el.append(buttons.render().el);\n }\n\n $el.append(this.model.get('content'));\n return this;\n }\n});\n","import 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 return this;\n },\n\n /**\n * Returns the collection of panels\n * @return {Collection} Collection of panel\n */\n getPanels() {\n return panels;\n },\n\n /**\n * Returns panels element\n * @return {HTMLElement}\n */\n getPanelsEl() {\n return PanelsViewObj && PanelsViewObj.el;\n },\n\n /**\n * Add new panel to the collection\n * @param {Object|Panel} panel Object with right properties or an instance of Panel\n * @return {Panel} Added panel. Useful in case passed argument was an Object\n * @example\n * var newPanel = panelManager.addPanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n */\n addPanel(panel) {\n return panels.add(panel);\n },\n\n /**\n * Remove a panel from the collection\n * @param {Object|Panel|String} panel Object with right properties or an instance of Panel or Painel id\n * @return {Panel} Removed panel. Useful in case passed argument was an Object\n * @example\n * const newPanel = panelManager.removePanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n *\n * const newPanel = panelManager.removePanel('myNewPanel');\n *\n */\n removePanel(panel) {\n return panels.remove(panel);\n },\n\n /**\n * Get panel by ID\n * @param {string} id Id string\n * @return {Panel|null}\n * @example\n * var myPanel = panelManager.getPanel('myNewPanel');\n */\n getPanel(id) {\n var res = panels.where({ id });\n return res.length ? res[0] : null;\n },\n\n /**\n * Add button to the panel\n * @param {string} panelId Panel's ID\n * @param {Object|Button} button Button object or instance of Button\n * @return {Button|null} Added button. Useful in case passed button was an Object\n * @example\n * var newButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n * // It's also possible to pass the command as an object\n * // with .run and .stop methods\n * ...\n * command: {\n * run: function(editor) {\n * ...\n * },\n * stop: function(editor) {\n * ...\n * }\n * },\n * // Or simply like a function which will be evaluated as a single .run command\n * ...\n * command: function(editor) {\n * ...\n * }\n */\n addButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn ? pn.get('buttons').add(button) : null;\n },\n\n /**\n * Remove button from the panel\n * @param {String} panelId Panel's ID\n * @param {String} buttonId Button's ID\n * @return {Button|null} Removed button.\n * @example\n * const removedButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n *\n * const removedButton = panelManager.removeButton('myNewPanel', 'myNewButton');\n *\n */\n removeButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn && pn.get('buttons').remove(button);\n },\n\n /**\n * Get button from the panel\n * @param {string} panelId Panel's ID\n * @param {string} id Button's ID\n * @return {Button|null}\n * @example\n * var button = panelManager.getButton('myPanel','myButton');\n */\n getButton(panelId, id) {\n var pn = this.getPanel(panelId);\n if (pn) {\n var res = pn.get('buttons').where({ id });\n return res.length ? res[0] : null;\n }\n return null;\n },\n\n /**\n * Render panels and buttons\n * @return {HTMLElement}\n * @private\n */\n render() {\n PanelsViewObj && PanelsViewObj.remove();\n PanelsViewObj = new PanelsView({\n collection: panels,\n config: c\n });\n return PanelsViewObj.render().el;\n },\n\n /**\n * Active activable buttons\n * @private\n */\n active() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n btn.get('active') && btn.trigger('updateActive');\n });\n });\n },\n\n /**\n * Disable buttons flagged as disabled\n * @private\n */\n disableButtons() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n if (btn.get('disable')) btn.trigger('change:disable');\n });\n });\n },\n\n destroy() {\n panels.reset();\n panels.stopListening();\n PanelsViewObj && PanelsViewObj.remove();\n [c, panels, PanelsViewObj].forEach(i => (i = {}));\n },\n\n Panel\n };\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n id: '',\n label: '',\n tagName: 'span',\n className: '',\n command: '',\n context: '',\n buttons: [],\n attributes: {},\n options: {},\n active: false,\n dragDrop: false,\n togglable: true,\n runDefaultCommand: true,\n stopDefaultCommand: false,\n disable: false\n },\n\n initialize(options) {\n if (this.get('buttons').length) {\n var Buttons = require('./Buttons').default;\n this.set('buttons', new Buttons(this.get('buttons')));\n }\n }\n});\n","import Backbone from 'backbone';\nimport Button from './Button';\n\nexport default Backbone.Collection.extend({\n model: Button,\n\n /**\n * Deactivate all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n deactivateAllExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('active', false);\n if (r && model.get('buttons').length)\n model.get('buttons').deactivateAllExceptOne(except, r);\n }\n });\n },\n\n /**\n * Deactivate all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n deactivateAll(ctx, sender) {\n const context = ctx || '';\n this.forEach(model => {\n if (model.get('context') == context && model !== sender) {\n model.set('active', false, { fromCollection: 1 });\n }\n });\n },\n\n /**\n * Disables all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n disableAllButtons(ctx) {\n var context = ctx || '';\n this.forEach((model, index) => {\n if (model.get('context') == context) {\n model.set('disable', true);\n }\n });\n },\n\n /**\n * Disables all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n disableAllButtonsExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('disable', true);\n if (r && model.get('buttons').length)\n model.get('buttons').disableAllButtonsExceptOne(except, r);\n }\n });\n }\n});\n","export default {\n textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'],\n\n // Custom CSS parser\n // @see https://grapesjs.com/docs/guides/Custom-CSS-parser.html\n parserCss: null,\n\n // Custom HTML parser\n // At the moment, the custom HTML parser should rely on DOM Node instance as the result\n // @example\n // The return should be an instance of an Node as the root to traverse\n // https://developer.mozilla.org/en-US/docs/Web/API/Node\n // parserHtml: (input, opts = {}) => (new DOMParser()).parseFromString(input, 'text/xml')\n // Here the result will be XMLDocument, which extends Node\n parserHtml: null,\n\n // Default HTML parser options (used in `parserModule.parseHtml(' tags\n allowScripts: false,\n\n // Allow unsafe HTML attributes (eg. `on*` inline event handlers)\n allowUnsafeAttr: false,\n },\n};\n","import { keys } from 'underscore';\n\n// At-rules\n// https://developer.mozilla.org/it/docs/Web/API/CSSRule#Type_constants\nconst atRules = {\n 4: 'media',\n 5: 'font-face',\n 6: 'page',\n 7: 'keyframes',\n 11: 'counter-style',\n 12: 'supports',\n 13: 'document',\n 14: 'font-feature-values',\n 15: 'viewport'\n};\nconst atRuleKeys = keys(atRules);\nconst singleAtRules = ['5', '6', '11', '15'];\nconst singleAtRulesNames = ['font-face', 'page', 'counter-style', 'viewport'];\n\n/**\n * Parse selector string to array.\n * Only classe based are valid as CSS rules inside editor, not valid\n * selectors will be dropped as additional\n * It's ok with the last part of the string as state (:hover, :active)\n * @param {string} str Selectors string\n * @return {Object}\n * @example\n * var res = parseSelector('.test1, .test1.test2, .test2 .test3');\n * console.log(res);\n * // {\n * //result: [['test1'], ['test1', 'test2']],\n * //add: ['.test2 .test3']\n * //}\n */\nexport const parseSelector = (str = '') => {\n const add = [];\n const result = [];\n const sels = str.split(',');\n\n for (var i = 0, len = sels.length; i < len; i++) {\n var sel = sels[i].trim();\n\n // Will accept only concatenated classes and last\n // class might be with state (eg. :hover), nothing else.\n // Can also accept SINGLE ID selectors, eg. `#myid`, `#myid:hover`\n // Composed are not valid: `#myid.some-class`, `#myid.some-class:hover`\n if (\n /^(\\.{1}[\\w\\-]+)+(:{1,2}[\\w\\-()]+)?$/gi.test(sel) ||\n /^(#{1}[\\w\\-]+){1}(:{1,2}[\\w\\-()]+)?$/gi.test(sel)\n ) {\n var cls = sel.split('.').filter(Boolean);\n result.push(cls);\n } else {\n add.push(sel);\n }\n }\n\n return {\n result,\n add\n };\n};\n\n/**\n * Parse style declarations of the node\n * @param {CSSRule} node\n * @return {Object}\n */\nexport const parseStyle = node => {\n const stl = node.style;\n const style = {};\n\n for (var i = 0, len = stl.length; i < len; i++) {\n const propName = stl[i];\n const propValue = stl.getPropertyValue(propName);\n const important = stl.getPropertyPriority(propName);\n style[propName] = `${propValue}${important ? ` !${important}` : ''}`;\n }\n\n return style;\n};\n\n/**\n * Get the condition when possible\n * @param {CSSRule} node\n * @return {string}\n */\nexport const parseCondition = node => {\n const condition =\n node.conditionText ||\n (node.media && node.media.mediaText) ||\n node.name ||\n node.selectorText ||\n '';\n return condition.trim();\n};\n\n/**\n * Create node for the editor\n * @param {Array} selectors Array containing strings of classes\n * @param {Object} style Key-value object of style declarations\n * @return {Object}\n */\nexport const createNode = (selectors, style = {}, opts = {}) => {\n const node = {};\n const selLen = selectors.length;\n const lastClass = selectors[selLen - 1];\n const stateArr = lastClass ? lastClass.split(/:(.+)/) : [];\n const state = stateArr[1];\n const { atRule, selectorsAdd, mediaText } = opts;\n const singleAtRule = singleAtRulesNames.indexOf(atRule) >= 0;\n singleAtRule && (node.singleAtRule = 1);\n atRule && (node.atRuleType = atRule);\n selectorsAdd && (node.selectorsAdd = selectorsAdd);\n mediaText && (node.mediaText = mediaText);\n\n // Isolate the state from selectors\n if (state) {\n selectors[selLen - 1] = stateArr[0];\n node.state = state;\n stateArr.splice(stateArr.length - 1, 1);\n }\n\n node.selectors = selectors;\n node.style = style;\n\n return node;\n};\n\n/**\n * Fetch data from node\n * @param {StyleSheet|CSSRule} el\n * @return {Array}\n */\nexport const parseNode = el => {\n var result = [];\n var nodes = el.cssRules || [];\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n const type = node.type.toString();\n let singleAtRule = 0;\n let atRuleType = '';\n let condition = '';\n // keyText is for CSSKeyframeRule\n let sels = node.selectorText || node.keyText;\n const isSingleAtRule = singleAtRules.indexOf(type) >= 0;\n\n // Check if the node is an at-rule\n if (isSingleAtRule) {\n singleAtRule = 1;\n atRuleType = atRules[type];\n condition = parseCondition(node);\n } else if (atRuleKeys.indexOf(type) >= 0) {\n var subRules = parseNode(node);\n condition = parseCondition(node);\n\n for (var s = 0, lens = subRules.length; s < lens; s++) {\n var subRule = subRules[s];\n condition && (subRule.mediaText = condition);\n subRule.atRuleType = atRules[type];\n }\n result = result.concat(subRules);\n }\n\n if (!sels && !isSingleAtRule) continue;\n const style = parseStyle(node);\n const selsParsed = parseSelector(sels);\n const selsAdd = selsParsed.add;\n sels = selsParsed.result;\n\n let lastRule;\n // For each group of selectors\n for (var k = 0, len3 = sels.length; k < len3; k++) {\n const model = createNode(sels[k], style, {\n atRule: atRules[type]\n });\n result.push(model);\n lastRule = model;\n }\n\n // Need to push somewhere not class-based selectors, if some rule was\n // created will push them there, otherwise will create a new rule\n if (selsAdd.length) {\n var selsAddStr = selsAdd.join(', ');\n if (lastRule) {\n lastRule.selectorsAdd = selsAddStr;\n } else {\n const model = {\n selectors: [],\n selectorsAdd: selsAddStr,\n style\n };\n singleAtRule && (model.singleAtRule = singleAtRule);\n atRuleType && (model.atRuleType = atRuleType);\n condition && (model.mediaText = condition);\n result.push(model);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Parse CSS string and return the array of objects\n * @param {String} str CSS string\n * @return {Array} Array of objects for the definition of CSSRules\n */\nexport default str => {\n const el = document.createElement('style');\n el.innerHTML = str;\n\n // There is no .sheet before adding it to the \n document.head.appendChild(el);\n const sheet = el.sheet;\n document.head.removeChild(el);\n\n return parseNode(sheet);\n};\n","import { isString } from 'underscore';\nimport BrowserCssParser, {\n parseSelector,\n createNode\n} from './BrowserParserCss';\n\nexport default (config = {}) => ({\n /**\n * Parse CSS string to a desired model object\n * @param {String} str CSS string\n * @return {Array}\n */\n parse(str) {\n let result = [];\n const { parserCss, em } = config;\n const editor = em && em.get && em.get('Editor');\n const nodes = parserCss ? parserCss(str, editor) : BrowserCssParser(str);\n nodes.forEach(node => (result = result.concat(this.checkNode(node))));\n em && em.trigger('parse:css', { input: str, output: result });\n\n return result;\n },\n\n /**\n * Check the returned node from a custom parser and transforms it to\n * a valid object for the CSS composer\n * @return {[type]}\n */\n checkNode(node) {\n const { selectors, style } = node;\n\n if (isString(selectors)) {\n const nodes = [];\n const selsParsed = parseSelector(selectors);\n const classSets = selsParsed.result;\n const selectorsAdd = selsParsed.add.join(', ');\n const opts = {\n atRule: node.atRule,\n mediaText: node.params\n };\n\n if (classSets.length) {\n classSets.forEach(classSet => {\n nodes.push(createNode(classSet, style, opts));\n });\n } else {\n nodes.push(createNode([], style, opts));\n }\n\n if (selectorsAdd) {\n const lastNode = nodes[nodes.length - 1];\n lastNode.selectorsAdd = selectorsAdd;\n }\n\n node = nodes;\n }\n\n return node;\n }\n});\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/parser/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * parser: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const { Parser } = editor;\n * ```\n * ## Available Events\n * * `parse:html` - On HTML parse, an object containing the input and the output of the parser is passed as an argument\n * * `parse:css` - On CSS parse, an object containing the input and the output of the parser is passed as an argument\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [parseHtml](#parsehtml)\n * * [parseCss](#parsecss)\n *\n * @module Parser\n */\nimport defaults from './config/config';\nimport parserCss from './model/ParserCss';\nimport parserHtml from './model/ParserHtml';\n\nexport default () => {\n let conf = {};\n let pHtml, pCss;\n\n return {\n compTypes: '',\n\n parserCss: null,\n\n parserHtml: null,\n\n name: 'Parser',\n\n init(config = {}) {\n conf = { ...defaults, ...config };\n conf.Parser = this;\n pHtml = new parserHtml(conf);\n pCss = new parserCss(conf);\n this.em = conf.em;\n this.parserCss = pCss;\n this.parserHtml = pHtml;\n return this;\n },\n\n /**\n * Get the configuration object\n * @returns {Object} Configuration object\n * @example\n * console.log(Parser.getConfig())\n */\n getConfig() {\n return conf;\n },\n\n /**\n * Parse HTML string and return the object containing the Component Definition\n * @param {String} input HTML string to parse\n * @param {Object} [options] Options\n * @param {String} [options.htmlType] [HTML mime type](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02) to parse\n * @param {Boolean} [options.allowScripts=false] Allow `` : '';\n return html;\n }\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @returns {string} CSS string\n * @private\n */\n getCss(opts = {}) {\n const config = this.config;\n const { optsCss } = config;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = opts.component || this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n const css =\n wrp &&\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n keepUnusedStyles,\n ...optsCss,\n ...opts,\n });\n return wrp ? (opts.json ? css : protCss + css) : '';\n }\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs(opts = {}) {\n var wrp = opts.component || this.get('DomComponents').getWrapper();\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\n }\n\n /**\n * Store data to the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n * @private\n */\n store(clb) {\n const sm = this.get('StorageManager');\n if (!sm) return;\n\n const store = this.storeData();\n sm.store(store, res => {\n clb && clb(res, store);\n this.set('changesCount', 0);\n this.trigger('storage:store', store);\n });\n\n return store;\n }\n\n storeData() {\n let result = {};\n // Sync content if there is an active RTE\n const editingCmp = this.getEditing();\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\n\n this.get('storables').forEach(m => {\n result = { ...result, ...m.store(1) };\n });\n return result;\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.loadData(res);\n clb && clb(res);\n });\n }\n\n loadData(data = {}) {\n const sm = this.get('StorageManager');\n const result = sm.__clearKeys(data);\n\n this.get('storables').forEach(module => {\n module.load(result);\n module.postLoad && module.postLoad(this);\n });\n\n return result;\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 || !this.defaultRunning) return;\n command.stop(this, this, opts);\n this.defaultRunning = 0;\n }\n\n /**\n * Update canvas dimensions and refresh data useful for tools positioning\n * @private\n */\n refreshCanvas(opts = {}) {\n this.set('canvasOffset', null);\n this.set('canvasOffset', this.get('Canvas').getOffset());\n opts.tools && this.trigger('canvas:updateTools');\n }\n\n /**\n * Clear all selected stuf inside the window, sometimes is useful to call before\n * doing some dragging opearation\n * @param {Window} win If not passed the current one will be used\n * @private\n */\n clearSelection(win) {\n var w = win || window;\n w.getSelection().removeAllRanges();\n }\n\n /**\n * Get the current media text\n * @return {string}\n */\n getCurrentMedia() {\n const config = this.config;\n const device = this.getDeviceModel();\n const condition = config.mediaCondition;\n const preview = config.devicePreviewMode;\n const width = device && device.get('widthMedia');\n return device && width && !preview ? `(${condition}: ${width})` : '';\n }\n\n /**\n * Return the component wrapper\n * @return {Component}\n */\n getWrapper() {\n return this.get('DomComponents').getWrapper();\n }\n\n setCurrentFrame(frameView) {\n return this.set('currentFrame', frameView);\n }\n\n getCurrentFrame() {\n return this.get('currentFrame');\n }\n\n getCurrentFrameModel() {\n return (this.getCurrentFrame() || {}).model;\n }\n\n getIcon(icon) {\n const icons = this.getConfig('icons') || {};\n return icons[icon] || '';\n }\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return this.get('changesCount');\n }\n\n getZoomDecimal() {\n return this.get('Canvas').getZoomDecimal();\n }\n\n getZoomMultiplier() {\n return this.get('Canvas').getZoomMultiplier();\n }\n\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n t(...args) {\n const i18n = this.get('I18n');\n return i18n?.t(...args);\n }\n\n /**\n * Returns true if the editor is in absolute mode\n * @returns {Boolean}\n */\n inAbsoluteMode() {\n return this.get('dmode') === 'absolute';\n }\n\n /**\n * Destroy editor\n */\n destroyAll() {\n const { config, view } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n const shallow = this.get('shallow');\n shallow?.destroyAll();\n this.stopListening();\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n view && view.remove();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\n editors.splice(editors.indexOf(editor), 1);\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\n }\n\n getEditing() {\n const res = this.get('editing');\n return (res && res.model) || null;\n }\n\n setEditing(value) {\n this.set('editing', value);\n return this;\n }\n\n isEditing() {\n return !!this.get('editing');\n }\n\n log(msg, opts = {}) {\n const { ns, level = 'debug' } = opts;\n this.trigger('log', msg, opts);\n level && this.trigger(`log:${level}`, msg, opts);\n\n if (ns) {\n const logNs = `log-${ns}`;\n this.trigger(logNs, msg, opts);\n level && this.trigger(`${logNs}:${level}`, msg, opts);\n }\n }\n\n logInfo(msg, opts) {\n this.log(msg, { ...opts, level: 'info' });\n }\n\n logWarning(msg, opts) {\n this.log(msg, { ...opts, level: 'warning' });\n }\n\n logError(msg, opts) {\n this.log(msg, { ...opts, level: 'error' });\n }\n\n initBaseColorPicker(el, opts = {}) {\n const config = this.getConfig();\n const { colorPicker = {} } = config;\n const elToAppend = config.el;\n const ppfx = config.stylePrefix;\n\n return $(el).spectrum({\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n palette: [],\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n ...opts,\n ...colorPicker,\n });\n }\n\n /**\n * Execute actions without triggering the storage and undo manager.\n * @param {Function} clb\n * @private\n */\n skip(clb) {\n this.__skip = true;\n const um = this.get('UndoManager');\n um ? um.skip(clb) : clb();\n this.__skip = false;\n }\n\n /**\n * Set/get data from the HTMLElement\n * @param {HTMLElement} el\n * @param {string} name Data name\n * @param {any} value Date value\n * @return {any}\n * @private\n */\n data(el, name, value) {\n const varName = '_gjs-data';\n\n if (!el[varName]) {\n el[varName] = {};\n }\n\n if (isUndefined(value)) {\n return el[varName][name];\n } else {\n el[varName][name] = value;\n }\n }\n}\n","import { isObject, isString, each, isUndefined } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\n const fn = $.fn;\n\n // Additional helpers\n\n fn.hide = function() {\n return this.css('display', 'none');\n };\n\n fn.show = function() {\n return this.css('display', 'block');\n };\n\n fn.focus = function() {\n const el = this.get(0);\n el && el.focus();\n return this;\n };\n\n // For SVGs in IE\n // (fn.removeClass = function(c) {\n // if (!arguments.length) {\n // return this.attr('class', '');\n // }\n // const classes = isString(c) && c.match(/\\S+/g);\n // return classes\n // ? this.each(function(el) {\n // each(classes, function(c) {\n // if (el.classList) {\n // el.classList.remove(c);\n // } else {\n // const val = el.className;\n // const bval = el.className.baseVal;\n\n // if (!isUndefined(bval)) {\n // val.baseVal = bval.replace(c, '');\n // } else {\n // el.className = val.replace(c, '');\n // }\n // }\n // });\n // })\n // : this;\n // }),\n // (fn.remove = function() {\n // return this.each(node => {\n // return node.parentNode && node.parentNode.removeChild(node);\n // });\n // }),\n\n // For spectrum compatibility\n\n fn.bind = function(ev, h) {\n return this.on(ev, h);\n };\n\n fn.unbind = function(ev, h) {\n if (isObject(ev)) {\n for (let name in ev) {\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\n }\n\n return this;\n } else {\n return this.off(ev, h);\n }\n };\n\n fn.click = function(h) {\n return h ? this.on('click', h) : this.trigger('click');\n };\n\n fn.change = function(h) {\n return h ? this.on('change', h) : this.trigger('change');\n };\n\n fn.keydown = function(h) {\n return h ? this.on('keydown', h) : this.trigger('keydown');\n };\n\n fn.delegate = function(selector, events, data, handler) {\n if (!handler) {\n handler = data;\n }\n\n return this.on(events, selector, function(e) {\n e.data = data;\n handler(e);\n });\n };\n\n fn.scrollLeft = function() {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageXOffset : el.scrollLeft || 0;\n };\n\n fn.scrollTop = function() {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageYOffset : el.scrollTop || 0;\n };\n\n const offset = $.prototype.offset;\n fn.offset = function(coords) {\n let top, left;\n\n if (coords) {\n top = coords.top;\n left = coords.left;\n }\n\n if (typeof top != 'undefined') {\n this.css('top', `${top}px`);\n }\n if (typeof left != 'undefined') {\n this.css('left', `${left}px`);\n }\n\n return offset.call(this);\n };\n\n $.map = function(items, clb) {\n const ar = [];\n\n for (var i = 0; i < items.length; i++) {\n ar.push(clb(items[i], i));\n }\n\n return ar;\n };\n\n const indexOf = Array.prototype.indexOf;\n\n $.inArray = function(val, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, val, i);\n };\n\n $.Event = function(src, props) {\n if (!(this instanceof $.Event)) {\n return new $.Event(src, props);\n }\n\n this.type = src;\n this.isDefaultPrevented = () => false;\n };\n }\n};\n","import Backbone from 'backbone';\nimport { View } from 'common';\nimport { appendStyles } from 'utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default class EditorView extends View {\n initialize() {\n const { model } = this;\n model.view = this;\n this.conf = model.config;\n this.pn = model.get('Panels');\n this.cv = model.get('Canvas');\n model.once('change:ready', () => {\n this.pn.active();\n this.pn.disableButtons();\n setTimeout(() => {\n model.trigger('load', model.get('Editor'));\n model.set('changesCount', 0);\n });\n });\n }\n\n render() {\n const { $el, conf, model } = 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\n // Load shallow editor\n const shallow = model.get('shallow');\n const shallowCanvasEl = shallow.get('Canvas').render();\n shallowCanvasEl.style.display = 'none';\n $el.append(shallowCanvasEl);\n\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\n\n return this;\n }\n}\n","/**\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\n *\n * ```js\n * const editor = grapesjs.init({\n * // options\n * });\n * ```\n *\n * ## Available Events\n *\n * You can make use of available events in this way\n * ```js\n * editor.on('EVENT-NAME', (some, argument) => {\n * // do something\n * })\n * ```\n *\n * * `update` - The structure of the template is updated (its HTML/CSS)\n * * `undo` - Undo executed\n * * `redo` - Redo executed\n * * `load` - Editor is loaded\n *\n * ### Components\n * Check the [Components](/api/components.html) module.\n * ### Keymaps\n * Check the [Keymaps](/api/keymaps.html) module.\n * ### Style Manager\n * Check the [Style Manager](/api/style_manager.html) module.\n * ### Storage\n * Check the [Storage](/api/storage_manager.html) module.\n * ### Canvas\n * Check the [Canvas](/api/canvas.html) module.\n * ### RTE\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\n * ### Commands\n * Check the [Commands](/api/commands.html) module.\n * ### Selectors\n * Check the [Selectors](/api/selector_manager.html) module.\n * ### Blocks\n * Check the [Blocks](/api/block_manager.html) module.\n * ### Assets\n * Check the [Assets](/api/assets.html) module.\n * ### Modal\n * Check the [Modal](/api/modal_dialog.html) module.\n * ### Devices\n * Check the [Devices](/api/device_manager.html) module.\n * ### Parser\n * Check the [Parser](/api/parser.html) module.\n * ### Pages\n * Check the [Pages](/api/pages.html) module.\n *\n * ## Methods\n * @module Editor\n */\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\nimport html from 'utils/html';\n\nexport default (config = {}, opts = {}) => {\n const { $ } = opts;\n let c = {\n ...defaults,\n ...config,\n };\n\n c.pStylePrefix = c.stylePrefix;\n let em = new EditorModel(c);\n let editorView;\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n modules: [],\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n this.modules = [\n 'I18n',\n 'Utils',\n 'Config',\n 'Commands',\n 'Keymaps',\n 'Modal',\n 'Panels',\n 'Canvas',\n 'Parser',\n 'CodeManager',\n 'UndoManager',\n 'RichTextEditor',\n ['Pages', 'PageManager'],\n 'DomComponents',\n ['Components', 'DomComponents'],\n 'LayerManager',\n ['Layers', 'LayerManager'],\n 'CssComposer',\n ['Css', 'CssComposer'],\n 'StorageManager',\n ['Storage', 'StorageManager'],\n 'AssetManager',\n ['Assets', 'AssetManager'],\n 'BlockManager',\n ['Blocks', 'BlockManager'],\n 'TraitManager',\n ['Traits', 'TraitManager'],\n 'SelectorManager',\n ['Selectors', 'SelectorManager'],\n 'StyleManager',\n ['Styles', 'StyleManager'],\n 'DeviceManager',\n ['Devices', 'DeviceManager'],\n ];\n\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = em.get(prop[1]);\n } else {\n this[prop] = em.get(prop);\n }\n });\n\n // Do post render stuff after the iframe is loaded otherwise it'll\n // be empty during tests\n em.once('change:ready', () => {\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 {Component} [opts.component] Return the HTML of a specific Component\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\n * @returns {string} HTML string\n */\n getHtml(opts) {\n return em.getHtml(opts);\n },\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the CSS of a specific Component\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\n * @returns {String|Array} CSS string or array of CssRules\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Get the JS of a specific component\n * @returns {String} JS string\n */\n getJs(opts) {\n return em.getJs(opts);\n },\n\n /**\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\n * @return {Components}\n */\n getComponents() {\n return em.get('DomComponents').getComponents();\n },\n\n /**\n * Return the wrapper and its all components\n * @return {Component}\n */\n getWrapper() {\n return em.get('DomComponents').getWrapper();\n },\n\n /**\n * Set components inside editor's canvas. This method overrides actual components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\n * @return {this}\n * @example\n * editor.setComponents('
New component
');\n * // or\n * editor.setComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n setComponents(components, opt = {}) {\n em.setComponents(components, opt);\n return this;\n },\n\n /**\n * Add components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opts Options\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\n * by default, they will be created and, if already exist, updated. When this option\n * is true, styles already created will not be updated.\n * @return {Array}\n * @example\n * editor.addComponents('
New component
');\n * // or\n * editor.addComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n addComponents(components, opts) {\n return this.getWrapper().append(components, opts);\n },\n\n /**\n * Returns style in JSON format object\n * @return {Object}\n */\n getStyle() {\n return em.get('CssComposer').getAll();\n },\n\n /**\n * Set style inside editor's canvas. This method overrides actual style\n * @param {Array|Object|string} style CSS string or style model\n * @return {this}\n * @example\n * editor.setStyle('.cls{color: red}');\n * //or\n * editor.setStyle({\n * selectors: ['cls'],\n * style: { color: 'red' }\n * });\n */\n setStyle(style, opt = {}) {\n em.setStyle(style, opt);\n return this;\n },\n\n /**\n * Add styles to the editor\n * @param {Array|Object|string} style CSS string or style model\n * @returns {Array} Array of created CssRule instances\n * @example\n * editor.addStyle('.cls{color: red}');\n */\n addStyle(style, opts = {}) {\n return em.addStyle(style, opts);\n },\n\n /**\n * Returns the last selected component, if there is one\n * @return {Model}\n */\n getSelected() {\n return em.getSelected();\n },\n\n /**\n * Returns an array of all selected components\n * @return {Array}\n */\n getSelectedAll() {\n return em.getSelectedAll();\n },\n\n /**\n * Get a stylable entity from the selected component.\n * If you select a component without classes the entity is the Component\n * itself and all changes will go inside its 'style' attribute. Otherwise,\n * if the selected component has one or more classes, the function will\n * return the corresponding CSS Rule\n * @return {Model}\n */\n getSelectedToStyle() {\n let selected = em.getSelected();\n\n if (selected) {\n return this.StyleManager.getModelToStyle(selected);\n }\n },\n\n /**\n * Select a component\n * @param {Component|HTMLElement} el Component to select\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\n * @return {this}\n * @example\n * // Select dropped block\n * editor.on('block:drag:stop', function(model) {\n * editor.select(model);\n * });\n */\n select(el, opts) {\n em.setSelected(el, opts);\n return this;\n },\n\n /**\n * Add component to selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectAdd(model);\n */\n selectAdd(el) {\n em.addSelected(el);\n return this;\n },\n\n /**\n * Remove component from selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectRemove(model);\n */\n selectRemove(el) {\n em.removeSelected(el);\n return this;\n },\n\n /**\n * Toggle component selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectToggle(model);\n */\n selectToggle(el) {\n em.toggleSelected(el);\n return this;\n },\n\n /**\n * Returns, if active, the Component enabled in rich text editing mode.\n * @returns {Component|null}\n * @example\n * const textComp = editor.getEditing();\n * if (textComp) {\n * console.log('HTML: ', textComp.toHTML());\n * }\n */\n getEditing() {\n return em.getEditing();\n },\n\n /**\n * Set device to the editor. If the device exists it will\n * change the canvas to the proper width\n * @param {string} name Name of the device\n * @return {this}\n * @example\n * editor.setDevice('Tablet');\n */\n setDevice(name) {\n em.set('device', name);\n return this;\n },\n\n /**\n * Return the actual active device\n * @return {string} Device name\n * @example\n * var device = editor.getDevice();\n * console.log(device);\n * // 'Tablet'\n */\n getDevice() {\n return em.get('device');\n },\n\n /**\n * Execute command\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.runCommand('myCommand', {someValue: 1});\n */\n runCommand(id, options = {}) {\n return em.get('Commands').run(id, options);\n },\n\n /**\n * Stop the command if stop method was provided\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.stopCommand('myCommand', {someValue: 1});\n */\n stopCommand(id, options = {}) {\n return em.get('Commands').stop(id, options);\n },\n\n /**\n * Store data to the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n */\n store(clb) {\n return em.store(clb);\n },\n\n /**\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProject(json)`\n * @returns {Object}\n * @example\n * console.log(editor.getProject());\n * // { pages: [...], styles: [...], ... }\n */\n getProject() {\n return em.storeData();\n },\n\n storeData() {\n return em.storeData();\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 * Load data from the JSON project\n * @param {Object} data Project to load\n * @example\n * editor.loadProject({ pages: [...], styles: [...], ... })\n */\n loadProject(data) {\n return em.loadData(data);\n },\n\n loadData(data) {\n return em.loadData(data);\n },\n\n /**\n * Returns container element. The one which was indicated as 'container'\n * on init method\n * @return {HTMLElement}\n */\n getContainer() {\n return c.el;\n },\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return em.getDirtyCount();\n },\n\n /**\n * Update editor dimension offsets\n *\n * This method could be useful when you update, for example, some position\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\n * refresh you'll get misleading position of tools\n * @param {Object} [options] Options\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\n */\n refresh(opts) {\n em.refreshCanvas(opts);\n },\n\n /**\n * Replace the built-in Rich Text Editor with a custom one.\n * @param {Object} obj Custom RTE Interface\n * @example\n * editor.setCustomRte({\n * // Function for enabling custom RTE\n * // el is the HTMLElement of the double clicked Text Component\n * // rte is the same instance you have returned the first time you call\n * // enable(). This is useful if need to check if the RTE is already enabled so\n * // ion this case you'll need to return the RTE and the end of the function\n * enable: function(el, rte) {\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\n * ...\n * return rte; // return the RTE instance\n * },\n *\n * // Disable the editor, called for example when you unfocus the Text Component\n * disable: function(el, rte) {\n * rte.blur(); // this depends on the Custom RTE API\n * }\n *\n * // Called when the Text Component is focused again. If you returned the RTE instance\n * // from the enable function, the enable won't be called again instead will call focus,\n * // in this case to avoid double binding of the editor\n * focus: function (el, rte) {\n * rte.focus(); // this depends on the Custom RTE API\n * }\n * });\n */\n setCustomRte(obj) {\n this.RichTextEditor.customRte = obj;\n },\n\n /**\n * Replace the default CSS parser with a custom one.\n * The parser function receives a CSS string as a parameter and expects\n * an array of CSSRule objects as a result. If you need to remove the\n * custom parser, pass `null` as the argument\n * @param {Function|null} parser Parser function\n * @return {this}\n * @example\n * editor.setCustomParserCss(css => {\n * const result = [];\n * // ... parse the CSS string\n * result.push({\n * selectors: '.someclass, div .otherclass',\n * style: { color: 'red' }\n * })\n * // ...\n * return result;\n * });\n */\n setCustomParserCss(parser) {\n this.Parser.getConfig().parserCss = parser;\n return this;\n },\n\n /**\n * Change the global drag mode of components.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n em.setDragMode(value);\n return this;\n },\n\n /**\n * Trigger event log message\n * @param {*} msg Message to log\n * @param {Object} [opts={}] Custom options\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\n * @return {this}\n * @example\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\n * // This will trigger following events\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\n * // Callbacks of those events will always receive the message and\n * // options, as arguments, eg:\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\n */\n log(msg, opts = {}) {\n em.log(msg, opts);\n return this;\n },\n\n /**\n * Translate label\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\n * @returns {String}\n * @example\n * editor.t('msg');\n * // use params\n * editor.t('msg2', { params: { test: 'hello' } });\n * // custom local\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\n */\n t(...args) {\n return em.t(...args);\n },\n\n /**\n * Attach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n on(event, callback) {\n em.on(event, callback);\n return this;\n },\n\n /**\n * Attach event and detach it after the first run\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n once(event, callback) {\n em.once(event, callback);\n return this;\n },\n\n /**\n * Detach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n off(event, callback) {\n em.off(event, callback);\n return this;\n },\n\n /**\n * Trigger event\n * @param {string} event Event to trigger\n * @return {this}\n */\n trigger(event) {\n em.trigger.apply(em, arguments);\n return this;\n },\n\n /**\n * Destroy the editor\n */\n destroy() {\n if (!em) return;\n em.destroyAll();\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = 0;\n } else {\n this[prop] = 0;\n }\n });\n this.modules = 0;\n editorView = 0;\n em = 0;\n c = 0;\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return editorView && editorView.el;\n },\n\n /**\n * Returns editor model\n * @return {Model}\n * @private\n */\n getModel() {\n return em;\n },\n\n /**\n * Render editor\n * @return {HTMLElement}\n */\n render() {\n editorView && editorView.remove();\n editorView = new EditorView({\n model: em,\n config: c,\n });\n return editorView.render().el;\n },\n\n /**\n * Trigger a callback once the editor is loaded and rendered.\n * The callback will be executed immediately if the method is called on the already rendered editor.\n * @param {Function} clb Callback to trigger\n * @example\n * editor.onReady(() => {\n * // perform actions\n * });\n */\n onReady(clb) {\n em.get('ready') ? clb(this) : em.on('load', clb);\n },\n\n /**\n * Print safe HTML by using ES6 tagged template strings.\n * @param {Array} literals\n * @param {Array} substs\n * @returns {String}\n * @example\n * const unsafeStr = '';\n * const safeStr = 'Hello';\n * // Use `$${var}` to avoid escaping\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\n */\n html,\n };\n};\n","export default {\n plugins: []\n};\n","/**\n * File made for IE/Edge support\n * https://github.com/artf/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument =\n DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement, isFunction } from 'underscore';\nimport $ from 'utils/cash-dom';\nimport Editor from './editor';\nimport polyfills from 'utils/polyfills';\nimport { getGlobal } from 'utils/mixins';\nimport PluginManager from './plugin_manager';\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors = [];\nconst defaultConfig = {\n // If true renders editor on init\n autorender: 1,\n\n // Array of plugins to init\n plugins: [],\n\n // Custom options for plugins\n pluginsOpts: {}\n};\n\nexport default {\n $,\n\n editors,\n\n plugins,\n\n // Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: '
Hello world
',\n * style: '.hello{color: red}',\n * })\n */\n init(config = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el =\n !headless && (isElement(els) ? els : document.querySelector(els));\n const editor = new Editor(config, { $ }).init();\n const em = editor.getModel();\n\n // Load plugins\n config.plugins.forEach(pluginId => {\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = getGlobal()[pluginId];\n plugin = wplg?.default || wplg;\n }\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else if (isFunction(pluginId)) {\n pluginId(editor, plgOptions);\n } else {\n em.logWarning(`Plugin ${pluginId} not found`, {\n context: 'plugins',\n plugin: pluginId\n });\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n config.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n }\n};\n","import defaults from './config/config';\n\nexport default config => {\n var c = config || {};\n\n // Set default options\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var plugins = {};\n\n return {\n /**\n * Add new plugin. Plugins could not be overwritten\n * @param {string} id Plugin ID\n * @param {Function} plugin Function which contains all plugin logic\n * @return {Function} The plugin function\n * @example\n * PluginManager.add('some-plugin', function(editor){\n * editor.Commands.add('new-command', {\n * run: function(editor, senderBtn){\n * console.log('Executed new-command');\n * }\n * })\n * });\n */\n add(id, plugin) {\n if (plugins[id]) {\n return plugins[id];\n }\n\n plugins[id] = plugin;\n return plugin;\n },\n\n /**\n * Returns plugin by ID\n * @param {string} id Plugin ID\n * @return {Function|undefined} Plugin\n * @example\n * var plugin = PluginManager.get('some-plugin');\n * plugin(editor);\n */\n get(id) {\n return plugins[id];\n },\n\n /**\n * Returns object with all plugins\n * @return {Object}\n */\n getAll() {\n return plugins;\n }\n };\n};\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","_","Backbone","core_slice","Array","prototype","slice","apply","fn","ctx","args","length","call","arr","index","hasKeys","obj","keys","isArray","arguments","all","key","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","which","objects","i","l","objectRegistry","register","unregister","isFunction","actionUndoRedo","action","type","undoTypes","object","before","after","options","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","clone","models","at","where","get","pop","shift","trigger","validateUndoActionCreation","undoTypesType","condition","addToStack","track","res","diff","add","maximumStackLength","isRegistered","cid","contains","push","splice","indexOf","map","concat","UndoTypes","collection","ignore","model","remove","undefined","isEmpty","each","unset","set","unsetData","afterAttributes","changedAttributes","keysAfter","previousAttributes","pick","keysPrevious","val","reset","previousModels","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","isObject","extend","Action","Model","defaults","undo","attributes","redo","UndoStack","Collection","Infinity","setMaxLength","UndoManager","initialize","attr","on","value","startTracking","isArguments","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","s","merge","undoManager","addUndoType","changeUndoType","removeUndoType","clear","defaultAttributes","self","g","global","$","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","method","attribute","iteratee","context","cb","defaultVal","unshift","addUnderscoreMethods","Class","methods","instance","_isModel","modelMatcher","isString","attrs","matcher","matches","Events","eventSplitter","eventsApi","events","name","callback","opts","names","test","split","internalOn","listening","_events","onApi","_listeners","id","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","count","handlers","off","offApi","listeners","stopListening","ids","remaining","j","handler","_callback","once","onceMap","bind","listenToOnce","offer","Math","max","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","unbind","cidPrefix","parse","result","changed","validationError","idAttribute","toJSON","sync","escape","has","_validate","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","_pending","hasChanged","old","size","previous","fetch","success","resp","serverAttrs","wrapError","save","wait","validate","isNew","patch","xhr","destroy","url","base","urlError","replace","encodeURIComponent","constructor","isValid","error","values","pairs","invert","omit","chain","comparator","_reset","setOptions","addOptions","array","insert","min","tail","singular","removed","_removeModels","added","merged","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","some","m","_removeReference","_byId","modelId","first","findWhere","Error","sortBy","pluck","create","callbackOpts","_onModelEvent","event","prevId","forEach","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","any","include","includes","invoke","toArray","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","listener","undelegate","_createElement","document","createElement","className","_setAttributes","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","e","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","CodeMirror","extendMode","commentStart","commentEnd","newlineAfterToken","_type","content","textAfter","state","jsonMode","lexical","inlineElements","inline","configuration","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","mode","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","substr","substring","cmInstance","indentLine","outer","text","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","token","cur","pos","string","blankLine","end","setSelection","getCursor","mod","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","cls","range","rmClass","node","removeChildren","childNodes","removeChildrenAndAdd","appendChild","elt","tag","cssText","createTextNode","eltP","setAttribute","nodeType","parentNode","host","activeElt","activeElement","shadowRoot","addClass","joinClasses","a","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","f","copyObj","target","overwrite","prop","hasOwnProperty","countColumn","startValue","search","n","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","setTimeout","ms","clearTimeout","scrollerGap","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","score","priority","nothing","createObj","props","inst","Object","nonASCIISingleCaseWordChar","isWordCharBasic","toUpperCase","toLowerCase","isWordChar","helper","source","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","iterateBidiSections","order","found","part","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","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","reverse","getOrder","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","nl","rt","hasSelection","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","properties","nstate","info","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","chunk","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","lineNo","no","lineAtHeight","h","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","next","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","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","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","sel","ranges","primIndex","empty","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","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","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","active","anchorNode","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","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","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","v","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","cloneNode","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","join","lineSeparator","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","option","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","blur","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","toggle","enter","over","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","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","hiddenTextarea","border","addEditorMethods","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","func","defineDocExtension","version","keySet","config","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","script","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","html","htmlState","inTag","endTagA","endTag","localState","localMode","local","statementIndent","jsonldMode","jsonld","json","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","firstChar","c","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","setStyle","inText","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","assets","noAssets","stylePrefix","upload","uploadName","headers","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","getFilename","getDefaults","AssetImage","unitDim","pfx","ppfx","pStylePrefix","em","__getBhv","am","__getBehaviour","template","getPreview","getInfo","updateTarget","innerHTML","AssetView","click","dblclick","dim","onClick","coll","onDblClick","onSelect","onRemove","stopImmediatePropagation","TypeableCollection","AssetImageView","isType","renderAssets","addToAsset","removedAsset","deselectAll","handleSubmit","getAddInput","trim","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","fragmentEl","rendered","typeView","assetsEl","hide","append","removeClass","fuRendered","fu","uploadId","disableUpload","onUploadStart","__propEv","onUploadEnd","onUploadError","err","console","onUploadResponse","clb","FormData","reqHead","fetchOpts","then","status","Promise","catch","initDrop","that","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","onDragLeave","getSelected","runCommand","Modal","AssetManager","setTarget","item","response","promises","mimeTypeMatcher","promise","resolve","image","Image","readAsDataURL","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","storageKey","Assets","removeBefore","uploadStart","uploadEnd","uploadError","uploadResponse","__initListen","getAllVisible","getAll","__onAllEvent","debounce","__trgCustom","getConfig","__customData","bhv","isOpen","asset","complete","run","isActive","__remove","store","noStore","stm","load","getContainer","assts","toRender","__viewParams","FileUploader","AssetsView","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","__behaviour","_bhv","appendTo","appendOnClick","blocks","Block","media","category","activate","resetId","disable","ctg","Blocks","Category","Categories","mousedown","dragstart","drag","dragend","endDrag","__getModule","handleClick","sorter","getSorter","setDropContent","validTarget","getEl","valid","getWrapper","setSelected","startDrag","refreshCanvas","setDragHelper","startSort","handleDragStart","__startDrag","handleDrag","__drag","handleDragEnd","__endDrag","endMove","class","clsAdd","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","iconEl","blocksEl","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","updateConfig","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","BlockView","ignoreCategories","catModel","catId","catView","getCategoriesEl","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","bm","dragStop","getContent","_dragBlock","dragResult","dragContent","oldKey","toActive","toSelect","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","BlocksView","elTo","isElement","__logWarn","prp","getCategories","external","colls","scripts","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","toggleEffects","enable","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","defaultView","frameElement","sortOpts","onEnd","customTarget","__customTglEff","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","cancelled","getStyle","addStyle","cnt","preserveSelected","getContentByData","allowfullscreen","tools","frameView","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","attrStr","items","stl","appendVNodes","getModel","getWindow","getJsContainer","jsContainer","createEl","getToolsEl","frameWrapView","elTools","getGlobalToolsEl","getHighlighter","_getTool","getBadgeEl","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","toolsEl","wrp","_toggleEffects","startAutoscroll","lastMaxHeight","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","actualTop","limitTop","limitBottom","nextTop","isUndefined","opacity","showGlobalTools","updateClientY","getPointerEvent","getZoomDecimal","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","normalize","stls","prevStyles","conf","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","canvasView","cv","FrameView","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","__clear","removeEl","md","updateDim","__handleSize","noChanges","isNull","onScroll","onscroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","DomainViews","itemView","FrameWrapView","onRemoveBefore","timerZoom","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","FramesView","currFrame","views","_getFrame","_parentEvent","onCanvasMove","getKeyChar","isInputFocused","onWheel","getZoom","defOpts","mpl","framesArea","transform","isElInViewport","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","getCanvasOffset","getElementPos","eo","frmTop","avoidFrameOffset","frmLeft","getElementOffsets","isTextNode","parseFloat","getPosition","bEl","fo","co","updateScript","getId","scriptContainer","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","CanvasView","getCanvasView","getFrame","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getGhostEl","getToolbarEl","getResizerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","xOffset","getMouseRelativeCanvas","toIgnore","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","components","Wrapper","idMapKeys","selectors","sSel","idSel","temporary","noCount","avoidStore","setHead","getHeadByAttr","addHeadItem","removeHeadByAttr","sm","smc","fromUndo","storeHtml","getHtml","storeCss","getCss","onReset","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","rule","isId","toHTML","build","beforeEach","mapModel","comps","scrStr","scrProps","mapJs","mapType","hasWin","require","codeName","onChange","ed","setContent","autoFormatRange","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","txtarea","updateViewer","getCode","genId","maxValue","MAX_VALUE","getMediaLength","mediaQuery","compCls","buildFromModel","avoidInline","styleToString","getFullName","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","keepUnusedStyles","getDeclaration","__cleanSelector","getQueryLength","itemsArr","isMobFirst","mquery","sortRules","getKey","q","strict","commandsDef","defaultCommands","CommandAbstract","sender","selAll","getSelectedAll","nativeDrag","defComOptions","logWarning","hideTlb","altMode","eventDrag","emitUpdate","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","oldCmd","default","cmdName","loadDefaultCommands","noStop","command","cmdObj","stopCommand","getActive","callRun","abort","callStop","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","onFrameScroll","getCanvasBody","getCanvasTools","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","getElementGuides","lastEl","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","itemStr","setTranslate","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","codeMirror","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","$badge","getBadge","$hl","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","addOpts","copyable","cop","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","onclick","canvasS","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","calibrated","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","ToolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","getOffsetMethod","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","__getConfig","getAllMap","acc","__initConfig","def","__catchAllEvent","collections","entity","__appendTo","_createId","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","shallow","ensureSelectors","__onChange","isEmptyObj","changesUp","toListen","getSelectors","Selectors","typeStr","addSelector","selOpts","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","ruleProps","wd","selAdd","a1S","a2S","Styleable","onAdd","parseCss","rulesView","storeStyles","elStyle","CssRules","postLoad","um","getCacheLoad","hasPages","slc","singleSel","parserCss","checkNode","addCollection","sl","newSels","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","toCSS","CssRuleView","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","CssGroupRuleView","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pr","widthMedia","Device","checkUnit","Devices","DevicesView","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","storeWrapper","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","btoa","isDefaultSrc","parseUri","uri","query","qrs","pair","hostname","protocol","port","mapUrl","address","frameborder","OComponent","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","compProt","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","color","modestbranding","sources","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","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","selectable","hoverable","inSvg","createElementNS","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","storeComponents","compTypes","componentHovered","selectAdd","selectRemove","setComponents","isObj","getComponents","toStore","addComponent","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","keySymbols","keySymbol","keySymbolOvrd","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","updated","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","hasComps","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","elDoc","_setData","replaceWith","triggerAdd","sameFrameView","viewObject","parentEl","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","holderClass","inputClass","handleModelChange","elementUpdated","getInputEl","__onInputChange","fromInput","inputEl","plh","defaultOpts","beforeShow","noop","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","spect","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","format","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","timeout","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","getUniqueSelectionPalette","drawInitial","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","paletteElementClick","keydown","hasClass","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","rightclick","hex","pad2","clamp01","hue","results","slices","modification","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","Input","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","contClass","validateInputValue","deepCheck","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","itemsView","itemType","itemViewNotFound","ns","reuseView","typeField","clearItems","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","titles","preview","fullscreen","selectorManager","emptyState","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","traitManager","false","_blank","messagesAdd","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","return","esc","down","del","delete","home","pageup","pagedown","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","modifiersMatch","dispatch","keymaster","configDef","keymaps","defKeys","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","clsNoEdit","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","getVisibilityEl","eyeEl","hClass","toggleVisibility","prevDspKey","prevDisplay","handleEdit","handleEditKey","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","toggleOpening","handleSelect","fromLayers","handleHover","handleHoverOut","freeze","unfreeze","isCountable","caret","setRoot","_rendered","__clearItems","ItemView","componentChanged","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","btn","Buttons","Panel","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","clicked","toggleActive","parentM","ButtonView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","ButtonsView","PanelView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","PanelsView","disableButtons","runDefaultCommand","stopDefaultCommand","Button","deactivateAllExceptOne","except","disableAllButtons","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","classSets","classSet","pHtml","pCss","Parser","defaultType","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","btnState","isValidTag","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","syncActions","caretRangeFromPoint","poiner","rangeParent","rangeOffset","textHtml","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","startEditTag","endEditTag","changeStatus","removeTag","removeSelected","$chk","labelInfo","labelHead","stateInputId","stateInputC","toList","toListCls","__handleStateChange","checkSync","renderClasses","tagRemoved","renderStates","syncStyle","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","startNewTag","$addBtn","$input","endNewTag","onInputKeyUp","addNewTag","checkStates","getState","statesEl","targets","trgs","validSelectors","__getCommonSelectors","_commonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","getStyleable","idRes","stateChanged","addSelected","ClassTagView","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","ClassTagsView","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","curr","combination","autosave","autoload","stepsBeforeSave","checkLocal","urlStore","urlLoad","jqXHR","onComplete","contentTypeJson","fetchOptions","hasLocal","setItem","getItem","removeItem","clbErr","onResponse","request","typeJson","typeHead","bodyObj","bodyKey","eventStart","eventAfter","eventEnd","eventError","storages","defaultStorages","_disable","remote","RemoteStorage","LocalStorage","currentStorage","loadDefaultProviders","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","onAfter","keysF","__clearKeys","itemKey","itemKeyR","getCurrentStorage","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","__p","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","callParentInit","skipInit","fixedValues","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","__handleChange","InputColor","PropertySelect","getOptionId","isDef","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","InputNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","eventCapture","appendInput","clsField","removeView","rerender","getClbOpts","elInput","getInputElem","onUpdate","onEvent","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","inputs","createInput","hasLabel","noLabel","tmpl","TraitView","updatedCollection","resultName","valResult","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","inputNumber","$unit","labelButton","typesDef","TraitNumberView","TraitSelectView","checkbox","TraitCheckboxView","TraitColorView","TraitButtonView","TraitsView","__onUp","getTraitsViewer","baseView","beforeCache","trackSelection","hasSkip","getChanged","hasUndo","undoExc","chn","hasRedo","getInstance","getStack","getStackGroup","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","boxSizing","includeMargins","getEventsCache","parseEventName","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","queryEncode","isMultiple","eleValue","containers","fragmentRe","singleTagRe","td","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceAll","docEle","clientTop","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","oldEl","newEl","total","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","setTimeoutFunc","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","prom","promiseFinally","allSettled","race","setImmediate","rej","req","XMLHttpRequest","withCredentials","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","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","normalizeFloat","ratioActive","ratio","getGlobal","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","__gjsv","chars","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","ReferenceError","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","storageManager","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","pageManager","toLog","attrsOrig","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","editingCmp","loadData","cacheLoad","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","getProject","loadProject","getDirtyCount","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file From c73d8d19435910eb9c4d7793263ffb92edd631e9 Mon Sep 17 00:00:00 2001 From: Alex Ritter Date: Tue, 12 Apr 2022 21:18:45 +0200 Subject: [PATCH 4/4] Revert min.js --- dist/grapes.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/grapes.min.js b/dist/grapes.min.js index 86a2ed0f1..fff2d1b07 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,3 +1,3 @@ /*! grapesjs - 0.18.4 */ -!function(t,e){'object'==typeof exports&&'object'==typeof module?module.exports=e():'function'==typeof define&&define.amd?define([],e):'object'==typeof exports?exports.grapesjs=e():t.grapesjs=e()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(function(){return(()=>{var t={7757:(t,e,n)=>{t.exports=n(5666)},3410:(t,e,n)=>{var r,i,o;i=[n(9050),n(2316)],r=function(t,e){var n=Array.prototype.slice;function r(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return n.call(t,e)}function o(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,(function(t){return t in e})))}var s=function(){var e=!1,n=-1;function r(){n++,e=!0,t.defer((function(){e=!1}))}return function(){return e||r(),n}}();function a(){this.registeredObjects=[],this.cidIndexes=[]}function l(e,n,r,i){for(var o,s=0,a=n.length;st.maximumStackLength&&(t.shift(),t.pointer--)}}}a.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,(function(t){return this.registeredObjects[t]}),this).concat(this.registeredObjects)}};var d={add:{undo:function(t,e,n,r){t.remove(n,r)},redo:function(t,e,n,r){r.index&&(r.at=r.index),t.add(n,r)},on:function(e,n,r){return{object:n,before:void 0,after:e,options:t.clone(r)}}},remove:{undo:function(t,e,n,r){"index"in r&&(r.at=r.index),t.add(e,r)},redo:function(t,e,n,r){t.remove(e,r)},on:function(e,n,r){return{object:n,before:e,after:void 0,options:t.clone(r)}}},change:{undo:function(e,n,r,i){t.isEmpty(n)?t.each(t.keys(r),e.unset,e):(e.set(n),i&&i.unsetData&&i.unsetData.before&&i.unsetData.before.length&&t.each(i.unsetData.before,e.unset,e))},redo:function(e,n,r,i){t.isEmpty(r)?t.each(t.keys(n),e.unset,e):(e.set(r),i&&i.unsetData&&i.unsetData.after&&i.unsetData.after.length&&t.each(i.unsetData.after,e.unset,e))},on:function(e,n){var r=e.changedAttributes(),i=t.keys(r),o=t.pick(e.previousAttributes(),i),s=t.keys(o),a=(n||(n={})).unsetData={after:[],before:[]};return i.length!=s.length&&(i.length>s.length?t.each(i,(function(t){t in o||a.before.push(t)}),this):t.each(s,(function(t){t in r||a.after.push(t)}))),{object:e,before:o,after:r,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};function p(){}function g(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?g(e,t,r,i):g(e,n,t,r)}));switch(e){case 0:o(r,"undo","redo","on")&&t.all(t.pick(r,"undo","redo","on"),t.isFunction)&&(i[n]=r);break;case 1:i[n]&&t.isObject(r)&&(i[n]=t.extend({},i[n],r));break;case 2:delete i[n]}return this}p.prototype=d;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){c("undo",this.attributes)},redo:function(t){c("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new a,this.undoTypes=new p,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",(function(t,e){this.stack.setMaxLength(e)}),this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?r(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){f(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){l("on",arguments,this._addToStack,this)},unregister:function(){l("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){u("undo",this,this.stack,t)},undoAll:function(){u("undo",this,this.stack,!1,!0)},redo:function(t){u("redo",this,this.stack,t)},redoAll:function(){u("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer{var r,i,o;o='object'==typeof self&&self.self===self&&self||'object'==typeof n.g&&n.g.global===n.g&&n.g,r=[n(9050),n(2579),e],i=function(t,e,n){o.Backbone=function(t,e,n,r){var i=t.Backbone,o=Array.prototype.slice;e.VERSION='1.3.3',e.$=r,e.noConflict=function(){return t.Backbone=i,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,r){switch(t){case 1:return function(){return n[e](this[r])};case 2:return function(t){return n[e](this[r],t)};case 3:return function(t,i){return n[e](this[r],l(t,this),i)};case 4:return function(t,i,o){return n[e](this[r],l(t,this),i,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[r]),n[e].apply(n,t)}}},a=function(t,e,r){n.each(e,(function(e,i){n[i]&&(t.prototype[i]=s(e,i,r))}))},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,f=function(t,e,r,i,o){var s,a=0;if(r&&'object'==typeof r){void 0!==i&&'context'in o&&void 0===o.context&&(o.context=i);for(s=n.keys(r);athis.length&&(i=this.length),i<0&&(i+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},f=e.add,d=e.merge,p=e.remove,g=!1,v=this.comparator&&null==i&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=('/'+this.root+'/').replace(R,'/'),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||'/';return this.location.replace(e+'#'+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement('iframe'),this.iframe.src='javascript:0',this.iframe.style.display='none',this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash='#'+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent('on'+t,e)};if(this._usePushState?o('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe?o('hashchange',this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent('on'+t,e)};this._usePushState?t('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe&&t('hashchange',this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,(function(e){if(e.route.test(t))return e.callback(t),!0})))},navigate:function(t,e){if(!A.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||'');var n=this.root;''!==t&&'?'!==t.charAt(0)||(n=n.slice(0,-1)||'/');var r=n+t;if(t=this.decodeFragment(t.replace(N,'')),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?'replaceState':'pushState']({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;e.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var r=t.href.replace(/(javascript:|#).*$/,'');t.replace(r+'#'+e)}else t.hash='#'+e}}),e.history=new A;var Z=function(t,e){var r,i=this;return r=t&&n.has(t,'constructor')?t.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,e),r.prototype=n.create(i.prototype,t),r.prototype.constructor=r,r.__super__=i.prototype,r};b.extend=w.extend=T.extend=k.extend=A.extend=Z;var I=function(){throw new Error('A "url" property or function must be specified')},F=function(t,e){var n=e.error;e.error=function(r){n&&n.call(e.context,t,r,e),t.trigger('error',t,r,e)}};return e}(o,n,t,e)}.apply(e,r),void 0===i||(t.exports=i)},9210:(t,e,n)=>{!function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,r){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!r.lexical||")"!=r.lexical.type)&&/^[;{}]$/.test(e)&&!/^;/.test(n)}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,r,i){var o=!1;return"html"==this.configuration&&(o=!!i.context&&e.test(i.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&i.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+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"),s=t.copyState(i,r.getTokenAt(e).state),a=r.getOption("tabSize"),l="",c=0,u=0===e.ch;function h(){l+="\n",u=!0,++c}for(var f=0;f2),v=/Android/.test(t),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(t),y=g||/Mac/.test(e),b=/\bCrOS\b/.test(t),w=/win/i.test(e),x=h&&t.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,l=!0);var O=y&&(c||h&&(null==x||x<12.11)),C=n||s&&a>=9;function k(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var S,P=function(t,e){var n=t.className,r=k(e).exec(n);if(r){var i=n.slice(r.index+r[0].length);t.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function _(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function T(t,e){return _(t).appendChild(e)}function E(t,e,n,r){var i=document.createElement(t);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof e)i.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}g?R=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:s&&(R=function(t){try{t.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=N(this.onTimeout,this)};function V(t,e){for(var n=0;n=e)return r+Math.min(s,e-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=e)return r}}var q=[""];function G(t){for(;q.length<=t;)q.push(K(q)+" ");return q[t]}function K(t){return t[t.length-1]}function Y(t,e){for(var n=[],r=0;r"€"&&(t.toUpperCase()!=t.toLowerCase()||tt.test(t))}function nt(t,e){return e?!!(e.source.indexOf("\\w")>-1&&et(t))||e.test(t):et(t)}function rt(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}var it=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ot(t){return t.charCodeAt(0)>=768&&it.test(t)}function st(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var i=(e+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+r}}function lt(t,e,n,r){if(!t)return r(e,n,"ltr",0);for(var i=!1,o=0;oe||e==n&&s.to==e)&&(r(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),i=!0)}i||r(e,n,"ltr")}var ct=null;function ut(t,e,n){var r;ct=null;for(var i=0;ie)return i;o.to==e&&(o.from!=o.to&&"before"==n?r=i:ct=i),o.from==e&&(o.from!=o.to&&"before"!=n?r=i:ct=i)}return null!=r?r:ct}var ht=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",e="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?t.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?e.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,s=/[Lb1n]/,a=/[1n]/;function l(t,e,n){this.level=t,this.from=e,this.to=n}return function(t,e){var c="ltr"==e?"L":"R";if(0==t.length||"ltr"==e&&!r.test(t))return!1;for(var u=t.length,h=[],f=0;f-1&&(r[e]=i.slice(0,o).concat(i.slice(o+1)))}}}function mt(t,e){var n=gt(t,e);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function xt(t){t.prototype.on=function(t,e){pt(this,t,e)},t.prototype.off=function(t,e){vt(this,t,e)}}function Ot(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Ct(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function kt(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function St(t){Ot(t),Ct(t)}function Pt(t){return t.target||t.srcElement}function _t(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),y&&t.ctrlKey&&1==e&&(e=3),e}var Tt,Et,jt=function(){if(s&&a<9)return!1;var t=E('div');return"draggable"in t||"dragDrop"in t}();function Dt(t){if(null==Tt){var e=E("span","​");T(t,E("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Tt=e.offsetWidth<=1&&e.offsetHeight>2&&!(s&&a<8))}var n=Tt?E("span","​"):E("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Mt(t){if(null!=Et)return Et;var e=T(t,document.createTextNode("AخA")),n=S(e,0,1).getBoundingClientRect(),r=S(e,1,2).getBoundingClientRect();return _(t),!(!n||n.left==n.right)&&(Et=r.right-n.right<3)}var At,Lt=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,n=[],r=t.length;e<=r;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),s=o.indexOf("\r");-1!=s?(n.push(o.slice(0,s)),e+=s+1):(n.push(o),e=i+1)}return n}:function(t){return t.split(/\r\n?|\n/)},Rt=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(t){return!1}}:function(t){var e;try{e=t.ownerDocument.selection.createRange()}catch(t){}return!(!e||e.parentElement()!=t)&&0!=e.compareEndPoints("StartToEnd",e)},Nt="oncopy"in(At=E("div"))||(At.setAttribute("oncopy","return;"),"function"==typeof At.oncopy),Zt=null;function It(t){if(null!=Zt)return Zt;var e=T(t,E("span","x")),n=e.getBoundingClientRect(),r=S(e,0,1).getBoundingClientRect();return Zt=Math.abs(n.left-r.left)>1}var Ft={},Vt={};function Ht(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),Ft[t]=e}function Bt(t,e){Vt[t]=e}function zt(t){if("string"==typeof t&&Vt.hasOwnProperty(t))t=Vt[t];else if(t&&"string"==typeof t.name&&Vt.hasOwnProperty(t.name)){var e=Vt[t.name];"string"==typeof e&&(e={name:e}),(t=Q(e,t)).name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return zt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return zt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Ut(t,e){e=zt(e);var n=Ft[e.name];if(!n)return Ut(t,"text/plain");var r=n(t,e);if(Wt.hasOwnProperty(e.name)){var i=Wt[e.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=e.name,e.helperType&&(r.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)r[s]=e.modeProps[s];return r}var Wt={};function $t(t,e){Z(e,Wt.hasOwnProperty(t)?Wt[t]:Wt[t]={})}function qt(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var r in e){var i=e[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Gt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}var Yt=function(t,e,n){this.pos=this.start=0,this.string=t,this.tabSize=e||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Jt(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(e=t.first&&en?oe(n,Jt(t,n).text.length):de(e,Jt(t,e.line).text.length)}function de(t,e){var n=t.ch;return null==n||n>e?oe(t.line,e):n<0?oe(t.line,0):t}function pe(t,e){for(var n=[],r=0;r=this.string.length},Yt.prototype.sol=function(){return this.pos==this.lineStart},Yt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Yt.prototype.next=function(){if(this.pose},Yt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Yt.prototype.skipToEnd=function(){this.pos=this.string.length},Yt.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},Yt.prototype.backUp=function(t){this.pos-=t},Yt.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==e&&(this.pos+=r[0].length),r)}var i=function(t){return n?t.toLowerCase():t};if(i(this.string.substr(this.pos,t.length))==i(t))return!1!==e&&(this.pos+=t.length),!0},Yt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Yt.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},Yt.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},Yt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ge=function(t,e){this.state=t,this.lookAhead=e},ve=function(t,e,n,r){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function me(t,e,n,r){var i=[t.state.modeGen],o={};Pe(t,e.text,t.doc.mode,n,(function(t,e){return i.push(t,e)}),o,r);for(var s=n.state,a=function(r){n.baseTokens=i;var a=t.state.overlays[r],l=1,c=0;n.state=!0,Pe(t,e.text,a.mode,n,(function(t,e){for(var n=l;ct&&i.splice(l,1,t,i[l+1],r),l+=2,c=Math.min(t,r)}if(e)if(a.opaque)i.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&qt(t.doc.mode,r.state),o=me(t,e,r);i&&(r.state=i),e.stateAfter=r.save(!i),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function be(t,e,n){var r=t.doc,i=t.display;if(!r.mode.startState)return new ve(r,!0,e);var o=_e(t,e,n),s=o>r.first&&Jt(r,o-1).stateAfter,a=s?ve.fromSaved(r,s,o):new ve(r,Kt(r.mode),o);return r.iter(o,e,(function(n){we(t,n.text,a);var r=a.line;n.stateAfter=r==e-1||r%5==0||r>=i.viewFrom&&re.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}ve.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ve.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var e=this.baseTokens[this.baseTokenPos+1];return{type:e&&e.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ve.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ve.fromSaved=function(t,e,n){return e instanceof ge?new ve(t,qt(t.mode,e.state),n,e.lookAhead):new ve(t,qt(t.mode,e),n)},ve.prototype.save=function(t){var e=!1!==t?qt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ge(e,this.maxLookAhead):e};var Ce=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n};function ke(t,e,n,r){var i,o,s=t.doc,a=s.mode,l=Jt(s,(e=fe(s,e)).line),c=be(t,e.line,n),u=new Yt(l.text,t.options.tabSize,c);for(r&&(o=[]);(r||u.post.options.maxHighlightLength?(a=!1,s&&we(t,e,r,h.pos),h.pos=e.length,l=null):l=Se(Oe(n,h,r.state,f),o),f){var d=f[0].name;d&&(l="m-"+(l?d+" "+l:d))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=Jt(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ge?c.lookAhead:0)<=o.modeFrontier))return a;var u=I(l.text,null,t.options.tabSize);(null==i||r>u)&&(i=a-1,r=u)}return i}function Te(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;r--){var i=Jt(t,r).stateAfter;if(i&&(!(i instanceof ge)||r+i.lookAhead=e:o.to>e);(r||(r=[])).push(new Ae(s,o.from,a?null:o.to))}}return r}function Ie(t,e,n){var r;if(t)for(var i=0;i=e:o.to>e)||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var a=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var b=0;b0)){var u=[l,1],h=se(c.from,a.from),f=se(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function Be(t){var e=t.markedSpans;if(e){for(var n=0;ne)&&(!n||$e(n,o.marker)<0)&&(n=o.marker)}return n}function Je(t,e,n,r,i){var o=Jt(t,e),s=je&&o.markedSpans;if(s)for(var a=0;a=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?se(c.to,n)>=0:se(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?se(c.from,r)<=0:se(c.from,r)<0)))return!0}}}function Xe(t){for(var e;e=Ge(t);)t=e.find(-1,!0).line;return t}function Qe(t){for(var e;e=Ke(t);)t=e.find(1,!0).line;return t}function tn(t){for(var e,n;e=Ke(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function en(t,e){var n=Jt(t,e),r=Xe(n);return n==r?e:ee(r)}function nn(t,e){if(e>t.lastLine())return e;var n,r=Jt(t,e);if(!rn(t,r))return e;for(;n=Ke(r);)r=n.find(1,!0).line;return ee(r)+1}function rn(t,e){var n=je&&e.markedSpans;if(n)for(var r=void 0,i=0;ie.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)}))}var cn=function(t,e,n){this.text=t,ze(this,e),this.height=n?n(this):1};function un(t,e,n,r){t.text=e,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),null!=t.order&&(t.order=null),Be(t),ze(t,n);var i=r?r(t):1;i!=t.height&&te(t,i)}function hn(t){t.parent=null,Be(t)}cn.prototype.lineNo=function(){return ee(this)},xt(cn);var fn={},dn={};function pn(t,e){if(!t||/^\s*$/.test(t))return null;var n=e.addModeClass?dn:fn;return n[t]||(n[t]=t.replace(/\S+/g,"cm-$&"))}function gn(t,e){var n=j("span",null,null,l?"padding-right: .1px":null),r={pre:j("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};e.measure={};for(var i=0;i<=(e.rest?e.rest.length:0);i++){var o=i?e.rest[i-1]:e.line,s=void 0;r.pos=0,r.addToken=mn,Mt(t.display.measure)&&(s=ft(o,t.doc.direction))&&(r.addToken=bn(r.addToken,s)),r.map=[],xn(o,r,ye(t,o,e!=t.display.externalMeasured&&ee(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=L(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=L(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Dt(t.display.measure))),0==i?(e.measure.map=r.map,e.measure.cache={}):((e.measure.maps||(e.measure.maps=[])).push(r.map),(e.measure.caches||(e.measure.caches=[])).push({}))}if(l){var a=r.content.lastChild;(/\bcm-tab\b/.test(a.className)||a.querySelector&&a.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return mt(t,"renderLine",t,e.line,r.pre),r.pre.className&&(r.textClass=L(r.pre.className,r.textClass||"")),r}function vn(t){var e=E("span","•","cm-invalidchar");return e.title="\\u"+t.charCodeAt(0).toString(16),e.setAttribute("aria-label",e.title),e}function mn(t,e,n,r,i,o,l){if(e){var c,u=t.splitSpaces?yn(e,t.trailingSpace):e,h=t.cm.state.specialChars,f=!1;if(h.test(e)){c=document.createDocumentFragment();for(var d=0;;){h.lastIndex=d;var p=h.exec(e),g=p?p.index-d:e.length-d;if(g){var v=document.createTextNode(u.slice(d,d+g));s&&a<9?c.appendChild(E("span",[v])):c.appendChild(v),t.map.push(t.pos,t.pos+g,v),t.col+=g,t.pos+=g}if(!p)break;d+=g+1;var m=void 0;if("\t"==p[0]){var y=t.cm.options.tabSize,b=y-t.col%y;(m=c.appendChild(E("span",G(b),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),t.col+=b}else"\r"==p[0]||"\n"==p[0]?((m=c.appendChild(E("span","\r"==p[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",p[0]),t.col+=1):((m=t.cm.options.specialCharPlaceholder(p[0])).setAttribute("cm-text",p[0]),s&&a<9?c.appendChild(E("span",[m])):c.appendChild(m),t.col+=1);t.map.push(t.pos,t.pos+1,m),t.pos++}}else t.col+=e.length,c=document.createTextNode(u),t.map.push(t.pos,t.pos+e.length,c),s&&a<9&&(f=!0),t.pos+=e.length;if(t.trailingSpace=32==u.charCodeAt(e.length-1),n||r||i||f||o||l){var w=n||"";r&&(w+=r),i&&(w+=i);var x=E("span",[c],w,o);if(l)for(var O in l)l.hasOwnProperty(O)&&"style"!=O&&"class"!=O&&x.setAttribute(O,l[O]);return t.content.appendChild(x)}t.content.appendChild(c)}}function yn(t,e){if(t.length>1&&!/ /.test(t))return t;for(var n=e,r="",i=0;ic&&h.from<=c);f++);if(h.to>=u)return t(n,r,i,o,s,a,l);t(n,r.slice(0,h.to-c),i,o,null,a,l),o=null,r=r.slice(h.to-c),c=h.to}}}function wn(t,e,n,r){var i=!r&&n.widgetNode;i&&t.map.push(t.pos,t.pos+e,i),!r&&t.cm.display.input.needsContentAttribute&&(i||(i=t.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(t.cm.display.input.setUneditable(i),t.content.appendChild(i)),t.pos+=e,t.trailingSpace=!1}function xn(t,e,n){var r=t.markedSpans,i=t.text,o=0;if(r)for(var s,a,l,c,u,h,f,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=a="",f=null,h=null,m=1/0;for(var y=[],b=void 0,w=0;wp||O.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,c=""),O.className&&(l+=" "+O.className),O.css&&(a=(a?a+";":"")+O.css),O.startStyle&&x.from==p&&(u+=" "+O.startStyle),O.endStyle&&x.to==m&&(b||(b=[])).push(O.endStyle,x.to),O.title&&((f||(f={})).title=O.title),O.attributes)for(var C in O.attributes)(f||(f={}))[C]=O.attributes[C];O.collapsed&&(!h||$e(h.marker,O)<0)&&(h=x)}else x.from>p&&m>x.from&&(m=x.from)}if(b)for(var k=0;k=d)break;for(var P=Math.min(d,m);;){if(v){var _=p+v.length;if(!h){var T=_>P?v.slice(0,P-p):v;e.addToken(e,T,s?s+l:l,u,p+T.length==m?c:"",a,f)}if(_>=P){v=v.slice(P-p),p=P;break}p=_,u=""}v=i.slice(o,o=n[g++]),s=pn(n[g++],e.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Xn(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var r=0;rn)return{map:t.measure.maps[i],cache:t.measure.caches[i],before:!0}}function Qn(t,e){var n=ee(e=Xe(e)),r=t.display.externalMeasured=new On(t.doc,e,n);r.lineN=n;var i=r.built=gn(t,r);return r.text=i.pre,T(t.display.lineMeasure,i.pre),r}function tr(t,e,n,r){return rr(t,nr(t,e),n,r)}function er(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(i=(o=l-a)-1,e>=l&&(s="right")),null!=i){if(r=t[c+2],a==l&&n==(r.insertLeft?"left":"right")&&(s=n),"left"==n&&0==i)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)r=t[2+(c-=3)],s="left";if("right"==n&&i==l-a)for(;c=0&&(n=t[i]).left==n.right;i--);return n}function lr(t,e,n,r){var i,o=sr(e.map,n,r),l=o.node,c=o.start,u=o.end,h=o.collapse;if(3==l.nodeType){for(var f=0;f<4;f++){for(;c&&ot(e.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u0&&(h=r="right"),i=t.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==r?d.length-1:0]:l.getBoundingClientRect()}if(s&&a<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+jr(t.display),top:p.top,bottom:p.bottom}:or}for(var g=i.top-e.rect.top,v=i.bottom-e.rect.top,m=(g+v)/2,y=e.view.measure.heights,b=0;b=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!a)return s("before"==c?l-1:l,"before"==c);function u(t,e,n){return s(n?t-1:t,1==a[e].level!=n)}var h=ut(a,l,c),f=ct,d=u(l,h,"before"==c);return null!=f&&(d.other=u(l,f,"before"!=c)),d}function wr(t,e){var n=0;e=fe(t.doc,e),t.options.lineWrapping||(n=jr(t.display)*e.ch);var r=Jt(t.doc,e.line),i=sn(r)+Wn(t.display);return{left:n,right:n,top:i,bottom:i+r.height}}function xr(t,e,n,r,i){var o=oe(t,e,n);return o.xRel=i,r&&(o.outside=r),o}function Or(t,e,n){var r=t.doc;if((n+=t.display.viewOffset)<0)return xr(r.first,0,null,-1,-1);var i=ne(r,n),o=r.first+r.size-1;if(i>o)return xr(r.first+r.size-1,Jt(r,o).text.length,null,1,1);e<0&&(e=0);for(var s=Jt(r,i);;){var a=Pr(t,s,i,e,n),l=Ye(s,a.ch+(a.xRel>0||a.outside>0?1:0));if(!l)return a;var c=l.find(1);if(c.line==i)return c;s=Jt(r,i=c.line)}}function Cr(t,e,n,r){r-=gr(e);var i=e.text.length,o=at((function(e){return rr(t,n,e-1).bottom<=r}),i,0);return{begin:o,end:i=at((function(e){return rr(t,n,e).top>r}),o,i)}}function kr(t,e,n,r){return n||(n=nr(t,e)),Cr(t,e,n,vr(t,e,rr(t,n,r),"line").top)}function Sr(t,e,n,r){return!(t.bottom<=n)&&(t.top>n||(r?t.left:t.right)>e)}function Pr(t,e,n,r,i){i-=sn(e);var o=nr(t,e),s=gr(e),a=0,l=e.text.length,c=!0,u=ft(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?Tr:_r)(t,e,n,o,u,r,i);a=(c=1!=h.level)?h.from:h.to-1,l=c?h.to:h.from-1}var f,d,p=null,g=null,v=at((function(e){var n=rr(t,o,e);return n.top+=s,n.bottom+=s,!!Sr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=e,g=n),!0)}),a,l),m=!1;if(g){var y=r-g.left=w.bottom?1:0}return xr(n,v=st(e.text,v,1),d,m,r-f)}function _r(t,e,n,r,i,o,s){var a=at((function(a){var l=i[a],c=1!=l.level;return Sr(br(t,oe(n,c?l.to:l.from,c?"before":"after"),"line",e,r),o,s,!0)}),0,i.length-1),l=i[a];if(a>0){var c=1!=l.level,u=br(t,oe(n,c?l.from:l.to,c?"after":"before"),"line",e,r);Sr(u,o,s,!0)&&u.top>s&&(l=i[a-1])}return l}function Tr(t,e,n,r,i,o,s){var a=Cr(t,e,r,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,f=0;f=c||d.to<=l)){var p=rr(t,r,1!=d.level?Math.min(c,d.to)-1:Math.max(l,d.from)).right,g=pg)&&(u=d,h=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Er(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==ir){ir=E("pre",null,"CodeMirror-line-like");for(var e=0;e<49;++e)ir.appendChild(document.createTextNode("x")),ir.appendChild(E("br"));ir.appendChild(document.createTextNode("x"))}T(t.measure,ir);var n=ir.offsetHeight/50;return n>3&&(t.cachedTextHeight=n),_(t.measure),n||1}function jr(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=E("span","xxxxxxxxxx"),n=E("pre",[e],"CodeMirror-line-like");T(t.measure,n);var r=e.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(t.cachedCharWidth=i),i||10}function Dr(t){for(var e=t.display,n={},r={},i=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s){var a=t.display.gutterSpecs[s].className;n[a]=o.offsetLeft+o.clientLeft+i,r[a]=o.clientWidth}return{fixedPos:Mr(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:e.wrapper.clientWidth}}function Mr(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function Ar(t){var e=Er(t.display),n=t.options.lineWrapping,r=n&&Math.max(5,t.display.scroller.clientWidth/jr(t.display)-3);return function(i){if(rn(t.doc,i))return 0;var o=0;if(i.widgets)for(var s=0;s0&&(l=Jt(t.doc,c.line).text).length==c.ch){var u=I(l,l.length,t.options.tabSize)-l.length;c=oe(c.line,Math.max(0,Math.round((o-qn(t.display).left)/jr(t.display))-u))}return c}function Nr(t,e){if(e>=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,r=0;re)&&(i.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=i.viewTo)je&&en(t.doc,e)i.viewFrom?Fr(t):(i.viewFrom+=r,i.viewTo+=r);else if(e<=i.viewFrom&&n>=i.viewTo)Fr(t);else if(e<=i.viewFrom){var o=Vr(t,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Fr(t)}else if(n>=i.viewTo){var s=Vr(t,e,e,-1);s?(i.view=i.view.slice(0,s.index),i.viewTo=s.lineN):Fr(t)}else{var a=Vr(t,e,e,-1),l=Vr(t,n,n+r,1);a&&l?(i.view=i.view.slice(0,a.index).concat(Cn(t,a.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Fr(t)}var c=i.externalMeasured;c&&(n=i.lineN&&e=r.viewTo)){var o=r.view[Nr(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==V(s,n)&&s.push(n)}}}function Fr(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Vr(t,e,n,r){var i,o=Nr(t,e),s=t.display.view;if(!je||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;i=a+s[o].size-e,o++}else i=a-e;e+=i,n+=i}for(;en(t.doc,n)!=n;){if(o==(r<0?0:s.length-1))return null;n+=r*s[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Hr(t,e,n){var r=t.display;0==r.view.length||e>=r.viewTo||n<=r.viewFrom?(r.view=Cn(t,e,n),r.viewFrom=e):(r.viewFrom>e?r.view=Cn(t,e,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Nr(t,n)))),r.viewTo=n}function Br(t){for(var e=t.display.view,n=0,r=0;r=t.display.viewTo||a.to().line0&&(i.style.width=o.right-o.left+"px")}if(r.other){var s=n.appendChild(E("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));s.style.display="",s.style.left=r.other.left+"px",s.style.top=r.other.top+"px",s.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function $r(t,e){return t.top-e.top||t.left-e.left}function qr(t,e,n){var r=t.display,i=t.doc,o=document.createDocumentFragment(),s=qn(t.display),a=s.left,l=Math.max(r.sizerWidth,Kn(t)-r.sizer.offsetLeft)-s.right,c="ltr"==i.direction;function u(t,e,n,r){e<0&&(e=0),e=Math.round(e),r=Math.round(r),o.appendChild(E("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px;\n top: "+e+"px; width: "+(null==n?l-t:n)+"px;\n height: "+(r-e)+"px"))}function h(e,n,r){var o,s,h=Jt(i,e),f=h.text.length;function d(n,r){return yr(t,oe(e,n),"div",h,r)}function p(e,n,r){var i=kr(t,h,null,e),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1),o)[o]}var g=ft(h,i.direction);return lt(g,n||0,null==r?f:r,(function(t,e,i,h){var v="ltr"==i,m=d(t,v?"left":"right"),y=d(e-1,v?"right":"left"),b=null==n&&0==t,w=null==r&&e==f,x=0==h,O=!g||h==g.length-1;if(y.top-m.top<=3){var C=(c?w:b)&&O,k=(c?b:w)&&x?a:(v?m:y).left,S=C?l:(v?y:m).right;u(k,m.top,S-k,m.bottom)}else{var P,_,T,E;v?(P=c&&b&&x?a:m.left,_=c?l:p(t,i,"before"),T=c?a:p(e,i,"after"),E=c&&w&&O?l:y.right):(P=c?p(t,i,"before"):a,_=!c&&b&&x?l:m.right,T=!c&&w&&O?a:y.left,E=c?p(e,i,"after"):l),u(P,m.top,_-P,m.bottom),m.bottom0?e.blinker=setInterval((function(){t.hasFocus()||Xr(t),e.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Kr(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||Jr(t))}function Yr(t){t.state.delayingBlurEvent=!0,setTimeout((function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&Xr(t))}),100)}function Jr(t,e){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(mt(t,"focus",t,e),t.state.focused=!0,A(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),l&&setTimeout((function(){return t.display.input.reset(!0)}),20)),t.display.input.receivedFocus()),Gr(t))}function Xr(t,e){t.state.delayingBlurEvent||(t.state.focused&&(mt(t,"blur",t,e),t.state.focused=!1,P(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout((function(){t.state.focused||(t.display.shift=!1)}),150))}function Qr(t){for(var e=t.display,n=e.lineDiv.offsetTop,r=Math.max(0,e.scroller.getBoundingClientRect().top),i=e.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(it.display.sizerWidth){var m=Math.ceil(f/jr(t.display));m>t.display.maxLineLength&&(t.display.maxLineLength=m,t.display.maxLine=c.line,t.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(e.scroller.scrollTop+=o)}function ti(t){if(t.widgets)for(var e=0;e=s&&(o=ne(e,sn(Jt(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function ni(t,e){if(!yt(t,"scrollCursorIntoView")){var n=t.display,r=n.sizer.getBoundingClientRect(),i=null;if(e.top+r.top<0?i=!0:e.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=E("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Wn(t.display))+"px;\n height: "+(e.bottom-e.top+Gn(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(o),o.scrollIntoView(i),t.display.lineSpace.removeChild(o)}}}function ri(t,e,n,r){var i;null==r&&(r=0),t.options.lineWrapping||e!=n||(n="before"==e.sticky?oe(e.line,e.ch+1,"before"):e,e=e.ch?oe(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e);for(var o=0;o<5;o++){var s=!1,a=br(t,e),l=n&&n!=e?br(t,n):a,c=oi(t,i={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-r,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+r}),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(fi(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(pi(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return i}function ii(t,e){var n=oi(t,e);null!=n.scrollTop&&fi(t,n.scrollTop),null!=n.scrollLeft&&pi(t,n.scrollLeft)}function oi(t,e){var n=t.display,r=Er(t.display);e.top<0&&(e.top=0);var i=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Yn(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+$n(n),l=e.topa-r;if(e.topi+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=i&&(s.scrollTop=u)}var h=t.options.fixedGutter?0:n.gutters.offsetWidth,f=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft-h,d=Kn(t)-n.gutters.offsetWidth,p=e.right-e.left>d;return p&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+f-3&&(s.scrollLeft=e.right+(p?0:10)-d),s}function si(t,e){null!=e&&(ui(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function ai(t){ui(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function li(t,e,n){null==e&&null==n||ui(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function ci(t,e){ui(t),t.curOp.scrollToPos=e}function ui(t){var e=t.curOp.scrollToPos;e&&(t.curOp.scrollToPos=null,hi(t,wr(t,e.from),wr(t,e.to),e.margin))}function hi(t,e,n,r){var i=oi(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-r,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+r});li(t,i.scrollLeft,i.scrollTop)}function fi(t,e){Math.abs(t.doc.scrollTop-e)<2||(n||zi(t,{top:e}),di(t,e,!0),n&&zi(t),Ri(t,100))}function di(t,e,n){e=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e)),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function pi(t,e,n,r){e=Math.max(0,Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!r||(t.doc.scrollLeft=e,qi(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function gi(t){var e=t.display,n=e.gutters.offsetWidth,r=Math.round(t.doc.height+$n(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Gn(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}var vi=function(t,e,n){this.cm=n;var r=this.vert=E("div",[E("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=E("div",[E("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,t(r),t(i),pt(r,"scroll",(function(){r.clientHeight&&e(r.scrollTop,"vertical")})),pt(i,"scroll",(function(){i.clientWidth&&e(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,s&&a<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vi.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,r=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?r+"px":"0";var i=t.viewHeight-(e?r:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:e?r:0}},vi.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vi.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vi.prototype.zeroWidthHack=function(){var t=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},vi.prototype.enableZeroWidthBar=function(t,e,n){function r(){var i=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,r)}t.style.pointerEvents="auto",e.set(1e3,r)},vi.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var mi=function(){};function yi(t,e){e||(e=gi(t));var n=t.display.barWidth,r=t.display.barHeight;bi(t,e);for(var i=0;i<4&&n!=t.display.barWidth||r!=t.display.barHeight;i++)n!=t.display.barWidth&&t.options.lineWrapping&&Qr(t),bi(t,gi(t)),n=t.display.barWidth,r=t.display.barHeight}function bi(t,e){var n=t.display,r=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}mi.prototype.update=function(){return{bottom:0,right:0}},mi.prototype.setScrollLeft=function(){},mi.prototype.setScrollTop=function(){},mi.prototype.clear=function(){};var wi={native:vi,null:mi};function xi(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&P(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new wi[t.options.scrollbarStyle]((function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pt(e,"mousedown",(function(){t.state.focused&&setTimeout((function(){return t.display.input.focus()}),0)})),e.setAttribute("cm-not-content","true")}),(function(e,n){"horizontal"==n?pi(t,e):fi(t,e)}),t),t.display.scrollbars.addClass&&A(t.display.wrapper,t.display.scrollbars.addClass)}var Oi=0;function Ci(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Oi,markArrays:null},Sn(t.curOp)}function ki(t){var e=t.curOp;e&&_n(e,(function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Zi(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function _i(t){t.updatedDisplay=t.mustUpdate&&Hi(t.cm,t.update)}function Ti(t){var e=t.cm,n=e.display;t.updatedDisplay&&Qr(e),t.barMeasure=gi(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=tr(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Gn(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Kn(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function Ei(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var n=+new Date+t.options.workTime,r=be(t,e.highlightFrontier),i=[];e.iter(r.line,Math.min(e.first+e.size,t.display.viewTo+500),(function(o){if(r.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?qt(e.mode,r.state):null,l=me(t,o,r,!0);a&&(r.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!h&&fn)return Ri(t,t.options.workDelay),!0})),e.highlightFrontier=r.line,e.modeFrontier=Math.max(e.modeFrontier,r.line),i.length&&Di(t,(function(){for(var e=0;e=n.viewFrom&&e.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Br(t))return!1;Gi(t)&&(Fr(t),e.dims=Dr(t));var i=r.first+r.size,o=Math.max(e.visible.from-t.options.viewportMargin,r.first),s=Math.min(i,e.visible.to+t.options.viewportMargin);n.viewFroms&&n.viewTo-s<20&&(s=Math.min(i,n.viewTo)),je&&(o=en(t.doc,o),s=nn(t.doc,s));var a=o!=n.viewFrom||s!=n.viewTo||n.lastWrapHeight!=e.wrapperHeight||n.lastWrapWidth!=e.wrapperWidth;Hr(t,o,s),n.viewOffset=sn(Jt(t.doc,n.viewFrom)),t.display.mover.style.top=n.viewOffset+"px";var l=Br(t);if(!a&&0==l&&!e.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Fi(t);return l>4&&(n.lineDiv.style.display="none"),Ui(t,n.updateLineNumbers,e.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Vi(c),_(n.cursorDiv),_(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,a&&(n.lastWrapHeight=e.wrapperHeight,n.lastWrapWidth=e.wrapperWidth,Ri(t,400)),n.updateLineNumbers=null,!0}function Bi(t,e){for(var n=e.viewport,r=!0;;r=!1){if(r&&t.options.lineWrapping&&e.oldDisplayWidth!=Kn(t))r&&(e.visible=ei(t.display,t.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$n(t.display)-Yn(t),n.top)}),e.visible=ei(t.display,t.doc,n),e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)break;if(!Hi(t,e))break;Qr(t);var i=gi(t);zr(t),yi(t,i),$i(t,i),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function zi(t,e){var n=new Zi(t,e);if(Hi(t,n)){Qr(t),Bi(t,n);var r=gi(t);zr(t),yi(t,r),$i(t,r),n.finish()}}function Ui(t,e,n){var r=t.display,i=t.options.lineNumbers,o=r.lineDiv,s=o.firstChild;function a(e){var n=e.nextSibling;return l&&y&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var c=r.view,u=r.viewFrom,h=0;h-1&&(d=!1),Dn(t,f,u,n)),d&&(_(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(ie(t.options,u)))),s=f.node.nextSibling}else{var p=Fn(t,f,u,n);o.insertBefore(p,s)}u+=f.size}for(;s;)s=a(s)}function Wi(t){var e=t.gutters.offsetWidth;t.sizer.style.marginLeft=e+"px",En(t,"gutterChanged",t)}function $i(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Gn(t)+"px"}function qi(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=Mr(e)-e.scroller.scrollLeft+t.doc.scrollLeft,i=e.gutters.offsetWidth,o=r+"px",s=0;sa.clientWidth,u=a.scrollHeight>a.clientHeight;if(i&&c||o&&u){if(o&&y&&l)t:for(var f=e.target,d=s.view;f!=a;f=f.parentNode)for(var p=0;p=0&&se(t,r.to())<=0)return n}return-1};var oo=function(t,e){this.anchor=t,this.head=e};function so(t,e,n){var r=t&&t.options.selectionsMayTouch,i=e[n];e.sort((function(t,e){return se(t.from(),e.from())})),n=V(e,i);for(var o=1;o0:l>=0){var c=ue(a.from(),s.from()),u=ce(a.to(),s.to()),h=a.empty()?s.from()==s.head:a.from()==a.head;o<=n&&--n,e.splice(--o,2,new oo(h?u:c,h?c:u))}}return new io(e,n)}function ao(t,e){return new io([new oo(t,e||t)],0)}function lo(t){return t.text?oe(t.from.line+t.text.length-1,K(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function co(t,e){if(se(t,e.from)<0)return t;if(se(t,e.to)<=0)return lo(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,r=t.ch;return t.line==e.to.line&&(r+=lo(e).ch-e.to.ch),oe(n,r)}function uo(t,e){for(var n=[],r=0;r1&&t.remove(a.line+1,p-1),t.insert(a.line+1,m)}En(t,"change",t,e)}function yo(t,e,n){function r(t,i,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),K(t.done)):void 0}function Po(t,e,n,r){var i=t.history;i.undone.length=0;var o,s,a=+new Date;if((i.lastOp==r||i.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&i.lastModTime>a-(t.cm?t.cm.options.historyEventDelay:500)||"*"==e.origin.charAt(0)))&&(o=So(i,i.lastOp==r)))s=K(o.changes),0==se(e.from,e.to)&&0==se(e.from,s.to)?s.to=lo(e):o.changes.push(Co(t,e));else{var l=K(i.done);for(l&&l.ranges||Eo(t.sel,i.done),o={changes:[Co(t,e)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=e.origin,s||mt(t,"historyAdded")}function _o(t,e,n,r){var i=e.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function To(t,e,n,r){var i=t.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||_o(t,o,K(i.done),e))?i.done[i.done.length-1]=e:Eo(e,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&ko(i.undone)}function Eo(t,e){var n=K(e);n&&n.ranges&&n.equals(t)||e.push(t)}function jo(t,e,n,r){var i=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,r),(function(n){n.markedSpans&&((i||(i=e["spans_"+t.id]={}))[o]=n.markedSpans),++o}))}function Do(t){if(!t)return null;for(var e,n=0;n-1&&(K(a)[h]=c[h],delete c[h])}}}return r}function Ro(t,e,n,r){if(r){var i=t.anchor;if(n){var o=se(e,i)<0;o!=se(n,i)<0?(i=e,e=n):o!=se(e,n)<0&&(e=n)}return new oo(i,e)}return new oo(n||e,e)}function No(t,e,n,r,i){null==i&&(i=t.cm&&(t.cm.display.shift||t.extend)),Bo(t,new io([Ro(t.sel.primary(),e,n,i)],0),r)}function Zo(t,e,n){for(var r=[],i=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(i&&(mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var h=l.find(r<0?1:-1),f=void 0;if((r<0?u:c)&&(h=Ko(t,h,-r,h&&h.line==e.line?o:null)),h&&h.line==e.line&&(f=se(h,n))&&(r<0?f<0:f>0))return qo(t,h,e,r,i)}var d=l.find(r<0?-1:1);return(r<0?c:u)&&(d=Ko(t,d,r,d.line==e.line?o:null)),d?qo(t,d,e,r,i):null}}return e}function Go(t,e,n,r,i){var o=r||1,s=qo(t,e,n,o,i)||!i&&qo(t,e,n,o,!0)||qo(t,e,n,-o,i)||!i&&qo(t,e,n,-o,!0);return s||(t.cantEdit=!0,oe(t.first,0))}function Ko(t,e,n,r){return n<0&&0==e.ch?e.line>t.first?fe(t,oe(e.line-1)):null:n>0&&e.ch==(r||Jt(t,e.line)).text.length?e.line=0;--i)Qo(t,{from:r[i].from,to:r[i].to,text:i?[""]:e.text,origin:e.origin});else Qo(t,e)}}function Qo(t,e){if(1!=e.text.length||""!=e.text[0]||0!=se(e.from,e.to)){var n=uo(t,e);Po(t,e,n,t.cm?t.cm.curOp.id:NaN),ns(t,e,n,Fe(t,e));var r=[];yo(t,(function(t,n){n||-1!=V(r,t.history)||(as(t.history,e),r.push(t.history)),ns(t,e,null,Fe(t,e))}))}}function ts(t,e,n){var r=t.cm&&t.cm.state.suppressEdits;if(!r||n){for(var i,o=t.history,s=t.sel,a="undo"==e?o.done:o.undone,l="undo"==e?o.undone:o.done,c=0;c=0;--d){var p=f(d);if(p)return p.v}}}}function es(t,e){if(0!=e&&(t.first+=e,t.sel=new io(Y(t.sel.ranges,(function(t){return new oo(oe(t.anchor.line+e,t.anchor.ch),oe(t.head.line+e,t.head.ch))})),t.sel.primIndex),t.cm)){Zr(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,r=n.viewFrom;rt.lastLine())){if(e.from.lineo&&(e={from:e.from,to:oe(o,Jt(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=Xt(t,e.from,e.to),n||(n=uo(t,e)),t.cm?rs(t.cm,e,r):mo(t,e,r),zo(t,n,z),t.cantEdit&&Go(t,oe(t.firstLine(),0))&&(t.cantEdit=!1)}}function rs(t,e,n){var r=t.doc,i=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=ee(Xe(Jt(r,o.line))),r.iter(l,s.line+1,(function(t){if(t==i.maxLine)return a=!0,!0}))),r.sel.contains(e.from,e.to)>-1&&bt(t),mo(r,e,n,Ar(t)),t.options.lineWrapping||(r.iter(l,o.line+e.text.length,(function(t){var e=an(t);e>i.maxLineLength&&(i.maxLine=t,i.maxLineLength=e,i.maxLineChanged=!0,a=!1)})),a&&(t.curOp.updateMaxLine=!0)),Te(r,o.line),Ri(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?Zr(t):o.line!=s.line||1!=e.text.length||vo(t.doc,e)?Zr(t,o.line,s.line+1,c):Ir(t,o.line,"text");var u=wt(t,"changes"),h=wt(t,"change");if(h||u){var f={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&En(t,"change",t,f),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(f)}t.display.selForContextMenu=null}function is(t,e,n,r,i){var o;r||(r=n),se(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof e&&(e=t.splitLines(e)),Xo(t,{from:n,to:r,text:e,origin:i})}function os(t,e,n,r){n1||!(this.children[0]instanceof cs))){var a=[];this.collapse(a),this.children=[new cs(a)],this.children[0].parent=this}},collapse:function(t){for(var e=0;e50){for(var s=i.lines.length%25+25,a=s;a10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var r=0;r0||0==s&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=j("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Je(t,e.line,e,n,o)||e.line!=n.line&&Je(t,n.line,e,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Me()}o.addToHistory&&Po(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var a,l=e.line,c=t.cm;if(t.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Xe(r)==c.display.maxLine&&(a=!0),o.collapsed&&l!=e.line&&te(r,0),Ne(r,new Ae(o,l==e.line?e.ch:null,l==n.line?n.ch:null),t.cm&&t.cm.curOp),++l})),o.collapsed&&t.iter(e.line,n.line+1,(function(e){rn(t,e)&&te(e,0)})),o.clearOnEnter&&pt(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(De(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++ps,o.atomic=!0),c){if(a&&(c.curOp.updateMaxLine=!0),o.collapsed)Zr(c,e.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=e.line;u<=n.line;u++)Ir(c,u,"text");o.atomic&&Wo(c.doc),En(c,"markerAdded",c,o)}return o}gs.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&Ci(t),wt(this,"clear")){var n=this.find();n&&En(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Zr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Wo(t.doc)),t&&En(t,"markerCleared",t,this,r,i),e&&ki(t),this.parent&&this.parent.clear()}},gs.prototype.find=function(t,e){var n,r;null==t&&"bookmark"==this.type&&(t=1);for(var i=0;i=0;l--)Xo(this,r[l]);a?Ho(this,a):this.cm&&ai(this.cm)})),undo:Li((function(){ts(this,"undo")})),redo:Li((function(){ts(this,"redo")})),undoSelection:Li((function(){ts(this,"undo",!0)})),redoSelection:Li((function(){ts(this,"redo",!0)})),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,r=0;r=t.ch)&&e.push(i.marker.parent||i.marker)}return e},findMarks:function(t,e,n){t=fe(this,t),e=fe(this,e);var r=[],i=t.line;return this.iter(t.line,e.line+1,(function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&i!=t.line||null!=l.from&&i==e.line&&l.from>=e.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var t=[];return this.iter((function(e){var n=e.markedSpans;if(n)for(var r=0;rt)return e=t,!0;t-=o,++n})),fe(this,oe(n,e))},indexFromPos:function(t){var e=(t=fe(this,t)).ch;if(t.linee&&(e=t.from),null!=t.to&&t.to-1)return e.state.draggingText(t),void setTimeout((function(){return e.display.input.focus()}),20);try{var h=t.dataTransfer.getData("Text");if(h){var f;if(e.state.draggingText&&!e.state.draggingText.copy&&(f=e.listSelections()),zo(e.doc,ao(n,n)),f)for(var d=0;d=0;e--)is(t.doc,"",r[e].from,r[e].to,"+delete");ai(t)}))}function qs(t,e,n){var r=st(t.text,e+n,n);return r<0||r>t.text.length?null:r}function Gs(t,e,n){var r=qs(t,e.ch,n);return null==r?null:new oe(e.line,r,n<0?"after":"before")}function Ks(t,e,n,r,i){if(t){"rtl"==e.doc.direction&&(i=-i);var o=ft(n,e.doc.direction);if(o){var s,a=i<0?K(o):o[0],l=i<0==(1==a.level)?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var c=nr(e,n);s=i<0?n.text.length-1:0;var u=rr(e,c,s).top;s=at((function(t){return rr(e,c,t).top==u}),i<0==(1==a.level)?a.from:a.to-1,s),"before"==l&&(s=qs(n,s,1))}else s=i<0?a.to:a.from;return new oe(r,s,l)}}return new oe(r,i<0?n.text.length:0,i<0?"before":"after")}function Ys(t,e,n,r){var i=ft(e,t.doc.direction);if(!i)return Gs(e,n,r);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ut(i,n.ch,n.sticky),s=i[o];if("ltr"==t.doc.direction&&s.level%2==0&&(r>0?s.to>n.ch:s.from=s.from&&f>=u.begin)){var d=h?"before":"after";return new oe(n.line,f,d)}}var p=function(t,e,r){for(var o=function(t,e){return e?new oe(n.line,l(t,1),"before"):new oe(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?r.begin:l(r.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==v||r>0&&v==e.text.length||!(g=p(r>0?0:i.length-1,r,c(v)))?null:g}Is.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Is.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Is.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Is.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Is.default=y?Is.macDefault:Is.pcDefault;var Js={selectAll:Yo,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),z)},killLine:function(t){return $s(t,(function(e){if(e.empty()){var n=Jt(t.doc,e.head.line).text.length;return e.head.ch==n&&e.head.line0)i=new oe(i.line,i.ch+1),t.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),oe(i.line,i.ch-2),i,"+transpose");else if(i.line>t.doc.first){var s=Jt(t.doc,i.line-1).text;s&&(i=new oe(i.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),oe(i.line-1,s.length-1),i,"+transpose"))}n.push(new oo(i,i))}t.setSelections(n)}))},newlineAndIndent:function(t){return Di(t,(function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var r=0;r-1&&(se((i=a.ranges[i]).from(),e)<0||e.xRel>0)&&(se(i.to(),e)>0||e.xRel<0)?Oa(t,r,e,o):ka(t,r,e,o)}function Oa(t,e,n,r){var i=t.display,o=!1,c=Mi(t,(function(e){l&&(i.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:Yr(t)),vt(i.wrapper.ownerDocument,"mouseup",c),vt(i.wrapper.ownerDocument,"mousemove",u),vt(i.scroller,"dragstart",h),vt(i.scroller,"drop",c),o||(Ot(e),r.addNew||No(t.doc,n,null,null,r.extend),l&&!f||s&&9==a?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},h=function(){return o=!0};l&&(i.scroller.draggable=!0),t.state.draggingText=c,c.copy=!r.moveOnDrag,pt(i.wrapper.ownerDocument,"mouseup",c),pt(i.wrapper.ownerDocument,"mousemove",u),pt(i.scroller,"dragstart",h),pt(i.scroller,"drop",c),t.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Ca(t,e,n){if("char"==n)return new oo(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new oo(oe(e.line,0),fe(t.doc,oe(e.line+1,0)));var r=n(t,e);return new oo(r.from,r.to)}function ka(t,e,n,r){s&&Yr(t);var i=t.display,o=t.doc;Ot(e);var a,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),a=l>-1?u[l]:new oo(n,n)):(a=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(a=new oo(n,n)),n=Rr(t,e,!0,!0),l=-1;else{var h=Ca(t,n,r.unit);a=r.extend?Ro(a,h.anchor,h.head,r.extend):h}r.addNew?-1==l?(l=u.length,Bo(o,so(t,u.concat([a]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Bo(o,so(t,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Io(o,l,a,U):(l=0,Bo(o,new io([a],0),U),c=o.sel);var f=n;function d(e){if(0!=se(f,e))if(f=e,"rectangle"==r.unit){for(var i=[],s=t.options.tabSize,u=I(Jt(o,n.line).text,n.ch,s),h=I(Jt(o,e.line).text,e.ch,s),d=Math.min(u,h),p=Math.max(u,h),g=Math.min(n.line,e.line),v=Math.min(t.lastLine(),Math.max(n.line,e.line));g<=v;g++){var m=Jt(o,g).text,y=$(m,d,s);d==p?i.push(new oo(oe(g,y),oe(g,y))):m.length>y&&i.push(new oo(oe(g,y),oe(g,$(m,p,s))))}i.length||i.push(new oo(n,n)),Bo(o,so(t,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var b,w=a,x=Ca(t,e,r.unit),O=w.anchor;se(x.anchor,O)>0?(b=x.head,O=ue(w.from(),x.anchor)):(b=x.anchor,O=ce(w.to(),x.head));var C=c.ranges.slice(0);C[l]=Sa(t,new oo(fe(o,O),b)),Bo(o,so(t,C,l),U)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(e){var n=++g,s=Rr(t,e,!0,"rectangle"==r.unit);if(s)if(0!=se(s,f)){t.curOp.focus=M(),d(s);var a=ei(i,o);(s.line>=a.to||s.linep.bottom?20:0;l&&setTimeout(Mi(t,(function(){g==n&&(i.scroller.scrollTop+=l,v(e))})),50)}}function m(e){t.state.selectingText=!1,g=1/0,e&&(Ot(e),i.input.focus()),vt(i.wrapper.ownerDocument,"mousemove",y),vt(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=Mi(t,(function(t){0!==t.buttons&&_t(t)?v(t):m(t)})),b=Mi(t,m);t.state.selectingText=b,pt(i.wrapper.ownerDocument,"mousemove",y),pt(i.wrapper.ownerDocument,"mouseup",b)}function Sa(t,e){var n=e.anchor,r=e.head,i=Jt(t.doc,n.line);if(0==se(n,r)&&n.sticky==r.sticky)return e;var o=ft(i);if(!o)return e;var s=ut(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l,c=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==c||c==o.length)return e;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=ut(o,r.ch,r.sticky),h=u-s||(r.ch-n.ch)*(1==a.level?-1:1);l=u==c-1||u==c?h<0:h>0}var f=o[c+(l?-1:0)],d=l==(1==f.level),p=d?f.from:f.to,g=d?"after":"before";return n.ch==p&&n.sticky==g?e:new oo(new oe(n.line,p,g),r)}function Pa(t,e,n,r){var i,o;if(e.touches)i=e.touches[0].clientX,o=e.touches[0].clientY;else try{i=e.clientX,o=e.clientY}catch(t){return!1}if(i>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;r&&Ot(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!wt(t,n))return kt(e);o-=a.top-s.viewOffset;for(var l=0;l=i)return mt(t,n,t,ne(t.doc,o),t.display.gutterSpecs[l].className,e),kt(e)}}function _a(t,e){return Pa(t,e,"gutterClick",!0)}function Ta(t,e){Un(t.display,e)||Ea(t,e)||yt(t,e,"contextmenu")||C||t.display.input.onContextMenu(e)}function Ea(t,e){return!!wt(t,"gutterContextMenu")&&Pa(t,e,"gutterContextMenu",!1)}function ja(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),fr(t)}va.prototype.compare=function(t,e,n){return this.time+ga>t&&0==se(e,this.pos)&&n==this.button};var Da={toString:function(){return"CodeMirror.Init"}},Ma={},Aa={};function La(t){var e=t.optionHandlers;function n(n,r,i,o){t.defaults[n]=r,i&&(e[n]=o?function(t,e,n){n!=Da&&i(t,e,n)}:i)}t.defineOption=n,t.Init=Da,n("value","",(function(t,e){return t.setValue(e)}),!0),n("mode",null,(function(t,e){t.doc.modeOption=e,po(t)}),!0),n("indentUnit",2,po,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(t){go(t),fr(t),Zr(t)}),!0),n("lineSeparator",null,(function(t,e){if(t.doc.lineSep=e,e){var n=[],r=t.doc.first;t.doc.iter((function(t){for(var i=0;;){var o=t.text.indexOf(e,i);if(-1==o)break;i=o+e.length,n.push(oe(r,o))}r++}));for(var i=n.length-1;i>=0;i--)is(t.doc,e,n[i],oe(n[i].line,n[i].ch+e.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Da&&t.refresh()})),n("specialCharPlaceholder",vn,(function(t){return t.refresh()}),!0),n("electricChars",!0),n("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(t,e){return t.getInputField().spellcheck=e}),!0),n("autocorrect",!1,(function(t,e){return t.getInputField().autocorrect=e}),!0),n("autocapitalize",!1,(function(t,e){return t.getInputField().autocapitalize=e}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(t){ja(t),Ji(t)}),!0),n("keyMap","default",(function(t,e,n){var r=Ws(e),i=n!=Da&&Ws(n);i&&i.detach&&i.detach(t,r),r.attach&&r.attach(t,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Na,!0),n("gutters",[],(function(t,e){t.display.gutterSpecs=Ki(e,t.options.lineNumbers),Ji(t)}),!0),n("fixedGutter",!0,(function(t,e){t.display.gutters.style.left=e?Mr(t.display)+"px":"0",t.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(t){return yi(t)}),!0),n("scrollbarStyle","native",(function(t){xi(t),yi(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(t,e){t.display.gutterSpecs=Ki(t.options.gutters,e),Ji(t)}),!0),n("firstLineNumber",1,Ji,!0),n("lineNumberFormatter",(function(t){return t}),Ji,!0),n("showCursorWhenSelecting",!1,zr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(t,e){"nocursor"==e&&(Xr(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)})),n("screenReaderLabel",null,(function(t,e){e=''===e?null:e,t.display.input.screenReaderLabelChanged(e)})),n("disableInput",!1,(function(t,e){e||t.display.input.reset()}),!0),n("dragDrop",!0,Ra),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zr,!0),n("singleCursorHeightPerLine",!0,zr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,go,!0),n("addModeClass",!1,go,!0),n("pollInterval",100),n("undoDepth",200,(function(t,e){return t.doc.history.undoDepth=e})),n("historyEventDelay",1250),n("viewportMargin",10,(function(t){return t.refresh()}),!0),n("maxHighlightLength",1e4,go,!0),n("moveInputWithCursor",!0,(function(t,e){e||t.display.input.resetPosition()})),n("tabindex",null,(function(t,e){return t.display.input.getField().tabIndex=e||""})),n("autofocus",null),n("direction","ltr",(function(t,e){return t.doc.setDirection(e)}),!0),n("phrases",null)}function Ra(t,e,n){if(!e!=!(n&&n!=Da)){var r=t.display.dragFunctions,i=e?pt:vt;i(t.display.scroller,"dragstart",r.start),i(t.display.scroller,"dragenter",r.enter),i(t.display.scroller,"dragover",r.over),i(t.display.scroller,"dragleave",r.leave),i(t.display.scroller,"drop",r.drop)}}function Na(t){t.options.lineWrapping?(A(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(P(t.display.wrapper,"CodeMirror-wrap"),ln(t)),Lr(t),Zr(t),fr(t),setTimeout((function(){return yi(t)}),100)}function Za(t,e){var n=this;if(!(this instanceof Za))return new Za(t,e);this.options=e=e?Z(e):{},Z(Ma,e,!1);var r=e.value;"string"==typeof r?r=new Cs(r,e.mode,null,e.lineSeparator,e.direction):e.mode&&(r.modeOption=e.mode),this.doc=r;var i=new Za.inputStyles[e.inputStyle](this),o=this.display=new Xi(t,r,i,e);for(var c in o.wrapper.CodeMirror=this,ja(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),xi(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},e.autofocus&&!m&&o.input.focus(),s&&a<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Ia(this),Ds(),Ci(this),this.curOp.forceUpdate=!0,bo(this,r),e.autofocus&&!m||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Jr(n)}),20):Xr(this),Aa)Aa.hasOwnProperty(c)&&Aa[c](this,e[c],Da);Gi(this),e.finishInit&&e.finishInit(this);for(var u=0;u400}pt(e.scroller,"touchstart",(function(i){if(!yt(t,i)&&!o(i)&&!_a(t,i)){e.input.ensurePolled(),clearTimeout(n);var s=+new Date;e.activeTouch={start:s,moved:!1,prev:s-r.end<=300?r:null},1==i.touches.length&&(e.activeTouch.left=i.touches[0].pageX,e.activeTouch.top=i.touches[0].pageY)}})),pt(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),pt(e.scroller,"touchend",(function(n){var r=e.activeTouch;if(r&&!Un(e,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,s=t.coordsChar(e.activeTouch,"page");o=!r.prev||l(r,r.prev)?new oo(s,s):!r.prev.prev||l(r,r.prev.prev)?t.findWordAt(s):new oo(oe(s.line,0),fe(t.doc,oe(s.line+1,0))),t.setSelection(o.anchor,o.head),t.focus(),Ot(n)}i()})),pt(e.scroller,"touchcancel",i),pt(e.scroller,"scroll",(function(){e.scroller.clientHeight&&(fi(t,e.scroller.scrollTop),pi(t,e.scroller.scrollLeft,!0),mt(t,"scroll",t))})),pt(e.scroller,"mousewheel",(function(e){return ro(t,e)})),pt(e.scroller,"DOMMouseScroll",(function(e){return ro(t,e)})),pt(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(e){yt(t,e)||St(e)},over:function(e){yt(t,e)||(_s(t,e),St(e))},start:function(e){return Ps(t,e)},drop:Mi(t,Ss),leave:function(e){yt(t,e)||Ts(t)}};var c=e.input.getField();pt(c,"keyup",(function(e){return ha.call(t,e)})),pt(c,"keydown",Mi(t,ca)),pt(c,"keypress",Mi(t,fa)),pt(c,"focus",(function(e){return Jr(t,e)})),pt(c,"blur",(function(e){return Xr(t,e)}))}Za.defaults=Ma,Za.optionHandlers=Aa;var Fa=[];function Va(t,e,n,r){var i,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=be(t,e).state:n="prev");var s=t.options.tabSize,a=Jt(o,e),l=I(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(r||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(i,a.text.slice(u.length),a.text))==B||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?I(Jt(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var h="",f=0;if(t.options.indentWithTabs)for(var d=Math.floor(c/s);d;--d)f+=s,h+="\t";if(fs,l=Lt(e),c=null;if(a&&r.ranges.length>1)if(Ha&&Ha.text.join("\n")==e){if(r.ranges.length%Ha.text.length==0){c=[];for(var u=0;u=0;f--){var d=r.ranges[f],p=d.from(),g=d.to();d.empty()&&(n&&n>0?p=oe(p.line,p.ch-n):t.state.overwrite&&!a?g=oe(g.line,Math.min(Jt(o,g.line).text.length,g.ch+K(l).length)):a&&Ha&&Ha.lineWise&&Ha.text.join("\n")==l.join("\n")&&(p=g=oe(p.line,0)));var v={from:p,to:g,text:c?c[f%c.length]:l,origin:i||(a?"paste":t.state.cutIncoming>s?"cut":"+input")};Xo(t.doc,v),En(t,"inputRead",t,v)}e&&!a&&Wa(t,e),ai(t),t.curOp.updateInput<2&&(t.curOp.updateInput=h),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Ua(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||Di(e,(function(){return za(e,n,0,null,"paste")})),!0}function Wa(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=t.getModeAt(i.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Va(t,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Jt(t.doc,i.head.line).text.slice(0,i.head.ch))&&(s=Va(t,i.head.line,"smart"));s&&En(t,"electricInput",t,i.head.line)}}}function $a(t){for(var e=[],n=[],r=0;rn&&(Va(this,i.head.line,t,!0),n=i.head.line,r==this.doc.sel.primIndex&&ai(this));else{var o=i.from(),s=i.to(),a=Math.max(n,o.line);n=Math.min(this.lastLine(),s.line-(s.ch?0:1))+1;for(var l=a;l0&&Io(this.doc,r,new oo(o,c[r].to()),z)}}})),getTokenAt:function(t,e){return ke(this,t,e)},getLineTokens:function(t,e){return ke(this,oe(t),e,!0)},getTokenTypeAt:function(t){t=fe(this.doc,t);var e,n=ye(this,Jt(this.doc,t.line)),r=0,i=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=r+i>>1;if((s?n[2*s-1]:0)>=o)i=s;else{if(!(n[2*s+1]o&&(t=o,i=!0),r=Jt(this.doc,t)}else r=t;return vr(this,r,{top:0,left:0},e||"page",n||i).top+(i?this.doc.height-sn(r):0)},defaultTextHeight:function(){return Er(this.display)},defaultCharWidth:function(){return jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,r,i){var o=this.display,s=(t=br(this,fe(this.doc,t))).bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==r)s=t.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);('above'==r||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==i?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&ii(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:Ai(ca),triggerOnKeyPress:Ai(fa),triggerOnKeyUp:ha,triggerOnMouseDown:Ai(ya),execCommand:function(t){if(Js.hasOwnProperty(t))return Js[t].call(null,this)},triggerElectric:Ai((function(t){Wa(this,t)})),findPosH:function(t,e,n,r){var i=1;e<0&&(i=-1,e=-e);for(var o=fe(this.doc,t),s=0;s0&&s(e.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Lr(this),mt(this,"refresh",this)})),swapDoc:Ai((function(t){var e=this.doc;return e.cm=null,this.state.selectingText&&this.state.selectingText(),bo(this,t),fr(this),this.display.input.reset(),li(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,En(this,"swapDoc",this,e),e})),phrase:function(t){var e=this.options.phrases;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},xt(t),t.registerHelper=function(e,r,i){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][r]=i},t.registerGlobalHelper=function(e,r,i,o){t.registerHelper(e,r,o),n[e]._global.push({pred:i,val:o})}}function Ya(t,e,n,r,i){var o=e,s=n,a=Jt(t,e.line),l=i&&"rtl"==t.direction?-n:n;function c(){var n=e.line+l;return!(n=t.first+t.size)&&(e=new oe(n,e.ch,e.sticky),a=Jt(t,n))}function u(o){var s;if("codepoint"==r){var u=a.text.charCodeAt(e.ch+(n>0?0:-1));if(isNaN(u))s=null;else{var h=n>0?u>=55296&&u<56320:u>=56320&&u<57343;s=new oe(e.line,Math.max(0,Math.min(a.text.length,e.ch+n*(h?2:1))),-n)}}else s=i?Ys(t.cm,a,e,n):Gs(a,e,n);if(null==s){if(o||!c())return!1;e=Ks(i,t.cm,a,e.line,l)}else e=s;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var h=null,f="group"==r,d=t.cm&&t.cm.getHelper(e,"wordChars"),p=!0;!(n<0)||u(!p);p=!1){var g=a.text.charAt(e.ch)||"\n",v=nt(g,d)?"w":f&&"\n"==g?"n":!f||/\s/.test(g)?null:"p";if(!f||p||v||(v="s"),h&&h!=v){n<0&&(n=1,u(),e.sticky="after");break}if(v&&(h=v),n>0&&!u(!p))break}var m=Go(t,e,o,s,!0);return ae(o,m)&&(m.hitSide=!0),m}function Ja(t,e,n,r){var i,o,s=t.doc,a=e.left;if("page"==r){var l=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Er(t.display),3);i=(n>0?e.bottom:e.top)+n*c}else"line"==r&&(i=n>0?e.bottom+3:e.top-3);for(;(o=Or(t,a,i)).outside;){if(n<0?i<=0:i>=s.height){o.hitSide=!0;break}i+=5*n}return o}var Xa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qa(t,e){var n=er(t,e.line);if(!n||n.hidden)return null;var r=Jt(t.doc,e.line),i=Xn(n,r,e.line),o=ft(r,t.doc.direction),s="left";o&&(s=ut(o,e.ch)%2?"right":"left");var a=sr(i.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function tl(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function el(t,e){return e&&(t.bad=!0),t}function nl(t,e,n,r,i){var o="",s=!1,a=t.doc.lineSeparator(),l=!1;function c(t){return function(e){return e.id==t}}function u(){s&&(o+=a,l&&(o+=a),s=l=!1)}function h(t){t&&(u(),o+=t)}function f(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(n)return void h(n);var o,d=e.getAttribute("cm-marker");if(d){var p=t.findMarks(oe(r,0),oe(i+1,0),c(+d));return void(p.length&&(o=p[0].find(0))&&h(Xt(t.doc,o.from,o.to).join(a)))}if("false"==e.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;g&&u();for(var v=0;v=e.display.viewTo||o.line=e.display.viewFrom&&Qa(e,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(s=oe(s.line-1,Jt(r.doc,s.line-1).length)),a.ch==Jt(r.doc,a.line).text.length&&a.linei.viewTo-1)return!1;s.line==i.viewFrom||0==(t=Nr(r,s.line))?(e=ee(i.view[0].line),n=i.view[0].node):(e=ee(i.view[t].line),n=i.view[t-1].node.nextSibling);var l,c,u=Nr(r,a.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ee(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var h=r.doc.splitLines(nl(r,n,c,e,l)),f=Xt(r.doc,oe(e,0),oe(l,Jt(r.doc,l).text.length));h.length>1&&f.length>1;)if(K(h)==K(f))h.pop(),f.pop(),l--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),e++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);ds.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(d).replace(/\u200b+$/,"");var x=oe(e,d),O=oe(l,f.length?K(f).length-p:0);return h.length>1||h[0]||se(x,O)?(is(r.doc,h,x,O,"+input"),!0):void 0},Xa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Xa.prototype.reset=function(){this.forceCompositionEnd()},Xa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Xa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()}),80))},Xa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||Di(this.cm,(function(){return Zr(t.cm)}))},Xa.prototype.setUneditable=function(t){t.contentEditable="false"},Xa.prototype.onKeyPress=function(t){0==t.charCode||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Mi(this.cm,za)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Xa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Xa.prototype.onContextMenu=function(){},Xa.prototype.resetPosition=function(){},Xa.prototype.needsContentAttribute=!0;var ol=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};function sl(t,e){if((e=e?Z(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var n=M();e.autofocus=n==t||null!=t.getAttribute("autofocus")&&n==document.body}function r(){t.value=a.getValue()}var i;if(t.form&&(pt(t.form,"submit",r),!e.leaveSubmitMethodAlone)){var o=t.form;i=o.submit;try{var s=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=s}}catch(t){}}e.finishInit=function(n){n.save=r,n.getTextArea=function(){return t},n.toTextArea=function(){n.toTextArea=isNaN,r(),t.parentNode.removeChild(n.getWrapperElement()),t.style.display="",t.form&&(vt(t.form,"submit",r),e.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var a=Za((function(e){return t.parentNode.insertBefore(e,t.nextSibling)}),e);return a}function al(t){t.off=vt,t.on=pt,t.wheelEventPixels=no,t.Doc=Cs,t.splitLines=Lt,t.countColumn=I,t.findColumn=$,t.isWordChar=et,t.Pass=B,t.signal=mt,t.Line=cn,t.changeEnd=lo,t.scrollbarModel=wi,t.Pos=oe,t.cmpPos=se,t.modes=Ft,t.mimeModes=Vt,t.resolveMode=zt,t.getMode=Ut,t.modeExtensions=Wt,t.extendMode=$t,t.copyState=qt,t.startState=Kt,t.innerMode=Gt,t.commands=Js,t.keyMap=Is,t.keyName=Us,t.isModifierKey=Bs,t.lookupKey=Hs,t.normalizeKeyMap=Vs,t.StringStream=Yt,t.SharedTextMarker=ms,t.TextMarker=gs,t.LineWidget=hs,t.e_preventDefault=Ot,t.e_stopPropagation=Ct,t.e_stop=St,t.addClass=A,t.contains=D,t.rmClass=P,t.keyNames=Ls}ol.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(t){if(!yt(r,t)){if(r.somethingSelected())Ba({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=$a(r);Ba({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,z):(n.prevInput="",i.value=e.text.join("\n"),R(i))}"cut"==t.type&&(r.state.cutIncoming=+new Date)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),g&&(i.style.width="0px"),pt(i,"input",(function(){s&&a>=9&&e.hasSelection&&(e.hasSelection=null),n.poll()})),pt(i,"paste",(function(t){yt(r,t)||Ua(t,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pt(i,"cut",o),pt(i,"copy",o),pt(t.scroller,"paste",(function(e){if(!Un(t,e)&&!yt(r,e)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=e.clipboardData,i.dispatchEvent(o)}})),pt(t.lineSpace,"selectstart",(function(e){Un(t,e)||Ot(e)})),pt(i,"compositionstart",(function(){var t=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pt(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},ol.prototype.createField=function(t){this.wrapper=Ga(),this.textarea=this.wrapper.firstChild},ol.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute('aria-label',t):this.textarea.removeAttribute('aria-label')},ol.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,r=Ur(t);if(t.options.moveInputWithCursor){var i=br(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,i.top+s.top-o.top)),r.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,i.left+s.left-o.left))}return r},ol.prototype.showSelection=function(t){var e=this.cm.display;T(e.cursorDiv,t.cursors),T(e.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},ol.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&R(this.textarea),s&&a>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",s&&a>=9&&(this.hasSelection=null))}},ol.prototype.getField=function(){return this.textarea},ol.prototype.supportsTouch=function(){return!1},ol.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||M()!=this.textarea))try{this.textarea.focus()}catch(t){}},ol.prototype.blur=function(){this.textarea.blur()},ol.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ol.prototype.receivedFocus=function(){this.slowPoll()},ol.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){t.poll(),t.cm.state.focused&&t.slowPoll()}))},ol.prototype.fastPoll=function(){var t=!1,e=this;function n(){e.poll()||t?(e.pollingFast=!1,e.slowPoll()):(t=!0,e.polling.set(60,n))}e.pollingFast=!0,e.polling.set(20,n)},ol.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||Rt(n)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var i=n.value;if(i==r&&!e.somethingSelected())return!1;if(s&&a>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=i,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ol.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ol.prototype.onKeyPress=function(){s&&a>=9&&(this.hasSelection=null),this.fastPoll()},ol.prototype.onContextMenu=function(t){var e=this,n=e.cm,r=n.display,i=e.textarea;e.contextMenuPending&&e.contextMenuPending();var o=Rr(n,t),c=r.scroller.scrollTop;if(o&&!h){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Mi(n,Bo)(n.doc,ao(o),z);var u,f=i.style.cssText,d=e.wrapper.style.cssText,p=e.wrapper.offsetParent.getBoundingClientRect();if(e.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-p.top-5)+"px; left: "+(t.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(s?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=e.prevInput=" "),e.contextMenuPending=m,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),s&&a>=9&&v(),C){St(t);var g=function(){vt(window,"mouseup",g),setTimeout(m,20)};pt(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var t=n.somethingSelected(),o="​"+(t?i.value:"");i.value="⇚",i.value=o,e.prevInput=t?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function m(){if(e.contextMenuPending==m&&(e.contextMenuPending=!1,e.wrapper.style.cssText=d,i.style.cssText=f,s&&a<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!s||s&&a<9)&&v();var t=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==e.prevInput?Mi(n,Yo)(n):t++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},ol.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t,this.textarea.readOnly=!!t},ol.prototype.setUneditable=function(){},ol.prototype.needsContentAttribute=!1,La(Za),Ka(Za);var ll="iter insert remove copy getEditor constructor".split(" ");for(var cl in Cs.prototype)Cs.prototype.hasOwnProperty(cl)&&V(ll,cl)<0&&(Za.prototype[cl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Cs.prototype[cl]));return xt(Cs),Za.inputStyles={textarea:ol,contenteditable:Xa},Za.defineMode=function(t){Za.defaults.mode||"null"==t||(Za.defaults.mode=t),Ht.apply(this,arguments)},Za.defineMIME=Bt,Za.defineMode("null",(function(){return{token:function(t){return t.skipToEnd()}}})),Za.defineMIME("text/plain","null"),Za.defineExtension=function(t,e){Za.prototype[t]=e},Za.defineDocExtension=function(t,e){Cs.prototype[t]=e},Za.fromTextArea=sl,al(Za),Za.version="5.63.0",Za}()},6629:(t,e,n)=>{!function(t){"use strict";function e(t){for(var e={},n=0;n*\/]/.test(n)?O(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?O("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?O(null,n):t.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(t.current())&&(e.tokenize=S),O("variable callee","variable")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),O("property","word")):O(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),O("number","unit")):t.match(/^-[\w\\\-]*/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?O("variable-2","variable-definition"):O("variable-2","variable")):t.match(/^\w+-/)?O("meta","meta"):void 0}function k(t){return function(e,n){for(var r,i=!1;null!=(r=e.next());){if(r==t&&!i){")"==t&&e.backUp(1);break}i=!i&&"\\"==r}return(r==t||!i&&")"!=t)&&(n.tokenize=null),O("string","string")}}function S(t,e){return t.next(),t.match(/^\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=k(")"),O(null,"(")}function P(t,e,n){this.type=t,this.indent=e,this.prev=n}function _(t,e,n,r){return t.context=new P(n,e.indentation()+(!1===r?0:s),t.context),n}function T(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function E(t,e,n){return M[n.context.type](t,e,n)}function j(t,e,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(t,e,n)}function D(t){var e=t.current().toLowerCase();o=m.hasOwnProperty(e)?"atom":v.hasOwnProperty(e)?"keyword":"variable"}var M={top:function(t,e,n){if("{"==t)return _(n,e,"block");if("}"==t&&n.context.prev)return T(n);if(w&&/@component/i.test(t))return _(n,e,"atComponentBlock");if(/^@(-moz-)?document$/i.test(t))return _(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(t))return _(n,e,"atBlock");if(/^@(font-face|counter-style)/i.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return _(n,e,"at");if("hash"==t)o="builtin";else if("word"==t)o="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return _(n,e,"interpolation");if(":"==t)return"pseudo";if(y&&"("==t)return _(n,e,"parens")}return n.context.type},block:function(t,e,n){if("word"==t){var r=e.current().toLowerCase();return f.hasOwnProperty(r)?(o="property","maybeprop"):d.hasOwnProperty(r)?(o=x?"string-2":"property","maybeprop"):y?(o=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==t?"block":y||"hash"!=t&&"qualifier"!=t?M.top(t,e,n):(o="error","block")},maybeprop:function(t,e,n){return":"==t?_(n,e,"prop"):E(t,e,n)},prop:function(t,e,n){if(";"==t)return T(n);if("{"==t&&y)return _(n,e,"propBlock");if("}"==t||"{"==t)return j(t,e,n);if("("==t)return _(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)D(e);else if("interpolation"==t)return _(n,e,"interpolation")}else o+=" error";return"prop"},propBlock:function(t,e,n){return"}"==t?T(n):"word"==t?(o="property","maybeprop"):n.context.type},parens:function(t,e,n){return"{"==t||"}"==t?j(t,e,n):")"==t?T(n):"("==t?_(n,e,"parens"):"interpolation"==t?_(n,e,"interpolation"):("word"==t&&D(e),"parens")},pseudo:function(t,e,n){return"meta"==t?"pseudo":"word"==t?(o="variable-3",n.context.type):E(t,e,n)},documentTypes:function(t,e,n){return"word"==t&&l.hasOwnProperty(e.current())?(o="tag",n.context.type):M.atBlock(t,e,n)},atBlock:function(t,e,n){if("("==t)return _(n,e,"atBlock_parens");if("}"==t||";"==t)return j(t,e,n);if("{"==t)return T(n)&&_(n,e,y?"block":"top");if("interpolation"==t)return _(n,e,"interpolation");if("word"==t){var r=e.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":h.hasOwnProperty(r)?"keyword":f.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?x?"string-2":"property":m.hasOwnProperty(r)?"atom":v.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(t,e,n){return"}"==t?j(t,e,n):"{"==t?T(n)&&_(n,e,y?"block":"top",!1):("word"==t&&(o="error"),n.context.type)},atBlock_parens:function(t,e,n){return")"==t?T(n):"{"==t||"}"==t?j(t,e,n,2):M.atBlock(t,e,n)},restricted_atBlock_before:function(t,e,n){return"{"==t?_(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(t,e,n)},restricted_atBlock:function(t,e,n){return"}"==t?(n.stateArg=null,T(n)):"word"==t?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(t,e,n){return"word"==t?(o="variable","keyframes"):"{"==t?_(n,e,"top"):E(t,e,n)},at:function(t,e,n){return";"==t?T(n):"{"==t||"}"==t?j(t,e,n):("word"==t?o="tag":"hash"==t&&(o="builtin"),"at")},interpolation:function(t,e,n){return"}"==t?T(n):"{"==t||";"==t?j(t,e,n):("word"==t?o="variable":"variable"!=t&&"("!=t&&")"!=t&&(o="error"),"interpolation")}};return{startState:function(t){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new P(r?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||C)(t,e);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(e.state=M[e.state](i,t,e)),o},indent:function(t,e){var n=t.context,r=e&&e.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-s)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=e(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=e(i),s=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],a=e(s),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=e(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],h=e(u),f=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(f),p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=e(y),w=n.concat(i).concat(s).concat(l).concat(u).concat(f).concat(v).concat(y);function x(t,e){for(var n,r=!1;null!=(n=t.next());){if(r&&"/"==n){e.tokenize=null;break}r="*"==n}return["comment","comment"]}t.registerHelper("hintWords","css",w),t.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=x,x(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=x,x(t,e)):["operator","operator"]},":":function(t){return!!t.match(/^\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:a,mediaValueKeywords:c,propertyKeywords:h,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=x,x(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:a,propertyKeywords:h,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=x,x(t,e))}},name:"css",helperType:"gss"})}(n(4631))},6531:(t,e,n)=>{!function(t){"use strict";var e={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(t,e,n){var r=t.current(),i=r.search(e);return i>-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}var r={};function i(t){var e=r[t];return e||(r[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(t,e){var n=t.match(i(e));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function s(t,e){return new RegExp((e?"^":"")+"","i")}function a(t,e){for(var n in t)for(var r=e[n]||(e[n]=[]),i=t[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(t,e){for(var n=0;n=0;f--)c.script.unshift(["type",h[f].matches,h[f].mode]);function d(e,i){var a,u=o.token(e,i.htmlState),h=/\btag\b/.test(u);if(h&&!/[<>\s\/]/.test(e.current())&&(a=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(a))i.inTag=a+" ";else if(i.inTag&&h&&/>$/.test(e.current())){var f=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var p=">"==e.current()&&l(c[f[1]],f[2]),g=t.getMode(r,p),v=s(f[1],!0),m=s(f[1],!1);i.token=function(t,e){return t.match(v,!1)?(e.token=d,e.localState=e.localMode=null,null):n(t,m,e.localMode.token(t,e.localState))},i.localMode=g,i.localState=t.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=e.current(),e.eol()&&(i.inTag+=" "));return u}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(o)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(o,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?o.indent(e.htmlState,n,r):e.localMode.indent?e.localMode.indent(e.localState,n,r):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||o}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(4631),n(9589),n(6876),n(6629))},6876:(t,e,n)=>{!function(t){"use strict";t.defineMode("javascript",(function(e,n){var r,i,o=e.indentUnit,s=n.statementIndent,a=n.jsonld,l=n.json||a,c=!1!==n.trackScope,u=n.typescript,h=n.wordCharacters||/[\w$\xa1-\uffff]/,f=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"),s={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:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:r,export:t("export"),import:t("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(t){for(var e,n=!1,r=!1;null!=(e=t.next());){if(!n){if("/"==e&&!r)return;"["==e?r=!0:r&&"]"==e&&(r=!1)}n=!n&&"\\"==e}}function v(t,e,n){return r=t,i=n,e}function m(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=y(n),e.tokenize(t,e);if("."==n&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return v("number","number");if("."==n&&t.match(".."))return v("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return v(n);if("="==n&&t.eat(">"))return v("=>","operator");if("0"==n&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return v("number","number");if(/\d/.test(n))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),v("number","number");if("/"==n)return t.eat("*")?(e.tokenize=b,b(t,e)):t.eat("/")?(t.skipToEnd(),v("comment","comment")):ie(t,e,1)?(g(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),v("regexp","string-2")):(t.eat("="),v("operator","operator",t.current()));if("`"==n)return e.tokenize=w,w(t,e);if("#"==n&&"!"==t.peek())return t.skipToEnd(),v("meta","meta");if("#"==n&&t.eatWhile(h))return v("variable","property");if("<"==n&&t.match("!--")||"-"==n&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),v("comment","comment");if(d.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-|&?]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),"?"==n&&t.eat(".")?v("."):v("operator","operator",t.current());if(h.test(n)){t.eatWhile(h);var r=t.current();if("."!=e.lastType){if(f.propertyIsEnumerable(r)){var i=f[r];return v(i.type,i.style,r)}if("async"==r&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return v("async","keyword",r)}return v("variable","variable",r)}}function y(t){return function(e,n){var r,i=!1;if(a&&"@"==e.peek()&&e.match(p))return n.tokenize=m,v("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=m),v("string","string")}}function b(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=m;break}r="*"==n}return v("comment","comment")}function w(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=m;break}r=!r&&"\\"==n}return v("quasi","string-2",t.current())}var x="([{}])";function O(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));r&&(n=r.index)}for(var i=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=x.indexOf(a);if(l>=0&&l<3){if(!i){++s;break}if(0==--i){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(h.test(a))o=!0;else if(/["'\/`]/.test(a))for(;;--s){if(0==s)return;if(t.string.charAt(s-1)==a&&"\\"!=t.string.charAt(s-2)){s--;break}}else if(o&&!i){++s;break}}o&&!i&&(e.fatArrowAt=s)}}var C={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function k(t,e,n,r,i,o){this.indented=t,this.column=e,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(t,e){if(!c)return!1;for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var r=t.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==e)return!0}function P(t,e,n,r,i){var o=t.cc;for(_.state=t,_.stream=i,_.marked=null,_.cc=o,_.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;)if((o.length?o.pop():l?W:z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&S(t,r)?"variable-2":e}}var _={state:null,column:null,marked:null,cc:null};function T(){for(var t=arguments.length-1;t>=0;t--)_.cc.push(arguments[t])}function E(){return T.apply(null,arguments),!0}function j(t,e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}function D(t){var e=_.state;if(_.marked="def",c){if(e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=M(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new R(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new R(t,e.globalVars))}}function M(t,e){if(e){if(e.block){var n=M(t,e.prev);return n?n==e.prev?e:new L(n,e.vars,!0):null}return j(t,e.vars)?e:new L(e.prev,new R(t,e.vars),!1)}return null}function A(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function L(t,e,n){this.prev=t,this.vars=e,this.block=n}function R(t,e){this.name=t,this.next=e}var N=new R("this",new R("arguments",null));function Z(){_.state.context=new L(_.state.context,_.state.localVars,!1),_.state.localVars=N}function I(){_.state.context=new L(_.state.context,_.state.localVars,!0),_.state.localVars=null}function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function V(t,e){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new k(r,_.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function H(){var t=_.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function B(t){function e(n){return n==t?E():";"==t||"}"==n||")"==n||"]"==n?T():E(e)}return e}function z(t,e){return"var"==t?E(V("vardef",e),Tt,B(";"),H):"keyword a"==t?E(V("form"),q,z,H):"keyword b"==t?E(V("form"),z,H):"keyword d"==t?_.stream.match(/^\s*$/,!1)?E():E(V("stat"),K,B(";"),H):"debugger"==t?E(B(";")):"{"==t?E(V("}"),I,ft,H,F):";"==t?E():"if"==t?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==H&&_.state.cc.pop()(),E(V("form"),q,z,H,Lt)):"function"==t?E(It):"for"==t?E(V("form"),I,Rt,z,F,H):"class"==t||u&&"interface"==e?(_.marked="keyword",E(V("form","class"==t?t:e),zt,H)):"variable"==t?u&&"declare"==e?(_.marked="keyword",E(z)):u&&("module"==e||"enum"==e||"type"==e)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==e?E(ee):"type"==e?E(Vt,B("operator"),mt,B(";")):E(V("form"),Et,B("{"),V("}"),ft,H,H)):u&&"namespace"==e?(_.marked="keyword",E(V("form"),W,z,H)):u&&"abstract"==e?(_.marked="keyword",E(z)):E(V("stat"),ot):"switch"==t?E(V("form"),q,B("{"),V("}","switch"),I,ft,H,H,F):"case"==t?E(W,B(":")):"default"==t?E(B(":")):"catch"==t?E(V("form"),Z,U,z,H,F):"export"==t?E(V("stat"),qt,H):"import"==t?E(V("stat"),Kt,H):"async"==t?E(z):"@"==e?E(W,z):T(V("stat"),W,B(";"),H)}function U(t){if("("==t)return E(Ht,B(")"))}function W(t,e){return G(t,e,!1)}function $(t,e){return G(t,e,!0)}function q(t){return"("!=t?T():E(V(")"),K,B(")"),H)}function G(t,e,n){if(_.state.fatArrowAt==_.stream.start){var r=n?et:tt;if("("==t)return E(Z,V(")"),ut(Ht,")"),H,B("=>"),r,F);if("variable"==t)return T(Z,Et,B("=>"),r,F)}var i=n?J:Y;return C.hasOwnProperty(t)?E(i):"function"==t?E(It,i):"class"==t||u&&"interface"==e?(_.marked="keyword",E(V("form"),Bt,H)):"keyword c"==t||"async"==t?E(n?$:W):"("==t?E(V(")"),K,B(")"),H,i):"operator"==t||"spread"==t?E(n?$:W):"["==t?E(V("]"),te,H,i):"{"==t?ht(at,"}",null,i):"quasi"==t?T(X,i):"new"==t?E(nt(n)):E()}function K(t){return t.match(/[;\}\)\],]/)?T():T(W)}function Y(t,e){return","==t?E(K):J(t,e,!1)}function J(t,e,n){var r=0==n?Y:J,i=0==n?W:$;return"=>"==t?E(Z,n?et:tt,F):"operator"==t?/\+\+|--/.test(e)||u&&"!"==e?E(r):u&&"<"==e&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(V(">"),ut(mt,">"),H,r):"?"==e?E(W,B(":"),i):E(i):"quasi"==t?T(X,r):";"!=t?"("==t?ht($,")","call",r):"."==t?E(st,r):"["==t?E(V("]"),K,B("]"),H,r):u&&"as"==e?(_.marked="keyword",E(mt,r)):"regexp"==t?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),E(i)):void 0:void 0}function X(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(X):E(K,Q)}function Q(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(X)}function tt(t){return O(_.stream,_.state),T("{"==t?z:W)}function et(t){return O(_.stream,_.state),T("{"==t?z:$)}function nt(t){return function(e){return"."==e?E(t?it:rt):"variable"==e&&u?E(St,t?J:Y):T(t?$:W)}}function rt(t,e){if("target"==e)return _.marked="keyword",E(Y)}function it(t,e){if("target"==e)return _.marked="keyword",E(J)}function ot(t){return":"==t?E(H,z):T(Y,B(";"),H)}function st(t){if("variable"==t)return _.marked="property",E()}function at(t,e){return"async"==t?(_.marked="property",E(at)):"variable"==t||"keyword"==_.style?(_.marked="property","get"==e||"set"==e?E(lt):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),E(ct))):"number"==t||"string"==t?(_.marked=a?"property":_.style+" property",E(ct)):"jsonld-keyword"==t?E(ct):u&&A(e)?(_.marked="keyword",E(at)):"["==t?E(W,dt,B("]"),ct):"spread"==t?E($,ct):"*"==e?(_.marked="keyword",E(at)):":"==t?T(ct):void 0;var n}function lt(t){return"variable"!=t?T(ct):(_.marked="property",E(It))}function ct(t){return":"==t?E($):"("==t?T(It):void 0}function ut(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var s=_.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),E((function(n,r){return n==e||r==e?T():T(t)}),r)}return i==e||o==e?E():n&&n.indexOf(";")>-1?T(t):E(B(e))}return function(n,i){return n==e||i==e?E():T(t,r)}}function ht(t,e,n){for(var r=3;r"),mt):"quasi"==t?T(xt,kt):void 0}function yt(t){if("=>"==t)return E(mt)}function bt(t){return t.match(/[\}\)\]]/)?E():","==t||";"==t?E(bt):T(wt,bt)}function wt(t,e){return"variable"==t||"keyword"==_.style?(_.marked="property",E(wt)):"?"==e||"number"==t||"string"==t?E(wt):":"==t?E(mt):"["==t?E(B("variable"),pt,B("]"),wt):"("==t?T(Ft,wt):t.match(/[;\}\)\],]/)?void 0:E()}function xt(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(xt):E(mt,Ot)}function Ot(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(xt)}function Ct(t,e){return"variable"==t&&_.stream.match(/^\s*[?:]/,!1)||"?"==e?E(Ct):":"==t?E(mt):"spread"==t?E(Ct):T(mt)}function kt(t,e){return"<"==e?E(V(">"),ut(mt,">"),H,kt):"|"==e||"."==t||"&"==e?E(mt):"["==t?E(mt,B("]"),kt):"extends"==e||"implements"==e?(_.marked="keyword",E(mt)):"?"==e?E(mt,B(":"),mt):void 0}function St(t,e){if("<"==e)return E(V(">"),ut(mt,">"),H,kt)}function Pt(){return T(mt,_t)}function _t(t,e){if("="==e)return E(mt)}function Tt(t,e){return"enum"==e?(_.marked="keyword",E(ee)):T(Et,dt,Mt,At)}function Et(t,e){return u&&A(e)?(_.marked="keyword",E(Et)):"variable"==t?(D(e),E()):"spread"==t?E(Et):"["==t?ht(Dt,"]"):"{"==t?ht(jt,"}"):void 0}function jt(t,e){return"variable"!=t||_.stream.match(/^\s*:/,!1)?("variable"==t&&(_.marked="property"),"spread"==t?E(Et):"}"==t?T():"["==t?E(W,B(']'),B(':'),jt):E(B(":"),Et,Mt)):(D(e),E(Mt))}function Dt(){return T(Et,Mt)}function Mt(t,e){if("="==e)return E($)}function At(t){if(","==t)return E(Tt)}function Lt(t,e){if("keyword b"==t&&"else"==e)return E(V("form","else"),z,H)}function Rt(t,e){return"await"==e?E(Rt):"("==t?E(V(")"),Nt,H):void 0}function Nt(t){return"var"==t?E(Tt,Zt):"variable"==t?E(Zt):T(Zt)}function Zt(t,e){return")"==t?E():";"==t?E(Zt):"in"==e||"of"==e?(_.marked="keyword",E(W,Zt)):T(W,Zt)}function It(t,e){return"*"==e?(_.marked="keyword",E(It)):"variable"==t?(D(e),E(It)):"("==t?E(Z,V(")"),ut(Ht,")"),H,gt,z,F):u&&"<"==e?E(V(">"),ut(Pt,">"),H,It):void 0}function Ft(t,e){return"*"==e?(_.marked="keyword",E(Ft)):"variable"==t?(D(e),E(Ft)):"("==t?E(Z,V(")"),ut(Ht,")"),H,gt,F):u&&"<"==e?E(V(">"),ut(Pt,">"),H,Ft):void 0}function Vt(t,e){return"keyword"==t||"variable"==t?(_.marked="type",E(Vt)):"<"==e?E(V(">"),ut(Pt,">"),H):void 0}function Ht(t,e){return"@"==e&&E(W,Ht),"spread"==t?E(Ht):u&&A(e)?(_.marked="keyword",E(Ht)):u&&"this"==t?E(dt,Mt):T(Et,dt,Mt)}function Bt(t,e){return"variable"==t?zt(t,e):Ut(t,e)}function zt(t,e){if("variable"==t)return D(e),E(Ut)}function Ut(t,e){return"<"==e?E(V(">"),ut(Pt,">"),H,Ut):"extends"==e||"implements"==e||u&&","==t?("implements"==e&&(_.marked="keyword"),E(u?mt:W,Ut)):"{"==t?E(V("}"),Wt,H):void 0}function Wt(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||u&&A(e))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",E(Wt)):"variable"==t||"keyword"==_.style?(_.marked="property",E($t,Wt)):"number"==t||"string"==t?E($t,Wt):"["==t?E(W,dt,B("]"),$t,Wt):"*"==e?(_.marked="keyword",E(Wt)):u&&"("==t?T(Ft,Wt):";"==t||","==t?E(Wt):"}"==t?E():"@"==e?E(W,Wt):void 0}function $t(t,e){if("!"==e)return E($t);if("?"==e)return E($t);if(":"==t)return E(mt,Mt);if("="==e)return E($);var n=_.state.lexical.prev;return T(n&&"interface"==n.info?Ft:It)}function qt(t,e){return"*"==e?(_.marked="keyword",E(Qt,B(";"))):"default"==e?(_.marked="keyword",E(W,B(";"))):"{"==t?E(ut(Gt,"}"),Qt,B(";")):T(z)}function Gt(t,e){return"as"==e?(_.marked="keyword",E(B("variable"))):"variable"==t?T($,Gt):void 0}function Kt(t){return"string"==t?E():"("==t?T(W):"."==t?T(Y):T(Yt,Jt,Qt)}function Yt(t,e){return"{"==t?ht(Yt,"}"):("variable"==t&&D(e),"*"==e&&(_.marked="keyword"),E(Xt))}function Jt(t){if(","==t)return E(Yt,Jt)}function Xt(t,e){if("as"==e)return _.marked="keyword",E(Yt)}function Qt(t,e){if("from"==e)return _.marked="keyword",E(W)}function te(t){return"]"==t?E():T(ut($,"]"))}function ee(){return T(V("form"),Et,B("{"),V("}"),ut(ne,"}"),H,H)}function ne(){return T(Et,Mt)}function re(t,e){return"operator"==t.lastType||","==t.lastType||d.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ie(t,e,n){return e.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}return F.lex=!0,H.lex=!0,{startState:function(t){var e={tokenize:m,lastType:"sof",cc:[],lexical:new k((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new L(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(),O(t,e)),e.tokenize!=b&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",P(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==b||e.tokenize==w)return t.Pass;if(e.tokenize!=m)return 0;var i,a=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==H)l=l.prev;else if(u!=Lt&&u!=F)break}for(;("stat"==l.type||"form"==l.type)&&("}"==a||(i=e.cc[e.cc.length-1])&&(i==Y||i==J)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;s&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,f=a==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==h&&"{"==a?l.indented:"form"==h?l.indented+o:"stat"==h?l.indented+(re(e,r)?s||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:a,jsonMode:l,expressionAllowed:ie,skipExpression:function(e){P(e,"atom","atom","true",new t.StringStream("",2,null))}}})),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/manifest+json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(4631))},9589:(t,e,n)=>{!function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode("xml",(function(r,i){var o,s,a=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 h(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return"<"==r?t.eat("!")?t.eat("[")?t.match("CDATA[")?n(p("atom","]]>")):null:t.match("--")?n(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(g(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=p("meta","?>"),"meta"):(o=t.eat("/")?"closeTag":"openTag",e.tokenize=f,"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 f(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=h,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){e.tokenize=h,e.state=w,e.tagName=e.tagStart=null;var r=e.tokenize(t,e);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=d(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function d(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=f;break}return"string"};return e.isInAttribute=!0,e}function p(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=h;break}n.next()}return t}}function g(t){return function(e,n){for(var r;null!=(r=e.next());){if("<"==r)return n.tokenize=g(t+1),n.tokenize(e,n);if(">"==r){if(1==t){n.tokenize=h;break}return n.tokenize=g(t-1),n.tokenize(e,n)}}return"meta"}}function v(t){return t&&t.toLowerCase()}function m(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function y(t){t.context&&(t.context=t.context.prev)}function b(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(v(n))||!l.contextGrabbers[v(n)].hasOwnProperty(v(e)))return;y(t)}}function w(t,e,n){return"openTag"==t?(n.tagStart=e.column(),x):"closeTag"==t?O:w}function x(t,e,n){return"word"==t?(n.tagName=e.current(),s="tag",S):l.allowMissingTagName&&"endTag"==t?(s="tag bracket",S(t,e,n)):(s="error",x)}function O(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(v(n.context.tagName))&&y(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(s="tag",C):(s="tag error",k)}return l.allowMissingTagName&&"endTag"==t?(s="tag bracket",C(t,e,n)):(s="error",k)}function C(t,e,n){return"endTag"!=t?(s="error",C):(y(n),w)}function k(t,e,n){return s="error",C(t,e,n)}function S(t,e,n){if("word"==t)return s="attribute",P;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(v(r))?b(n,r):(b(n,r),n.context=new m(n,r,i==n.indented)),w}return s="error",S}function P(t,e,n){return"equals"==t?_:(l.allowMissing||(s="error"),S(t,e,n))}function _(t,e,n){return"string"==t?T:"word"==t&&l.allowUnquoted?(s="string",S):(s="error",S(t,e,n))}function T(t,e,n){return"string"==t?T:S(t,e,n)}return h.isInText=!0,{startState:function(t){var e={tokenize:h,state:w,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;o=null;var n=e.tokenize(t,e);return(n||o)&&"comment"!=n&&(s=null,e.state=e.state(o||n,t,e),s&&(n="error"==s?n+" error":s)),n},indent:function(e,n,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+a;if(i&&i.noIndent)return t.Pass;if(e.tokenize!=f&&e.tokenize!=h)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==l.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+a*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(t){t.state==_&&(t.state=S)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:"closeTag"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(4631))},1030:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Q,evAdd:()=>B,evAll:()=>I,evClose:()=>q,evCustom:()=>W,evOpen:()=>$,evPfx:()=>F,evRemove:()=>z,evRemoveBefore:()=>U,evSelect:()=>V,evUpdate:()=>H,evUpload:()=>G,evUploadEnd:()=>Y,evUploadError:()=>J,evUploadRes:()=>X,evUploadStart:()=>K});var r=n(4942),i=n(9050),o=n(9304);const s={assets:[],noAssets:'',stylePrefix:'am-',upload:0,uploadName:'files',headers:{},params:{},credentials:'include',multiUpload:!0,autoAdd:!0,customFetch:null,uploadFile:null,embedAsBase64:!0,handleAdd:null,beforeUpload:null,showUrlInput:!0,custom:!1,dropzone:!1,openAssetsOnDrop:1,dropzoneContent:''};var a=n(2316),l=n.n(a),c=n(5671),u=n(3144),h=n(9340),f=n(3930),d=n(1120);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var g=function(t){(0,h.Z)(n,t);var e=p(n);function n(){return(0,c.Z)(this,n),e.apply(this,arguments)}return(0,u.Z)(n,[{key:"defaults",value:function(){return{type:'',src:''}}},{key:"getType",value:function(){return this.get('type')}},{key:"getSrc",value:function(){return this.get('src')}},{key:"getFilename",value:function(){return this.get('src').split('/').pop().split('?').shift()}},{key:"getExtension",value:function(){return this.getFilename().split('.').pop()}}]),n}(a.Model);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.className=this.pfx+'asset',this.listenTo(this.model,'destroy remove',this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},__getBhv:function(){var t=this.em,e=t&&t.get('AssetManager');return e&&e.__getBehaviour()||{}},template:function(){var t=this.pfx;return"\n
\n ").concat(this.getPreview(),"\n
\n
\n ").concat(this.getInfo(),"\n
\n
\n ⨯\n
\n ")},updateTarget:function(t){t&&t.set&&(t.set('attributes',(0,i.clone)(t.get('attributes'))),t.set('src',this.model.get('src')))},getPreview:function(){return''},getInfo:function(){return''},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}});var O,C,k=n(1629);const S=x.extend({events:{'click [data-toggle=asset-remove]':'onRemove',click:'onClick',dblclick:'onDblClick'},getPreview:function(){var t=this.pfx,e=this.ppfx,n=this.model.get('src');return(0,k.Z)(O||(O=(0,w.Z)(["\n
\n
\n "])),t,n,t,e)},getInfo:function(){var t=this.pfx,e=this.model,n=e.get('name'),r=e.get('width'),i=e.get('height'),o=e.get('unitDim'),s=r&&i?"".concat(r,"x").concat(i).concat(o):'';return n=n||e.getFilename(),(0,k.Z)(C||(C=(0,w.Z)(["\n
","
\n
","
\n "])),t,n,t,s)},init:function(t){var e=this.pfx;this.className+=" ".concat(e,"asset-image")},onClick:function(){var t=this.model,e=this.pfx,n=this.__getBhv().select,r=this.config.onClick,o=this.collection;o.trigger('deselectAll'),this.$el.addClass(e+'highlight'),(0,i.isFunction)(n)?n(t,!1):(0,i.isFunction)(r)?r(t):this.updateTarget(o.target)},onDblClick:function(){var t=this.em,e=this.model,n=this.__getBhv().select,r=this.config.onDblClick,o=this.collection,s=o.target,a=o.onSelect;(0,i.isFunction)(n)?n(e,!0):(0,i.isFunction)(r)?r(e):(this.updateTarget(s),t&&t.get('Modal').close()),(0,i.isFunction)(a)&&a(e)},onRemove:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}});var P=n(793);const _=l().Collection.extend(P.Z).extend({types:[{id:'image',model:b,view:S,isType:function(t){return'string'==typeof t?{type:'image',src:t}:t}}]});var T=n(4925),E=["pfx","ppfx","em"];const j=l().View.extend({events:{submit:'handleSubmit'},template:function(t){var e=t.pfx,n=t.ppfx,r=t.em,i=((0,T.Z)(t,E),'');return this.config.showUrlInput&&(i="\n
\n
\n \n
\n \n
\n
\n ")),"\n
\n
\n ").concat(i,"\n
\n
\n
\n
\n ")},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.em=this.config.em;var e=this.collection;this.listenTo(e,'reset',this.renderAssets),this.listenTo(e,'add',this.addToAsset),this.listenTo(e,'remove',this.removedAsset),this.listenTo(e,'deselectAll',this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e&&e.value.trim(),r=this.config.handleAdd;n&&(e.value='',this.getAssetsEl().scrollTop=0,r?r.bind(this)(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector(".".concat(this.pfx,"assets"))},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector(".".concat(this.pfx,"add-asset input"))),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.collection,i=this.config,o=new t.typeView({model:t,collection:r,config:i}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find(".".concat(this.pfx,"assets"));if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find(".".concat(t,"highlight")).removeClass("".concat(t,"highlight"))},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find(".".concat(this.pfx,"assets"));n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each((function(n){return t.addAsset(n,e)})),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className="".concat(this.ppfx,"asset-manager"),this.renderAssets(),this}});var D,M=n(9661);function A(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return L(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return L(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n
","
\n \n
\n \n "])),e,n,r,i?'disabled':'',o?'multiple':'')},events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.module=t.module,this.config=e,this.em=this.config.em,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.target=this.options.globalCollection||{},this.uploadId=this.pfx+'uploadFile',this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.multiUpload=void 0===e.multiUpload||e.multiUpload,this.events['change #'+this.uploadId]='uploadFile';var n=e.uploadFile;n?this.uploadFile=n.bind(this):!e.upload&&e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.module;t&&t.__propEv('asset:upload:start')},onUploadEnd:function(t){var e=this.$el,n=this.module;n&&n.__propEv('asset:upload:end',t);var r=e.find('input');r&&r.val('')},onUploadError:function(t){var e=this.module;console.error(t),this.onUploadEnd(t),e&&e.__propEv('asset:upload:error',t)},onUploadResponse:function(t,e){var n,r=this.module,i=this.config,o=this.target;try{n='string'==typeof t?JSON.parse(t):t}catch(e){n=t}r&&r.__propEv('asset:upload:response',n),i.autoAdd&&o&&o.add(n.data,{at:0}),this.onUploadEnd(t),e&&e(n)},uploadFile:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i=this.config,o=i.beforeUpload;if(!1!==(o&&o(r))){var s=new FormData,a=i.params,l=i.customFetch;for(var c in a)s.append(c,a[c]);if(this.multiUpload)for(var u=0;u").concat(r.dropzoneContent,"")),h(),'draggable'in o&&[o,a].forEach((function(t){t.ondragover=f,t.ondragleave=d,t.ondrop=p}))},render:function(){var t=this.$el,e=this.pfx,n=this.em;return t.html(this.template({title:n&&n.t('assetManager.uploadTitle'),uploadId:this.uploadId,disabled:this.disabled,multiUpload:this.multiUpload,pfx:e})),this.initDrop(),t.attr('class',e+'file-uploader'),this}},{embedAsBase64:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i={data:[]};if(FileReader){var o,s=[],a=/^(.+)\/(.+)$/,l=A(r);try{var c=function(){var t=o.value,e=new Promise((function(e,n){var r=new FileReader;r.addEventListener('load',(function(i){var o,s=t.name,l=a.exec(t.type);if('image'===(o=l?l[1]:t.type)){var c={src:r.result,name:s,type:o,height:0,width:0},u=new Image;u.addEventListener('error',(function(t){n(t)})),u.addEventListener('load',(function(){c.height=u.height,c.width=u.width,e(c)})),u.src=c.src}else e(o?{src:r.result,name:s,type:o}:r.result)})),r.addEventListener('error',(function(t){n(t)})),r.addEventListener('abort',(function(t){n('Aborted')})),r.readAsDataURL(t)}));s.push(e)};for(l.s();!(o=l.n()).done;)c()}catch(t){l.e(t)}finally{l.f()}Promise.all(s).then((function(t){i.data=t,n.onUploadResponse(i,e)}),(function(t){n.onUploadError(t)}))}else this.onUploadError(new Error('Unsupported platform, FileReader is not defined'))}});function N(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Z(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=(a=Z(Z({},s),r)).pStylePrefix,o=a,l=o.em;return this.config=a,this.em=l,i&&(a.stylePrefix=i+a.stylePrefix),t=new _([]),e=new _([]),this.all=t,this.__initListen(),t.on('add',(function(t){return n.getAllVisible().add(t)})),t.on('remove',(function(t){return n.getAllVisible().remove(t)})),this},__propEv:function(t){for(var e,n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=this.em.get('Commands');e.run(l,Z({types:['image'],select:function(){}},t))},close:function(){this.em.get('Commands').stop(l)},isOpen:function(){var t=this.em.get('Commands');return!(!t||!t.isActive(l))},add:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===n.at&&(n.at=0),t.add(e,n)},get:function(e){return t.where({src:e})[0]||null},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t,e){return this.__remove(t,e)},store:function(t){var e={},n=JSON.stringify(this.getAll().toJSON());return e[this.storageKey]=n,!t&&a.stm&&a.stm.store(e),e},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if('string'==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return this.__getBehaviour().container||n&&n.el},getAssetsEl:function(){return n.el.querySelector('[data-el=assets]')},render:function(t){if(!this.getConfig('custom')){var r=t||this.getAll().models;if(!n){var i=this.__viewParams();i.fu=this.FileUploader();var o=n&&n.el;(n=new j(Z({el:o},i))).render()}return e.reset(r),this.getContainer()}},__viewParams:function(){return{collection:e,globalCollection:t,config:a,module:this}},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return n},FileUploader:function(){return r||(r=new R(this.__viewParams())),r},onLoad:function(){var t=this;this.getAll().reset(a.assets);var e=this.em,n=this.events;e.on("run:".concat(l),(function(){return t.__propEv(n.open)})),e.on("stop:".concat(l),(function(){return t.__propEv(n.close)}))},postRender:function(t){a.dropzone&&r&&r.initDropzone(t)},setTarget:function(t){e.target=t},onSelect:function(t){e.onSelect=t},onClick:function(t){a.onClick=t},onDblClick:function(t){a.onDblClick=t},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=Z(Z({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},destroy:function(){t.stopListening(),e.stopListening(),t.reset(),e.reset(),r&&r.remove(),n&&n.remove(),[t,e,n,r].forEach((function(t){return null})),this._bhv={},this.all={},a={}}})}},6407:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>U,evAdd:()=>N,evAll:()=>L,evCustom:()=>z,evDrag:()=>V,evDragStart:()=>H,evDragStop:()=>B,evPfx:()=>R,evRemove:()=>I,evRemoveBefore:()=>F,evUpdate:()=>Z});var r=n(4942),i=n(9050),o=n(9304);const s={appendTo:'',appendOnClick:!1,blocks:[],custom:!1};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316),d=n.n(f);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var g=function(t){(0,c.Z)(n,t);var e=p(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{label:'',content:'',media:'',category:'',activate:!1,select:null,resetId:!1,disable:!1,onClick:null,attributes:{}}}},{key:"getId",value:function(){return this.id}},{key:"getLabel",value:function(){return this.get('label')}},{key:"getMedia",value:function(){return this.get('media')}},{key:"getContent",value:function(){return this.get('content')}},{key:"getCategoryLabel",value:function(){var t=this.get('category');return(0,i.isFunction)(t.get)?t.get('label'):t.label?t.label:t}}]),n}(f.Model);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var m=function(t){(0,c.Z)(n,t);var e=v(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Collection);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}m.prototype.model=g;var b=function(t){(0,c.Z)(n,t);var e=y(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{id:'',label:'',open:!0,attributes:{}}}}]),n}(f.Model);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var x=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Collection);x.prototype.model=b;var O=n(6183);const C=d().View.extend({events:{click:'handleClick',mousedown:'startDrag',dragstart:'handleDragStart',drag:'handleDrag',dragend:'handleDragEnd'},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model;this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change',this.render)},__getModule:function(){return this.em.get('BlockManager')},handleClick:function(t){var e=this.config,n=this.model,r=this.em,o=n.get('onClick')||e.appendOnClick;if(r.trigger('block:click',n,t),o){if((0,i.isFunction)(o))return o(n,r.getEditor(),{event:t});var s,a=e.getSorter(),l=n.get('content'),c=r.getSelected();if(a.setDropContent(l),c)if(a.validTarget(c.getEl(),l).valid)s=c;else{var u=c.parent();a.validTarget(u.getEl(),l).valid&&(s=u)}if(!s){var h=r.getWrapper();a.validTarget(h.getEl(),l).valid&&(s=h)}var f=s&&s.append(l)[0];f&&r.setSelected(f,{scroll:1})}},startDrag:function(t){var e=this.config,n=this.em,r=this.model.get('disable');if(0===t.button&&e.getSorter&&!this.el.draggable&&!r){n.refreshCanvas();var i=e.getSorter();i.setDragHelper(this.el,t),i.setDropContent(this.model.get('content')),i.startSort(this.el),(0,O.on)(document,'mouseup',this.endDrag)}},handleDragStart:function(t){this.__getModule().__startDrag(this.model,t)},handleDrag:function(t){this.__getModule().__drag(t)},handleDragEnd:function(){this.__getModule().__endDrag()},endDrag:function(t){(0,O.off)(document,'mouseup',this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.em,e=this.el,n=this.$el,r=this.ppfx,i=this.model,o=i.get('disable'),s=i.get('attributes')||{},a=s.class||'',l="".concat(r,"block"),c=t&&t.t("blockManager.labels.".concat(i.id))||i.get('label'),u=i.get('render'),h=i.get('media'),f=o?"".concat(l,"--disable"):"".concat(r,"four-color-h");n.attr(s),e.className="".concat(a," ").concat(l," ").concat(r,"one-bg ").concat(f).trim(),e.innerHTML="\n ".concat(h?"
").concat(h,"
"):'',"\n
").concat(c,"
\n "),e.title=s.title||e.textContent.trim(),e.setAttribute('draggable',!(!(0,O.hasDnd)(t)||o));var d=u&&u({el:e,model:i,className:l,prefix:r});return d&&(e.innerHTML=d),this}});var k,S=n(168),P=n(1629);function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var T=function(t){(0,c.Z)(n,t);var e=_(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.label;return(0,P.Z)(k||(k=(0,S.Z)(["\n
\n \n ","\n
\n
\n "])),e,e,n,e)}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initialize",value:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t;var e=t.pStylePrefix||'';this.em=t.em,this.pfx=e,this.caretR='fa fa-caret-right',this.caretD='fa fa-caret-down',this.iconClass="".concat(e,"caret-icon"),this.activeClass="".concat(e,"open"),this.className="".concat(e,"block-category"),this.events={},this.events["click .".concat(e,"title")]='toggle',this.listenTo(this.model,'change:open',this.updateVisibility),this.delegateEvents(),this.model.view=this}},{key:"updateVisibility",value:function(){this.model.get('open')?this.open():this.close()}},{key:"open",value:function(){this.$el.addClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretD),this.getBlocksEl().style.display=''}},{key:"close",value:function(){this.$el.removeClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretR),this.getBlocksEl().style.display='none'}},{key:"toggle",value:function(){var t=this.model;t.set('open',!t.get('open'))}},{key:"getIconEl",value:function(){return this.iconEl||(this.iconEl=this.el.querySelector('.'+this.iconClass)),this.iconEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector('.'+this.pfx+'blocks-c')),this.blocksEl}},{key:"append",value:function(t){this.getBlocksEl().appendChild(t)}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.pfx,o=t.t("blockManager.categories.".concat(r.id))||r.get('label');return e.innerHTML=this.template({pfx:i,label:o}),n.addClass(this.className),n.css({order:r.get('order')}),this.updateVisibility(),this}}]),n}(f.View);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=j(j({},this.config),t)},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get('Utils'),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:'a',wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger('block:drag:start',t)},onMove:function(t){this.em.trigger('block:drag:move',t)},onDrop:function(t){var e=this.em;if(e.runDefault(),t&&t.get){var n='activeOnRender';t.get(n)&&(t.trigger('active'),t.unset(n)),e.trigger('block:drag:stop',t)}},addTo:function(t){this.add(t)},add:function(t,e){var n=this.config,r=e||null,o=new C({model:t,attributes:t.get('attributes')},n).render().el,s=t.get('category');if(s&&this.categories&&!n.ignoreCategories){(0,i.isString)(s)?s={id:s,label:s}:(0,i.isObject)(s)&&!s.id&&(s.id=s.label);var a=this.categories.add(s),l=a.get('id'),c=this.renderedCategories[l],u=this.getCategoriesEl();return t.set('category',a,{silent:!0}),!c&&u&&(c=new T({model:a},this.config).render(),this.renderedCategories[l]=c,u.appendChild(c.el)),void(c&&c.append(o))}r?r.appendChild(o):this.append(o)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector(".".concat(this.catsClass))),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector(".".concat(this.noCatClass," .").concat(this.blockContClass))),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=this.ppfx,n=document.createDocumentFragment();this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML="\n
\n
\n
\n
\n "),this.collection.each((function(e){return t.add(e,n)})),this.append(n);var r="".concat(this.blockContClass,"s ").concat(e,"one-bg ").concat(e,"two-color");return this.$el.addClass(r),this.rendered=!0,this}});function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=r=A(A({},s),n),o=i.em;return this.em=o,t=new m(r.blocks),e=new m(t.models),a=new x,this.all=t,this.__initListen(),t.on('add',(function(t){return e.add(t)})),t.on('remove',(function(t){return e.remove(t)})),t.on('reset',(function(t){return e.reset(t.models)})),this},__trgCustom:function(){this.em.trigger(this.events.custom,this.__customData())},__customData:function(){var t=this,e=this.__getBehaviour();return{bm:this,blocks:this.getAll().models,container:e.container,dragStart:function(e,n){return t.startDrag(e,n)},drag:function(e){return t.__drag(e)},dragStop:function(e){return t.endDrag(e)}}},__startDrag:function(e,n){var r=this.em,i=this.events,o=e.getContent?e.getContent():e;this._dragBlock=e,r.set({dragResult:null,dragContent:o}),[r,t].map((function(t){return t.trigger(i.dragStart,e,n)}))},__drag:function(e){var n=this.em,r=this.events,i=this._dragBlock;[n,t].map((function(t){return t.trigger(r.drag,i,e)}))},__endDrag:function(){var e=this.em,n=this.events,r=this._dragBlock,o=e.get('dragResult');if(this._dragBlock=null,o){var s='activeOnRender',a=o.get&&o.get(s),l=r.get('activate')||a,c=r.get('select'),u=(0,i.isArray)(o)?o[0]:o;(c||l&&!1!==c)&&e.setSelected(u),l&&(u.trigger('active'),a&&u.unset(s)),r.get('resetId')&&u.onAll((function(t){return t.resetId()}))}e.set({dragResult:null,dragContent:null}),[e,t].map((function(t){return t.trigger(n.dragEnd,o,r)}))},__getFrameViews:function(){return this.em.get('Canvas').getFrames().map((function(t){return t.view}))},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=A(A({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},startDrag:function(t,e){this.__startDrag(t,e),this.__getFrameViews().forEach((function(t){return t.droppable.startCustom()}))},endDrag:function(t){this.__getFrameViews().forEach((function(e){return e.droppable.endCustom(t)})),this.__endDrag()},getConfig:function(){return r},postRender:function(){n=new D({collection:e,categories:a},r);var t=this.getConfig().appendTo;if(t){var o=(0,i.isElement)(t)?t:document.querySelector(t);if(!o)return this.__logWarn('"appendTo" element not found');o.appendChild(this.render(e.models))}this.__trgCustom()},add:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n||{};return i.id=e,t.add(i,r)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getCategories:function(){return a},getContainer:function(){return n.el},render:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t||this.getAll().models;if(e.external){var o=new m(i);return new D({collection:o,categories:a},A(A({},r),e)).render().el}return n&&(n.updateConfig(e),n.collection.reset(i),n.rendered||(n.render(),n.rendered=1)),this.getContainer()},destroy:function(){var i=[t,e,a];i.map((function(t){return t.stopListening()})),i.map((function(t){return t.reset()})),n&&n.remove(),r={},t={},e={},n={},a=[],this.all={}}})}},6950:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>F});var r=n(2982),i=n(4942),o=n(9050),s=n(6183);const a={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,extHl:0,notTextable:['button','a','input[type=checkbox]','input[type=radio]']};var l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(2316),p=n.n(d),g=n(2567),v=n(9065);function m(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var y=function(t){(0,u.Z)(n,t);var e=m(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frame:'',frames:'',rulers:!1,zoom:100,x:0,y:0,scripts:[],styles:[]}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.em;this.config=e,this.em=n,this.set('frames',new v.Z),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(n,'change:device',this.updateDevice),this.listenTo(n,g.evPageSelect,this._pageUpdated)}},{key:"init",value:function(){var t=this.em.get('PageManager').getMain(),e=t.getMainFrame();this.set('frames',t.getFrames()),this.updateDevice({frame:e})}},{key:"_pageUpdated",value:function(t,e){var n=this.em;n.setSelected(),n.get('readyCanvas')&&n.stopDefault(),e&&e.getFrames().map((function(t){return t.disable()})),this.set('frames',t.getFrames())}},{key:"updateDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e.getDeviceModel(),r=t.frame||e.getCurrentFrameModel();if(r&&n){var i=n.attributes,o=i.width,s=i.height;r.set({width:o,height:s},{noUndo:1})}}},{key:"onZoomChange",value:function(){this.get('zoom')<1&&this.set('zoom',1)}}]),n}(d.Model),b=n(6602),w=n(4868);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var O=function(){function t(e,n){var r=this;(0,l.Z)(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.getComponent().getEl()})),s=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,(0,o.bindAll)(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),s.forEach((function(t){return r.toggleEffects(t,1)})),this}return(0,c.Z)(t,[{key:"toggleEffects",value:function(t,e){var n={on:s.on,off:s.off},r=e?'on':'off';n[r](t,'dragenter',this.handleDragEnter),n[r](t,'dragover',this.handleDragOver),n[r](t,'drop',this.handleDrop),n[r](t,'dragleave',this.handleDragLeave)}},{key:"__customTglEff",value:function(t){var e=t?s.on:s.off,n=this.el.ownerDocument,r=n.defaultView.frameElement;this.sortOpts=t?{onStart:function(t){var e=t.sorter;(0,s.on)(r,'pointermove',e.onMove)},onEnd:function(t){var e=t.sorter;(0,s.off)(r,'pointermove',e.onMove)},customTarget:function(t){var e=t.event;return n.elementFromPoint(e.clientX,e.clientY)}}:null,e(r,'pointerenter',this.handleDragEnter),e(r,'pointermove',this.handleDragOver),e(document,'pointerup',this.handleDrop),e(r,'pointerout',this.handleDragLeave)}},{key:"startCustom",value:function(){this.__customTglEff(!0)}},{key:"endCustom",value:function(t){this.over?this.endDrop(t):this.__customTglEff(!1)}},{key:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),this.__customTglEff(!1),n.trigger('canvas:dragend',e)}},{key:"handleDragLeave",value:function(t){this.updateCounter(-1,t)}},{key:"updateCounter",value:function(t,e){this.counter+=t,0===this.counter&&this.endDrop(1,e)}},{key:"handleDragEnter",value:function(t){var e=this,n=this.em,r=t.dataTransfer;if(this.updateCounter(1,t),!this.over){this.over=1;var o,s,a=n.get('Utils'),l=n.get('Canvas'),c=n.get('dragContent')||'
';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),h=u.append({})[0],f=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:h,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var s=h.getStyle(),a=s.left,l=s.top,f=s.position;o.addStyle({left:a,top:l,position:f})}e.handleDragEnd(o,r),h.remove()}});o=function(e){return f.stop(t,{cancel:e})},s=function(t){return c=t}}else{var d=new a.Sorter(function(t){for(var e=1;e=0)s=t&&t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if((0,o.indexOf)(n,'text/uri-list')>=0)s={type:'link',attributes:{href:s},content:s};else if((0,o.indexOf)(n,'text/json')>=0){var u=t&&t.getData('text/json');u&&(s=JSON.parse(u))}else 1===n.length&&'text/plain'===n[0]&&(s="
".concat(s,"
"));var h={content:s};return e.trigger('canvas:dragdata',t,h),h}}]),t}(),C=n(9283);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(t).sort().map((function(e){return"[".concat(e,"=\"").concat(t[e],"\"]")})).join('')},a=function(t,e,n){t.forEach((function(t){var r=t.tag,i=t.attributes;!e.some((function(t){return t.tag===r&&s(t.attributes)===s(i)}))&&n.push(t)}))};a(i,o,r),a(o,i,n),n.forEach((function(t){var n=e.querySelector("".concat(t.tag).concat(s(t.attributes)));n&&n.parentNode.removeChild(n)})),(0,C.SJ)(e,r)},getEl:function(){return this.el},getCanvasModel:function(){return this.em.get('Canvas').getModel()},getWindow:function(){return this.getEl().contentWindow},getDoc:function(){return this.getEl().contentDocument},getHead:function(){return this.getDoc().querySelector('head')},getBody:function(){return this.getDoc().querySelector('body')},getWrapper:function(){return this.getBody().querySelector('[data-gjs-type=wrapper]')},getJsContainer:function(){return this.jsContainer||(this.jsContainer=(0,C.ut)('div',{class:"".concat(this.ppfx,"js-cont")})),this.jsContainer},getToolsEl:function(){var t=this.config.frameWrapView;return t&&t.elTools},getGlobalToolsEl:function(){return this.em.get('Canvas').getGlobalToolsEl()},getHighlighter:function(){return this._getTool('[data-hl]')},getBadgeEl:function(){return this._getTool('[data-badge]')},getOffsetViewerEl:function(){return this._getTool('[data-offset]')},getRect:function(){return this.rect||(this.rect=this.el.getBoundingClientRect()),this.rect},getOffsetRect:function(){var t=this.el,e=this.getBody(),n=e.scrollTop,r=e.scrollLeft,i=t.offsetHeight,o=t.offsetWidth;return{top:t.offsetTop,left:t.offsetLeft,height:i,width:o,scrollTop:n,scrollLeft:r,scrollBottom:n+i,scrollRight:r+o}},_getTool:function(t){var e=this.tools,n=this.getToolsEl();return e[t]||(e[t]=n.querySelector(t)),e[t]},remove:function(){var t=this.wrapper;this._toggleEffects(),this.tools={},t&&t.remove(),p().View.prototype.remove.apply(this,arguments)},startAutoscroll:function(){var t=this;this.lastMaxHeight=this.getWrapper().offsetHeight-this.el.offsetHeight,setTimeout((function(){t._toggleAutoscrollFx(1),requestAnimationFrame(t.autoscroll)}),0)},autoscroll:function(){if(this.dragging){var t=this.lastClientY,e=this.em.get('Canvas'),n=this.getWindow(),r=this.getBody().scrollTop,i=t||0,s=e.getConfig().autoscrollLimit,a=this.getRect().height-s,l=r;if(ia&&(l+=i-a),!(0,o.isUndefined)(t)&&l!==r&&l>0&&l0){var l=r.shift(),c=(0,C.ut)('script',S({type:'text/javascript'},(0,o.isString)(l)?{src:l}:l));c.onerror=c.onload=n.bind(null,r),e.contentDocument.head.appendChild(c)}else t.renderBody(),i&&i.trigger(s,a)};e.onload=function(){i&&i.trigger("".concat(s,":before"),a),c((0,r.Z)(l.get('scripts')))}},renderStyles:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getHead(),n=this.getCanvasModel(),r=function(t){return t.map((function(t){return{tag:'link',attributes:S({rel:'stylesheet'},(0,o.isString)(t)?{href:t}:t)}}))},i=r(t.prev||n.previous('styles')),s=r(n.get('styles')),a=[],l=[],c=function(t,e,n){t.forEach((function(t){var r=t.attributes.href;!e.some((function(t){return t.attributes.href===r}))&&n.push(t)}))};c(s,i,l),c(i,s,a),a.forEach((function(t){var n=e.querySelector("link[href=\"".concat(t.attributes.href,"\"]"));n&&n.parentNode.removeChild(n)})),(0,C.SJ)(e,l)},renderBody:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=e.em,o=this.getDoc(),a=this.getBody(),l=this.getWindow(),c=i.get('Config');l._isEditor=!0,this.renderStyles({prev:[]});(0,C.R3)(a,""));var u=n.getComponent(),h=i.get('DomComponents').getType('wrapper').view;this.wrapper=new h({model:u,config:S(S({},u.config),{},{frameView:this})}).render(),(0,C.R3)(a,this.wrapper.el),(0,C.R3)(a,new w.Z({collection:n.getStyles(),config:S(S({},i.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),(0,C.R3)(a,this.getJsContainer()),(0,s.on)(a,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),(0,s.on)(a,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'pointerdown pointermove pointerup',class:'PointerEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){o.addEventListener(n,(function(n){return t.el.dispatchEvent((0,C.t3)(n,e.class))}))}))})),this._toggleEffects(1),this.droppable=(0,s.hasDnd)(i)&&new O(i,this.wrapper.el),n.trigger('loaded')},_toggleEffects:function(t){var e=t?s.on:s.off,n=this.getWindow();n&&e(n,"".concat(C.G1," resize"),this._emitUpdate)},_emitUpdate:function(){this.model._emitUpdated()}});var _=n(5610);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.bindAll)(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=E(E({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,s=r.em;this.cv=i,this.config=r,this.em=s,this.canvas=s&&s.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new P({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),this.updateOffset=(0,o.debounce)(this.updateOffset.bind(this)),this.updateSize=(0,o.debounce)(this.updateSize.bind(this)),this.listenTo(n,'loaded',this.frameLoaded),this.listenTo(n,'change:x change:y',this.updatePos),this.listenTo(n,'change:width change:height',this.updateSize),this.listenTo(n,'destroy remove',this.remove),this.updatePos(),this.setupDragger()},setupDragger:function(){var t,e,n,r=this,i=this.canvas,o=this.model,s=function(t){i.toggleFramesEvents(t)};this.dragger=new _.Z({onStart:function(){var i=o.attributes,a=i.x,l=i.y;n=r.em.getZoomMultiplier(),t=a,e=l,s()},onEnd:function(){return s(1)},setPosition:function(r){o.set({x:t+r.x*n,y:e+r.y*n})}})},startDrag:function(t){t&&this.dragger.start(t)},__clear:function(t){var e=this.frame;e&&e.remove(t),(0,C.L_)(this.elTools)},remove:function(t){var e=this;return this.__clear(t),p().View.prototype.remove.apply(this,arguments),['frame','dragger','cv','em','canvas','elTools'].forEach((function(t){return e[t]=0})),this},updateOffset:function(){var t=this.em,e=this.$el,n=this.frame;t&&(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,s=n.style;this.frame.rect=0,s.left=isNaN(i)?i:"".concat(i,"px"),s.top=isNaN(o)?o:"".concat(o,"px"),t&&this.updateOffset()},updateSize:function(){this.updateDim()},updateDim:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,s=this.frame;if(s){s.rect=0,n.addClass(i);var a=this.__handleSize(),l=a.noChanges,c=a.width,u=a.height;((0,o.isNull)(c)||(0,o.isNull)(u))&&r.set(E(E({},c?{}:{width:e.offsetWidth}),u?{}:{height:e.offsetHeight}),{silent:1}),t.stopDefault({preserveSelected:1}),l?this.updateOffset():setTimeout(this.updateOffset,350)}},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()},__handleSize:function(){var t=this.model,e=this.el.style,n=t.attributes,r=n.width,i=n.height,s=e.width||'',a=e.height||'',l=r||'',c=i||'',u=s==l&&a==c;return e.width=(0,o.isNumber)(l)?"".concat(l).concat("px"):l,e.height=(0,o.isNumber)(c)?"".concat(c).concat("px"):c,{noChanges:u,width:r,height:i,newW:l,newH:c}},render:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,s=i.attributes.onRender;this.__clear(),this.__handleSize(),t.render(),e.empty().attr({class:"".concat(n,"frame-wrapper")}).append("\n
\n
\n ").concat(i.get('name')||'',"\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n ")).append(t.el);var a=(0,C.ut)('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n "));this.elTools=a;var l=r.toolsWrapper;return l&&l.appendChild(a),s&&s({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}}),D=b.Z.extend({itemView:j,autoAdd:1,init:function(){this.listenTo(this.collection,'reset',this.render)},onRemoveBefore:function(t,e){t.forEach((function(t){return t.remove(e)}))},onRender:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}});function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e\n
\n ")},initialize:function(t){(0,o.bindAll)(this,'clearOff','onKeyPress','onCanvasMove');var e=this.model;this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.config.stylePrefix+'canvas';var n=this.em;this._initFrames(),this.listenTo(n,'change:canvasOffset',this.clearOff),this.listenTo(n,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(e,'change:frames',this._onFramesUpdate),this.toggleListeners(1)},_onFramesUpdate:function(){this._initFrames(),this._renderFrames()},_initFrames:function(){var t=this.frames,e=this.model,n=this.config,r=this.em,i=e.get('frames');r.set('readyCanvas',0),i.once('loaded:all',(function(){return r.set('readyCanvas',1)})),t&&t.remove(),this.frames=new D({collection:i,config:A(A({},n),{},{canvasView:this})})},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(){this.frames.remove(),this.frames={},p().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;var e=t?s.on:s.off;e(document,'keypress',this.onKeyPress),e(window,'scroll resize',this.clearOff)},onKeyPress:function(t){var e=this.em;' '!==(0,s.getKeyChar)(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(),s={preserveSelected:1},a=o?1/o:1;this.framesArea.style.transform="scale(".concat(o,") translate(").concat(r*a,"px, ").concat(i*a,"px)"),this.clearOff(),e.stopDefault(s),e.trigger('canvas:update',t),L&&clearTimeout(L),L=setTimeout((function(){return e.runDefault(s)}),300)},getZoom:function(){return this.em.getZoomDecimal()},isElInViewport:function(t){var e=(0,s.getElement)(t),n=(0,s.getElRect)(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=(0,s.getElRect)(t),r=t.ownerDocument.body,i=e.noScroll;return{top:n.top+(i?0:r.scrollTop),left:n.left+(i?0:r.scrollLeft),width:n.width,height:n.height}},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,r=n?n.frameElement:e;this.frmOff=this.offset(r||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(),s=this.offset(t,e),a=r.avoidFrameOffset?0:i.top,l=r.avoidFrameOffset?0:i.left;return{top:s.top*n+a-o.top,left:s.left*n+l-o.left,height:s.height*n,width:s.width*n,zoom:n,rect:s}},getElementOffsets:function(t){var e=this;if(!t||(0,s.isTextNode)(t))return{};var n={},r=window.getComputedStyle(t);return['marginTop','marginRight','marginBottom','marginLeft','paddingTop','paddingRight','paddingBottom','paddingLeft'].forEach((function(t){n[t]=parseFloat(r[t])*e.getZoom()})),n},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(),s=t.noScroll;return{top:i.top+(s?0:n.scrollTop)*r-o.top,left:i.left+(s?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;}"),s=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(s,")\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')},_renderFrames:function(){if(this.ready){var t=this.model,e=this.frames,n=this.em,r=this.framesArea,i=t.get('frames');i.listenToLoad(),e.render();var o=i.at(0),s=o&&o.view;n.setCurrentFrame(s),r&&r.appendChild(e.el),this.frame=s}},render:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.config,i=this.em;e.html(this.template());var o=e.find('[data-frames]');this.framesArea=o.get(0);var a=e.find('[data-tools]');this.toolsWrapper=a.get(0),a.append("\n
\n
\n
\n
\n
\n
\n ").concat(r.extHl?"
"):'',"\n
\n
\n
\n
\n
\n
\n
\n "));var l=t.querySelector("#".concat(n,"tools"));return this.hlEl=t.querySelector(".".concat(n,"highlighter")),this.badgeEl=t.querySelector(".".concat(n,"badge")),this.placerEl=t.querySelector(".".concat(n,"placeholder")),this.ghostEl=t.querySelector(".".concat(n,"ghost")),this.toolbarEl=t.querySelector(".".concat(n,"toolbar")),this.resizerEl=t.querySelector(".".concat(n,"resizer")),this.offsetEl=t.querySelector(".".concat(n,"offset-v")),this.fixedOffsetEl=t.querySelector(".".concat(n,"offset-fixed-v")),this.toolsGlobEl=t.querySelector(".".concat(n,"tools-gl")),this.toolsEl=l,this.el.className=(0,s.getUiClass)(i,this.className),this.ready=1,this._renderFrames(),this}});function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function I(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=I(I(I({},a),e),{},{module:this}),this.em=n.em;var r=n,i=r.scripts,o=r.styles,s=n.pStylePrefix;return s&&(n.stylePrefix=s+n.stylePrefix),t=new y({scripts:i,styles:o},e),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},onLoad:function(){this.model.init()},getModel:function(){return t},getConfig:function(){return n},getElement:function(){return e.el},getFrame:function(t){return this.getFrames()[t||0]},getFrameEl:function(){var t=(e||{}).frame;return t&&t.el},getFramesEl:function(){return e.framesArea},getWindow:function(){return this.getFrameEl().contentWindow},getDocument:function(){var t=this.getFrameEl();return t&&t.contentDocument},getBody:function(){var t=this.getDocument();return t&&t.body},_getCompFrame:function(t){return t&&t._getFrame()},_getLocalEl:function(t,e,n){var r=t,i=this._getCompFrame(e);return r=i?i[n]():r},getGlobalToolsEl:function(){return e.toolsGlobEl},getToolsEl:function(t){return this._getLocalEl(e.toolsEl,t,'getToolsEl')},getHighlighter:function(t){return this._getLocalEl(e.hlEl,t,'getHighlighter')},getBadgeEl:function(t){return this._getLocalEl(e.badgeEl,t,'getBadgeEl')},getPlacerEl:function(){return e.placerEl},getGhostEl:function(){return e.ghostEl},getToolbarEl:function(){return e.toolbarEl},getResizerEl:function(){return e.resizerEl},getOffsetViewerEl:function(t){return this._getLocalEl(e.offsetEl,t,'getOffsetViewerEl')},getFixedOffsetViewerEl:function(){return e.fixedOffsetEl},render:function(){return e&&e.remove(),(e=new N({model:t,config:n})).render().el},getOffset:function(){var t=this.offset(this.getFrameEl()),e=this.offset(this.getElement());return{top:t.top-e.top,left:t.left-e.left}},offset:function(t){return e.offset(t)},setCustomBadgeLabel:function(t){n.customBadgeLabel=t},getElementPos:function(t,n){return e.getElementPos(t,n)},getElementOffsets:function(t){return e.getElementOffsets(t)},getRect:function(){var t=e.getPosition(),n=t.top,r=t.left;return I(I({},e.getCanvasOffset()),{},{topScroll:n,leftScroll:r})},getTargetToElementDim:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i||{},s=e.getPosition();if(s){var a=o.elPos||e.getElementPos(r),l=i.toRight||0,c=o.targetHeight||t.offsetHeight,u=o.targetWidth||t.offsetWidth,h=o.event||null,f=a.top-c,d=a.left;d+=l?a.width:0;var p=(d=l?d-u:d)a.top+a.height?a.top+a.height:g,left:p,elementTop:a.top,elementLeft:a.left,elementWidth:a.width,elementHeight:a.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:s.top,canvasLeft:s.left,canvasWidth:s.width,canvasHeight:s.height};return h&&n.em&&n.em.trigger(h,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,s=n.em.getZoomDecimal(),a=e?'top':'left',l=t.ownerDocument,c=r.offset?i(l):{},u=c.offsetTop,h=void 0===u?0:u,f=c.offsetLeft,d=void 0===f?0:f,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,y=void 0===m?0:m,b=e?v:y,w=e?h:d;return o[a]-(b-w)*s};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),s=e.offsetHeight||0,a=e.offsetWidth||0,l=r.left+r.width,c=this.getCanvasView(),u=c.getPosition(),h=c.getFrameOffset(t),f=n.event,d=-s,p=(0,o.isUndefined)(n.left)?r.width-a:n.left;p=r.left<-p?-r.left:p,p=l>u.width?p-(l-u.width):p;var g=r.height+s,v=g1&&void 0!==arguments[1]?arguments[1]:{},n=(0,s.getElement)(t),r=n&&(0,s.getViewEl)(n);r&&r.scrollIntoView(e)},startAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.startAutoscroll()},stopAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.stopAutoscroll()},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},setCoords:function(e,n){return t.set({x:parseFloat(e),y:parseFloat(n)}),this},getCoords:function(){var e=t.attributes;return{x:e.x,y:e.y}},getZoomDecimal:function(){return this.getZoom()/100},getZoomMultiplier:function(){var t=this.getZoomDecimal();return t?1/t:1},toggleFramesEvents:function(t){this.getFramesEl().style.pointerEvents=t?'':'none'},getFrames:function(){return t.get('frames').map((function(t){return t}))},addFrame:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.get('frames').add(I({},e),I(I({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e&&e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},9065:(t,e,n)=>{"use strict";n.d(e,{Z:()=>O});var r=n(4942),i=n(5671),o=n(3144),s=n(9340),a=n(3930),l=n(1120),c=n(9050),u=n(2316),h=n(2982),f=n(6183);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 p(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.config,r=n.em,i=this.attributes,o=i.styles,s=i.component,a=r.get('DomComponents'),l=a.getConfig(),u=r.get('CssComposer').getAll(),h={};this.em=r;var d={em:r,config:l,frame:this,idMap:h};if(!(0,f.isComponent)(s)){var p=(0,f.isObject)(s)?s:{components:s};!p.type&&(p.type='wrapper');var g=a.getType('wrapper').model;this.set('component',new g(p,d))}if(o){if(!(0,f.isObject)(o)){var y=Object.keys(h);y.length&&Array.isArray(o)&&o.forEach((function(t){var e=t.selectors;if(e&&1==e.length){var n=e[0],r=n.name&&2===n.type&&n;if(r&&h[r.name])r.name=h[r.name];else if((0,c.isString)(n)&&'#'===n[0]){var i=n.substring(1);i&&h[i]&&(e[0]="#".concat(h[i]))}}})),u.add(o),this.set('styles',u)}}else this.set('styles',u);!t.width&&this.set(v,1),!t.height&&this.set(m,1)}},{key:"onRemove",value:function(){this.getComponent().remove({root:1})}},{key:"changesUp",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.temporary||t.noCount||t.avoidStore||this.set('changesCount',this.get('changesCount')+1)}},{key:"getComponent",value:function(){return this.get('component')}},{key:"getStyles",value:function(){return this.get('styles')}},{key:"disable",value:function(){this.trigger('disable')}},{key:"remove",value:function(){this.view=0;var t=this.collection;return t&&t.remove(this)}},{key:"getHead",value:function(){var t=this.get('head')||[];return(0,h.Z)(t)}},{key:"setHead",value:function(t){return this.set('head',(0,h.Z)(t))}},{key:"addHeadItem",value:function(t){var e=this.getHead();e.push(t),this.setHead(e)}},{key:"getHeadByAttr",value:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]}},{key:"removeHeadByAttr",value:function(t,e,n){var r=this.getHead(),i=this.getHeadByAttr(t,e,n),o=r.indexOf(i);o>=0&&(r.splice(o,1),this.setHead(r))}},{key:"addLink",value:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})}},{key:"removeLink",value:function(t){this.removeHeadByAttr('href',t,'link')}},{key:"addScript",value:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})}},{key:"removeScript",value:function(t){this.removeHeadByAttr('src',t,'script')}},{key:"getPage",value:function(){var t=this.collection;return t&&t.page}},{key:"_emitUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',p({frame:this},t))}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=u.Model.prototype.toJSON.call(this,t),n=this.em,r=n&&n.get('StorageManager'),i=r&&r.getConfig(),o=(0,c.result)(this,'defaults');if(i&&!t.fromUndo){var s={component:this.getComponent()};i.storeHtml&&(e.html=n.getHtml(s)),i.storeCss&&(e.css=n.getCss(s))}return t.fromUndo&&delete e.component,delete e.styles,delete e.changesCount,e.__aw&&delete e.width,e.__ah&&delete e.height,(0,c.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,c.forEach)(o,(function(t,n){e[n]===t&&delete e[n]})),(0,c.forEach)(['attributes','head'],(function(t){(0,c.isEmpty)(e[t])&&delete e[t]})),e}}]),n}(u.Model);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,c.bindAll)(this,'itemLoaded'),this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"itemLoaded",value:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))}},{key:"listenToLoad",value:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)}},{key:"listenToLoadItems",value:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return u.Collection.prototype.add.call(this,t,w(w({},e),{},{config:n}))}}]),n}(u.Collection);O.prototype.model=y},7619:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r=n(9050);const i={stylePrefix:'cm-',inlineCss:!1};var o=n(5671),s=n(3144),a=n(9340),l=n(3930),c=n(1120),u=n(2316),h=n.n(u);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var d=function(t){(0,a.Z)(n,t);var e=f(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"build",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=e.em;if(e.cleanId&&r){var i=r.get('CssComposer').getAll(),o=i.toJSON().map((function(t){var e=t.selectors,n=e&&1===e.length&&e.models[0];return n&&n.isId()&&n.get('name')})).filter((function(t){return t}));n.attributes=function(t,e){var n=e.id;return n&&'i'===n[0]&&!t.get('script')&&!t.get('attributes').id&&o.indexOf(n)<0&&delete e.id,e}}return t.toHTML(n)}}]),n}(u.Model),p=n(8795);const g=h().Model.extend({build:function(t){var e=t.toJSON();return this.beforeEach(e),(0,r.each)(e,(function(t,n){var r=e[n];if(r instanceof h().Model)e[n]=this.build(r);else if(r instanceof h().Collection){var i=r;e[n]=[],i.length&&i.each((function(t,r){e[n][r]=this.build(t)}),this)}}),this),e},beforeEach:function(t){delete t.status}});var v=n(4942);const m=h().Model.extend({mapModel:function(t){var e='',n=t.get('script-export')||t.get('script'),i=t.get('type'),o=t.get('components'),s=t.getId();if(n){var a=t.get('attributes');a=(0,r.extend)({},a,{id:s}),t.set('attributes',a,{silent:1});var l=t.getScriptString(n),c=t.get('script-props');if(t.get('scriptUpdated')&&!c)this.mapJs[i+'-'+s]={ids:[s],code:l};else{var u,h=this.mapJs[i];if(c&&(u=t.__getScriptProps()),h)h.ids.push(s),u&&(h.props[s]=u);else{var f={ids:[s],code:l};u&&(f.props=(0,v.Z)({},s,u)),this.mapJs[i]=f}}}return o.each((function(t){e+=this.mapModel(t)}),this),e},build:function(t){this.mapJs={},this.mapModel(t);var e='';for(var n in this.mapJs){var r=this.mapJs[n];if(r.code)if(r.props){if(0===r.code.toString().match(/\{([\s\S]*)\}/m)[1].replace(/^\s*\/\/.*$/gm,'').trim().length)continue;e+="\n var props = ".concat(JSON.stringify(r.props),";\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (").concat(r.code,".bind(el))(props[el.id]);\n }")}else{var i='#'+r.ids.join(', #');e+="\n var items = document.querySelectorAll('".concat(i,"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\n").concat(r.code,"\n}.bind(items[i]))();\n }")}}return e}});var y;function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}(0,n(6183).hasWin)()&&(y=n(4631),n(6531),n(6629),n(9210));const w=h().Model.extend({CodeMirror:y,defaults:{input:'',label:'',codeName:'',theme:'hopscotch',readOnly:!0,lineNumbers:!0},init:function(t){return(0,r.bindAll)(this,'onChange'),this.editor=y.fromTextArea(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=this.editor;r&&(r.setValue(t),r.autoFormatRange&&(y.commands.selectAll(r),r.autoFormatRange(r.getCursor(!0),r.getCursor(!1)),y.commands.goDocStart(r)),!n.noRefresh&&setTimeout((function(){return e.refresh()})))}});var x,O=n(168),C=n(1629);function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var S=function(t){(0,a.Z)(n,t);var e=k(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.codeName,r=t.label;return(0,C.Z)(x||(x=(0,O.Z)(["\n
\n
","
\n
\n
\n "])),e,e,n,e,r,e)}},{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix}},{key:"render",value:function(){var t=this.model,e=this.pfx,n=this.$el,r=t.toJSON();return r.pfx=e,n.html(this.template(r)),n.attr('class',"".concat(e,"editor-c")),n.find("#".concat(e,"code")).append(t.get('input')),this}}]),n}(u.View);const P=function(){var t={},e={},n={},o={},s={},a='CodeMirror';return{getConfig:function(){return t},config:t,EditorView:S,name:'CodeManager',init:function(e){for(var r in t=e||{},i)r in t||(t[r]=i[r]);var o=t.pStylePrefix;return o&&(t.stylePrefix=o+t.stylePrefix),n.html=new d,n.css=new p.Z,n.json=new g,n.js=new m,s.CodeMirror=new w,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,n){return e[t]=n,this},getGenerator:function(t){return e[t]||null},getGenerators:function(){return e},addViewer:function(t,e){return o[t]=e,this},getViewer:function(t){return o[t]||null},getViewers:function(){return o},createViewer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,r.isUndefined)(t.type)?a:t.type,n=this.getViewer(e)&&this.getViewer(e).clone(),i=document.createElement('div'),o=document.createElement('textarea');return i.appendChild(o),n.set(t),n.init(o),n.setElement(i),n},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.em=t.em;var i=this.getGenerator(n);return i?i.build(e,r):''},loadDefaultGenerators:function(){for(var t in n)this.addGenerator(t,n[t]);return this},loadDefaultViewers:function(){for(var t in s)this.addViewer(t,s[t]);return this},destroy:function(){[t,e,n,o,s].forEach((function(t){return{}}))}}}},8795:(t,e,n)=>{"use strict";n.d(e,{U:()=>l,Z:()=>c});var r=n(2316),i=n.n(r),o=n(9050),s=n(6183),a=Number.MAX_VALUE,l=function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?e[0]:''};const c=i().Model.extend({initialize:function(){(0,o.bindAll)(this,'sortRules'),this.compCls=[],this.ids=[]},buildFromModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r='',i=this.em,o=i&&i.getConfig('avoidInlineStyle'),s=t.styleToString(),a=t.get('classes');this.ids.push("#".concat(t.getId())),a.each((function(t){return e.compCls.push(t.getFullName())})),!o&&s&&(r="#".concat(t.getId(),"{").concat(s,"}"));var l=t.components();return l.each((function(t){return r+=e.buildFromModel(t,n)})),r},build:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.json,i=n.em||'',a=n.cssc||i&&i.get('CssComposer');this.em=i,this.compCls=[],this.ids=[],this.model=t;var l=[],c=t?this.buildFromModel(t,n):'',u=(0,o.isUndefined)(n.clearStyles)&&i?i.getConfig('clearStyles'):n.clearStyles;if(a){var h=n.rules||a.getAll(),f={},d=[];n.onlyMatched&&t&&(0,s.hasWin)()&&(h=this.matchedRules(t,h)),h.forEach((function(t){var i=t.getAtRule();if(i){var o=f[i];o?o.push(t):f[i]=[t]}else{var s=e.buildFromRule(t,d,n);r?l.push(s):c+=s}})),this.sortMediaObject(f).forEach((function(t){var i='',o=t.key;t.value.forEach((function(t){var s=e.buildFromRule(t,d,n);t.get('singleAtRule')?c+="".concat(o,"{").concat(s,"}"):i+=s,r&&l.push(s)})),i&&(c+="".concat(o,"{").concat(i,"}"))})),i&&u&&h.remove&&h.remove(d)}return r?l.filter((function(t){return t})):c},buildFromRule:function(t,e){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o='',s=this.model,a=t.selectorsToString({skipAdd:1}),l=t.get('selectorsAdd'),c=t.get('singleAtRule');if(t.get('selectors').each((function(t){var e=t.getFullName();(r.compCls.indexOf(e)>=0||r.ids.indexOf(e)>=0||i.keepUnusedStyles)&&(n=1)})),a&&n||l||c||!s){var u=t.getDeclaration({body:1});u&&(i.json?o=t:o+=u)}else e.push(t);return o},matchedRules:function(t,e){var n=this,r=t.getEl(),i=[];return e.forEach((function(t){try{t.selectorsToString().split(',').some((function(t){return r.matches(n.__cleanSelector(t))}))&&i.push(t)}catch(t){}})),t.components().forEach((function(t){i=i.concat(n.matchedRules(t,e))})),i=i.filter((function(t,e){return i.indexOf(t)===e}))},getQueryLength:function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?parseFloat(e[1]):a},sortMediaObject:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return(0,o.each)(e,(function(t,e){return n.push({key:e,value:t})})),n.sort((function(e,n){var r=[e.key,n.key].every((function(t){return-1!==t.indexOf('min-width')})),i=r?e.key:n.key,o=r?n.key:e.key;return t.getQueryLength(i)-t.getQueryLength(o)}))},sortRules:function(t,e){var n=function(t){return t.get('mediaText')},r=[n(t),n(e)].every((function(t){return-1!==t.indexOf('min-width')})),i=n(r?t:e),o=n(r?e:t);return this.getQueryLength(i)-this.getQueryLength(o)},__cleanSelector:function(t){return t.split(' ').map((function(t){return t.split(':')[0]})).join(' ')}})},289:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>f});var r=n(2982),i=n(4942),o=n(9050),s=n(238);const a={stylePrefix:'com-',defaults:[],strict:1};var l=n(9138);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};e=u(u({},a),s),t=e.em;var f=e.pStylePrefix;return f&&(e.stylePrefix=f+e.stylePrefix),Object.keys(e.defaults).forEach((function(t){var n=e.defaults[t];n.id&&i.add(n.id,n)})),c['tlb-delete']={run:function(t){return t.runCommand('core:component-delete')}},c['tlb-clone']={run:function(t){t.runCommand('core:copy'),t.runCommand('core:paste',{action:'clone-component'})}},c['tlb-move']={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),s=n&&n.event,a=n.target,c=a||t.getSelected(),u=a?[a]:(0,r.Z)(t.getSelectedAll()),h=s&&'dragstart'==s.type,f={preserveSelected:1},d=['absolute','translate'];if(!c||!c.get('draggable'))return i.logWarning('The element is not draggable');var p=c.get('dmode')||i.get('dmode'),g=function(){return i.stopDefault(f)},v=(0,o.includes)(d,p);u.forEach((function(t){return t.trigger('disable')})),h?setTimeout(g,0):g();var m=function(t){i.trigger("".concat(l.OA,":start"),t)},y=function(t){i.trigger(l.OA,t)},b=function(e,n,r){u.forEach((function(t){return t.set('status','selected')})),t.select(u),c.emitUpdate(),i.trigger("".concat(l.OA,":end"),r),setTimeout((function(){return i.runDefault(f)})),(v||r.cancelled)&&i.set('_cmpDrag',1)};if(v)t.runCommand('core:component-drag',{guidesInfo:1,mode:p,target:c,onStart:m,onDrag:y,onEnd:b,event:s});else{h&&s.dataTransfer.setDragImage(c.view.el,0,0);var w=t.Commands.get('move-comp');w.onStart=m,w.onDrag=y,w.onEndMoveFromModel=b,w.initSorterFromModels(u)}u.forEach((function(t){return t.set('status','freezed-selected')}))}},c['core:undo']=function(t){return t.UndoManager.undo()},c['core:redo']=function(t){return t.UndoManager.redo()},h.forEach((function(e){var r=e[2],i=n(2828)("./".concat(e[1])).default,o="core:".concat(e[0]);c[o]=i,r&&(c[r]=i,['run','stop'].forEach((function(e){t.on("".concat(e,":").concat(r),(function(){for(var n,r=arguments.length,i=new Array(r),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=this.get(t);if(n){var r=u(u({},n.constructor.prototype),e);this.add(t,r);var i=h.filter((function(e){return"core:".concat(e[0])===t&&e[2]}))[0];i&&this.add(i[2],r)}return this},has:function(t){return!!i[t]},getAll:function(){return i},run:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.runCommand(this.get(t),e)},stop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.stopCommand(this.get(t),e)},isActive:function(t){return this.getActive().hasOwnProperty(t)},getActive:function(){return f},loadDefaultCommands:function(){for(var t in c)this.add(t,c[t]);return this},runCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,s=t.get('Editor');this.isActive(o)&&!i.force&&e.strict||(r=s&&n.callRun(s,i),o&&n.stop&&!n.noStop&&!i.abort&&(f[o]=r))}return r},stopCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,s=t.get('Editor');(this.isActive(o)||i.force||!e.strict)&&(o&&delete f[o],r=n.callStop(s,i))}return r},create:function(t){return t.stop||(t.noStop=1),new(s.default.extend(t))(e)},destroy:function(){[t,e,i,c,f].forEach((function(t){return{}}))}}}},7202:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){t.DomComponents.clear(),t.CssComposer.clear()}}},327:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var r=n(9050),i=n(6183),o=n(5610);const s={run:function(t){(0,r.bindAll)(this,'onKeyUp','enableDragger','disableDragger'),this.editor=t,this.canvasModel=this.canvas.getCanvasView().model,this.toggleMove(1)},stop:function(t){this.toggleMove(),this.disableDragger()},onKeyUp:function(t){' '===(0,i.getKeyChar)(t)&&this.editor.stopCommand(this.id)},enableDragger:function(t){this.toggleDragger(1,t)},disableDragger:function(t){this.toggleDragger(0,t)},toggleDragger:function(t,e){var n=this.canvasModel,r=this.em,i=this.dragger,s=t?'add':'remove';this.getCanvas().classList[s]("".concat(this.ppfx,"is__grabbing")),i||(i=new o.Z({getPosition:function(){return{x:n.get('x'),y:n.get('y')}},setPosition:function(t){var e=t.x,r=t.y;n.set({x:e,y:r})},onStart:function(t,e){r.trigger('canvas:move:start',e)},onDrag:function(t,e){r.trigger('canvas:move',e)},onEnd:function(t,e){r.trigger('canvas:move:end',e)}}),this.dragger=i),t?i.start(e):i.stop()},toggleMove:function(t){var e=this.ppfx,n=t?'add':'remove',r=t?'on':'off',o={on:i.on,off:i.off},s=this.getCanvas(),a=["".concat(e,"is__grab")];!t&&a.push("".concat(e,"is__grabbing")),a.forEach((function(t){return s.classList[n](t)})),o[r](document,'keyup',this.onKeyUp),o[r](s,'mousedown',this.enableDragger),o[r](document,'mouseup',this.disableDragger)}}},238:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2316);const i=r.Model.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+'hover',this.badgeClass=this.pfx+'badge',this.plhClass=this.pfx+'placeholder',this.freezClass=this.ppfx+'freezed',this.canvas=this.em.get&&this.em.get('Canvas'),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},callRun:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id;if(t.trigger("run:".concat(n,":before"),e),!e||!e.abort){var r=e.sender||t,i=this.run(t,r,e);return t.trigger("run:".concat(n),i,e),t.trigger('run',n,i,e),i}t.trigger("abort:".concat(n),e)},callStop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id,r=e.sender||t;t.trigger("stop:".concat(n,":before"),e);var i=this.stop(t,r,e);return t.trigger("stop:".concat(n),i,e),t.trigger('stop',n,i,e),i},stopCommand:function(){this.em.get('Commands').stop(this.id)},run:function(t,e){},stop:function(t,e){}})},5820:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2982),i=n(9050);const o={run:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[],a=o.component||t.getSelectedAll();return(a=(0,i.isArray)(a)?(0,r.Z)(a):[a]).filter(Boolean).forEach((function(t){if(!t.get('removable'))return s.push(t),n.em.logWarning('The element is not removable',{component:t});t.remove()})),t.select(s),a}}},6694:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(4942),i=n(9050),o=n(5610);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 a(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};(0,i.bindAll)(this,'setPosition','onStart','onDrag','onEnd','getPosition','getGuidesStatic','renderGuide','getGuidesTarget');var s=r.target,c=r.event,u=r.mode,h=r.dragger,f=void 0===h?{}:h,d=s.getEl(),p=a({doc:d.ownerDocument,onStart:this.onStart,onEnd:this.onEnd,onDrag:this.onDrag,getPosition:this.getPosition,setPosition:this.setPosition,guidesStatic:function(){return n.guidesStatic},guidesTarget:function(){return n.guidesTarget}},f);this.setupGuides(),this.opts=r,this.editor=t,this.em=t.getModel(),this.target=s,this.isTran='translate'==u,this.guidesContainer=this.getGuidesContainer(),this.guidesTarget=this.getGuidesTarget(),this.guidesStatic=this.getGuidesStatic();var g=this.dragger;return g?g.setOptions(p):(g=new o.Z(p),this.dragger=g),c&&g.start(c),this.toggleDrag(1),this.em.trigger("".concat(l,":start"),this.getEventOpts()),g},getEventOpts:function(){return{mode:this.opts.mode,target:this.target,guidesTarget:this.guidesTarget,guidesStatic:this.guidesStatic}},stop:function(){this.toggleDrag()},setupGuides:function(){(this.guides||[]).forEach((function(t){var e=t.guide;e&&e.parentNode.removeChild(e)})),this.guides=[]},getGuidesContainer:function(){var t=this,e=this.guidesEl;if(!e){var n=this.editor,r=this.em,o=this.opts,s=n.getConfig('stylePrefix'),a=document.createElement('div'),l=document.createElement('div'),c="
\n
\n
");(e=document.createElement('div')).className="".concat(s,"guides"),a.className="".concat(s,"guide-info ").concat(s,"guide-info__x"),l.className="".concat(s,"guide-info ").concat(s,"guide-info__y"),a.innerHTML=c,l.innerHTML=c,e.appendChild(a),e.appendChild(l),n.Canvas.getGlobalToolsEl().appendChild(e),this.guidesEl=e,this.elGuideInfoX=a,this.elGuideInfoY=l,this.elGuideInfoContentX=a.querySelector(".".concat(s,"guide-info__content")),this.elGuideInfoContentY=l.querySelector(".".concat(s,"guide-info__content")),r.on('canvas:update frame:scroll',(0,i.debounce)((function(){t.updateGuides(),o.debug&&t.guides.forEach((function(e){return t.renderGuide(e)}))}),200))}return e},getGuidesStatic:function(){var t=this,e=[],n=this.target.getEl(),r=n.parentNode,o=void 0===r?{}:r;return(0,i.each)(o.children,(function(r){return e=e.concat(n!==r?t.getElementGuides(r):[])})),e.concat(this.getElementGuides(o))},getGuidesTarget:function(){return this.getElementGuides(this.target.getEl())},updateGuides:function(t){var e,n,r=this;(t||this.guides).forEach((function(t){var o=t.origin,s=e===o?n:r.getElementPos(o);e=o,n=s,(0,i.each)(r.getGuidePosUpdate(t,s),(function(e,n){return t[n]=e})),t.originRect=s}))},getGuidePosUpdate:function(t,e){var n={},r=e.top,i=e.height,o=e.left,s=e.width;switch(t.type){case't':n.y=r;break;case'b':n.y=r+i;break;case'l':n.x=o;break;case'r':n.x=o+s;break;case'x':n.x=o+s/2;break;case'y':n.y=r+i/2}return n},renderGuide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.guide||document.createElement('div'),n='px',r=t.active?2:1,i=e.children[0];return e.style="position: absolute; background-color: ".concat(t.active?'green':'red',";"),e.children.length||((i=document.createElement('div')).style='position: absolute; color: red; padding: 5px; top: 0; left: 0;',e.appendChild(i)),t.y?(e.style.width='100%',e.style.height="".concat(r).concat(n),e.style.top="".concat(t.y).concat(n),e.style.left=0):(e.style.width="".concat(r).concat(n),e.style.height='100%',e.style.left="".concat(t.x).concat(n),e.style.top="0".concat(n)),!t.guide&&this.guidesContainer.appendChild(e),e},getElementPos:function(t){return this.editor.Canvas.getElementPos(t,{noScroll:1})},getElementGuides:function(t){var e=this,n=this.opts,r=this.getElementPos(t),i=r.top,o=r.height,s=r.left,l=r.width,c=[{type:'t',y:i},{type:'b',y:i+o},{type:'l',x:s},{type:'r',x:s+l},{type:'x',x:s+l/2},{type:'y',y:i+o/2}].map((function(i){return a(a({},i),{},{origin:t,originRect:r,guide:n.debug&&e.renderGuide(i)})}));return c.forEach((function(t){return e.guides.push(t)})),c},getTranslate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'x',n=0;return(t||'').split(' ').forEach((function(t){var r=t.trim(),i="translate".concat(e.toUpperCase(),"(");0===r.indexOf(i)&&(n=parseFloat(r.replace(i,'')))})),n},setTranslate:function(t,e,n){var r="translate".concat(e.toUpperCase(),"("),i="".concat(r).concat(n,")"),o=(t||'').split(' ').map((function(t){return 0===t.trim().indexOf(r)&&(t=i),t})).join(' ');return o.indexOf(r)<0&&(o+=" ".concat(i)),o},getPosition:function(){var t=this.target,e=this.isTran,n=t.getStyle(),r=n.left,i=n.top,o=n.transform,s=0,a=0;return e?(s=this.getTranslate(o),a=this.getTranslate(o,'y')):(s=parseFloat(r||0),a=parseFloat(i||0)),{x:s,y:a}},setPosition:function(t){var e=t.x,n=t.y,r=t.end,o=t.position,s=t.width,a=t.height,l=this.target,c=this.isTran,u=this.em,h=r?'':1,f="".concat(e).concat("px"),d="".concat(n).concat("px"),p={};if(c){var g=l.getStyle().transform||'';g=this.setTranslate(g,'x',f),p={transform:g=this.setTranslate(g,'y',d),en:h},l.addStyle(p,{avoidStore:!r})}else{var v={position:o,width:s,height:a},m={left:f,top:d,en:h};(0,i.keys)(v).forEach((function(t){var e=v[t];e&&(m[t]=e)})),p=m,l.addStyle(p,{avoidStore:!r})}u.getSelected()&&(0,i.keys)(p).forEach((function(t){return u.trigger("update:component:style:".concat(t))}))},_getDragData:function(){var t=this.target;return{target:t,parent:t.parent(),index:t.index()}},onStart:function(t){var e=this.target,n=this.editor,r=this.isTran,i=this.opts,o=i.center,s=i.onStart,a=n.Canvas,l=e.getStyle(),c='absolute',u=[c,'relative'];if(s&&s(this._getDragData()),!r&&l.position!==c){var h,f=a.offset(e.getEl()),d=f.left,p=f.top,g=f.width,v=f.height,m=e.parent();do{var y=m.getStyle();h=u.indexOf(y.position)>=0?m:null,m=m.parent()}while(m&&!h);if(o){var b=a.getMouseRelativeCanvas(t);d=b.x,p=b.y}else if(h){var w=a.offset(h.getEl());d-=w.left,p-=w.top}this.setPosition({x:d,y:p,width:"".concat(g,"px"),height:"".concat(v,"px"),position:c})}},onDrag:function(){var t=this,e=this.guidesTarget,n=this.opts,r=n.onDrag;this.updateGuides(e),n.debug&&e.forEach((function(e){return t.renderGuide(e)})),n.guidesInfo&&this.renderGuideInfo(e.filter((function(t){return t.active}))),r&&r(this._getDragData())},onEnd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.editor,i=this.opts,o=this.id,s=i.onEnd;s&&s(t,n,a(a({event:t},n),this._getDragData())),r.stopCommand(o),this.hideGuidesInfo(),this.em.trigger("".concat(l,":end"),this.getEventOpts())},hideGuidesInfo:function(){var t=this;['X','Y'].forEach((function(e){var n=t["elGuideInfo".concat(e)];n&&(n.style.display='none')}))},renderGuideInfo:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=this.guidesStatic;this.hideGuidesInfo(),e.forEach((function(e){var r=e.origin,o=e.x,s=t.getElementPos(r),c=(0,i.isUndefined)(o)?'y':'x',u='y'===c,h=s[u?'left':'top'],f=s.rect[u?'left':'top'],d=u?h+s.width:h+s.height,p=u?f+s.rect.width:f+s.rect.height,g=t["elGuideInfo".concat(c.toUpperCase())],v=t["elGuideInfoContent".concat(c.toUpperCase())],m=g.style,y=n.filter((function(t){return t.type===e.type})).map((function(t){var e=t.originRect,n=e.left,r=e.width,i=e.top,o=e.height,s=u?n+r:i+o;return{gap:s0})).sort((function(t,e){return t.gap-e.gap})).map((function(t){return t.guide}))[0];if(y){var b=y.originRect,w=b.left,x=b.width,O=b.top,C=b.height,k=b.rect,S=u?w{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.components(),r=n&&n.filter((function(t){return t.get('selectable')}))[0];r&&e.push(r)})),e.length&&t.select(e)}}}},3888:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t.Canvas.hasFocus()||n.force){var r=[];t.getSelectedAll().forEach((function(t){for(var e=t.parent();e&&!e.get('selectable');)e=e.parent();e&&r.push(e)})),r.length&&t.select(r)}}}},5883:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=n.components().length,o=0,s=0;do{o++,r=(s=t.index()+o)<=i?n.getChildAt(s):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},7508:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=0,o=0;do{i++,r=(o=t.index()-i)>=0?n.getChildAt(o):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},8769:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.target,o=[];if(!i.get('styles'))return o;var s=i.get('type'),a=t.Pages.getAllWrappers(),l=(0,r.flatten)(a.map((function(t){return t.findType(s)}))).length;if(!l){var c=t.CssComposer.getAll();o=c.filter((function(t){return t.get('group')==="cmp:".concat(s)})),c.remove(o)}return o}}},2213:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2982);const i={run:function(t){var e=t.getModel(),n=(0,r.Z)(t.getSelectedAll());n.length&&e.set('clipboard',n)}}},5049:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>l});var r=n(9050),i=n(2316),o=n.n(i),s=n(2620),a=o().$;const l=(0,r.extend)({},s.default,{init:function(t){(0,r.bindAll)(this,'startDelete','stopDelete','onDelete'),this.hoverClass=this.pfx+'hover-delete',this.badgeClass=this.pfx+'badge-red'},enable:function(){this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=a(t.target);e.data('model').get('removable')&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),a(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=a(t.target);e.data('model').get('removable')&&(e.data('model').destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html('Remove '+t.getName())}})},3775:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){var n=this;e&&e.set&&e.set('active',0);var r=t.getConfig(),o=t.Modal,s=r.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var a=this.buildEditor('htmlmixed','hopscotch','HTML'),l=this.buildEditor('css','hopscotch','CSS');this.htmlEditor=a.el,this.cssEditor=l.el;var c=i("
"));c.append(a.$el).append(l.$el),this.$editors=c}o.open({title:r.textViewCode,content:this.$editors}).getModel().once('change:open',(function(){return t.stopCommand(n.id)})),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var r=document.createElement('textarea');!this.codeMirror&&(this.codeMirror=this.cm.getViewer('CodeMirror'));var i=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:r}),o=new this.cm.EditorView({model:i,config:this.cm.getConfig()}).render().$el;return i.init(r),{el:i,$el:o}}}},58:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e='';return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e='webkit',t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e='moz',t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn('Fullscreen not supported'),e},disable:function(){var t=document;this.isEnabled()&&(t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen())},fsChanged:function(t,e){document;var n=(t||'')+'fullscreenchange';this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.sender=e;var i=n.target,o=(0,r.isElement)(i)?i:document.querySelector(i),s=this.enable(o||t.getContainer());this.fsChanged=this.fsChanged.bind(this,s),document.addEventListener(s+'fullscreenchange',this.fsChanged),t.trigger('change:canvasOffset')},stop:function(t,e){e&&e.set&&e.set('active',!1),this.disable(),t&&t.trigger('change:canvasOffset')}}},8658:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(9050),i=n(2316),o=n.n(i),s=n(6183),a=n(2620),l=n(8463),c=o().$;const u=(0,r.extend)({},l.default,a.default,{init:function(t){a.default.init.apply(this,arguments),(0,r.bindAll)(this,'initSorter','rollback','onEndMove'),this.opt=t,this.hoverClass=this.ppfx+'highlighter-warning',this.badgeClass=this.ppfx+'badge-warning',this.noSelClass=this.ppfx+'no-select'},enable:function(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(9283);const o={open:function(t){var e=this,n=this.editor,i=this.title,o=this.config,s=this.am,a=o.custom;if((0,r.isFunction)(a.open))return a.open(s.__customData());n.Modal.open({title:i,content:t}).onceClose((function(){return n.stopCommand(e.id)}))},close:function(){var t=this.config.custom;if((0,r.isFunction)(t.close))return t.close(this.am.__customData());var e=this.editor.Modal;e&&e.close()},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.AssetManager,o=r.getConfig(),s=n.types,a=void 0===s?[]:s,l=n.accept,c=n.select;if(this.title=n.modalTitle||t.t('assetManager.modalTitle')||'',this.editor=t,this.config=o,this.am=r,r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),r.__behaviour({select:c,types:a,options:n}),o.custom)this.rendered=this.rendered||(0,i.ut)('div'),this.rendered.className="".concat(o.stylePrefix,"custom-wrp"),r.__behaviour({container:this.rendered}),r.__trgCustom();else{if(!this.rendered||a){var u=r.getAll().filter((function(t){return t}));a&&a.length&&(u=u.filter((function(t){return-1!==a.indexOf(t.get('type'))}))),r.render(u),this.rendered=r.getContainer()}if(l){var h=this.rendered.querySelector("input#".concat(o.stylePrefix,"uploadFile"));h&&h.setAttribute('accept',l)}}return this.open(this.rendered),this},stop:function(t){this.editor=t,this.close(this.rendered)}}},5821:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(9283);const o={open:function(){var t=this.container,e=this.editor,n=this.bm,i=this.config,o=i.custom,s=i.appendTo;if((0,r.isFunction)(o.open))return o.open(n.__customData());if(this.firstRender&&!s){var a='views-container',l=e.Panels;(l.getPanel(a)||l.addPanel({id:a})).set('appendContent',t).trigger('change:appendContent'),o||t.appendChild(n.render())}t&&(t.style.display='block')},close:function(){var t=this.container,e=this.config.custom;if((0,r.isFunction)(e.close))return e.close(this.bm.__customData());t&&(t.style.display='none')},run:function(t){var e=t.Blocks;this.config=e.getConfig(),this.firstRender=!this.container,this.container=this.container||(0,i.ut)('div'),this.editor=t,this.bm=e;var n=this.container;e.__behaviour({container:n}),this.config.custom&&e.__trgCustom(),this.open()},stop:function(){this.close()}}},3452:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){var e=t.LayerManager,n=t.Panels;if(!e.getConfig().appendTo){if(!this.layers){var r='views-container',i=document.createElement('div'),o=n.getPanel(r)||n.addPanel({id:r});i.appendChild(e.render()),o.set('appendContent',i).trigger('change:appendContent'),this.layers=i}this.layers.style.display='block'}},stop:function(){var t=this.layers;t&&(t.style.display='none')}}},2840:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),r=t.Panels,o='change:appendContent';this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2);var s=t.DeviceManager;if(s&&n.showDevices){var a=r.addPanel({id:'devices-c'}),l=s.render();a.set('appendContent',l).trigger(o)}var c=t.SelectorManager;this.slm=c;var u=c.getConfig();u.custom?c.__trgCustom({container:this.$cn2.get(0)}):u.appendTo||this.$cn2.append(c.render([]));var h=t.StyleManager;this.sm=h;var f=h.getConfig(),d=f.stylePrefix;this.$header=i("
").concat(t.t('styleManager.empty'),"
")),this.$cn.append(this.$header),f.custom?h.__trgCustom({container:this.$cn2.get(0)}):f.appendTo||this.$cn2.append(h.render());var p='views-container';this.panel=r.getPanel(p),this.panel||(this.panel=r.addPanel({id:p})),this.panel.set('appendContent',this.$cn).trigger(o),this.em=t.getModel(),this.listenTo(this.em,h.events.target,this.toggleSm)}this.toggleSm()},toggleSm:function(){var t,e,n,r,i=this.sender,o=this.sm;i&&i.get&&!i.get('active')||!o||(o.getSelected()?(null===(t=this.$cn2)||void 0===t||t.show(),null===(e=this.$header)||void 0===e||e.hide()):(null===(n=this.$cn2)||void 0===n||n.hide(),null===(r=this.$header)||void 0===r||r.show()))},stop:function(){var t,e;null===(t=this.$cn2)||void 0===t||t.hide(),null===(e=this.$header)||void 0===e||e.hide()}}},8644:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){this.sender=e;var n=t.getModel(),r=t.Config.stylePrefix,o=t.TraitManager,s=o.getConfig();if(!s.appendTo){if(!this.$cn){this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2),this.$header=i('
').append("
").concat(n.t('traitManager.empty'),"
")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(o.render());var a=t.Panels;(a.getPanel('views-container')?a.getPanel('views-container'):a.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()}}},560:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),o=i.get('clipboard'),s=t.getSelected();o&&s&&(t.getSelectedAll().forEach((function(e){if(e){var i=e.collection;if(i){var s,a={at:i.indexOf(e)+1,action:n.action||'paste-component'},l=o.filter((function(t){return t.get('copyable')}));s=(0,r.contains)(o,e)&&e.get('copyable')?i.add(e.clone(),a):i.add(l.map((function(t){return t.clone()})),a),(s=(0,r.isArray)(s)?s:[s]).forEach((function(e){return t.trigger('component:paste',e)}))}}})),s.emitUpdate())}}},4944:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var r=n(2982),i=n(9050),o='sw-visibility';const s={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanels()),this.panels},preventDrag:function(t){t.abort=1},tglEffects:function(t){var e=this.em,n=t?'on':'off';if(e){var r=e.get('Canvas'),o=r.getBody(),s=r.getToolbarEl();s&&(s.style.display=t?'none':'');var a=o.querySelectorAll(".".concat(this.ppfx,"no-pointer"));(0,i.each)(a,(function(e){return e.style.pointerEvents=t?'all':''})),e[n]('run:tlb-move:before',this.preventDrag)}},run:function(t,e){var n=this;this.sender=e,this.selected=(0,r.Z)(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(o)),this.shouldRunSwVisibility&&t.stopCommand(o),t.getModel().stopDefault();var i=this.getPanels(t),s=t.Canvas.getElement(),a=t.getEl(),l=t.Config.stylePrefix;if(!this.helper){var c=document.createElement('span');c.className="".concat(l,"off-prv fa fa-eye-slash"),a.appendChild(c),c.onclick=function(){return n.stopCommand()},this.helper=c}this.helper.style.display='inline-block',i.forEach((function(t){return t.set('visible',!1)}));var u=s.style;u.width='100%',u.height='100%',u.top='0',u.left='0',u.padding='0',u.margin='0',t.refresh(),this.tglEffects(1)},stop:function(t){var e=this.sender,n=void 0===e?{}:e,r=this.selected;n.set&&n.set('active',0);var i=this.getPanels(t);this.shouldRunSwVisibility&&(t.runCommand(o),this.shouldRunSwVisibility=!1),t.getModel().runDefault(),i.forEach((function(t){return t.set('visible',!0)})),t.Canvas.getElement().setAttribute('style',''),r&&t.select(r),delete this.selected,this.helper&&(this.helper.style.display='none'),t.refresh(),this.tglEffects()}}},7538:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(4942);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const o={run:function(t,e,n){var o=n||{},s=t.Canvas,a=s.getCanvasView(),l=function(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{default:()=>x});var r=n(1002),i=n(4942),o=n(2316),s=n.n(o),a=n(9050),l=n(6183),c=n(9283),u=n(6602);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 f(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.config,n=void 0===e?{}:e;this.em=n.em,this.editor=n.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e=this.editor,n=this.em,r=e.Canvas.getFrameEl().getBoundingClientRect(),i=r.left,o=r.top,s=f(f({},t),{},{clientX:t.clientX-i,clientY:t.clientY-o});n.trigger('toolbar:run:before'),this.execCommand(s)},execCommand:function(t){var e={event:t},n=this.model.get('command'),r=this.editor;'function'==typeof n&&n(r,null,e),'string'==typeof n&&r.runCommand(n,e)},render:function(){var t=this.editor,e=this.$el,n=this.model,r=n.get('id'),i=n.get('label'),o=t.getConfig('stylePrefix');return e.addClass("".concat(o,"toolbar-item")),r&&e.addClass("".concat(o,"toolbar-item__").concat(r)),i&&e.append(i),this}}),p=u.Z.extend({itemView:d,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config={editor:t.editor||'',em:t.em},this.listenTo(this.collection,'reset',this.render)}}),g=s().Model.extend({defaults:{command:'',attributes:{}}}),v=s().Collection.extend({model:g});function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function y(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=n.el||this.canvas.getToolsEl(e);return r&&(r.style.display=t?'':'none'),r||{}},showElementOffset:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};b&&this.editor.runCommand('show-offset',{el:t,elPos:e,view:n.view,force:1,top:0,left:0})},hideElementOffset:function(t){this.editor.stopCommand('show-offset',{view:t})},showFixedElementOffset:function(t,e){this.editor.runCommand('show-offset',{el:t,elPos:e,state:'Fixed'})},hideFixedElementOffset:function(t,e){this.editor&&this.editor.stopCommand('show-offset',{state:'Fixed'})},hideHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=0},onClick:function(t){t.stopPropagation(),t.preventDefault();var e=this.em;if(e.get('_cmpDrag'))return e.set('_cmpDrag');var n=w(t.target),r=n.data('model');if(!r)for(var i=n.parent();!r&&i.length&&!(0,c.Mx)(i[0]);)r=i.data('model'),i=i.parent();if(r){if(e.isEditing()&&!r.get('textable')&&r.isChildOf('text'))return;this.select(r,t)}},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&(this.editor.select(t,{event:e,useValid:!0}),this.initResize(t))},updateBadge:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.canvas,i=w(t).data('model');if(i&&i.get('badgable')){var o=this.getBadge(n);if(!n.posOnly){var s=this.canvas.getConfig(),a=i.getIcon(),l=s.pStylePrefix||'',c="".concat(l,"badge"),u=s.customBadgeLabel,h="".concat(a?"
").concat(a,"
"):'',"\n
").concat(i.getName(),"
");o.innerHTML=u?u(i):h}var f='px',d=o.style;d.display='block';var p=r.getTargetToElementFixed(t,o,{pos:e}),g=p.top,v=n.leftOff<0?-n.leftOff:0;d.top=g+f,d.left=v+f}},showHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=''},initResize:function(t){var e,n=this.em,i=this.canvas,o=n?n.get('Editor'):'',s=(n?n.get('Config'):'').stylePrefix||'',c="".concat(s,"resizing"),u=!(0,a.isElement)(t)&&(0,l.isTaggableNode)(t)?t:n.getSelected(),h=u&&u.get('resizable'),f={},d=function(t,e,n){var r=n.docs;r&&r.forEach((function(e){var n=e.body,r=n.className||'';n.className=('add'==t?"".concat(r," ").concat(c):r.replace(c,'')).trim()}))};if(o&&h){var p=(0,a.isElement)(t)?t:u.getEl();f={onStart:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.el,s=r.config,a=r.resizer,c=s.keyHeight,h=s.keyWidth,f=s.currentUnit,p=s.keepAutoHeight,g=s.keepAutoWidth;d('add',0,r),e=n.get('StyleManager').getModelToStyle(u),i.toggleFramesEvents();var v=getComputedStyle(o),m=e.getStyle(),y=m[h];s.autoWidth=g&&'auto'===y,isNaN(parseFloat(y))&&(y=v[h]);var w=m[c];s.autoHeight=p&&'auto'===w,isNaN(parseFloat(w))&&(w=v[c]),a.startDim.w=parseFloat(y),a.startDim.h=parseFloat(w),b=0,f&&(s.unitHeight=(0,l.getUnitFromValue)(w),s.unitWidth=(0,l.getUnitFromValue)(y))},onMove:function(){o.trigger('component:resize')},onEnd:function(t,e){d('remove',0,e),o.trigger('component:resize'),i.toggleFramesEvents(1),b=1},updateTarget:function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var s=o.store,a=o.selectedHandler,l=o.config,c=l.keyHeight,u=l.keyWidth,h=l.autoHeight,f=l.autoWidth,d=l.unitWidth,p=l.unitHeight,g=['tc','bc'].indexOf(a)>=0,v=['cl','cr'].indexOf(a)>=0,m={},b=s?'':1;if(!g){var w=i.getBody().offsetWidth,x=r.w0&&void 0!==arguments[0]?arguments[0]:{};return this.canvas.getBadgeEl(t.view)},onFrameScroll:function(){this.updateTools()},updateTools:function(){this.updateLocalPos(),this.updateGlobalPos()},isCompSelected:function(t){return t&&'selected'===t.get('status')},updateToolsLocal:function(t){var e=t||this.getElHovered(),n=e.el,r=e.pos,i=e.view,o=e.component;if(n){var s=o.get('hoverable'),a=this.lastHovered!==n,l=a?{}:{posOnly:1};a&&s&&(this.lastHovered=n,this.showHighlighter(i),this.showElementOffset(n,r,{view:i})),this.isCompSelected(o)&&(this.hideHighlighter(i),this.hideElementOffset(i));var c='px',u=this.toggleToolsEl(1,i),h=u.style,f=this.canvas.canvasRectOffset(n,r),d=f.top,p=f.left;this.updateBadge(n,r,y(y({},l),{},{view:i,topOff:d,leftOff:p})),h.top=d+c,h.left=p+c,h.width=r.width+c,h.height=r.height+c,this._trgToolUp('local',{component:o,el:u,top:d,left:p,width:r.width,height:r.height})}else this.lastHovered=0},_upToolbar:(0,a.debounce)((function(){this.updateToolsGlobal({force:1})})),_trgToolUp:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em.trigger('canvas:tools:update',y({type:t},e))},updateToolsGlobal:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getElSelected(),n=e.el,r=e.pos,i=e.component;if(!n)return this.toggleToolsEl(),void(this.lastSelected=0);var o=this.canvas,s=this.lastSelected!==n;(s||t.force)&&(this.lastSelected=n,this.updateToolbar(i));var a='px',l=this.toggleToolsEl(1),c=l.style,u=o.getTargetToElementFixed(n,o.getToolbarEl(),{pos:r}),h=u.canvasOffsetTop,f=u.canvasOffsetLeft;c.top=h+a,c.left=f+a,c.width=r.width+a,c.height=r.height+a,this.updateToolbarPos({top:u.top,left:u.left}),this._trgToolUp('global',{component:i,el:l,top:h,left:f,width:r.width,height:r.height})},updateAttached:(0,a.debounce)((function(){this.updateGlobalPos()})),onContainerChange:(0,a.debounce)((function(){this.em.refreshCanvas()}),150),getElementPos:function(t){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display='none'},cleanPrevious:function(t){t&&t.set({status:'',state:''})},getContentWindow:function(){return this.canvas.getWindow()},run:function(t){(0,l.hasWin)()&&(this.editor=t&&t.get('Editor'),this.enable())},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,l.hasWin)()){var r=this.em,i=this.editor;this.onHovered(),this.stopSelectComponent(),!n.preserveSelected&&r.setSelected(null),this.toggleToolsEl(),i&&i.stopCommand('resize')}}}},8463:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={startSelectPosition:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.isPointed=!1;var i=this.editorModel.get('Utils'),o=t.ownerDocument.body;i&&!this.sorter&&(this.sorter=new i.Sorter({container:o,placer:this.canvas.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,direction:'a',document:e,wmargin:1,nested:1,em:this.editorModel,canvasRelative:1,scale:function(){return n.em.getZoomDecimal()}})),r.onStart&&(this.sorter.onStart=r.onStart),t&&this.sorter.startSort(t,{container:o})},getOffsetDim:function(){var t=this.offset(this.canvas.getFrameEl()),e=this.offset(this.canvas.getElement());return{top:t.top-e.top,left:t.left-e.left}},stopSelectPosition:function(){this.posTargetCollection=null,this.posIndex='after'==this.posMethod&&0!==this.cDim.length?this.posIndex+1:this.posIndex,this.sorter&&(this.sorter.moved=0,this.sorter.endMove()),this.cDim&&(this.posIsLastEl=0!==this.cDim.length&&'after'==this.posMethod&&this.posIndex==this.cDim.length,this.posTargetEl=0===this.cDim.length?i(this.outsideElem):!this.posIsLastEl&&this.cDim[this.posIndex]?i(this.cDim[this.posIndex][5]).parent():i(this.outsideElem),this.posTargetModel=this.posTargetEl.data('model'),this.posTargetCollection=this.posTargetEl.data('model-comp'))},enable:function(){this.startSelectPosition()},nearFloat:function(t,e,n){var r=t||0,i=e||'before',o=n.length,s=0!==o&&'after'==i&&r==o;return 0!==o&&(!s&&!n[r][4]||n[r-1]&&!n[r-1][4]||s&&!n[r-1][4])?1:0},run:function(){this.enable()},stop:function(){this.stopSelectPosition(),this.$wrapper.css('cursor',''),this.$wrapper.unbind()}}},7994:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(6183);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=o().$;const u={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var i=n||{},o=i.state||'',u=t.getConfig(),h=this.em.getZoomDecimal(),f=i.el||'';if(!u.showOffsets||(0,a.isTextNode)(f)||!u.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var d=t.Canvas,p=function(t){for(var e=1;e")).get(0),D=c("
")).get(0),M=v+E+'-el',A="".concat(v+T+'-el'," ").concat(v+T),L="".concat(M," ").concat(v+E);b=c("
")).get(0),w=c("
")).get(0),x=c("
")).get(0),O=c("
")).get(0),C=c("
")).get(0),k=c("
")).get(0),S=c("
")).get(0),P=c("
")).get(0),this['marginT'+o]=b,this['marginB'+o]=w,this['marginL'+o]=x,this['marginR'+o]=O,this['padT'+o]=C,this['padB'+o]=k,this['padL'+o]=S,this['padR'+o]=P,j.appendChild(b),j.appendChild(w),j.appendChild(x),j.appendChild(O),D.appendChild(C),D.appendChild(k),D.appendChild(S),D.appendChild(P),y.appendChild(j),y.appendChild(D),this[m]='1'}var R='px',N=parseFloat(g.marginLeft.replace(R,''))*h,Z=parseFloat(g.marginRight.replace(R,''))*h,I=parseFloat(g.marginTop.replace(R,''))*h,F=parseFloat(g.marginBottom.replace(R,''))*h,V=b.style,H=w.style,B=x.style,z=O.style,U=C.style,W=k.style,$=S.style,q=P.style,G=parseFloat(p.left),K=parseFloat(g.width)*h+R;V.height=I+R,V.width=K,V.top=p.top-I+R,V.left=G+R,H.height=F+R,H.width=K,H.top=p.top+p.height+R,H.left=G+R;var Y=p.height+I+F+R,J=p.top-I+R;B.height=Y,B.width=N+R,B.top=J,B.left=G-N+R,z.height=Y,z.width=Z+R,z.top=J,z.left=G+p.width+R;var X=parseFloat(g.paddingTop)*h;U.height=X+R;var Q=parseFloat(g.paddingBottom)*h;W.height=Q+R;var tt=p.height-Q-X+R,et=p.top+X+R;$.height=tt,$.width=parseFloat(g.paddingLeft)*h+R,$.top=et;var nt=parseFloat(g.paddingRight)*h;q.height=tt,q.width=nt+R,q.top=et}},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n||{},i=r.state||'',o=this.getOffsetMethod(i),s=t.Canvas,a=s[o](n.view);a.style.opacity=0}}},8352:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={init:function(){(0,r.bindAll)(this,'_onFramesChange')},run:function(t){this.toggleVis(t)},stop:function(t){this.toggleVis(t,0)},toggleVis:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t.Commands.isActive('preview')){var r=t.Canvas,i=n?'on':'off';r.getFrames().forEach((function(t){return e._upFrame(t,n)})),r.getModel()[i]('change:frames',this._onFramesChange)}},_onFramesChange:function(t,e){var n=this;e.forEach((function(t){return n._upFrame(t,1)}))},_upFrame:function(t,e){var n=e?'add':'remove';t.view.getBody().classList[n]("".concat(this.ppfx,"dashed"))}}},9304:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),s=n(6183);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]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=l(l({},t),e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,s){var a=l({event:t},s||o);[n,e].map((function(t){return t.trigger(i,r,a)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,s=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,s,n),!n.abort&&s()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,s=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:s}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t){this.em.logWarning("[".concat(this.name,"]: ").concat(t))},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,s.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},672:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r=n(2982),i=n(4942),o=n(9050),s=n(6183);const a={stylePrefix:'css-',rules:[],onBeforeStyle:null};var l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(2316),p=n.n(d),g=n(3345),v=n(4293),m=n(8795);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{},this.opt=e,this.em=e.em,this.ensureSelectors(),this.on('change',this.__onChange)}},{key:"__onChange",value:function(t,e){var n=this.em,r=this.changedAttributes();!(0,s.isEmptyObj)(r)&&n&&n.changesUp(e)}},{key:"clone",value:function(){var t=b({},this.opt),e=b({},this.attributes);return e.selectors=this.get('selectors').map((function(t){return t.clone()})),new this.constructor(e,t)}},{key:"ensureSelectors",value:function(t,e,n){var i=this.em,s=i&&i.get('SelectorManager'),a=[this,'change:selectors',this.ensureSelectors],l=this.getSelectors();if(this.stopListening.apply(this,a),l.models&&(l=(0,r.Z)(l.models)),l=(0,o.isString)(l)?[l]:l,Array.isArray(l)){var c=l.filter((function(t){return t})).map((function(t){return s?s.add(t):t}));l=new v.Z(c)}this.set('selectors',l,n),this.listenTo.apply(this,a)}},{key:"getAtRule",value:function(){var t=this.get('atRuleType'),e=this.get('mediaText'),n=t?"@".concat(t):e?'@media':'';return n+(e&&n?" ".concat(e):'')}},{key:"selectorsToString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get('state'),r=this.get('selectorsAdd'),i={escape:function(t){return x&&x.escape?x.escape(t):t}},o=this.get('selectors').getFullString(0,i),s=n&&!t.skipState?":".concat(n):'';return o&&e.push("".concat(o).concat(s)),r&&!t.skipAdd&&e.push(r),e.join(', ')}},{key:"getDeclaration",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.selectorsToString(t),r=this.styleToString(t),i=this.get('singleAtRule');return(n||i)&&(r||t.allowEmpty)&&(e=i?r:"".concat(n,"{").concat(r,"}")),e}},{key:"getDevice",value:function(){var t=this.em,e=this.attributes,n=e.atRuleType,r=e.mediaText,i=(null==t?void 0:t.get('DeviceManager').getDevices())||[],o=i.filter((function(t){return''===t.getWidthMedia()}))[0];return'media'===n&&r?i.filter((function(t){return t.getWidthMedia()===(0,m.U)(r)}))[0]||null:o||null}},{key:"getState",value:function(){var t=this.em,e=this.get('state');return(t.get('SelectorManager').getStates()||[]).filter((function(t){return t.getName()===e}))[0]||null}},{key:"getComponent",value:function(){var t,e=this.getSelectors(),n=1==e.length&&e.at(0),r=n&&n.isId()&&n.get('name');return r&&(null===(t=this.em)||void 0===t?void 0:t.get('DomComponents').getById(r))||null}},{key:"toCSS",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.getAtRule(),r=this.getDeclaration(t);return(r||t.allowEmpty)&&(e=r),n&&e&&(e="".concat(n,"{").concat(e,"}")),e}},{key:"toJSON",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{},i=e||'',s=n||'',a=r.selectorsAdd||'',l=r.atRuleType||'',c=(0,o.isArray)(t)||t.models?t.models||t:[t];s&&!l&&(l='media');var u=c.map((function(t){return t.getFullName()})),h=this.get('selectors').map((function(t){return t.getFullName()})),f=u.slice().sort(),d=h.slice().sort();return!(u.length!==h.length||!f.every((function(t,e){return t===d[e]})))&&(this.get('state')===i&&this.get('mediaText')===s&&this.get('selectorsAdd')===a&&this.get('atRuleType')===l)}}]),n}(d.Model.extend(g.Z)),C=p().Collection;const k=C.extend({model:O,initialize:function(t,e){var n=this;e&&e.em&&(this.editor=e.em),setTimeout((function(){n.on('remove',n.onRemove),n.on('add',n.onAdd)}))},toJSON:function(t){return C.prototype.toJSON.call(this,t).filter((function(t){return t.style&&!t.shallow}))},onAdd:function(t,e,n){t.ensureSelectors(t,e,n)},onRemove:function(t){var e=this.editor;e.stopListening(t),e.get('UndoManager').remove(t)},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=this.editor.get('Parser').parseCss(t)),e.em=this.editor,C.prototype.add.apply(this,[t,e])}});var S=n(4868),P=n(8490);function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e=0&&!s&&(r.css=i.em.getCss()),o.indexOf('styles')>=0&&(r.styles=JSON.stringify(e)),n||i.stm.store(r),r}},add:function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=n||'',l=r||'',c=T({},o),u=this.get(t,a,l,c);return u&&u.config&&!u.config.singleAtRule||(c.state=a,c.mediaText=l,c.selectors=[],l&&(c.atRuleType='media'),(u=new O(c,i)).get('selectors').add(t,s),e.add(u,s)),u},get:function(n,r,i,s){var a=n;if((0,o.isString)(n)){var l=t.get('SelectorManager'),c=n.split(',')[0].trim(),u=t.get('Parser').parserCss.checkNode({selectors:c})[0];a=l.get(u.selectors)}return e.find((function(t){return t.compare(a,r,i,s)}))||null},getAll:function(){return e},addCollection:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[];(0,o.isString)(e)&&(e=t.get('Parser').parseCss(e));for(var l=e instanceof Array?e:[e],c=0,u=l.length;c2&&void 0!==arguments[2]?arguments[2]:{},i=r.atRuleType,o=r.atRuleParams,s=t.get('Parser').parserCss.checkNode({selectors:e,style:n})[0],a=s.state,l=s.selectorsAdd,c=t.get('SelectorManager'),u=c.add(s.selectors),h=this.add(u,a,o,{selectorsAdd:l,atRule:i});return h.setStyle(n,r),h},getRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.get('SelectorManager'),i=t.get('Parser').parserCss.checkNode({selectors:e})[0],o=r.get(i.selectors),s=i.state,a=i.selectorsAdd,l=n.atRuleType,c=n.atRuleParams;return o&&this.get(o,s,c,{selectorsAdd:a,atRule:l})},getRules:function(t){var e=this.getAll();if(!t)return(0,r.Z)(e.models);var n=(0,o.isString)(t)?t.split(',').map((function(t){return t.trim()})):t;return e.filter((function(t){return n.indexOf(t.getSelectors().getFullString())>=0}))},setIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.addOpts,s=void 0===i?{}:i,a=r.mediaText,l=r.state||'',c=(0,o.isUndefined)(a)?t.getCurrentMedia():a,u=t.get('SelectorManager'),h=u.add({name:e,type:P.Z.TYPE_ID},s),f=this.add(h,l,c,{},s);return f.setStyle(n,T(T({},r),s)),f},getIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.mediaText,i=n.state||'',s=(0,o.isUndefined)(r)?t.getCurrentMedia():r,a=t.get('SelectorManager').get(e,P.Z.TYPE_ID);return a&&this.get(a,i,s)},setClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.state||'',o=r.mediaText||t.getCurrentMedia(),s=t.get('SelectorManager'),a=s.add({name:e,type:P.Z.TYPE_CLASS}),l=this.add(a,i,o);return l.setStyle(n,r),l},getClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state||'',i=n.mediaText||t.getCurrentMedia(),o=t.get('SelectorManager').get(e,P.Z.TYPE_CLASS);return o&&this.get(o,r,i)},remove:function(t,e){var n=(0,o.isString)(t)?this.getRules(t):t,r=this.getAll().remove(n,e);return(0,o.isArray)(r)?r:[r]},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().reset(null,t),this},getComponentRules:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state,i=n.mediaText,s=n.current;s&&(r=t.get('state')||'',i=t.getCurrentMedia());var a=e.getId(),l=this.getAll().filter((function(t){if(((0,o.isUndefined)(r)||t.get('state')===r)&&((0,o.isUndefined)(i)||t.get('mediaText')===i))return t.getSelectorsString()==="#".concat(a)}));return l},render:function(){return n&&n.remove(),(n=new S.Z({collection:e,config:i})).render().el},destroy:function(){e.reset(),e.stopListening(),n&&n.remove(),[t,e,n].forEach((function(t){return null})),i={}}}}},4868:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(2316),i=n.n(r);const o=i().View.extend({tagName:'style',initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,'change',this.render),this.listenTo(e,'destroy remove',this.remove),this.listenTo(e.get('selectors'),'change',this.render)},render:function(){var t=this.model,e=this.el,n=t.get('important');return e.innerHTML=t.toCSS({important:n}),this}}),s=o.extend({_createElement:function(t){return document.createTextNode('')},render:function(){var t=this.model,e=t.get('important');return this.el.textContent=t.getDeclaration({important:e}),this}});var a=i().$,l=function(t,e){return"".concat(t).concat(e?"-".concat(parseFloat(e)):'')};const c=i().View.extend({initialize:function(t){var e=t.config||{};this.atRules={},this.config=e,this.em=e.em,this.pfx=e.stylePrefix||'',this.className=this.pfx+'rules';var n=this.collection;this.listenTo(n,'add',this.addTo),this.listenTo(n,'reset',this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){if(this.renderStarted){var n,r,i=e||null,a={model:t,config:this.config};if('keyframes'===t.get('atRuleType')){var c=t.getAtRule(),u=this.atRules[c];if(!u){var h=document.createElement('style');u=document.createTextNode(''),h.appendChild(document.createTextNode("".concat(c,"{"))),h.appendChild(u),h.appendChild(document.createTextNode("}")),this.atRules[c]=u,n=h}r=new s(a),u.appendData(r.render().el.textContent)}else n=(r=new o(a)).render().el;var f=this.className,d=t.get('mediaText'),p=l(f),g=p;if(d&&(g=l(f,this.getMediaWidth(d))),n){var v,m=i||this.el;try{v=m.querySelector("#".concat(g))}catch(t){}v||(v=m.querySelector("#".concat(p))),v.appendChild(n)}return n}},getMediaWidth:function(t){return t&&t.replace("(".concat(this.em.getConfig('mediaCondition'),": "),'').replace(')','')},render:function(){var t=this;this.renderStarted=1,this.atRules={};var e=this.em,n=this.$el,r=this.className,i=this.collection,o=document.createDocumentFragment();n.empty();var s=e.get('DeviceManager').getAll().pluck('priority');return s.every((function(t){return t}))&&s.unshift(0),s.forEach((function(t){return a("
")).appendTo(o)})),i.each((function(e){return t.addToCollection(e,o)})),n.append(o),n.attr('class',r),this}})},2004:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>L,evAdd:()=>E,evAddBefore:()=>j,evAll:()=>k,evPfx:()=>S,evRemove:()=>D,evRemoveBefore:()=>M,evSelect:()=>P,evSelectBefore:()=>_,evUpdate:()=>T});var r=n(4942),i=n(9050),o=n(9304);const s={default:null,devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'770px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{name:'',width:null,height:'',widthMedia:null,priority:null}}},{key:"initialize",value:function(){var t=this;null===this.get('widthMedia')&&this.set('widthMedia',this.get('width')),null===this.get('width')&&this.set('width',this.get('widthMedia')),!this.get('priority')&&this.set('priority',parseFloat(this.get('widthMedia'))||0);['width','height','widthMedia'].forEach((function(e){return t.checkUnit(e)}))}},{key:"checkUnit",value:function(t){var e=this.get(t)||'';(parseFloat(e)||0).toString()===e.toString()&&this.set(t,"".concat(e,"px"))}},{key:"getName",value:function(){return this.get('name')||this.get('id')}},{key:"getWidthMedia",value:function(){return this.get('widthMedia')||''}}]),n}(f.Model);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"comparator",value:function(t,e){var n=Number.MAX_VALUE;return(e.get('priority')||n)-(t.get('priority')||n)}},{key:"getSorted",value:function(){return this.sort()}}]),n}(f.Collection);v.prototype.model=p;var m,y=n(168),b=n(1629);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var x=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.ppfx,n=t.label;return(0,b.Z)(m||(m=(0,y.Z)(["\n
","
\n
\n \n \n \n
\n
\n
\n
\n \n "])),e,n,e,e,e,e,e,e,e)}},{key:"events",value:function(){return{change:'updateDevice'}}},{key:"initialize",value:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||'',this.events['click .'+this.ppfx+'add-trasp']=this.startAdd,this.listenTo(this.em,'change:device',this.updateSelect),this.delegateEvents()}},{key:"startAdd",value:function(){}},{key:"updateDevice",value:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():'';t.set('device',n)}}},{key:"updateSelect",value:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),r=n?n.get('id'):'';e.val(r)}}},{key:"getOptions",value:function(){var t=this.collection,e=this.em,n='';return t.each((function(t){var r=t.attributes,i=r.name,o=r.id,s=e&&e.t&&e.t("deviceManager.devices.".concat(o))||i;n+="")})),n}},{key:"render",value:function(){var t=this.em,e=this.ppfx,n=this.$el,r=this.el,i=t&&t.t&&t.t('deviceManager.device');return n.html(this.template({ppfx:e,label:i})),this.devicesEl=n.find(".".concat(e,"devices")),this.devicesEl.append(this.getOptions()),this.devicesEl.val(t.get('device')),r.className="".concat(e,"devices-c"),this}}]),n}(f.View);function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=n=C(C({},s),r),o=i.em;return t=new v,n.devices.forEach((function(t){return e.add(t)})),this.em=o,this.all=t,this.select(n.default||t.at(0)),this.__initListen(),o.on(A,this._onSelect,this),this},_onSelect:function(t,e,n){var r=this.em,i=this.events,o=t.previous('device'),s=this.get(e),a=i.select;r.trigger(a,s,this.get(o)),this.__catchAllEvent(a,s,n)},add:function(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r;if((0,i.isString)(e)){var s=r;n=C(C({},o=arguments[2]||{}),{},{id:e,name:o.name||e,width:s})}else n=e;return n.id||(n.id=n.name||this._createId()),t.add(n,o)},get:function(e){return this.getAll().filter((function(t){return t.get('name')===e}))[0]||t.get(e)||null},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getDevices:function(){return t.models},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.isString)(t)?this.get(t):t;return n&&this.em.set('device',n.get('id'),e),this},getSelected:function(){return this.get(this.em.get('device'))},getAll:function(){return t},render:function(){return e&&e.remove(),(e=new x({collection:t,config:n})).render().el},destroy:function(){t.stopListening(),t.reset(),e&&e.remove(),[t,e].forEach((function(t){return null})),n={}}})}},9831:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>ue});var r=n(4942),i=n(1002),o=n(9050);const s={stylePrefix:'comp-',components:[],draggableComponents:1,storeWrapper:0,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']};var a=n(9138),l=n(8431),c=n(2169),u=n(5671),h=n(3144),f=n(9340),d=n(3930),p=n(1120);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var v=function(t){(0,f.Z)(n,t);var e=g(n);function n(){return(0,u.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"tagName",value:function(){return'div'}}]),n}(c.Z),m=n(3505),y=n(6183);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e=0}}),O=c.Z.extend({});function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){a.ZP.prototype.initialize.apply(this,arguments);var n=this.get('attributes'),r=n.src;r&&this.set('src',r,{silent:1})},initToolbar:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.get(t.fallback?'fallback':'src')||'',n=e;return e&&'1&&void 0!==arguments[1]?arguments[1]:{};if('a'===(0,y.toLowerCase)(t.tagName)){var r=n.textTags||[];e={type:ct,editable:!1};var i=t.childNodes,s=i.length;s||delete e.editable,(0,o.forEach)(i,(function(t){var n=t.tagName;(3==t.nodeType&&''!==t.textContent.trim()||n&&r.indexOf((0,y.toLowerCase)(n))>=0)&&delete e.editable}))}return e};var ht=n(5861),ft=n(7757),dt=n.n(ft);function pt(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 gt(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},canActivate:function(){var t,e=this.model,n=this.rteEnabled,r=this.em,i=(null==r?void 0:r.getEditing())===e,o=!0,s=!1;if((n||!e.get('editable')||i||(s=e.isChildOf('text')))&&(o=!1,s&&!e.get('textable'))){for(var a=e.parent();a&&!a.isInstanceOf('text');)a=a.parent();a&&a.get('editable')?t=a:o=!0}return{result:o,delegate:t}},onActive:function(t){var e=this;return(0,ht.Z)(dt().mark((function n(){var r,i,o,s,a,l,c;return dt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=e.rte,o=e.em,s=e.canActivate(),a=s.result,l=s.delegate,a){n.next=5;break}return l&&(null==t||null===(c=t.stopPropagation)||void 0===c||c.call(t),o.setSelected(l),l.trigger('active',t)),n.abrupt("return");case 5:if(null==t||null===(r=t.stopPropagation)||void 0===r||r.call(t),e.lastContent=e.getContent(),!i){n.next=17;break}return n.prev=8,n.next=11,i.enable(e,e.activeRte,{event:t});case 11:e.activeRte=n.sent,n.next=17;break;case 14:n.prev=14,n.t0=n.catch(8),o.logError(n.t0);case 17:e.toggleEvents(1);case 18:case"end":return n.stop()}}),n,null,[[8,14]])})))()},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=arguments,e=this;return(0,ht.Z)(dt().mark((function n(){var r,i,o,s,a,l;return dt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.model,o=e.rte,s=e.activeRte,a=e.em,l=i&&i.get('editable'),!o){n.next=13;break}return n.prev=4,n.next=7,o.disable(e,s);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),a.logError(n.t0);case 12:l&&e.getContent()!==e.lastContent&&(e.syncContent(r),e.lastContent='');case 13:e.toggleEvents();case 14:case"end":return n.stop()}}),n,null,[[4,9]])})))()},getContent:function(){var t=this.activeRte;return t&&'function'==typeof t.getContent?t.getContent():this.getChildrenContainer().innerHTML},syncContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.rte,r=this.rteEnabled;if(r||t.force){var i=this.getContent(),o=e.components(),s=gt({fromDisable:1},t);e.set('content','',s),n.customRte?(o.length&&o.reset(null,t),e.set('content',i,s)):o.resetFromString(i,t)}},insertComponent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=this.el,i=r.ownerDocument,o=i.getSelection();if(null!=o&&o.rangeCount){var s,a=o.getRangeAt(0),l=a.startContainer,c=a.startOffset,u=(0,y.getModel)(l),h=[];if(u&&null!==(s=u.is)&&void 0!==s&&s.call(u,'textnode')){var f=u.collection;f.forEach((function(e){if(e===u){var n='textnode',r=e.get('content');h.push({type:n,content:r.slice(0,c)}),h.push(t),h.push({type:n,content:r.slice(c)})}else h.push(e)}));var d=h.filter(Boolean),p=d.indexOf(t);return f.reset(d,e),f.at(p)}}return n.append(t,e)},onInput:function(){var t=this.em,e='component',n=["".concat(e,":update"),"".concat(e,":input")].join(' ');t&&t.trigger(n,this.model)},disablePropagation:function(t){t.stopPropagation()},toggleEvents:function(t){var e=this.em,n=this.model,r=this.$el,i={on:y.on,off:y.off},o=t?'on':'off';e.setEditing(t?this:0),this.rteEnabled=!!t;var s=[this.el.ownerDocument,document];if(i.off(s,'mousedown',this.onDisable),i[o](s,'mousedown',this.onDisable),e[o]('toolbar:run:before',this.onDisable),n&&(n[o]('removed',this.onDisable),n.trigger("rte:".concat(t?'enable':'disable'))),r&&r.off('mousedown',this.disablePropagation),r&&r[o]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var a=this.el;a;)a.draggable=!t,(a=a.parentNode)&&'BODY'==a.tagName&&(a=0)}}),yt=mt.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return!!e.inSvg}}),Ut=c.Z.extend({_createElement:function(t){return document.createElementNS('http://www.w3.org/2000/svg',t)}});function Wt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $t(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:'',e=this.em,n='';!t&&r.stm&&(t=r.em.getCacheLoad());var i=t,s=i.components,a=i.html;if(s)if((0,o.isObject)(s)||(0,o.isArray)(s))n=s;else try{n=JSON.parse(s)}catch(t){e&&e.logError(t)}else a&&(n=a);var l=n&&n.constructor===Object;return(n&&n.length||l)&&(this.clear(),l?this.getWrapper().set(n):this.getComponents().add(n)),n},store:function(t){if(!r.stm||this.em.get('hasPages'))return{};var e={},n=this.storageKey();if(n.indexOf('html')>=0&&(e.html=r.em.getHtml()),n.indexOf('components')>=0){var i=r.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(i)}return t||r.stm.store(e),e},getComponent:function(){var t=this.em.get('PageManager').getSelected(),e=t&&t.getMainFrame();return e&&e.getComponent()},getWrapper:function(){return this.getComponent()},getComponents:function(){var t=this.getWrapper();return t&&t.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,s=void 0===r?{}:r,a=e.view,l=void 0===a?{}:a,c=e.isComponent,u=e.extend,f=e.extendView,d=e.extendFn,p=void 0===d?[]:d,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),y=this.getType(u),b=this.getType(f),w=y||(m||this.getType('default')),x=w.model,O=b?b.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'===(0,i.Z)(s)&&(e.model=x.extend(ce(ce(ce({},s),C(p,s,x)),{},{defaults:ce(ce({},(0,o.result)(x.prototype,'defaults')||{}),(0,o.result)(s,'defaults')||{})}),{isComponent:!m||y||c?c||function(){return 0}:x.isComponent})),'object'===(0,i.Z)(l)&&(e.view=O.extend(ce(ce({},l),C(v,l,O)))),m?(m.model=e.model,m.view=e.view):(e.id=t,h.unshift(e));var k="component:type:".concat(m?'update':'add');return n&&n.trigger(k,m||e),this},getType:function(t){for(var e=h,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};t&&(t.set({status:'selected'}),['component:selected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)})))},selectRemove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t){this.em;t.set({status:'',state:''}),['component:deselected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)}))}},componentHovered:function(){var t=r.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),i='hovered';n&&n.get('status')==i&&n.set({status:'',state:''}),e&&(0,o.isEmpty)(e.get('status'))&&e.set('status',i)},getShallowWrapper:function(){var t=this.shallow,e=this.em;if(!t&&e){var n=e.get('shallow');if(!n)return;var r=n.get('DomComponents');if(r.componentTypes=this.componentTypes,t=r.getWrapper()){var i=[a.GN,a.xH].join(' ');t.on(i,(0,o.debounce)((function(){return t.components('')}),100))}this.shallow=t}return t},canMove:function(t,e,n){var r=n||0===n?n:null,i={result:!1,reason:0,target:t,source:null};if(!e)return i;var s=null!=e&&e.toHTML?e:null;if(!s){var a=this.getShallowWrapper();s=null==a?void 0:a.append(e)[0]}if(i.source=s,!s)return i;var l=s.get('draggable');if((0,o.isFunction)(l))l=!!l(s,t,r);else{var c=t.getEl();l=(0,o.isArray)(l)?l.join(','):l,l=(0,o.isString)(l)?null==c?void 0:c.matches(l):l}if(!l)return ce(ce({},i),{},{reason:1});var u=t.get('droppable');if((0,o.isFunction)(u))u=!!u(s,t,r);else if(!1===u&&t.isInstanceOf('text')&&s.get('textable'))u=!0;else{var h=s.getEl();u=(0,o.isArray)(u)?u.join(','):u,u=(0,o.isString)(u)?null==h?void 0:h.matches(u):u}return ce(ce({},i),{},u?{result:!0}:{reason:2})},allById:function(){return u},getById:function(t){return u[t]||null},destroy:function(){var i=this.allById();Object.keys(i).forEach((function(t){return i[t]&&i[t].remove()})),n&&n.remove(),[r,t,u,e,n].forEach((function(t){return{}})),this.em={}}}}},9138:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>Z,OA:()=>D,GN:()=>R,xH:()=>N});var r=n(1002),i=n(2982),o=n(885),s=n(4942),a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(9050),d=n(6183),p=n(3345),g=n(2316),v=n(8431),m=n(8490),y=n(4293);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('label')||this.getName();return r&&(null===(t=this.em)||void 0===t?void 0:t.t("traitManager.traits.labels.".concat(i)))||o}},{key:"getValue",value:function(){return this.getTargetValue()}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};e.partial&&(n.avoidStore=!0),this.setTargetValue(t,n),!1===e.partial&&(this.setTargetValue(''),this.setTargetValue(t))}},{key:"props",value:function(){return this.attributes}},{key:"targetUpdated",value:function(){var t,e=this.getTargetValue();this.set({value:e},{fromTarget:1}),null===(t=this.em)||void 0===t||t.trigger('trait:update',{trait:this,component:this.target})}},{key:"getTargetValue",value:function(){var t,e=this.get('name'),n=this.target;return t=this.get('changeProp')?n.get(e):n.getAttributes()[e],(0,f.isUndefined)(t)?'':t}},{key:"setTargetValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.target,r=this.get('name');if(!(0,f.isUndefined)(t)){var i=t;if('false'===t?i=!1:'true'===t&&(i=!0),this.get('changeProp'))n.set(r,i,e);else{var o=w({},n.get('attributes'));o[r]=i,n.set('attributes',o,e)}}}},{key:"setValueFromInput",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,w(w({},n),{},{avoidStore:1})),e&&(this.set('value','',n),this.set(r,n))}},{key:"getInitValue",value:function(){var t,e=this.target,n=this.get('name');if(e){var r=e.get('attributes');t=this.get('changeProp')?e.get(n):r[n]}return t||this.get('value')||this.get('default')}}]),n}(g.Model);O.prototype.defaults={type:'text',label:'',name:'',min:'',max:'',unit:'',step:1,value:'',target:'',default:'',placeholder:'',changeProp:0,options:[]};function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k,S=function(t){(0,c.Z)(n,t);var e=C(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.listenTo(this,'add',this.handleAdd),this.listenTo(this,'reset',this.handleReset)}},{key:"handleReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels,r=void 0===n?[]:n;r.forEach((function(t){return t.trigger('remove')}))}},{key:"handleAdd",value:function(t){t.em=this.em;var e=this.target;e&&(t.target=e)}},{key:"setTarget",value:function(t){this.target=t}},{key:"add",value:function(t,e){var n=this.em;if((0,f.isString)(t)||(0,f.isArray)(t)){var r=n&&n.get&&n.get('TraitManager'),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];'string'==typeof e&&(e=[e]);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,f.bindAll)(this,'__upSymbProps','__upSymbCls','__upSymbComps');var i=r.em,o=this.parent(),s=o&&o.attributes,a=this.get('propagate');if(a&&this.set('propagate',(0,f.isArray)(a)?a:[a]),s&&s.propagate&&!a){var l={},c=s.propagate;c.forEach((function(t){return l[t]=o.get(t)})),l.propagate=c,this.set(_(_({},l),e))}if(r&&r.config&&r.config.voidElements.indexOf(this.get('tagName'))>=0&&this.set('void',!0),r.em=i,this.opt=r,this.em=i,this.frame=r.frame,this.config=r.config||{},this.set('attributes',_(_({},(0,f.result)(this,'defaults').attributes||{}),this.get('attributes')||{})),this.ccid=n.createId(this,r),this.initClasses(),this.initTraits(),this.initComponents(),this.initToolbar(),this.initScriptProps(),this.listenTo(this,'change:script',this.scriptUpdated),this.listenTo(this,'change:tagName',this.tagUpdated),this.listenTo(this,'change:attributes',this.attrUpdated),this.listenTo(this,'change:attributes:id',this._idUpdated),this.on('change:toolbar',this.__emitUpdateTlb),this.on('change',this.__onChange),this.on(N,this.__propToParent),this.set('status',''),this.views=[],['classes','traits','components'].forEach((function(e){var n="add remove ".concat('components'!==e?'change':'');t.listenTo(t.get(e),n.trim(),(function(){for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e&&e.get('UndoManager'),r=this.components();n&&!this.__hasUm&&(n.add(r),n.add(this.getSelectors()),this.__hasUm=1),t.recursive&&r.map((function(e){return e.__postAdd(t)}))}},{key:"__postRemove",value:function(){var t=this.em,e=t&&t.get('UndoManager');e&&(e.remove(this.components()),e.remove(this.getSelectors()),delete this.__hasUm)}},{key:"__onChange",value:function(t,e){var n=this.changedAttributes();['status','open','toolbar','traits'].forEach((function(t){return delete n[t]})),(0,d.isEmptyObj)(n)||(this.__changesUp(e),this.__propSelfToParent({component:this,changed:n,options:e}))}},{key:"__changesUp",value:function(t){var e=this.em;[this.frame,e].forEach((function(e){return e&&e.changesUp(t)}))}},{key:"__propSelfToParent",value:function(t){this.trigger(R,t),this.__propToParent(t)}},{key:"__propToParent",value:function(t){var e=this.parent();e&&e.trigger(N,t)}},{key:"__emitUpdateTlb",value:function(){this.emitUpdate('toolbar')}},{key:"is",value:function(t){return!(this.get('type')!=t)}},{key:"props",value:function(){return this.attributes}},{key:"index",value:function(){var t=this.collection;return t?t.indexOf(this):0}},{key:"setDragMode",value:function(t){return this.set('dmode',t)}},{key:"find",value:function(t){var e=[],n=this.view.$el.find(t);return n.each((function(t){var r=n.eq(t).data('model');r&&e.push(r)})),e}},{key:"findType",value:function(t){var e=[];return function n(r){return r.forEach((function(r){r.is(t)&&e.push(r),n(r.components())}))}(this.components()),e}},{key:"closest",value:function(t){var e=this.view.$el.closest(t);return e.length&&e.data('model')}},{key:"closestType",value:function(t){for(var e=this.parent();e&&!e.is(t);)e=e.parent();return e}},{key:"contains",value:function(t){var e=!1;if(!t)return e;var n=function n(r){!e&&r.forEach((function(r){r===t&&(e=!0),!e&&n(r.components())}))};return n(this.components()),e}},{key:"tagUpdated",value:function(){this.trigger('rerender')}},{key:"replaceWith",value:function(t){var e=this.collection,n=e.indexOf(this);return e.remove(this),e.add(t,{at:n})}},{key:"attrUpdated",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.get('attributes'),o=i.class;o&&this.setClass(o),delete i.class;var s=i.style;s&&this.setStyle(s),delete i.style;var a=_({},this.previous('attributes')),l=(0,d.shallowDiff)(a,this.get('attributes'));(0,f.keys)(l).forEach((function(t){return n.trigger("change:attributes:".concat(t),n,l[t],r)}))}},{key:"setAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.set('attributes',_({},t),e),this}},{key:"addAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setAttributes(_(_({},this.getAttributes({noClass:1})),t),e)}},{key:"removeAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.getAttributes();return n.map((function(t){return delete r[t]})),this.setAttributes(r,e)}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=(0,f.isString)(t)?t:'',i=r?e:t;if(n&&n.getConfig('avoidInlineStyle')&&!i.inline){var o=n.get('state'),s=n.get('CssComposer'),a=s.getIdRule(this.getId(),_({state:o},i));if(this.rule=a,a)return a.getStyle(r)}return p.Z.getStyle.call(this,r)}},{key:"setStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=this.opt;if(r&&r.getConfig('avoidInlineStyle')&&!i.temporary&&!n.inline){var o=this.get('style')||{};e=_(_({},e=(0,f.isString)(e)?this.parseStyle(e):e),o);var s=r.get('state'),a=r.get('CssComposer'),l=this.getStyle(n);this.rule=a.setIdRule(this.getId(),e,_(_({},n),{},{state:s}));var c=(0,d.shallowDiff)(l,e);this.set('style','',{silent:1}),(0,f.keys)(c).forEach((function(e){return t.trigger("change:style:".concat(e))}))}else e=p.Z.setStyle.apply(this,arguments);return e}},{key:"getAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=[],i=_({},this.get('attributes')),o=n&&n.get('SelectorManager'),s=this.getId();if(e.noClass||(this.get('classes').forEach((function(t){return r.push((0,f.isString)(t)?t:t.get('name'))})),r.length&&(i.class=r.join(' '))),!e.noStyle){var a=this.get('style');(0,d.isObject)(a)&&!(0,d.isEmptyObj)(a)&&(i.style=this.styleToString({inline:1}))}(0,f.has)(i,'id')||(j(n)?t=o&&o.get(s,o.Selector.TYPE_ID):(0,f.isEmpty)(this.getStyle())||(t=1),(this.__getSymbol()||this.__getSymbols())&&(t=1),t&&(i.id=s));return i}},{key:"addClass",value:function(t){var e=this.em.get('SelectorManager').addClass(t);return this.get('classes').add(e)}},{key:"setClass",value:function(t){return this.get('classes').reset(),this.addClass(t)}},{key:"removeClass",value:function(t){var e=[];t=(0,f.isArray)(t)?t:[t];var n=this.get('classes'),r=m.Z.TYPE_CLASS;return t.forEach((function(t){t.split(' ').forEach((function(t){var i=n.where({name:t,type:r})[0];i&&e.push(n.remove(i))}))})),e}},{key:"getClasses",value:function(){var t=this.getAttributes().class;return t?t.split(' '):[]}},{key:"__logSymbol",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.__getSymbol(),i=this.__getSymbols();(r||i)&&this.em.log(t,{model:this,toUp:e,context:'symbols',opts:n})}},{key:"__initSymb",value:function(){this.__symbReady||(this.on('change',this.__upSymbProps),this.__symbReady=1)}},{key:"__isSymbol",value:function(){return(0,f.isArray)(this.get(M))}},{key:"__isSymbolOrInst",value:function(){return!(!this.__isSymbol()&&!this.get(A))}},{key:"__isSymbolTop",value:function(){var t=this.parent();return this.__isSymbolOrInst()&&(!t||t&&!t.__isSymbol()&&!t.__getSymbol())}},{key:"__isSymbolNested",value:function(){if(!this.__isSymbolOrInst()||this.__isSymbolTop())return!1;var t=(this.__isSymbol()?this:this.__getSymbol()).__getSymbTop(),e=this.__getSymbTop();return(e.__isSymbol()?e:e.__getSymbol())!==t}},{key:"__getAllById",value:function(){var t=this.em;return t?t.get('DomComponents').allById():{}}},{key:"__getSymbol",value:function(){var t=this.get(A);if(t&&(0,f.isString)(t)){var e=this.__getAllById()[t];e?(t=e,this.set(A,e)):t=0}return t}},{key:"__getSymbols",value:function(){var t=this,e=this.get(M);return e&&(0,f.isArray)(e)&&(e.forEach((function(n,r){n&&(0,f.isString)(n)&&(e[r]=t.__getAllById()[n])})),e=e.filter((function(t){return t&&!(0,f.isString)(t)}))),e}},{key:"__isSymbOvrd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.get(L),n=t.split(':'),r=(0,o.Z)(n,1),i=r[0],s=t!==i?[t,i]:[t];return!0===e||(0,f.isArray)(e)&&s.some((function(t){return e.indexOf(t)>=0}))}},{key:"__getSymbToUp",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[],r=this.em,o=e.changed,s=r&&r.get('symbols');if(e.fromInstance||e.noPropagate||e.fromUndo||!s||o&&this.__isSymbOvrd(o))return n;var a=this.__getSymbols()||[],l=this.__getSymbol(),c=l?[l].concat((0,i.Z)(l.__getSymbols()||[])):a;return n=c.filter((function(e){return e!==t})).filter((function(t){return!(o&&t.__isSymbOvrd(o))}))}},{key:"__getSymbTop",value:function(t){for(var e=this,n=this.parent(t);n&&(n.__isSymbol()||n.__getSymbol());)e=n,n=n.parent(t);return e}},{key:"__upSymbProps",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.changedAttributes(),i=r.attributes||{};if(delete r.status,delete r.open,delete r.__symbols,delete r.__symbol,delete r.__symbol_ovrd,delete r.attributes,delete i.id,(0,d.isEmptyObj)(i)||(r.attributes=i),!(0,d.isEmptyObj)(r)){var o=this.__getSymbToUp(n);(0,f.keys)(r).map((function(t){e.__isSymbOvrd(t)&&delete r[t]})),this.__logSymbol('props',o,{opts:n,changed:r}),o.forEach((function(t){var i=_({},r);(0,f.keys)(i).map((function(e){t.__isSymbOvrd(e)&&delete i[e]})),t.set(i,_({fromInstance:e},n))}))}}},{key:"__upSymbCls",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.__getSymbToUp(r);this.__logSymbol('classes',i,{opts:r}),i.forEach((function(t){t.set('classes',n.get('classes'),{fromInstance:n})})),this.__changesUp(r)}},{key:"__upSymbComps",value:function(t,e,n){var r=this,o=n||e||{},s={fromInstance:o.fromInstance,fromUndo:o.fromUndo},a=t.opt.temporary;if(n)if(n.add){var l=[],c=!!this.__getSymbols(),u=this.__getSymbToUp(_(_({},s),{},{changed:'components:add'}));if(u.length){var h=t.__getSymbol();l=(h?h.__getSymbols():t.__getSymbols())||[],(l=(0,i.Z)(l)).push(h||t)}!a&&this.__logSymbol('add',u,{opts:n,addedInstances:l.map((function(t){return t.cid})),added:t.cid}),u.forEach((function(e){var i=e.__getSymbTop(),o=l.filter((function(t){var e=t.__getSymbTop({prev:1});return i&&e&&e===i}))[0]||t.clone({symbol:1,symbolInv:c});e.append(o,_({fromInstance:r},n))}))}else{var f=t.__getSymbol();if(f&&!n.temporary&&f.set(M,f.__getSymbols().filter((function(e){return e!==t}))),!t.__isSymbolTop()){var d='components:remove',p=n.index,g=t.parent(),v=_({fromInstance:t},n),m=t.__isSymbolNested(),y=function(t){var e=t.parent();e&&!e.__isSymbOvrd(d)&&t.remove(v)},b=g.__isSymbOvrd(d)?[]:t.__getSymbToUp(s);m&&(b=g.__getSymbToUp(_(_({},s),{},{changed:d})),y=function(t){var e=t.components().at(p);e&&e.remove(_({fromInstance:g},v))}),!a&&this.__logSymbol('remove',b,{opts:n,removed:t.cid,isSymbNested:m}),b.forEach(y)}}else{var w=this.__getSymbToUp(_(_({},s),{},{changed:'components:reset'}));this.__logSymbol('reset',w,{components:t.models}),w.forEach((function(n){var i=t.models.map((function(t){return t.clone({symbol:1})}));n.components().reset(i,_({fromInstance:r},e))}))}this.__changesUp(o)}},{key:"initClasses",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r='change:classes',i=this.get('attributes').class||[],o=[this,r,this.initClasses],s=this.get('classes')||i,a=(0,f.isString)(s)?s.split(' '):s;this.stopListening.apply(this,o);var l=this.normalizeClasses(a),c=new y.Z([]);return this.set('classes',c,n),c.add(l),c.on('add remove reset',this.__upSymbCls),this.listenTo.apply(this,o),this}},{key:"initComponents",value:function(){var t=[this,'change:components',this.initComponents];this.stopListening.apply(this,t);var e=new v.Z(null,this.opt);e.parent=this;var n=this.get('components'),r=!this.opt.avoidChildren;return this.set('components',e),r&&n&&e.add((0,f.isFunction)(n)?n(this):n,this.opt),e.on('add remove reset',this.__upSymbComps),this.listenTo.apply(this,t),this}},{key:"initTraits",value:function(t){var e=this.em,n='change:traits';this.off(n,this.initTraits),this.__loadTraits();var r=_({},this.get('attributes')),i=this.get('traits');return i.each((function(t){if(!t.get('changeProp')){var e=t.get('name'),n=t.getInitValue();e&&n&&(r[e]=n)}})),i.length&&this.set('attributes',r),this.on(n,this.initTraits),t&&e&&e.trigger('component:toggled'),this}},{key:"initScriptProps",value:function(){if(!this.opt.temporary){var t='script-props',e=["change:".concat(t),this.initScriptProps];this.off.apply(this,e);var n=this.previous(t)||[],r=this.get(t)||[],i=n.map((function(t){return"change:".concat(t)})).join(' '),o=r.map((function(t){return"change:".concat(t)})).join(' ');i&&this.off(i,this.__scriptPropsChange),o&&this.on(o,this.__scriptPropsChange),this.on.apply(this,e)}}},{key:"__scriptPropsChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.avoidStore||this.trigger('rerender')}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,f.isArray)(t)?t:[t],r=n.map((function(t){return(0,f.isString)(t)||t.collection&&t.collection.remove(t,{temporary:1}),t})),i=this.components().add(r,e);return(0,f.isArray)(i)?i:[i]}},{key:"components",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('components');return(0,f.isUndefined)(t)?n:(n.reset(null,e),t?this.append(t,e):[])}},{key:"getChildAt",value:function(t){return this.components().at(t||0)||null}},{key:"getLastChild",value:function(){var t=this.components();return t.at(t.length-1)||null}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.components().reset(null,t),this}},{key:"parent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.collection||t.prev&&this.prevColl;return e?e.parent:null}},{key:"scriptUpdated",value:function(){this.set('scriptUpdated',1)}},{key:"initToolbar",value:function(){var t=this.em,e=this,n=t&&t.getConfig('stylePrefix')||'';if(!e.get('toolbar')&&t){var r=[];e.collection&&r.push({label:t.getIcon('arrowUp'),command:function(t){return t.runCommand('core:component-exit',{force:1})}}),e.get('draggable')&&r.push({attributes:{class:"".concat(n,"no-touch-actions"),draggable:!0},label:t.getIcon('move'),command:'tlb-move'}),e.get('copyable')&&r.push({label:t.getIcon('copy'),command:'tlb-clone'}),e.get('removable')&&r.push({label:t.getIcon('delete'),command:'tlb-delete'}),e.set('toolbar',r)}}},{key:"__loadTraits",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t||this.get('traits');if(!(n instanceof S)){n=(0,f.isFunction)(n)?n(this):n;var r=new S([],this.opt);r.setTarget(this),n.length&&(n.forEach((function(t){return t.attributes&&delete t.attributes.value})),r.add(n)),this.set({traits:r},e)}return this}},{key:"getTraits",value:function(){return this.__loadTraits(),(0,i.Z)(this.get('traits').models)}},{key:"setTraits",value:function(t){var e=(0,f.isArray)(t)?t:[t];return this.set({traits:e}),this.getTraits()}},{key:"getTrait",value:function(t){return this.getTraits().filter((function(e){return e.get('id')===t||e.get('name')===t}))[0]||null}},{key:"updateTrait",value:function(t,e){var n,r=this.getTrait(t);return r&&r.set(e),null===(n=this.em)||void 0===n||n.trigger('component:toggled'),this}},{key:"getTraitIndex",value:function(t){var e=this.getTrait(t);return e?this.get('traits').indexOf(e):-1}},{key:"removeTrait",value:function(t){var e,n=this,r=((0,f.isArray)(t)?t:[t]).map((function(t){return n.getTrait(t)})),i=this.get('traits'),o=r.length?i.remove(r):[];return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,f.isArray)(o)?o:[o]}},{key:"addTrait",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.__loadTraits();var r=this.get('traits').add(t,n);return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,f.isArray)(r)?r:[r]}},{key:"normalizeClasses",value:function(t){var e=[],n=this.em,r=n&&n.get('SelectorManager');if(r)return t.models?(0,i.Z)(t.models):(t.forEach((function(t){return e.push(r.add(t))})),e)}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=_({},this.attributes),r=_({},this.opt),o=this.getId(),s=e&&e.get('CssComposer');n.attributes=_({},n.attributes),delete n.attributes.id,n.components=[],n.classes=[],n.traits=[],this.__isSymbolTop()&&(t.symbol=1),this.get('components').each((function(e,r){n.components[r]=e.clone(_(_({},t),{},{_inner:1}))})),this.get('traits').each((function(t,e){n.traits[e]=t.clone()})),this.get('classes').each((function(t,e){n.classes[e]=t.get('name')})),n.status='',r.collection=null;var a=new this.constructor(n,r),l="#".concat(a.getId()),c=s?s.getRules("#".concat(o)):[];c.forEach((function(t){var e=t.clone();e.set('selectors',[l]),s.getAll().add(e)})),a.set(M,0);var u=this.__getSymbol(),h=this.__getSymbols();t.symbol||!u&&!h?u?(u.set(M,[].concat((0,i.Z)(u.__getSymbols()),[a])),a.__initSymb()):t.symbol&&(this.__isSymbol()?(this.set(M,[].concat((0,i.Z)(h),[a])),a.set(A,this),a.__initSymb()):t.symbolInv?(this.set(M,[a]),a.set(A,this),[this,a].map((function(t){return t.__initSymb()}))):(a.set(M,[this]),[this,a].map((function(t){return t.__initSymb()})),this.set(A,a))):(a.set(A,0),a.set(M,0));var f='component:clone';return e&&e.trigger(f,a),this.trigger(f,a),a}},{key:"getName",value:function(){var t=this.em,e=this.attributes,n=e.type,r=e.tagName,i=e.name,o=n||r,s=!n&&r,a='domComponents.names.',l=i&&(null==t?void 0:t.t("".concat(a).concat(i))),c=s&&(null==t?void 0:t.t("".concat(a).concat(s))),u=t&&(t.t("".concat(a).concat(n))||t.t("".concat(a).concat(r)));return this.get('custom-name')||l||i||c||(0,d.capitalize)(s)||u||(0,d.capitalize)(o)}},{key:"getIcon",value:function(){var t=this.get('icon');return t?t+' ':''}},{key:"toHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=[],r=t.tag,i=r||e.get('tagName'),o=e.get('void'),s=t.attributes,a=this.getAttrToHTML();if(delete t.tag,s&&((0,f.isFunction)(s)?a=s(e,a)||{}:(0,d.isObject)(s)&&(a=s)),t.withProps){var l=this.toJSON();(0,f.forEach)(l,(function(t,e){'_'!==e[0]&&['classes','attributes','components'].indexOf(e)<0&&(a["data-gjs-".concat(e)]=(0,f.isArray)(t)||(0,d.isObject)(t)?JSON.stringify(t):t)}))}for(var c in a){var u=a[c];if(!(0,f.isUndefined)(u)&&null!==u)if((0,f.isBoolean)(u))u&&n.push(c);else{var h='';if(t.altQuoteAttr&&(0,f.isString)(u)&&u.indexOf('"')>=0)h="'".concat(u.replace(/'/g,'''),"'");else{var p=(0,f.isString)(u)?u.replace(/"/g,'"'):u;h="\"".concat(p,"\"")}n.push("".concat(c,"=").concat(h))}}var g=n.length?" ".concat(n.join(' ')):'',v=e.getInnerHTML(t),m="<".concat(i).concat(g).concat(o?'/':'',">").concat(v);return!o&&(m+="")),m}},{key:"getInnerHTML",value:function(t){return this.__innerHTML(t)}},{key:"__innerHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.components();return e.length?e.map((function(e){return e.toHTML(t)})).join(''):this.get('content')}},{key:"getAttrToHTML",value:function(){var t=this.getAttributes();return delete t.style,t}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=g.Model.prototype.toJSON.call(this,t);if(e.attributes=this.getAttributes(),delete e.attributes.class,delete e.toolbar,delete e.traits,delete e.status,delete e.open,!t.fromUndo){var n=e.__symbol,r=e.__symbols;r&&(0,f.isArray)(r)&&(e.__symbols=r.filter((function(t){return t})).map((function(t){return t.getId?t.getId():t}))),n&&!(0,f.isString)(n)&&(e.__symbol=n.getId())}return this.em.getConfig('avoidDefaults')&&this.getChangedProps(e),e}},{key:"getChangedProps",value:function(t){var e=t||g.Model.prototype.toJSON.apply(this),n=(0,f.result)(this,'defaults');return(0,f.forEach)(n,(function(t,n){-1===['type'].indexOf(n)&&e[n]===t&&delete e[n]})),(0,f.isEmpty)(e.type)&&delete e.type,(0,f.forEach)(['attributes','style'],(function(t){(0,f.isEmpty)(n[t])&&(0,f.isEmpty)(e[t])&&delete e[t]})),(0,f.forEach)(['classes','components'],(function(t){(!e[t]||(0,f.isEmpty)(n[t])&&!e[t].length)&&delete e[t]})),e}},{key:"getId",value:function(){return(this.get('attributes')||{}).id||this.ccid||this.cid}},{key:"setId",value:function(t,e){var n=_({},this.get('attributes'));return n.id=t,this.set('attributes',n,e),this}},{key:"getEl",value:function(t){var e=this.getView(t);return e&&e.el}},{key:"getView",value:function(t){var e=this.view,n=this.views;return t&&(e=n.filter((function(e){return e._getFrame()===t.view}))[0]),e}},{key:"getCurrentView",value:function(){var t=(this.em.get('currentFrame')||{}).model;return this.getView(t)}},{key:"__getScriptProps",value:function(){var t=this.props();return(this.get('script-props')||[]).reduce((function(e,n){return e[n]=t[n],e}),{})}},{key:"getScriptString",value:function(t){var e=this,n=t||this.get('script');if(!n)return n;if(this.get('script-props'))n=n.toString().trim();else{if('function'==typeof n){var i=n.toString().trim();n=(i=i.replace(/^function[\s\w]*\(\)\s?\{/,'').replace(/\}$/,'')).trim()}var o=this.em.getConfig(),s=E(o.tagVarStart||'{[ '),a=E(o.tagVarEnd||' ]}'),l=new RegExp("".concat(s,"([\\w\\d-]*)").concat(a),'g');n=n.replace(l,(function(t,n){e.scriptUpdated();var i=e.attributes[n]||'';return(0,f.isArray)(i)||'object'==(0,r.Z)(i)?JSON.stringify(i):i}))}return n}},{key:"emitUpdate",value:function(t){for(var e=this.em,n=R+(t?":".concat(t):''),r=t&&this.get(t),i=arguments.length,o=new Array(i>1?i-1:0),a=1;a=0&&this.__propSelfToParent({component:this,changed:(0,s.Z)({},t,r),options:o[2]||o[1]||{}})}},{key:"onAll",value:function(t){return(0,f.isFunction)(t)&&(t(this),this.components().forEach((function(e){return e.onAll(t)}))),this}},{key:"remove",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=this.collection,i=function(){r&&r.remove(t,_(_({},e),{},{action:'remove-component'})),e.root&&t.components('')},o=_({},e);return[this,n].map((function(e){return e.trigger('component:remove:before',t,i,o)})),!o.abort&&i(),this}},{key:"move",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.remove({temporary:1}),t&&t.append(this,e),this}},{key:"isInstanceOf",value:function(t){var e,n,r=null===(e=this.em)||void 0===e||null===(n=e.get('DomComponents').getType(t))||void 0===n?void 0:n.model;return!!r&&this instanceof r}},{key:"isChildOf",value:function(t){for(var e=(0,f.isString)(t),n=this.parent();n;){if(e){if(n.isInstanceOf(t))return!0}else if(n===t)return!0;n=n.parent()}return!1}},{key:"resetId",value:function(){var t=this.em,e=this.getId();if(e){var r=n.createId(this);this.setId(r);var i=t&&t.get('CssComposer').getIdRule(e),o=i&&i.get('selectors').at(0);return o&&o.set('name',r),this}}},{key:"_getStyleRule",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.id,n=this.em,r=e||this.getId();return n&&n.get('CssComposer').getIdRule(r)}},{key:"_getStyleSelector",value:function(t){var e=this._getStyleRule(t);return e&&e.get('selectors').at(0)}},{key:"_idUpdated",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r.idUpdate){var i=this.ccid,o=this.get('attributes')||{},s=o.id,a=(this.previous('attributes')||{}).id||i,l=n.getList(this);if(l[s]||!s&&a)return this.setId(a,{idUpdate:1});delete l[a],l[s]=this,this.ccid=s;var c=this._getStyleSelector({id:a});c&&c.set({name:s,label:s})}}}]),n}(g.Model.extend(p.Z));Z.isComponent=function(t){return{tagName:(0,d.toLowerCase)(t.tagName)}},Z.ensureInList=function(t){var e=Z.getList(t),n=t.getId(),r=e[n];if(r){if(r!==t){var i=Z.getIncrementId(n,e);t.setId(i),e[i]=t}}else e[n]=t;t.components().forEach((function(t){return Z.ensureInList(t)}))},Z.createId=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Z.getList(t),i=n.idMap,o=void 0===i?{}:i,s=t.get('attributes'),a=s.id;return a?(e=Z.getIncrementId(a,r,n),t.setId(e),a!==e&&(o[a]=e)):e=Z.getNewId(r),r[e]=t,e},Z.getNewId=function(t){for(var e=Object.keys(t).length.toString().length+2,n=(Math.random()+1.1).toString(36).slice(-e),r="i".concat(n);t[r];)r=Z.getNewId(t);return r},Z.getIncrementId=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.keepIds,i=void 0===r?[]:r,o=1,s=t;if(i.indexOf(t)<0)for(;e[s];)o++,s="".concat(t,"-").concat(o);return s},Z.getList=function(t){var e=t.opt,n=void 0===e?{}:e,r=n.domc,i=n.em,o=r||i&&i.get('DomComponents');return o?o.componentsById:{}},Z.checkId=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(0,f.isArray)(t)?t:[t],o=r.keepIds,s=void 0===o?[]:o;i.forEach((function(t){var i=t.attributes,o=void 0===i?{}:i,a=t.components,l=o.id;if(l&&n[l]&&s.indexOf(l)<0){var c=Z.getIncrementId(l,n);o.id=c,(0,f.isArray)(e)&&e.forEach((function(t){var e=t.selectors;e.forEach((function(t,n){t==="#".concat(l)&&(e[n]="#".concat(c))}))}))}a&&Z.checkId(a,e,n,r)}))},Z.getDefaults=function(){return(0,f.result)(this.prototype,'defaults')},Z.prototype.defaults=(k={tagName:'div',type:'',name:'',removable:!0,draggable:!0,droppable:!0,badgable:!0,stylable:!0,'stylable-require':'','style-signature':'',unstylable:'',highlightable:!0,copyable:!0,resizable:!1,editable:!1,layerable:!0,selectable:!0,hoverable:!0,void:!1,state:'',status:'',content:'',icon:'',style:'',styles:'',classes:'',script:'','script-props':'','script-export':'',attributes:'',traits:['id','title'],propagate:'',dmode:'',toolbar:null},(0,s.Z)(k,A,0),(0,s.Z)(k,M,0),(0,s.Z)(k,L,0),(0,s.Z)(k,"_undo",!0),(0,s.Z)(k,"_undoexc",['status','open']),k)},8431:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(1002),i=n(2982),o=n(4925),s=n(4942),a=n(2316),l=n.n(a),c=n(9050),u=n(9138),h=["at"];function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];var r=(0,c.isArray)(e)||(0,c.isFunction)(e.map)?e:[e];return r.map((function(e){n.push(e.getId()),t(e.components().models,n)})),n},g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,c.isArray)(e)?e:[e];return i.map((function(e){var i=e.attributes,o=void 0===i?{}:i,s=e.components,a=e.tagName,l=o.id,u=e;if(l&&n[l]&&(u=n[l],a&&u.set({tagName:a},d(d({},r),{},{silent:!0}))),s){var h=t(s,n);if((0,c.isFunction)(u.components)){var f=u.components();f.length>0&&f.reset(h,r)}else u.components=h}return u}))};const v=l().Collection.extend({initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.opt=e,this.listenTo(this,'add',this.onAdd),this.listenTo(this,'remove',this.removeChildren),this.listenTo(this,'reset',this.resetChildren);var n=e.em,r=e.config;this.config=r,this.em=n,this.domc=e.domc||n&&n.get('DomComponents')},resetChildren:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this,i=n.previousModels||[],o=i.filter((function(e){return!t.get(e.cid)})),s=p(t);n.keepIds=p(i).filter((function(t){return s.indexOf(t)>=0})),o.forEach((function(t){return e.removeChildren(t,r,n)})),t.each((function(t){return e.onAdd(t)}))},resetFromString:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=p(this);var r=this.domc,i=(null==r?void 0:r.allById())||{},o=this.parseString(e,n),s=(0,c.isArray)(o)?o:[o],a=g(s,i,n);this.reset(a,n),null===(t=this.em)||void 0===t||t.trigger('component:content',this.parent,n,e)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i=this.domc,o=this.em,s=r.temporary||r.fromUndo;if(t.prevColl=this,!s){var a=t.getId(),l=o.get('SelectorManager').getAll(),c=o.get('CssComposer').getAll(),u=(r.keepIds||[]).indexOf(a)<0,h=i?i.allById():{};delete h[a];var f=u?c.remove(c.filter((function(t){return t.getSelectors().getFullString()==="#".concat(a)})),r):[];l.remove(f.map((function(t){return t.getSelectors().at(0)}))),t.opt.temporary||(o.get('Commands').run('core:component-style-clear',{target:t}),t.removed(),t.trigger('removed'),o.trigger('component:remove',t));var d=t.components();d.forEach((function(t){return n.removeChildren(t,e,r)}))}var p=t.components();o.stopListening(p),o.stopListening(t),o.stopListening(t.get('classes')),t.__postRemove()}},model:function(t,e){var n,r=e.collection.opt,i=r.em,o=i.get('DomComponents').componentTypes;e.em=i,e.config=r.config,e.componentTypes=o,e.domc=r.domc;for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.domc,i=n.get('CssComposer'),s=n.get('Parser').parseHtml(t);if(u.ZP.checkId(s.html,s.css,r.componentsById,e),s.css&&i&&!e.temporary){e.at;var a=(0,o.Z)(e,h);i.addCollection(s.css,d(d({},a),{},{extend:1}))}return s.html},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=[].concat((0,i.Z)(n.keepIds||[]),(0,i.Z)(p(n.previousModels))),(0,c.isString)(t)?t=this.parseString(t,n):(0,c.isArray)(t)&&(t=(0,i.Z)(t)).forEach((function(r,i){if((0,c.isString)(r)){var o=e.parseString(r,n);t[i]=(0,c.isArray)(o)&&!o.length?null:o}}));var r=(0,c.isArray)(t);t=(r?t:[t]).filter((function(t){return t})).map((function(t){return e.processDef(t)})),t=r?(0,c.flatten)(t,1):t[0];var o=l().Collection.prototype.add.apply(this,[t,n]);return this.__firstAdd=o,o},processDef:function(t){if(t.cid&&t.ccid)return t;var e=this.em,n=this.config,i=(void 0===n?{}:n).processor,o=t;if(i){var s=i(o=d({},o));s&&((0,c.each)(o,(function(t,e){return delete o[e]})),(0,c.extend)(o,s))}if(o.$$typeof&&'object'==(0,r.Z)(o.props)){(o=d({},o)).props=d({},o.props);var a=e.get('DomComponents'),l=e.get('Parser').parserHtml;(0,c.each)(o,(function(t,e){(0,c.includes)(['props','type'],e)||delete o[e]}));var u=o.props,h=u.children;delete u.children,delete o.props;var f=l.splitPropsFromAttr(u);o.attributes=f.attrs,h&&(o.components=h),o.type?a.getType(o.type)||(o.tagName=o.type,delete o.type):o.type='textnode',(0,c.extend)(o,f.props)}return o},onAdd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.domc,i=this.em,o=t.getStyle(),s=i&&i.getConfig('avoidInlineStyle');if(r&&r.Component.ensureInList(t),!(0,c.isEmpty)(o)&&!s&&i&&i.get&&i.getConfig('forceClass')&&!n.temporary){var a=t.cid;i.get('CssComposer').setClassRule(a,o);t.setStyle({}),t.addClass(a)}t.__postAdd({recursive:1}),this.__onAddEnd()},__onAddEnd:(0,c.debounce)((function(){}))})},2169:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(8431),l=n(3505),c=n(4293),u=n(9283),h=n(6183);function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{},r=n.em,i=e.opt||{},o=this.$el,s=this.el;this.opts=t,this.modelOpt=i,this.config=n,this.em=r||'',this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.attr=e.get('attributes'),this.classe=this.attr.class||[],this.listenTo(e,'change:style',this.updateStyle),this.listenTo(e,'change:attributes',this.renderAttributes),this.listenTo(e,'change:highlightable',this.updateHighlight),this.listenTo(e,'change:status',this.updateStatus),this.listenTo(e,'change:script rerender',this.reset),this.listenTo(e,'change:content',this.updateContent),this.listenTo(e,'change',this.handleChange),this.listenTo(e,'active',this.onActive),this.listenTo(e,'disable',this.onDisable),o.data('model',e),(0,h.setViewEl)(s,this),e.view=this,this._getFrame()&&e.views.push(this),this.initClasses(),this.initComponents({avoidRender:1}),this.events=d(d({},this.events),{},{dragstart:'handleDragStart'}),this.delegateEvents(),!i.temporary&&this.init(this._clbObj())},__isDraggable:function(){var t=this.model,e=this.config,n=t.attributes.draggable;return e.draggableComponents&&n},_clbObj:function(){var t=this.em,e=this.model,n=this.el;return{editor:t&&t.getEditor(),model:e,el:n}},init:function(){},removed:function(){},onActive:function(){},onDisable:function(){},remove:function(){var t;o().View.prototype.remove.apply(this,arguments);var e=this.model,n=this.$el,r=e.views,i=this._getFrame()||{};return e.components().forEach((function(t){var e=t.getView(i.model);null==e||e.remove()})),null===(t=this.childrenView)||void 0===t||t.remove(),r.splice(r.indexOf(this),1),this.removed(this._clbObj()),n.data({model:'',collection:'',view:''}),this},handleDragStart:function(t){if(!this.__isDraggable())return!1;t.stopPropagation(),t.preventDefault(),this.em.get('Commands').run('tlb-move',{target:this.model,event:t})},initClasses:function(){var t=this.model,e='change:classes',n=t.get('classes');n instanceof c.Z&&(this.stopListening(t,e,this.initClasses),this.listenTo(t,e,this.initClasses),this.listenTo(n,'add remove change',this.updateClasses),n.length&&this.importClasses())},initComponents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.$el,r=this.childrenView,i='change:components',o=e.get('components'),s=[e,i,this.initComponents];o instanceof a.Z&&(n.data('collection',o),r&&r.remove(),this.stopListening.apply(this,s),!t.avoidRender&&this.renderChildren(),this.listenTo.apply(this,s))},handleChange:function(){var t=this.model,e=(0,s.keys)(t.changed);if(1!==e.length||'status'!==e[0])for(var n in t.emitUpdate(),t.changed)t.emitUpdate(n)},importClasses:function(){var t=this.config.em.get('SelectorManager');t&&this.model.get('classes').each((function(e){t.add(e.get('name'))}))},updateStatus:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e?e.get('Canvas').getConfig():{},r=n.extHl,i=this.el,o=this.model.get('status'),s=this.ppfx,a="".concat(s,"selected"),l="".concat(a,"-parent"),c="".concat(s,"freezed"),u="".concat(s,"hovered"),h=[a,l,c,u],f=r&&!t.noExtHl?'':a;this.$el.removeClass(h.join(' '));var d=i.getAttribute('class')||'',p='';switch(o){case'selected':p="".concat(d," ").concat(f);break;case'selected-parent':p="".concat(d," ").concat(l);break;case'freezed':p="".concat(d," ").concat(c);break;case'freezed-selected':p="".concat(d," ").concat(c," ").concat(f);break;case'hovered':p=t.avoidHover?'':"".concat(d," ").concat(u)}(p=p.trim())&&i.setAttribute('class',p)},updateHighlight:function(){var t=this.model,e=t.get('textable'),n=t.get('highlightable')&&(e||!t.isChildOf('text'));this.setAttribute('data-gjs-highlightable',!!n||'')},updateStyle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.em;if(i&&i.getConfig('avoidInlineStyle')&&!n.inline){var o=r.getStyle();!(0,s.isEmpty)(o)&&r.setStyle(o)}else this.setAttribute('style',r.styleToString(n))},updateClasses:function(){var t=this.model.get('classes').pluck('name').join(' ');this.setAttribute('class',t),this.updateStatus(),this.onAttrUpdate()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){return this.model.getClasses().join(' ')},updateAttributes:function(){var t=[],e=this.model,n=this.$el,r=this.el,i=e.attributes,o=i.textable,a=i.type,l=d(d({id:e.getId(),'data-gjs-type':a||'default'},this.__isDraggable()&&{draggable:!0}),o&&{contenteditable:'false'});(0,s.each)(r.attributes,(function(e){return t.push(e.nodeName)})),t.forEach((function(t){return n.removeAttr(t)})),this.updateStyle(),this.updateHighlight();var c=d(d({},l),e.getAttributes());(0,s.keys)(c).forEach((function(t){return!1===c[t]&&delete c[t]})),n.attr(c)},updateContent:function(){var t=this.model.get('content'),e=this.model.components().length;this.getChildrenContainer().innerHTML=e?'':t},prevDef:function(t){t.preventDefault()},updateScript:function(){var t=this.model,e=this.em;t.get('script')&&e&&e.get('Canvas').getCanvasView().updateScript(this)},getChildrenContainer:function(){var t=this.el;return'function'==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},getOffsetRect:function(){var t={},e=this.el,n=0,r=0;return function i(o){var s=o.offsetParent;s?(n+=s.offsetTop,r+=s.offsetLeft,i(s)):(t.top=e.offsetTop+n,t.left=e.offsetLeft+r,t.bottom=t.top+e.offsetHeight,t.right=t.left+e.offsetWidth)}(e),t},isInViewport:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.rect,n=this.el,r=n.ownerDocument,i=r.body,o=r.defaultView.frameElement,s=e||this.getOffsetRect(),a=s.top,l=s.left,c=this._getFrame().getOffsetRect();return a>=c.scrollTop&&l>=c.scrollLeft&&a<=c.scrollBottom&&l<=o.offsetWidth+i.scrollLeft},scrollIntoView:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getOffsetRect(),n=this.isInViewport({rect:e});if(!n||t.force){var r=this.el;'smooth'!==t.behavior?r.ownerDocument.defaultView.scrollTo(0,e.top):r.scrollIntoView(d({behavior:'smooth',block:'nearest'},t))}},reset:function(){var t=this.el;this.el='',this._ensureElement(),this._setData(),(0,u.dL)(t,this.el),this.render()},_setData:function(){var t=this.model,e=t.components();this.$el.data({model:t,collection:e,view:this})},_getFrame:function(){return this.config.frameView},renderChildren:function(){this.updateContent();var t=this.getChildrenContainer(),e=this.childrenView||new l.Z({collection:this.model.get('components'),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),r=0,i=n.length;r{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=n(9050);const s=i().View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{},this.em=this.config.em;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.resetChildren),this.listenTo(e,'remove',this.removeChildren)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.views.forEach((function(t){if(t){var e=t.childrenView,n=t.scriptContainer;e&&e.stopListening(),n&&n.remove(),t.remove.apply(t)}}));var i=t.components();i.forEach((function(t){return n.removeChildren(t,e,r)}))},addTo:function(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.config.em,r=this.collection.indexOf(t);if(this.addToCollection(t,null,r),n&&!e.temporary){var i=function t(e){n.trigger('component:add',e),e.components().forEach((function(e){return t(e)}))};i(t)}},addToCollection:function(t,e,r){this.compView||(this.compView=n(2169).Z);for(var i=this.config,s=this.opts,a=this.em,l=e||null,c=i.frameView,u=void 0===c?{}:c,h=u.model&&t.getView(u.model),f=s.componentTypes||a&&a.get('DomComponents').getTypes(),d=t.get('type')||'default',p=this.compView,g=0;g1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels,i=void 0===r?[]:r;this.parentEl.innerHTML='',i.forEach((function(t){return e.removeChildren(t,e.collection)})),t.each((function(t){return e.addToCollection(t)}))},render:function(t){var e=this,n=this.el,r=document.createDocumentFragment();return this.parentEl=t||this.el,this.collection.each((function(t){return e.addToCollection(t,r)})),n.innerHTML='',n.appendChild(r),this}})},3345:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(6183);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 a(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(e)&&(e=l(e));var r=this.getStyle(n),s=a({},e);this.set('style',s,n);var c=(0,o.shallowDiff)(r,s);return(0,i.keys)(c).forEach((function(e){var r=t.em;n.noEvent||(t.trigger("change:style:".concat(e)),r&&(r.trigger("styleable:change",t,e,n),r.trigger("styleable:change:".concat(e),t,e,n)))})),s},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};'string'==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle(t);for(var r in n){var o=t.important,s=(0,i.isArray)(o)?o.indexOf(r)>=0:o,a="".concat(n[r]).concat(s?' !important':''),l='__'==r.substr(0,2);a&&!l&&e.push("".concat(r,":").concat(a,";"))}return e.join('')},getSelectors:function(){return this.get('selectors')||this.get('classes')},getSelectorsString:function(t){return this.selectorsToString?this.selectorsToString(t):this.getSelectors().getFullString()},_validate:function(t,e){var n,r=t.style,o=this.em||e.em,s=null==o||null===(n=o.get('CssComposer'))||void 0===n?void 0:n.getConfig().onBeforeStyle;if(r&&s){var l=s(a({},r));l&&(0,i.keys)(r).map((function(e){(0,i.isUndefined)(l[e])&&delete t.style[e]})),l&&(0,i.keys)(l).map((function(e){t.style[e]=l[e]}))}return!0}}},793:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(4942),i=n(9050),o=n(2316),s=n.n(o);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;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r,this.opts=n,this.model=function(){var t,n,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o&&o.type){var a=e.getBaseType();t=(i=e.getType(o.type))?i.model:a.model,n=i?i.view:a.view}else{var c=e.recognizeType(o);t=(i=c.type).model,n=i.view,o=c.attributes}var u=new t(o,l(l({},s),{},{em:r}));return u.typeView=n,u};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=i().$;const s=i().View.extend({events:{change:'handleChange'},template:function(){return"")},inputClass:function(){return"".concat(this.ppfx,"field")},holderClass:function(){return"".concat(this.ppfx,"input-holder")},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||'';this.opts=t,this.ppfx=e,this.em=t.target||{},!t.onChange&&this.listenTo(this.model,'change:value',this.handleModelChange)},elementUpdated:function(){this.model.trigger('el:change')},setValue:function(t){var e=this.model,n=t||e.get('defaults'),r=this.getInputEl();r&&(r.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation();var e=this.getInputEl().value;this.__onInputChange(e),this.elementUpdated()},__onInputChange:function(t){this.model.set({value:t},{fromInput:1})},getInputEl:function(){if(!this.inputEl){var t=this.model,e=this.opts.type||'text',n=t.get('placeholder')||t.get('defaults')||t.get('default')||'';this.inputEl=o(""))}return this.inputEl.get(0)},render:function(){this.inputEl=null;var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find(".".concat(this.holderClass())).append(this.getInputEl()),this}})},1511:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),s=n(9050),a=n(1002),l=n(6183);var c=n(8659);function u(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;e","
","
",'
'].join(''),c=function(){var t='';if(i)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","",'
','
',"
","
","
","
","
","
","
","
",'
','
','
',"
",'
',"
","
",t,'
','
',"
",'
',"
","",'
',"
","
","","",'
','
','
'].join('')}(),u='spectrum.id';t.fn.spectrum=function(e,n){if('string'==typeof e){var i=this,o=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=r[t(this).data(u)];if(n){var s=n[e];if(!s)throw new Error("Spectrum: no such method: '"+e+"'");'get'==e?i=n.get():'container'==e?i=n.container:'option'==e?i=n.option.apply(n,o):'destroy'==e?(n.destroy(),t(this).removeData(u)):s.apply(n,o)}})),i}return this.spectrum('destroy').each((function(){var n=_(this,t.extend({},e,t(this).data()));t(this).data(u,n.id)}))},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=D,t.fn.spectrum.defaults=n,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult='color'===n.type&&''!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t('input[type=color]');e.length&&!M()&&e.spectrum({preferredFormat:'hex6'})};var h=/^[\s,#]+/,f=/\s+$/,d=0,p=Math,g=p.round,v=p.min,m=p.max,y=p.random,b=function t(e,n){if(n=n||{},(e=e||'')instanceof t)return e;if(!(this instanceof t))return new t(e,n);var r=function(t){var e={r:0,g:0,b:0},n=1,r=!1,i=!1;'string'==typeof t&&(t=function(t){t=t.replace(h,'').replace(f,'').toLowerCase();var e,n=!1;if(C[t])t=C[t],n=!0;else if('transparent'==t)return{r:0,g:0,b:0,a:0,format:'name'};if(e=S.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=S.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=S.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=S.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=S.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=S.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=S.hex8.exec(t))return{a:nt(e[1]),r:Q(e[2]),g:Q(e[3]),b:Q(e[4]),format:n?'name':'hex8'};if(e=S.hex6.exec(t))return{r:Q(e[1]),g:Q(e[2]),b:Q(e[3]),format:n?'name':'hex'};if(e=S.hex3.exec(t))return{r:Q(e[1]+''+e[1]),g:Q(e[2]+''+e[2]),b:Q(e[3]+''+e[3]),format:n?'name':'hex'};return!1}(t));'object'==(0,a.Z)(t)&&(t.hasOwnProperty('r')&&t.hasOwnProperty('g')&&t.hasOwnProperty('b')?(o=t.r,s=t.g,l=t.b,e={r:255*J(o,255),g:255*J(s,255),b:255*J(l,255)},r=!0,i='%'===String(t.r).substr(-1)?'prgb':'rgb'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('v')?(t.s=et(t.s),t.v=et(t.v),e=function(t,e,n){t=6*J(t,360),e=J(e,100),n=J(n,100);var r=p.floor(t),i=t-r,o=n*(1-e),s=n*(1-i*e),a=n*(1-(1-i)*e),l=r%6;return{r:255*[n,s,o,o,a,n][l],g:255*[a,n,n,s,o,o][l],b:255*[o,o,a,n,n,s][l]}}(t.h,t.s,t.v),r=!0,i='hsv'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('l')&&(t.s=et(t.s),t.l=et(t.l),e=function(t,e,n){var r,i,o;function s(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=J(t,360),e=J(e,100),n=J(n,100),0===e)r=i=o=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=s(l,a,t+1/3),i=s(l,a,t),o=s(l,a,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,t.s,t.l),r=!0,i='hsl'),t.hasOwnProperty('a')&&(n=t.a));var o,s,l;return n=Y(n),{ok:r,format:t.format||i,r:v(255,m(e.r,0)),g:v(255,m(e.g,0)),b:v(255,m(e.b,0)),a:n}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=g(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=g(this._r)),this._g<1&&(this._g=g(this._g)),this._b<1&&(this._b=g(this._b)),this._ok=r.ok,this._tc_id=d++};b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=Y(t),this._roundA=g(100*this._a)/100,this},toHsv:function(){var t=L(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=L(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.v);return 1==this._a?'hsv('+e+', '+n+'%, '+r+'%)':'hsva('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHsl:function(){var t=A(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=A(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.l);return 1==this._a?'hsl('+e+', '+n+'%, '+r+'%)':'hsla('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHex:function(t){return R(this._r,this._g,this._b,t)},toHexString:function(t){return'#'+this.toHex(t)},toHex8:function(){return N(this._r,this._g,this._b,this._a)},toHex8String:function(){return'#'+this.toHex8()},toRgb:function(){return{r:g(this._r),g:g(this._g),b:g(this._b),a:this._a}},toRgbString:function(){return 1==this._a?'rgb('+g(this._r)+', '+g(this._g)+', '+g(this._b)+')':'rgba('+g(this._r)+', '+g(this._g)+', '+g(this._b)+', '+this._roundA+')'},toPercentageRgb:function(){return{r:g(100*J(this._r,255))+'%',g:g(100*J(this._g,255))+'%',b:g(100*J(this._b,255))+'%',a:this._a}},toPercentageRgbString:function(){return 1==this._a?'rgb('+g(100*J(this._r,255))+'%, '+g(100*J(this._g,255))+'%, '+g(100*J(this._b,255))+'%)':'rgba('+g(100*J(this._r,255))+'%, '+g(100*J(this._g,255))+'%, '+g(100*J(this._b,255))+'%, '+this._roundA+')'},toName:function(){return 0===this._a?'transparent':!(this._a<1)&&(k[R(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e='#'+N(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?'GradientType = 1, ':'';t&&(n=b(t).toHex8String());return'progid:DXImageTransform.Microsoft.gradient('+r+'startColorstr='+e+',endColorstr='+n+')'},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||'hex'!==t&&'hex6'!==t&&'hex3'!==t&&'name'!==t?('rgb'===t&&(n=this.toRgbString()),'prgb'===t&&(n=this.toPercentageRgbString()),'hex'!==t&&'hex6'!==t||(n=this.toHexString()),'hex3'===t&&(n=this.toHexString(!0)),'hex8'===t&&(n=this.toHex8String()),'name'===t&&(n=this.toName()),'hsl'===t&&(n=this.toHslString()),'hsv'===t&&(n=this.toHsvString()),n||this.toHexString()):'name'===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(V,arguments)},brighten:function(){return this._applyModification(H,arguments)},darken:function(){return this._applyModification(B,arguments)},desaturate:function(){return this._applyModification(Z,arguments)},saturate:function(){return this._applyModification(I,arguments)},greyscale:function(){return this._applyModification(F,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(G,arguments)},complement:function(){return this._applyCombination(U,arguments)},monochromatic:function(){return this._applyCombination(K,arguments)},splitcomplement:function(){return this._applyCombination(q,arguments)},triad:function(){return this._applyCombination(W,arguments)},tetrad:function(){return this._applyCombination($,arguments)}},b.fromRatio=function(t,e){if('object'==(0,a.Z)(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]='a'===r?t[r]:et(t[r]));t=n}return b(t,e)},b.equals=function(t,e){return!(!t||!e)&&b(t).toRgbString()==b(e).toRgbString()},b.random=function(){return b.fromRatio({r:y(),g:y(),b:y()})},b.mix=function(t,e,n){n=0===n?0:n||50;var r,i=b(t).toRgb(),o=b(e).toRgb(),s=n/100,a=2*s-1,l=o.a-i.a,c=1-(r=((r=a*l==-1?a:(a+l)/(1+a*l))+1)/2),u={r:o.r*r+i.r*c,g:o.g*r+i.g*c,b:o.b*r+i.b*c,a:o.a*s+i.a*(1-s)};return b(u)},b.readability=function(t,e){var n=b(t),r=b(e),i=n.toRgb(),o=r.toRgb(),s=n.getBrightness(),a=r.getBrightness(),l=Math.max(i.r,o.r)-Math.min(i.r,o.r)+Math.max(i.g,o.g)-Math.min(i.g,o.g)+Math.max(i.b,o.b)-Math.min(i.b,o.b);return{brightness:Math.abs(s-a),color:l}},b.isReadable=function(t,e){var n=b.readability(t,e);return n.brightness>125&&n.color>500},b.mostReadable=function(t,e){for(var n=null,r=0,i=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!i||a&&i&&l>r||!a&&!i&&l>r)&&(i=a,r=l,n=b(e[o]))}return n};var w,x,O,C=b.names={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'0ff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000',blanchedalmond:'ffebcd',blue:'00f',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',burntsienna:'ea7e5d',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'0ff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkgrey:'a9a9a9',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkslategrey:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dimgrey:'696969',dodgerblue:'1e90ff',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'f0f',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',grey:'808080',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgray:'d3d3d3',lightgreen:'90ee90',lightgrey:'d3d3d3',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslategray:'789',lightslategrey:'789',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'0f0',limegreen:'32cd32',linen:'faf0e6',magenta:'f0f',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370db',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'db7093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',rebeccapurple:'663399',red:'f00',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',slategrey:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',wheat:'f5deb3',white:'fff',whitesmoke:'f5f5f5',yellow:'ff0',yellowgreen:'9acd32'},k=b.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(C),S=(x='[\\s|\\(]+('+(w="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',O='[\\s|\\(]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',{rgb:new RegExp('rgb'+x),rgba:new RegExp('rgba'+O),hsl:new RegExp('hsl'+x),hsla:new RegExp('hsla'+O),hsv:new RegExp('hsv'+x),hsva:new RegExp('hsva'+O),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=b,t((function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()}))}function P(e,n,r,i){for(var s=[],a=0;a')}else{s.push(t('
').append(t("").attr('title',i.noColorSelectedText)).html())}}return"
"+s.join('')+'
'}function _(a,l){var u,h,f,d,p=function(e,r){var i=t.extend({},n,e);return i.callbacks={move:j(i.move,r),change:j(i.change,r),show:j(i.show,r),hide:j(i.hide,r),beforeShow:j(i.beforeShow,r)},i}(l,a),g=p.flat,v=p.showSelectionPalette,m=p.localStorageKey,y=p.theme,w=p.callbacks,x=(u=Wt,h=10,function(){var t=this,e=arguments,n=function(){d=null,u.apply(t,e)};f&&clearTimeout(d),!f&&d||(d=setTimeout(n,h))}),O=!1,C=!1,k=!0,S=0,_=0,T=0,A=0,L=0,R=0,N=0,Z=0,I=0,F=0,V=1,H=[],B=[],z={},U=p.selectionPalette.slice(0),W=p.maxSelectionSize,$='sp-dragging',q=null,G=a.ownerDocument,K=(G.body,t(a)),Y=!1,J=t(c,G).addClass(y),X=J.find('.sp-picker-container'),Q=J.find('.sp-color'),tt=J.find('.sp-dragger'),et=J.find('.sp-hue'),nt=J.find('.sp-slider'),rt=J.find('.sp-alpha-inner'),it=J.find('.sp-alpha'),ot=J.find('.sp-alpha-handle'),st=J.find('.sp-input'),at=J.find('.sp-palette'),lt=J.find('.sp-initial'),ct=J.find('.sp-cancel'),ut=J.find('.sp-clear'),ht=J.find('.sp-choose'),ft=J.find('.sp-palette-toggle'),dt=K.is('input'),pt=dt&&'color'===K.attr('type')&&M(),gt=dt&&!g,vt=gt?t(s).addClass(y).addClass(p.className).addClass(p.replacerClassName):t([]),mt=gt?vt:K,yt=vt.find('.sp-preview-inner'),bt=p.color||dt&&K.val(),wt=!1,xt=p.preferredFormat,Ot=!p.showButtons||p.clickoutFiresChange,Ct=!bt,kt=p.allowEmpty&&!pt;function St(){if(p.showPaletteOnly&&(p.showPalette=!0),ft.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),p.palette){H=p.palette.slice(0),B=t.isArray(H[0])?H:[H],z={};for(var e=0;e1&&(delete window.localStorage[m],t.each(e,(function(t,e){_t(e)})))}catch(t){}try{U=window.localStorage[m].split(';')}catch(t){}}}function _t(e){if(v){var n=b(e).toRgbString();if(!z[n]&&-1===t.inArray(n,U))for(U.push(n);U.length>W;)U.shift();if(m&&window.localStorage)try{window.localStorage[m]=U.join(';')}catch(t){}}}function Tt(){var e=Vt(),n=t.map(B,(function(t,n){return P(t,e,'sp-palette-row sp-palette-row-'+n,p)}));Pt(),U&&n.push(P(function(){var t=[];if(p.showPalette)for(var e=0;ed&&d>i?Math.abs(g.left+i-d):0),g.top-=Math.min(g.top,g.top+o>p&&p>o?Math.abs(o+s-r):r),g}(J,mt))),zt(),p.showPalette&&Tt(),K.trigger('reflow.spectrum'))}function $t(){Zt(),Y=!0,K.attr('disabled',!0),mt.addClass('sp-disabled')}!function(){if(i&&J.find('*:not(input)').attr('unselectable','on'),St(),gt&&K.after(vt).hide(),kt||ut.hide(),g)K.after(J).hide();else{var e='parent'===p.appendTo?K.parent():t(p.appendTo);1!==e.length&&(e=t('body')),e.append(J)}function n(e){return e.data&&e.data.ignore?(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Ht()):(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Ht(),p.hideAfterPaletteSelect&&(Ut(!0),Zt())),!1}Pt(),mt.bind('click.spectrum touchstart.spectrum',(function(e){Y||At(),e.stopPropagation(),t(e.target).is('input')||e.preventDefault()})),(K.is(':disabled')||!0===p.disabled)&&$t(),J.click(E),st.change(Mt),st.bind('paste',(function(){setTimeout(Mt,1)})),st.keydown((function(t){13==t.keyCode&&Mt()})),ct.text(p.cancelText),ct.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),It(),Zt()})),ut.attr('title',p.clearText),ut.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),Ct=!0,Ht(),g&&Ut(!0)})),ht.text(p.chooseText),ht.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),i&&st.is(':focus')&&st.trigger('change'),st.hasClass('sp-validation-error')||(Ut(!0),Zt())})),ft.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),ft.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),p.showPaletteOnly=!p.showPaletteOnly,p.showPaletteOnly||g||J.css('left','-='+(X.outerWidth(!0)+5)),St()})),D(it,(function(t,e,n){V=t/L,Ct=!1,n.shiftKey&&(V=Math.round(10*V)/10),Ht()}),jt,Dt),D(et,(function(t,e){Z=parseFloat(e/A),Ct=!1,p.showAlpha||(V=1),Ht()}),jt,Dt),D(Q,(function(t,e,n){if(n.shiftKey){if(!q){var r=I*S,i=_-F*_,o=Math.abs(t-r)>Math.abs(e-i);q=o?'x':'y'}}else q=null;var s=!q||'y'===q;(!q||'x'===q)&&(I=parseFloat(t/S)),s&&(F=parseFloat((_-e)/_)),Ct=!1,p.showAlpha||(V=1),Ht()}),jt,Dt),bt?(Ft(bt),Bt(),xt=p.preferredFormat||b(bt).getFormat(),_t(bt)):Bt(),g&&Lt();var r=i?'mousedown.spectrum':'click.spectrum touchstart.spectrum';at.delegate('.sp-thumb-el',r,n),lt.delegate('.sp-thumb-el:nth-child(1)',r,{ignore:!0},n)}();var qt={show:Lt,hide:Zt,toggle:At,reflow:Wt,option:function(n,r){return n===e?t.extend({},p):r===e?p[n]:(p[n]=r,'preferredFormat'===n&&(xt=p.preferredFormat),void St())},enable:function(){Y=!1,K.attr('disabled',!1),mt.removeClass('sp-disabled')},disable:$t,offset:function(t){p.offset=t,Wt()},set:function(t){Ft(t),Ut()},get:Vt,destroy:function(){K.show(),mt.unbind('click.spectrum touchstart.spectrum'),J.remove(),vt.remove(),r[qt.id]=null},container:J};return qt.id=r.push(qt)-1,qt}function T(){}function E(t){t.stopPropagation()}function j(t,e){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}function D(e,n,r,o){n=n||function(){},r=r||function(){},o=o||function(){};var s=document,a=!1,l={},c=0,u=0,h='ontouchstart'in window,f={};function d(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function p(t){if(a){if(i&&s.documentMode<9&&!t.button)return g();var r=t&&t.touches&&t.touches[0],o=r&&r.pageX||t.pageX,f=r&&r.pageY||t.pageY,p=Math.max(0,Math.min(o-l.left,u)),v=Math.max(0,Math.min(f-l.top,c));h&&d(t),n.apply(e,[p,v,t])}}function g(){a&&(t(s).unbind(f),t(s.body).removeClass('sp-dragging'),setTimeout((function(){o.apply(e,arguments)}),0)),a=!1}f.selectstart=d,f.dragstart=d,f['touchmove mousemove']=p,f['touchend mouseup']=g,t(e).bind('touchstart mousedown',(function(n){var i=n.which?3==n.which:2==n.button;i||a||!1!==r.apply(e,arguments)&&(a=!0,c=t(e).height(),u=t(e).width(),l=t(e).offset(),t(s).bind(f),t(s.body).addClass('sp-dragging'),p(n),d(n))}))}function M(){return t.fn.spectrum.inputTypeColorSupport()}function A(t,e,n){t=J(t,255),e=J(e,255),n=J(n,255);var r,i,o=m(t,e,n),s=v(t,e,n),a=(o+s)/2;if(o==s)r=i=0;else{var l=o-s;switch(i=a>.5?l/(2-o-s):l/(o+s),o){case t:r=(e-n)/l+(e>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(b(r));return o}function K(t,e){e=e||6;for(var n=b(t).toHsv(),r=n.h,i=n.s,o=n.v,s=[],a=1/e;e--;)s.push(b({h:r,s:i,v:o})),o=(o+a)%1;return s}function Y(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function J(t,e){(function(t){return'string'==typeof t&&-1!=t.indexOf('.')&&1===parseFloat(t)})(t)&&(t='100%');var n=function(t){return'string'==typeof t&&-1!=t.indexOf('%')}(t);return t=v(e,m(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),p.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function X(t){return v(1,m(0,t))}function Q(t){return parseInt(t,16)}function tt(t){return 1==t.length?'0'+t:''+t}function et(t){return t<=1&&(t=100*t+'%'),t}function nt(t){return Q(t)/255}}(f);var d=function(t){var e='name'===t.getFormat()&&t.toName(),n=1==t.getAlpha()?t.toHexString():t.toRgbString();return e||n.replace(/ /g,'')};const p=c.Z.extend({template:function(){var t=this.ppfx;return"\n
\n
\n
\n
\n
\n
\n ")},inputClass:function(){var t=this.ppfx;return"".concat(t,"field ").concat(t,"field-color")},holderClass:function(){return"".concat(this.ppfx,"input-holder")},remove:function(){c.Z.prototype.remove.apply(this,arguments),this.colorEl.spectrum('destroy')},handleChange:function(t){t.stopPropagation();var e=t.target.value;(0,s.isUndefined)(e)||this.__onInputChange(e)},__onInputChange:function(t){var e=this.model,n=this.opts.onChange,r=t,i=this.getColorEl();if(i){i.spectrum('set',r);var o=i.spectrum('get'),s=r&&d(o);s&&(r=s)}n?n(r):e.set({value:r},{fromInput:1})},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=(0,s.isUndefined)(e.def)?n.get('defaults'):e.def,i=(0,s.isUndefined)(t)?(0,s.isUndefined)(r)?'':r:t,o=this.getInputEl(),a=this.getColorEl(),l='none'!=i?i:'';o.value=i,a.get(0).style.backgroundColor=l,(e.fromTarget||e.fromInput&&!e.avoidStore)&&(a.spectrum('set',l),this.noneColor='none'==i)},getColorEl:function(){if(!this.colorEl){var t,e=this.em,n=this.model,r=this.opts,i=this,o=this.ppfx,s=r.onChange,a=f("
")),l=a.get(0).style,c=e&&e.config?e.config.el:'',u=e&&e.getConfig&&e.getConfig('colorPicker')||{},p=0;this.$el.find("[data-colorp-c]").append(a),a.spectrum(h(h(h({color:n.getValue()||!1,containerClassName:"".concat(o,"one-bg ").concat(o,"two-color"),appendTo:c||'body',maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:'Ok',cancelText:'⨯',palette:[]},u),n.get('colorPicker')||{}),{},{move:function(t){var e=d(t);l.backgroundColor=e,s?s(e,!0):n.setValueFromInput(e,0)},change:function(t){p=1;var e=d(t);l.backgroundColor=e,s?s(e):(n.setValueFromInput(0,0),n.setValueFromInput(e)),i.noneColor=0},show:function(e){p=0,t=s?n.getValue({noDefault:!0}):d(e)},hide:function(e){p||!t&&!s||(i.noneColor&&(t=''),l.backgroundColor=t,a.spectrum('set',t),s?s(t,!0):n.setValueFromInput(t,0))}})),e&&e.on&&this.listenTo(e,'component:selected',(function(){p=1,a.spectrum('hide')})),this.colorEl=a}return this.colorEl},render:function(){return c.Z.prototype.render.call(this),this.getColorEl(),this}})},7610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(2316),i=n.n(r),o=n(9050),s=n(6183),a=n(8659);i().$;const l=a.Z.extend({events:{'change input':'handleChange','change select':'handleUnitChange','click [data-arrow-up]':'upArrowClick','click [data-arrow-down]':'downArrowClick','mousedown [data-arrows]':'downIncrement',keydown:'handleKeyDown'},template:function(){var t=this.ppfx;return"\n \n \n
\n
\n
\n
\n ")},inputClass:function(){var t=this.ppfx;return this.opts.contClass||"".concat(t,"field ").concat(t,"field-integer")},initialize:function(){a.Z.prototype.initialize.apply(this,arguments),(0,o.bindAll)(this,'moveIncrement','upIncrement'),this.doc=document,this.listenTo(this.model,'change:unit',this.handleModelChange)},setValue:function(t,e){var n=e||{},r=this.validateInputValue(t,{deepCheck:1}),i={value:r.value};(r.unit||r.force)&&(i.unit=r.unit),this.model.set(i,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set('unit',e),this.elementUpdated()},handleKeyDown:function(t){'ArrowUp'===t.key&&(t.preventDefault(),this.upArrowClick()),'ArrowDown'===t.key&&(t.preventDefault(),this.downArrowClick())},elementUpdated:function(){this.model.trigger('el:change')},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get('value');var e=this.getUnitEl();e&&(e.value=t.get('unit')||'')},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get('units')||[];if(e.length){var n=[''];e.forEach((function(e){var r=e==t.get('unit')?'selected':'';n.push(""))}));var r=document.createElement('div');r.innerHTML=""),this.unitEl=r.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n+e)),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n-e)),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get('value')||0;e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,s.on)(this.doc,'mousemove',this.moveIncrement),(0,s.on)(this.doc,'mouseup',this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get('step'),r=this.current,i=this.normalizeValue(r.val+(r.y-t.pageY)*n),o=this.validateInputValue(i),s=o.value,a=o.unit;return this.prValue=s,e.set({value:s,unit:a},{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get('step');if((0,s.off)(this.doc,'mouseup',this.upIncrement),(0,s.off)(this.doc,'mousemove',this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set('value',n,{avoidStore:1}).set('value',n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,r=n.get('step'),i=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=r.toString().split('.')[1];i=o?o.length:0}return i?parseFloat(t.toFixed(i)):t},validateInputValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e||{},i=this.model,s='',a=(0,o.isUndefined)(t)?s:t,l=e.units||i.get('units')||[],c=i.get('unit')||l.length&&l[0]||'',u=(0,o.isUndefined)(e.max)?i.get('max'):e.max,h=(0,o.isUndefined)(e.min)?i.get('min'):e.min,f=!!i.get('limitlessMax'),d=!!i.get('limitlessMin');if(r.deepCheck){var p=i.get('fixedValues')||[];if(''===a&&(c=''),a){var g=new RegExp('^'+p.join('|'),'g');if(p.length&&g.test(a))a=a.match(g)[0],c='',n=1;else{var v=a+'';a+='',a=parseFloat(a.replace(',','.')),a=isNaN(a)?s:a;var m=v.replace(a,'');(0,o.indexOf)(l,m)>=0&&(c=m)}}}return f||(0,o.isUndefined)(u)||''===u||(a=a>u?u:a),d||(0,o.isUndefined)(h)||''===h||(a=a{"use strict";n.d(e,{Z:()=>s});var r=n(9050),i=n(2316),o=n.n(i);const s=o().View.extend({itemView:'',itemsView:'',itemType:'type',autoAdd:0,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;this.config=e||t.config||{},this.autoAdd&&this.listenTo(this.collection,'add',this.addTo),this.items=[],this.init()},init:function(){},addTo:function(t){this.add(t)},itemViewNotFound:function(t){var e=this.config,n=this.ns,r=e.em,i="".concat(n?"[".concat(n,"]: "):'',"'").concat(t,"' type not found");r&&r.logWarning(i)},add:function(t,e){var n,i=this.config,o=this.reuseView,s=this.items,a=this.itemsView,l=void 0===a?{}:a,c=e||null,u=this.itemView,h=t.get(this.itemType);l[h]?u=l[h]:!h||l[h]||(0,r.includes)(['button','checkbox','color','date','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week'],h)||this.itemViewNotFound(h),n=t.view&&o?t.view:new u({model:t,config:i},i),s&&s.push(n);var f=n.render().el;c?c.appendChild(f):this.$el.append(f)},render:function(){var t=document.createDocumentFragment();return this.clearItems(),this.$el.empty(),this.collection.length&&this.collection.each((function(e){this.add(e,t)}),this),this.$el.append(t),this.onRender(),this},onRender:function(){},onRemoveBefore:function(){},onRemove:function(){},remove:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.items;this.onRemoveBefore(e,t),this.clearItems(),o().View.prototype.remove.apply(this,arguments),this.onRemove(e,t)},clearItems:function(){this.items}})},4836:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>d});var r=n(4942),i=n(1002),o=n(9050),s=n(6183),a={placeholder:'eg. Text here'};const l={locale:'en',localeFallback:'en',detectLocale:!0,debug:!1,messages:{en:{assetManager:{addButton:'Add image',inputPlh:'http://path/to/the/image.jpg',modalTitle:'Select Image',uploadTitle:'Drop files here or click to upload'},blockManager:{labels:{},categories:{}},domComponents:{names:{'':'Box',wrapper:'Body',text:'Text',comment:'Comment',image:'Image',video:'Video',label:'Label',link:'Link',map:'Map',tfoot:'Table foot',tbody:'Table body',thead:'Table head',table:'Table',row:'Table row',cell:'Table cell'}},deviceManager:{device:'Device',devices:{desktop:'Desktop',tablet:'Tablet',mobileLandscape:'Mobile Landscape',mobilePortrait:'Mobile Portrait'}},panels:{buttons:{titles:{preview:'Preview',fullscreen:'Fullscreen','sw-visibility':'View components','export-template':'View code','open-sm':'Open Style Manager','open-tm':'Settings','open-layers':'Open Layer Manager','open-blocks':'Open Blocks'}}},selectorManager:{label:'Classes',selected:'Selected',emptyState:'- State -',states:{hover:'Hover',active:'Click','nth-of-type(2n)':'Even/Odd'}},styleManager:{empty:'Select an element before using Style Manager',layer:'Layer',fileButton:'Images',sectors:{general:'General',layout:'Layout',typography:'Typography',decorations:'Decorations',extra:'Extra',flex:'Flex',dimension:'Dimension'},properties:{'text-shadow-h':'X','text-shadow-v':'Y','text-shadow-blur':'Blur','text-shadow-color':'Color','box-shadow-h':'X','box-shadow-v':'Y','box-shadow-blur':'Blur','box-shadow-spread':'Spread','box-shadow-color':'Color','box-shadow-type':'Type','margin-top-sub':'Top','margin-right-sub':'Right','margin-bottom-sub':'Bottom','margin-left-sub':'Left','padding-top-sub':'Top','padding-right-sub':'Right','padding-bottom-sub':'Bottom','padding-left-sub':'Left','border-width-sub':'Width','border-style-sub':'Style','border-color-sub':'Color','border-top-left-radius-sub':'Top Left','border-top-right-radius-sub':'Top Right','border-bottom-right-radius-sub':'Bottom Right','border-bottom-left-radius-sub':'Bottom Left','transform-rotate-x':'Rotate X','transform-rotate-y':'Rotate Y','transform-rotate-z':'Rotate Z','transform-scale-x':'Scale X','transform-scale-y':'Scale Y','transform-scale-z':'Scale Z','transition-property-sub':'Property','transition-duration-sub':'Duration','transition-timing-function-sub':'Timing','background-image-sub':'Image','background-repeat-sub':'Repeat','background-position-sub':'Position','background-attachment-sub':'Attachment','background-size-sub':'Size'}},traitManager:{empty:'Select an element before using Trait Manager',label:'Component settings',traits:{labels:{},attributes:{id:a,alt:a,title:a,href:{placeholder:'eg. https://google.com'}},options:{target:{false:'This window',_blank:'New window'}}}}}},messagesAdd:null};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=u(u(u({},l),t),{},{messages:u(u({},l.messages),t.messages||{})});var e=this.config.messagesAdd;return e&&this.addMessages(e),this.config.detectLocale&&(this.config.locale=this._localLang()),this.em=t.em,this},getConfig:function(){return this.config},setLocale:function(t){var e=this.em,n=this.config,r={value:t,valuePrev:n.locale};return e&&e.trigger('i18n:locale',r),n.locale=t,this},getLocale:function(){return this.config.locale},getMessages:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config.messages;return t&&!n[t]&&this._debug("'".concat(t,"' i18n lang not found"),e),t?n[t]:n},setMessages:function(t){var e=this.em;return this.config.messages=t,e&&e.trigger('i18n:update',t),this},addMessages:function(t){var e=this.em,n=this.config.messages;return e&&e.trigger('i18n:add',t),this.setMessages(f(n,t)),this},t:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config,r=e.params||{},i=e.l||this.getLocale(),s=e.lFlb||n.localeFallback,a=this._getMsg(t,i,e);return a||(a=this._getMsg(t,s,e)),!a&&this._debug("'".concat(t,"' i18n key not found in '").concat(i,"' lang"),e),a=a&&(0,o.isString)(a)?this._addParams(a,r):a},_localLang:function(){var t=(0,s.hasWin)()&&window.navigator||{},e=t.language||t.userLanguage;return e?e.split('-')[0]:'en'},_addParams:function(t,e){var n=new RegExp("{([\\w\\d-]*)}",'g');return t.replace(n,(function(t,n){return e[n]||''})).trim()},_getMsg:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getMessages(e,n);if(r){var i=r[t];return!i&&t.indexOf('.')>0&&(i=t.split('.').reduce((function(t,e){if(!(0,o.isUndefined)(t))return t[e]}),r)),i}},_debug:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.config;(e.debug||r.debug)&&n&&n.logWarning(t)},destroy:function(){this.config=l,this.em={}}}}},9788:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r,i=n(1002),o=n(4942),s=n(9050),a=n(6183),l={},c={16:!1,18:!1,17:!1,91:!1},u='all',h={'⇧':16,shift:16,'⌥':18,alt:18,option:18,'⌃':17,ctrl:17,control:17,'⌘':91,command:91},f={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,',':188,'.':190,'/':191,'`':192,'-':189,'=':187,';':186,"'":222,'[':219,']':221,'\\':220},d=function(t){return f[t]||t.toUpperCase().charCodeAt(0)},p=[];for(r=1;r<20;r++)f['f'+r]=111+r;function g(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function v(t,e){if(t.length!=e.length)return!1;for(var n=0;n=0&&p.splice(r,1),93!=n&&224!=n||(n=91),n in c)for(e in c[n]=!1,h)h[e]==n&&(x[e]=!1)}function w(){for(r in c)c[r]=!1;for(r in h)x[r]=!1}function x(t,e,n){var r,i;r=C(t),void 0===n&&(n=e,e='all');for(var o=0;o1&&(i=k(t),t=[t[t.length-1]]),t=t[0],(t=d(t))in l||(l[t]=[]),l[t].push({shortcut:r[o],scope:e,method:n,key:r[o],mods:i})}for(r in h)x[r]=!1;function O(){return u||'all'}function C(t){var e;return''==(e=(t=t.replace(/\s/g,'')).split(','))[e.length-1]&&(e[e.length-2]+=','),e}function k(t){for(var e=t.slice(0,t.length-1),n=0;n1&&(a=k(r)),t=r[r.length-1],t=d(t),void 0===e&&(e=O()),!l[t])return;for(i=0;i0,c)(!c[r]&&g(n.mods,+r)>-1||c[r]&&-1==g(n.mods,+r))&&(o=!1);(0!=n.mods.length||c[16]||c[18]||c[17]||c[91])&&!o||!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}(t)})),S(t.document,'keyup',b),S(t,'focus',w)};const P=x;function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.config=T(T({},t),e),this.em=this.config.em,this.keymaps={},this},onLoad:function(){var t=this.config.defaults;for(var e in t){var n=t[e];this.add(e,n.keys,n.handler,n.opts||{})}},add:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.em,a=o.get('Commands'),l=o.getEditor(),c=o.get('Canvas'),u={id:t,keys:e,handler:n},h=this.keymaps[t];return h&&this.remove(t),this.keymaps[t]=u,P(e,(function(e,u){var h={event:e,h:u};if(n=(0,s.isString)(n)?a.get(n):n,!o.isEditing()&&!l.Canvas.isInputFocused()||r.force){r.prevent&&c.getCanvasView().preventDefault(e),'object'==(0,i.Z)(n)?a.runCommand(n,h):n(l,0,h);var f=[t,u.shortcut,e];o.trigger.apply(o,['keymap:emit'].concat(f)),o.trigger.apply(o,["keymap:emit:".concat(t)].concat(f))}})),o.trigger('keymap:add',u),u},get:function(t){return this.keymaps[t]},getAll:function(){return this.keymaps},remove:function(t){var e=this.em,n=this.get(t);if(n)return delete this.keymaps[t],n.keys.split(', ').forEach((function(t){return P.unbind(t.trim())})),e&&e.trigger('keymap:remove',n),n},removeAll:function(){var t=this;return Object.keys(this.keymaps).forEach((function(e){return t.remove(e)})),P.handlers={},this},destroy:function(){this.removeAll(),this.keymaps={},this.em={}}}}},2450:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>x});var r=n(4942),i=n(9050),o=n(9283);const s={stylePrefix:'mdl-',title:'',content:'',backdrop:!0,custom:!1,extend:{}};var a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{title:'',content:'',attributes:{},open:!1}}},{key:"open",value:function(){this.set('open',!0)}},{key:"close",value:function(){this.set('open',!1)}}]),n}(f.Model);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
").concat(i,"
\n
\n
\n
\n
").concat(r,"
\n
\n
\n
\n
")}},{key:"events",value:function(){return{click:'onClick','click [data-close-modal]':'hide'}}},{key:"initialize",value:function(t){var e=this.model,n=t.config||{},r=n.stylePrefix||'';this.config=n,this.pfx=r,this.ppfx=n.pStylePrefix||'',this.listenTo(e,'change:open',this.updateOpen),this.listenTo(e,'change:title',this.updateTitle),this.listenTo(e,'change:content',this.updateContent)}},{key:"onClick",value:function(t){this.config.backdrop&&t.target===this.el&&this.hide()}},{key:"getCollector",value:function(){return this.$collector||(this.$collector=this.$el.find('.'+this.pfx+'collector')),this.$collector}},{key:"getContent",value:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find(".".concat(t,"content #").concat(t,"c"))),this.$content}},{key:"getTitle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.$title||(this.$title=this.$el.find('.'+this.pfx+'title')),t.$?this.$title:this.$title.get(0)}},{key:"updateContent",value:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),r=this.model.get('content');e.length&&n.append(e),t.empty().append(r)}},{key:"updateTitle",value:function(){var t=this.getTitle({$:!0});t&&t.empty().append(this.model.get('title'))}},{key:"updateOpen",value:function(){this.el.style.display=this.model.get('open')?'':'none'}},{key:"hide",value:function(){this.model.close()}},{key:"show",value:function(){this.model.open()}},{key:"updateAttr",value:function(t){var e=this.pfx,n=this.$el,r=this.el,i=[].slice.call(r.attributes).map((function(t){return t.name}));n.removeAttr(i.join(' ')),n.attr(v(v({},t||{}),{},{class:"".concat(e,"container ").concat(t&&t.class||'').trim()}))}},{key:"render",value:function(){var t=this.$el,e=this.model.toJSON();return e.pfx=this.pfx,e.ppfx=this.ppfx,t.html(this.template(e)),this.updateAttr(),this.updateOpen(),this}}]),n}(f.View);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},a=(n=w(w({},s),o)).em;this.em=a;var l=n.pStylePrefix;return l&&(n.stylePrefix=l+n.stylePrefix),(t=new p(n)).on('change:open',(function(t,e){return r(e,a)})),t.on('change',(0,i.debounce)((function(){var t=e._evData(),n=e.getConfig().custom;(0,i.isFunction)(n)&&n(t),a.trigger('modal',t)}))),this},_evData:function(){var e=this,n=this.getTitle(),r=this.getContent(),s=t.attributes;return{open:s.open,attributes:s.attributes,title:(0,i.isString)(n)?(0,o.rw)(n):n,content:(0,i.isString)(r)?(0,o.rw)(r):r.get?r.get(0):r,close:function(){return e.close()}}},postRender:function(t){var e=t.model.getConfig().el||t.el,n=this.render();n&&n.appendTo(e)},open:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.attributes||{};return n.title&&this.setTitle(n.title),n.content&&this.setContent(n.content),t.set('attributes',r),t.open(),e&&e.updateAttr(r),this},close:function(){return t.close(),this},onceClose:function(t){return this.em.once('modal:close',t),this},onceOpen:function(t){return this.em.once('modal:open',t),this},isOpen:function(){return!!t.get('open')},setTitle:function(e){return t.set('title',e),this},getTitle:function(){return t.get('title')},setContent:function(e){return t.set('content',' '),t.set('content',e),this},getContent:function(){return t.get('content')},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){if(!this.getConfig().custom){var r=y.extend(n.extend),i=e&&e.el;return(e=new r({el:i,model:t,config:n})).render().$el}},destroy:function(){e&&e.remove(),[n,t,e].forEach((function(t){return{}})),this.em={}}}}},77:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>b});var r=n(4942);const i={stylePrefix:'',appendTo:'',sortable:1,hidable:1,hideTextnode:1,root:'',showWrapper:1,showHover:1,scrollCanvas:{behavior:'smooth',block:'nearest'},scrollLayers:{behavior:'auto',block:'nearest'},highlightHover:1,onInit:function(){},onRender:function(){},extend:{}};var o,s=n(9050),a=n(6183),l=n(2316),c=n.n(l),u=n(2169),h=n(9138),f='contentEditable',d={mediaText:''},p=c().$,g=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return 0===(t.display||'').trim().indexOf('none')};const v=c().View.extend({events:{'mousedown [data-toggle-move]':'startSort','touchstart [data-toggle-move]':'startSort','click [data-toggle-visible]':'toggleVisibility','click [data-toggle-open]':'toggleOpening','click [data-toggle-select]':'handleSelect','mouseover [data-toggle-select]':'handleHover','mouseout [data-toggle-select]':'handleHoverOut','dblclick [data-name]':'handleEdit','keydown [data-name]':'handleEditKey','focusout [data-name]':'handleEditEnd'},template:function(t){var e=this.pfx,n=this.ppfx,r=this.config,i=this.clsNoEdit,o=r.hidable,s=this.countChildren(t),a=s?'':this.clsNoChild,l="".concat(this.clsTitle," ").concat(a),c="".concat(this.clsTitleC," ").concat(n,"one-bg"),u="".concat(this.clsCaret," fa fa-chevron-right"),h="".concat(this.inputNameCls," ").concat(i," ").concat(n,"no-app"),f=this.level+1,d="".concat(30+10*f,"px"),p=t.getName(),g=t.getIcon(),v="".concat(e,"layer");return"\n ".concat(o?""):'',"\n
\n
\n
\n \n ").concat(g?"").concat(g,""):'',"\n ").concat(p,"\n
\n
\n
\n
").concat(s||'',"
\n
\n \n
\n
")},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,s.bindAll)(this,'__render'),this.opt=e,this.level=e.level;var n=e.config||{},r=n.onInit;this.config=n,this.em=e.config.em,this.ppfx=this.em.get('Config').stylePrefix,this.sorter=e.sorter||'',this.pfx=this.config.stylePrefix,this.parentView=e.parentView;var i=this.pfx,o=this.ppfx,a=this.model,l=a.get('components'),c=a.get('type')||'default';a.set('open',!1),this.listenTo(l,'remove add reset',this.checkChildren),[['change:status',this.updateStatus],['change:open',this.updateOpening],['change:layerable',this.updateLayerable],['change:style:display',this.updateVisibility],['rerender:layer',this.render],['change:name change:custom-name',this.updateName]].forEach((function(e){return t.listenTo(a,e[0],e[1])})),this.className="".concat(i,"layer ").concat(i,"layer__t-").concat(c," no-select ").concat(o,"two-color"),this.inputNameCls="".concat(o,"layer-name"),this.clsTitleC="".concat(i,"layer-title-c"),this.clsTitle="".concat(i,"layer-title"),this.clsCaret="".concat(i,"layer-caret"),this.clsCount="".concat(i,"layer-count"),this.clsMove="".concat(i,"layer-move"),this.clsChildren="".concat(i,"layer-children"),this.clsNoChild="".concat(i,"layer-no-chld"),this.clsEdit="".concat(this.inputNameCls,"--edit"),this.clsNoEdit="".concat(this.inputNameCls,"--no-edit"),this.$el.data('model',a),this.$el.data('collection',l),a.viewLayer=this,r.bind(this)({component:a,render:this.__render,listenTo:this.listenTo})},updateName:function(){this.getInputName().innerText=this.model.getName()},getVisibilityEl:function(){return this.eyeEl||(this.eyeEl=this.$el.children(".".concat(this.pfx,"layer-vis"))),this.eyeEl},updateVisibility:function(){var t=this.pfx,e=this.model,n="".concat(t,"layer-hidden"),r=g(e.getStyle(d))?'addClass':'removeClass';this.$el[r](n),this.getVisibilityEl()[r]('fa-eye-slash')},toggleVisibility:function(t){t&&t.stopPropagation();var e=this.model,n=this.em,r='__prev-display',i=e.get(r),o=e.getStyle(d),s=o.display;g(o)?(delete o.display,i&&(o.display=i,e.unset(r))):(s&&e.set(r,s),o.display='none'),e.setStyle(o,d),n&&n.trigger('component:toggled')},handleEdit:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName();o[f]=!0,o.focus(),document.execCommand('selectAll',!1,null),e&&e.setEditing(1),n.find(".".concat(this.inputNameCls)).removeClass(r).addClass(i)},handleEditKey:function(t){t.stopPropagation(),((0,a.isEscKey)(t)||(0,a.isEnterKey)(t))&&this.handleEditEnd(t)},handleEditEnd:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName(),s=o.textContent;o.scrollLeft=0,o[f]=!1,this.setName(s,{component:this.model,propName:'custom-name'}),e&&e.setEditing(0),n.find(".".concat(this.inputNameCls)).addClass(r).removeClass(i)},setName:function(t,e){var n=e.propName;this.model.set(n,t)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector(".".concat(this.inputNameCls))),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model,n='fa-chevron-down';e.get('open')?(this.$el.addClass('open'),this.getCaret().addClass(n),t[e.cid]=e):(this.$el.removeClass('open'),this.getCaret().removeClass(n),delete t[e.cid])},toggleOpening:function(t){var e=this.model;t.stopImmediatePropagation(),e.get('components').length&&e.set('open',!e.get('open'))},handleSelect:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;if(e){e.setSelected(r,{fromLayers:1,event:t});var i=n.scrollCanvas;i&&r.views.forEach((function(t){return t.scrollIntoView(i)}))}},handleHover:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;e&&n.showHover&&e.setHovered(r,{fromLayers:1})},handleHoverOut:function(t){t.stopPropagation();var e=this.em,n=this.config;e&&n.showHover&&e.setHovered(0,{fromLayers:1})},startSort:function(t){t.stopPropagation();var e=this.em,n=this.sorter;t.button&&0!==t.button||n&&(n.onStart=function(t){return e.trigger("".concat(h.OA,":start"),t)},n.onMoveClb=function(t){return e.trigger(h.OA,t)},n.startSort(t.target))},freeze:function(){this.$el.addClass(this.pfx+'opac50'),this.model.set('open',0)},unfreeze:function(){this.$el.removeClass(this.pfx+'opac50')},updateStatus:function(t){u.Z.prototype.updateStatus.apply(this,[{avoidHover:!this.config.highlightHover,noExtHl:1}])},isVisible:function(){return!g(this.model.getStyle())},checkChildren:function(){var t=this.model,e=this.clsNoChild,n=this.countChildren(t),r=this.$el.children(".".concat(this.clsTitleC)).children(".".concat(this.clsTitle)),i=this.cnt;i||(i=this.$el.children('[data-count]').get(0),this.cnt=i),r[n?'removeClass':'addClass'](e),i&&(i.innerHTML=n||''),!n&&t.set('open',0)},countChildren:function(t){var e=0;return t.get('components').each((function(t){var n=this.opt.isCountable,r=this.config.hideTextnode;n&&!n(t,r)||e++}),this),e},getCaret:function(){if(!this.caret||!this.caret.length){this.pfx;this.caret=this.$el.children(".".concat(this.clsTitleC)).find(".".concat(this.clsCaret))}return this.caret},setRoot:function(t){t=(0,s.isString)(t)?this.em.getWrapper().find(t)[0]:t;var e=(0,a.getModel)(t,p);e&&(this.stopListening(),this.model=e,this.initialize(this.opt),this._rendered&&this.render())},updateLayerable:function(){(this.parentView||this).render()},__clearItems:function(){var t=this.items;t&&t.remove()},remove:function(){c().View.prototype.remove.apply(this,arguments),this.__clearItems()},render:function(){var t=this.model,e=this.config,r=this.pfx,i=this.ppfx,a=this.opt;this.__clearItems();var l=a.isCountable,c=l&&!l(t,e.hideTextnode),u=this.isVisible(),h=this.$el.empty(),f=this.level+1;this.inputName=0,(0,s.isUndefined)(o)&&(o=n(3557).Z),this.items=new o({ItemView:a.ItemView,collection:t.get('components'),config:this.config,sorter:this.sorter,opened:this.opt.opened,parentView:this,parent:t,level:f});var d=this.items.render().$el;return this.config.showWrapper||1!==f?(h.html(this.template(t)),h.find(".".concat(this.clsChildren)).append(d)):h.append(d),t.get('draggable')&&this.config.sortable||h.children(".".concat(this.clsMove)).remove(),!u&&(this.className+=" ".concat(r,"hide")),c&&(this.className+=" ".concat(i,"hidden")),h.attr('class',this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this.__render(),this._rendered=1,this},__render:function(){var t=this.model,e=this.config,n={component:t,el:this.el};e.onRender.bind(this)(n),this.em.trigger('layer:render',n)}});function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function y(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=y(y({},i),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&((0,s.isElement)(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e&&e.setRoot(t),this},getRoot:function(){return e&&e.model},getAll:function(){return e},componentChanged:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.fromLayers){var i=t.get('opened'),o=t.getSelected(),s=n.scrollLayers,a=o&&o.collection?o.collection.parent:null;for(var l in i)i[l].set('open',0);for(;a;)a.set('open',1),i[a.cid]=a,a=a.collection?a.collection.parent:null;if(o&&s){var c=o.viewLayer&&o.viewLayer.el;c&&c.scrollIntoView(s)}}},render:function(){var r=v.extend(n.extend);return e&&e.remove(),(e=new r({ItemView:r,level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()})).render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},3557:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(2316),i=n(9138);const o=r.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.items=[],this.opt=t;var e=t.config||{};this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||'',this.pfx=e.stylePrefix||'',this.parent=t.parent,this.parentView=t.parentView;var n=this.pfx,r=this.ppfx,o=this.parent,s=this.collection;this.listenTo(s,'add',this.addTo),this.listenTo(s,'reset resetNavigator',this.render),this.listenTo(s,'remove',this.removeChildren),this.className="".concat(n,"layers");var a=e.em;if(e.sortable&&!this.opt.sorter){var l=a.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();a.setSelected(r,{forceChange:1}),a.trigger("".concat(i.OA,":end"),n)},avoidSelectOnEnd:1,nested:1,ppfx:r,pfx:n})}this.sorter=this.opt.sorter||'',this.$el.data('collection',s),o&&this.$el.data('model',o)},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,o=this.opt.ItemView,s=e||null,a=new o({ItemView:o,level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(s)s.appendChild(l);else if(void 0!==n){var c='before';this.$el.children().length==n&&(n--,c='after'),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return this.items.push(a),l},remove:function(){r.View.prototype.remove.apply(this,arguments),this.items.map((function(t){return t.remove()}))},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}})},2567:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>A,evAll:()=>O,evPageAdd:()=>_,evPageAddBefore:()=>T,evPageRemove:()=>E,evPageRemoveBefore:()=>j,evPageSelect:()=>k,evPageSelectBefore:()=>S,evPageUpdate:()=>P,evPfx:()=>C});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(2316),l=n(5671),c=n(3144),u=n(9340),h=n(3930),f=n(1120),d=n(9065);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var g=function(t){(0,u.Z)(n,t);var e=p(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frames:[],_undo:!0}}},{key:"initialize",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.config,i=void 0===r?{}:r,o=i.em,s={};this.em=o,t.frames||(s.component=t.component,s.styles=t.styles,['component','styles'].map((function(t){return e.unset(t)})));var a=t.frames||[s],l=new d.Z(a,i);l.page=this,this.set('frames',l);var c=o&&o.get('UndoManager');c&&c.add(l)}},{key:"onRemove",value:function(){this.get('frames').reset()}},{key:"getFrames",value:function(){return this.get('frames')}},{key:"getId",value:function(){return this.id}},{key:"getName",value:function(){return this.get('name')}},{key:"setName",value:function(t){return this.get({name:t})}},{key:"getAllFrames",value:function(){return this.getFrames().models||[]}},{key:"getMainFrame",value:function(){return this.getFrames().at(0)}},{key:"getMainComponent",value:function(){var t=this.getMainFrame();return t&&t.getComponent()}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=a.Model.prototype.toJSON.call(this,t),n=(0,o.result)(this,'defaults');return(0,o.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,o.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),e}}]),n}(a.Model);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return a.Collection.prototype.add.call(this,t,m(m({},e),{},{config:n}))}}]),n}(a.Collection);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'_onPageChange');var n=e.em,r=x({},e);this.config=r,this.em=n;var i=new b([],r);this.pages=i;var s=new a.Model({_undo:!0});return this.model=s,i.on('add',(function(t,e,r){return n.trigger(_,t,r)})),i.on('remove',(function(t,e,r){return n.trigger(E,t,r)})),i.on('change',(function(t,e){n.trigger(P,t,t.changedAttributes(),e)})),i.on('reset',(function(e){return e.at(0)&&t.select(e.at(0))})),i.on('all',this.__onChange,this),s.on(D,this._onPageChange),this},__onChange:function(t,e,n,r){var i=r||n;this.em.trigger(O,{event:t,page:e,options:i})},onLoad:function(){var t=this.pages,e={silent:!0};t.add(this.config.pages||[],e);var n=t.length?this.getMain():this.add({type:M},e);this.select(n,e)},_onPageChange:function(t,e,n){var r=this.em,i=r.get('LayerManager'),o=e.getMainComponent();i&&o&&i.setRoot(o),r.trigger(k,e,t.previous('selected')),this.__onChange(D,e,n)},postLoad:function(){var t=this.em,e=this.model,n=t.get('UndoManager');n&&n.add(e),n&&n.add(this.pages)},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em;t.id=t.id||this._createId();var i=function(){var r=e.pages.add(t,n);return n.select&&e.select(r),r};return!n.silent&&r.trigger(T,t,i,n),!n.abort&&i()},remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,s=function(){return i&&e.pages.remove(i,n),i};return!n.silent&&r.trigger(j,i,s,n),!n.abort&&s()},get:function(t){return this.pages.filter((function(e){return e.get('id')===t}))[0]},getMain:function(){var t=this.pages;return t.filter((function(t){return t.get('type')===M}))[0]||t.at(0)},getAll:function(){return(0,r.Z)(this.pages.models)},getAllWrappers:function(){var t=this.getAll();return(0,o.unique)((0,o.flatten)(t.map((function(t){return t.getAllFrames().map((function(t){return t.getComponent()}))}))))},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get('id')]=e,t}),{})},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,o.isString)(t)?this.get(t):t;return n&&(this.em.trigger(S,n,e),this.model.set('selected',n,e)),this},getSelected:function(){return this.model.get('selected')},destroy:function(){var t=this;this.pages.off().reset(),this.model.stopListening(),this.model.clear({silent:!0}),['selected','config','em','pages','model'].map((function(e){return t[e]=0}))},store:function(t){if(!this.em.get('hasPages'))return{};var e={},n=this.config;return e[this.storageKey]=JSON.stringify(this.getAll()),!t&&n.stm&&n.stm.store(e),e},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if('string'==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.pages.reset(n),n},_createId:function(){var t,e=this.getAll().length+16,n=this.getAllMap();do{t=(0,s.createId)(e)}while(n[t]);return t}}}},4906:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r='sw-visibility',i='export-template',o='open-sm',s='open-tm',a='open-layers',l='open-blocks',c='fullscreen',u='preview';const h={stylePrefix:'pn-',defaults:[{id:'commands',buttons:[{}]},{id:'options',buttons:[{active:!0,id:r,className:'fa fa-square-o',command:r,context:r,attributes:{title:'View components'}},{id:u,className:'fa fa-eye',command:u,context:u,attributes:{title:'Preview'}},{id:c,className:'fa fa-arrows-alt',command:c,context:c,attributes:{title:'Fullscreen'}},{id:i,className:'fa fa-code',command:i,attributes:{title:'View code'}}]},{id:'views',buttons:[{id:o,className:'fa fa-paint-brush',command:o,active:!0,togglable:0,attributes:{title:'Open Style Manager'}},{id:s,className:'fa fa-cog',command:s,togglable:0,attributes:{title:'Settings'}},{id:a,className:'fa fa-bars',command:a,togglable:0,attributes:{title:'Open Layer Manager'}},{id:l,className:'fa fa-th-large',command:l,togglable:0,attributes:{title:'Open Blocks'}}]}],em:null,delayBtnsShow:300};var f=n(2316),d=n.n(f),p=n(2516);const g=d().Model.extend({defaults:{id:'',content:'',visible:!0,buttons:[],attributes:{}},initialize:function(t){this.btn=this.get('buttons')||[],this.buttons=new p.Z(this.btn),this.set('buttons',this.buttons)}}),v=d().Collection.extend({model:g});var m=n(4942),y=n(9050);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.commands,o=this.$el,s=this.activeCls,a=n.fromCollection,l=n.fromListen,c=r.get('context'),u=r.get('options'),h=r.get('command'),f={};h&&(i&&(0,y.isString)(h)?f=i.get(h)||{}:(0,y.isFunction)(h)?f=i.create({run:h}):null!==h&&(0,y.isObject)(h)&&(f=i.create(h)),r.get('active')?(!a&&r.collection.deactivateAll(c,r),r.set('active',!0,{silent:!0}).trigger('checkActive'),!l&&i.runCommand(f,w(w({},u),{},{sender:r})),f.noStop&&r.set('active',!1)):(o.removeClass(s),!l&&i.stopCommand(f,w(w({},u),{},{sender:r,force:1}))))},updateDisable:function(){var t=this.disableCls,e=this.model.get('disable');this.$el[e?'addClass':'removeClass'](t)},checkActive:function(){var t=this.model,e=this.$el,n=this.activeCls;t.get('active')?e.addClass(n):e.removeClass(n)},clicked:function(t){var e=this.model;e.get('bntsVis')||e.get('disable')||!e.get('command')||this.toggleActive()},toggleActive:function(){var t=this.model,e=this.em,n=t.attributes,r=n.active,i=n.togglable;r&&!i||(t.set('active',!r),r?t.get('runDefaultCommand')&&e.runDefault():t.get('stopDefaultCommand')&&e.stopDefault())},render:function(){var t=this.model,e=t.get('label'),n=this.$el;return!t.get('el')&&n.empty(),this.updateAttributes(),e&&n.append(e),this.checkActive(),this.updateDisable(),this}}),O=d().View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||'',this.parentM=this.opt.parentM||null,this.listenTo(this.collection,'add',this.addTo),this.listenTo(this.collection,'reset remove',this.render),this.className=this.pfx+'buttons'},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,r=new x({el:t.get('el'),model:t,config:this.config,parentM:this.parentM}).render().el;return n?n.appendChild(r):this.$el.append(r),r},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each((function(e){this.addToCollection(e,t)}),this),this.$el.append(t),this.$el.attr('class',(0,y.result)(this,'className')),this}});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}const k=d().View.extend({initialize:function(t){var e=t.config||{},n=this.model;this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.buttons=n.get('buttons'),this.className=this.pfx+'panel',this.id=this.pfx+n.get('id'),this.listenTo(n,'change:appendContent',this.appendContent),this.listenTo(n,'change:content',this.updateContent),this.listenTo(n,'change:visible',this.toggleVisible),n.view=this},appendContent:function(){this.$el.append(this.model.get('appendContent'))},updateContent:function(){this.$el.html(this.model.get('content'))},toggleVisible:function(){this.model.get('visible')?this.$el.removeClass("".concat(this.ppfx,"hidden")):this.$el.addClass("".concat(this.ppfx,"hidden"))},attributes:function(){return this.model.get('attributes')},initResize:function(){var t=this.config.em,e=t?t.get('Editor'):'',n=this.model.get('resizable');if(e&&n){var r,i,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(r=s[0],o=s[0],i=s[1],l=s[1]):4==a&&(r=s[0],i=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init(function(t){for(var e=1;e{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r);const o=i().Model.extend({defaults:{id:'',label:'',tagName:'span',className:'',command:'',context:'',buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,togglable:!0,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get('buttons').length){var e=n(2516).Z;this.set('buttons',new e(this.get('buttons')))}}}),s=i().Collection.extend({model:o,deactivateAllExceptOne:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('active',!1),e&&n.get('buttons').length&&n.get('buttons').deactivateAllExceptOne(t,e))}))},deactivateAll:function(t,e){var n=t||'';this.forEach((function(t){t.get('context')==n&&t!==e&&t.set('active',!1,{fromCollection:1})}))},disableAllButtons:function(t){var e=t||'';this.forEach((function(t,n){t.get('context')==e&&t.set('disable',!0)}))},disableAllButtonsExceptOne:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('disable',!0),e&&n.get('buttons').length&&n.get('buttons').disableAllButtonsExceptOne(t,e))}))}})},4424:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={textTags:['br','b','i','u','a','ul','ol'],parserCss:null,parserHtml:null,optionsHtml:{htmlType:null,allowScripts:!1,allowUnsafeAttr:!1}};var o=n(9050),s={4:'media',5:'font-face',6:'page',7:'keyframes',11:'counter-style',12:'supports',13:'document',14:'font-feature-values',15:'viewport'},a=(0,o.keys)(s),l=['5','6','11','15'],c=['font-face','page','counter-style','viewport'],u=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=[],n=[],r=t.split(','),i=0,o=r.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i=t.length,o=t[i-1],s=o?o.split(/:(.+)/):[],a=s[1],l=n.atRule,u=n.selectorsAdd,h=n.mediaText,f=c.indexOf(l)>=0;return f&&(r.singleAtRule=1),l&&(r.atRuleType=l),u&&(r.selectorsAdd=u),h&&(r.mediaText=h),a&&(t[i-1]=s[0],r.state=a,s.splice(s.length-1,1)),r.selectors=t,r.style=e,r},p=function t(e){for(var n=[],r=e.cssRules||[],i=0,o=r.length;i=0;if(b)g=1,v=s[p],m=f(c);else if(a.indexOf(p)>=0){var w=t(c);m=f(c);for(var x=0,O=w.length;x0&&void 0!==arguments[0]?arguments[0]:{};return{parse:function(e){var n=this,r=[],i=t.parserCss,o=t.em,s=o&&o.get&&o.get('Editor');return(i?i(e,s):g(e)).forEach((function(t){return r=r.concat(n.checkNode(t))})),o&&o.trigger('parse:css',{input:e,output:r}),r},checkNode:function(t){var e=t,n=e.selectors,r=e.style;if((0,o.isString)(n)){var i=[],s=u(n),a=s.result,l=s.add.join(', '),c={atRule:t.atRule,mediaText:t.params};if(a.length?a.forEach((function(t){i.push(d(t,r,c))})):i.push(d([],r,c)),l)i[i.length-1].selectorsAdd=l;t=i}return t}}};var m=n(5311);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=b(b({},i),r)).Parser=this,t=new m.Z(n),e=new v(n),this.em=n.em,this.parserCss=e,this.parserHtml=t,this},getConfig:function(){return n},parseHtml:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.em,o=this.compTypes;return t.compTypes=i?i.get('DomComponents').getTypes():o,t.parse(n,e,r)},parseCss:function(t){return e.parse(t)},destroy:function(){var r=this;[n,t,e].forEach((function(t){return{}})),['em','parserCss','parserHtml'].forEach((function(t){return r[t]={}}))}}}},5311:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(4942),i=n(1002),o=n(9050),s='text/html',a=s;const l=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new DOMParser,i=n.htmlType||a,l=i===s,c=l?t:"
".concat(t,"
"),u=r.parseFromString(c,i);if(l){var h=u.head,f=u.body,d=h.querySelectorAll('script');(0,o.each)(d,(function(t){return f.appendChild(t)}));var p=[];(0,o.each)(h.children,(function(t){return p.push(t)})),(0,o.each)(p,(function(t,e){return f.insertBefore(t,f.children[e])})),e=f}else e=u.firstChild;return e};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},r={},i={};return(0,o.each)(e,(function(e,s){if(0===s.indexOf(t.modelAttrStart)){var a=s.replace(n,''),l=e.length,c=e&&(0,o.isString)(e),u=c&&e.substr(0,1),h=c&&e.substr(l-1);e='false'!==(e='true'===e||e)&&e;try{e='{'==u&&'}'==h||'['==u&&']'==h?JSON.parse(e):e}catch(t){}r[a]=e}else i[s]=e})),{props:r,attrs:i}},parseStyle:function(t){for(var e={},n=t.split(';'),r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},s=[],a=r.childNodes,l=0,c=a.length;l'!=="".concat(h.outerHTML).slice(-2)||(m.void=!0);var A=m.components;if(!m.type&&A){for(var L=1,R=0,N=0;N2&&void 0!==arguments[2]?arguments[2]:{},c=e.em,h=c&&c.get('Config')||{},f={html:null,css:null},d=u(u({},t),a),p=u(u({},t.optionsHtml),{},{htmlType:(null===(s=t.optionsHtml)||void 0===s?void 0:s.htmlType)||t.htmlType},a),g=(0,o.isFunction)(d.parserHtml)?d.parserHtml(n,p):l(n,p),v=g.querySelectorAll('script'),m=v.length,y=(0,o.isUndefined)(h.allowScripts)?p.allowScripts:h.allowScripts;if(!y)for(;m--;)v[m].parentNode.removeChild(v[m]);if(p.allowUnsafeAttr||this.__clearUnsafeAttr(g),i){for(var b=g.querySelectorAll('style'),w=b.length,x='';w--;)x=b[w].innerHTML+x,b[w].parentNode.removeChild(b[w]);x&&(f.css=i.parse(x))}c&&c.trigger("".concat(r,":root"),{input:n,root:g});var O=this.parseNode(g,d),C=1!==O.length||e.returnArray?O:O[0];return f.html=C,c&&c.trigger(r,{input:n,output:f}),f},__clearUnsafeAttr:function(t){var e=this,n=t.attributes||[],r=t.childNodes||[],i=[];(0,o.each)(n,(function(t){var e=t.nodeName||'';0===e.indexOf('on')&&i.push(e)})),i.map((function(e){return t.removeAttribute(e)})),(0,o.each)(r,(function(t){return e.__clearUnsafeAttr(t)}))}}}},2012:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>S});var r=n(5861),i=n(2982),o=n(4942),s=n(7757),a=n.n(s),l=n(5671),c=n(3144),u=n(9050),h=n(6183);function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:'A',n=t.selection(),r=n.anchorNode,i=n.focusNode,o=null==r?void 0:r.parentNode,s=null==i?void 0:i.parentNode;return(null==o?void 0:o.nodeName)==e||(null==s?void 0:s.nodeName)==e},y='data-selectme',b={bold:{name:'bold',icon:'B',attributes:{title:'Bold'},result:function(t){return t.exec('bold')}},italic:{name:'italic',icon:'I',attributes:{title:'Italic'},result:function(t){return t.exec('italic')}},underline:{name:'underline',icon:'U',attributes:{title:'Underline'},result:function(t){return t.exec('underline')}},strikethrough:{name:'strikethrough',icon:'S',attributes:{title:'Strike-through'},result:function(t){return t.exec('strikeThrough')}},link:{icon:"\n \n ",name:'link',attributes:{style:'font-size:1.4rem;padding:0 4px 2px;',title:'Link'},state:function(t){return t&&t.selection()&&m(t)?p:g},result:function(t){m(t)?t.exec('unlink'):t.insertHTML("").concat(t.selection(),""),{select:!0})}},wrap:{icon:"\n \n ",attributes:{title:'Wrap for style'},state:function(t){return null!=t&&t.selection()&&m(t,'SPAN')?v:g},result:function(t){!m(t,'SPAN')&&t.insertHTML("").concat(t.selection(),""),{select:!0})}}},w=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,l.Z)(this,t);var r=n.el,i=n.em;if(this.em=i,r._rte)return r._rte;r._rte=this,this.setEl(r),this.updateActiveActions=this.updateActiveActions.bind(this),this.__onKeydown=this.__onKeydown.bind(this),this.__onPaste=this.__onPaste.bind(this);var o=(n.actions||[]).map((function(t){var e=t;return'string'==typeof t?e=d({},b[t]):b[t.name]&&(e=d(d({},b[t.name]),t)),e})),s=o.length?o:Object.keys(b).map((function(t){return b[t]}));n.classes=d(d({},{actionbar:'actionbar',button:'action',active:'active',disabled:'disabled',inactive:'inactive'}),n.classes);var a=n.classes,c=n.actionbar;if(this.actionbar=c,this.settings=n,this.classes=a,this.actions=s,!c){var u=n.actionbarContainer;(c=document.createElement('div')).className=a.actionbar,u.appendChild(c),this.actionbar=c,s.forEach((function(t){return e.addAction(t)}))}return n.styleWithCSS&&this.exec('styleWithCSS'),this}return(0,c.Z)(t,[{key:"destroy",value:function(){this.el=0,this.doc=0,this.actionbar=0,this.settings={},this.classes={},this.actions=[]}},{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach((function(e){var n=e.btn,r=e.update,i=d({},t.classes),o=i.active,s=i.inactive,a=i.disabled,l=e.state,c=e.name,u=t.doc;if(n.className=n.className.replace(o,'').trim(),n.className=n.className.replace(s,'').trim(),n.className=n.className.replace(a,'').trim(),l)switch(l(t,u)){case p:n.className+=" ".concat(o);break;case g:n.className+=" ".concat(s);break;case v:n.className+=" ".concat(a)}else u.queryCommandSupported(c)&&u.queryCommandState(c)&&(n.className+=" ".concat(o));r&&r(t,e)}))}},{key:"enable",value:function(t){return this.enabled?this:this.__toggleEffects(!0,t)}},{key:"disable",value:function(){return this.__toggleEffects(!1)}},{key:"__toggleEffects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t?h.on:h.off,r=this.el,i=this.doc;if(this.actionbarEl().style.display=t?'':'none',r.contentEditable=!!t,n(r,'mouseup keyup',this.updateActiveActions),n(i,'keydown',this.__onKeydown),n(i,'paste',this.__onPaste),this.enabled=t,t){var o=e.event;if(this.syncActions(),this.updateActiveActions(),o){var s=null;if(i.caretRangeFromPoint){var a=(0,h.getPointerEvent)(o);s=i.caretRangeFromPoint(a.clientX,a.clientY)}else o.rangeParent&&(s=i.createRange()).setStart(o.rangeParent,o.rangeOffset);var l=i.getSelection();l.removeAllRanges(),s&&l.addRange(s)}r.focus()}return this}},{key:"__onKeydown",value:function(t){'Enter'===t.key&&(this.doc.execCommand('insertLineBreak'),t.preventDefault())}},{key:"__onPaste",value:function(t){var e=t.clipboardData||window.clipboardData,n=e.getData('text'),r=e.getData('text/html');if(n&&!r){t.preventDefault();var i=n.replace(/(?:\r\n|\r|\n)/g,'
');this.doc.execCommand('insertHTML',!1,i)}}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach((function(e){if(t.actionbar&&(!e.state||e.state&&e.state(t,t.doc)>=0)){var n=e.event||'click';e.btn["on".concat(n)]=function(n){e.result(t,e),t.updateActiveActions()}}}))}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,r=document.createElement('span'),i=t.icon,o=t.attributes||{};for(var s in r.className=this.classes.button,t.btn=r,o)r.setAttribute(s,o[s]);'string'==typeof i?r.innerHTML=i:r.appendChild(i),this.actionbarEl().appendChild(r),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.select,r=this.em,i=this.doc,o=this.el,s=i.getSelection();if(s&&s.rangeCount){var a=(0,h.getModel)(o),l=i.createElement('div'),c=s.getRangeAt(0);c.deleteContents(),(0,u.isString)(t)?l.innerHTML=t:t&&l.appendChild(t),Array.prototype.slice.call(l.childNodes).forEach((function(t){c.insertNode(t)})),s.removeAllRanges(),s.addRange(c),o.focus(),n&&a&&(a.once('rte:disable',(function(){var t=a.find("[".concat(y,"]"))[0];t&&(r.setSelected(t),t.removeAttributes(y))})),a.trigger('disable'))}}}]),t}();const x={stylePrefix:'rte-',adjustToolbar:1,actions:['bold','italic','underline','strikethrough','link','wrap']};function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=C(C({},x),e),r=n.pStylePrefix;return r&&(n.stylePrefix=r+n.stylePrefix),this.config=n,this.pfx=n.stylePrefix,this.em=n.em,this.actions=n.actions||[],(0,h.hasWin)()?((t=document.createElement('div')).className="".concat(r,"rte-toolbar ").concat(r,"one-bg"),this.initRte(document.createElement('div')),(0,h.on)(t,'mousedown',(function(t){return t.stopPropagation()})),this):this},destroy:function(){var e,n,r,i=this;null===(e=this.globalRte)||void 0===e||e.destroy(),null===(n=this.customRte)||void 0===n||null===(r=n.destroy)||void 0===r||r.call(n),t=0,['actionbar','actions','em','config','globalRte','lastEl'].map((function(t){delete i[t]}))},postRender:function(n){var r=n.model.get('Canvas');t.style.pointerEvents='all',e(),r.getToolsEl().appendChild(t)},initRte:function(e){var n=this.globalRte,r=this.em,o=this.pfx,s=this.actionbar,a=this.config,l=t,c=this.actions||(0,i.Z)(a.actions),u={actionbar:"".concat(o,"actionbar"),button:"".concat(o,"action"),active:"".concat(o,"active"),inactive:"".concat(o,"inactive"),disabled:"".concat(o,"disabled")};return n?(n.em=r,n.setEl(e)):(n=new w({em:r,el:e,classes:u,actions:c,actionbar:s,actionbarContainer:l}),this.globalRte=n),n.actionbar&&(this.actionbar=n.actionbar),n.actions&&(this.actions=n.actions),n},add:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.name=t,null===(e=this.globalRte)||void 0===e||e.addAction(n,{sync:1})},get:function(t){var e,n;return null===(e=this.globalRte)||void 0===e||e.getActions().forEach((function(e){e.name==t&&(n=e)})),n},getAll:function(){var t;return null===(t=this.globalRte)||void 0===t?void 0:t.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var r=n.btn,i=e.indexOf(n);r.parentNode.removeChild(r),e.splice(i,1)}return n},getToolbarEl:function(){return t},updatePosition:function(){var e=this.em.get('Canvas'),n=t.style,r=e.getTargetToElementFixed(this.lastEl,t,{event:'rteToolbarPosUpdate',left:0});n.top=(r.top||0)+"px",n.left=(r.left||0)+"px"},enable:function(e,n,i){var o=this;return(0,r.Z)(a().mark((function r(){var s,l,c,u;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.lastEl=e.el,s=o.customRte,l=o.em,c=e.getChildrenContainer(),t.style.display='',r.next=6,s?s.enable(c,n):o.initRte(c).enable(i);case 6:return u=r.sent,l&&(setTimeout(o.updatePosition.bind(o),0),l.off(k,o.updatePosition,o),l.on(k,o.updatePosition,o),l.trigger('rte:enable',e,u)),r.abrupt("return",u);case 9:case"end":return r.stop()}}),r)})))()},disable:function(t,n){var r=this.em,i=this.customRte,o=t.getChildrenContainer();i?i.disable(o,n):n&&n.disable(),e(),r&&(r.off(k,this.updatePosition,this),r.trigger('rte:disable',t,n))}}}},4755:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>H,evAdd:()=>R,evAll:()=>A,evCustom:()=>F,evPfx:()=>L,evRemove:()=>Z,evRemoveBefore:()=>I,evState:()=>V,evUpdate:()=>N});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(2316),l=n.n(a),c=n(9304);const u={stylePrefix:'clm-',appendTo:'',selectors:[],states:[{name:'hover'},{name:'active'},{name:'nth-of-type(2n)'}],escapeName:0,selectedName:0,iconAdd:'',iconSync:'',iconTagOn:'',iconTagOff:'',iconTagRemove:'',render:0,componentFirst:0,custom:!1};var h=n(8490),f=n(4293),d=n(5671),p=n(3144),g=n(9340),v=n(3930),m=n(1120);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var b=function(t){(0,g.Z)(n,t);var e=y(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"defaults",value:function(){return{name:'',label:''}}},{key:"getName",value:function(){return this.get('name')}},{key:"getLabel",value:function(){return this.get('label')||this.getName()}}]),n}(a.Model);b.prototype.idAttribute='name';var w=n(168),x='contentEditable';const O=l().View.extend({template:function(){var t=this.pfx,e=this.model,n=this.config,r=e.get('label')||'';return"\n \n ").concat(r,"\n \n ").concat(n.iconTagRemove,"\n \n ")},events:{'click [data-tag-remove]':'removeTag','click [data-tag-status]':'changeStatus','dblclick [data-tag-name]':'startEditTag','focusout [data-tag-name]':'endEditTag'},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{};this.config=e,this.module=t.module,this.coll=t.coll||null,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.listenTo(this.model,'change:active',this.updateStatus)},getInputEl:function(){return this.inputEl||(this.inputEl=this.el.querySelector('[data-tag-name]')),this.inputEl},startEditTag:function(){var t=this.em,e=this.getInputEl();e[x]=!0,e.focus(),t&&t.setEditing(1)},endEditTag:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=this.em,i=r&&r.get('SelectorManager');if(e[x]=!1,r&&r.setEditing(0),i){var o=i.escapeName(n);i.get(o)?e.innerText=t.get('label'):t.set({name:o,label:n})}},changeStatus:function(){var t=this.model;t.set('active',!t.get('active'))},removeTag:function(){this.module.removeSelected(this.model)},updateStatus:function(){var t=this.model,e=this.$el,n=this.config,r=n.iconTagOn,i=n.iconTagOff,o=e.find('[data-tag-status]');t.get('active')?(o.html(r),e.removeClass('opac50')):(o.html(i),e.addClass('opac50'))},render:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr('class',"".concat(t,"tag ").concat(e,"three-bg")),this.updateStatus(),this}});var C,k,S,P,_=n(1629);const T=l().View.extend({template:function(t){var e=t.labelInfo,n=t.labelHead,r=t.iconSync,i=t.iconAdd,o=t.pfx,s=t.ppfx;return"\n
\n
").concat(n,"
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n ").concat(i,"\n \n \n ").concat(r,"\n \n
\n
\n
").concat(e,":
\n
\n
")},events:{'change [data-states]':'stateChanged','click [data-add]':'startNewTag','focusout [data-input]':'endNewTag','keyup [data-input]':'onInputKeyUp','click [data-sync-style]':'syncStyle'},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=e.config||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.pfx+'tags',this.stateInputId=this.pfx+'states',this.stateInputC=this.pfx+'input-c',this.states=this.config.states||[];var n=this.config.em,r=this.collection;this.target=this.config.em;var i=e.module;this.module=i,this.em=n;var s='component:toggled component:update:classes',a='component:update:classes change:state';this.listenTo(n,s,this.componentChanged),this.listenTo(n,'styleManager:update',this.componentChanged),this.listenTo(n,a,this.__handleStateChange),this.listenTo(n,'styleable:change change:device',this.checkSync),this.listenTo(r,'add',this.addNew),this.listenTo(r,'reset',this.renderClasses),this.listenTo(r,'remove',this.tagRemoved),this.listenTo(i.getAll(),i.events.state,(0,o.debounce)((function(){return t.renderStates()}))),this.delegateEvents()},syncStyle:function(){var t,e=this.em,n=this.getTarget(),r=e.get('CssComposer'),i=this.getCommonSelectors({opts:{noDisabled:1}}),o=e.get('state'),s=e.getCurrentMedia(),a=[],l=r.get(i,o,s)||r.add(i,o,s);this.getTargets().forEach((function(e){var n=r.getIdRule(e.getId(),{state:o,mediaText:s});t=n.getStyle(),n.setStyle({}),a.push(n)})),t&&l.addStyle(t),e.trigger('component:toggled'),e.trigger('component:sync-style',{component:n,selectors:i,mediaText:s,rule:l,ruleComponents:a,state:o})},tagRemoved:function(t){this.updateStateVis()},addNew:function(t){this.addToClasses(t)},startNewTag:function(){this.$addBtn.css({display:'none'}),this.$input.show().focus()},endNewTag:function(){this.$addBtn.css({display:''}),this.$input.hide().val('')},onInputKeyUp:function(t){13===t.keyCode?(t.preventDefault(),this.addNewTag(this.$input.val())):27===t.keyCode&&this.endNewTag()},checkStates:function(){var t=this.em.getState(),e=this.getStates();e&&e.val(t)},componentChanged:(0,o.debounce)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets;this.updateSelection(e)})),updateSelection:function(t){var e=t||this.getTargets(),n=[];return(e=(0,o.isArray)(e)?e:[e])&&e.length&&(n=this.getCommonSelectors({targets:e}),this.checkSync({validSelectors:n})),this.collection.reset(n),this.updateStateVis(e),this.module.__trgCustom(),n},getCommonSelectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets,n=t.opts,r=void 0===n?{}:n,i=e||this.getTargets();return this.module.__getCommonSelectors(i,r)},_commonSelectors:function(){var t;return(t=this.module).__common.apply(t,arguments)},checkSync:(0,o.debounce)((function(){var t,e=this.$btnSyncEl,n=this.config,r=this.collection,i=this.getTarget();if(i&&n.componentFirst&&r.length){var s=i.getStyle();t=!(0,o.isEmpty)(s)}e&&e[t?'show':'hide']()})),getTarget:function(){return this.target.getSelected()},getTargets:function(){return this.target.getSelectedAll()},updateStateVis:function(t){var e=this.em,n=e&&e.getConfig('avoidInlineStyle'),r=this.collection.length||n?'':'none';this.getStatesC().css('display',r),this.updateSelector(t)},__handleStateChange:function(){this.updateSelector(this.getTargets())},updateSelector:function(t){var e=this,n=this.el.querySelector('[data-selected]'),r=[],i=t||this.getTargets();(i=(0,o.isArray)(i)?i:[i]).forEach((function(t){return r.push(e.__getName(t))})),n&&(n.innerHTML=r.join(', ')),this.checkStates()},__getName:function(t){var e,n=this.pfx,r=this.config,i=this.em,s=r.selectedName,a=r.componentFirst;if((0,o.isString)(t))e=(0,_.Z)(C||(C=(0,w.Z)(["",""])),n,t);else{var l=t&&t.get&&t.getSelectors();if(!l)return;var c=l.getStyleable(),u=i.get('state'),h=t.getId?(0,_.Z)(k||(k=(0,w.Z)(["","\n #",""])),n,t.getName(),n,t.getId()):'';e=(e=this.collection.getFullString(c))?(0,_.Z)(S||(S=(0,w.Z)(["",""])),n,e):t.get('selectorsAdd')||h,e=a&&h?h:e,e+=u?(0,_.Z)(P||(P=(0,w.Z)([":",""])),n,u):'',e=s?s({result:e,state:u,target:t}):e}return e&&"").concat(e,"")},stateChanged:function(t){var e=this.em,n=t.target.value;e.set('state',n)},addNewTag:function(t){var e=t.trim();e&&(this.module.addSelected({label:e}),this.endNewTag())},addToClasses:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.getClasses(),i=new O({model:t,config:this.config,coll:this.collection,module:this.module}).render().el;return n?n.appendChild(i):r.append(i),i},renderClasses:function(){var t=this,e=document.createDocumentFragment(),n=this.getClasses();n.empty(),this.collection.each((function(n){return t.addToClasses(n,e)})),n.append(e)},getClasses:function(){return this.$el.find('[data-selectors]')},getStates:function(){if(!this.$states){var t=this.$el.find('[data-states]');this.$states=t[0]&&t}return this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find('#'+this.stateInputC)),this.$statesC},renderStates:function(){var t=this.module,e=this.em,n=e.t('selectorManager.emptyState'),r=t.getStates().map((function(t){var n=e.t("selectorManager.states.".concat(t.id))||t.getLabel()||t.id;return"")})).join(''),i=this.getStates();i&&i.html("").concat(r)),this.checkStates()},render:function(){var t=this.em,e=this.pfx,n=this.ppfx,r=this.config,i=this.$el,o=this.el,s=r.render,a={iconSync:r.iconSync,iconAdd:r.iconAdd,labelHead:t.t('selectorManager.label'),labelInfo:t.t('selectorManager.selected'),ppfx:n,pfx:e,el:o};i.html(this.template(a));var l=s&&s(a);return l&&l!==o&&i.empty().append(l),this.$input=i.find('[data-input]'),this.$addBtn=i.find('[data-add]'),this.$classes=i.find('#'+e+'tags-c'),this.$btnSyncEl=i.find('[data-sync-style]'),this.$input.hide(),this.renderStates(),this.renderClasses(),i.attr('class',"".concat(this.className," ").concat(n,"one-bg ").concat(n,"two-color")),this}});function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(u,e);var n=this.getConfig(),r=n.em,i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),this.all=new f.Z(n.selectors),this.selected=new f.Z([],{em:r,config:n}),this.states=new a.Collection(n.states,{model:b}),this.model=new a.Model({cFirst:n.componentFirst,_undo:!0}),this.__initListen({collections:[this.states,this.selected],propagate:[{entity:this.states,event:this.events.state}]}),r.on('change:state',(function(t,e){return r.trigger(V,e)})),this.model.on('change:cFirst',(function(t,e){return r.trigger('selector:type',e)}));var o='component:toggled component:update:classes change:device styleManager:update selector:state selector:type';return this.model.listenTo(r,o,(function(){return t.__update()})),this},__update:(0,o.debounce)((function(){this.__trgCustom()})),__trgCustom:function(t){this.em.trigger(this.events.custom,this.__customData(t))},__customData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.container;return{states:this.getStates(),selected:this.getSelected(),container:e}},postRender:function(){this.__appendTo(),this.__trgCustom()},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.em.get('StyleManager').select(n,e),i=this.selectorTags,o=r.filter((function(t){return t})).map((function(t){return(0,s.isComponent)(t)||(0,s.isRule)(t)&&!t.get('selectorsAdd')?t:t.getSelectorsString()}));return i&&i.componentChanged({targets:o}),this},addSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=j({},e);(0,o.isObject)(t)?r=t:r.name=t,D(r.name)?(r.name=r.name.substr(1),r.type=h.Z.TYPE_ID):M(r.name)&&(r.name=r.name.substr(1)),r.label&&!r.name&&(r.name=this.escapeName(r.label));var i=r.name,s=this.getConfig(),a=this.getAll(),l=i?this.get(i,r.type):a.where(r)[0];return l||a.add(r,j(j({},n),{},{config:s}))},getSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.Z.TYPE_CLASS;return D(t)?(t=t.substr(1),e=h.Z.TYPE_ID):M(t)&&(t=t.substr(1)),this.getAll().where({name:t,type:e})[0]},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isString)(t)?{}:n;return(0,o.isArray)(t)?t.map((function(t){return e.addSelector(t,n,r)})):this.addSelector(t,n,r)},addClass:function(t){var e=this,n=[];return(0,o.isString)(t)&&(t=t.trim().split(' ')),t.forEach((function(t){return n.push(e.addSelector(t))})),n},get:function(t,e){var n=this;if((0,o.isArray)(t)){var r=[];return t.map((function(t){return n.getSelector(t)})).filter((function(t){return t})).forEach((function(t){return r.indexOf(t)<0&&r.push(t)})),r}return this.getSelector(t,e)||null},remove:function(t,e){return this.__remove(t,e)},setState:function(t){return this.em.setState(t),this},getState:function(){return this.em.getState()},getStates:function(){return(0,r.Z)(this.states.models)},setStates:function(t,e){return this.states.reset(t,e)},getSelected:function(){return this.__getCommon()},addSelected:function(t){var e=this.add(t);this.em.getSelectedAll().forEach((function(t){t.getSelectors().add(e)}))},removeSelected:function(t){this.em.getSelectedAll().forEach((function(e){!t.get('protected')&&e&&e.getSelectors().remove(t)}))},getSelectedTargets:function(){return this.em.get('StyleManager').getSelectedAll()},setComponentFirst:function(t){this.getConfig().componentFirst=t,this.model.set({cFirst:t})},getComponentFirst:function(){return this.getConfig().componentFirst},escapeName:function(t){var e=this.getConfig().escapeName;return e?e(t):h.Z.escapeName(t)},render:function(t){this.em;var e=this.selectorTags,n=this.getConfig(),r=e&&e.el;return this.selected.reset(t),this.selectorTags=new T({el:r,collection:this.selected,module:this,config:n}),this.selectorTags.render().el},destroy:function(){var t=this.selectorTags;this.model.stopListening(),this.__destroy(),t&&t.remove(),this.selectorTags={}},__getCommon:function(){return this.__getCommonSelectors(this.em.getSelectedAll())},__getCommonSelectors:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.map((function(t){return t.getSelectors&&t.getSelectors().getValid(e)})).filter(Boolean);return this.__common.apply(this,(0,r.Z)(n))},__common:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r=0})):n.slice(1).reduce((function(e,n){return t.__common(e,n)}),n[0]):[]}})}},8490:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),s=n(3930),a=n(1120),l=n(2316),c=n(9050);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,a.Z)(t);if(e){var i=(0,a.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var h=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"defaults",value:function(){return{name:'',label:'',type:1,active:!0,private:!1,protected:!1,_undo:!0}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.config,i=void 0===r?{}:r,o=this.get('name'),s=this.get('label');o?s||this.set('label',o):this.set('name',s);var a=this.get('name'),l=i.escapeName,c=l?l(a):n.escapeName(a);this.set('name',c),this.em=i.em}},{key:"isId",value:function(){return 2===this.get('type')}},{key:"isClass",value:function(){return 1===this.get('type')}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.escape,n=this.get('name'),r='';switch(this.get('type')){case 1:r='.';break;case 2:r='#'}return r+(e?e(n):n)}},{key:"toString",value:function(){return this.getFullName()}},{key:"getLabel",value:function(){return this.get('label')}},{key:"setLabel",value:function(t){return this.set('label',t)}},{key:"getActive",value:function(){return this.get('active')}},{key:"setActive",value:function(t){return this.set('active',t)}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=l.Model.prototype.toJSON.call(this,[t]),r=(0,c.result)(this,'defaults');if(e&&e.getConfig('avoidDefaults')){(0,c.forEach)(r,(function(t,e){n[e]===t&&delete n[e]})),n.label===n.name&&delete n.label;var i=(0,c.keys)(n).length;1===i&&n.name&&(n=n.name),2===i&&n.name&&n.type&&(n=this.getFullName())}return n}}]),n}(l.Model);h.prototype.idAttribute='name',h.TYPE_CLASS=1,h.TYPE_ID=2,h.escapeName=function(t){return"".concat(t).trim().replace(/([^a-z0-9\w-\:]+)/gi,'-')}},4293:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(5671),i=n(3144),o=n(9340),s=n(3930),a=n(1120),l=n(9050),c=n(2316),u=n(8490);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,a.Z)(t);if(e){var i=(0,a.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var f=function t(e,n){return e.reduce((function(r,i,o){return r.concat(t(e.slice(o+1),"".concat(n).concat(i)))}),[n])},d=function(t){(0,o.Z)(n,t);var e=h(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"modelId",value:function(t){return"".concat(t.name,"_").concat(t.type||u.Z.TYPE_CLASS)}},{key:"getStyleable",value:function(){return(0,l.filter)(this.models,(function(t){return t.get('active')&&!t.get('private')}))}},{key:"getValid",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDisabled;return(0,l.filter)(this.models,(function(t){return!t.get('private')})).filter((function(t){return e?t.get('active'):1}))}},{key:"getFullString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t||this;return r.forEach((function(t){return n.push(t.getFullName(e))})),n.join('').trim()}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.combination,n=t.array,r=[],i=this.map((function(e){return e.getFullName(t)})).sort();return e?i.forEach((function(t,e){r=r.concat(f(i.slice(e+1),t))})):r=i,n?r:e?r.join(','):r.join('')}}]),n}(c.Collection);d.prototype.model=u.Z},4859:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={id:'gjs-',autosave:!0,autoload:!0,type:'local',stepsBeforeSave:1,storeComponents:!0,storeStyles:!0,storeHtml:!0,storeCss:!0,checkLocal:!0,params:{},headers:{},urlStore:'',urlLoad:'',beforeSend:function(t,e){},onComplete:function(t,e){},contentTypeJson:!0,credentials:'include',fetchOptions:''};var o=n(2316),s=n.n(o),a=n(6183);const l=o.Model.extend({defaults:{checkLocal:!0},store:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(this.hasLocal())for(var n in t)localStorage.setItem(n,t[n]);e&&e()},load:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n={};if(this.hasLocal())for(var r=0,i=t.length;r1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=this.get('contentTypeJson'),l=this.get('headers')||{},c=this.get('params'),h='X-Requested-With',d='Content-Type',p=i.body||{};for(var g in c)p[g]=c[g];if((0,u.isUndefined)(l[h])&&(l[h]='XMLHttpRequest'),(0,u.isUndefined)(l[d])&&a&&(l[d]='application/json; charset=utf-8'),a)n=JSON.stringify(p);else for(var v in n=new FormData,p)n.append(v,p[v]);'post'===(e={method:i.method||'post',credentials:this.get('credentials'),headers:l}).method&&(e.body=n);var m=this.get('fetchOptions')||{},y=(0,u.isFunction)(m)?m(e):e;this.onStart(),this.fetch(t,f(f({},e),y||{})).then((function(t){return 1==(t.status/200|0)?t.text():t.text().then((function(t){return Promise.reject(t)}))})).then((function(t){return r.onResponse(t,o)})).catch((function(t){return r.onError(t,s)}))}});function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return e=g(g({},i),n),t=e.em,e._disable&&(e.type=0),r.remote=new d(e),r.local=new l(e),e.currentStorage=e.type,this.loadDefaultProviders().setCurrent(e.type),this},getConfig:function(){return e},isAutosave:function(){return!!e.autosave},setAutosave:function(t){return e.autosave=!!t,this},getStepsBeforeSave:function(){return e.stepsBeforeSave},setStepsBeforeSave:function(t){return e.stepsBeforeSave=t,this},add:function(t,e){return n[t]=e,this},get:function(t){return n[t]||null},getStorages:function(){return n},getCurrent:function(){return e.currentStorage},setCurrent:function(t){return e.currentStorage=t,this},store:function(t,n){var r=this,i=this.get(this.getCurrent()),o={};for(var s in this.onStart('store',t),t)o[e.id+s]=t[s];return i?i.store(o,(function(t){r.onAfter('store',t),n&&n(t),r.onEnd('store',t)}),(function(t){r.onError('store',t)})):null},load:function(t,n){var r=this,i=this.get(this.getCurrent()),o=[],s={};'string'==typeof t&&(t=[t]),this.onStart('load',t);for(var a=0,l=t.length;a0&&void 0!==arguments[0]?arguments[0]:{},n={},r=new RegExp('^'+e.id);for(var i in t){var o=i.replace(r,'');n[o]=t[i]}return n},loadDefaultProviders:function(){for(var t in r)this.add(t,r[t]);return this},getCurrentStorage:function(){return this.get(this.getCurrent())},onStart:function(e,n){t&&(t.trigger(v),e&&t.trigger("".concat(v,":").concat(e),n))},onAfter:function(e,n){t&&(t.trigger(m),e&&t.trigger("".concat(m,":").concat(e),n))},onEnd:function(e,n){t&&(t.trigger(y),e&&t.trigger("".concat(y,":").concat(e),n))},onError:function(e,n){t&&(t.trigger(b,n),e&&t.trigger("".concat(b,":").concat(e),n),this.onEnd(e,n))},canAutoload:function(){return this.getCurrentStorage()&&this.getConfig().autoload},destroy:function(){[e,t,n,r].forEach((function(t){return{}}))}}}},2326:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>_e,evAll:()=>de,evCustom:()=>Se,evLayerSelect:()=>Ce,evPfx:()=>pe,evProp:()=>be,evPropAdd:()=>we,evPropRemove:()=>xe,evPropUp:()=>Oe,evSector:()=>ge,evSectorAdd:()=>ve,evSectorRemove:()=>me,evSectorUpdate:()=>ye,evTarget:()=>ke});var r=n(2982),i=n(4942),o=n(9050),s=n(6183),a=n(9304),l=n(2316),c=n.n(l);const u={sectors:[{name:'General',open:!1,properties:['display','float','position','top','right','left','bottom']},{name:'Flex',open:!1,properties:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,properties:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,properties:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow']},{name:'Decorations',open:!1,properties:['background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,properties:['opacity','transition']}],appendTo:'',stylePrefix:'sm-',custom:!1,hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!0,avoidComputed:['width','height']};var h=n(4925),f=n(5671),d=n(3144),p=n(9340),g=n(3930),v=n(1120),m=n(793),y=["partial"];function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em;var r=this.get('id')||'',i=this.get('name')||this.get('label')||'';!this.get('property')&&this.set('property',(i||r).replace(/ /g,'-'));var o=this.get('property');!this.get('id')&&this.set('id',o),!i&&this.set('name',(0,s.capitalize)(o).replace(/-/g,' ')),this.on('change',this.__upTargets),n.callInit(this,t,e)}},{key:"__getParentProp",value:function(){var t,e;return null===(t=this.collection)||void 0===t||null===(e=t.opts)||void 0===e?void 0:e.parentProp}},{key:"__upTargets",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=this.em,a=s.get('StyleManager'),l=this.getName(),c=n.__clear,u=c?'':this.__getFullValue(n),h=this.__getParentProp(),f=this.changedAttributes(),d=(0,o.keys)(f).reduce((function(t,n){return t[n]=e.previous(n),t}),{}),p=[].concat((0,r.Z)((0,o.keys)(this.__getClearProps())),['__p']),g=(0,o.keys)(f),v=!n.__up&&!h&&(c||p.some((function(t){return g.indexOf(t)>=0}))),m=this.get('onChange'),y={property:this,from:d,to:f,value:u,opts:n};a.__trgEv(a.events.propertyUpdate,y),m&&m(y),v&&this.__upTargetsStyle((0,i.Z)({},l,u),n)}},{key:"__upTargetsStyle",value:function(t,e){var n,r=null===(n=this.em)||void 0===n?void 0:n.get('StyleManager');null==r||r.addStyleTargets(w(w({},t),{},{__p:!!e.avoidStore}),e)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.noTarget&&(e.__up=!0);var n=e.partial,r=(0,h.Z)(e,y);return t.__p=!(!r.avoidStore&&!n),this.set(t,w(w({},r),{},{avoidStore:t.__p}))}},{key:"up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.set(t,w(w({},e),{},{__up:!0}))}},{key:"init",value:function(){}},{key:"getId",value:function(){return this.get('id')}},{key:"getType",value:function(){return this.get('type')}},{key:"getName",value:function(){return this.get('property')}},{key:"getLabel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('name')||this.get('label');return r&&(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.properties.".concat(i)))||o}},{key:"getValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDefault,n=this.get('value');return this.hasValue()||e?n:this.getDefaultValue()}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget(),r=this.get('value');return!(0,o.isUndefined)(r)&&''!==r&&!n}},{key:"hasValueParent",value:function(){return this.hasValue()&&!this.hasValue({noParent:!0})}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=t.camelCase?(0,s.camelCase)(e):e;return(0,i.Z)({},n,this.__getFullValue(t))}},{key:"getDefaultValue",value:function(){var t=this.get('default');return"".concat((0,o.isUndefined)(t)?this.get('defaults'):t)}},{key:"upValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null===t||''===t?this.__getClearProps():this.__parseValue(t,e);return this._up(n,e)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._up(this.__getClearProps(),w(w({},t),{},{__clear:!0}))}},{key:"canClear",value:function(){var t=this.getParent();return t?t.__canClearProp(this):this.hasValue({noParent:!0})}},{key:"getParent",value:function(){return this.__getParentProp()||null}},{key:"isFull",value:function(){return!!this.get('full')}},{key:"__parseValue",value:function(t,e){return this.parseValue(t,e)}},{key:"__getClearProps",value:function(){return{value:''}}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t),i=!e;!i&&this.set({value:void 0},{avoidStore:i,silent:!0}),this.set(r,w({avoidStore:i},n))}},{key:"setValueFromInput",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,w(w({},n),{},{fromInput:1}))}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={value:t},r='!important';if((0,o.isString)(t)&&-1!==t.indexOf(r)&&(n.value=t.replace(r,'').trim(),n.important=1),!this.get('functionName')&&!e.complete)return n;var i=[],s="".concat(n.value),a=s.indexOf('(')+1,l=s.lastIndexOf(')'),c=s.substring(0,a-1);if(c&&(n.functionName=c),i.push(a),l>=0&&i.push(l),n.value=String.prototype.substring.apply(s,i),e.numeric){var u=parseFloat(n.value);n.unit=n.value.replace(u,''),n.value=u}return n}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.withDefault;return!this.hasValue()&&e?this.getDefaultValue():this.getFullValue()}},{key:"getFullValue",value:function(t){var e=this.get('functionName'),n=this.getDefaultValue(),r=(0,o.isUndefined)(t)?this.get('value'):t,i=!(0,o.isUndefined)(r)&&''!==r;if(r&&n&&r===n)return n;if(e&&i){var s='url'===e?"'".concat(r.replace(/'/g,''),"'"):r;r="".concat(e,"(").concat(s,")")}return i&&this.get('important')&&(r="".concat(r," !important")),r||''}},{key:"__setParentTarget",value:function(t){this.__parentTarget=t}},{key:"getParentTarget",value:function(){return this.__parentTarget||null}},{key:"__parseFn",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=t.indexOf('(')+1,n=t.lastIndexOf(')');return{name:t.substring(0,e-1).trim(),value:String.prototype.substring.apply(t,[e,n>=0?n:void 0]).trim()}}},{key:"__checkVisibility",value:function(t){var e=t.target,n=t.component,r=t.sectors,i=n||e;if(!i)return!1;var a=this.getId(),l=this.getName(),c=this.get('toRequire'),u=this.get('requires'),h=this.get('requiresParent'),f=i.get('unstylable'),d=i.get('stylable-require'),p=i.get('stylable');if((0,o.isArray)(p)&&(p=p.indexOf(l)>=0),(0,o.isArray)(f)&&(p=f.indexOf(l)<0),c&&(p=!e||d&&(d.indexOf(a)>=0||d.indexOf(l)>=0)),r&&u){var g=(0,o.keys)(u);r.forEach((function(t){t.getProperties().forEach((function(t){if((0,o.includes)(g,t.id)){var e=u[t.id];p=p&&(0,o.includes)(e,t.get('value'))}}))}))}if(h){var v=n&&n.parent(),m=v&&v.getEl();if(m){var y=(0,s.hasWin)()?window.getComputedStyle(m):{};(0,o.each)(h,(function(t,e){p=p&&y[e]&&(0,o.includes)(t,y[e])}))}else p=!1}return!!p}}]),n}(l.Model);function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};t.prototype.initialize.apply(e,[n,w(w({},r),{},{skipInit:1})])},O.callInit=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.skipInit&&t.init(e,n)},O.getDefaults=function(){return(0,o.result)(this.prototype,'defaults')},O.prototype.defaults={name:'',property:'',type:'',defaults:'',info:'',value:'',icon:'',functionName:'',status:'',visible:!0,fixedValues:['initial','inherit'],onChange:null,full:0,important:0,toRequire:0,requires:null,requiresParent:null};var P=function(t){return'integer'===t||'number'===t},_=function(t){(0,p.Z)(n,t);var e=S(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return k(k({},O.getDefaults()),{},{detached:!1,properties:[],separator:' ',join:null,fromStyle:null,toStyle:null,full:!0})}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.em,r=new Bt(this.get('properties')||[],{em:n,parentProp:this});this.set('properties',r,{silent:1}),this.listenTo(r,'change',this.__upProperties),O.callInit(this,t,e)}},{key:"getProperties",value:function(){return(0,r.Z)(this.get('properties').models)}},{key:"getProperty",value:function(t){return this.get('properties').filter((function(e){return e.getId()===t||e.getName()===t}))[0]||null}},{key:"getPropertyAt",value:function(t){return this.get('properties').at(t)}},{key:"isDetached",value:function(){return!!this.get('detached')}},{key:"getValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.byName;return this.getProperties().reduce((function(t,n){return t[e?n.getName():n.getId()]="".concat(n.__getFullValue()),t}),{})}},{key:"getSeparator",value:function(){return this.getSplitSeparator()}},{key:"getJoin",value:function(){return this.__getJoin()}},{key:"getStyleFromProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.__getJoin(),r=this.get('toStyle'),o=this.getValues(),s={};if(r)s=r(o,{join:n,name:e,property:this});else if(o=this.getValues({byName:!0}),this.isDetached())s=o;else{var a=this.getProperties().map((function(t){return t.__getFullValue({withDefault:1})})).filter(Boolean).join(n);s=(0,i.Z)({},e,a)}return this.isDetached()?s[e]='':(s[e]=s[e]||'',s=k(k({},s),this.getProperties().reduce((function(t,e){return t[e.getName()]='',t}),{}))),t.camelCase?Object.keys(s).reduce((function(t,e){return t[camelCase(e)]=s[e],t}),{}):s}},{key:"getSplitSeparator",value:function(){return new RegExp("".concat(this.get('separator'),"(?![^\\(]*\\))"))}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__up&&!e.__clearIn){var n=this.__getParentProp();if(n)return n.__upProperties(this,e);this.__upTargetsStyleProps(e,t)}}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.getStyleFromProps();if(this.isDetached()&&e){var r=e.getName();n=(0,i.Z)({},r,n[r])}this.__upTargetsStyle(n,t)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__setProperties(this.__getSplitValue(t.value),e),O.prototype._up.call(this,t,e)}},{key:"getStyle",value:function(t){return this.getStyleFromProps(t)}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isDetached()||t.__clear?'':this.getStyleFromProps()[this.getName()]||''}},{key:"__getJoin",value:function(){var t=this.get('join');return(0,o.isString)(t)?t:this.get('separator')}},{key:"__styleHasProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.getProperties(),i=n.map((function(t){return t.getName()})),s=[e].concat((0,r.Z)(i));return s.some((function(e){return!(0,o.isUndefined)(t[e])&&''!==t[e]}))}},{key:"__splitValue",value:function(t,e){return t.split(e).map((function(t){return t.trim()})).filter(Boolean)}},{key:"__splitStyleName",value:function(t,e,n){return this.__splitValue(t[e]||'',n)}},{key:"__getSplitValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.byName,r=this.getProperties(),i=4===r.length&&r.every((function(t){return P(t.getType())})),s=this.__splitValue(t,this.getSplitSeparator()),a={};return r.forEach((function(t,e){var r=s[e],l=(0,o.isUndefined)(r)?'':r;if(i){var c=s.length;l=s[e]||s[e%c+(1!=c&&c%2?1:0)]||l}var u=n?t.getName():t.getId();a[u]=l||''})),a}},{key:"__getPropsFromStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.__styleHasProps(t))return null;var n=e.byName,r=this.getName(),i=this.getProperties(),s=this.getSplitSeparator(),a=this.get('fromStyle'),l=a?a(t,{property:this,name:r,separator:s}):{};return a||(l=this.__getSplitValue(t[r]||'',{byName:n}),i.forEach((function(e){var r=t[e.getName()],i=n?e.getName():e.getId();(0,o.isUndefined)(r)||''===r||(l[i]=r)}))),l}},{key:"__setProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.getProperties().forEach((function(n){var r=t[n.getId()];n.__getFullValue()!==r&&n.upValue(r,e)}));var n=(0,o.keys)(t).map((function(e){return t[e]})).join(' ');this.set('value',n,{silent:!0})}},{key:"clear",value:function(){var t=this;return this.getProperties().map((function(e){return e.clear({__clearIn:!t.isDetached()})})),O.prototype.clear.call(this)}},{key:"hasValue",value:function(t){return this.getProperties().some((function(e){return e.hasValue(t)}))}},{key:"getFullValue",value:function(){return this.__getFullValue()}},{key:"__canClearProp",value:function(t){return this.isDetached()&&t.hasValue({noParent:!0})}}]),n}(O);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('values');return t.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,s.camelCase)(n)]=e[n],t}),{}):e}},{key:"getLabel",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.getLayerLabel(this)}},{key:"isSelected",value:function(){var t;return(null===(t=this.prop)||void 0===t?void 0:t.getSelectedLayer())===this}},{key:"select",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.selectLayer(this)}},{key:"remove",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.removeLayer(this)}},{key:"move",value:function(t){var e;return null===(e=this.prop)||void 0===e?void 0:e.moveLayer(this,t)}},{key:"getStylePreview",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return null===(t=this.prop)||void 0===t?void 0:t.getStylePreview(this,e)}},{key:"hasPreview",value:function(){var t;return!(null===(t=this.prop)||void 0===t||!t.get('preview'))}},{key:"upValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.set('values',E(E({},this.getValues()),t))}}]),n}(l.Model);function M(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var A=function(t){(0,p.Z)(n,t);var e=M(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prop=e.prop}}]),n}(l.Collection);A.prototype.model=D;var L=["__layers"];function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.callParentInit(_,this,t,e);var n=this.get('layers'),r=new A(n,{prop:this});r.property=this,r.properties=this.get('properties'),this.set('layers',r,{silent:!0}),this.on('change:selectedLayer',this.__upSelected),this.listenTo(r,'add remove',this.__upLayers),_.callInit(this,t,e)}},{key:"getLayers",value:function(){return this.__getLayers().models}},{key:"__getLayers",value:function(){return this.get('layers')}},{key:"getLayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.__getLayers().at(t)||null}},{key:"getSelectedLayer",value:function(){var t=this.get('selectedLayer');return t&&t.getIndex()>=0?t:null}},{key:"selectLayer",value:function(t){return this.set('selectedLayer',t,{__select:!0})}},{key:"selectLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e&&this.selectLayer(e)}},{key:"moveLayer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t?t.getIndex():-1;n>=0&&(0,o.isNumber)(e)&&e>=0&&e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};this.getProperties().forEach((function(e){var r=e.getId(),i=t[r];n[r]=(0,o.isUndefined)(i)?e.getDefaultValue():i}));var r=this.get('layers').push({values:n},e);return r}},{key:"removeLayer",value:function(t){return this.get('layers').remove(t)}},{key:"removeLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e?this.removeLayer(e):null}},{key:"getLayerLabel",value:function(t){var e='';if(t){var n=this.get('layerLabel'),r=t.getValues(),i=t.getIndex();if(n)e=n(t,{index:i,values:r,property:this});else{var o=[];this.getProperties().map((function(t){o.push(r[t.getId()])})),e=o.filter(Boolean).join(' ')}}return e}},{key:"getStyleFromLayer",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.__getJoin(),a=this.__getJoinLayers(),l=this.get('toStyle'),c=this.getName(),u=t.getValues();if(l)e=l(u,{join:r,joinLayers:a,name:c,layer:t,property:this});else{var h=this.getProperties().map((function(t){var e=t.getName(),r=u[t.getId()],i=(0,o.isUndefined)(r)?t.getDefaultValue():r;if(n.number&&P(t.getType())){var s=t.parseValue(r,n.number);i="".concat(s.value).concat(s.unit)}return{name:e,value:i}}));e=this.isDetached()?h.reduce((function(t,e){return t[e.name]=e.value,t}),{}):(0,i.Z)({},this.getName(),h.map((function(t){return t.value})).join(r))}return n.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,s.camelCase)(n)]=e[n],t}),{}):e}},{key:"getStylePreview",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=this.get('preview');return r&&(n=this.getStyleFromLayer(t,e)),n}},{key:"getLayerSeparator",value:function(){var t=this.get('layerSeparator');return(0,o.isString)(t)?new RegExp("".concat(t,"(?![^\\(]*\\))")):t}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getSelectedLayer();n&&(n.upValues((0,i.Z)({},t.getId(),t.__getFullValue())),e.__up||this.__upTargetsStyleProps(e))}},{key:"__upLayers",value:function(t,e,n){this.__upTargetsStyleProps(n||e)}},{key:"__upTargets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__select)return O.prototype.__upTargets.call(this,t,e)}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__upTargetsStyle(this.getStyleFromLayers(),t)}},{key:"__upTargetsStyle",value:function(t,e){return O.prototype.__upTargetsStyle.call(this,t,e)}},{key:"__upSelected",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noEvent,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em.get('StyleManager'),i=this.getSelectedLayer(),o=null==i?void 0:i.getValues();o&&this.getProperties().forEach((function(t){var e=o[t.getId()];t.__getFullValue()!==e&&t.upValue(e,N(N({},n),{},{__up:!0}))})),!e&&r.__trgEv(r.events.layerSelect,{property:this})}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.__layers,r=void 0===n?[]:n,i=(0,h.Z)(t,L);return!this.isDetached()&&this.__setLayers(r),this.__upSelected({noEvent:!0},e),O.prototype._up.call(this,i,e)}},{key:"__setLayers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.__getLayers(),n=t.map((function(t){return{values:t}}));e.length===n.length?n.map((function(t,n){var r;return null===(r=e.at(n))||void 0===r?void 0:r.upValues(t.values)})):this.__getLayers().reset(n),this.__upSelected({noEvent:!0})}},{key:"__parseValue",value:function(t){var e=this,n=this.parseValue(t);return n.__layers=t.split(I).map((function(t){return t.trim()})).map((function(t){return e.__parseLayer(t)})).filter(Boolean),n}},{key:"__parseLayer",value:function(t){var e=this.get('parseLayer'),n=t.split(F),r=this.getProperties();return e?e({value:t,values:n}):r.reduce((function(t,e,r){var i=n[r];return t[e.getId()]=(0,o.isUndefined)(i)?e.getDefaultValue():i,t}),{})}},{key:"__getLayersFromStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.__styleHasProps(e))return null;var n=this.getName(),r=this.getProperties(),s=this.getLayerSeparator(),a=this.get('fromStyle'),l=a?a(e,{property:this,name:n,separatorLayers:s}):[];if(!a){var c=this.__splitStyleName(e,n,s).map((function(e){return e.split(t.getSplitSeparator())})).map((function(t){var e={};return r.forEach((function(n,r){var i=t[r];e[n.getId()]=(0,o.isUndefined)(i)?n.getDefaultValue():i})),e}));r.forEach((function(n){var r=n.getId();t.__splitStyleName(e,n.getName(),s).map((function(t){return(0,i.Z)({},r,t||n.getDefaultValue())})).forEach((function(t,e){c[e]=c[e]?N(N({},c[e]),t):t}))})),l=c}return(0,o.isArray)(l)?l:[l]}},{key:"getStyle",value:function(t){return this.getStyleFromLayers(t)}},{key:"getStyleFromLayers",value:function(t){var e=this,n={},r=this.getName(),i=this.getLayers(),s=this.getProperties();if(i.map((function(n){return e.getStyleFromLayer(n,t)})).forEach((function(t){(0,o.keys)(t).map((function(e){n[e]||(n[e]=[]),n[e].push(t[e])}))})),(0,o.keys)(n).map((function(t){n[t]=n[t].join(e.__getJoinLayers())})),this.isDetached())n[r]='',!i.length&&s.map((function(t){n[t.getName()]=''}));else{var a=s.reduce((function(t,e){return t[e.getName()]='',t}),{});n[r]=n[r]||'',n=N(N({},n),a)}return n}},{key:"__getJoinLayers",value:function(){var t=this.get('layerJoin'),e=this.get('layerSeparator');return t||((0,o.isString)(e)?e:t)}},{key:"__getFullValue",value:function(){return this.get('detached')?'':this.getStyleFromLayers()[this.getName()]}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget();return this.getLayers().length>0&&!n}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.__getLayers().reset(),this.__upTargetsStyleProps(t),O.prototype.clear.call(this)}},{key:"__canClearProp",value:function(){return!1}}]),n}(_),H=["complete","partial"];function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function z(t){for(var e=1;e
\n
\n ")}},{key:"templateLabel",value:function(t){var e=this.pfx,n=this.em,r=t.parent,i=t.attributes,o=i.icon,s=void 0===o?'':o,a=i.info,l=void 0===a?'':a,c=null==n?void 0:n.getConfig('icons'),u=(null==c?void 0:c.close)||'';return"\n \n ").concat(t.getLabel(),"\n \n ").concat(r?'':"
").concat(u,"
"),"\n ")}},{key:"templateInput",value:function(t){return"\n
\n \n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__change','__updateStyle');var e=t.config||{},n=e.em;this.config=e,this.em=n,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.__destroyFn=this.destroy?this.destroy.bind(this):function(){};var r=this.model;r.view=this,this.onValueChange=(0,o.debounce)(this.onValueChange.bind(this),10),this.updateStatus=(0,o.debounce)(this.updateStatus.bind(this)),this.listenTo(r,'destroy remove',this.remove),this.listenTo(r,'change:visible',this.updateVisibility),this.listenTo(r,'change:name change:className change:full',this.render),this.listenTo(r,'change:value',this.onValueChange),this.listenTo(n,'change:device',this.onValueChange);var i=this.init&&this.init.bind(this);i&&i()}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['em','input','$input','view'].forEach((function(e){return t[e]=null})),this.__destroyFn(this._getClbOpts())}},{key:"updateStatus",value:function(){var t,e=this.model,n=this.pfx,r=this.ppfx,i=this.config,o="".concat(r,"four-color"),s="".concat(r,"color-warn"),a=this.$el.children(".".concat(n,"label")),l=this.getClearEl(),c=l?l.style:{};a.removeClass("".concat(o," ").concat(s)),c.display='none',e.hasValue({noParent:!0})&&i.highlightChanged?(a.addClass(o),i.clearProperties&&(c.display='')):e.hasValue()&&i.highlightComputed&&a.addClass(s),null===(t=this.parent)||void 0===t||t.updateStatus()}},{key:"clear",value:function(t){t&&t.stopPropagation(),this.model.clear()}},{key:"getClearEl",value:function(){return this.clearEl||(this.clearEl=this.el.querySelector("[".concat(W,"]"))),this.clearEl}},{key:"inputValueChanged",value:function(t){t&&t.stopPropagation(),this.emit||this.model.upValue(t.target.value)}},{key:"onValueChange",value:function(t,e){this.setValue(this.model.getFullValue()),this.updateStatus()}},{key:"setValue",value:function(t){var e=this.model,n=(0,o.isUndefined)(t)||''===t?e.getDefaultValue():t;if(this.update)return this.__update(n);this.__setValueInput(n)}},{key:"__setValueInput",value:function(t){var e=this.getInputEl();e&&(e.value=t)}},{key:"getInputEl",value:function(){return this.input||(this.input=this.el.querySelector('input')),this.input}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"clearCached",value:function(){this.clearEl=null,this.input=null,this.$input=null}},{key:"__unset",value:function(){var t=this.unset&&this.unset.bind(this);t&&t(this._getClbOpts())}},{key:"__update",value:function(t){var e=this.update&&this.update.bind(this);e&&e(z(z({},this._getClbOpts()),{},{value:t}))}},{key:"__change",value:function(){for(var t=this.emit&&this.emit.bind(this),e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.complete,r=e.partial,i=((0,h.Z)(e,H),this.model),o=!1!==n&&!0!==r;(0,s.isObject)(t)?i.__upTargetsStyle(t,{avoidStore:!o}):i.upValue(t,{partial:!o})}},{key:"_getClbOpts",value:function(){var t=this.model;return{el:this.el,createdEl:this.createdEl,property:t,props:t.attributes,change:this.__change,updateStyle:this.__updateStyle}}},{key:"render",value:function(){this.clearCached();var t=this.pfx,e=this.model,n=this.el,r=this.$el,i=e.getName(),o=e.getType(),s=e.get('className')||'',a="".concat(t,"property"),l='number'===o?"".concat(t).concat(o," ").concat(t,"integer"):"".concat(t).concat(o);this.createdEl&&this.__destroyFn(this._getClbOpts()),r.empty().append(this.template(e)),r.find('[data-sm-label]').append(this.templateLabel(e));var c=this.create&&this.create.bind(this);this.createdEl=c&&c(this._getClbOpts()),r.find('[data-sm-fields]').append(this.createdEl||this.templateInput(e)),n.className="".concat(a," ").concat(l," ").concat(a,"__").concat(i," ").concat(s).trim(),n.className+=e.isFull()?" ".concat(a,"--full"):'';var u=this.onRender&&this.onRender.bind(this);u&&u(),this.setValue(e.getValue())}}]),n}(l.View);$.prototype.events=(0,i.Z)({change:'inputValueChanged'},"click [".concat(W,"]"),'clear');var q=n(9283);function G(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var K=function(t){(0,p.Z)(n,t);var e=G(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||'',this.properties=[],this.parent=t.parent;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.render)}},{key:"addTo",value:function(t,e,n){this.add(t,null,n)}},{key:"add",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parent,i=this.config,o=e||this.el,s=new t.typeView({model:t,config:i});r&&(s.parent=r),s.render();var a=s.el;this.properties.push(s),(0,q.$Q)(o,a,n.at)}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.clearItems()}},{key:"clearItems",value:function(){this.properties.forEach((function(t){return t.remove()})),this.properties=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx;this.clearItems();var r=document.createDocumentFragment();return this.collection.forEach((function(e){return t.add(e,r)})),e.empty(),e.append(r),e.attr('class',"".concat(n,"properties")),this}}]),n}(l.View);function Y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function J(t){for(var e=1;e\n \n
\n ")}},{key:"remove",value:function(){var t;null===(t=this.props)||void 0===t||t.remove(),$.prototype.remove.apply(this,arguments)}},{key:"onValueChange",value:function(){}},{key:"onRender",value:function(){var t=this.model,e=this.pfx,n=t.get('properties');if(n.length&&!this.props){var r=t.isDetached(),i=new K({config:J(J({},this.config),{},{highlightComputed:r,highlightChanged:r}),collection:n,parent:this});i.render(),this.$el.find("#".concat(e,"input-holder")).append(i.el),this.props=i}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.props=null}}]),n}($);function tt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var et=function(t){(0,p.Z)(n,t);var e=tt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"events",value:function(){return{click:'select','click [data-close-layer]':'removeItem','mousedown [data-move-layer]':'initSorter','touchstart [data-move-layer]':'initSorter'}}},{key:"template",value:function(){var t=this.pfx,e=this.ppfx,n=this.em,r=null==n?void 0:n.getConfig('icons'),i=(null==r?void 0:r.close)||'',o=(null==r?void 0:r.move)||'';return"\n
\n
\n ").concat(o,"\n
\n
\n
\n
\n
\n
\n ").concat(i,"\n
\n
\n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.em=n.em,this.config=n,this.sorter=t.sorter,this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.propertyView=t.propertyView;var r=this.propertyView.model;this.listenTo(e,'destroy remove',this.remove),this.listenTo(e,'change:values',this.updateLabel),this.listenTo(r,'change:selectedLayer',this.updateVisibility),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data('model',e)}},{key:"initSorter",value:function(){var t;null===(t=this.sorter)||void 0===t||t.startSort(this.el)}},{key:"removeItem",value:function(t){t&&t.stopPropagation(),this.model.remove()}},{key:"select",value:function(){this.model.select()}},{key:"getPropertiesWrapper",value:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector('[data-properties]')),this.propsWrapEl}},{key:"getPreviewEl",value:function(){return this.previewEl||(this.previewEl=this.el.querySelector('[data-preview]')),this.previewEl}},{key:"getLabelEl",value:function(){return this.labelEl||(this.labelEl=this.el.querySelector('[data-label]')),this.labelEl}},{key:"updateLabel",value:function(){var t=this.model,e=t.getLabel();if(this.getLabelEl().innerHTML=e,t.hasPreview()){var n=this.getPreviewEl(),r=t.getStylePreview({number:{min:-3,max:3}}),i=(0,o.keys)(r).map((function(t){return"".concat(t,":").concat(r[t])})).join(';');n.setAttribute('style',i)}}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n=this.propertyView,r=this.getPropertiesWrapper(),i=e.isSelected();r.style.display=i?'':'none',this.$el[i?'addClass':'removeClass']("".concat(t,"active")),i&&r.appendChild(n.props.el)}},{key:"render",value:function(){var t=this.el,e=this.pfx,n=this.model;return t.innerHTML=this.template(),t.className="".concat(e,"layer"),n.hasPreview()&&(t.querySelector("[data-preview-box]").style.display=''),this.updateLabel(),this.updateVisibility(),this}}]),n}(l.View);function nt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var rt=function(t){(0,p.Z)(n,t);var e=nt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=this.collection,n=t.config||{},r=n.em,i=n.stylePrefix||'',o=n.pStylePrefix||'';this.config=n,this.pfx=i,this.ppfx=o,this.propertyView=t.propertyView,this.className="".concat(i,"layers ").concat(o,"field"),this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.reset),this.items=[];var s=r?r.get('Utils'):'';this.sorter=s?new s.Sorter({container:this.el,ignoreViewChildren:1,containerSel:".".concat(i,"layers"),itemSel:".".concat(i,"layer"),pfx:n.pStylePrefix}):'',e.view=this,this.$el.data('model',e),this.$el.data('collection',e)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=e||null,i=this.propertyView,o=this.config,s=this.sorter,a=this.$el,l=new et({model:t,config:o,sorter:s,propertyView:i}),c=l.render().el;if(this.items.push(l),r)r.appendChild(c);else if(void 0!==n){var u='before';a.children().length===n&&(n--,u='after'),n<0?a.append(c):a.children().eq(n)[u](c)}else a.append(c);return c}},{key:"reset",value:function(t,e){this.clearItems(e),this.render()}},{key:"remove",value:function(){this.clearItems(),l.View.prototype.remove.apply(this,arguments)}},{key:"clearItems",value:function(){this.items.forEach((function(t){return t.remove()})),this.items=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.sorter,r=document.createDocumentFragment();return e.empty(),this.collection.forEach((function(e){return t.addToCollection(e,r)})),e.append(r),e.attr('class',this.className),n&&(n.plh=null),this}}]),n}(l.View);function it(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 ot(t){for(var e=1;e\n \n
\n \n ")}},{key:"init",value:function(){var t=this.model;this.listenTo(t.__getLayers(),'change reset',this.updateStatus)}},{key:"addLayer",value:function(){this.model.addLayer({},{at:0})}},{key:"setValue",value:function(){}},{key:"remove",value:function(){var t;null===(t=this.layersView)||void 0===t||t.remove(),Q.prototype.remove.apply(this,arguments)}},{key:"clearCached",value:function(){Q.prototype.clearCached.apply(this,arguments),this.layersView=null}},{key:"onRender",value:function(){var t=this.model,e=this.el,n=this.config,r=t.get('properties');if(r.length&&!this.props){var i=new K({config:ot(ot({},n),{},{highlightComputed:!1,highlightChanged:!1}),collection:r,parent:this});i.render();var o=new rt({collection:t.__getLayers(),config:n,propertyView:this});o.render(),e.querySelector('[data-layers-wrapper]').appendChild(o.el),this.props=i,this.layersView=o}}}]),n}(Q);function lt(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 ct(t){for(var e=1;e\n
\n
\n \n
\n
\n
\n
\n
\n
").concat(i,"
\n
\n \n ")}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.el,r=e.getDefaultValue(),i=n.querySelector('[data-preview-box]'),o=n.querySelector('[data-preview]');i.style.display=t&&t!==r?'':'none',o.style.backgroundImage=t||e.getDefaultValue()}},{key:"openAssetManager",value:function(){var t,e=this,n=null===(t=this.em)||void 0===t?void 0:t.get('AssetManager');null==n||n.open({select:function(t,r){var i=(0,o.isString)(t)?t:t.get('src');e.model.upValue(i,{partial:!r}),r&&n.close()},types:['image'],accept:'image/*'})}}]),n}($);function ft(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var dt=function(t){(0,p.Z)(n,t);var e=ft(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"templateInput",value:function(){return''}},{key:"init",value:function(){var t=this.model;this.listenTo(t,'change:unit',this.onValueChange),this.listenTo(t,'change:units',this.render)}},{key:"setValue",value:function(){}},{key:"onRender",value:function(){var t=this.ppfx,e=this.model,n=this.el;if(!this.inputInst){var r=e.input;r.ppfx=t,r.render(),n.querySelector(".".concat(t,"fields")).appendChild(r.el),this.input=r.inputEl.get(0),this.inputInst=r}}},{key:"clearCached",value:function(){$.prototype.clearCached.apply(this,arguments),this.inputInst=null}}]),n}($),pt=n(1511);function gt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var vt=function(t){(0,p.Z)(n,t);var e=gt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"setValue",value:function(t){var e;null===(e=this.inputInst)||void 0===e||e.setValue(t,{fromTarget:1,def:this.model.getDefaultValue()})}},{key:"remove",value:function(){var t=this;dt.prototype.remove.apply(this,arguments);var e=this.inputInst;e&&e.remove&&e.remove(),['inputInst','$color'].forEach((function(e){return t[e]=null}))}},{key:"__handleChange",value:function(t,e){this.model.upValue(t,{partial:e})}},{key:"onRender",value:function(){if(!this.inputInst){this.__handleChange=this.__handleChange.bind(this);var t=this.ppfx,e=this.model,n=this.em,r=this.el,i=new pt.Z({target:n,model:e,ppfx:t,onChange:this.__handleChange}).render();r.querySelector(".".concat(t,"fields")).appendChild(i.el),this.input=i.inputEl.get(0),this.inputInst=i}}}]),n}(dt);function mt(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 yt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[];return this.set('options',t),this}},{key:"addOption",value:function(t){if(t){var e=this.getOptions();this.setOptions([].concat((0,r.Z)(e),[t]))}return this}},{key:"getOptionId",value:function(t){return(0,s.isDef)(t.id)?t.id:t.value}},{key:"getOptionLabel",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.locale,i=void 0===r||r,s=((0,o.isString)(t)?this.getOption(t):t)||{},a=this.getOptionId(s),l=s.label||s.name||a,c=this.getId();return i&&(null===(e=this.em)||void 0===e?void 0:e.t("styleManager.options.".concat(c,".").concat(a)))||l}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n\n \n
\n
\n
\n \n ")}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n").concat(i,""))}));var i=this.el.querySelector("#".concat(e,"input-holder"));i.innerHTML=""),this.input=i.firstChild}}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.getInputEl(),r=e.getOptions()[0],i=r?e.getOptionId(r):'';n&&(n.value=t||i)}}]),n}($);function Ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function kt(t){for(var e=1;e")}},{key:"onRender",value:function(){var t=this.pfx,e=this.ppfx,n=this.model,r="".concat(e,"radio-item-label"),i=n.getName(),o=n.getOptions(),s="".concat(t,"radio ").concat(t,"radio-").concat(i),a=n.cid;if(!this.input){var l=[];o.forEach((function(o){var c=o.className?"".concat(o.className," ").concat(t,"icon ").concat(r):'',u=n.getOptionId(o),h="".concat(i,"-").concat(u,"-").concat(a),f=c?'':n.getOptionLabel(u),d=o.title?"title=\"".concat(o.title,"\""):'',p=n.getValue()===u?'checked':'';l.push("\n
\n \n \n
\n "))}));var c=this.el.querySelector(".".concat(e,"field"));c.innerHTML="
").concat(l.join(''),"
"),this.input=c.firstChild}}},{key:"__setValueInput",value:function(t){var e,n=this.model,r=t||n.getDefaultValue(),i=null===(e=this.getInputEl())||void 0===e?void 0:e.querySelector("[value=\"".concat(r,"\"]"));i&&(i.checked=!0)}}]),n}(Ot),Et=n(7610);function jt(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 Dt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.get('unit'),r=this.get('units');this.input=(0,s.hasWin)()&&new Et.Z({model:this}),r.length&&!n&&this.set('unit',r[0],{silent:1}),O.callInit(this,t,e)}},{key:"__getClearProps",value:function(){return Dt(Dt({},O.prototype.__getClearProps()),{},{unit:''})}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=O.prototype.parseValue.apply(this,arguments),r=this.input.validateInputValue(n.value,Dt({deepCheck:1},e)),i=r.value,o=r.unit;return n.value=i,n.unit=o,n}},{key:"getFullValue",value:function(){var t=this.get('value'),e=this.get('unit');return t=(0,o.isUndefined)(t)?'':t,e=!(0,o.isUndefined)(e)&&t?e:'',t="".concat(t).concat(e),O.prototype.getFullValue.apply(this,[t])}}]),n}(O);function Lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;e\n \n \n ")}},{key:"getSliderEl",value:function(){return this.slider||(this.slider=this.el.querySelector('input[type=range]')),this.slider}},{key:"inputValueChanged",value:function(){this.model.upValue(this.getSliderEl().value)}},{key:"inputValueChangedSoft",value:function(){this.model.upValue(this.getSliderEl().value,{partial:!0})}},{key:"setValue",value:function(t){var e=this.model,n=e.parseValue(t);this.getSliderEl().value=''===t?e.getDefaultValue():parseFloat(n.value),dt.prototype.setValue.apply(this,arguments)}},{key:"onRender",value:function(){dt.prototype.onRender.apply(this,arguments),this.model.get('showInput')||(this.inputInst.el.style.display='none')}},{key:"clearCached",value:function(){dt.prototype.clearCached.apply(this,arguments),this.slider=null}}]),n}(dt);const Bt=c().Collection.extend(m.Z).extend({extendViewApi:1,init:function(){var t=this.opts,e=this.em,n=t.module||(null==e?void 0:e.get('StyleManager'));n&&(n.__listenAdd(this,n.events.propertyAdd),n.__listenRemove(this,n.events.propertyRemove))},types:[{id:'stack',model:V,view:at,isType:function(t){if(t&&'stack'==t.type)return t}},{id:'composite',model:_,view:Q,isType:function(t){if(t&&'composite'==t.type)return t}},{id:'file',model:O,view:ht,isType:function(t){if(t&&'file'==t.type)return t}},{id:'color',model:O,view:vt,isType:function(t){if(t&&'color'==t.type)return t}},{id:'select',model:wt,view:Ot,isType:function(t){if(t&&'select'==t.type)return t}},{id:'radio',model:Pt,view:Tt,isType:function(t){if(t&&'radio'==t.type)return t}},{id:'slider',model:Zt,view:Ht,isType:function(t){if(t&&'slider'==t.type)return t}},{id:'integer',model:At,view:dt,isType:function(t){if(t&&'integer'==t.type)return t}},{id:'number',model:At,view:dt,isType:function(t){if(t&&'number'==t.type)return t}},{id:'base',model:O,view:$,isType:function(t){return t.type='base',t}}]});var zt=["extend"];function Ut(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 Wt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r;var i=t||{},s=this.buildProperties(i.buildProps),a=this.get('name')||'',l=[];!this.get('id')&&this.set('id',a.replace(/ /g,'_').toLowerCase()),l=(l=s?this.extendProperties(s):this.get('properties').map((function(t){return(0,o.isString)(t)?e.buildProperties(t)[0]:t})).filter(Boolean)).map((function(t){return e.checkExtend(t)}));var c=new Bt(l,{em:r});c.sector=this,this.set('properties',c)}},{key:"getId",value:function(){return this.get('id')}},{key:"getName",value:function(){var t,e=this.getId();return(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.sectors.".concat(e)))||this.get('name')}},{key:"setName",value:function(t){return this.set('name',t)}},{key:"isOpen",value:function(){return!!this.get('open')}},{key:"setOpen",value:function(t){return this.set('open',t)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"getProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('properties'),n=e.models?(0,r.Z)(e.models):e;return n.filter((function(e){var n=!0;(t.withValue&&(n=e.hasValue({noParent:!0})),t.withParentValue)&&(n=!e.hasValue({noParent:!0})&&e.hasValue());return n}))}},{key:"getProperty",value:function(t){return this.getProperties().filter((function(e){return e.get('id')===t}))[0]||null}},{key:"addProperty",value:function(t,e){return this.get('properties').add(this.checkExtend(t),e)}},{key:"extendProperties",value:function(t,e,n){for(var r=t.length,i=e||this.get('properties'),s=this.get('extendBuilded'),a=[],l=0,c=i.length;l1&&void 0!==arguments[1]?arguments[1]:{},n=e.module,r=e.em;this.em=r,this.module=n,this.listenTo(this,'reset',this.onReset)}},{key:"model",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.collection.em;return new qt(t,Kt(Kt({},e),{},{em:n}))}},{key:"onReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels||[];n.forEach((function(t){return t.get('properties').reset()}))}}]),n}(l.Collection),Xt=n(885),Qt=["extend"];function te(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 ee(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.from||'',i=this.props[r||t]||{},s=ee(ee({},i),{},{property:t},e);return s.properties&&(0,o.isFunction)(s.properties)&&(s.properties=s.properties()),this.props[t]=s,s}},{key:"get",value:function(t){return this.props[t]||null}},{key:"build",value:function(t){var e=this,n=[];return((0,o.isString)(t)?[t]:t).forEach((function(t){n.push(e.get(t)||{property:t})})),n}}]),t}(),oe=n(168),se=n(1629);function ae(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var le=function(t){(0,p.Z)(n,t);var e=ae(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"template",value:function(t){var e,n=t.pfx,r=t.label,i=null===(e=this.em)||void 0===e?void 0:e.getConfig('icons'),o=(null==i?void 0:i.caret)||'',s="".concat(n,"sector-");return(0,se.Z)(ne||(ne=(0,oe.Z)(["\n
\n
$","
\n
","
\n
\n "])),s,s,o,s,r)}},{key:"events",value:function(){return{'click [data-sector-title]':'toggle'}}},{key:"initialize",value:function(t){var e=t.config||{},n=this.model,r=e.em;this.config=e,this.em=r,this.pfx=e.stylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change:open',this.updateOpen),this.listenTo(n,'change:visible',this.updateVisibility)}},{key:"updateOpen",value:function(){var t=this.$el,e=this.model,n=this.pfx,r=e.isOpen();t[r?'addClass':'removeClass']("".concat(n,"open")),this.getPropertiesEl().style.display=r?'':'none'}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"getPropertiesEl",value:function(){var t=this.$el,e=this.pfx;return t.find(".".concat(e,"properties")).get(0)}},{key:"toggle",value:function(){var t=this.model;t.setOpen(!t.get('open'))}},{key:"renderProperties",value:function(){var t=this.model,e=this.config,n=t.get('properties');if(n){var r=new K({collection:n,config:e});this.$el.append(r.render().el)}}},{key:"render",value:function(){var t=this.pfx,e=this.model,n=this.$el,r=e.getId(),i=e.getName();return n.html(this.template({pfx:t,label:i})),this.renderProperties(),n.attr('class',"".concat(t,"sector ").concat(t,"sector__").concat(r," no-select")),this.updateOpen(),this}}]),n}(l.View);function ce(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var ue=function(t){(0,p.Z)(n,t);var e=ce(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.module,n=t.config,r=void 0===n?{}:n,i=this.collection;this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.config=r,this.module=e,this.listenTo(i,'add',this.addTo),this.listenTo(i,'reset',this.render)}},{key:"remove",value:function(){var t=this;l.View.prototype.remove.apply(this,arguments),['config','module','em'].forEach((function(e){return t[e]={}}))}},{key:"addTo",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addToCollection(t,null,n)}},{key:"addToCollection",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.config,i=this.el,o=e||i,s=new le({model:t,config:r}).render().el;return(0,q.$Q)(o,s,n.at),s}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx,r=this.ppfx;e.empty();var i=document.createDocumentFragment();return this.collection.each((function(e){return t.addToCollection(e,i)})),e.append(i),e.addClass("".concat(n,"sectors ").concat(r,"one-bg ").concat(r,"two-color")),this}}]),n}(l.View);function he(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function fe(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__clearStateTarget'),this.__initConfig(u,r);var i=this.config,s=i.em,a=i.pStylePrefix;a&&(i.stylePrefix=a+i.stylePrefix),this.builtIn=new ie,t=new Bt([],{em:s,module:this}),e=new Jt([],fe(fe({},i),{},{module:this}));var c=new l.Model({targets:[]});this.model=c,this.__listenAdd(e,ve),this.__listenRemove(e,me),this.__listenUpdate(e,ye);var h='component:toggled component:update:classes change:state change:device frame:resized selector:type',f=(0,o.debounce)((function(){return n.__upSel()}));c.listenTo(s,h,f),c.listenTo(s,'component:toggled',this.__clearStateTarget);var d=(0,o.debounce)((function(){n.__upProps(),n.__trgCustom()}));c.listenTo(s,'styleable:change undo redo',d);var p=(0,o.debounce)((function(){return n.__trgCustom()}));return c.listenTo(s,"".concat(Ce," ").concat(ke),p),c.on('change:lastTarget',(function(){return s.trigger(ke,n.getSelected())})),this},__upSel:function(){this.select(this.em.getSelectedAll())},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},__trgEv:function(t){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{},i=this.getSector(t);return i||(n.id=t,i=e.add(n,r)),i},getSector:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.where({id:t})[0];return!r&&n.warn&&this._logNoSector(t),r||null},getSectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e&&e.models?t.array?(0,r.Z)(e.models):e:[];return t.visible?n.filter((function(t){return t.isVisible()})):n},removeSector:function(t){return this.getSectors().remove(this.getSector(t,{warn:1}))},addProperty:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getSector(t,{warn:1}),i=null;return r&&(i=r.addProperty(e,n)),i},getProperty:function(t,e){var n,r=this.getSector(t,{warn:1});return r&&(n=r.get('properties').filter((function(t){return t.get('property')===e||t.get('id')===e}))[0]),n||null},getProperties:function(t){var e=null,n=this.getSector(t,{warn:1});return n&&(e=n.get('properties')),e},removeProperty:function(t,e){var n=this.getProperties(t);return n?n.remove(this.getProperty(t,e)):null},select:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isArray)(t)?t:[t],a=n.stylable,l=r.get('CssComposer'),c=[];i.filter(Boolean).forEach((function(t){var e=t;if((0,o.isString)(t)){var n=l.getRule(t)||l.setRule(t);!(0,o.isUndefined)(a)&&n.set({stylable:a}),e=n}c.push(e)}));var u=n.component||c.filter((function(t){return(0,s.isComponent)(t)})).reverse()[0];c=c.map((function(t){return e.getModelToStyle(t)}));var h=r.getState(),f=c.slice().reverse()[0],d=this.getParentRules(f,{state:h,component:u}),p=this.__getStateTarget();return r.skip((function(){var t;if(h&&null!=f&&null!==(t=f.getState)&&void 0!==t&&t.call(f)){var e=f.getStyle();p?p.setStyle(e):p=l.getAll().add({selectors:'gjs-selected',style:e,shallow:!0,important:!0})}else p&&(l.remove(p),p=null)})),this.model.set({targets:c,lastTarget:f,lastTargetParents:d,stateTarget:p,component:u}),this.__upProps(n),c},getSelected:function(){return this.model.get('lastTarget')||null},getSelectedAll:function(){return this.model.get('targets')},getSelectedParents:function(){return this.model.get('lastTargetParents')||[]},__getStateTarget:function(){return this.model.get('stateTarget')||null},addStyleTargets:function(t,e){this.getSelectedAll().map((function(n){return n.addStyle(t,e)}));var n=this.getSelected(),r=this.__getStateTarget();n&&(null==r||r.setStyle(n.getStyle(),e))},getBuiltIn:function(t){return this.builtIn.get(t)},getBuiltInAll:function(){return this.builtIn.props},addBuiltIn:function(t,e){return this.builtIn.add(t,e)},getModelToStyle:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=n.skipAdd;if(r&&null!==(e=t)&&void 0!==e&&e.toHTML){var o,s=r.getConfig(),a=r.get('UndoManager'),l=r.get('CssComposer'),c=r.get('SelectorManager'),u=c?c.getConfig():{},h=s.devicePreviewMode?'':r.get('state'),f=t.get('classes'),d=f.getStyleable(),p=d.length,g=!u.componentFirst||n.useClasses,v={noCount:1},m={state:h,addOpts:v};if(a.stop(),p&&g){var y=r.getCurrentMedia();(o=l.get(d,h,y))||i||(o=l.add(d,h,y,{},v))}else if(s.avoidInlineStyle){var b=t.getId();!(o=l.getIdRule(b,m))&&!i&&(o=l.setIdRule(b,{},m)),t.is('wrapper')&&o.set('wrapper',1,v)}o&&(t=o),a.start()}return t},getParentRules:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state,r=e.component,i=this.em,s=[];if(i&&t){var a=r,l=i.get('CssComposer'),c=i.get('CodeManager').getGenerator('css'),u=t.toHTML?t:t.getComponent(),h={combination:!0,array:!0},f=[],d=[],p=[];u?(f=l.getRules("#".concat(u.getId())),p=(d=a?l.getRules(a.getSelectors().getFullName(h)):[]).concat(f)):(f=a?l.getRules("#".concat(a.getId())):[],d=l.getRules(t.getSelectors().getFullName(h)),p=f.concat(d));var g=p.filter((function(t){return(0,o.isUndefined)(n)?1:t.get('state')===n})).sort(c.sortRules).reverse();s=g.slice(g.indexOf(t)+1)}return s},addType:function(e,n){t.addType(e,n)},getType:function(e){return t.getType(e)},getTypes:function(){return t.getTypes()},createType:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,r=void 0===n?{}:n,i=e.view,o=void 0===i?{}:i,s=this.config,a=this.getType(t);if(a)return new a.view(fe({model:new a.model(r),config:s},o))},render:function(){var t=this.config,r=this.em,i=n&&n.el;return(n=new ue({el:i,em:r,config:t,collection:e,module:this})).render().el},_logNoSector:function(t){var e=this.em;e&&e.logWarning("'".concat(t,"' sector not found"))},__upProps:function(t){var n=this,r=this.getSelected();if(r){var i=this.model.get('component'),o=this.getSelectedParents(),s=r.getStyle(),a=o.map((function(t){return{target:t,style:t.getStyle()}}));e.map((function(e){e.getProperties().map((function(e){n.__upProp(e,s,a,t)}))})),e.forEach((function(t){var n=t.getProperties();n.forEach((function(t){var n=t.__checkVisibility({target:r,component:i,sectors:e});t.set('visible',n)}));var o=n.some((function(t){return t.isVisible()}));t.set('visible',o)}))}},__upProp:function(t,e,n,r){var i=this,o=t.getName(),s=e[o],a=Pe(s),l='stack'===t.getType(),c='composite'===t.getType(),u=fe(fe({},r),{},{__up:!0}),h=!c&&!l,f=l?t.__getLayersFromStyle(e):[],d=c?t.__getPropsFromStyle(e):{},p=a?s:null,g=null;if(l&&null===f||c&&null===d){var v=l?'__getLayersFromStyle':'__getPropsFromStyle',m=n.filter((function(e){return null!==t[v](e.style)}))[0];if(m){p=m.style[o],g=m.target;var y=t[v](m.style);l?f=y:d=y}}else if(!a){p=null;var b=n.filter((function(t){return Pe(t.style[o])}))[0];b&&(p=b.style[o],g=b.target)}if(t.__setParentTarget(g),h&&t.__getFullValue()!==p&&t.upValue(p,u),l&&t.__setLayers(f||[]),c){var w=t.getProperties();if(t.isDetached()){var x=t.__getPropsFromStyle(e,{byName:!0})||{},O=n.map((function(e){return fe(fe({},e),{},{style:t.__getPropsFromStyle(e.style,{byName:!0})||{}})}));w.map((function(t){return i.__upProp(t,x,O,r)}))}else t.__setProperties(d||{},u),t.getProperties().map((function(t){return t.__setParentTarget(g)}))}},destroy:function(){[t,e].forEach((function(t){t.reset(),t.stopListening()})),n&&n.remove(),[t,e,n].forEach((function(t){return{}})),this.em={},this.config={},this.builtIn={},this.model={}}})}},6388:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j,evAll:()=>_,evCustom:()=>E,evPfx:()=>T});var r=n(4942),i=n(9050);const o={stylePrefix:'trt-',appendTo:'',optionsTarget:[{value:!1},{value:'_blank'}]};var s=n(6602),a=n(885),l=n(2316),c=n.n(l),u=n(6183);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 f(t){for(var e=1;e").concat(e,"")},templateInput:function(){var t=this.clsField;return"
")},initialize:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.config,r=void 0===n?{}:n,i=this.model,o=this.eventCapture,s=i.target,l=i.attributes.type;this.config=r,this.em=r.em,this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.target=s;var c=this.ppfx;this.clsField="".concat(c,"field ").concat(c,"field-").concat(l),[['change:value',this.onValueChange],['remove',this.removeView]].forEach((function(e){var n=(0,a.Z)(e,2),r=n[0],o=n[1];i.off(r,o),t.listenTo(i,r,o)})),i.view=this,this.listenTo(i,'change:label',this.render),this.listenTo(i,'change:placeholder',this.rerender),this.events={},o.forEach((function(e){return t.events[e]='onChange'})),this.delegateEvents(),this.init()},getClbOpts:function(){return{component:this.target,trait:this.model,elInput:this.getInputElem()}},removeView:function(){this.remove(),this.removed()},init:function(){},removed:function(){},onRender:function(){},onUpdate:function(){},onEvent:function(){},onChange:function(t){var e=this.getInputElem();e&&!(0,i.isUndefined)(e.value)&&this.model.set('value',e.value),this.onEvent(f(f({},this.getClbOpts()),{},{event:t}))},getValueForTarget:function(){return this.model.get('value')},setInputValue:function(t){var e=this.getInputElem();e&&(e.value=t)},onValueChange:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n.fromTarget)this.setInputValue(t.get('value')),this.postUpdate();else{var r=this.getValueForTarget();t.setTargetValue(r,n)}},renderLabel:function(){var t=this.$el,e=this.target,n=this.getLabel(),r=this.templateLabel(e);this.createLabel&&(r=this.createLabel({label:n,component:e,trait:this})||''),t.find('[data-label]').append(r)},getLabel:function(){var t=this.em,e=this.model.attributes,n=e.label,r=e.name;return t.t("traitManager.traits.labels.".concat(r))||(0,u.capitalize)(n||r).replace(/-/g,' ')},getComponent:function(){return this.target},getInputEl:function(){if(!this.$input){var t=this.em,e=this.model,n=e,r=e.attributes.name,o=n.get('placeholder')||n.get('default')||'',s=n.get('type')||'text',a=n.get('min'),l=n.get('max'),c=this.getModelValue(),u=d("")),h=t.t("traitManager.traits.attributes.".concat(r))||{};u.attr(h),(0,i.isUndefined)(c)||(n.set({value:c},{silent:!0}),u.prop('value',c)),a&&u.prop('min',a),l&&u.prop('max',l),this.$input=u}return this.$input.get(0)},getInputElem:function(){var t=this.input,e=this.$input;return t||e&&e.get&&e.get(0)||this.getElInput()},getModelValue:function(){var t,e=this.model,n=this.target,r=e.get('name');if(e.get('changeProp'))t=n.get(r);else{var o=n.get('attributes');t=e.get('value')||o[r]}return(0,i.isUndefined)(t)?'':t},getElInput:function(){return this.elInput},renderField:function(){var t=this.$el,e=this.appendInput,n=this.model,r=t.find('[data-input]'),o=r[r.length-1],s=n.el;s||(s=this.createInput?this.createInput(this.getClbOpts()):this.getInputEl()),(0,i.isString)(s)?(o.innerHTML=s,this.elInput=o.firstChild):(e?o.appendChild(s):o.insertBefore(s,o.firstChild),this.elInput=s),n.el=this.elInput},hasLabel:function(){var t=this.model.attributes.label;return!this.noLabel&&!1!==t},rerender:function(){this.model.el=null,this.render()},postUpdate:function(){this.onUpdate(this.getClbOpts())},render:function(){var t=this.$el,e=this.pfx,n=this.ppfx,r=this.model.attributes,o=r.type,s=r.id,a=this.hasLabel&&this.hasLabel(),l="".concat(e,"trait");this.$input=null;var c="
\n ").concat(a?"
"):'',"\n
\n ").concat(this.templateInput?(0,i.isFunction)(this.templateInput)?this.templateInput(this.getClbOpts()):this.templateInput:'',"\n
\n
");return t.empty().append(c),a&&this.renderLabel(),this.renderField(),this.el.className="".concat(l,"__wrp ").concat(l,"__wrp-").concat(s),this.postUpdate(),this.onRender(this.getClbOpts()),this}}),g=s.Z.extend({ns:'Traits',itemView:p,reuseView:1,initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{},n=e.stylePrefix||'',r=t.editor;this.config=e,this.em=r,this.pfx=n,this.ppfx=e.pStylePrefix||'',this.className="".concat(n,"traits"),this.listenTo(r,'component:toggled',this.updatedCollection)},updatedCollection:function(){var t=this.ppfx,e=this.className,n=this.em.getSelected();this.el.className="".concat(e," ").concat(t,"one-bg ").concat(t,"two-color"),this.collection=n?n.get('traits'):[],this.render()}});var v=c().$;const m=p.extend({init:function(){this.listenTo(this.model,'change:options',this.rerender)},templateInput:function(){var t=this.ppfx,e=this.clsField;return"
\n
\n
\n
\n
\n
")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.em,n=t.get('name'),r=t.get('options')||[],o=[],s='',this.$input=v(s);var a=t.getTargetValue(),l=o.indexOf(a)>=0?a:t.get('default');!(0,i.isUndefined)(l)&&this.$input.val(l)}return this.$input.get(0)}}),y=p.extend({appendInput:0,templateInput:function(){var t=this.ppfx,e=this.clsField;return"")},onChange:function(){var t=this.getInputElem().checked;this.model.set('value',this.getCheckedValue(t))},getCheckedValue:function(t){var e=t,n=this.model.attributes,r=n.valueTrue,o=n.valueFalse;return e&&!(0,i.isUndefined)(r)&&(e=r),e||(0,i.isUndefined)(o)||(e=o),e},getInputEl:function(){for(var t=!this.$input,e=arguments.length,n=new Array(e),r=0;r").concat(s,"")}});var k=n(9304);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 P(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(o,n);var r=this.config,s=new l.Model;this.model=s;var a=this.em,c=r.pStylePrefix;this.types=P({},t),c&&(r.stylePrefix="".concat(c).concat(r.stylePrefix));var u=(0,i.debounce)((function(){return e.__upSel()}));s.listenTo(a,'component:toggled',u);var h=(0,i.debounce)((function(){return e.__onUp()}));return s.listenTo(a,'trait:update',h),this},__upSel:function(){this.select(this.em.getSelected())},__onUp:function(){this.select(this.getSelected())},select:function(t){var e=t?t.getTraits():[];this.model.set({component:t,traits:e}),this.__trgCustom()},getSelected:function(){return this.model.get('component')||null},getCurrent:function(){return this.model.get('traits')||[]},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},postRender:function(){this.__appendTo()},getTraitsViewer:function(){return this.view},addType:function(t,e){var n=this.getType('text');this.types[t]=n.extend(e)},getType:function(t){return this.getTypes()[t]},getTypes:function(){return this.types},render:function(){var t=this.view,e=this.getConfig(),n=t&&t.el;return(t=new g({el:n,collection:[],editor:e.em,config:e})).itemsView=this.getTypes(),t.updatedCollection(),this.view=t,t.el},destroy:function(){this.__destroy()}})}},8202:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(2982),i=n(4942),o=n(3410),s=n.n(o),a=n(9050);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=c(c({},o),f),t=n.em,this.em=t,n._disable&&(n=c(c({},n),{},{maximumStackLength:0}));var d=!0;return(e=new(s())(c({track:!0,register:[]},n))).changeUndoType('change',{condition:function(t){var e=t.get('_undo');if(e){var n=t.get('_undoexc');if((0,a.isArray)(n)&&u(t).some((function(t){return n.indexOf(t)>=0})))return!1;if((0,a.isBoolean)(e))return!0;if((0,a.isArray)(e)&&u(t).some((function(t){return e.indexOf(t)>=0})))return!0}return!1},on:function(t,e,n){!i&&(i=t.previousAttributes());var r=n||e||{};if(r.noUndo&&setTimeout((function(){i=null})),!l(r)){var o=t.toJSON({fromUndo:d}),s={object:t,before:i,after:o};if(i=null,!(0,a.isEmpty)(o))return s}}}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&h.isRegistered(e))return{object:e,before:void 0,after:t,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&h.isRegistered(e))return{object:e,before:t,after:void 0,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('reset',{undo:function(t,e){t.reset(e,{fromUndo:d})},redo:function(t,e,n){t.reset(n,{fromUndo:d})},on:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l(e)&&h.isRegistered(t))return{object:t,before:e.previousModels,after:(0,r.Z)(t.models),options:c(c({},e),{},{fromUndo:d})}}}),e.on('undo redo',(function(){t.trigger('change:canvasOffset'),t.getSelectedAll().map((function(t){return t.trigger('rerender:layer')}))})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},postLoad:function(){n.trackSelection&&t&&this.add(t.get('selected'))},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.undo(n),this},undoAll:function(){return e.undoAll(),this},redo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.redo(n),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable('undo')},hasRedo:function(){return e.isAvailable('redo')},isRegistered:function(t){return!!this.getInstance().objectRegistry.isRegistered(t)},getStack:function(){return e.stack},getStackGroup:function(){var t=[],e=[];return this.getStack().forEach((function(n){var r=n.get('magicFusionIndex');e.indexOf(r)<0&&(e.push(r),t.push(n))})),t},skip:function(t){this.stop(),t(),this.start()},getGroupedStack:function(){var t={},e=this.getStack();return e.forEach((function(e,n){var r=e.get('magicFusionIndex'),i=function(t,e){var n=t.attributes,r=n.type,i=n.after,o=n.before,s=n.object,a=n.options;return{index:e,type:r,after:i,before:o,object:s,options:void 0===a?{}:a}}(e,n);t[r]?t[r].push(i):t[r]=[i]})),Object.keys(t).map((function(e){var n=t[e];return{index:n[n.length-1].index,actions:n,labels:(0,a.unique)(n.reduce((function(t,e){var n,r=null===(n=e.options)||void 0===n?void 0:n.action;return r&&t.push(r),t}),[]))}}))},goToGroup:function(t){var e=this;if(t){var n=this.getPointer(),r=t.index-n;(0,a.times)(Math.abs(r),(function(){e[r<0?'undo':'redo'](!1)}))}},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,i].forEach((function(t){return{}})),this.em={}}}}},5610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var r=n(4942),i=n(5671),o=n(3144),s=n(9050),a=n(6183);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.Z)(this,t),this.opts={container:null,onStart:null,onDrag:null,onEnd:null,setPosition:null,getPosition:null,guidesStatic:null,guidesTarget:null,snapOffset:5,doc:0,scale:1},(0,s.bindAll)(this,'drag','stop','keyHandle','handleScroll'),this.setOptions(e),this.delta={x:0,y:0},this}return(0,o.Z)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=c(c({},this.opts),t)}},{key:"toggleDrag",value:function(t){var e=this.getDocumentEl(),n=this.getContainerEl(),r=this.getWindowEl(),i=t?'on':'off',o={on:a.on,off:a.off};o[i](n,'mousemove dragover',this.drag),o[i](e,'mouseup dragend touchend',this.stop),o[i](e,'keydown',this.keyHandle),o[i](r,'scroll',this.handleScroll)}},{key:"handleScroll",value:function(){var t=this.lastScroll,e=this.delta,n=this.getScrollInfo(),r={x:n.x-t.x,y:n.y-t.y};this.move(e.x+r.x,e.y+r.y),this.lastScrollDiff=r}},{key:"start",value:function(t){var e=this.opts,n=e.onStart;this.toggleDrag(1),this.startPointer=this.getPointerPos(t),this.guidesStatic=(0,s.result)(e,'guidesStatic')||[],this.guidesTarget=(0,s.result)(e,'guidesTarget')||[],(0,s.isFunction)(n)&&n(t,this),this.startPosition=this.getStartPosition(),this.lastScrollDiff={x:0,y:0},this.globScrollDiff={x:0,y:0},this.drag(t)}},{key:"drag",value:function(t){var e=this,n=this.opts,r=this.lastScrollDiff,i=this.globScrollDiff,o=n.onDrag,a=this.startPointer,l=this.getPointerPos(t),u={x:i.x+r.x,y:i.y+r.y};this.globScrollDiff=u;var h={x:l.x-a.x+u.x,y:l.y-a.y+u.y};this.lastScrollDiff={x:0,y:0};var f=this.lockedAxis;'x'===(f=t.shiftKey?!f&&this.detectAxisLock(h.x,h.y):null)?h.x=a.x:'y'===f&&(h.y=a.y);var d=function(r){['x','y'].forEach((function(t){return r[t]=r[t]*(0,s.result)(n,'scale')})),e.delta=r,e.move(r.x,r.y),(0,s.isFunction)(o)&&o(t,e)},p=c({},h);if(this.currentPointer=l,this.lockedAxis=f,this.lastScroll=this.getScrollInfo(),d(h),this.guidesTarget.length){var g=this.snapGuides(p),v=g.newDelta,m=g.trgX,y=g.trgY;(m||y)&&d(v)}0===t.which&&this.stop(t)}},{key:"snapGuides",value:function(t){var e=this,n=t,r=this.trgX,i=this.trgY;return this.guidesTarget.forEach((function(n){n.x&&e.trgX||n.y&&e.trgY||(n.active=0,e.guidesStatic.forEach((function(o){if(!(n.y&&o.x||n.x&&o.y)){var a=n.y&&o.y,l=a?'y':'x',c=n[l],u=o[l],h=t[l],f=a?i:r;if(e.isPointIn(c,u)&&(0,s.isUndefined)(f)){var d=h-(c-u);e.setGuideLock(n,d)}}})))})),r=this.trgX,i=this.trgY,['x','y'].forEach((function(r){var i=r.toUpperCase(),o=e["trg".concat(i)];o&&!e.isPointIn(t[r],o.lock)&&(e.setGuideLock(o,null),o=null),o&&!(0,s.isUndefined)(o.lock)&&(n[r]=o.lock)})),{newDelta:n,trgX:this.trgX,trgY:this.trgY}}},{key:"isPointIn",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.offset,i=r||this.opts.snapOffset;return t>=e&&t<=e+i||t<=e&&t>=e-i}},{key:"setGuideLock",value:function(t,e){var n=(0,s.isUndefined)(t.x)?'Y':'X',r="trg".concat(n);return null!==e?(t.active=1,t.lock=e,this[r]=t):(delete t.active,delete t.lock,delete this[r]),t}},{key:"stop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.delta,r=e.cancel,i=r?0:n.x,o=r?0:n.y;this.toggleDrag(),this.lockedAxis=null,this.move(i,o,1);var a=this.opts.onEnd;(0,s.isFunction)(a)&&a(t,this,{cancelled:r})}},{key:"keyHandle",value:function(t){(0,a.isEscKey)(t)&&this.stop(t,{cancel:1})}},{key:"move",value:function(t,e,n){var r=this.el,i=this.opts,o=this.startPosition;if(o){var a=i.setPosition,l=o.x+t,c=o.y+e;this.position={x:l,y:c,end:n},(0,s.isFunction)(a)&&a(this.position),r&&(r.style.left="".concat(l,"px"),r.style.top="".concat(c,"px"))}}},{key:"getContainerEl",value:function(){var t=this.opts.container;return t?[t]:this.getDocumentEl()}},{key:"getWindowEl",value:function(){return this.getContainerEl().map((function(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}))}},{key:"getDocumentEl",value:function(t){var e=this.opts.doc;if(t=t||this.el,!this.docs){var n=[document];t&&n.push(t.ownerDocument),e&&n.push(e),this.docs=n}return this.docs}},{key:"getPointerPos",value:function(t){var e=this.opts.getPointerPosition,n=(0,a.getPointerEvent)(t);return e?e(t):{x:n.clientX,y:n.clientY}}},{key:"getStartPosition",value:function(){var t=this.el,e=this.opts.getPosition,n={x:0,y:0};return(0,s.isFunction)(e)?n=e():t&&(n={x:parseFloat(t.style.left),y:parseFloat(t.style.top)}),n}},{key:"getScrollInfo",value:function(){var t=this.opts.doc,e=t&&t.body;return{y:e?e.scrollTop:0,x:e?e.scrollLeft:0}}},{key:"detectAxisLock",value:function(t,e){var n=t,r=e,i=Math.abs(n),o=Math.abs(r);return r>=i||r<=-i?'x':n>o||n<-o?'y':void 0}}]),t}()},2579:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>pt});var r='undefined'!=typeof document?document:null,i='undefined'!=typeof window?window:null,o=Array.prototype,s=o.filter,a=o.indexOf,l=o.map,c=o.push,u=o.reverse,h=o.slice,f=o.splice,d=/^#[\w-]*$/,p=/^\.[\w-]*$/,g=/<.+>/,v=/^\w+$/;function m(t,e){return void 0===e&&(e=r),p.test(t)?e.getElementsByClassName(t.slice(1)):v.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function y(t,e){if(void 0===e&&(e=r),t){if(t.__cash)return t;var n=t;if(T(t)){if(e.__cash&&(e=e[0]),!(n=d.test(t)?e.getElementById(t.slice(1)):g.test(t)?ht(t):m(t,e)))return}else if(_(t))return this.ready(t);(n.nodeType||n===i)&&(n=[n]),this.length=n.length;for(var o=0,s=this.length;o=0})):n.value=i}))},w.clone=function(){return this.map((function(t,e){return e.cloneNode(!0)}))},w.detach=function(){return this.each((function(t,e){e.parentNode&&e.parentNode.removeChild(e)}))};var lt,ct=/^\s*<(\w+)[^>]*>/,ut=/^\s*<(\w+)\s*\/?>(?:<\/\1>)?\s*$/;function ht(t){if(function(){if(!lt){var t=r.createElement('table'),e=r.createElement('tr');lt={'*':r.createElement('div'),tr:r.createElement('tbody'),td:e,th:e,thead:t,tbody:t,tfoot:t}}}(),!T(t))return[];if(ut.test(t))return[r.createElement(RegExp.$1)];var e=ct.test(t)&&RegExp.$1,n=lt[e]||lt['*'];return n.innerHTML=t,b(n.childNodes).detach().get()}function ft(t,e,n){if(void 0!==e){var r=T(e);!r&&e.length?k(e,(function(e){return ft(t,e,n)})):k(t,r?function(t){t.insertAdjacentHTML(n?'afterbegin':'beforeend',e)}:function(t,r){return function(t,e,n){n?t.insertBefore(e,t.childNodes[0]):t.appendChild(e)}(t,r?e.cloneNode(!0):e,n)})}}b.parseHTML=ht,w.empty=function(){var t=this[0];if(t)for(;t.firstChild;)t.removeChild(t.firstChild);return this},w.append=function(){var t=this;return k(arguments,(function(e){ft(t,e)})),this},w.appendTo=function(t){return ft(b(t),this),this},w.html=function(t){if(void 0===t)return this[0]&&this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t,n){n.innerHTML=e}))},w.insertAfter=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n.nextSibling)}))})),this},w.after=function(){var t=this;return k(u.apply(arguments),(function(e){u.apply(b(e).slice()).insertAfter(t)})),this},w.insertBefore=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n)}))})),this},w.before=function(){var t=this;return k(arguments,(function(e){b(e).insertBefore(t)})),this},w.prepend=function(){var t=this;return k(arguments,(function(e){ft(t,e,!0)})),this},w.prependTo=function(t){return ft(b(t),u.apply(this.slice()),!0),this},w.remove=function(){return this.detach().off()},w.replaceWith=function(t){var e=this;return this.each((function(n,r){var i=r.parentNode;if(i){var o=n?b(t).clone():b(t);if(!o[0])return e.remove(),!1;i.replaceChild(o[0],r),b(o[0]).after(o.slice(1))}}))},w.replaceAll=function(t){return b(t).replaceWith(this),this},w.text=function(t){return void 0===t?this[0]?this[0].textContent:'':this.each((function(e,n){n.textContent=t}))};var dt=r&&r.documentElement;w.offset=function(){var t=this[0];if(t){var e=t.getBoundingClientRect();return{top:e.top+i.pageYOffset-dt.clientTop,left:e.left+i.pageXOffset-dt.clientLeft}}},w.offsetParent=function(){return b(this[0]&&this[0].offsetParent)},w.position=function(){var t=this[0];if(t)return{left:t.offsetLeft,top:t.offsetTop}},w.children=function(t){var e=[];return this.each((function(t,n){c.apply(e,n.children)})),e=b(L(e)),t?e.filter((function(e,n){return P(n,t)})):e},w.contents=function(){var t=[];return this.each((function(e,n){c.apply(t,'IFRAME'===n.tagName?[n.contentDocument]:n.childNodes)})),b(t.length&&L(t))},w.find=function(t){for(var e=[],n=0,r=this.length;n{"use strict";n.d(e,{G1:()=>o,Mx:()=>s,L_:()=>a,sE:()=>l,FW:()=>c,pn:()=>u,dL:()=>h,$Q:()=>f,R3:()=>d,ut:()=>p,rw:()=>g,t3:()=>v,SJ:()=>m});var r=n(9050),i='attributes',o='transitionend oTransitionEnd transitionend webkitTransitionEnd',s=function(t){return t&&9===t.nodeType},a=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l=function(t,e){return t.querySelectorAll(e)},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t&&t.setAttribute&&(0,r.each)(e,(function(e,n){return t.setAttribute(n,e)}))},u=function(t){return t&&!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},h=function(t,e){t.parentNode.replaceChild(e,t)},f=function(t,e,n){var i=t.childNodes,o=i.length,s=(0,r.isUndefined)(n)?o:n;(0,r.isString)(e)&&(t.insertAdjacentHTML('beforeEnd',e),e=t.lastChild,t.removeChild(e)),s>=o?t.appendChild(e):t.insertBefore(e,i[s])},d=function(t,e){return f(t,e)},p=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2?arguments[2]:void 0,i=document.createElement(t);return e&&(0,r.each)(e,(function(t,e){return i.setAttribute(e,t)})),n&&((0,r.isString)(n)?i.innerHTML=n:i.appendChild(n)),i},g=function(t){return document.createTextNode(t)},v=function(t,e){var n,r=t.type;try{n=new window[e](r,t)}catch(t){(n=document.createEvent(e)).initEvent(r,!0,!0)}return n._parentEvent=t,0===r.indexOf('key')&&(n.keyCodeVal=t.keyCode,['keyCode','which'].forEach((function(t){Object.defineProperty(n,t,{get:function(){return this.keyCodeVal}})}))),n},m=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Array.isArray(e)?e:[e];n.forEach((function(e){var n=e.tag||'div',o=e[i]||{},s=document.createElement(n);(0,r.each)(o,(function(t,e){s.setAttribute(e,t)})),t.appendChild(s)}))}},9661:(t,e,n)=>{"use strict";n.d(e,{Z:()=>m});var r=n(1002);const i=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){return e.reject(n)}))}))};const o=function(t){return new this((function(e,n){if(!t||void 0===t.length)return n(new TypeError((0,r.Z)(t)+' '+t+' is not iterable(cannot read property Symbol(Symbol.iterator))'));var i=Array.prototype.slice.call(t);if(0===i.length)return e([]);var o=i.length;function s(t,n){if(n&&('object'===(0,r.Z)(n)||'function'==typeof n)){var a=n.then;if('function'==typeof a)return void a.call(n,(function(e){s(t,e)}),(function(n){i[t]={status:'rejected',reason:n},0==--o&&e(i)}))}i[t]={status:'fulfilled',value:n},0==--o&&e(i)}for(var a=0;a{"use strict";n.d(e,{Z:()=>i});var r=n(6183);function i(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{"use strict";n.r(e),n.d(e,{default:()=>k});var r=n(4942),i=n(5610),o=n(2316),s=n.n(o),a=n(9050),l=n(6183);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},a=this.em,c=this.itemSel,u=this.containerSel,h=this.plh,f=this.getContainerEl(s.container),d=this.getDocuments(t);this.dropModel=null,this.target=null,this.prevTarget=null,this.moved=0,t&&!this.matches(t,"".concat(c,", ").concat(u))&&(t=this.closest(t,c)),this.sourceEl=t,h||(this.plh=this.createPlaceholder(),f.appendChild(this.plh)),t&&((o=this.getSourceModel(t))&&o.set&&o.set('status','freezed'),this.srcModel=o),(0,l.on)(f,'mousemove dragover',this.onMove),(0,l.on)(d,'mouseup dragend touchend',this.endMove),(0,l.on)(d,'keydown',this.rollback),this.onStart({sorter:this,target:o,parent:o&&(null===(e=(n=o).parent)||void 0===e?void 0:e.call(n)),index:o&&(null===(r=(i=o).index)||void 0===r?void 0:r.call(i))}),null==a||a.clearSelection(),this.toggleSortCursor(1),null==a||a.trigger('sorter:drag:start',t,o)},getTargetModel:function(t){var e=t||this.target;return h(e).data('model')},getSourceModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.target,i=n.avoidChildren,o=void 0===i?1:i,s=this.em,a=this.sourceEl,l=t||a,c=this.dropModel,f=this.dropContent,d=function(t){return t&&r&&t.opt&&t.opt.avoidChildren&&e.isTextableActive(t,r)};if(f&&s){if(d(c)&&(c=null),!c){var p=s.get('DomComponents').getComponents(),g={avoidChildren:o,avoidStore:1,avoidUpdateStyle:1},v=p.add(f,u(u({},g),{},{temporary:1}));if(c=(c=p.remove(v,g))instanceof Array?c[0]:c,this.dropModel=c,d(c))return this.getSourceModel(l,{target:r,avoidChildren:0})}return c}return l&&h(l).data('model')},selectTargetModel:function(t,e){if(!(t instanceof s().Collection||e&&e===t)){var n=this.targetModel;n&&n!==this.srcModel&&n.set('status',''),t&&t.set&&(t.set('status','selected-parent'),this.targetModel=t)}},onMove:function(t){var e=t,n=this.em,r=this.onMoveClb,i=this.plh,o=this.customTarget;this.moved=1;var s=i.style.display;s&&'none'!==s||(i.style.display='block');var l=this.offset(this.el);this.elT=this.wmargin?Math.abs(l.top):l.top,this.elL=this.wmargin?Math.abs(l.left):l.left;var c=t.pageY-this.elT+this.el.scrollTop,u=t.pageX-this.elL+this.el.scrollLeft;if(this.canvasRelative&&n){var f=n.get('Canvas').getMouseRelativeCanvas(t,{noScroll:1});u=f.x,c=f.y}this.rX=u,this.rY=c,this.eventMove=t;var d=this.getSourceModel(),p=o?o({sorter:this,event:t}):t.target,g=this.dimsFromTarget(p,u,c),v=this.target,m=v&&this.getTargetModel(v);if(this.selectTargetModel(m,d),m||(i.style.display='none'),v){this.lastDims=g;var y=this.findPosition(g,u,c);this.isTextableActive(d,m)?(this.activeTextModel=m,i.style.display='none',this.lastPos=y,this.updateTextViewCursorPosition(e)):(this.disableTextable(),this.activeTextModel=null,this.lastPos&&this.lastPos.index==y.index&&this.lastPos.method==y.method||(this.movePlaceholder(this.plh,g,y,this.prevTargetDim),this.$plh||(this.$plh=h(this.plh)),this.canvasRelative||(this.offTop&&this.$plh.css('top','+='+this.offTop+'px'),this.offLeft&&this.$plh.css('left','+='+this.offLeft+'px')),this.lastPos=y)),(0,a.isFunction)(r)&&r({event:t,target:d,parent:m,index:y.index+('after'==y.method?1:0)}),n&&n.trigger('sorter:drag',{target:v,targetModel:m,sourceModel:d,dims:g,pos:y,x:u,y:c})}},isTextableActive:function(t,e){return t&&t.get&&t.get('textable')&&e&&e.is('text')},disableTextable:function(){var t=this.activeTextModel;t&&t.getView().disableEditing(),this.setContentEditable(t,!1)},isInFlow:function(t,e){if(!t)return!1;e=e||document.body;var n=t;return n.offsetHeight,!!this.styleInFlow(n,e)},styleInFlow:function(t,e){if(!(0,l.isTextNode)(t)){var n=t.style||{},r=h(t),i=e&&h(e);if(!n.overflow||'visible'===n.overflow){var o=r.css('float');if(!(o&&'none'!==o||i&&'flex'==i.css('display')&&'column'!==i.css('flex-direction'))){switch(n.position){case'static':case'relative':case'':break;default:return}switch(t.tagName){case'TR':case'TBODY':case'THEAD':case'TFOOT':return!0}switch(r.css('display')){case'block':case'list-item':case'table':case'flex':return!0}}}}},validTarget:function(t,e){var n=this.getTargetModel(t),r=this.getSourceModel(e,{target:n}),i={valid:!0,src:e=r&&r.view&&r.view.el,srcModel:r,trg:t=n&&n.view&&n.view.el,trgModel:n};if(!e||!t)return i.valid=!1,i;var o=r.get('draggable');if((0,a.isFunction)(o)){var l=o(r,n);i.dragInfo=l,i.draggable=l,o=l}else o=o instanceof Array?o.join(', '):o,i.dragInfo=o,o=(0,a.isString)(o)?this.matches(t,o):o,i.draggable=o;var c=n.get('droppable');if((0,a.isFunction)(c)){var u=c(r,n);i.droppable=u,i.dropInfo=u,c=u}else c=(c=c instanceof s().Collection?1:c)instanceof Array?c.join(', '):c,i.dropInfo=c,c=(0,a.isString)(c)?this.matches(e,c):c,c=o&&this.isTextableActive(r,n)?1:c,i.droppable=c;return c&&o||(i.valid=!1),i},dimsFromTarget:function(t,e,n){var r=this.em,i=[];if(!t)return i;if(this.matches(t,"".concat(this.itemSel,", ").concat(this.containerSel))||(t=this.closest(t,this.itemSel)),this.draggable instanceof Array&&(t=this.closest(t,this.draggable.join(','))),!t)return i;if(this.prevTarget&&this.prevTarget!=t&&(this.prevTarget=null),!this.prevTarget){this.targetP=this.closest(t,this.containerSel);var o=this.validTarget(t);if(r&&r.trigger('sorter:drag:validation',o),!o.valid&&this.targetP)return this.dimsFromTarget(this.targetP,e,n);this.prevTarget=t,this.prevTargetDim=this.getDim(t),this.cacheDimsP=this.getChildrenDim(this.targetP),this.cacheDims=this.getChildrenDim(t)}if(this.prevTarget==t&&(i=this.cacheDims),this.target=this.prevTarget,this.nearBorders(this.prevTargetDim,e,n)||!this.nested&&!this.cacheDims.length){var s=this.targetP;s&&this.validTarget(s).valid&&(i=this.cacheDimsP,this.target=s)}return this.lastPos=null,i},getTargetFromEl:function(t){var e,n=t,r=this.targetPrev,i=this.em,o=this.containerSel,s=this.itemSel;if(this.matches(n,"".concat(s,", ").concat(o))||(n=this.closest(n,s)),this.draggable instanceof Array&&(n=this.closest(n,this.draggable.join(','))),r&&r!=n&&(this.targetPrev=''),!this.targetPrev){e=this.closest(n,o);var a=this.validTarget(n);if(i&&i.trigger('sorter:drag:validation',a),!a.valid&&e)return this.getTargetFromEl(e);this.targetPrev=n}return this.nearElBorders(n)&&(e=this.closest(n,o))&&this.validTarget(e).valid&&(n=e),n},nearElBorders:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body,r=this.getCurrentPos(),i=r.x,o=r.y,s=e.top+n.scrollTop,a=e.left+n.scrollLeft,l=e.width,c=e.height;if(os+c-10||ia+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,r,i,o=this.em,s=this.canvasRelative,a=o&&o.get('Canvas'),l=a?a.getElementOffsets(t):{};if(s&&o){var c=a.getElementPos(t,{noScroll:1});e=c.top,n=c.left,r=c.height,i=c.width}else{var u=this.offset(t);e=this.relative?t.offsetTop:u.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:u.left-(this.wmargin?-1:1)*this.elL,r=t.offsetHeight,i=t.offsetWidth}return{top:e,left:n,height:r,width:i,offsets:l}},getChildrenDim:function(t){var e=this,n=[];if(!t)return n;var r=this.getTargetModel(t);if(r&&r.view&&!this.ignoreViewChildren){var i=r.getCurrentView?r.getCurrentView():r.view;t=i.getChildrenContainer()}return(0,a.each)(t.children,(function(r,i){var o=(0,l.getModel)(r,h),s=o&&o.index?o.index():i;if((0,l.isTextNode)(r)||e.matches(r,e.itemSel)){var a=e.getDim(r),c=e.direction;c='v'==c||'h'!=c&&e.isInFlow(r,t),a.dir=c,a.el=r,a.indexEl=s,n.push(a)}})),n},nearBorders:function(t,e,n){var r=0,i=this.borderOffset,o=e||0,s=n||0,a=t.top,l=t.left,c=t.height,u=t.width;return(a+i>s||s>a+c-i||l+i>o||o>l+u-i)&&(r=1),!!r},findPosition:function(t,e,n){for(var r={index:0,indexEl:0,method:'before'},i=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,f=t.length;ho||s&&l>=s||i&&g+mO&&(w.at=d-1))}r&&(x?(delete w.at,i=v.getView().insertComponent(r,w)):i=g.add(r,w)),this.dropContent=null,this.prevTarget=null}else if(o){var k=p.dropInfo||(null==v?void 0:v.get('droppable')),S=p.dragInfo||(null==m?void 0:m.get('draggable'));!g&&f.push('Target collection not found'),!b&&k&&f.push("Target is not droppable, accepts [".concat(k,"]")),!y&&S&&f.push("Component not draggable, acceptable by [".concat(S,"]")),o.logWarning('Invalid target position',{errors:f,model:m,context:'sorter',target:v})}return null==o||o.trigger('sorter:drag:end',{targetCollection:g,modelToDrop:r,warns:f,validResult:p,dst:t,srcEl:u}),i},rollback:function(t){(0,l.off)(this.getDocuments(),'keydown',this.rollback),27==(t.which||t.keyCode)&&(this.moved=0,this.endMove())}});var p=n(5671),g=n(3144);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Z)(this,t),this.setOptions(e),(0,a.bindAll)(this,'handleKeyDown','handleMouseDown','move','stop'),this}return(0,g.Z)(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,a.defaults)(t,y),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||'',n=t.appendTo||document.body,r=this.container;for(r||((r=document.createElement('div')).className="".concat(e,"resizer-c"),n.appendChild(r),this.container=r);r.firstChild;)r.removeChild(r.firstChild);var i={};for(var o in['tl','tc','tr','cl','cr','bl','bc','br'].forEach((function(e){return i[e]=t[e]?function(t,e){var n=e.prefix||'',r=document.createElement('i');return r.className=n+'resizer-h '+n+'resizer-h-'+t,r.setAttribute('data-'+n+'handler',t),r}(e,t):''})),i){var s=i[o];s&&r.appendChild(s)}this.handlers=i,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd,this.onUpdateContainer=t.onUpdateContainer}},{key:"toggleFrames",value:function(t){if(this.opts.silentFrames){var e=document.querySelectorAll('iframe');(0,a.each)(e,(function(e){return e.style.pointerEvents=t?'none':''}))}}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getParentEl",value:function(){return this.el.parentElement}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.posFetcher||'';return n?n(t,e):b(t)}},{key:"focus",value:function(t){t&&t===this.el||(this.el=t,this.updateContainer({forceShow:1}),(0,l.on)(this.getDocumentEl(),'mousedown',this.handleMouseDown))}},{key:"blur",value:function(){this.container.style.display='none',this.el&&((0,l.off)(this.getDocumentEl(),'mousedown',this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this.getParentEl(),r=this.opts||{},i='data-'+r.prefix+'handler',o=this.getElementPos(e,{target:'el'}),s=this.getElementPos(n);this.handlerAttr=t.target.getAttribute(i),this.clickedHandler=t.target,this.startDim={t:o.top,l:o.left,w:o.width,h:o.height},this.rectDim={t:o.top,l:o.left,w:o.width,h:o.height},this.startPos={x:t.clientX,y:t.clientY},this.parentDim={t:s.top,l:s.left,w:s.width,h:s.height};var c=this.getDocumentEl();(0,l.on)(c,'mousemove',this.move),(0,l.on)(c,'keydown',this.handleKeyDown),(0,l.on)(c,'mouseup',this.stop),(0,a.isFunction)(this.onStart)&&this.onStart(t,{docs:c,config:r,el:e,resizer:this}),this.toggleFrames(1),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,r=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=r,this.delta={x:r.x-this.startPos.x,y:r.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,l.off)(n,'mousemove',this.move),(0,l.off)(n,'keydown',this.handleKeyDown),(0,l.off)(n,'mouseup',this.stop),this.updateRect(1),this.toggleFrames(),(0,a.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this.opts,r=this.rectDim,i=this.updateTarget,o=this.getSelectedHandler(),s=n.unitHeight,l=n.unitWidth,c=n.keyWidth,u=n.keyHeight;if((0,a.isFunction)(i))i(e,r,{store:t,selectedHandler:o,resizer:this,config:n});else{var h=e.style;h[c]=r.w+l,h[u]=r.h+s}this.updateContainer()}},{key:"updateContainer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.opts,n=this.container,r=this.el,i=n.style;!e.avoidContainerUpdate&&r&&t.forceShow&&(i.display='block'),this.onUpdateContainer({el:n,resizer:this,opts:m(m({},e),t)})}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler='',this.blur())}},{key:"calc",value:function(t){var e,n=this.opts||{},r=n.step,i=this.startDim,o=n.minDim,s=n.maxDim,a=t.delta.x,c=t.delta.y,u=this.parentDim.w,h=this.parentDim.h,f=this.opts.unitWidth,d=this.opts.unitHeight,p='%'===f?i.w/100*u:i.w,g='%'===d?i.h/100*h:i.h,v={t:0,l:0,w:p,h:g};if(t){var m=t.handlerAttr;~m.indexOf('r')&&(e='%'===f?(0,l.normalizeFloat)((p+a*r)/u*100,.01):(0,l.normalizeFloat)(p+a*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.w=e),~m.indexOf('b')&&(e='%'===d?(0,l.normalizeFloat)((g+c*r)/h*100,.01):(0,l.normalizeFloat)(g+c*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.h=e),~m.indexOf('l')&&(e='%'===f?(0,l.normalizeFloat)((p-a*r)/u*100,.01):(0,l.normalizeFloat)(p-a*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.w=e),~m.indexOf('t')&&(e='%'===d?(0,l.normalizeFloat)((g-c*r)/h*100,.01):(0,l.normalizeFloat)(g-c*r,r),e=Math.max(o,e),s&&(e=Math.min(s,e)),v.h=e);var y=n.ratioDefault?!t.keys.shift:t.keys.shift;if(m.indexOf('c')<0&&y){var b=i.w/i.h;v.w/v.h>b?v.h=Math.round(v.w/b):v.w=Math.round(v.h*b)}return~m.indexOf('l')&&(v.l=i.w-v.w),~m.indexOf('t')&&(v.t=i.h-v.h),v}}}]),t}();const x={init:function(t){return new w(t)}};function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{isDef:()=>s,hasWin:()=>a,getGlobal:()=>l,toLowerCase:()=>c,getUiClass:()=>f,isCommentNode:()=>k,isTaggableNode:()=>S,find:()=>P,escape:()=>_,on:()=>g,off:()=>v,hasDnd:()=>x,upFirst:()=>y,matches:()=>h,getModel:()=>T,getElRect:()=>E,camelCase:()=>b,isTextNode:()=>C,getKeyCode:()=>D,getKeyChar:()=>M,isEscKey:()=>A,isEnterKey:()=>L,getElement:()=>O,shallowDiff:()=>p,normalizeFloat:()=>w,getPointerEvent:()=>j,getUnitFromValue:()=>m,capitalize:()=>Z,getViewEl:()=>V,setViewEl:()=>H,appendStyles:()=>d,isObject:()=>R,isEmptyObj:()=>N,isComponent:()=>I,createId:()=>B,isRule:()=>F});var r=n(1002),i=n(2982),o=n(9050),s=function(t){return void 0!==t},a=function(){return'undefined'!=typeof window},l=function(){return'undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:n.g},c=function(t){return(t||'').toLowerCase()},u=a()?window.Element.prototype:{},h=u.matches||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector,f=function(t,e){var n=t.getConfig(),r=n.stylePrefix;return[n.customUI&&"".concat(r,"cui"),e].filter((function(t){return t})).join(' ')},d=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isArray)(e)?(0,i.Z)(e):[e];if(r.length){var s=r.shift();if(s&&(!n.unique||!document.querySelector("link[href=\"".concat(s,"\"]")))){var a=document,l=a.head,c=document.createElement('link');c.href=s,c.rel='stylesheet',n.prepand?l.insertBefore(c,l.firstChild):l.appendChild(c)}t(r)}},p=function(t,e){var n={},r=(0,o.keys)(e);for(var i in t)if(t.hasOwnProperty(i)){var s=t[i],a=e[i];r.indexOf(i)>=0?s!==a&&(n[i]=a):n[i]=null}for(var l in e)e.hasOwnProperty(l)&&(0,o.isUndefined)(t[l])&&(n[l]=e[l]);return n},g=function(t,e,n,r){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=function(i){t.forEach((function(t){return t&&t.addEventListener(e[i],n,r)}))},o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var i=e.toString().split('.')[1];r=i?i.length:0}return r?parseFloat(t.toFixed(r)):t},x=function(t){return'draggable'in document.createElement('i')&&(t?t.get('Config').nativeDnD:1)},O=function(t){return(0,o.isElement)(t)||C(t)?t:t&&t.getEl?t.getEl():void 0},C=function(t){return t&&3===t.nodeType},k=function(t){return t&&8===t.nodeType},S=function(t){return t&&!C(t)&&!k(t)},P=function(t,e){var n=null;return t.some((function(r,i){return e(r,i,t)?(n=r,1):0})),n},_=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return"".concat(t).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/`/g,'`')},T=function(t,e){var n=t;return!e&&t&&t.__cashData?n=t.__cashData.model:(0,o.isElement)(t)&&(n=e(t).data('model')),n},E=function(t){var e,n={top:0,left:0,width:0,height:0};if(!t)return n;if(C(t)){var r=document.createRange();r.selectNode(t),e=r.getBoundingClientRect(),r.detach()}return e||(t.getBoundingClientRect?t.getBoundingClientRect():n)},j=function(t){return t.touches&&t.touches[0]?t.touches[0]:t},D=function(t){return t.which||t.keyCode},M=function(t){return String.fromCharCode(D(t))},A=function(t){return 27===D(t)},L=function(t){return 13===D(t)},R=function(t){return null!==t&&!Array.isArray(t)&&'object'===(0,r.Z)(t)},N=function(t){return Object.keys(t).length<=0},Z=function(t){return t&&t.charAt(0).toUpperCase()+t.substring(1)},I=function(t){return t&&t.toHTML},F=function(t){return t&&t.toCSS},V=function(t){return t.__gjsv},H=function(t,e){t.__gjsv=e},B=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,e='',n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',r=n.length,i=0;i{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),s=new T(r||[]);return o._invoke=function(t,e,n){var r=h;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var a=S(s,n);if(a){if(a===g)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=u(t,e,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(t,n,s),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",g={};function v(){}function m(){}function y(){}var b={};b[o]=function(){return this};var w=Object.getPrototypeOf,x=w&&w(w(E([])));x&&x!==n&&r.call(x,o)&&(b=x);var O=y.prototype=v.prototype=Object.create(b);function C(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function n(i,o,s,a){var l=u(t[i],t,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"==typeof h&&r.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,s,a)}),(function(t){n("throw",t,s,a)})):e.resolve(h).then((function(t){c.value=t,s(c)}),(function(t){return n("throw",t,s,a)}))}a(l.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=u(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function E(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,s=function n(){for(;++i=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),c=r.call(s,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},2828:(t,e,n)=>{var r={"./CanvasClear":7202,"./CanvasClear.js":7202,"./CanvasMove":327,"./CanvasMove.js":327,"./CommandAbstract":238,"./CommandAbstract.js":238,"./ComponentDelete":5820,"./ComponentDelete.js":5820,"./ComponentDrag":6694,"./ComponentDrag.js":6694,"./ComponentEnter":1947,"./ComponentEnter.js":1947,"./ComponentExit":3888,"./ComponentExit.js":3888,"./ComponentNext":5883,"./ComponentNext.js":5883,"./ComponentPrev":7508,"./ComponentPrev.js":7508,"./ComponentStyleClear":8769,"./ComponentStyleClear.js":8769,"./CopyComponent":2213,"./CopyComponent.js":2213,"./DeleteComponent":5049,"./DeleteComponent.js":5049,"./ExportTemplate":3775,"./ExportTemplate.js":3775,"./Fullscreen":58,"./Fullscreen.js":58,"./MoveComponent":8658,"./MoveComponent.js":8658,"./OpenAssets":9617,"./OpenAssets.js":9617,"./OpenBlocks":5821,"./OpenBlocks.js":5821,"./OpenLayers":3452,"./OpenLayers.js":3452,"./OpenStyleManager":2840,"./OpenStyleManager.js":2840,"./OpenTraitManager":8644,"./OpenTraitManager.js":8644,"./PasteComponent":560,"./PasteComponent.js":560,"./Preview":4944,"./Preview.js":4944,"./Resize":7538,"./Resize.js":7538,"./SelectComponent":2620,"./SelectComponent.js":2620,"./SelectPosition":8463,"./SelectPosition.js":8463,"./ShowOffset":7994,"./ShowOffset.js":7994,"./SwitchVisibility":8352,"./SwitchVisibility.js":8352};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code='MODULE_NOT_FOUND',e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=o,t.exports=i,i.id=2828},907:(t,e,n)=>{"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nr})},5861:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,s){try{var a=t[o](s),l=a.value}catch(t){return void n(t)}a.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var s=t.apply(e,n);function a(t){r(s,i,o,a,l,"next",t)}function l(t){r(s,i,o,a,l,"throw",t)}a(void 0)}))}}n.d(e,{Z:()=>i})},5671:(t,e,n)=>{"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:()=>r})},3144:(t,e,n)=>{"use strict";function r(t,e){for(var n=0;ni})},4942:(t,e,n)=>{"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>r})},1120:(t,e,n)=>{"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:()=>r})},9340:(t,e,n)=>{"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)}n.d(e,{Z:()=>i})},4925:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},3930:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1002);function i(t,e){return!e||"object"!==(0,r.Z)(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}},885:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(181);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=n){var r,i,o=[],s=!0,a=!1;try{for(n=n.call(t);!(s=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);s=!0);}catch(t){a=!0,i=t}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return o}}(t,e)||(0,r.Z)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},168:(t,e,n)=>{"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,{Z:()=>r})},2982:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(907);var i=n(181);function o(t){return function(t){if(Array.isArray(t))return(0,r.Z)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.Z)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},1002:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},181:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(907);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}},9050:(t,e,n)=>{"use strict";n.r(e),n.d(e,{VERSION:()=>i,after:()=>Le,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Lt,before:()=>Re,bind:()=>Oe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>X,contains:()=>nn,countBy:()=>gn,create:()=>Zt,debounce:()=>je,default:()=>zn,defaults:()=>Rt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>se,every:()=>tn,extend:()=>At,extendOwn:()=>Lt,filter:()=>Xe,find:()=>We,findIndex:()=>Fe,findKey:()=>Ze,findLastIndex:()=>Ve,findWhere:()=>$e,first:()=>kn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Je,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>kn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>Cn,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>Z,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>R,isFinite:()=>Y,isFunction:()=>V,isMap:()=>kt,isMatch:()=>ct,isNaN:()=>J,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>L,isSet:()=>Pt,isString:()=>D,isSymbol:()=>N,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>at,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Xt,matcher:()=>$t,matches:()=>$t,max:()=>an,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Vn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Nn,omit:()=>On,once:()=>Ne,pairs:()=>Et,partial:()=>xe,partition:()=>vn,pick:()=>xn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Zn,reduce:()=>Ye,reduceRight:()=>Je,reject:()=>Qe,rest:()=>Sn,restArguments:()=>k,result:()=>ge,sample:()=>cn,select:()=>Xe,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>hn,sortedIndex:()=>He,tail:()=>Sn,take:()=>kn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Vt,transpose:()=>Ln,unescape:()=>ae,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Ln,values:()=>Tt,where:()=>sn,without:()=>jn,wrap:()=>De,zip:()=>Rn});var r={};n.r(r),n.d(r,{VERSION:()=>i,after:()=>Le,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Lt,before:()=>Re,bind:()=>Oe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>X,contains:()=>nn,countBy:()=>gn,create:()=>Zt,debounce:()=>je,default:()=>Hn,defaults:()=>Rt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>se,every:()=>tn,extend:()=>At,extendOwn:()=>Lt,filter:()=>Xe,find:()=>We,findIndex:()=>Fe,findKey:()=>Ze,findLastIndex:()=>Ve,findWhere:()=>$e,first:()=>kn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Je,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>kn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>Cn,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>Z,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>R,isFinite:()=>Y,isFunction:()=>V,isMap:()=>kt,isMatch:()=>ct,isNaN:()=>J,isNull:()=>P,isNumber:()=>M,isObject:()=>S,isRegExp:()=>L,isSet:()=>Pt,isString:()=>D,isSymbol:()=>N,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>at,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Xt,matcher:()=>$t,matches:()=>$t,max:()=>an,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Vn,negate:()=>Me,noop:()=>Qt,now:()=>re,object:()=>Nn,omit:()=>On,once:()=>Ne,pairs:()=>Et,partial:()=>xe,partition:()=>vn,pick:()=>xn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Zn,reduce:()=>Ye,reduceRight:()=>Je,reject:()=>Qe,rest:()=>Sn,restArguments:()=>k,result:()=>ge,sample:()=>cn,select:()=>Xe,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>hn,sortedIndex:()=>He,tail:()=>Sn,take:()=>kn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Vt,transpose:()=>Ln,unescape:()=>ae,union:()=>Mn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Ln,values:()=>Tt,where:()=>sn,without:()=>jn,wrap:()=>De,zip:()=>Rn});var i='1.13.1',o='object'==typeof self&&self.self===self&&self||'object'==typeof global&&global.global===global&&global||Function('return this')()||{},s=Array.prototype,a=Object.prototype,l='undefined'!=typeof Symbol?Symbol.prototype:null,c=s.push,u=s.slice,h=a.toString,f=a.hasOwnProperty,d='undefined'!=typeof ArrayBuffer,p='undefined'!=typeof DataView,g=Array.isArray,v=Object.keys,m=Object.create,y=d&&ArrayBuffer.isView,b=isNaN,w=isFinite,x=!{toString:null}.propertyIsEnumerable('toString'),O=['valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'],C=Math.pow(2,53)-1;function k(t,e){return e=null==e?t.length-1:+e,function(){for(var n=Math.max(arguments.length-e,0),r=Array(n),i=0;i=0&&n<=C}}function tt(t){return function(e){return null==e?void 0:e[t]}}const et=tt('byteLength'),nt=Q(et);var rt=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const it=d?function(t){return y?y(t)&&!W(t):nt(t)&&rt.test(h.call(t))}:X(!1),ot=tt('length');function st(t,e){e=function(t){for(var e={},n=t.length,r=0;r':'>','"':'"',"'":''','`':'`'},se=ie(oe),ae=ie(jt(oe)),le=ut.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ce=/(.)^/,ue={"'":"'",'\\':'\\','\r':'r','\n':'n','\u2028':'u2028','\u2029':'u2029'},he=/\\|'|\r|\n|\u2028|\u2029/g;function fe(t){return'\\'+ue[t]}var de=/^\s*(\w|\$)+\s*$/;function pe(t,e,n){!e&&n&&(e=n),e=Rt({},e,ut.templateSettings);var r=RegExp([(e.escape||ce).source,(e.interpolate||ce).source,(e.evaluate||ce).source].join('|')+'|$','g'),i=0,o="__p+='";t.replace(r,(function(e,n,r,s,a){return o+=t.slice(i,a).replace(he,fe),i=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e})),o+="';\n";var s,a=e.variable;if(a){if(!de.test(a))throw new Error('variable is not a bare identifier: '+a)}else o='with(obj||{}){\n'+o+'}\n',a='obj';o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+'return __p;\n';try{s=new Function(a,'_',o)}catch(t){throw t.source=o,t}var l=function(t){return s.call(this,t,ut)};return l.source='function('+a+'){\n'+o+'}',l}function ge(t,e,n){var r=(e=Ht(e)).length;if(!r)return V(n)?n.call(t):n;for(var i=0;i1)ke(a,e-1,n,r),i=r.length;else for(var l=0,c=a.length;le?(r&&(clearTimeout(r),r=null),a=c,s=t.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),s};return c.cancel=function(){clearTimeout(r),a=0,r=i=o=null},c}function je(t,e,n){var r,i,o,s,a,l=function(){var c=re()-i;e>c?r=setTimeout(l,e-c):(r=null,n||(s=t.apply(a,o)),r||(o=a=null))},c=k((function(c){return a=this,o=c,i=re(),r||(r=setTimeout(l,e),n&&(s=t.apply(a,o))),s}));return c.cancel=function(){clearTimeout(r),r=o=a=null},c}function De(t,e){return xe(e,t)}function Me(t){return function(){return!t.apply(this,arguments)}}function Ae(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function Le(t,e){return function(){if(--t<1)return e.apply(this,arguments)}}function Re(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}}const Ne=xe(Re,2);function Ze(t,e,n){e=Jt(e,n);for(var r,i=at(t),o=0,s=i.length;o0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=e(u.call(r,s,a),J))>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o0?0:s-1;for(i||(r=e[o?o[a]:a],a+=t);a>=0&&a=3;return e(t,Gt(n,i,4),r,o)}}const Ye=Ke(1),Je=Ke(-1);function Xe(t,e,n){var r=[];return e=Jt(e,n),qe(t,(function(t,n,i){e(t,n,i)&&r.push(t)})),r}function Qe(t,e,n){return Xe(t,Me(Jt(e)),n)}function tn(t,e,n){e=Jt(e,n);for(var r=!Ce(t)&&at(t),i=(r||t).length,o=0;o=0}const rn=k((function(t,e,n){var r,i;return V(e)?i=e:(e=Ht(e),r=e.slice(0,-1),e=e[e.length-1]),Ge(t,(function(t){var o=i;if(!o){if(r&&r.length&&(t=Bt(t,r)),null==t)return;o=t[e]}return null==o?o:o.apply(t,n)}))}));function on(t,e){return Ge(t,qt(e))}function sn(t,e){return Xe(t,$t(e))}function an(t,e,n){var r,i,o=-1/0,s=-1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var a=0,l=(t=Ce(t)?t:Tt(t)).length;ao&&(o=r);else e=Jt(e,n),qe(t,(function(t,n,r){((i=e(t,n,r))>s||i===-1/0&&o===-1/0)&&(o=t,s=i)}));return o}function ln(t,e,n){var r,i,o=1/0,s=1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var a=0,l=(t=Ce(t)?t:Tt(t)).length;ar||void 0===n)return 1;if(n1&&(r=Gt(r,e[1])),e=vt(t)):(r=wn,e=ke(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(n=e[1])):(e=Ge(ke(e,!1,!1),String),r=function(t,n){return!nn(e,n)}),xn(t,r,n)}));function Cn(t,e,n){return u.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))}function kn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[0]:Cn(t,t.length-e)}function Sn(t,e,n){return u.call(t,null==e||n?1:e)}function Pn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[t.length-1]:Sn(t,Math.max(0,t.length-e))}function _n(t){return Xe(t,Boolean)}function Tn(t,e){return ke(t,e,!1)}const En=k((function(t,e){return e=ke(e,!0,!0),Xe(t,(function(t){return!nn(e,t)}))})),jn=k((function(t,e){return En(t,e)}));function Dn(t,e,n,r){T(e)||(r=n,n=e,e=!1),null!=n&&(n=Jt(n,r));for(var i=[],o=[],s=0,a=ot(t);s{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if('object'==typeof globalThis)return globalThis;try{return this||new Function('return this')()}catch(t){if('object'==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(t,'__esModule',{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>V});var t=n(4942),e=n(9050),i=n(2579);const o={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,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,optsHtml:{},optsCss:{},avoidInlineStyle:1,avoidDefaults:1,clearStyles:0,dragMode:0,listenToEl:[],cssIcons:'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css',icons:{close:'',move:'',plus:'',caret:'',delete:'',copy:'',arrowUp:''},el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{},styleManager:{},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0,customUI:!1};var s=n(4925),a=n(5671),l=n(3144),c=n(9340),u=n(3930),h=n(1120),f=n(2316),d=n.n(f);var p=n(6183);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,a.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(f.Model),m=function(t){(0,c.Z)(r,t);var n=g(r);function r(){return(0,a.Z)(this,r),n.apply(this,arguments)}return(0,l.Z)(r,[{key:"getByComponent",value:function(t){var e=this;return this.filter((function(n){return e.getComponent(n)===t}))[0]}},{key:"addComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).filter((function(t){return!r.hasComponent(t)})).map((function(t){return{component:t}}));return this.push(i,n)}},{key:"getComponent",value:function(t){return t.get('component')}},{key:"hasComponent",value:function(t){var e=this.getByComponent(t);return e&&this.contains(e)}},{key:"lastComponent",value:function(){var t=this.last();return t&&this.getComponent(t)}},{key:"allComponents",value:function(){var t=this;return this.map((function(e){return t.getComponent(e)})).filter((function(t){return t}))}},{key:"removeComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).map((function(t){return r.getByComponent(t)}));return this.remove(i,n)}}]),r}(f.Collection);m.prototype.model=v;var y=["unset"];function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};this.config=n,this.set('Config',n),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new m),this.set('dmode',n.dragMode),this.set('hasPages',!!n.pageManager);var r=n.el,i=n.log,o=!0===i?(0,e.keys)(S):(0,e.isArray)(i)?i:[];(0,e.bindAll)(this,'initBaseColorPicker'),r&&n.fromElement&&(this.config.components=r.innerHTML),this.attrsOrig=r?(0,e.toArray)(r.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',k.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),this.on('change:readyLoad change:readyCanvas',this._checkReady,this),o.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){return t.onLoad()}));var i=function(){t.get('modules').forEach((function(e){return e.postLoad&&e.postLoad(t)})),t.set('readyLoad',1),e&&e()};n&&n.canAutoload()?this.load(i):setTimeout(i);var o=new r({noticeOnUnload:!1,storageManager:!1,undoManager:!1});['PageManager','Canvas'].forEach((function(t){return o.get(t).onLoad()})),this.set('shallow',o)}},{key:"updateChanges",value:function(){var t=this,e=this.get('StorageManager'),n=this.get('changesCount');C&&clearTimeout(C),C=setTimeout((function(){return t.trigger('update')})),this.config.noticeOnUnload&&(window.onbeforeunload=n?function(t){return 1}:null),e.isAutosave()&&n>=e.getStepsBeforeSave()&&this.store()}},{key:"loadModule",value:function(t){var n=this.config,r=new(t.default||t),i=r.name.charAt(0).toLowerCase()+r.name.slice(1),o=(0,e.isUndefined)(n[i])?n[r.name]:n[i],s=!0===o?{}:o||{},a=this.get('StorageManager');if(s.pStylePrefix=n.pStylePrefix||'',(0,e.isUndefined)(o)||o||(s._disable=1),r.storageKey&&r.store&&r.load&&a){s.stm=a;var l='domComponents'==i?'unshift':'push';this.get('storables')[l](r)}return s.em=this,r.init(w({},s)),!r.private&&this.set(r.name,r),r.onLoad&&this.get('toLoad').push(r),this.get('modules').push(r),this}},{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroyed&&(this.initialize(e),this.destroyed=0),this.set('Editor',t)}},{key:"getEditor",value:function(){return this.get('Editor')}},{key:"handleUpdates",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.__skip||r.temporary||r.noCount||r.avoidStore||!this.get('ready')||(O&&clearTimeout(O),O=setTimeout((function(){var t=n.get('changesCount')||0,e=(r.unset,(0,s.Z)(r,y));n.set('changesCount',t+1,e)}),0))}},{key:"changesUp",value:function(t){this.handleUpdates(0,0,t)}},{key:"componentHovered",value:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)}},{key:"getSelected",value:function(){return this.get('selected').lastComponent()}},{key:"getSelectedAll",value:function(){return this.get('selected').allComponents()}},{key:"setSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.event,s=o&&(o.ctrlKey||o.metaKey),a=o||{},l=a.shiftKey,c=(0,e.isArray)(t),u=(c?t:[t]).map((function(t){return(0,p.getModel)(t,i.default)})),h=this.getSelectedAll(),f=this.getConfig('multipleSelection');c&&this.removeSelected(h.filter((function(t){return!(0,e.contains)(u,t)}))),u.forEach((function(t){var i=(0,p.getModel)(t);if(i&&(n.trigger('component:select:before',i,r),!i.get('selectable')||r.abort)){if(!r.useValid)return;for(var o=i.parent();o&&!o.get('selectable');)o=o.parent();i=o}if(s&&f)return n.toggleSelected(i);if(l&&f){n.clearSelection(n.get('Canvas').getWindow());var a,u,d=i.collection,g=i.index();if(n.getSelectedAll().forEach((function(t){var n=t.collection,r=t.index();n===d&&(rg&&(u=(0,e.isUndefined)(u)?r:Math.min(u,r)))})),!(0,e.isUndefined)(a))for(;a!==g;)n.addSelected(d.at(a)),a++;if(!(0,e.isUndefined)(u))for(;u!==g;)n.addSelected(d.at(u)),u--;return n.addSelected(i)}!c&&n.removeSelected(h.filter((function(t){return t!==i}))),n.addSelected(i,r),i}))}},{key:"addSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,p.getModel)(t,i.default),s=(0,e.isArray)(o)?o:[o];s.forEach((function(t){if(!t||t.get('selectable')){var e=n.get('selected');r.forceChange&&n.removeSelected(t,r),e.addComponent(t,r),t&&n.trigger('component:select',t,r)}}))}},{key:"removeSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').removeComponent((0,p.getModel)(t,i.default),e)}},{key:"toggleSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,p.getModel)(t,i.default),s=(0,e.isArray)(o)?o:[o];s.forEach((function(t){n.get('selected').hasComponent(t)?n.removeSelected(t,r):n.addSelected(t,r)}))}},{key:"setHovered",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return this.set('componentHovered','');var n='component:hover',r=(0,p.getModel)(t);if(r){if(e.forceChange&&this.set('componentHovered',''),this.trigger("".concat(n,":before"),r,e),!r.get('hoverable')){if(!e.useValid||e.abort)return;for(var i=r&&r.parent();i&&!i.get('hoverable');)i=i.parent();r=i}e.abort||(this.set('componentHovered',r,e),this.trigger(n,r,e))}}},{key:"getHovered",value:function(){return this.get('componentHovered')}},{key:"setComponents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)}},{key:"getComponents",value:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}}},{key:"setStyle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('CssComposer');return n.clear(e),n.getAll().add(t,e),this}},{key:"addStyle",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getStyle().add(t,n);return(0,e.isArray)(r)?r:[r]}},{key:"getStyle",value:function(){return this.get('CssComposer').getAll()}},{key:"setState",value:function(t){return this.set('state',t),this}},{key:"getState",value:function(){return this.get('state')||''}},{key:"getHtml",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.jsInHtml?this.getJs(t):'',i=t.component||this.get('DomComponents').getComponent(),o=i?this.get('CodeManager').getCode(i,'html',w(w({},n),t)):'';return o+=r?"